SMPAI00100.xjs 335 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. * 화면 : SMPAI00100_입원 퇴원수납.xrw
  5. * 설명 : 입원수납
  6. * 작성자 :
  7. * 작성일 : 2010/12/22
  8. */
  9. function fReady() {
  10. btn_clamrcpt.selected= true;
  11. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  12. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); //1-카드, 2-현금영수증, 3-현금
  13. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  14. // 20091216 JHP 수가재계산구분(IPHS.calcscorrecalflag) 공통코드(P0027) 추가
  15. zbcfGetCodeList(new Array("P0363","P0160","P0006","P0008","P0010","P0025","P0026","P0032", "P0312", "P0311", "P0104", "P0019", "P0001", "P0076","P0027", "P0327"),
  16. new Array("/root/init/P0363list","/root/init/P0160list","/root/init/P0006list","/root/init/P0008list","/root/init/P0010list","/root/init/P0025list"
  17. ,"/root/init/P0026list","/root/init/P0032list","/root/init/P0312list","/root/init/P0311list","/root/init/P0104list","/root/init/P0019list"
  18. ,"/root/init/P0001list","/root/init/P0076list","/root/init/P0027list","/root/init/P0327list"));
  19. //2009.08.28 - 원무공통코드
  20. //2009.10.28 - 자동미수코드 추가 - P0081
  21. pamfGetCodeList(new Array("P0022", "P0041", "P0063", "P0071", "P0081", "PK018", "PK020", "PK059", "PK062", "PK084", "P6571", "P0032"),
  22. new Array("/root/init/PAM/P0022list", "/root/init/PAM/P0041list", "/root/init/PAM/P0063list", "/root/init/PAM/P0071list", "/root/init/PAM/P0081list", "/root/init/PAM/PK018list", "/root/init/PAM/PK020list", "/root/init/PAM/PK059list", "/root/init/PAM/PK062list", "/root/init/PAM/PK084list", "/root/init/PAM/P6571list", "/root/init/PAM/P0032list"));
  23. //현금영수증 자동승인 여부
  24. if( model.getValue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm") == 'Y'){
  25. model.setValue("/root/init/option/autocashyn", model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm"));
  26. }
  27. model.setValue("/root/init/option/inhospyn", "N");
  28. // 진료비 세부내역서 자동출력 체크 해제 by 조중래 20150528
  29. model.setValue("/root/init/option/specbillyn", "");
  30. model.setValue("/root/init/option/specbillcnt", "1");
  31. model.setValue("/root/init/option/receiptcnt", "1");
  32. // 개인정보이용동의서 출력을 위한 서식코드 취득
  33. reqHardCodeInfo("/root/send/reqdata", "/root/init/prncd", "5604");
  34. // 가퇴원 정산SMS 발송용 메세지 포맷 취득 및 전송여부 초기화
  35. submit("TRPAI00137");
  36. checkbox4.hint = model.getValue("/root/init/receiptsms/smsmsg/orgmsgfrmtcnts");
  37. checkbox5.hint = model.getValue("/root/init/receiptsms/ezpasssmsmsg/orgmsgfrmtcnts");
  38. chk_chemosms.hint = model.getValue("/root/init/receiptsms/chemosms/orgmsgfrmtcnts");
  39. model.setValue("/root/init/option/receiptsms", "Y");
  40. model.setValue("/root/init/option/ezpasssms", "");
  41. model.setValue("/root/init/option/chemosms", "");
  42. if (getUserInfo("dutplceinstcd") == "032") {
  43. chk_chemosms.visible = true;
  44. }
  45. //금액표시기 초기화
  46. fInit_Display();
  47. //금액표시기 포트열기
  48. fOpenCom();
  49. //세션정보 추출하기
  50. fGetUserInfosSampling();
  51. model.setValue("/root/send/sess_posinstcd", model.getValue("/root/hidden/session/posinstcd"));
  52. model.setValue("/root/send/ioflag", "I");
  53. submit("TRPAI00120");
  54. model.setFocus("ipt_pid");
  55. // 응급실재실환자조회 화면에서 넘기는 환자번호 파라미터 처리
  56. // Top Viewer
  57. var topViewer = getViewer("patientInfo");
  58. if (topViewer != null) {
  59. var sParamPid = topViewer.window.javascript.getParameter("SMPAI00100_Param1");
  60. if (!isNull(sParamPid)) {
  61. topViewer.window.javascript.clearParameter("SMPAI00100_Param1");
  62. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sParamPid);
  63. fInPatInfoRef("1");
  64. }
  65. }
  66. // 개인/계약처 미수입금관리화면에서 호출되는 경우 파라미터 처리
  67. if (checkOpener()){
  68. var sParamPid = opener.window.javascript.getParameter("ipt_pid");
  69. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sParamPid);
  70. fInPatInfoRef("1");
  71. }
  72. }
  73. //환자번호후 엔터 이벤트
  74. function fInPatInfoRef(sflag) {
  75. fCloseAmt();
  76. model.resetInstanceNode("/root/main/emr_prcpspec/grdnexecspec"); //미시행처방
  77. model.resetInstanceNode("/root/main/admi_info/rcptmthd"); //수납방법, 소득지출증빙, 카드번호, 유효기간, 할부
  78. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); ////1-카드, 2-현금영수증, 3-현금
  79. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  80. model.setValue("/root/init/option/pregdmndamtchk" , "");
  81. model.setValue("/root/init/option/iphs_div" , "false"); // 강제분리 초기화
  82. if (sflag =="1") {
  83. var spid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  84. if (spid == "" || spid == null) {
  85. messageBox("환자등록번호가", "I004");
  86. fInitialize("all");
  87. return false;
  88. }
  89. model.setValue("/root/send/pid", spid);
  90. }
  91. else if (sflag =="2") {
  92. var shngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  93. if (shngnm == "" || shngnm == null) {
  94. messageBox("성명이","I004");
  95. return false;
  96. }
  97. model.setValue("/root/send/hngnm", shngnm);
  98. }
  99. else if (sflag =="3") {
  100. var srrgstno1 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1");
  101. var srrgstno2 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2");
  102. if (srrgstno1 == "" || srrgstno1 == null) {
  103. messageBox("주민번호가", "I004");
  104. return false;
  105. }
  106. model.setValue("/root/send/rrgstno1", srrgstno1);
  107. model.setValue("/root/send/rrgstno1", srrgstno2);
  108. }
  109. model.setValue("/root/send/refflag", sflag); //조회조건(환자번호, 성명, 주민번호)
  110. submit("TRPAI00101");
  111. if (model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd") == null) {
  112. messageBox("해당 환자는 입원내역이", "I004");
  113. fInitialize("all");
  114. return false;
  115. }
  116. //동의서 출력여부
  117. var scanyn = model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_scanyn");
  118. cpt_scanyn.text = '[동:' + scanyn + ']';
  119. //선택진료 스캔여부 2011/10/01 고시
  120. var spifScanYn = model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_spifscanyn");
  121. // 격리대상정보 표시
  122. fSetIsolInfo(model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_isolinfo"));
  123. // 메르스 대상자 조회
  124. fMersPatChk("PAM", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  125. //스캔되지 않은 경우, 선택진료조회화면 연동
  126. if (spifScanYn != 'Y') {
  127. if (messageBox("선택진료신청서 중 스캔되지 않은 건이 존재합니다."
  128. + "\r\n선택진료신청서를 조회", "S001") == "6") {
  129. setParameter("SMPMC06503_PARM_PID", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_pid"));
  130. modal("SMPMC06503");
  131. }
  132. }
  133. model.setValue("/root/send/indd", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd"));
  134. model.setValue("/root/send/ordtype", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_ordtype"));
  135. fInPatInfo(); //입원 combo seting 환자의 입원일자
  136. fAgeCalc(); //나이계산
  137. fInDayNo(); //입원일수 계산
  138. //2009.06.12 - ER/DSC 자동 배치
  139. fSetAutoErDscCalc();
  140. //감면정보체크
  141. fGetDcucInfo(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  142. fIPatInfoChk(); //환자정보조회(상병, 수술, 미수, 후원금, OPD/수납 등)
  143. model.setValue("/root/main/admi_info/rcptmthd/allotmm", "00");
  144. //환자조회시 자격체크
  145. //20110409 수납시점에 자격체크로 변경
  146. //fCheckInsuRgst();
  147. var vpid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  148. //미진료 예약금 환불 팝업
  149. //fCheckRefund(vpid);
  150. //사망한 환자 미시행 처방 존재여부 체크 - 20130905
  151. var dethdt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt");
  152. if(dethdt != '-' && dethdt.length > 0){
  153. fGetDethOtptInfo(vpid);
  154. }
  155. // 휴진일정 검증로직 추가 by 조중래 20131106
  156. // 심사팀 요청 있을때까지 무기한 적용 연기
  157. //fGetDrHoliInfo();
  158. model.setFocus("ipt_rcptcd");
  159. model.refresh();
  160. }
  161. //자격조회 화면 초기화
  162. function fInitInsuInfo(){
  163. var ivrObjt = document.all("ivr_insupopup");
  164. if( ivrObjt == null ){
  165. body.createChild("xforms:iviewer", "id:ivr_insupopup; src:../../../pam/pamcomnweb/xrw/SPPMC03900_의료급여자격조회승인.xrw");
  166. ivrObjt = document.all("ivr_insupopup");
  167. //공통코드 초기화
  168. ivrObjt.window.javascript.fGetInitCode();
  169. }
  170. }
  171. //환자조회시 자격체크
  172. function fCheckInsuRgst(){
  173. //환자조회 완료시 자격체크
  174. clearParameter("SPPMC03900_RTN");
  175. clearParameter("SPPMC03900_insukind");
  176. clearParameter("SPPMC03900_suppkind");
  177. clearParameter("SPPMC03900_insucd");
  178. clearParameter("SPPMC03900_insuno");
  179. clearParameter("SPPMC03900_insdnm");
  180. clearParameter("SPPMC03900_insufromdd");
  181. clearParameter("SPPMC03900_ownbflag");
  182. clearParameter("SPPMC03900_ETCORD");
  183. clearParameter("SPPMC03900_handcapfundyn");
  184. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == "") {
  185. //return true;
  186. //}
  187. var srow = grd_inpatinfo.row;
  188. if (srow <= 0) {
  189. srow = 1;
  190. }
  191. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '11'
  192. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '21'
  193. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '22' ){
  194. //보험, 급여일 때만 체크
  195. return;
  196. }
  197. //기준일자를 유형 시작일에서 종료일자로 변경(김무조 선생님 요청 2012-09-13)
  198. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  199. //종료일이 99991231 이면 오늘일자로 변경해서 체크한다.
  200. if( iphs_todd = "99991231" ) iphs_todd = getCurrentDate();
  201. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") +
  202. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민번호
  203. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //이름
  204. //model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  205. //model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") + "▦" + //진료일자
  206. iphs_todd + "▦" + //기준일자를 유형 시작일에서 종료일자로 변경(김무조 선생님 요청 2012-09-13)
  207. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //진료생성번호(당일 외래요율만 적용하니 iphs것을 사용하지 않음)
  208. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" +//ordtype
  209. "" + "▦"+ //퇴원일자
  210. "" + "▦"+//본인일부부담금
  211. "" + "▦"+//기관부담금
  212. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦"+ //등록번호
  213. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  214. //model.getValue("/root/hidden/init/orddeptcd[ cd = '" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']/reqdeptno") + "▦" + //진료과
  215. "" + "▦" + //본인부담구분
  216. "" + "▦" + //비급여총금액
  217. "" + "▦" + //산전진료비
  218. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") + "▦"; //보조유형
  219. setParameter("SPPMC03900_PARM",parm);
  220. //신종플루진료
  221. setParameter("SPPMC03900_ETCORD", '-');
  222. setParameter("SPPMC03900_MSGYN", "N");
  223. if( fApproveHeallifeAmt2() == false ){
  224. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격조회실패]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  225. if( retVal == '6' ){
  226. //button48.dispatch("DOMActivate");
  227. return false;
  228. }
  229. }else{
  230. if (getParameter("SPPMC03900_RTN") == "N" || getParameter("SPPMC03900_RTN") == ""){
  231. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격없음]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  232. if( retVal == '6' ){
  233. //button48.dispatch("DOMActivate");
  234. return false;
  235. }
  236. }else if (getParameter("SPPMC03900_RTN") == "Y") {
  237. var insukind = getParameter("SPPMC03900_insukind");
  238. var suppkind = getParameter("SPPMC03900_suppkind");
  239. if( insukind != model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") ){
  240. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격불일치]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  241. if( retVal == '6' ){
  242. //button48.dispatch("DOMActivate");
  243. return false;
  244. }
  245. }else{
  246. if( getParameter("SPPMC03900_handcapfundyn") == "Y" ){ //장애대불 가능 여부 체크
  247. //장애대불 적용 여부 체크
  248. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_handicaprbookpossnyn") != 'Y' ){
  249. var retVal = messageBox("장애인대불 가능한 환자입니다. \n확인 후 장애인마스터 등록 및 장애인대불 적용해주세요!"
  250. + "\n확인 후 수납을 진행하시겠습니까?[No : 수납진행]", "Q999", "");
  251. if( retVal == '6' ){
  252. //button48.dispatch("DOMActivate");
  253. return true;
  254. }
  255. }
  256. }
  257. }
  258. }else{
  259. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격확인필요]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  260. if( retVal == '6' ){
  261. //button48.dispatch("DOMActivate");
  262. return false;
  263. }
  264. }
  265. //장애대불 대상이 아닌경우 체크
  266. if( getParameter("SPPMC03900_handcapfundyn") != "Y" ){ //장애대불 가능 여부 체크
  267. //장애대불 적용 여부 체크
  268. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_handicaprbookpossnyn") == 'Y' ){
  269. var retVal = messageBox("장애인대불 적용 불가능한 환자입니다. \n장애인정보를 확인 하신 후 장애대불 적용 취소해주세요!"
  270. + "\n확인 후 수납을 진행하시겠습니까?[No : 수납진행]", "Q999", "");
  271. if( retVal == '6' ){
  272. //button48.dispatch("DOMActivate");
  273. return true;
  274. }
  275. }
  276. }
  277. }
  278. return;
  279. //}
  280. }
  281. //환자정보조회
  282. function fIPatInfoChk() {
  283. model.resetInstanceNode("/root/send/data1");
  284. model.makeValue("/root/send/data1/pid" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  285. model.makeValue("/root/send/data1/cretno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"));
  286. model.makeValue("/root/send/data1/indd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  287. model.makeValue("/root/send/data1/orddeptcd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd"));
  288. model.makeValue("/root/send/data1/dschdclrtyn", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrtyn"));
  289. model.makeValue("/root/send/data1/dschdclrdt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt").substr(0, 8));
  290. model.makeValue("/root/send/data1/dschnotiyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn"));
  291. model.makeValue("/root/send/data1/dschnotidt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  292. model.makeValue("/root/send/data1/dschdd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  293. // 특이환자조회 (실사용)
  294. // model.makeValue("/root/hidden/rcv/patinfo/checkyn", "");
  295. // if (submit("TRPMC06515")) {
  296. //
  297. // // 특이환자여부 (Y:특이환자)
  298. // if (model.getValue("/root/hidden/rcv/patinfo/checkyn") == "Y") {
  299. //
  300. // messageBox("\r\n업무처리시 오류가 발생하였습니다!!!\r\n\r\n해당 내용의 처리는 원무팀(6178)으로 문의 및 안내하시기 바랍니다.", "C000");
  301. // fInitialize("all");
  302. // return false;
  303. // }
  304. // }
  305. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  306. //소스 튜닝 시작
  307. //model.removeNodeset("/root/send/pidinfo");
  308. model.setValue("/root/send/pidinfo/pid" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  309. model.setValue("/root/send/pidinfo/indd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  310. model.setValue("/root/send/pidinfo/intm" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_intm")); // 동일일자 재내원 구분용
  311. model.setValue("/root/send/pidinfo/cretno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"));
  312. model.setValue("/root/send/pidinfo/orddeptcd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd"));
  313. model.setValue("/root/send/pidinfo/dschdclrdt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt"));
  314. model.setValue("/root/send/pidinfo/dschdclrtyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrtyn"));
  315. model.setValue("/root/send/pidinfo/emplnm" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"));
  316. model.setValue("/root/send/pidinfo/rrgstno1" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1"));
  317. model.setValue("/root/send/pidinfo/rrgstno2" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2"));
  318. model.setValue("/root/send/pidinfo/dschnotiyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn"));
  319. model.setValue("/root/send/pidinfo/dschnotidt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  320. model.setValue("/root/send/pidinfo/dschdd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  321. model.setValue("/root/send/pidinfo/ordtype" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  322. model.setValue("/root/send/pidinfo/mskind" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  323. //model.setValue("/root/send/pidinfo/iphs_div" , bl_iphs_div.value);
  324. submit("TRPAI00135");
  325. //model.removeNodeset("/root/send/pidinfo");
  326. /* 속도 튜닝을 위한 서브밋 통합
  327. TRPAI00102
  328. TRPAI00107
  329. TRPAI00108
  330. TRPAI00121
  331. TRPAI00124
  332. TRPAI00125
  333. TRPAI00132
  334. TRPAI05008
  335. TRPAI05009
  336. TRPAI05010
  337. TRPAI00125는 다른곳에서도 호출 나머지는 삭제해도 됩니다.
  338. */
  339. model.copyNode("/root/main/iphs_info/h_grdipatinfo" , "/root/hidden2/all_info/pidinfo/h_grdipatinfo");
  340. model.copyNode("/root/main/iphs_info/h_opspec" , "/root/hidden2/all_info/pidinfo/h_opspec");
  341. model.copyNode("/root/main/iphs_info/h_iphscnt" , "/root/hidden2/all_info/pidinfo/h_iphscnt");
  342. model.copynode("/root/main/ermngtamtmsg/ermsg" , "/root/hidden2/all_info/pidinfo/h_ermsg/ermsg");
  343. model.copynode("/root/main/ermngtamtmsg/ermsg1" , "/root/hidden2/all_info/pidinfo/h_ermsg1/ermsg1");
  344. //model.copynode("/root/main/emr_ast_info/grdbabyhsct" , "/root/hidden2/all_info/pidinfo/h_grdbabyhsct/grdbabyhsct"); // 단일 노드 복사 수정 by 조중래 20141217
  345. copyNodesetType("/root/main/emr_ast_info/grdbabyhsct" , "/root/hidden2/all_info/pidinfo/h_grdbabyhsct/grdbabyhsct","replace");
  346. model.copynode("/root/main/prcpcodechk" , "/root/hidden2/all_info/pidinfo/h_prcpchk");
  347. model.copynode("/root/temp6/deathinfo" , "/root/hidden2/all_info/pidinfo/h_deathlist");
  348. model.copynode("/root/temp7/testrsrvinfo" , "/root/hidden2/all_info/pidinfo/h_testrsrvlist");
  349. model.copynode("/root/temp8/profcertinfo" , "/root/hidden2/all_info/pidinfo/h_profcertlist");
  350. model.copynode("/root/main/ipsc_info" , "/root/hidden2/all_info/pidinfo/h_retcspec");
  351. model.makeNode("/root/temp/result/h_famylist");
  352. model.copynode("/root/temp/result/h_famylist" , "/root/hidden2/all_info/pidinfo/h_famylist");
  353. model.makeNode("/root/send/charity/rcv");
  354. model.copynode("/root/send/charity/rcv" , "/root/hidden2/all_info/pidinfo/h_charity");
  355. model.makeNode("/root/send/suppmanage/rcv");
  356. model.copynode("/root/send/suppmanage/rcv" , "/root/hidden2/all_info/pidinfo/h_supp");
  357. model.makeNode("/root/temp/h_patprivacy");
  358. model.copynode("/root/temp/h_patprivacy" , "/root/hidden2/all_info/pidinfo/h_patprivacy");
  359. model.copyNode("/root/main/pat_info/h_emr_snw" , "/root/hidden2/all_info/pidinfo/h_emr_snw");
  360. model.copyNode("/root/main/pat_info/h_otpt_rsrv" , "/root/hidden2/all_info/pidinfo/h_otpt_rsrv");
  361. model.copyNode("/root/main/pat_info/h_unco_uncoamt" , "/root/hidden2/all_info/pidinfo/h_unco_uncoamt");
  362. model.copyNode("/root/main/pat_info/h_ptsp_specpat" , "/root/hidden2/all_info/pidinfo/h_ptsp_specpat");
  363. model.copyNode("/root/main/pat_info/h_capm" , "/root/hidden2/all_info/pidinfo/h_capm");
  364. model.copyNode("/root/main/pat_info/h_cshb_cashrcptnum" , "/root/hidden2/all_info/pidinfo/h_cshb_cashrcptnum");
  365. model.copyNode("/root/main/pat_info/h_dump_brgstcnt" , "/root/hidden2/all_info/pidinfo/h_dump_brgstcnt");
  366. model.copyNode("/root/main/pat_info/h_bldccnt" , "/root/hidden2/all_info/pidinfo/h_bldccnt");
  367. model.copyNode("/root/main/pat_info/h_cert" , "/root/hidden2/all_info/pidinfo/h_cert");
  368. model.copyNode("/root/main/pat_info/h_dump" , "/root/hidden2/all_info/pidinfo/h_dump");
  369. grd_inpatinfo.rebuild();
  370. fIphs_Info();
  371. var srow = grd_inpatinfo.row
  372. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  373. if (srow <= 0 ) {
  374. srow = 1;
  375. }
  376. //버튼 상테 셋팅
  377. fBtn_State();
  378. //현금영수증 의무화
  379. fCashQualCnfmno();
  380. //응급실 환자 응급의료관리료 정보 표시 //응급전원소견서 조회
  381. fER_mngt_msg(srow); //TRPAI00125 ok
  382. //산모, 신생아, 수혜자, 공여자 정보 조회
  383. fBabyHsct(); //TRPAI00107 ok
  384. //수익구분
  385. fCalcInfo("2"); //TRPAI00103 <- 여러곳에서 호출
  386. //B형간염 수직감염 접종, 성폭력kit, 음주채혈 체크
  387. //submit("TRPAI00124"); ok
  388. //진료비내역
  389. //fOrdAmtInfo(); //TRPAI00104 , TRPAI00131 <- 여러곳에서 호출
  390. //청구수납 내역
  391. //fRcptInfo("1"); //TRPAI00105 , TRPAI00106
  392. //진료비내역,청구수납 내역
  393. fRcpt_AllInfo("Y","Y","1");
  394. //응급실 퇴원심사 - 버튼 visility 여부 판단 -순천향버전 경북대 사용안함
  395. //fBtn_judg();
  396. //사망환자일 경우 외래접수내역조회 -순천향버전 경북대 사용안함
  397. //fDethordlist(); //TRPAI05008 ok test pid: 1172353
  398. //검사예약내역 -순천향버전 경북대 사용안함
  399. //fTestRsrv(); //TRPAI05009 ok test pid: 9876543
  400. //응급 6시간 미만 외래 부담율 정보 메세지
  401. fBrateflagMsg();
  402. //재원상태 보조유형 변경 체크
  403. fInsukindChk();
  404. // 퇴원이후에는 소급내역을 조회하지 않도록 수정 by 조중래 20130814
  405. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") != "D") {
  406. //소급내역 조회
  407. fRetcSpec(); //TRPAI00108 ok , TXPAI01801
  408. }
  409. //////////////////////////////////////////////환자 신규조회시 제공하는 정보들///////////////////////////////////////////////////////
  410. //제증명내역 -순천향버전 경북대 사용안함
  411. //fProfCert(); //TRPAI05010
  412. //감면환자 조회 //TRPMC03802 ok test pid: 3006639
  413. //fGetPsnWorkInfo_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2"),
  414. // model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),"Y");
  415. fGetPsnWorkInfo_pid_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") ,"Y");
  416. //미수금내역 여부 확인
  417. fUncoAmtChk();
  418. //보관금내역 여부 확인
  419. fKeepAmtChk();
  420. //자선환자 popup //TRPMO00121 ok test pid: 3006639
  421. fCheckCharityYN_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"), "Y");
  422. //후원금 환자 popup //TRPAI00132 ok
  423. fSuppManageYN_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"), "Y");
  424. // 사생활보호 요청 체크 //TRPMC06904 ok test pid: 1172353
  425. fGetPatPrivacyInfo_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") , "Y");
  426. // 격리병실 신청여부 체크
  427. fGetPatIsolateInfo(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_isolateinfo"));
  428. //////////////////////////////////////////////환자 신규조회시 제공하는 정보들 끝///////////////////////////////////////////////////////
  429. //소스 튜닝 마감
  430. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  431. //dump 헌혈증 내역 체크
  432. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "A") {
  433. //의급 1종, 차상위 1종, 희귀 H 환자는 메세지 안 뿌림.
  434. //if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != "21" &&
  435. // model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") != "32" &&
  436. // model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag") != "H") {
  437. var ibrgstcnt = 0;
  438. var strbrgstmsg="";
  439. for(var idx=1; idx<=getNodesetCount("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt"); idx++) {
  440. //if (model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstinrcptyn") == "N") {
  441. if (parseInt(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstcnt")) > 0) {
  442. ibrgstcnt = ibrgstcnt + parseInt(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstcnt"));
  443. //alert(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_orddd"));
  444. strbrgstmsg=strbrgstmsg+" "+ model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_orddd")+":"+parseInt(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstcnt"))+"건";
  445. }
  446. //}
  447. }
  448. var icnt = model.getValue("/root/main/pat_info/h_bldccnt/bldccnt/iscl_bldccnt");
  449. if (icnt>0 || ibrgstcnt>0){
  450. messageBox("수혈처방이 ["+ icnt + " 매], 외래 Dump된 수혈처방이 총:"+ibrgstcnt+"건, ["+ strbrgstmsg +"] 이 있습니다. 확인후 헌혈증서 제출시 수납하세요. ", "I999");
  451. }
  452. }
  453. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E" && model.getValue("/root/main/ermngtamtmsg/ermsg1/formrecseq") != "" ) {
  454. messageBox("응급전원소견서가 작성된 환자 입니다. 응급전원소견서를 발행하십시오.", "I999");
  455. }
  456. //금액표시기(응급, DSC, CHEMO)
  457. //필요시 주석 풀어서 사용
  458. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") != "I" ) {
  459. // var shngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  460. // var ircptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  461. // if (ircptamt != 0) {
  462. // fDisplayAmt(shngnm, ircptamt);
  463. // }
  464. // }
  465. //alert(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  466. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") != "-" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") != "") {
  467. ipt_onlnno.visible = true;
  468. } else {
  469. ipt_onlnno.visible = false;
  470. }
  471. var cert_pid = model.getValue("/root/main/pat_info/h_cert/cert/pid");
  472. if (cert_pid != "") {
  473. messageBox("당일 수납할 제증명 내역이 있습니다.", "I999");
  474. }
  475. var dumpexistyn = model.getValue("/root/hidden2/all_info/pidinfo/h_dump/dump/dumpexistyn");
  476. if (dumpexistyn == "Y") {
  477. messageBox("외래처방 덤프대상이 존재합니다. 확인하십시오.", "I999");
  478. }
  479. //var otpt_pid = getNodesetCount("/root/main/pat_info/otpt/pid")
  480. //if(otpt_pid > 0) {
  481. //messageBox("입원당일 외래건이 " + otpt_pid + "건 있습니다.", "I999");
  482. //}
  483. model.setFocus("ipt_rcptcd");
  484. }
  485. //20100401 현금영수증 의무화
  486. function fCashQualCnfmno() {
  487. if (getNodesetCount("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") > 0) {
  488. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != "" &&
  489. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != null &&
  490. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != "-" &&
  491. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != " ") {
  492. ipt_cardcashno.attribute("background-color") = "#ffff66";
  493. ipt_cardcashno.hint = "No : " + model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") + " ";
  494. } else {
  495. ipt_cardcashno.attribute("background-color") = "#ffffff";
  496. ipt_cardcashno.hint = "";
  497. }
  498. } else {
  499. ipt_cardcashno.attribute("background-color") = "#ffffff";
  500. ipt_cardcashno.hint = "";
  501. }
  502. ipt_cardcashno.refresh();
  503. }
  504. // 수익구분
  505. function fCalcInfo(flag) {
  506. var srow = grd_inpatinfo.row
  507. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  508. if (srow <= 0 ) {
  509. srow = 1;
  510. }
  511. //청구수납tab으로 변경
  512. if (flag == "2") {
  513. btn_clamrcpt.selected= true;
  514. btn_clamrcpt.dispatch("xforms-activate");
  515. }
  516. model.resetInstanceNode("/root/send/data1");
  517. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  518. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  519. model.makeValue("/root/send/data1/dschdd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  520. model.makeValue("/root/send/data1/disccd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_disccd"));
  521. model.makeValue("/root/send/data1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  522. model.makeValue("/root/send/data1/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  523. model.makeValue("/root/send/data1/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  524. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  525. if (flag == "1") {
  526. submit("TRPAI00103");
  527. //수익구분에서 사용할 정보
  528. model.resetInstanceNode("/root/hidden/earnflag");
  529. model.copyNode("/root/hidden/earnflag", "/root/send/data1");
  530. }
  531. }
  532. // 선택진료 사인여부 체크
  533. function fCheckSpecOrdApp(){
  534. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")); //환자번호
  535. model.makeValue("/root/send/data1/instcd", model.getValue("/root/hidden/session/posinstcd")); //기관코드
  536. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")); //입원일자
  537. model.makeValue("/root/send/data1/orddeptcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd")); //진료과
  538. model.makeValue("/root/send/data1/medispclid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")); //진료의
  539. model.makeValue("/root/send/data1/ordtype", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); //진료형태
  540. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno")); //생성번호
  541. submit("TRPAI00138");
  542. var signFlag = true;
  543. for(var idx =1; idx<=getNodesetCount("/root/hidden/spiflist/spiflist"); idx++) {
  544. if (model.getValue("/root/hidden/spiflist/spiflist[" + idx + "]/spifyn") == "N") {
  545. signFlag = false;
  546. }
  547. }
  548. if (signFlag == false) {
  549. messageBox("선택진료신청서 미작성내역이 존재합니다.", "E000");
  550. modal("SPPAI00103", "1", "100", "100" ,"SPPAI00103", "/root/hidden/spiflist", "/root/main/spiflist");
  551. }
  552. /* 선택진료신청서 작성여부 체크로직 수정 - icdr 기준으로 체크 by 조중래 20130228
  553. submit("TRPAI00133");
  554. // 20091125 수정 JHP /root/main/admicheck/rgst 변경 -> /root/main/admicheck1/rgst /root/main/admicheck/admichecklist하고 인스턴스중복남
  555. if (model.getValue("/root/main/admicheck1/rgst/rgstyn") == "N") {
  556. var sOrddeptcd = instance1.selectSingleNode("/root/hidden/init/orddeptcd[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']");
  557. if (sOrddeptcd == null) {
  558. var sOrddeptcdMsg = "";
  559. } else {
  560. var sOrddeptcdMsg = "[" + sOrddeptcd.nm.nodeValue + "]";
  561. }
  562. var sOrddrid = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']");
  563. if (sOrddrid == null) {
  564. var ssOrddridMsg = "";
  565. } else {
  566. var sOrddridMsg = " [" + sOrddrid.nm.nodeValue + "]";
  567. }
  568. sMsg = sOrddeptcdMsg + sOrddridMsg
  569. var sMsgFooter;
  570. var msgResult;
  571. var specamt1 = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_specinsubamt"));
  572. var specamt2 = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_specownbamt"));
  573. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") != "E"){
  574. sMsgFooter = " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?";
  575. msgResult = messageBox(sMsg + sMsgFooter, "Q999", ""); // yes = 6, no = 7, cancel = 2
  576. } else if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E"
  577. && (specamt1 + specamt2) > 0) {
  578. sMsgFooter = " 선택진료비가 발생하였으나 선택진료 등록이 되어있지 않습니다!!!\r\n"
  579. + " 선택진료신청서를 받아주십시요.";
  580. messageBox(sMsg + sMsgFooter, "E000"); // ok = 2
  581. msgResult = 6
  582. }
  583. if( msgResult == 6){
  584. var s_pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  585. var s_ordtype = "I";
  586. var s_orddd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  587. var s_orddeptcd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd");
  588. var s_orddrid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid");
  589. var s_fromdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  590. var s_hngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  591. var s_rrgstno1 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1");
  592. var s_rrgstno2 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2");
  593. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  594. return true;
  595. }
  596. }
  597. */
  598. }
  599. function trim(str){
  600. str = str.replace(/(^\s*)|(\s*$)/g,"");
  601. return str;
  602. }
  603. //외래전환 내역 조회
  604. function fDumpInfo() {
  605. var srow = grd_inpatinfo.row
  606. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  607. if (srow <= 0 ) {
  608. srow = 1;
  609. }
  610. model.resetInstanceNode("/root/send/data1");
  611. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  612. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  613. model.makeValue("/root/send/data1/dschdd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  614. model.makeValue("/root/send/data1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  615. model.makeValue("/root/send/data1/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  616. model.makeValue("/root/send/data1/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  617. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  618. model.makeValue("/root/send/data1/insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  619. model.makeValue("/root/send/data1/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  620. model.makeValue("/root/send/data1/rcptkind", model.getValue("/root/hidden/rcptkind"));
  621. model.resetInstanceNode("/root/hidden/admi_info/dumplist");
  622. model.resetInstanceNode("root/main/admi_info/dumplist");
  623. submit("TRPAI00110","true");
  624. copyNodeType("/root/main/admi_info/dumplist","/root/hidden/admi_info/dumplist","replace");
  625. model.refresh();
  626. //setTree(grddumplist, 0, 0, true,2);
  627. //var scnt = getNodesetCount("/root/main/admi_info/dumplist");
  628. //if (scnt>1)
  629. //{
  630. // setTree(grddumplist, 0, 0,true,2);
  631. // model.refresh();
  632. //}
  633. }
  634. //생년월일로 나이계산을 한다.
  635. function fAgeCalc() {
  636. if (isValidDateTime(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brthdd"), "YYYYMMDD")==true) {
  637. var sage=getFullAge(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brthdd"));
  638. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_age", sage);
  639. }
  640. }
  641. // 입원일수계산 퇴원전일 경우 현재일자로 입원일수를 계산한다.
  642. function fInDayNo() {
  643. if ((isValidDateTime(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"), "YYYYMMDD")==true) && (isValidDateTime(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"), "YYYYMMDD")==true)) {
  644. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") == "99991231") {
  645. //퇴원통보가 있을 경우 퇴원통보 일로 계산
  646. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "-") {
  647. var sdschdd = getCurrentDate();
  648. } else {
  649. var sdschdd = (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  650. }
  651. } else {
  652. var sdschdd = (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  653. }
  654. var sdayno=getDateInterval(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"), sdschdd);
  655. sdayno++;
  656. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dayno", sdayno);
  657. }
  658. model.setValue("/root/hidden/etc2", cmb_orddeptcd.label);
  659. model.setValue("/root/hidden/etc3", cmb_medispclid.label);
  660. model.setValue("/root/hidden/etc4", cmb_roomgrdecd.label);
  661. model.setValue("/root/hidden/etc5", cmb_insukind.label);
  662. model.setValue("/root/hidden/etc6", cmb_disccd.label);
  663. }
  664. function fInPatInfo() {
  665. var snode = instance1.selectSingleNode("/root/hidden/inpt_info").cloneNode(true);
  666. model.copyNode("/root/main/inpt_info", snode);
  667. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt", "");
  668. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt", "");
  669. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt", "");
  670. model.refresh();
  671. copyNodesetType("/root/main/inpt_info","/root/hidden/inpt_info","replace");
  672. var scount = getNodesetCount("/root/main/inpt_info/inptpatinfo");
  673. model.removenode("/root/hidden/item01");
  674. model.makeNode("/root/hidden/item01");
  675. for (var i = 1; i <= scount; i++) { //입원일이 2개 이상일 경우 입원일을 별도로 저장하여 combo 입력한다.
  676. var sindd = model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_indd");
  677. var sOrdType = model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_ordtype");
  678. if (sOrdType == "I") {
  679. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  680. sOrdType = "IN";
  681. } else {
  682. sOrdType = "IN/O";
  683. }
  684. } else if (sOrdType == "E") {
  685. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  686. sOrdType = "ER";
  687. } else {
  688. sOrdType = "ER/O";
  689. }
  690. } else {
  691. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  692. sOrdType = "D/C"
  693. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "DSC") {
  694. sOrdType = "DSC"
  695. } else if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "CHEMO") {
  696. sOrdType = "CHEMO"
  697. }
  698. } else {
  699. sOrdType = "D/C/O"
  700. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "DSC") {
  701. sOrdType = "DSC/O"
  702. } else if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "CHEMO") {
  703. sOrdType = "CHEMO/O"
  704. }
  705. }
  706. }
  707. model.makeValue("/root/hidden/item01/indd["+ i +"]/indd1", sindd.substr(0, 4) + "-" + sindd.substr(4,2) + "-" + sindd.substr(6,2) + " " + sOrdType);
  708. model.makeValue("/root/hidden/item01/indd["+ i +"]/indd2", sindd);
  709. }
  710. // 20091215 JHP 수정추가 중증에 희귀 존재할시에 콤보박스로 보여주기
  711. fItemRareMsg();
  712. model.setValue("/root/hidden/etc7", model.getValue("/root/hidden/item01/indd/indd1"));
  713. model.refresh();
  714. }
  715. //수납방법 선택시 card, cash에 납부할 금액을 setting
  716. function fRcptMthd(sflag) {
  717. //신용카드
  718. if(sflag == "1"){
  719. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt" , model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt") -model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt"));
  720. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt" , "0");
  721. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  722. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  723. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  724. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  725. model.setFocus("ipt_cardcashno");
  726. //현금영수증
  727. }else if (sflag == "2"){
  728. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt" , model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt") - model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt"));
  729. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt" , "0");
  730. //현금영수증승인번호가 저장되어 있을 경우 저장된 내역으로 화면에 표시
  731. //20100401 현금영수증 의무화
  732. // 02-미승인
  733. if (model.getValue("/root/main/admi_info/rcptmthd/cashmthd") == "02"){
  734. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "02"); //00-소득공제, 01-지출증빙, 02-미승인
  735. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm"));
  736. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "2");
  737. // 01-소득공제, 02-지출증빙
  738. } else {
  739. // 사전 등록된 신분확인번호가 없는 경우 주민번호로 설정
  740. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") == "" || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") == null) {
  741. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno"));
  742. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "1");
  743. // 사전 등록된 신분확인번호가 있는 경우 해당 번호로 설정
  744. } else {
  745. // ICPos의 경우 저장된 현금영수증 카드번호 사용불가처리 by 조중래 20160429
  746. if (model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm") == "KOCES_IC"
  747. && model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") == "3") {
  748. messageBox("현재 신분확인번호가 카드번호로 저장되어있습니다. \r\nIC단말기의 경우 저장된 카드번호는 사용불가입니다.\r\nIC단말기에서 카드리딩/번호입력하세요!!", "E000");
  749. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  750. } else {
  751. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno"));
  752. }
  753. // 사업자번호
  754. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") == "4") {
  755. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "01"); //00-소득공제, 01-지출증빙, 02-미승인
  756. } else {
  757. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  758. }
  759. }
  760. }
  761. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  762. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "");
  763. model.setFocus("ipt_cardcashno");
  764. // 현금
  765. } else if (sflag == "3") {
  766. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt" , model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt") - model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt"));
  767. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt" , "0");
  768. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  769. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  770. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  771. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  772. }
  773. model.refresh();
  774. }
  775. //수납처리
  776. function fRcptProcess() {
  777. // 수납자 마감여부 체크하여 처리
  778. if (isMagmAprv()) {
  779. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  780. }
  781. // 환자번호 체크 (20140927 이정택)
  782. var ipt_pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  783. var iphs_pid = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[1]/iphs_pid");
  784. var rtn = "6";
  785. if(ipt_pid!=iphs_pid){
  786. rtn=messageBox("수납하실려는 환자번호["+iphs_pid+"]와 입력된 환자번호["+ipt_pid+"]가\n동일하지 않습니다. 계속 진행", "S001", "");
  787. if(rtn=="7"){
  788. return false;
  789. }else if(rtn=="2"){
  790. return false;
  791. }
  792. }
  793. // 환자번호 체크 (20140927 이정택)
  794. //리셋인스턴스
  795. model.removeNodeset("/root/send/rcptinfo/inpt_info/inptpatinfo");
  796. model.removeNodeset("/root/send/rcptinfo/iphs_info/grdipatinfo");
  797. model.makeNode("/root/send/rcptinfo/inpt_info/inptpatinfo");
  798. model.makeNode("/root/send/rcptinfo/iphs_info/grdipatinfo");
  799. //현금수납시 자동 현금영수증 처리
  800. if (model.getValue("/root/init/option/autocashyn") == "Y") {
  801. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "3") {
  802. var vRcptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"));
  803. //20100401 현금영수증 의무화
  804. if (model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm") != "" && model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm") != null) {
  805. if (vRcptamt >= parseInt(model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm"))) {
  806. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" ,"2"); //수납방법-현금
  807. //model.setvalue("/root/main/admi_info/rcptmthd/cashmthd" ,"00"); //소득공제
  808. var sflag = rdo_rcptmthd.value;
  809. fRcptMthd(sflag);
  810. fCardCashNo(); //카드 현금영수증 승인 내역 setting
  811. }
  812. } else {
  813. messageBox("현금영수증 최소금액이 등록되어 있지 않습니다. 확인하여 주십시오.[P0022/161]","I999","");
  814. }
  815. }
  816. }
  817. var srow = grd_inpatinfo.row
  818. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  819. if (srow <= 0 ) {
  820. srow = 1;
  821. }
  822. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == null) {
  823. messageBox("수납 할 입원내역이","I004","");
  824. return;
  825. }
  826. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == "" || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == null) {
  827. messageBox("수납 할 재원정보가","I004","");
  828. return;
  829. }
  830. // 임상환자 등록여부 검증은 주유형일때만 하도록 수정 by 조중래 20140114
  831. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "71"
  832. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") == "M"
  833. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_clincyn") == "N" ) {
  834. messageBox("임상환자 등록이 되지 않았습니다. 확인하십시오.", "E999");
  835. return;
  836. }
  837. var srcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag");
  838. // drg 적용여부를 가져온다 ("Y"일 경우만 DRG 영수증 적용)
  839. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  840. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  841. if (srcptflag != "C01") {
  842. messageBox("마이그레이션 데이터는 수납처리 할 수 없습니다.","I999","");
  843. return;
  844. }
  845. }
  846. // drg의 경우 반드시 입원요율이 적용되어야 함 by 조중래 20130627
  847. if (drgflag == "Y" && srcptflag == "B31" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O") {
  848. messageBox("DRG환자의 경우 외래요율로 퇴원수납(B31)할 수 없습니다.", "C000");
  849. return;
  850. // drg환자임에도 불구하고 paihiscl에 DRGAMT / DRGCMT가 존재하지 않는 경우(행위별 계산처리됨)
  851. } else if (drgflag == "Y"
  852. && parseInt(model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgamtcnt")) < 1) {
  853. messageBox("DRG환자에 대해 DRG계산내역이 존재하지 않습니다. \r\n심사과에 DRG계산 요청하십시오.", "C000");
  854. return;
  855. // admi의 drgno 설정용
  856. } else if (drgflag == "Y" && (srcptflag == "B21" || srcptflag == "B31")) {
  857. model.setValue("/root/main/admi_info/ordamt/admispec/admi_drgno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgno"));
  858. } else {
  859. model.setValue("/root/main/admi_info/ordamt/admispec/admi_drgno", "");
  860. }
  861. // 2013년 10월 1일 이후 의료급여환자 외래요율퇴원 시 감면코드(F002) 설정하도록 제어 - 20131004 조중래
  862. if (srcptflag == "B21" || srcptflag == "B31") {
  863. // 의료급여 선택진료비 100% 감면적용(2015/09/10)
  864. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") >= "20150910"
  865. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  866. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  867. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "-") {
  868. alert("의료급여1/2종 환자의 경우 2015년 9월 10일 이후 퇴원 시 \r\n선택진료비 100% 감면코드를 반드시 설정해야합니다.");
  869. return;
  870. // 의료급여 선택진료비 50% 감면적용(2013/10/01)
  871. } else if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") >= "20131001"
  872. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O"
  873. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  874. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  875. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "-") {
  876. alert("의료급여1/2종 환자의 경우 2013년 10월 1일 이후 외래요율 퇴원 시 \r\n선택진료비 50% 감면코드를 반드시 설정해야합니다.");
  877. return;
  878. // 의료급여1/2종이 아니거나 의료급여1/2종 입원요율의 경우는 F002코드 적용불가
  879. } else if (((model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") != "21"
  880. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") != "22")
  881. // || ((model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  882. // || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  883. // && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "I")
  884. )
  885. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "F002") {
  886. // alert("선택진료비 50% 감면코드는 의료급여1/2종 외래요율 퇴원시에만 적용가능합니다. \r\n감면코드를 재설정하십시요. ");
  887. alert("선택진료비 감면코드는 의료급여1/2종만 적용가능합니다. \r\n감면코드를 재설정하십시요. ");
  888. return;
  889. }
  890. var disccd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd");
  891. // 미용목적성형의 경우 감면정보 적용여부 점검 by 조중래 20140217
  892. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "51" && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_suppkind") == "85") {
  893. // 모발이식센터이외의 경우 블러킹
  894. if (disccd != '-' && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_orddeptcd") != "2450000000") {
  895. alert("미용목적성형의 경우, 감면적용이 불가능합니다.");
  896. return false;
  897. }
  898. // 모발이식센터의 경우라도 모발관련(PK059) 코드가 아니면 블러킹
  899. if (disccd != '-' && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_orddeptcd") == "2450000000" && model.getValue("/root/init/PAM/PK059list/PK059[cdid='" + disccd + "']/cdnm") != "Y") {
  900. alert("모발이식센터의 경우 모발이식관련 감면코드만 적용가능합니다.\r\n(원무공통코드 - PK059)");
  901. return false;
  902. }
  903. }
  904. // 새마을금고 감면코드 수납 불가 처리
  905. if (disccd == "E140" || disccd == "E150" || disccd == "E155" || disccd == "E156") {
  906. messageBox("새마을금고 감면코드는 수납 하실 수 없습니다.", "E999", "");
  907. return false;
  908. }
  909. }
  910. // 자보환자 사고접수번호 확인용 제어 추가 by 조중래 20130706
  911. if (srcptflag == "B31"
  912. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "31"
  913. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_suppkind") != "01") {
  914. // 자보 + 전액본인부담 이외의 경우 사고접수번호는 필수
  915. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd") == ""
  916. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd") == "-") {
  917. messageBox("자보 전액본인부담 이외의 경우 퇴원수납(B31) 시 반드시 보험사코드가 있어야합니다.\r\n자보등록정보를 확인 하신 후 재원변경에서 수정하십시오.", "C000");
  918. return false;
  919. }
  920. // 자보 + 전액본인부담 이외의 경우 지불보증번호는 필수
  921. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_paygrntnoyn") != "Y") {
  922. messageBox("자보 전액본인부담 이외의 경우 퇴원수납(B31) 시 반드시 지불보증번호가 있어야합니다.\r\n자보등록정보를 확인 하신 후 재원변경에서 수정하십시오.", "C000");
  923. return false;
  924. }
  925. }
  926. // 보험사 코드는 퇴원수납일 경우에만 설정
  927. if (srcptflag == "B31" && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "31") {
  928. // 자보 보험사코드 설정
  929. model.setValue("/root/main/admi_info/ordamt/admispec/admi_insucd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd"));
  930. }
  931. if (srcptflag == "B31" || srcptflag == "B41") {
  932. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) < 0) {
  933. var iRcpt = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  934. for(var a=1; a<=iRcpt; a++) {
  935. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptstat") == "Y") {
  936. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptflag") == "B01"
  937. || model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptflag") == "B21") {
  938. if (parseInt(model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/cashamt")) > 0) {
  939. messageBox("현금영수증내역을 확인 하십시오.","I999","");
  940. break;
  941. }
  942. }
  943. }
  944. }
  945. }
  946. }
  947. // 재원유형기간 중 주치의 휴진등록 되어있는 경우 퇴원수납(B31) 블러킹 처리
  948. // 심사팀 요청 있을때까지 무기한 적용 연기
  949. //if (srcptflag == "B31" && fGetDrHoliInfo("Y") != true) {
  950. // return false;
  951. //}
  952. /*
  953. * 불필요 판단 주석처리 - 20130418 서원식
  954. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "21" || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "22") {
  955. //산전지원금 상한체크
  956. //2011-04-01시점으로 4만원 -> 6만원으로 상한조정됨 by 조중래
  957. var tempIndd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  958. if(tempIndd < "20130422"){
  959. if (tempIndd >= "20110401") {
  960. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")) > 60000) {
  961. messageBox("산전진료비 수납금액은 1일 60,000원을 초과 할 수 없습니다.", "I999");
  962. return;
  963. }
  964. } else {
  965. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")) > 40000) {
  966. messageBox("산전진료비 수납금액은 1일 40,000원을 초과 할 수 없습니다.", "I999");
  967. return;
  968. }
  969. }
  970. }
  971. }
  972. */
  973. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt") == "0") {
  974. messageBox("산전진료비 수납을 체크 하셨습니다. 산전진료비를 입력하십시오.", "I999");
  975. return;
  976. }
  977. //수납전 보험, 보조유형 재세팅
  978. model.setValue("/root/main/admi_info/ordamt/admispec/admi_insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  979. model.setValue("/root/main/admi_info/ordamt/admispec/admi_suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  980. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orddeptcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_orddeptcd"));
  981. model.setValue("/root/main/admi_info/ordamt/admispec/admi_medispclid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_medispclid"));
  982. //납부할 금액과 실수납금액 비교
  983. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) !=
  984. (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt"))
  985. + parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"))
  986. + parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt"))
  987. )) {
  988. if (messageBox("납부할금액과 실수납할 금액에 차이가 있습니다. 수납을 진행하시겠습니까?", "Q999","") == 7) {
  989. return;
  990. }
  991. }
  992. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "08") {
  993. messageBox("6세 미만 외래요율 환자입니다. 보조유형을 변경하십시오.","E999","");
  994. return;
  995. }
  996. //20091111-외래요율 신생아인 경우 수납처리시 보조유형을 변경처리 메시지
  997. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "31") {
  998. messageBox("신생아 외래요율 환자입니다. 보조유형을 변경하십시오.","E999","");
  999. return;
  1000. }
  1001. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "I" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "07") {
  1002. messageBox("외래요율 환자입니다. 산정특례를 적용할 수 없습니다. 보조유형을 변경하십시오.","E999","");
  1003. return;
  1004. }
  1005. // 입원요율과 계산요율이 다를 경우 수납불가
  1006. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") != model.getValue("/root/main/admi_info/ordamt/admispec/admi_brateflag")
  1007. && (srcptflag == "B31" || srcptflag == "B21")) {
  1008. messageBox("실제 입원요율과 계산요율이 상이합니다. 재계산 후 수납처리하십시오.","E999","");
  1009. return;
  1010. }
  1011. //var slastmdlclamdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_lastmdlclamdd");
  1012. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  1013. var sordtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  1014. var sbrateflag = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag");
  1015. var sjudgrcsstat = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat");
  1016. var dschrcptflag = "";
  1017. var dschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  1018. if ((srcptflag == "") || (srcptflag == null)) {
  1019. messageBox("수납계정이 없습니다. 수납계정을","C001","");
  1020. model.setFocus("ipt_rcptcd");
  1021. return;
  1022. }
  1023. if ((model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") == "21" ||
  1024. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") == "22") &&
  1025. model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt") != "0" &&
  1026. srcptflag != "B31" && sbrateflag =='O') {
  1027. messageBox("건강생활유지비는 퇴원수납(B31)일 경우만 수납처리 가능합니다. 해당 계정으로 수납처리 할 수", "I004");
  1028. return;
  1029. }
  1030. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt") != "0" && sbrateflag == 'I') {
  1031. messageBox("입원환자는 건강생활유지비를 발생할 수 없습니다. 확인해 주십시오.", "I999");
  1032. return;
  1033. }
  1034. if (srcptflag == "B01" || srcptflag == "B51" ) {
  1035. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt/rcptflag") != "") {
  1036. var iRcptRow1 = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  1037. for(var iRcptRow=1; iRcptRow<=iRcptRow1; iRcptRow++) {
  1038. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptstat") == "Y") {
  1039. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptflag") == "E70") {
  1040. messageBox("퇴원청구(E70)계정이 생성되어 있습니다. 해당 계정으로 수납처리(취소) 할 수", "I004");
  1041. fInitialize("inpatinfo");
  1042. fDschamtVisible(false);
  1043. fCalcInfo("2");
  1044. //fOrdAmtInfo(); //진료비내역
  1045. //fRcptInfo("1");
  1046. //진료비내역,청구수납 내역
  1047. fRcpt_AllInfo("Y","Y","1");
  1048. return;
  1049. }
  1050. }
  1051. }
  1052. }
  1053. }
  1054. // 퇴원수납 시 복수연도에 대해서 본인부담상한금액이 존재하는 경우, 강제분리하여 수납하도록 유도 by 조중래 20140331
  1055. if (srcptflag == "B31"
  1056. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == '11'
  1057. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '01') {
  1058. var fromdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd").substr(0, 4);
  1059. var todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd").substr(0, 4);
  1060. // 제일 마지막 통의 경우 종료일자가 9999/12/31 이므로 퇴원통보일로 보정처리
  1061. if (todd == '9999') {
  1062. todd = dschnotidt.substr(0, 4);
  1063. }
  1064. // 본인부담상한금이 존재하고, 시작/종료연도가 다른 경우 NG
  1065. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payownblimamt")) > 0
  1066. && fromdd != todd) {
  1067. alert("복수연도에 본인부담상한금액이 존재하는 경우 반드시 유형을 분리하십시오.");
  1068. return false;
  1069. }
  1070. }
  1071. // 퇴원수납 시, 유형강제분리를 한 경우 반드시 미수생성 by 조중래 20150327
  1072. if (srcptflag == "B31"
  1073. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_forcesepcd") != null
  1074. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_forcesepcd") != "")
  1075. && (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") == null
  1076. || model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") == 0)) {
  1077. messageBox("유형분리사유가 입력된 경우, 미수금액을 반드시 입력하셔야 합니다.", "I999","");
  1078. return;
  1079. }
  1080. /*
  1081. JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 주석처리함
  1082. if (sbrateflag == "O" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1083. var iInAmtChk = parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/payamt1")) +
  1084. parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/nopyamt1")) +
  1085. parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/specamt1"));
  1086. if (iInAmtChk > 0) {
  1087. //blocking 하지 않음. 메세지 처리13401
  1088. if (messageBox("외래요율환자에게 입원료가 존재합니다. 반드시 확인 하십시오. 수납을", "Q003") == 7) {
  1089. return;
  1090. }
  1091. }
  1092. }
  1093. */
  1094. //################# 퇴원확정일자 이후에 액팅된 처방인 있는 경우 메시지 처리 시작#######################################
  1095. var strexecddnotiyn=model.getValue("/root/main/admicheck/admichecklist/execddnotiyn");
  1096. if( (srcptflag == "B31") && (strexecddnotiyn=="Y")){
  1097. messageBox("퇴원확정 이후에 액팅 된 처방이 있습니다. 보험심사팀 또는 진료에 ","I007");
  1098. return;
  1099. }
  1100. //################# 퇴원확정일자 이후에 액팅된 처방인 있는 경우 메시지 처리끝 #######################################
  1101. //################# 시작 : JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 기존로직 주석처리하고 이 로직 추가함. #########################
  1102. var smskind = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind");
  1103. if(smskind == "M"){
  1104. submit("TRPAI00130");
  1105. if (sbrateflag == "O" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1106. var iInAmtChk = model.getValue("/root/temp4/brateflagchk/chk/yn");
  1107. if (iInAmtChk == "Y") {
  1108. //blocking 하지 않음. 메세지 처리13401
  1109. messageBox("외래요율환자에게 입원료가 존재합니다. 수가계산을 다시 하십시요. 수납승인을 ", "E001");
  1110. return;
  1111. }
  1112. }else if (sbrateflag == "I" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1113. var iInAmtChk = model.getValue("/root/temp4/brateflagchk/chk/yn");
  1114. var dschNotidd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  1115. var dschNotitm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(8, 4);
  1116. // 퇴원당일만 유형이 분리된 경우는 제외(단, 1800 이후 퇴원시는 포함)
  1117. if (iInAmtChk == "N"
  1118. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") != dschNotidd
  1119. || (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == dschNotidd
  1120. && dschNotitm >= 1800))) {
  1121. //blocking 하지 않음. 메세지 처리13401
  1122. if (messageBox("입원요율환자에게 입원료가 존재하지 않습니다. 반드시 확인 하십시오. 수납을", "Q003") == 7) {
  1123. return;
  1124. }
  1125. }
  1126. }
  1127. }
  1128. //################# 끝 : JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 기존로직 주석처리하고 이 로직 추가함. #########################
  1129. // 의료급여 + 정신과 + 외래요율 + 원외퇴원약 존재하는 경우 퇴원수납 제어 by 조중래 20150206
  1130. // 해당 조건은 sql에 적용되어있으므로 카운터만으로 체크 실시
  1131. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdrugcnt") > 0 && (srcptflag == "B21" || srcptflag == "B31")) {
  1132. messageBox("의료급여 정신과 외래요율 퇴원환자에게 원외약이 존재합니다. \r\n퇴원약을 확인하시기 바랍니다. ", "E999");
  1133. return;
  1134. }
  1135. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "T" && srcptflag == "B31") {
  1136. } else {
  1137. if (srcptflag == "C01" || srcptflag == "B41") {
  1138. } else {
  1139. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") == "Y") {
  1140. messageBox("선택한 재원정보는 이미수납처리 되었습니다.\n수정하시려면 수납취소 후 처리하십시오.","E999","");
  1141. return;
  1142. }
  1143. }
  1144. }
  1145. //주/부로 입원 되어 있는 경우 체크 해야 함.
  1146. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")
  1147. == model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"))) {
  1148. sdschrcptflag = "D";
  1149. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "D");
  1150. } else if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") != "99991231")) {
  1151. sdschrcptflag = "R";
  1152. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "R");
  1153. } else {
  1154. sdschrcptflag = "-";
  1155. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "-");
  1156. }
  1157. //부유형(임상등) 취소시 iphs에 rcptyn이 Y로 남아있는 케이스 문제로 아래 IF문 추가 20110401 cys
  1158. //원래는 위에 if문만 있어야 합니다.
  1159. //수납할때 admi_dschrcptflag -> D , iphs_rcptyn -> Y 로 됩니다. 만약 B31인데 admi_dschrcptflag값이 -로 들어가면 취소시 rcptyn이 N으로 못돌아가는 문제가 생깁니다.
  1160. //그래서 아래 if문 추가합니다. 본인 생각으론 아래 if필요없고 위에서 B31일때 무조건 admi_dschrcptflag -> D 하면 될것같은데(경북대는 중간청구가 없습니다)
  1161. //상황이 여의치 않아 아래if문을 추가해서 부유형일때만 예외처리를 한번 더 해줍니다.
  1162. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind")== "S")
  1163. // 2013-07-17 조건절 추가 - 위 조건으론 유형이 분리된 부유형 앞 기간이 유형을 수납할 때도 무조건 퇴원처리됨.
  1164. // 마지막 유형을 수납할때만 퇴원되도록 조건 추가 by 조중래
  1165. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231")) {
  1166. sdschrcptflag = "D";
  1167. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "D");
  1168. }
  1169. //중간청구가 되지 않으면 유형에 대하여 수납처리를 할 수 없도록 blocking
  1170. //재원심사여부로 체크 해야 할지.?
  1171. if ((sjudgrcsstat == "A" && sdschrcptflag == "R" && srcptflag == "B31") && (slastmdlclamdd == "" || slastmdlclamdd == "-" || slastmdlclamdd == "00000000")) {
  1172. messageBox("보험 중간청구가 되어 있지 않아 수납처리를", "E001", "");
  1173. return;
  1174. }
  1175. if ((sjudgrcsstat == "A" && sdschrcptflag == "R" && srcptflag == "B31") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") > slastmdlclamdd)) {
  1176. messageBox("보험 중간청구가 되어 있지 않아 수납처리를", "E001", "");
  1177. return;
  1178. }
  1179. //dschrcptflag : R --> 가퇴원 수납할 수 없도록 체크, 이전 수납하지 않았으면 수납 할 수 없도록 체크
  1180. //B31 체크시 확인
  1181. //B21 수납시 이전 수납내역 체크 하 않음. 퇴원 수납시만 체크 요청
  1182. //B31,21 둘다 체크 경북대는 같은보험유형 2줄보일수있으므로. 20110213 cys
  1183. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  1184. /*
  1185. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow + 1) +"]/iphs_rcptyn") == "N")) {
  1186. if (srcptflag == "B31" && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow + 1) +"]/iphs_rcptyn") == "N") {
  1187. messageBox("이전 재원 유형이 수납되어 있지 않습니다. 현재 유형을 수납처리를", "E001", "");
  1188. return;
  1189. }
  1190. */
  1191. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  1192. if (srcptflag == "B31" || srcptflag == "B21") {
  1193. if(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_todd < '" + iphs_todd + "' and iphs_rcptyn = 'N']/iphs_todd") > 0) {
  1194. messageBox("이전 재원 유형이 수납되어 있지 않습니다. 현재 유형을 수납처리를", "E001", "");
  1195. return;
  1196. }
  1197. }
  1198. if (srcptflag == "B31") {
  1199. if(getNodesetCount("/root/main/admi_info/admi/grdclamrcpt[todd = '" + iphs_todd + "' and rcptstat = 'Y' and rcptflag = 'B31']/rcptflag") > 0) {
  1200. messageBox("B31계정으로 이미 수납한 건입니다.", "E999", "");
  1201. return;
  1202. }
  1203. }
  1204. if (srcptflag == "B21") {
  1205. if(getNodesetCount("/root/main/admi_info/admi/grdclamrcpt[todd = '" + iphs_todd + "' and rcptstat = 'Y' and rcptflag = 'B21']/rcptflag") > 0) {
  1206. messageBox("B21계정으로 이미 수납한 건입니다.", "E999", "");
  1207. return;
  1208. }
  1209. }
  1210. //부유형이 존재할 경우 주유형 수납전에 부유형이 먼져 수납되어야 함.
  1211. //중간금은 수납 할 수 있어야 함.
  1212. //if (srcptflag == "B31" || srcptflag == "B21") {
  1213. if (srcptflag == "B31") {
  1214. for (i = 1; i <= getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo"); i++) {
  1215. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "S" &&
  1216. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "N") {
  1217. messageBox("주유형 수납전에 부유형을 수납하셔야 합니다.", "E999");
  1218. return;
  1219. }
  1220. }
  1221. }
  1222. }
  1223. if ((srcptflag != "B01") && (srcptflag != "B11") && (srcptflag != "B21") && (srcptflag != "B31") && (srcptflag != "B41") && (srcptflag != "C01")) {
  1224. messageBox("입력된 수납계정으로는 수납처리를", "E001","");
  1225. return;
  1226. }
  1227. // 감면코드 유효성검증에 문제가 있는경우 퇴원수납(B31) 불가
  1228. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dcucynfrom") == "N"
  1229. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dcucynto") == "N") {
  1230. messageBox("감면코드가 유효하지 않습니다. 유형별 감면코드를 확인하십시요.", "E999");
  1231. return;
  1232. }
  1233. //가퇴원일 경우 심사 여부는 체크하지 않는다.
  1234. if ((srcptflag == "B31") ||(srcptflag == "B21")) {
  1235. var stime = getCurrentTime();
  1236. var sdate = getCurrentDate();
  1237. //차후 간호입실 시간으로 시간 계산 함.
  1238. var schkcalcdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_calcdd")
  1239. if (schkcalcdd == "-" || schkcalcdd == null || schkcalcdd == "" || schkcalcdd == "00000000") {
  1240. messageBox("간호 입실 체크 되지 않았습니다. 확인하여 주십시오.", "E999", "");
  1241. return;
  1242. } else {
  1243. if ((sordtype != "I") && (sbrateflag == "-" || sbrateflag == null || sbrateflag =="")) {
  1244. messageBox("[응급, DSC] 계산 요율이 없어 수납처리를", "E001", "");
  1245. return;
  1246. } else if (sordtype == "I") {
  1247. //별도 시간 체크 하지 않음. 간호에서 외래 요율 계산해서 넣기로 함.
  1248. // var sintime = getTimeInterval(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_calctm"),stime.substr(0,4)) / 60 ;
  1249. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == sdate && sintime < 360) {
  1250. // messageBox("입원시간이 6시간 미만 입니다.","E001","");
  1251. // //return;
  1252. // }
  1253. }
  1254. }
  1255. //의사 사인은 체크 하지 않음. 응급, DSC는 퇴원통보만 체크 한다.
  1256. //if (sordtype == "I") {
  1257. // var sdschdclrdt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt");
  1258. // if ((sdschrcptflag == "D") && (sdschdclrdt == "" || sdschdclrdt == "-" || sdschdclrdt == null)) {
  1259. // messageBox("의사 Sign(퇴원예고)이 없어 수납처리를", "E001","");
  1260. // return;
  1261. // }
  1262. //}
  1263. var sdschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  1264. if ((sdschrcptflag == "D") && (sdschnotidt == "" || sdschnotidt == "-" || sdschnotidt == null)) {
  1265. messageBox("간호 Sign(퇴원통보)이 없어 수납처리를", "E001","");
  1266. return;
  1267. }
  1268. }
  1269. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt")) > 0) {
  1270. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") == "") {
  1271. messageBox("임의감면 코드가 입력되지", "E007","");
  1272. return;
  1273. }
  1274. }
  1275. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt")) > 0) {
  1276. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "") {
  1277. messageBox("미수 코드가 입력되지", "E007","");
  1278. return;
  1279. }
  1280. //일반미수 권한 체크
  1281. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "A01") {
  1282. getRcptuserInfo(); //수납마감 사용자관리 조회
  1283. if(model.getValue("/root/rcptuser/rcptuserinfo/uncoyn") != "Y"){
  1284. messageBox("일반미수 발생 권한이 없습니다.","E999","");
  1285. return;
  1286. }
  1287. }
  1288. }
  1289. if (srcptflag == "B21") {
  1290. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt") != "0") {
  1291. messageBox("가퇴원(B21)시 수혈대체를 할 수 없습니다. 퇴원수납(B31)시 수혈대체를 하십시오.", "I999");
  1292. return;
  1293. }
  1294. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt") != "0") {
  1295. messageBox("가퇴원(B21)시 임의감면을 생성할 수 없습니다. 퇴원수납(B31)시 임의감면을 생성 하십시오.", "I999");
  1296. return;
  1297. }
  1298. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") != "0") {
  1299. messageBox("가퇴원(B21)시 미수를 생성할 수 없습니다. 퇴원수납(B31)시 미수를 생성 하십시오.", "I999");
  1300. return;
  1301. }
  1302. }
  1303. if (srcptflag == "B01") {
  1304. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt") != "0") {
  1305. messageBox("선수금 입금시 수혈대체를 할 수 없습니다. 퇴원수납(B31)시 수혈대체를 하십시오.", "I999");
  1306. return;
  1307. }
  1308. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt") != "0") {
  1309. messageBox("선수금 입금시 임의감면을 생성할 수 없습니다. 퇴원수납(B31)시 임의감면을 생성 하십시오.", "I999");
  1310. return;
  1311. }
  1312. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") != "0") {
  1313. messageBox("선수금 입금시 미수를 생성할 수 없습니다. 퇴원수납(B31)시 미수를 생성 하십시오.", "I999");
  1314. return;
  1315. }
  1316. }
  1317. //flag 값 확인
  1318. //A:미심사, B:심사중, C:심사완료, E:통합심사완료
  1319. //if (sdschrcptflag == "D" && srcptflag == "B31" && sordtype == "I") {
  1320. if (sdschrcptflag == "D" && srcptflag == "B31") {
  1321. //외래요율로 계산시에는 심사 여부를 체크하지 않는다.
  1322. //입원일 경우만 심사여부를 체크 한다.
  1323. //if (sbrateflag == "I") {
  1324. if (sordtype == "I" && sbrateflag == "I") {
  1325. if (sjudgrcsstat == "A" ||sjudgrcsstat == "B" || sjudgrcsstat == "") {
  1326. messageBox("심사완료전에는 수납처리를", "E001","");
  1327. return;
  1328. }
  1329. }
  1330. if (sjudgrcsstat == "B") {
  1331. messageBox("해당환자는 현재 [심사중]입니다. 확인 후 수납처리 하십시오.", "I999");
  1332. return;
  1333. }
  1334. }
  1335. // 수납대상유형 이전 유형의 ISCL에 원무키가 빠져있는 경우 에러처리
  1336. if (srcptflag == "B31") {
  1337. if (!fGetISCLNoRcptKey("R")) {
  1338. return;
  1339. }
  1340. }
  1341. /* 원무팀 정혜연 선생님 요청으로 삭제
  1342. //DSC, CHEMO 환자는 평일 17시 30분 이전, 휴일 없음, 토요일 13시 이전, 휴일은 심사 하지 않음
  1343. //if (srcptflag == "B31" && sordtype == "D" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn") == "Y" && (sjudgrcsstat == "A" || sjudgrcsstat == "B") && sbrateflag == "O") {
  1344. if (srcptflag == "B31" && sordtype == "D" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn") == "Y" && (sjudgrcsstat == "A" || sjudgrcsstat == "B")) {
  1345. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == null || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "") {
  1346. messageBox("퇴원통보일시가 잘못 되었습니다.", "I999");
  1347. }
  1348. var sDschNotiRgstDD = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  1349. var sDschNotiRgstTM = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(8, 4);
  1350. //if (sDschNotiRgstDD == model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")) {
  1351. model.resetInstanceNode("/root/hidden/hschinfo");
  1352. model.setValue("/root/hidden/hschinfo/hsch/hsch_basedd", sDschNotiRgstDD);
  1353. //PMCMCODE cdgrupid = P0004 심사시간 정의
  1354. submit("TRPAI00123");
  1355. //dutflag 8/휴일 4/토요일 0/평일
  1356. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_dutflag") == "0") {
  1357. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == null || model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == "") {
  1358. var iJudgTM = 0;
  1359. } else {
  1360. var iJudgTM = model.getValue("/root/hidden/hschinfo/hsch/hsch_tm");
  1361. }
  1362. if (iJudgTM != 0) {
  1363. if (sDschNotiRgstTM < iJudgTM) {
  1364. if (messageBox("[DSC, CHEMO환자는 평일의 경우 " + iJudgTM + "분까지 심사완료 후 수납하십시오]\n심사가(퇴원통보등록시간 : " + sDschNotiRgstTM.substr(0, 2) + ":" + sDschNotiRgstTM.substr(2, 2) + " ) 완료되지 않았습니다.\n수납을", "Q003","") == 7) {
  1365. return;
  1366. }
  1367. }
  1368. }
  1369. } else if (model.getValue("/root/hidden/hschinfo/hsch/hsch_dutflag") == "4") {
  1370. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == null || model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == "") {
  1371. var iJudgTM = 0;
  1372. } else {
  1373. var iJudgTM = model.getValue("/root/hidden/hschinfo/hsch/hsch_tm");
  1374. }
  1375. if (iJudgTM != 0) {
  1376. if (sDschNotiRgstTM < iJudgTM) {
  1377. if (messageBox("[DSC, CHEMO환자는 토요일의 경우 " + iJudgTM + "분까지 심사완료 후 수납하십시오]\n심사가(퇴원통보등록시간 : " + sDschNotiRgstTM.substr(0, 2) + ":" + sDschNotiRgstTM.substr(2, 2) + " ) 완료되지 않았습니다.\n수납을", "Q003","") == 7) {
  1378. return;
  1379. }
  1380. }
  1381. }
  1382. }
  1383. //}
  1384. }
  1385. */
  1386. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1387. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) < 0
  1388. && model.getValue("/root/init/option/checkcard") != "Y") {
  1389. messageBox("카드 결제액이 - 금액입니다. \r\n승인완료가 체크된 상태에서만 수납가능합니다.", "E000", "");
  1390. return;
  1391. }
  1392. }
  1393. var sVanFlag = model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm");
  1394. //카드금액 체크
  1395. //2009-01-15 이동식 추가
  1396. var checkCardYN = model.getValue("/root/init/option/checkcard");
  1397. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) > 0 ) {
  1398. var scardno = (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).getTrim();
  1399. var svalidterm = (model.getValue("/root/main/admi_info/rcptmthd/validterm")).getTrim();
  1400. var sallotmm = (model.getValue("/root/main/admi_info/rcptmthd/allotmm")).getTrim();
  1401. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") != "1") {
  1402. messageBox("카드수납은 수납방법이 카드로 선택되어 있어야 합니다. ", "C999","");
  1403. return;
  1404. }
  1405. /* 카드수납팝업에서 처리
  1406. // 최소금액체크
  1407. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) < 1000
  1408. && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) > -1000) {
  1409. messageBox("1,000원미만 금액은 카드결제 할 수 없습니다.","E999");
  1410. return;
  1411. }
  1412. */
  1413. if( checkCardYN != 'Y' ){
  1414. //카드 팝업에서 입력한 경우 체크 하지 않음.
  1415. if (model.getValue("/root/main/admi_info/card/card[1]/card_pid") == "") {
  1416. // KocesICPos 이외의 경우에만 검증
  1417. if (sVanFlag != "KOCES_IC") {
  1418. if (scardno == "" || scardno == "-" || scardno == null) {
  1419. messageBox("카드번호가 입력되지", "E007","");
  1420. model.setFocus("ipt_cardcashno");
  1421. return;
  1422. }
  1423. if (svalidterm == "" || svalidterm == "-" || svalidterm == null) {
  1424. messageBox("카드 유효기간이 입력되지", "E007","");
  1425. model.setFocus("ipt_valiterm");
  1426. return;
  1427. }
  1428. if (sallotmm == "" || sallotmm == "-" || sallotmm == null) {
  1429. messageBox("카드 할부개월이 입력되지", "E007","");
  1430. model.setFocus("ipt_allotmm");
  1431. return;
  1432. }
  1433. }
  1434. }
  1435. }else{
  1436. if (scardno != null && scardno.length > 0) {
  1437. messageBox("승인완료 선택하시고 카드번호를 입력하셨습니다. 카드번호를 지우시거나 승인완료 체크 해제하신 후 다시 수납승인하세요!", "E999","");
  1438. model.setFocus("ipt_cardcashno");
  1439. return;
  1440. }
  1441. }
  1442. }
  1443. //수납방법 3 : 현금영수증 발행 하지 않음.
  1444. //차후 현금 영수증 체크 로직 변경 해야 함.
  1445. //카드와 현금 같이 수납 하는 경우 scashno 항목은 카드로 가져가며, 현금 영수증 승인 정보는 저장된 내역으로 해야 할듯 함.
  1446. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2") {
  1447. //현금영수증 체크
  1448. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) >= 1) {
  1449. // ICPos의 경우 현금영수증카드번호는 단말기에서 입력되도록 예외처리
  1450. if (sVanFlag != "KOCES_IC" || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") != "3") {
  1451. var scashno = (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).getTrim();
  1452. if (scashno == "" || scashno == "-" || scashno == null) {
  1453. var smsg = messageBox("현금영수증 승인정보가 입력되지", "E007");
  1454. model.setFocus("ipt_cardcashno");
  1455. return;
  1456. }
  1457. }
  1458. }
  1459. }
  1460. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totamt")) == 0 && sdschrcptflag == "D" && srcptflag == "B31") {
  1461. if (messageBox("총진료비가 0 원 입니다. 퇴원수납을", "Q003", "") == 7) {
  1462. return;
  1463. }
  1464. }
  1465. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) == 0 && sdschrcptflag == "D" && srcptflag == "B31") {
  1466. if (messageBox("납부할금액이 0 원 입니다. 퇴원수납을", "Q003", "") == 7) {
  1467. return;
  1468. }
  1469. }
  1470. if (srcptflag == "C01") {
  1471. if ((parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) +
  1472. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt")) +
  1473. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"))
  1474. ) < 1) {
  1475. messageBox("미수입금금액이 0원이거나 - 금액입니다. 입금금액을 확인하십시오.", "I999");
  1476. return;
  1477. }
  1478. }
  1479. //퇴원수납시 미계산내역 check, blocking 할지 진행할지 확인필요.
  1480. if (srcptflag == "B21" || srcptflag == "B31") {
  1481. //소급내역이 있을 경우 수납블럭킹 처리 한다.
  1482. if(fRetcSpec() != true) return false;
  1483. model.removenode("/root/send/chkdata9");
  1484. model.makeNode("/root/send/chkdata9");
  1485. model.makeValue("/root/send/chkdata9/pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_pid"));
  1486. model.makeValue("/root/send/chkdata9/indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indd"));
  1487. model.makeValue("/root/send/chkdata9/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  1488. model.makeValue("/root/send/chkdata9/instcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_instcd"));
  1489. model.makeValue("/root/send/chkdata9/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  1490. model.makeValue("/root/send/chkdata9/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  1491. submit("TRPAI00127");
  1492. model.removenode("/root/send/chkdata9");
  1493. if (getNodesetCount("/root/chkvalue/nocalcchk") > 0) {
  1494. if (messageBox("미계산내역(ISCL2)이 존재합니다. 수납을 처리하시겠습니까?", "Q999","") == 7) {
  1495. model.removenode("/root/chkvalue/nocalcchk");
  1496. model.makeNode("/root/chkvalue/nocalcchk");
  1497. return;
  1498. }
  1499. }
  1500. var dupexecdd = model.getValue("/root/chkvalue/dup/dupexecdd");
  1501. if (dupexecdd != "") {
  1502. dupexecdd = dupexecdd.toDate().getDateFormat("YYYY/MM/DD")
  1503. messageBox(dupexecdd + "중복계산 내역이 존재합니다. " + dupexecdd + "일 재계산","I008");
  1504. model.removenode("/root/chkvalue/dup");
  1505. model.makeNode("/root/chkvalue/dup");
  1506. return;
  1507. }
  1508. // var prcphistcdecnt = model.getValue("/root/chkvalue/histcde/prcphistcdecnt");
  1509. // if (prcphistcdecnt != "" && prcphistcdecnt != "0") {
  1510. // messageBox("반환요청처방 내역이 존재합니다. 간호팀에 연락하셔서 반환확인 후 퇴원수납을 진행하세요","I008");
  1511. // model.removenode("/root/chkvalue/histcde");
  1512. // model.makeNode("/root/chkvalue/histcde");
  1513. // return;
  1514. // }
  1515. model.removenode("/root/chkvalue/nocalcchk");
  1516. model.makeNode("/root/chkvalue/nocalcchk");
  1517. }
  1518. //2011-04-09
  1519. //수납시에 환자 보험 자격 체크
  1520. //B21, B31일때만 체크
  1521. if( srcptflag == 'B31' || srcptflag == 'B21' ){
  1522. //공단자격조회
  1523. var retVal = fCheckInsuRgst();
  1524. if( retVal == false ){
  1525. //자격조회
  1526. button48.dispatch("DOMActivate");
  1527. return false;
  1528. }else if( retVal == true ){
  1529. //장애인적용확인
  1530. return false;
  1531. }
  1532. }
  1533. var smessage ="";
  1534. if (sordtype == "E" && sbrateflag == "O" && srcptflag == "B31") {
  1535. smessage = "응급 [외래부담율] ";
  1536. } else if (sordtype == "E" && sbrateflag == "I" && srcptflag == "B31") {
  1537. smessage = "응급 [입원부담율] ";
  1538. } else {
  1539. if (srcptflag == "B31") {
  1540. smessage = "입원 [정상퇴원] ";
  1541. } else if (srcptflag == "B21") {
  1542. smessage = "입원 [가퇴원] ";
  1543. } else if (srcptflag == "B01") {
  1544. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y") {
  1545. smessage = "입원 [산전진료비] ";
  1546. } else {
  1547. smessage = "입원 [선수금] ";
  1548. }
  1549. } else if (srcptflag == "B41") {
  1550. smessage = "[퇴원후추가수납금] ";
  1551. } else if (srcptflag == "C01") {
  1552. smessage = "[미수입금] ";
  1553. }
  1554. }
  1555. var sCardAndCash = false;
  1556. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) >= 1 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1557. if (messageBox("카드, 현금영수증을 동시 승인처리 하시겠습니까?\n현금영수증 승인번호가 저장되어 있지 않을 경우 주민번호로 승인됩니다.\n[ 예 ] 카드승인 + 현금영수증승인 수납\n[아니오] 카드승인 + 현금 수납", "Q999","") != 7) {
  1558. sCardAndCash = true;
  1559. }
  1560. }
  1561. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt")) >= 1) {
  1562. // 2009.10.22 - 체크노드 변경
  1563. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") == "-") {
  1564. if (isNull(model.getValue("/root/main/admi_info/onln/onln/onln_acntno"))) {
  1565. messageBox("통장번호가 선택되지 않았습니다. [통장입금] 버튼을 클릭한 후 통장번호를 선택하십시오. ", "C999","");
  1566. return;
  1567. }
  1568. }
  1569. //수납처리***************************
  1570. if (messageBox(smessage + "수납을 처리하시겠습니까?", "Q999","") == 7) {
  1571. return;
  1572. }
  1573. model.resetInstanceNode("/root/send/data1");
  1574. model.resetInstanceNode("/root/send/data2");
  1575. model.resetInstanceNode("/root/send/data3");
  1576. //현재 환자 상태 조회
  1577. if ((srcptflag == "B21" || srcptflag == "B31") && (sdschrcptflag == "D")) {
  1578. model.copyNode("/root/send/data11/iphs", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  1579. model.copyNode("/root/send/data11/admi", "/root/main/admi_info/ordamt/admispec");
  1580. //카드 임의 승인시 이력생성 추가를 위해
  1581. if( model.getValue("/root/init/option/checkcard") == 'Y'){
  1582. model.makeValue("/root/send/data11/admi/admi_checkcard", "Y");
  1583. }
  1584. submit("TRPAI00129");
  1585. // 회송 관련 메세지 처리
  1586. var patReturnMsg = model.getValue("/root/temp2/ipatchk/patreturnmsg");
  1587. if (!isNull(patReturnMsg)) {
  1588. if (patReturnMsg == "1") {
  1589. if (messageBox("퇴원 수속전 진료의뢰센터 방문하여 회송서를 받으세요.\r\n(문의:진료의뢰센터)\r\n수납을 계속 진행하시겠습니까?", "Q000") == "7") {
  1590. return;
  1591. }
  1592. } else if (patReturnMsg == "2") {
  1593. // 제증명 처리 시 진행여부 확인 필요
  1594. if (messageBox("제증명 창구 방문후 퇴원수속하세요.\r\n수납을 계속 진행하시겠습니까?", "Q000") == "7") {
  1595. return;
  1596. }
  1597. }
  1598. }
  1599. if (model.getValue("/root/temp2/ipatchk/indschacptstat") == "D") {
  1600. messageBox("퇴원처리된 환자입니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  1601. return;
  1602. }
  1603. if (srcptflag == "B21" && model.getValue("/root/temp2/ipatchk/indschacptstat") == "T") {
  1604. messageBox("가퇴원처리된 환자입니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  1605. return;
  1606. }
  1607. if (sordtype == "I" && sbrateflag == "I") {
  1608. if (srcptflag == "B31" && (model.getValue("/root/temp2/ipatchk/dschjudgprcsstat") == "A" || model.getValue("/root/temp2/ipatchk/dschjudgprcsstat") == "B")) {
  1609. messageBox("보험심사 상태가 미심 또는 심사중 상태입니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1610. return;
  1611. }
  1612. //화면의 심사상태와 재조회한 심사상태가 틀린 경우
  1613. if (srcptflag == "B31" || srcptflag == "B21") {
  1614. var j1 = sjudgrcsstat;
  1615. var j2 = model.getValue("/root/temp2/ipatchk/dschjudgprcsstat");
  1616. // 심사상태 완료(C), 통합(E), 예고심사(G)의 경우 통합(E)으로 일괄처리(원무에서 바라보는 기준은 C, E, G가 동일)
  1617. if (j1 == 'C' || j1 == 'G') j1 = 'E';
  1618. if (j2 == 'C' || j2 == 'G') j2 = 'E';
  1619. if (j1 != j2) {
  1620. messageBox("보험심사 상태가 변경 되었습니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1621. return;
  1622. }
  1623. }
  1624. }
  1625. if (model.getValue("/root/temp2/ipatchk/dschnotiyn") != "Y") {
  1626. messageBox("간호퇴원통보상태가 변경되었습니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1627. return;
  1628. }
  1629. ///////////////카드승인금액비교///////////////////
  1630. if(model.getvalue("/root/temp2/h_msg/msg/msg_cardvan") != "") {
  1631. var msg_cardvan = model.getvalue("/root/temp2/h_msg/msg/msg_cardvan");
  1632. var rtn = messageBox(msg_cardvan,"Q999","");
  1633. if (rtn == 7) {
  1634. return false;
  1635. }
  1636. }
  1637. ///////////////카드승인금액비교 끝///////////////////
  1638. model.removenode("/root/temp2");
  1639. model.makeNode("/root/temp2");
  1640. model.resetInstanceNode("/root/send/data2");
  1641. model.removenode("/root/send/data11/iphs");
  1642. model.removenode("/root/send/data11/admi");
  1643. model.makeNode("/root/send/data11/iphs");
  1644. model.makeNode("/root/send/data11/admi");
  1645. }
  1646. if (srcptflag == "B21" || srcptflag == "C01") {
  1647. fMdlAmtRcpt("D");
  1648. }
  1649. if (srcptflag == "B41") {
  1650. fMdlAmtRcpt("B41");
  1651. }
  1652. if (srcptflag == "B01") {
  1653. if (model.getValue("/root/init/option/pregdmndamtchk") != "Y") {
  1654. fMdlAmtRcpt("R");
  1655. }
  1656. }
  1657. // 개인 정보 이용 동의서 확인 및 출력
  1658. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_scanyn") == "X"
  1659. && messageBox("개인 정보 이용 동의서가 작성되어 있지 않습니다.\n개인 정보 이용 동의서를 출력하시겠습니까?", "Q999") == 6){
  1660. //개인정보이용 동의서 전자동의서를 위한 처리로직 추가 by 조중래 20130305
  1661. var ocrtype = "O";
  1662. if(model.getValue("/root/init/PAM/PK018list/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  1663. if (messageBox("개인정보이용동의서", "Q017") == "6") {
  1664. ocrtype = "S";
  1665. }
  1666. }
  1667. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  1668. //구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  1669. var formcd = model.getValue("/root/init/prncd/hardcd[cdseqno='3']/hardcd");
  1670. fPerPrintOCR(formcd
  1671. , ipt_pid
  1672. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")
  1673. , model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_cretno")
  1674. , "I"
  1675. , ocrtype);
  1676. }
  1677. model.copyNode("/root/send/data1", "/root/main/inpt_info/inptpatinfo");
  1678. model.copyNode("/root/send/data2", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  1679. model.copyNode("/root/send/data3", "/root/main/admi_info/ordamt/admispec");
  1680. model.setValue("/root/send/data3/admi_rcptexecdd", getCurrentDate());
  1681. model.setValue("/root/send/data3/admi_rcpttm", getCurrentTime());
  1682. //퇴원수납에서 중간금 수납시 incalcenddd는 incalcfromdd로 변경한다.
  1683. if ((model.getValue("/root/send/data3/admi_rcptflag") == "B01" || model.getValue("/root/send/data3/admi_rcptflag") == "B11")
  1684. && model.getValue("/root/send/data3/admi_incalcenddd") == "99991231") {
  1685. model.setValue("/root/send/data3/admi_incalcenddd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_incalcfromdd"))
  1686. }
  1687. //퇴원일 경우
  1688. if (model.getValue("/root/send/data3/admi_rcptflag") == "B31" || model.getValue("/root/send/data3/admi_rcptflag") == "B21") {
  1689. var sdschdt = model.getValue("/root/send/data1/inpt_dschnotidt")
  1690. var stime = getCurrentTime();
  1691. model.setValue("/root/send/data1/inpt_dschdd", sdschdt.substr(0, 8));
  1692. // 가퇴원 -> 퇴원의 경우에는 기존의 퇴원시간을 유지해야할 필요 있음 by 조중래 20140717
  1693. if (model.getValue("/root/send/data1/inpt_indschacptstat") == "T") {
  1694. model.setValue("/root/send/data1/inpt_dschtm", model.getValue("/root/send/data1/inpt_dschtm"));
  1695. } else {
  1696. model.setValue("/root/send/data1/inpt_dschtm", stime.substr(0, 4));
  1697. }
  1698. if (model.getValue("/root/send/data3/admi_incalcenddd") == "99991231") {
  1699. model.setValue("/root/send/data3/admi_incalcenddd", model.getValue("/root/send/data1/inpt_dschdd"));
  1700. }
  1701. if (model.getValue("/root/send/data3/admi_rcptflag") == "B21") {
  1702. model.setValue("/root/send/data3/admi_pregdmndamt", "0"); //퇴원수납시에는 산전진료비를 발생하지 않는다.
  1703. }
  1704. // alert("퇴원");
  1705. // return false;
  1706. }
  1707. //미수 입금처리시 미수내역을 넘긴다.
  1708. if (model.getValue("/root/send/data3/admi_rcptflag") == "C01") {
  1709. if (parseInt(model.getValue("/root/main/admi_info/unco/unco/unco_uncoamt")) > 0) {
  1710. model.removenode("/root/send/set_unco/unco");
  1711. copyNodeListType("/root/send/set_unco","/root/main/admi_info/unco/unco","replace");
  1712. for(var i=1; i<=getNodesetCount("/root/send/set_unco/unco"); i++) {
  1713. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_pid", model.getValue("/root/send/data1/inpt_pid"));
  1714. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptdd", model.getValue("/root/main/admi_info/unco/unco/unco_rcptdd"));
  1715. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptno", model.getValue("/root/main/admi_info/unco/unco/unco_rcptno"));
  1716. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptseqno", model.getValue("/root/main/admi_info/unco/unco/unco_rcptseqno"));
  1717. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_seqno", i);
  1718. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1719. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1720. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddeptcd", model.getValue("/root/send/data2/iphs_orddeptcd"));
  1721. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddrid", model.getValue("/root/send/data2/iphs_medispclid"));
  1722. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_dschdd", model.getValue("/root/send/data1/inpt_dschdd"));
  1723. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_insukind", model.getValue("/root/send/data2/iphs_insukind"));
  1724. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_suppkind", model.getValue("/root/send/data2/iphs_suppkind"));
  1725. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1726. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncorcptflag", "2");
  1727. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocls", "1");
  1728. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  1729. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  1730. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  1731. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_apprsn", "");
  1732. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptamt", model.getValue("/root/send/data3/admi_rcptpayamt"));
  1733. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_debtamt" , "0");
  1734. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_endyn", "Y");
  1735. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", "-");
  1736. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_empid", "-");
  1737. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1738. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1739. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptrid", "");
  1740. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_remfact", "");
  1741. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstrid", "");
  1742. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstdt", "");
  1743. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtrid", "");
  1744. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtdt", "");
  1745. }
  1746. model.setValue("/root/send/data3/admi_uncocalcflag", "2");
  1747. model.setValue("/root/send/data3/admi_orgrcptdd", model.getValue("/root/send/set_unco/unco/unco_rcptdd"));
  1748. model.setValue("/root/send/data3/admi_orgrcptno", model.getValue("/root/send/set_unco/unco/unco_rcptno"));
  1749. model.setValue("/root/send/data3/admi_orgrcptseqno", model.getValue("/root/send/set_unco/unco/unco_rcptseqno"));
  1750. }
  1751. }
  1752. //퇴원후추가수납시 수혈내역은 처리함.
  1753. if (model.getValue("/root/send/data3/admi_rcptflag") == "B41" || model.getValue("/root/send/data3/admi_rcptflag") == "B31") {
  1754. //수혈내역// 수혈 감면은 팝업에서 send로 이미 node 생성// 수납일자, 수납시간 적용
  1755. var ibldc = parseInt(model.getValue("/root/send/data3/admi_bloddiscamt"));
  1756. if (ibldc > 0) {
  1757. for(var i=1; i<=getNodesetCount("/root/send/set_bldc/bldc"); i++){
  1758. model.setValue("/root/send/set_bldc/bldc[" + i + "]/bldc_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1759. model.setValue("/root/send/set_bldc/bldc[" + i + "]/bldc_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1760. }
  1761. }
  1762. }
  1763. //미수금수납, 감액 퇴원수납시만 발생
  1764. if (model.getValue("/root/send/data3/admi_rcptflag") == "B31") {
  1765. //미수금 내역
  1766. var iunco = parseInt(model.getValue("/root/send/data3/admi_uncoamt"));
  1767. if (iunco > 0) {
  1768. model.removenode("/root/send/set_unco/unco");
  1769. copyNodeListType("/root/send/set_unco","/root/main/admi_info/unco/unco","replace");
  1770. for(var i=1; i<=getNodesetCount("/root/send/set_unco/unco"); i++) {
  1771. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_pid", model.getValue("/root/send/data1/inpt_pid"));
  1772. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1773. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1774. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1775. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_seqno", i);
  1776. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1777. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1778. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddeptcd", model.getValue("/root/send/data2/iphs_orddeptcd"));
  1779. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddrid", model.getValue("/root/send/data2/iphs_medispclid"));
  1780. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_dschdd", model.getValue("/root/send/data1/inpt_dschdd"));
  1781. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_insukind", model.getValue("/root/send/data2/iphs_insukind"));
  1782. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_suppkind", model.getValue("/root/send/data2/iphs_suppkind"));
  1783. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1784. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncorcptflag", "1");
  1785. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocls", "1");
  1786. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  1787. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  1788. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  1789. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_apprsn", "");
  1790. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptamt" , "0");
  1791. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_debtamt" , "0");
  1792. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_endyn", "N");
  1793. if (model.getValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd") == "I41") {
  1794. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", model.getValue("/root/send/data1/inpt_clincstdycd"));
  1795. } else {
  1796. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", "-");
  1797. }
  1798. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_empid", "-");
  1799. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1800. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1801. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptrid", "");
  1802. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_remfact", "");
  1803. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstrid", "");
  1804. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstdt", "");
  1805. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtrid", "");
  1806. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtdt", "");
  1807. }
  1808. }
  1809. //감면내역
  1810. var idcgm = parseInt(model.getValue("/root/send/data3/admi_reduamt"));
  1811. if (idcgm > 0) {
  1812. model.removenode("/root/send/set_dcgm/dcgm");
  1813. copyNodeListType("/root/send/set_dcgm", "/root/main/admi_info/dcgm/dcgm","replace");
  1814. for(var i=1; i<=getNodesetCount("/root/send/set_dcgm/dcgm"); i++) {
  1815. //이미 생성 됨.
  1816. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  1817. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  1818. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreduflag", "G");
  1819. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_apprsn", "");
  1820. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1821. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_seqno", i);
  1822. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1823. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1824. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1825. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1826. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1827. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1828. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1829. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1830. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_remfact", "");
  1831. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptrid", "");
  1832. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_fstrgstrid", "");
  1833. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_fstrgstdt", "");
  1834. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_lastupdtrid", "");
  1835. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_lastupdtdt", "");
  1836. }
  1837. }
  1838. //할인내역
  1839. var idiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt"));
  1840. if (idiscamt > 0) {
  1841. //임의감면이 없을 경우 첫번째 index 생성
  1842. var sdcgmchk = model.getValue("/root/send/set_dcgm/dcgm/dcgm_pid");
  1843. if (sdcgmchk == "" || sdcgmchk == null || sdcgmchk == "") {
  1844. model.makeNode("root/send/set_dcgm/dcgm");
  1845. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1846. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1847. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1848. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_seqno", "1");
  1849. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1850. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1851. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1852. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1853. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreducd", model.getValue("/root/send/data2/iphs_disccd"));
  1854. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/send/data3/admi_discamt"));
  1855. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreduflag", "D");
  1856. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_apprsn", "");
  1857. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1858. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1859. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_remfact", "");
  1860. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptrid", "");
  1861. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_fstrgstrid", "");
  1862. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_fstrgstdt", "");
  1863. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_lastupdtrid", "");
  1864. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_lastupdtdt", "");
  1865. } else {
  1866. var ii = getNodesetCount("/root/send/set_dcgm/dcgm");
  1867. ii++;
  1868. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1869. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1870. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1871. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_seqno", ii);
  1872. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1873. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1874. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1875. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1876. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreducd", model.getValue("/root/send/data2/iphs_disccd"));
  1877. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreduamt", model.getValue("/root/send/data3/admi_discamt"));
  1878. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreduflag", "D");
  1879. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_apprsn", "");
  1880. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1881. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1882. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_remfact", "");
  1883. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptrid", "");
  1884. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_fstrgstrid", "");
  1885. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_fstrgstdt", "");
  1886. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_lastupdtrid", "");
  1887. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_lastupdtdt", "");
  1888. }
  1889. }
  1890. }
  1891. //카드내역
  1892. var icard = parseInt(model.getValue("/root/send/data3/admi_cardamt"));
  1893. // if (icard == 0 ) {
  1894. // if (model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != "" || model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != " " ||
  1895. // model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != null) {
  1896. // icard = parseInt(model.getValue("/root/main/admi_info/card/card[1]/card_cardamt"));
  1897. // if (icard < 0) {
  1898. // icard = icard * -1;
  1899. // }
  1900. // }
  1901. // }
  1902. //1-카드, 2-현금영수증, 3-현금
  1903. if (icard > 0 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1904. model.removenode("/root/send/set_card/card");
  1905. var scardcount = getNodesetCount("/root/main/admi_info/card/card/card_pid");
  1906. if( model.getValue("/root/main/admi_info/card/card/card_pid") == '' || model.getValue("/root/main/admi_info/card/card/card_pid") == ' ' || model.getValue("/root/main/admi_info/card/card/card_pid") == null ){
  1907. scardcount = 0;
  1908. }
  1909. var bCardAprv = false;
  1910. //팝업에서 받아오는 값이 없을 경우 화면에서 입력된 카드만 처리한다.
  1911. if (model.getValue("/root/main/admi_info/card/card[1]/card_pid") == "" &&
  1912. model.getValue("/root/main/admi_info/card/card[1]/card_aprvdd") == "" &&
  1913. model.getValue("/root/main/admi_info/card/card[1]/card_aprvtm") == "") {
  1914. var bCardAprv = true;
  1915. }
  1916. //======================================================================================================================================임시
  1917. // if (scardcount <= 1) {
  1918. //카드내역이 2개 이상인 경우 카드popup 에서 이미 승인되어 넘어 옴, 카드 개수만큼 카드내역만 생성.
  1919. //단일 카드일 경우 카드popup을 호출하여 승인 후 카드내역 생성
  1920. if (bCardAprv == true && checkCardYN != 'Y' ) {
  1921. var iCardAmt = parseInt(model.getValue("/root/send/data3/admi_cardamt")); //card 금액
  1922. var sPid = model.getValue("/root/send/data1/inpt_pid"); //환자번호
  1923. var sVanCD =""; //van사 구분
  1924. var sAprvFlag = ""; //승인구분
  1925. var sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag"); //입력구분
  1926. var sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata"); //swipedata
  1927. var sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno"); //카드번호
  1928. var sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm"); //유효기간
  1929. var sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm"); //할부기간
  1930. var sAprvDD = ""; //원거래승인일자(취소)
  1931. var sAprvTm = ""; //원거래승인일시(취소)
  1932. var sAprvNo = ""; //원거래승인번호(취소)
  1933. var sOrdType = model.getValue("/root/send/data1/inpt_ordtype"); //ordtype
  1934. var sOrdDeptCd = model.getValue("/root/send/data2/iphs_orddeptcd"); //orddeptcd
  1935. var sCrdtNo = model.getValue("/root/send/data2/iphs_cretno"); //cretno
  1936. var sOrdDD = model.getValue("/root/send/data1/inpt_indd"); //orddd
  1937. var iSeqno = 1;
  1938. parm = "0" + "▦" + //멀티건수
  1939. "" + "▦" + //멀티opmi
  1940. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  1941. "" + "▦" + //rcptno
  1942. "" + "▦" + //rcptseqno
  1943. iCardAmt + "▦" + //totalamt
  1944. "" + "▦" + //send
  1945. "/root/main/admi_info/card" + "▦" + //receive
  1946. sPid + "▦" + //pid
  1947. sOrdDD + "▦" + //orddd
  1948. sCrdtNo + "▦" + //cretno
  1949. "" + "▦" + //strRcvVan
  1950. sOrdType + "▦" + //ordtype
  1951. "" + "▦" + //fromdd
  1952. "" + "▦" + //todd
  1953. sOrdDeptCd + "▦" + //orddeptcd
  1954. //단일건 접수 승인일때만 필요
  1955. sCardNo + "▦" + //cardno
  1956. sValidterm + "▦" + //valiterm
  1957. sAllotmm + "▦" + //allotmm
  1958. sKeyInptFlag + "▦" + //keyinptflag
  1959. sSwipeData + "▦" ; //sSwipeData
  1960. setParameter("SPPAO00400_PARM",parm);
  1961. setParameter("SPPAO00400_FLAG", "I"); // I : 승인, D : 취소
  1962. //iviewer 생성 후 카드popup 호출
  1963. var ivrObjt = document.all("ivr_cardpopup");
  1964. if (ivrObjt == null) {
  1965. //body.createChild("xforms:iviewer", "id:ivr_cardpopup; visibility:visible; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw; left:200px; top:200px; width:790px; height:650px");
  1966. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  1967. ivrObjt = document.all("ivr_cardpopup");
  1968. }
  1969. //setParameter("SPPAO00400_PARM",parm);
  1970. //if( flag == 'I' ){
  1971. ivrObjt.window.javascript.fInit();
  1972. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv();
  1973. //}else{
  1974. // ivrObjt.window.javascript.fInit();
  1975. // var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  1976. //}
  1977. body.removeChild("ivr_cardpopup");
  1978. setParameter("SPPAO00400_FLAG", "");
  1979. if (retMsg != true) {
  1980. return;
  1981. }
  1982. //카드 개수 1 seting
  1983. scardcount = 1;
  1984. // 가퇴원 시 이지패스 신청화면 연동처리
  1985. if (srcptflag == "B21") {
  1986. setParameter("SMPMC02500_PID", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_pid"));
  1987. modal("SMPMC02500", "1","200", "200", "SMPMC02500", "", "");
  1988. }
  1989. }
  1990. for(var icard=1; icard<=scardcount; icard++) {
  1991. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_pid"));
  1992. //영수증번호는 영수증 번호 생성 후 받는다
  1993. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd"));
  1994. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno"));
  1995. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno"));
  1996. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  1997. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_instcd"));
  1998. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptstat"));
  1999. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2000. //카드정보 차후 정리
  2001. model.makeValue("/root/send/set_card/card[" + icard + "]/card_keyinptflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_keyinptflag")); //S:Swipe, K:Key in
  2002. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardcmpycd"));
  2003. //카드번호
  2004. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno"));
  2005. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvflag")); //12:카드승인응답, 22:카드승인취소
  2006. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd")); //승인일자
  2007. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm")); //승인시간
  2008. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno")); //승인번호
  2009. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd")); //VAN코드
  2010. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm")); //할부개월수
  2011. //카드결제금액
  2012. // model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")));
  2013. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt"));
  2014. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm")); //유효기간
  2015. //수납일자
  2016. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2017. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2018. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2019. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2020. if (srcptflag == "B01") {
  2021. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2022. } else {
  2023. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2024. }
  2025. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2026. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2027. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2028. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2029. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2030. }
  2031. }
  2032. /***************************************************************************************************************************************
  2033. var sCardCancel = false;
  2034. var iCardAmt = 0; //card 금액
  2035. var sVanCD =""; //van사 구분
  2036. var sAprvFlag = ""; //승인구분
  2037. var sKeyInptFlag = ""; //입력구분
  2038. var sSwipeData = ""; //swipedata
  2039. var sCardNo = ""; //카드번호
  2040. var sValidterm = ""; //유효기간
  2041. var sAllotmm = ""; //할부기간
  2042. var sAprvDD = ""; //원거래승인일자(취소)
  2043. var sAprvTm = ""; //원거래승인일시(취소)
  2044. var sAprvNo = ""; //원거래승인번호(취소)
  2045. var iSeqno = 1;
  2046. for(var icard=1; icard<=scardcount; icard++){
  2047. model.removenode("/root/tmp");
  2048. //카드 내역이 2건 이상일 경우 카드 popup 에서 생성된 것임.
  2049. if (scardcount >= 2) {
  2050. //수납금액이 - 일경우 취소 된 내역임.
  2051. if (parseInt(model.getValue("/root/main/admi_info/card/card[" + icard + "]/card_cardamt")) < 0 ) {
  2052. sCardCancel = true;
  2053. sVanCD = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd");
  2054. iCardAmt = parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")) * -1;
  2055. sAprvFlag = "21";
  2056. sAprvDD = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd");
  2057. sAprvTm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm");
  2058. sAprvNo = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno");
  2059. } else { //수납승인
  2060. sCardCancel = false;
  2061. iCardAmt = parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt"));
  2062. sVanCD = "";
  2063. sAprvFlag = "11";
  2064. sAprvDD = "";
  2065. sAprvTm = "";
  2066. sAprvNo = "";
  2067. }
  2068. sKeyInptFlag = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_keyinptflag");
  2069. sSwipeData = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_swipedata");
  2070. sCardNo = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno");
  2071. sValidterm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm");
  2072. sAllotmm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm");
  2073. } else { //수납화면에서 카드 입력된 내역
  2074. sCardCancel = false;
  2075. sVanCD = "";
  2076. iCardAmt = model.getValue("/root/send/data3/admi_cardamt");
  2077. sAprvFlag = "11";
  2078. sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  2079. sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  2080. sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  2081. sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm");
  2082. sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm");
  2083. sAprvDD = "";
  2084. sAprvTm = "";
  2085. sAprvNo = "";
  2086. }
  2087. //카드승인
  2088. //swipe 데이타 읽어, 입력구분 세팅
  2089. fAppCardVanData(sVanCD //data1 //vangb van사구분
  2090. ,sAprvFlag //data2 //ordergb 거래구분
  2091. ,getCurrentDate() //data3 //mdate 회계일자
  2092. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  2093. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  2094. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  2095. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  2096. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  2097. ,sKeyInptFlag //data9 //entrymode 입력구분
  2098. ,sSwipeData //data10 //track2data 트랙data
  2099. ,sCardNo //data11 //cardnumber 카드번호
  2100. ,sValidterm //data12 //cardperiod 유효기간
  2101. ,sAllotmm //data13 //carddivide 할부개월수
  2102. ,iCardAmt //data14 //netamt 금액
  2103. ,sAprvDD //data15 //oldappdate 원거래승인일자(취소시)
  2104. ,sAprvTm //data16 //oldapptime 원거래승인시간(취소시)
  2105. ,sAprvNo //data17 //oldappno 원거래승인번호(취소시)
  2106. );
  2107. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  2108. messageBox("카드승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  2109. return;
  2110. } else {
  2111. //전자서명은 카드승인 일경우만 처리
  2112. if (sCardCancel == false) {
  2113. //전자서명 처리
  2114. var parm = model.getValue("/root/send/data1/inpt_pid") + "▦" + //PID
  2115. model.getValue("/root/send/data3/admi_cardamt") + "▦" + //수납대상금액
  2116. "12" + "▦" + //승인구분
  2117. model.getValue("/root/tmp/appvanif/approvaldate") + "▦" + //승인일자
  2118. model.getValue("/root/tmp/appvanif/approvaltime") + "▦" + //승인시간
  2119. model.getValue("/root/tmp/appvanif/approvalno") + "▦" +//승인번호
  2120. model.getValue("/root/hidden/session/posinstcd") + "▦" //기관코드
  2121. ;
  2122. setParameter("SPPAO02101_PARM",parm);
  2123. modal("../../../pam/pamcomnweb/xrw/SPPAO02101", "1","400", "400", "SPPAO02101", "", "");
  2124. //전자서명에 실패하더라도, 카드승인을 받았기 때문에, Continue
  2125. //if (getParameter("SPPAO02101_RTN") == "N" || getParameter("SPPAO02101_RTN") == "") return;
  2126. }
  2127. }
  2128. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/send/data1/inpt_pid"));
  2129. //영수증번호는 영수증 번호 생성 후 받는다
  2130. if (sCardCancel == false) {
  2131. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2132. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2133. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2134. } else {
  2135. //취소 일 경우 원 영수증 번호를 가져 간다.
  2136. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd_old"));
  2137. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno_old"));
  2138. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno_old"));
  2139. // model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_seqno"));
  2140. }
  2141. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  2142. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2143. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2144. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2145. //카드정보 차후 정리
  2146. model.makeValue("/root/send/set_card/card[" + icard + "]/card_keyinptflag", sKeyInptFlag); //S:Swipe, K:Key in
  2147. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/tmp/appvanif/bankid"));
  2148. //카드번호
  2149. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", sCardNo);
  2150. if (sCardCancel == false) {
  2151. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", "12"); //12:카드승인응답
  2152. } else {
  2153. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", "22"); //22:카드승인취소
  2154. }
  2155. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  2156. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  2157. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  2158. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  2159. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", sAllotmm ); //할부개월수
  2160. //카드결제금액
  2161. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", iCardAmt );
  2162. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", sValidterm ); //유효기간
  2163. //수납일자
  2164. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2165. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2166. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2167. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2168. if (srcptflag == "B01") {
  2169. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2170. } else {
  2171. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2172. }
  2173. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2174. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2175. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2176. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2177. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2178. //}
  2179. }
  2180. } else {
  2181. for(var icard=1; icard<=scardcount; icard++){
  2182. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_pid"));
  2183. //영수증번호는 영수증 번호 생성 후 받는다
  2184. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd"));
  2185. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno"));
  2186. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno"));
  2187. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  2188. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_instcd"));
  2189. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptstat"));
  2190. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2191. //카드정보 차후 정리
  2192. model.makeValue("/root/send/set_card/card[" + icard + "]/card_keyinptflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_keyinptflag")); //S:Swipe, K:Key in
  2193. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardcmpycd"));
  2194. //카드번호
  2195. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno"));
  2196. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvflag")); //12:카드승인응답, 22:카드승인취소
  2197. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd")); //승인일자
  2198. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm")); //승인시간
  2199. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno")); //승인번호
  2200. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd")); //VAN코드
  2201. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm")); //할부개월수
  2202. //카드결제금액
  2203. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")));
  2204. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm")); //유효기간
  2205. //수납일자
  2206. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2207. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2208. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2209. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2210. if (srcptflag == "B01") {
  2211. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2212. } else {
  2213. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2214. }
  2215. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2216. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2217. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2218. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2219. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2220. }
  2221. }
  2222. }
  2223. ***************************************************************************************************************************************/
  2224. //////////////////////////////////////////////////////////////현금승인 추가start/////////////////////////////////////////////////////////////////////////
  2225. //화면에서 실승인 한 내역이 없으면 승인시도한다. 20110422 cys
  2226. if(getNodesetCount("/root/send/set_cash/cash[cash_innrtretyn='N']") == 0) {
  2227. //현금영수증 내역(통장입금내역도 현금영수증 처리 한다)
  2228. //1-카드, 2-현금영수증, 3-현금
  2229. var icash = parseInt(model.getValue("/root/send/data3/admi_cashamt")) + parseInt(model.getValue("/root/send/data3/admi_onlineamt"));
  2230. if((sCardAndCash == true && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1")
  2231. || (icash >= 1 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2")) {
  2232. model.removenode("/root/tmp");
  2233. var sCashNo = ""; //카드번호(승인번호)
  2234. var sCashAllotmm = ""; //소득공제, 지출증빙
  2235. var sCashQualcnfmFlag = ""; //현금승인종류(주민번호, 휴대폰, 카드, 사업장)
  2236. var sCashKeyInptFlag = ""; //keyin
  2237. //카드현금영수증동시 승인(승인번호가 저장되어 있지 않을 경우 무조건 주민번호로 함.)
  2238. if (sCardAndCash == true) {
  2239. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") == "" || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") == null) {
  2240. sCashNo = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno");
  2241. sCashAllotmm = "00";
  2242. sCashKeyInptFlag = "K";
  2243. if (model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag") != "") {
  2244. sCashQualcnfmFlag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  2245. } else {
  2246. sCashQualcnfmFlag = "1"; //주민번호
  2247. }
  2248. } else {
  2249. sCashNo = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  2250. sCashQualcnfmFlag = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag");
  2251. sCashKeyInptFlag = "K";
  2252. if (sCashQualcnfmFlag == "4") {
  2253. sCashAllotmm = "01"; //지출증빙
  2254. } else {
  2255. sCashAllotmm = "00"; //소득공제
  2256. }
  2257. }
  2258. // 02 미승인
  2259. if (model.getValue("/root/main/admi_info/rcptmthd/cashmthd") == "02") {
  2260. if (model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm") != "" && model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm") != null) {
  2261. sCashNo = model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm")
  2262. sCashQualcnfmFlag = "2"
  2263. sCashKeyInptFlag = "K";
  2264. sCashAllotmm = "00"; //소득공제
  2265. } else {
  2266. messageBox("소비자 미발급시 국세청 현금영수증 번호가 등록되어 있지 않아 현금영수증을 승인 할 수 없습니다. 확인하여 주십시오.[P0022/163]", "I999");
  2267. return;
  2268. }
  2269. }
  2270. } else {
  2271. sCashNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  2272. sCashAllotmm = model.getValue("/root/main/admi_info/rcptmthd/cashmthd");
  2273. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") =="" || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") ==null) {
  2274. if (model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag") != "") {
  2275. sCashQualcnfmFlag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  2276. } else {
  2277. sCashQualcnfmFlag = "1"; //주민번호
  2278. }
  2279. } else {
  2280. sCashQualcnfmFlag = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag");
  2281. }
  2282. // ICPos의 경우 카드정보는 Swipe로 처리(카드리딩, 키입력 모두)
  2283. if (sVanFlag == "KOCES_IC" && sCashQualcnfmFlag == "3") {
  2284. sCashKeyInptFlag = "S";
  2285. } else {
  2286. sCashKeyInptFlag = "K";
  2287. }
  2288. }
  2289. //현금영수증승인
  2290. //swipe 데이타 읽어, 입력구분 세팅
  2291. fAppCardVanData("01" //data1 //vangb van사구분
  2292. ,"41" //data2 //ordergb 거래구분 41:현금영수증승인
  2293. ,getCurrentDate() //data3 //mdate 회계일자
  2294. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  2295. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  2296. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  2297. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  2298. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  2299. ,sCashKeyInptFlag //data9 //entrymode 입력구분
  2300. ,model.getValue("/root/main/admi_info/rcptmthd/swipedata") //data10 //track2data 트랙data
  2301. ,sCashNo //data11 //cardnumber 카드번호
  2302. ,sCashQualcnfmFlag //data12 //cardperiod 유효기간(현금영수증일 경우 자격확인구분)
  2303. ,sCashAllotmm //data13 //carddivide 할부개월수-개인법인구분
  2304. ,parseInt(model.getValue("/root/send/data3/admi_cashamt"))
  2305. + parseInt(model.getValue("/root/send/data3/admi_onlineamt")) //data14 //netamt 금액
  2306. ,"" //data15 //oldappdate 원거래승인일자(취소시)
  2307. ,"" //data16 //oldapptime 원거래승인시간(취소시)
  2308. ,"" //data17 //oldappno 원거래승인번호(취소시)
  2309. ,""
  2310. ,""
  2311. ,""
  2312. ,sVanFlag //data21 //VAN구분
  2313. );
  2314. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  2315. messageBox("현금영수증승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  2316. return;
  2317. }
  2318. // ICPos의 경우 카드정보 역으로 전달해줘야함
  2319. if (sVanFlag == "KOCES_IC" && sCashQualcnfmFlag == "3") {
  2320. model.setValue("/root/main/admi_info/rcptmthd/cardcashno", model.getValue("/root/main/cash2/cash_qualcnfmno"));
  2321. sCashNo = model.getValue("/root/main/cash2/cash_qualcnfmno");
  2322. }
  2323. //copyNodeListType("/root/send/set_cash", "/root/main/admi_info/cash/cash", "replace");
  2324. //현금영수증내역 처리 //차후 현금영수증 두개 이상일 경우 적용 해야 함
  2325. //for(var i=1; i<=getNodesetCount("/root/send/set_cash/cash"); i++) {
  2326. i = 1;
  2327. model.removenode("/root/send/set_cash/cash");
  2328. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_pid", model.getValue("/root/send/data1/inpt_pid"));
  2329. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2330. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2331. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2332. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_seqno", i);
  2333. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2334. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2335. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2336. //키입력구분 K:Kind in, S:Swipe
  2337. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_keyinptflag", sCashKeyInptFlag);
  2338. //개인법인구분 P:개인, C:법인(00, 01) 확인 필요
  2339. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_indinstflag", sCashAllotmm);
  2340. //자격확인구분(주민, 핸드폰, 신용카드)
  2341. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_qualcnfmflag", sCashQualcnfmFlag);
  2342. //자격확인번호
  2343. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_qualcnfmno", sCashNo);
  2344. //승인구분 //42:현금영수증승인응답
  2345. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvflag", model.getValue("/root/tmp/appvanif/ordergb"));
  2346. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvno", model.getValue("/root/tmp/appvanif/approvalno"));//승인번호
  2347. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate"));//승인일자
  2348. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime"));//승인시간
  2349. //승인금액
  2350. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_cashamt", parseInt(model.getValue("/root/send/data3/admi_cashamt")) + parseInt(model.getValue("/root/send/data3/admi_onlineamt")));
  2351. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2352. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2353. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptrid", ""); //수납자
  2354. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_innrtretyn", "N"); //내부처리여부
  2355. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_preamtyn", "N"); //선수금여부
  2356. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_remfact", ""); //수납내역에 대한 참고사항
  2357. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_fstrgstrid", "");
  2358. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_fstrgstdt", "");
  2359. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_lastupdtrid", "");
  2360. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_lastupdtdt", "");
  2361. //}
  2362. }
  2363. }
  2364. //////////////////////////////////////////////////////////////현금승인 추가end/////////////////////////////////////////////////////////////////////////
  2365. //통장입금금액 내역
  2366. var ionln = parseInt(model.getValue("/root/send/data3/admi_onlineamt"));
  2367. if (ionln > 0) {
  2368. model.removenode("/root/send/set_onln/onln")
  2369. copyNodeListType("/root/send/set_onln", "/root/main/admi_info/onln/onln", "replace");
  2370. var j = 1;
  2371. for(var i=1; i<=getNodesetCount("/root/main/admi_info/onln/onln"); i++) {
  2372. //영수증일자가 있을 경우 기존에 입력된 내역이므로 입력시 제외한다.
  2373. if ((model.getValue("/root/main/admi_info/onln/onln[" + i + "]/onln_rcptdd") == "") ||
  2374. (model.getValue("/root/main/admi_info/onln/onln[" + i + "]/onln_rcptdd") == null)) {
  2375. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_pid", model.getValue("/root/send/data1/inpt_pid"));
  2376. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2377. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2378. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2379. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_seqno", j);
  2380. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2381. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2382. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2383. //통장입금정보 입력 받음
  2384. //통장입금정보는 통장번호만 사용하기로 함. 차후 통장관리 할 경우 통장입금정보를 받아서 수정해야 함.
  2385. // 2009.10.22 - onln_onlineamt, onln_bankcd, onln_acntno, onln_paydd, onln_paypsnnm 팝업의 값을 그대로 입력
  2386. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_onlineamt", model.getValue("/root/send/data3/admi_onlineamt"));
  2387. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_bankcd", "-");
  2388. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_acntno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno"));
  2389. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_paydd", getCurrentDate());
  2390. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln/onln_paypsnnm", "-");
  2391. //model.makeValue("/root/send/set_onln/onln/onln_onlineamt", "");
  2392. //model.makeValue("/root/send/set_onln/onln/onln_bankcd", "");
  2393. //model.makeValue("/root/send/set_onln/onln/onln_acntno", "");
  2394. //model.makeValue("/root/send/set_onln/onln/onln_paydd", getCurrentDate());
  2395. //model.makeValue("/root/send/set_onln/onln/onln_paypsnnm", "");
  2396. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2397. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2398. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_innrtretyn", "N");
  2399. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_preamtyn", "N");
  2400. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptrid", ""); //수납자
  2401. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_remfact", ""); //수납내역에 대한 참고사항
  2402. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_fstrgstrid", "");
  2403. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_fstrgstdt", "");
  2404. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_lastupdtrid", "");
  2405. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_lastupdtdt", "");
  2406. j++;
  2407. }
  2408. }
  2409. }
  2410. //2009-01-16 이동식 추가
  2411. //카드 임의 승인시 이력생성 추가를 위해
  2412. if( model.getValue("/root/init/option/checkcard") == 'Y' ){
  2413. model.makeNode("/root/send/data3/admi_checkcard");
  2414. model.setValue("/root/send/data3/admi_checkcard", "Y");
  2415. }
  2416. //20090701 1.단수처리 고시적용
  2417. if (srcptflag == "B31" && model.getValue("/root/send/data1/inpt_brateflag") == "O"
  2418. && (model.getValue("/root/send/data2/iphs_insukind") == "11" || model.getValue("/root/send/data2/iphs_insukind") == "21" || model.getValue("/root/send/data2/iphs_insukind") == "22")
  2419. && model.getValue("/root/send/data2/iphs_suppkind") != "01") {
  2420. if (parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")) != 0) {
  2421. model.setValue("/root/send/data3/admi_payownbamt", parseInt(model.getValue("/root/send/data3/admi_payownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2422. model.setValue("/root/send/data3/admi_payinsubamt", parseInt(model.getValue("/root/send/data3/admi_payinsubamt")) - parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2423. model.setValue("/root/send/data3/admi_totownbamt", parseInt(model.getValue("/root/send/data3/admi_totownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2424. }
  2425. // 입원요율 단수처리 추가 by 조중래 20160401
  2426. // 입원요율의 경우 원단위절사금액에 대하여 보험자부담으로 처리
  2427. } else if (srcptflag == "B31" && model.getValue("/root/send/data1/inpt_brateflag") == "I"
  2428. && model.getValue("/root/send/data1/inpt_indd") >= '20160401'
  2429. && (model.getValue("/root/send/data2/iphs_insukind") == "11" || model.getValue("/root/send/data2/iphs_insukind") == "21" || model.getValue("/root/send/data2/iphs_insukind") == "22")
  2430. && model.getValue("/root/send/data2/iphs_suppkind") != "01") {
  2431. if (parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")) != 0) {
  2432. model.setValue("/root/send/data3/admi_payownbamt", parseInt(model.getValue("/root/send/data3/admi_payownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2433. model.setValue("/root/send/data3/admi_payinsubamt", parseInt(model.getValue("/root/send/data3/admi_payinsubamt")) - parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2434. model.setValue("/root/send/data3/admi_totownbamt", parseInt(model.getValue("/root/send/data3/admi_totownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2435. }
  2436. }
  2437. /*
  2438. // 개인정보이용동의서가 출력되지 않았을 경우 동의서 자동출력 by 조중래 20120328
  2439. if (model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_scanyn") == "X") {
  2440. // 개인정보이용동의서는 재원상태(indschacptstat = 'A')일때만 적용시키도록 함
  2441. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == 'A') {
  2442. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  2443. var formcd;
  2444. // 구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  2445. for (var i = 1; i <= nodeCnt; i++) {
  2446. if (3 == model.getValue("/root/init/prncd/hardcd[" + i + "]/cdseqno")) {
  2447. formcd = model.getValue("/root/init/prncd/hardcd[" + i + "]/hardcd");
  2448. break;
  2449. }
  2450. }
  2451. fPerPrintOCR (formcd,
  2452. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"),
  2453. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"),
  2454. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"),
  2455. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  2456. }
  2457. }
  2458. */
  2459. // 가퇴원 정산 시 정산내용 SMS전송 추가
  2460. // 정산SMS 전송은 가퇴원 정산시에만 처리 by 조중래 20120625
  2461. if (model.getValue("/root/init/option/receiptsms") == "Y") {
  2462. var cardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  2463. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B31"
  2464. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") == "T"
  2465. && cardAmt != 0) {
  2466. // 사망환자의 경우 가퇴원 정산SMS는 발송되지 않음
  2467. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "-"
  2468. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "") {
  2469. messageBox("사망환자의 경우 가퇴원 정산 SMS는 전송하지 않습니다.", "I000");
  2470. } else {
  2471. var ivrObjt = document.all("ivr_receiptsms");
  2472. if (ivrObjt == null) {
  2473. body.createChild("xforms:iviewer", "id:ivr_receiptsms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2474. ivrObjt = document.all("ivr_receiptsms");
  2475. }
  2476. var submitType = "";
  2477. if (parseInt(cardAmt) > 0) {
  2478. submitType = "추가승인";
  2479. } else {
  2480. submitType = "취소정산";
  2481. }
  2482. if (cardAmt.length > 3) {
  2483. var reg = /(^[+-]?\d+)(\d{3})/;
  2484. cardAmt += '';
  2485. while (reg.test(cardAmt)) {
  2486. cardAmt = cardAmt.replace(reg, '$1' + ',' + '$2');
  2487. }
  2488. }
  2489. // 가퇴원정산 sms.pam.0005
  2490. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/smsmsg/msgfrmtid"),
  2491. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),
  2492. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel"),
  2493. model.getValue("/root/init/receiptsms/smsmsg/replytelno"),
  2494. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"), // param1
  2495. cardAmt, // param2
  2496. submitType // param3
  2497. );
  2498. }
  2499. }
  2500. }
  2501. // EZPass환자 CHEMO 수납금액을 기등록된 신용카드로 처리할 경우 SMS 전송기능 추가 (칠곡요청)
  2502. // 퇴원수납시에만 전송 by 조중래 20150904
  2503. if (model.getValue("/root/init/option/ezpasssms") == "Y"
  2504. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_roomcd") == "CHEMO"
  2505. && model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B31") {
  2506. var cardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  2507. // 사망환자의 경우 가퇴원 정산SMS는 발송되지 않음
  2508. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "-"
  2509. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "") {
  2510. messageBox("사망환자의 경우 이지패스 수납 SMS는 전송하지 않습니다.", "I000");
  2511. } else {
  2512. var ivrObjt = document.all("ivr_ezpasssms");
  2513. if (ivrObjt == null) {
  2514. body.createChild("xforms:iviewer", "id:ivr_ezpasssms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2515. ivrObjt = document.all("ivr_ezpasssms");
  2516. }
  2517. var strMsg = "수납";
  2518. if (cardAmt.length > 3) {
  2519. var reg = /(^[+-]?\d+)(\d{3})/;
  2520. cardAmt += '';
  2521. while (reg.test(cardAmt)) {
  2522. cardAmt = cardAmt.replace(reg, '$1' + ',' + '$2');
  2523. }
  2524. }
  2525. // 이지패스정산 sms.pam.0007
  2526. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/ezpasssmsmsg/msgfrmtid"),
  2527. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),
  2528. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel"),
  2529. model.getValue("/root/init/receiptsms/ezpasssmsmsg/replytelno"),
  2530. cardAmt,
  2531. strMsg
  2532. );
  2533. }
  2534. }
  2535. // [칠곡] 항암미수 수납시 SMS 전송
  2536. if (getUserInfo("dutplceinstcd") == "032" &&
  2537. model.getValue("/root/init/option/chemosms") == "Y" &&
  2538. model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "A71") {
  2539. var ivrObjt = document.all("ivr_chemosms");
  2540. if (ivrObjt == null) {
  2541. body.createChild("xforms:iviewer", "id:ivr_chemosms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2542. ivrObjt = document.all("ivr_chemosms");
  2543. }
  2544. var admi_uncoamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt");
  2545. if (admi_uncoamt.length > 3) {
  2546. var reg = /(^[+-]?\d+)(\d{3})/;
  2547. admi_uncoamt += '';
  2548. while (reg.test(admi_uncoamt)) {
  2549. admi_uncoamt = admi_uncoamt.replace(reg, '$1' + ',' + '$2');
  2550. }
  2551. }
  2552. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/chemosms/msgfrmtid")
  2553. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  2554. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel")
  2555. , model.getValue("/root/init/receiptsms/chemosms/replytelno")
  2556. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  2557. , admi_uncoamt);
  2558. body.removeChild("ivr_chemosms");
  2559. }
  2560. // 퇴원처리
  2561. if (submit("TXPAI00101") == true) {
  2562. //퇴원수납영수증 출력(선택해제한 경우에는 스킵)
  2563. if (model.getValue("/root/init/option/receipt") == "Y") {
  2564. //중간금
  2565. if (srcptflag == "B01" || srcptflag == "B41" ) {
  2566. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  2567. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  2568. model.makeValue("/root/temp/receipt/ioflag", "I");
  2569. } else if (srcptflag == "B11") { //입원중간수납영수증
  2570. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  2571. model.makeValue("/root/temp/receipt/ioflag", "I");
  2572. } else if (srcptflag == "B31") { //가퇴원, 퇴원영수증
  2573. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  2574. if ( drgflag == "Y") {
  2575. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증" );
  2576. } else {
  2577. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  2578. }
  2579. //model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  2580. model.makeValue("/root/temp/receipt/ioflag", "I");
  2581. } else if (srcptflag == "B21") {
  2582. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  2583. model.makeValue("/root/temp/receipt/ioflag", "I");
  2584. } else if (srcptflag == "B51") {
  2585. //model.makeValue("/root/temp/receipt/ordtype", "응급영수증" );
  2586. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  2587. model.makeValue("/root/temp/receipt/ioflag", "I");
  2588. } else if (srcptflag == "C01") {
  2589. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  2590. model.makeValue("/root/temp/receipt/ioflag", "I");
  2591. }
  2592. var srow = grd_inpatinfo.row
  2593. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  2594. if (srow <= 0 ) {
  2595. srow = 1;
  2596. }
  2597. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  2598. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  2599. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  2600. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  2601. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  2602. model.makeValue("/root/temp/receipt/rcptsite", "S"); //등록수납발행처구분 S:수납, J:등록
  2603. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  2604. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  2605. } else {
  2606. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  2607. }
  2608. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  2609. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  2610. //영수증 팝업화면 호출
  2611. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  2612. modal("SPPAO01900");
  2613. if (srcptflag == "B31") {
  2614. model.removenode("/root/send/data5");
  2615. model.makeValue("/root/send/data5/pid", model.getValue("/root/temp/receipt/pid"));
  2616. model.makeValue("/root/send/data5/rcptdd", model.getValue("/root/temp/receipt/rcptdd"));
  2617. model.makeValue("/root/send/data5/rcptno", model.getValue("/root/temp/receipt/rcptno"));
  2618. model.makeValue("/root/send/data5/rcptseqno", model.getValue("/root/temp/receipt/rcptseqno"));
  2619. model.makeValue("/root/send/data5/cretno", model.getValue("/root/temp/receipt/cretno"));
  2620. model.makeValue("/root/send/data5/indd", model.getValue("/root/temp/receipt/indd"));
  2621. model.makeValue("/root/send/data5/instcd", model.getValue("/root/temp/receipt/instcd"));
  2622. model.makeValue("/root/send/data5/mskind", model.getValue("/root/temp/receipt/mskind"));
  2623. model.makeValue("/root/send/data5/insukind", model.getValue("/root/temp/receipt/insukind"));
  2624. model.makeValue("/root/send/data5/suppkind", model.getValue("/root/temp/receipt/suppkind"));
  2625. model.makeValue("/root/send/data5/fromdd", model.getValue("/root/temp/receipt/fromdd"));
  2626. model.makeValue("/root/send/data5/todd", model.getValue("/root/temp/receipt/todd"));
  2627. model.makeValue("/root/send/data5/ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2628. model.makeValue("/root/send/data5/wardcd", model.getValue("/root/send/data1/inpt_wardcd"));
  2629. model.makeValue("/root/send/data5/roomcd", model.getValue("/root/send/data1/inpt_roomcd"));
  2630. model.makeValue("/root/send/data5/orddeptcd", model.getValue("/root/temp/receipt/orddeptcd"));
  2631. model.makeValue("/root/send/data5/medispclid", model.getValue("/root/temp/receipt/medispclid"));
  2632. model.makeValue("/root/send/data5/atdoctid", model.getValue("/root/temp/receipt/atdoctid"));
  2633. model.makeValue("/root/send/data5/drgno", model.getValue("/root/temp/receipt/drgno"));
  2634. model.makeValue("/root/send/data5/rcptexecdd", model.getValue("/root/temp/receipt/rcptexecdd"));
  2635. model.makeValue("/root/send/data5/rcpttm", model.getValue("/root/temp/receipt/rcpttm"));
  2636. submit("TXPAI00107");
  2637. }
  2638. }
  2639. // 진료비 세부내역서 자동출력 by 조중래 20150528
  2640. if (srcptflag == "B31" && model.getValue("/root/init/option/specbillyn") == "Y" ) {
  2641. // DRG환자는 세부내역서 심사팀으로 안내하도록 팝업처리
  2642. if (drgflag == "Y") {
  2643. messageBox("DRG환자의 경우 세부내역서는 심사팀에서 출력하십시오.", "I000");
  2644. // 일반환자
  2645. } else {
  2646. // 의료급여 보험유형 통합처리
  2647. // 세부내역서 옵션 : 수가별합산 의 경우 불필요 by 조중래 20160330
  2648. var sInsuKind = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind");
  2649. // if (sInsuKind == "21" || sInsuKind == "22") {
  2650. // sInsuKind = "20";
  2651. // }
  2652. model.removenode("/root/rex/rex_detl/rex_detl_inpt");
  2653. model.makeNode ("/root/rex/rex_detl/rex_detl_inpt");
  2654. model.removenode("/root/rex/rex_detl/rex_detl_iscl");
  2655. model.makeNode ("/root/rex/rex_detl/rex_detl_iscl");
  2656. model.removenode("/root/rex/rex_detl/isclsum");
  2657. model.makeNode ("/root/rex/rex_detl/isclsum");
  2658. model.makeValue("/root/send/dataprint1/prt_pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_pid"));
  2659. model.makeValue("/root/send/dataprint1/prt_indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indd"));
  2660. model.makeValue("/root/send/dataprint1/prt_cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  2661. model.makeValue("/root/send/dataprint1/prt_insukind", sInsuKind);
  2662. model.makeValue("/root/send/dataprint1/prt_fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  2663. model.makeValue("/root/send/dataprint1/prt_todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2664. model.makeValue("/root/send/dataprint1/prt_todd_iphs", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2665. model.makeValue("/root/send/dataprint1/prt_prntflag", "1"); // 1:세부내역서, 2:수익전체, 3:수익별
  2666. model.makeValue("/root/send/dataprint1/prt_useflag", "1"); // 1:보험회사, 2:기타
  2667. model.makeValue("/root/send/dataprint1/srchflag", "O"); // O:진료, R:수납
  2668. model.makeValue("/root/send/dataprint1/prt_payflag", "-','0','2','1','5"); // 0:급여, 2:일반, 1:본인100%, 5:선택진료
  2669. model.makeValue("/root/send/dataprint1/prt_specflag", "1"); // 진료비상세내역 화면에서 1로 고정
  2670. model.makeValue("/root/send/dataprint1/prt_incls", ""); // 수익구분
  2671. model.makeValue("/root/send/dataprint1/prt_calcsum", "Y"); // 수가별합산
  2672. model.makeValue("/root/send/dataprint1/prt_drgyn", "N"); // DRG여부
  2673. // ISCL_SUM용 파라미터
  2674. model.makeValue("/root/send/dataprint1/todd_iphs", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2675. model.makeValue("/root/send/dataprint1/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  2676. model.makeValue("/root/send/dataprint1/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  2677. model.makeValue("/root/send/dataprint1/mig", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig"));
  2678. model.makeValue("/root/send/dataprint1/ownbmaxgradeflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownbmaxgradeflag"));
  2679. model.makeValue("/root/send/dataprint1/ownoveryn", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownoveryn"));
  2680. model.makeValue("/root/send/dataprint1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  2681. model.makeValue("/root/send/dataprint1/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  2682. model.makeValue("/root/send/dataprint1/log_ipaddr", app.clientIp); // 보안로깅용
  2683. model.makeValue("/root/send/dataprint1/log_logdeptcd", getUserInfo("dutplcecd")); // 보안로깅용
  2684. model.makeValue("/root/send/dataprint1/log_scrncd", "SMPAI00100"); // 보안로깅용
  2685. // 진료비 세부내역(ISCL), ISCL_SUM 조회
  2686. submit("TRPAI00111");
  2687. // inpt_xxxx 설정 처리
  2688. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_hoslog", getLogoImageURL()); // 로고
  2689. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag")); // 외래/입원구분
  2690. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_proccorpcd", model.getValue("/root/hidden/init/proccd/cd")); // 요양기관코드
  2691. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")); // 환자번호
  2692. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_hngnm", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")); // 환자성명
  2693. var itemNode = instance1.selectSingleNode("/root/hidden/init/insukind[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "']"); // 보험유형
  2694. if (itemNode == null) {
  2695. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insukind", "");
  2696. } else {
  2697. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insukind", itemNode.nm.nodeValue);
  2698. }
  2699. var itemNode = instance1.selectSingleNode("/root/hidden/init/suppkind[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_suppkind") + "']"); // 보조유형
  2700. if (itemNode == null) {
  2701. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppkind", "");
  2702. } else {
  2703. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppkind", itemNode.nm.nodeValue);
  2704. }
  2705. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_rrgstno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "-*******"); // 주민번호
  2706. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_agesex", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_age") + "/" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_sex")); // 나이/성별
  2707. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddeptcdall[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']"); // 진료과
  2708. if (itemNode == null) {
  2709. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_orddeptcd", "");
  2710. } else {
  2711. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_orddeptcd", itemNode.nm.nodeValue);
  2712. }
  2713. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']"); // 진료의사
  2714. if (itemNode == null) {
  2715. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_medispclid", "");
  2716. } else {
  2717. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_medispclid", itemNode.nm.nodeValue);
  2718. }
  2719. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']"); // 면허번호
  2720. if (itemNode == null) {
  2721. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_licnsno", "");
  2722. } else {
  2723. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_licnsno", itemNode.licnsno.nodeValue);
  2724. }
  2725. // 유형별 종료일자 설정
  2726. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  2727. if (iphs_todd == "99991231") {
  2728. iphs_todd = model.getValue("/root/send/data1/inpt_dschdd");
  2729. }
  2730. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_roomcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_roomcd")); // 병실
  2731. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd")); // 계정감면
  2732. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")); // 입원일자
  2733. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_dschdd", model.getValue("/root/send/data1/inpt_dschdd")); // 퇴원일자
  2734. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insucd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insucd")); // 조합기호
  2735. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_indayno", parseInt(getDateInterval(model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"), iphs_todd, "DD")) + 1); // 재원일수(양입법)
  2736. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd")); // 시작일자
  2737. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_todd", iphs_todd); // 종료일자
  2738. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_chgroomhist", model.getValue("/root/rex/rex_detl/isclsum/isclsum_chgroomhist")); // 전실내역
  2739. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_totalamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_totalamt"));
  2740. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_payamt"));
  2741. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payinsubamt", parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_payinsubamt"))
  2742. + parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_nopyinsubamt"))
  2743. + parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_specinsubamt")));
  2744. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payownamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_payownamt"));
  2745. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_allownownbamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_allownownbamt"));
  2746. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_nopyownbamt_org", model.getValue("/root/rex/rex_detl/isclsum/isclsum_nopyownbamt_org"));
  2747. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_specamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_specamt"));
  2748. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_discamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_discamt"));
  2749. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_bloddiscamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_bloddiscamt"));
  2750. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_ownoveramt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_ownoveramt"));
  2751. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_suppamt"));
  2752. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_ownbamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_ownbamt"));
  2753. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_taxamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_taxamt"));
  2754. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_prercptamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_prercptamt"));
  2755. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_chgdepthist", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2756. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_wardcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2757. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_nopyamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2758. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_cashamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2759. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_cardamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2760. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_limitdiffamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2761. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_drgnopyamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2762. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_drgallownbamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2763. model.refresh();
  2764. // 진료비 세부내역서 출력
  2765. exeReportPreview("RPPAI00207", "XMLSTR", "", "", "true", "", "", "", "", "true", "", "", "", "", "", model.getValue("/root/init/option/specbillcnt"));
  2766. }
  2767. }
  2768. //가퇴원에서 정상퇴원으로 처리시 보관금(- 금액 발생)이 발생할 경우 보관금 창을 띄운다
  2769. var srow = grd_inpatinfo.row
  2770. var sindschstat = model.getValue("/root/send/data2/iphs_indschacptstat");
  2771. if (sindschstat == "T" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) < 0 && srcptflag == "B31") {
  2772. if (messageBox("보관금을 등록하겠습니까?", "Q999","") == 6) {
  2773. model.makeValue("/root/main/inpt_info/inptpatinfo/keepamt", (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) * -1));
  2774. modal("../../../pam/inordamtmngtweb/xrw/SMPAI02300", "1","", "", "SMPAI02300", "/root/main/inpt_info/inptpatinfo", "/root/send/patinfo");
  2775. }
  2776. }
  2777. fRtnRcpt("2");//수납하면 인스턴스가 지워지므로 초기화 전에 한다.
  2778. //퇴원수납이 아닌 유형의 수납처리시 초기화 하지 않음.
  2779. //if (sdschrcptflag == "R" || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") == "S" ) {
  2780. // var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  2781. // fInitialize("all");
  2782. // model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  2783. // fInPatInfoRef("1");
  2784. //} else {
  2785. //수납 후 환자 재조회 요청(20080908)
  2786. // 2012.01.17 - 수납 후 재조회 기능 제거 by 조중래
  2787. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  2788. fInitialize("all");
  2789. // 2009.04.22 - 수납취소 후 재조회 기능 제거
  2790. // 2009.05.18 - 수납취소 후 재조회 기능 복원
  2791. // 2012.01.17 - 수납 후 재조회 기능 제거 by 조중래
  2792. model.makeValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  2793. model.refresh();
  2794. //fInPatInfoRef("1");
  2795. //}
  2796. }
  2797. }
  2798. //수납취소
  2799. function fRcptCnclProcess() {
  2800. // 수납자 마감여부 체크하여 처리
  2801. if (isMagmAprv()) {
  2802. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  2803. }
  2804. var srowcount = getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo");
  2805. var srow = grd_inpatinfo.row
  2806. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  2807. if (srow <= 0 ) {
  2808. srow = 1;
  2809. }
  2810. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == null) {
  2811. messageBox("수납취소할 입원내역이 없습니다.","E999","");
  2812. return;
  2813. }
  2814. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == "" || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == null) {
  2815. messageBox("수납취소할 재원정보가 없습니다.","E999","");
  2816. return;
  2817. }
  2818. var srcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag")
  2819. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  2820. if (srcptflag != "C01") {
  2821. messageBox("마이그레이션 데이터는 수납취소 할 수 없습니다.","I999","");
  2822. return;
  2823. }
  2824. }
  2825. if ((srcptflag) == "" || (srcptflag) == null) {
  2826. messageBox("수납계정이 없습니다. 수납계정을","C001","");
  2827. model.setFocus("ipt_rcptcd");
  2828. return;
  2829. }
  2830. if ((srcptflag != "B03") && (srcptflag != "B13") && (srcptflag != "B23") && (srcptflag != "B33") && (srcptflag != "B43") && (srcptflag != "B53")) {
  2831. messageBox("입력된 수납계정으로는 수납취소를 할 수 없습니다.", "E999","");
  2832. return;
  2833. }
  2834. var srcptnochk = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno");
  2835. if (srcptnochk == null || srcptnochk == "" || srcptnochk == " " || srcptnochk == "-") {
  2836. messageBox("수납취소할 내역을 [청구수납]에서 더블클릭 하십시오.", "E999", "");
  2837. return;
  2838. }
  2839. //자료수집 체크
  2840. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  2841. var bLastmdlclamyn = false;
  2842. if (srcptflag == "B33" && (slastmdlclamdd == "" || slastmdlclamdd == "-" || slastmdlclamdd == "00000000")) {
  2843. } else {
  2844. if (srcptflag == "B33" && slastmdlclamdd >= model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")) {
  2845. if (messageBox("보험 자료수집이 완료된 환자 입니다.(할인정보 변경외에는 수납취소 하지 마십시오) 수납취소를 하시겠습니까?", "Q999","") == 7) {
  2846. return;
  2847. }
  2848. /* 2011/01/14 cys 김상진 대리요청했다가 다시 원복
  2849. messageBox("보험 자료수집이 완료된 환자입니다. 자료수집이 삭제되어야 취소가능합니다. 심사팀에 전화하여 취소하십시오!","E999");
  2850. return;
  2851. */
  2852. bLastmdlclamyn = true;
  2853. }
  2854. }
  2855. if (srcptflag == "B03" || srcptflag == "B53") {
  2856. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt/rcptflag") != "") {
  2857. var iRcptRow1 = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  2858. for(var iRcptRow=1; iRcptRow<=iRcptRow1; iRcptRow++){
  2859. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptstat") == "Y") {
  2860. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptflag") == "E70") {
  2861. messageBox("퇴원청구(E70)계정이 생성되어 있습니다. 해당 계정으로 수납처리(취소) 할 수", "I004");
  2862. fInitialize("inpatinfo");
  2863. fDschamtVisible(false);
  2864. fCalcInfo("2");
  2865. //fOrdAmtInfo(); //진료비내역
  2866. //fRcptInfo("1");
  2867. //진료비내역,청구수납 내역
  2868. fRcpt_AllInfo("Y","Y","1");
  2869. return;
  2870. }
  2871. }
  2872. }
  2873. }
  2874. }
  2875. /*
  2876. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  2877. if ((srcptflag == "B31" || srcptflag == "B21") && (srow != 1) && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow - 1) +"]/iphs_rcptyn") == "Y")) {
  2878. messageBox("이전 유형이 수납되어 있지 않습니다. 현재 유형을 수납", "E001", "");
  2879. return;
  2880. }
  2881. }
  2882. */
  2883. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  2884. if ((srcptflag == "B33") || (srcptflag == "B22")) {
  2885. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  2886. //alert(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_mskind = 'M' and iphs_rcptyn = 'Y' and iphs_todd > " + iphs_todd + "]/iphs_rcptyn"));
  2887. if(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_mskind = 'M' and iphs_rcptyn = 'Y' and iphs_todd > " + iphs_todd + "]/iphs_rcptyn") >0){
  2888. messageBox("이후 재원 유형중 수납취소 처리 되지 않은 내역이 있습니다.\n현재 유형을 수납취소", "E001", "");
  2889. return;
  2890. }
  2891. /*
  2892. if (srow != 1) {
  2893. var i = srow - 1;
  2894. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "Y") {
  2895. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "M") {
  2896. messageBox("이후 재원 유형중 수납취소 처리 되지 않은 내역이 있습니다.\n현재 유형을 수납취소", "E001", "");
  2897. return;
  2898. }
  2899. }
  2900. }
  2901. */
  2902. }
  2903. } else {
  2904. //부유형이 존재할 경우 주유형 수납취소 후 부유형을 취소해야 함.
  2905. for (i = 1; i <= srowcount; i++) {
  2906. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "M" &&
  2907. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "Y" &&
  2908. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mig") != "Y") {
  2909. messageBox("부유형 수납취소전에 주유형 수납을 취소 하셔야 합니다.", "E999");
  2910. return;
  2911. }
  2912. }
  2913. }
  2914. if (srcptflag == "B33") {
  2915. var iBloodCount = getNodesetCount("/root/main/admi_info/admietc/grdbloodspec");
  2916. if (iBloodCount > 0) {
  2917. var iDiscCnt = 0;
  2918. for (i = 1; i <= iBloodCount; i++) {
  2919. if (model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptflag") == "B31") {
  2920. iDiscCnt = iDiscCnt + parseInt(model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/disccnt"));
  2921. }
  2922. }
  2923. if (iDiscCnt > 0) {
  2924. var sDiscCnt = "(" + iDiscCnt + " 매)";
  2925. messageBox("퇴원수납반환(B33)시 수혈대체액이 반환처리 됩니다. 헌혈증매수를 확인하십시오." + sDiscCnt, "I999");
  2926. }
  2927. }
  2928. }
  2929. if (srcptflag == "B43") {
  2930. var iBloodCount = getNodesetCount("/root/main/admi_info/admietc/grdbloodspec");
  2931. if (iBloodCount > 0) {
  2932. var iDiscCnt = 0;
  2933. for (i = 1; i <= iBloodCount; i++) {
  2934. if (model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptflag") == "B41") {
  2935. //B41이 두개 이상 발생할 수 있음.
  2936. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptdd") == model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptdd") &&
  2937. model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno") == model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptno")) {
  2938. iDiscCnt = iDiscCnt + parseInt(model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/disccnt"));
  2939. }
  2940. }
  2941. }
  2942. if (iDiscCnt > 0) {
  2943. var sDiscCnt = "(" + iDiscCnt + " 매)";
  2944. messageBox("퇴원후추가수납반환(B43)시 수혈대체액이 반환처리 됩니다. 헌혈증매수를 확인하십시오." + sDiscCnt, "I999");
  2945. }
  2946. }
  2947. }
  2948. var sdschrcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag");
  2949. // var srateflag = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag");
  2950. // var sOrdType = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  2951. var sDschJudgPrcsStat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschjudgprcsstat");
  2952. var bjudgprcsyn = false;
  2953. var bRcptCnclYN = false;
  2954. var bHeallifeamtclamamt = false;
  2955. if (srcptflag == "B33" || srcptflag == "B23") {
  2956. if (sdschrcptflag != "R") {
  2957. if (srcptflag == "B33") {
  2958. if (sDschJudgPrcsStat != "A"
  2959. //&& bLastmdlclamyn == false
  2960. ) {
  2961. //수납취소시 보험심사내역 삭제 여부
  2962. if (messageBox("퇴원수납취소시 보험심사내역을 미심사로 변경 하시겠습니까?", "Q999","") == 7) {
  2963. bjudgprcsyn = false;
  2964. } else {
  2965. bjudgprcsyn = true;
  2966. }
  2967. }
  2968. if (messageBox("퇴원수납취소시 퇴원수납금액의 수납을 취소 하시겠습니까?\n[ 예 ] 퇴원수납금액 반환(재원상태)\n[아니오] 퇴원당일 경우 중간금전환(재원상태), 퇴원일이 과거일 경우 가퇴원금전환(가퇴원상태)", "Q999","") == 7) {
  2969. bRcptCnclYN = false;
  2970. } else {
  2971. bRcptCnclYN = true;
  2972. }
  2973. var iheallifeamtclamamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt");
  2974. if (iheallifeamtclamamt != "0") {
  2975. messageBox("건강생활유지비(" + iheallifeamtclamamt + ")가 수납된 환자입니다. 수납내역은 반환되며, 수납취소 후 의료급여승인을 취소하십시오.", "I999");
  2976. bHeallifeamtclamamt = true;
  2977. }
  2978. } else {
  2979. if (sDschJudgPrcsStat != "A") {
  2980. //수납취소시 보험심사내역 삭제 여부
  2981. if (messageBox("가퇴원수납취소시 보험심사내역을 미심사로 변경 하시겠습니까?", "Q999","") == 7) {
  2982. bjudgprcsyn = false;
  2983. } else {
  2984. bjudgprcsyn = true;
  2985. }
  2986. }
  2987. if (messageBox("가퇴원수납취소시 가퇴원수납금액의 수납을 취소 하시겠습니까?\n[ 예 ] 퇴원수납금액 반환(재원상태)\n[아니오] 중간금전환(재원상태)", "Q999","") == 7) {
  2988. bRcptCnclYN = false;
  2989. } else {
  2990. bRcptCnclYN = true;
  2991. }
  2992. }
  2993. }
  2994. }
  2995. var bUncoCnclYN = false;
  2996. if (srcptflag == "B33") {
  2997. //퇴원수납 취소시 미수입금 금액이 있을 경우 메세지 처리로 미수 -> 중간금으로 변경한다.
  2998. var iUncoCount = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  2999. for (i = 1; i <= iUncoCount; i++) {
  3000. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ i +"]/rcptflag") == "C01" && model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ i +"]/rcptstat") == "Y") {
  3001. messageBox("미수입금액이 존재합니다. 미수입금액은 모두 입원선수금(B01)으로 전환됩니다.", "I999")
  3002. bUncoCnclYN = true;
  3003. break;
  3004. }
  3005. }
  3006. }
  3007. //중간금 수납취소시 card, cash, onln으로 수납되었는지 확인 후 승인취소 메세지와 함께 취소 처리 한다.
  3008. if (srcptflag == "B03" || srcptflag == "B53" || bRcptCnclYN == true) {
  3009. var srcptdd = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptdd");
  3010. var srcptno = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno");
  3011. var srcptseqno = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptseqno");
  3012. var sdd = "";
  3013. var sno = "";
  3014. var sseqno = "";
  3015. var j = 0;
  3016. var scardcancel = false;
  3017. var scashcancel = false;
  3018. // for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3019. // sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3020. // sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3021. // sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3022. // if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3023. // if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3024. // j = j + 1
  3025. //
  3026. // }
  3027. // }
  3028. // }
  3029. //
  3030. // if (j != 0) {
  3031. // if (messageBox("카드수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 승인취소가 됩니다.", "Q003","") == 7) {
  3032. // return;
  3033. // }
  3034. // scardcancel = true;
  3035. // }
  3036. var selectedRow = grd_rcptamt.row;
  3037. if ( parseInt( model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ selectedRow +"]/cardamt")) > 0) {
  3038. if (messageBox("카드수납 금액이 있습니다. [신용카드 자동취소는 되지 않습니다. 직접 승인취소하세요!]", "Q003","") == 7) {
  3039. return;
  3040. }
  3041. scardcancel = false;
  3042. }
  3043. j = 0;
  3044. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/cash"); i++) {
  3045. sdd = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptdd");
  3046. sno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptno");
  3047. sseqno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptseqno");
  3048. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3049. j = j + 1
  3050. }
  3051. }
  3052. if (j != 0) {
  3053. if (messageBox("현금영수증수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 승인취소가 됩니다.", "Q003","") == 7) {
  3054. return;
  3055. }
  3056. scashcancel = true;
  3057. }
  3058. j = 0;
  3059. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/onln"); i++) {
  3060. sdd = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptdd");
  3061. sno = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptno");
  3062. sseqno = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptseqno");
  3063. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3064. j = j + 1
  3065. }
  3066. }
  3067. //강남 온라인 사용하지 않음.(하지만 처리 로직 필요)
  3068. if (j != 0) {
  3069. if (messageBox("온라인입금수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 온라인입금 취소가 됩니다.", "Q003","") == 7) {
  3070. return;
  3071. }
  3072. }
  3073. }
  3074. //수납취소***********************
  3075. if (messageBox("수납취소를 처리하시겠습니까?", "Q999","") == 7) {
  3076. return;
  3077. }
  3078. // 퇴원취소(B330 사유 등록
  3079. if (srcptflag == "B33") {
  3080. modal("SMPAI00101", "1","300", "300", "SMPAI00101", "", "", "sysmenu:hidden;");
  3081. }
  3082. model.resetInstanceNode("/root/send/data1");
  3083. model.resetInstanceNode("/root/send/data2");
  3084. model.resetInstanceNode("/root/send/data3");
  3085. model.copyNode("/root/send/data1", "/root/main/inpt_info/inptpatinfo");
  3086. //퇴원수납시 보험심사 내역 변경 처리
  3087. if (bjudgprcsyn == true) {
  3088. model.makeValue("/root/send/data1/inpt_judgprcsyn", "Y");
  3089. } else {
  3090. model.makeValue("/root/send/data1/inpt_judgprcsyn", "N");
  3091. }
  3092. //수납금취소 여부
  3093. if (bRcptCnclYN == true) {
  3094. model.makeValue("/root/send/data1/inpt_rcptcnclyn", "Y");
  3095. } else {
  3096. model.makeValue("/root/send/data1/inpt_rcptcnclyn", "N");
  3097. }
  3098. //미수입금 전환여부
  3099. if (bUncoCnclYN == true) {
  3100. model.makeValue("/root/send/data1/inpt_uncocnclyn", "Y");
  3101. } else {
  3102. model.makeValue("/root/send/data1/inpt_uncocnclyn", "N");
  3103. }
  3104. model.copyNode("/root/send/data2", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  3105. model.copyNode("/root/send/data3", "/root/main/admi_info/ordamt/admispec");
  3106. //model.setValue("/root/send/data3/admi_appdd", getCurrentDate());
  3107. model.setValue("/root/send/data3/admi_rcptexecdd", getCurrentDate());
  3108. model.setValue("/root/send/data3/admi_rcpttm", getCurrentTime());
  3109. model.setValue("/root/send/data3/admi_dschrcptflag", sdschrcptflag);
  3110. //현재 환자 상태 조회
  3111. /*
  3112. if ((srcptflag == "B23" || srcptflag == "B33") && (sdschrcptflag == "D")) {
  3113. submit("TRPAI00129");
  3114. if (model.getValue("/root/temp2/ipatchk/indschacptstat") == "A") {
  3115. messageBox("재원 환자입니다. 환자를 재조회 하여 환자 상태를 확인하십시오.", "E999");
  3116. return;
  3117. }
  3118. if (srcptflag == "B33" && model.getValue("/root/temp2/ipatchk/indschacptstat") != "D") {
  3119. messageBox("퇴원환자가 아닙니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  3120. return;
  3121. }
  3122. model.removenode("/root/temp2");
  3123. model.makeNode("/root/temp2");
  3124. }
  3125. */
  3126. if (scardcancel == true) {
  3127. model.removenode("/root/send/set_card/card");
  3128. ///--------------------------------------------------------------------------------------------------------------------------카드 취소 로직 변경
  3129. // var iCardAmt = parseInt(model.getValue("/root/send/data3/admi_cardamt")); //card 금액
  3130. // var sPid = model.getValue("/root/send/data1/inpt_pid"); //환자번호
  3131. // var sVanCD =""; //van사 구분
  3132. // var sAprvFlag = ""; //승인구분
  3133. // var sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag"); //입력구분
  3134. // var sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata"); //swipedata
  3135. // var sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno"); //카드번호
  3136. // var sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm"); //유효기간
  3137. // var sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm"); //할부기간
  3138. // var sAprvDD = ""; //원거래승인일자(취소)
  3139. // var sAprvTm = ""; //원거래승인일시(취소)
  3140. // var sAprvNo = ""; //원거래승인번호(취소)
  3141. // var sOrdType = model.getValue("/root/send/data1/inpt_ordtype"); //ordtype
  3142. // var sOrdDeptCd = model.getValue("/root/send/data2/iphs_orddeptcd"); //orddeptcd
  3143. // var sCrdtNo = model.getValue("/root/send/data2/iphs_cretno"); //cretno
  3144. // var sOrdDD = model.getValue("/root/send/data1/inpt_indd"); //orddd
  3145. // var iSeqno = 1;
  3146. model.removenode("/root/hidden/cncl_card"); //카드승인취소
  3147. model.makeNode("/root/hidden/cncl_card");
  3148. //model.removenode("/root/hidden/cncl_cash/cash"); //현금영수증승인취소
  3149. //model.makeNode("/root/hidden/cncl_cash/cash");
  3150. var iCardCount = 0;
  3151. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3152. sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3153. sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3154. sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3155. if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3156. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3157. iCardCount = parseInt(iCardCount) + 1;
  3158. model.makeNode("/root/hidden/cncl_card/card[" + iCardCount + "]");
  3159. copyNodeType("/root/hidden/cncl_card/card[" + iCardCount + "]", "/root/hidden/admi_info/ordamt/card[" + i + "]", "after");
  3160. }
  3161. }
  3162. }
  3163. //카드취소는 취소 node -> 취소 -> 취소내역 node 처리한다.
  3164. parm = "0" + "▦" + //멀티건수
  3165. "" + "▦" + //멀티opmi
  3166. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3167. "" + "▦" + //rcptno
  3168. "" + "▦" + //rcptseqno
  3169. "0" + "▦" + //totalamt
  3170. "/root/hidden/cncl_card" + "▦" + //send
  3171. "/root/send/set_card/card" + "▦" + //receive
  3172. model.getValue("/root/send/data1/inpt_pid") + "▦" + //pid
  3173. model.getValue("/root/send/data1/inpt_indd") + "▦" + //orddd
  3174. "" + "▦" + //cretno
  3175. "" + "▦" + //strRcvVan
  3176. model.getValue("/root/hidden/cncl_card/card/card_ordtype") + "▦" + //ordtype
  3177. "" + "▦" + //fromdd
  3178. "" + "▦" + //todd
  3179. model.getValue("/root/send/data2/iphs_orddeptcd") + "▦" + //orddeptcd
  3180. //단일건 접수 승인일때만 필요
  3181. "" + "▦" + //cardno
  3182. "" + "▦" + //valiterm
  3183. "" + "▦" + //allotmm
  3184. "" + "▦" + //keyinptflag
  3185. "" + "▦" ; //sSwipeData
  3186. setParameter("SPPAO00400_PARM",parm);
  3187. setParameter("SPPAO00400_FLAG", "D"); // I : 승인, D : 취소
  3188. //iviewer 생성 후 카드popup 호출
  3189. var ivrObjt = document.all("ivr_cardpopup");
  3190. if (ivrObjt == null) {
  3191. //body.createChild("xforms:iviewer", "id:ivr_cardpopup; visibility:visible; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw; left:200px; top:200px; width:790px; height:650px");
  3192. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  3193. ivrObjt = document.all("ivr_cardpopup");
  3194. }
  3195. //setParameter("SPPAO00400_PARM",parm);
  3196. //if( flag == 'I' ){
  3197. //ivrObjt.window.javascript.fInit();
  3198. //var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv();
  3199. //}else{
  3200. ivrObjt.window.javascript.fInit();
  3201. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  3202. //}
  3203. body.removeChild("ivr_cardpopup");
  3204. setParameter("SPPAO00400_FLAG", "");
  3205. if (retMsg != true) {
  3206. model.removenode("/root/hidden/cncl_card"); //카드승인취소
  3207. model.makeNode("/root/hidden/cncl_card");
  3208. return;
  3209. }
  3210. for(var i=1; i<=getNodesetCount("/root/send/set_card/card"); i++) {
  3211. model.setValue("/root/send/set_card/card[" + i + "]/card_aprvflag", "22");
  3212. model.setValue("/root/send/set_card/card[" + i + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3213. model.setValue("/root/send/set_card/card[" + i + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3214. model.setValue("/root/send/set_card/card[" + i + "]/card_innrtretyn", "N"); //내부처리여부
  3215. model.setValue("/root/send/set_card/card[" + i + "]/card_preamtyn", "N"); //선수금여부
  3216. model.setValue("/root/send/set_card/card[" + i + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3217. model.setValue("/root/send/set_card/card[" + i + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3218. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  3219. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  3220. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  3221. //model.setValue("/root/send/set_card/card[" + i + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  3222. }
  3223. //*/
  3224. /********************************************************************************************************************************************
  3225. j = 0
  3226. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3227. sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3228. sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3229. sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3230. if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3231. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3232. //카드승인
  3233. //swipe 데이타 읽어, 입력구분 세팅
  3234. fAppCardVanData(model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_vancd") //data1 //vangb van사구분
  3235. ,"21" //data2 //ordergb 거래구분
  3236. ,getCurrentDate() //data3 //mdate 회계일자
  3237. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  3238. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  3239. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  3240. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  3241. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  3242. ,"K" //data9 //entrymode 입력구분
  3243. ,"" //data10 //track2data 트랙data
  3244. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardno") //data11 //cardnumber 카드번호
  3245. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_valiterm") //data12 //cardperiod 유효기간
  3246. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_allotmm") //data13 //carddivide 할부개월수
  3247. ,parseInt(model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardamt")) //data14 //netamt 금액
  3248. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvdd") //data15 //oldappdate 원거래승인일자(취소시)
  3249. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvtm") //data16 //oldapptime 원거래승인시간(취소시)
  3250. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvno") //data17 //oldappno 원거래승인번호(취소시)
  3251. );
  3252. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  3253. messageBox("카드승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  3254. return;
  3255. }
  3256. j = j + 1
  3257. model.makeValue("/root/send/set_card/card[" + j + "]/card_pid", model.getValue("/root/send/data1/inpt_pid"));
  3258. //영수증번호는 영수증 번호 생성 후 받는다
  3259. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  3260. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  3261. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  3262. model.makeValue("/root/send/set_card/card[" + j + "]/card_seqno", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_seqno"));
  3263. model.makeValue("/root/send/set_card/card[" + j + "]/card_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  3264. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3265. model.makeValue("/root/send/set_card/card[" + j + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3266. //카드정보 차후 정리
  3267. model.makeValue("/root/send/set_card/card[" + j + "]/card_keyinptflag", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_keyinptflag")); //S:Swipe, K:Key in
  3268. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardcmpycd", model.getValue("/root/tmp/appvanif/bankid"));
  3269. //카드번호
  3270. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardno", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardno"));
  3271. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvflag", "22"); //12:카드승인응답
  3272. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  3273. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  3274. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  3275. model.makeValue("/root/send/set_card/card[" + j + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  3276. model.makeValue("/root/send/set_card/card[" + j + "]/card_allotmm", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_allotmm")); //할부개월수
  3277. //카드결제금액
  3278. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardamt", model.getValue("/root/send/data3/admi_cardamt"));
  3279. model.makeValue("/root/send/set_card/card[" + j + "]/card_valiterm", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_validterm")); //유효기간
  3280. //수납일자
  3281. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3282. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3283. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptrid", ""); //수납자
  3284. model.makeValue("/root/send/set_card/card[" + j + "]/card_innrtretyn", "N"); //내부처리여부
  3285. model.makeValue("/root/send/set_card/card[" + j + "]/card_preamtyn", "N"); //선수금여부
  3286. model.makeValue("/root/send/set_card/card[" + j + "]/card_remfact", ""); //수납내역에 대한 참고사항
  3287. model.makeValue("/root/send/set_card/card[" + j + "]/card_fstrgstrid", "");
  3288. model.makeValue("/root/send/set_card/card[" + j + "]/card_fstrgstdt", "");
  3289. model.makeValue("/root/send/set_card/card[" + j + "]/card_lastupdtrid", "");
  3290. model.makeValue("/root/send/set_card/card[" + j + "]/card_lastupdtdt", "");
  3291. }
  3292. }
  3293. }
  3294. //********************************************************************************************************************************************/
  3295. } //카드취소 End..
  3296. //현금영수증 취소.
  3297. if (scashcancel == true) {
  3298. model.removenode("/root/send/set_cash/cash");
  3299. //model.removenode("/root/hidden/cncl_cash/cash"); //현금영수증승인취소
  3300. //model.makeNode("/root/hidden/cncl_cash/cash");
  3301. var sVanFlag = model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm");
  3302. var iCash = 0;
  3303. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/cash"); i++) {
  3304. sdd = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptdd");
  3305. sno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptno");
  3306. sseqno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptseqno");
  3307. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3308. iCash = iCash + 1;
  3309. var sCashKeyInptFlag = 'K'
  3310. // ICPos의 경우 카드정보는 Swipe로 처리(카드리딩, 키입력 모두)
  3311. if (sVanFlag == "KOCES_IC" && model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmflag") == "3") {
  3312. sCashKeyInptFlag = "S";
  3313. }
  3314. fAppCardVanData("01"//model.getValue("/root/hidden/h_cvan/cvan/cvan_vancd") //data1 //vangb van사구분
  3315. ,"51" //data2 //ordergb 거래구분
  3316. ,getCurrentDate() //data3 //mdate 회계일자
  3317. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  3318. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  3319. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  3320. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  3321. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  3322. ,sCashKeyInptFlag //data9 //entrymode 입력구분
  3323. ,"" //data10 //track2data 트랙data
  3324. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmno") //data11 //cardnumber 카드번호
  3325. ,"" //data12 //cardperiod 유효기간
  3326. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_indinstflag") //data13 //carddivide 할부개월수
  3327. ,parseInt(model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_cashamt")) //data14 //netamt 금액
  3328. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvdd") //data15 //oldappdate 원거래승인일자(취소시)
  3329. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvtm") //data16 //oldapptime 원거래승인시간(취소시)
  3330. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvno") //data17 //oldappno 원거래승인번호(취소시)
  3331. ,"" //data18
  3332. ,"" //data19
  3333. ,"" //data20
  3334. ,sVanFlag //data21 //VAN사 구분
  3335. );
  3336. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  3337. //현금영수증은 취소실패가 되더래도 진행한다.
  3338. messageBox("현금영수증취소승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  3339. //return;
  3340. }
  3341. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_pid", model.getValue("/root/send/data1/inpt_pid"));
  3342. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  3343. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  3344. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  3345. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_seqno", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_seqno"));
  3346. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  3347. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3348. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3349. //키입력구분 K:Kind in, S:Swipe
  3350. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_keyinptflag", 'K');
  3351. //개인법인구분 P:개인, C:법인(00, 01) 확인 필요
  3352. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_indinstflag", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_indinstflag"));
  3353. //자격확인구분(주민, 핸드폰, 신용카드)
  3354. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_qualcnfmflag", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmflag"));
  3355. //자격확인번호
  3356. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_qualcnfmno", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmno"));
  3357. //승인구분 //42:현금영수증승인응답, 52:현금영수증취소응답
  3358. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvflag", model.getValue("/root/tmp/appvanif/ordergb"));
  3359. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvno", model.getValue("/root/tmp/appvanif/approvalno"));//승인번호
  3360. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate"));//승인일자
  3361. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime"));//승인시간
  3362. //승인금액
  3363. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_cashamt", parseInt(model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_cashamt")));
  3364. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3365. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3366. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptrid", ""); //수납자
  3367. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_innrtretyn", "N"); //내부처리여부
  3368. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_preamtyn", "N"); //선수금여부
  3369. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_remfact", ""); //수납내역에 대한 참고사항
  3370. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_fstrgstrid", "");
  3371. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_fstrgstdt", "");
  3372. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_lastupdtrid", "");
  3373. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_lastupdtdt", "");
  3374. }//취소 현금영수증 end..
  3375. }//현금영수증 개수 for end.
  3376. }//현금영수증취소 end..
  3377. if (submit("TXPAI00102") == true) {
  3378. if (bHeallifeamtclamamt == true) {
  3379. //보험증번호 조회(보험자격조회)
  3380. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") +
  3381. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민번호
  3382. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //이름
  3383. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  3384. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //진료생성번호(당일 외래요율만 적용하니 iphs것을 사용하지 않음)
  3385. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" +//ordtype
  3386. "" + "▦"+ //퇴원일자
  3387. model.getValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt")+ "▦"+//본인일부부담금
  3388. model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsubamt")+ "▦"+//기관부담금
  3389. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦"+ //등록번호
  3390. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦"; //진료과
  3391. setParameter("SPPMC03900_PARM",parm);
  3392. setParameter("SPPMC03900_RTN","");
  3393. modal("SPPMC03900", "1","0", "0", "SPPMC03900", "", "");
  3394. }
  3395. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  3396. fInitialize("all");
  3397. // 2009.04.22 - 수납취소 후 재조회 기능 제거
  3398. // 2009.05.18 - 수납취소 후 재조회 기능 복원
  3399. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  3400. fInPatInfoRef("1");
  3401. }
  3402. }
  3403. //중간금수납(B01)
  3404. function fMdlAmtRcpt(flag) {
  3405. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totamt", 0);
  3406. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payamt", 0);
  3407. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payinsubamt", 0);
  3408. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt10", 0);
  3409. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt20", 0);
  3410. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownblimamt", 0);
  3411. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totnopyamt", 0);
  3412. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specordamt", 0);
  3413. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt", 0);
  3414. model.setValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund", 0);
  3415. model.setValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt", 0);
  3416. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discamt", 0);
  3417. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", "");
  3418. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", 0);
  3419. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "");
  3420. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", 0);
  3421. model.setValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt", 0);
  3422. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt", 0);
  3423. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt", 0);
  3424. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt", 0);
  3425. if (flag != "B41") {
  3426. model.setValue("/root/main/admi_info/ordamt/admispec/admi_restamt", 0);
  3427. model.setValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt", 0);
  3428. }
  3429. model.setValue("/root/main/admi_info/ordamt/admispec/admi_outmoveyn", "N");
  3430. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allownbamt", 0);
  3431. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyamt", 0);
  3432. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt", 0);
  3433. model.setValue("/root/main/admi_info/ordamt/admispec/admi_precashamt", 0);
  3434. model.setValue("/root/main/admi_info/ordamt/admispec/admi_precardamt", 0);
  3435. model.setValue("/root/main/admi_info/ordamt/admispec/admi_preonlineamt", 0);
  3436. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocalcflag", "1");
  3437. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptdd", "-");
  3438. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptno", 0);
  3439. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptseqno", 0);
  3440. model.setValue("/root/main/admi_info/ordamt/admispec/admi_clamlastdd", "-");
  3441. model.setValue("/root/main/admi_info/ordamt/admispec/admi_calcrcptrem", "-");
  3442. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardprercptamt", 0);
  3443. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totnopyinsubamt", 0);
  3444. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyinsubamt", 0);
  3445. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allowninsubamt", 0);
  3446. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specinsubamt", 0);
  3447. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyownbamt", 0);
  3448. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allownownbamt", 0);
  3449. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specownbamt", 0);
  3450. model.setValue("/root/main/admi_info/ordamt/admispec/admi_suppamt", 0);
  3451. model.setValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt", 0);
  3452. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt", 0);
  3453. //2011-07-01 미용 부가세
  3454. model.setValue("/root/main/admi_info/ordamt/admispec/admi_taxamt", 0);
  3455. if (flag == "R" || flag == "F") {
  3456. //미수, 감면, 수혈 node 처리
  3457. model.removenode("/root/main/admi_info/unco/unco");
  3458. model.makenode("/root/main/admi_info/unco/unco");
  3459. model.removenode("/root/main/admi_info/dcgm/dcgm");
  3460. model.makenode("/root/main/admi_info/dcgm/dcgm");
  3461. model.removenode("/root/send/set_bldc/bldc");
  3462. model.makenode("/root/send/set_bldc/bldc");
  3463. }
  3464. if (flag != "F") {
  3465. model.setValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt", 0);
  3466. }
  3467. model.refresh();
  3468. }
  3469. //임의감면, 미수 입력시 금액 재계산
  3470. function fReCalcAmt(){
  3471. var sUncoamt = 0; //미수금
  3472. var sReduAmt = 0; //감면액
  3473. var sBloddiscamt = 0; //수혈대체액
  3474. var sTotownbamt = 0; //본인부담총액
  3475. var sHandcapfund = 0; //장애인기금
  3476. var sProcsubtamt = 0; //대불액
  3477. var sDiscamt = 0; //계정감면액
  3478. var sPrercptamt = 0; //중간금
  3479. var sSuppamt = 0; //희귀난치지원금
  3480. var sHealamt = 0; //건유비
  3481. var spregdmndamt = 0; //산전진료비
  3482. //var sPayinsuRestamt = 0; //급여본인부담 절사금 공단부담금 처리
  3483. //2011-07-01 미용성형 부가세
  3484. var sTaxAmt = 0;
  3485. var srow = grd_inpatinfo.row
  3486. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  3487. if(srow <= 0){
  3488. srow = 1;
  3489. }
  3490. //수납이 되어 있을 경우 아래 세종류만 수납처리 할 수 있음.
  3491. sUncoamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt")); //미수금
  3492. sReduAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt")); //감면액
  3493. sBloddiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt")); //수혈대체액
  3494. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") != "Y") {
  3495. sTotownbamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt")); //본인부담총액
  3496. sHandcapfund = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund")); //장애인기금
  3497. sProcsubtamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt")); //대불액
  3498. sDiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt")); //계정감면액
  3499. sPrercptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt")); //중간금
  3500. sSuppamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_suppamt")); //희귀난치지원금
  3501. sHealamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt")); //건유비
  3502. spregdmndamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")); //산전진료비
  3503. sTaxAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_taxamt")); //산전진료비
  3504. //sPayinsuRestamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt")); //급여절사금액
  3505. }
  3506. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") == "T") {
  3507. sTotownbamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt")); //본인부담총액
  3508. sHandcapfund = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund")); //장애인기금
  3509. sProcsubtamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt")); //대불액
  3510. sDiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt")); //계정감면액
  3511. sPrercptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt")); //중간금
  3512. sSuppamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_suppamt")); //희귀난치지원금
  3513. sHealamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt")); //건유비
  3514. spregdmndamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")); //산전진료비
  3515. sTaxAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_taxamt")); //산전진료비
  3516. //sPayinsuRestamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt")); //급여절사금액
  3517. }
  3518. var sTotrcptpayamt = sTotownbamt - sPrercptamt - sDiscamt - sReduAmt
  3519. - sBloddiscamt - sSuppamt - sHandcapfund - sProcsubtamt - sHealamt - spregdmndamt - sUncoamt + sTaxAmt;
  3520. // 병원절사금액 재설정(원단위 절사)
  3521. model.setValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt", (Math.floor(sTotrcptpayamt / 10) * 10));
  3522. var sRcptPayAmt = sTotrcptpayamt - parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  3523. model.setValue("/root/main/admi_info/ordamt/admispec/admi_restamt", sRcptPayAmt);
  3524. //가퇴원금 변경 후 다시 가퇴원금 계산을 하기 위해 납부금액을 세팅함.
  3525. model.setValue("/root/temp1/admi_orgrcptpayamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  3526. rdo_rcptmthd.value = "3"; //1-카드, 2-현금영수증, 3-현금
  3527. fRcptMthd("3"); //1-카드, 2-현금영수증, 3-현금
  3528. model.refresh();
  3529. }
  3530. //영수증 재발행 수정시 fRcptIss2 같이 수정
  3531. function fRcptIss() {
  3532. //영수증 재발행(원본)
  3533. model.removenode("/root/temp/receipt");
  3534. //선택된 row 읽는다.
  3535. var i = grd_rcptamt.row;
  3536. var srow = grd_inpatinfo.row
  3537. if (srow <= 0 ) {
  3538. srow = 1;
  3539. }
  3540. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  3541. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") != "C01") {
  3542. messageBox("마이그레이션 데이터는 영수증 재발행을 할 수 없습니다.","I999","");
  3543. return;
  3544. }
  3545. }
  3546. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3547. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  3548. // 영수증 재발행 가능여부 검증
  3549. if (srcptflag == "B31") {
  3550. if (!fGetISCLNoRcptKey("P")) {
  3551. return;
  3552. }
  3553. }
  3554. if (srcptflag == "" || srcptflag == null || srcptflag == "E50" || srcptflag == "E70" ) {
  3555. return;
  3556. }
  3557. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3558. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3559. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3560. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3561. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3562. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3563. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3564. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3565. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  3566. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3567. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3568. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3569. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3570. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3571. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3572. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3573. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  3574. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  3575. model.makeValue("/root/temp/receipt/ioflag", "I");
  3576. if (srcptflag == "B01" ||srcptflag == "B03" ||srcptflag == "B41" ||srcptflag == "B43") {
  3577. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3578. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E") {
  3579. // model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3580. //} else {
  3581. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3582. //}
  3583. } else if (srcptflag == "B11") { //입원중간수납영수증
  3584. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  3585. } else if (srcptflag == "B31" || srcptflag == "B33") { //가퇴원, 퇴원영수증
  3586. // 과거 B31에 대한 영수증 재출력 제어용
  3587. // 과거의 영수증인 경우에만 isclhistyn = 'Y'를 설정
  3588. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptstat") != 'Y') {
  3589. model.makeValue("/root/temp/receipt/isclhistyn", "Y");
  3590. }
  3591. if ( drgflag == "Y") {
  3592. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증");
  3593. } else {
  3594. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3595. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  3596. }
  3597. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3598. } else if (srcptflag == "B21" || srcptflag == "B23") {
  3599. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  3600. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3601. } else if (srcptflag == "B51" || srcptflag == "B53") { //일반영수증으로 출력
  3602. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3603. } else if (srcptflag == "C01") {
  3604. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  3605. }
  3606. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3607. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3608. } else {
  3609. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3610. }
  3611. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3612. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  3613. //영수증 팝업화면 호출
  3614. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  3615. modal("SPPAO01900");
  3616. //modal("SPPAO01900" );
  3617. //출력 후 노드 삭제
  3618. model.removenode("/root/temp/receipt");
  3619. }
  3620. function fRcptIss2() {
  3621. //영수증 재발행(사본)
  3622. model.removenode("/root/temp/receipt");
  3623. //선택된 row 읽는다.
  3624. var i = grd_rcptamt.row;
  3625. var srow = grd_inpatinfo.row
  3626. if (srow <= 0 ) {
  3627. srow = 1;
  3628. }
  3629. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  3630. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") != "C01") {
  3631. messageBox("마이그레이션 데이터는 영수증 재발행을 할 수 없습니다.","I999","");
  3632. return;
  3633. }
  3634. }
  3635. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3636. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  3637. // 영수증 재발행 가능여부 검증
  3638. if (srcptflag == "B31") {
  3639. if (!fGetISCLNoRcptKey("P")) {
  3640. return;
  3641. }
  3642. }
  3643. if (srcptflag == "" || srcptflag == null || srcptflag == "E50" || srcptflag == "E70" ) {
  3644. return;
  3645. }
  3646. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3647. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3648. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3649. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3650. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3651. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3652. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3653. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3654. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  3655. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3656. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3657. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3658. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3659. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3660. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3661. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3662. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  3663. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  3664. model.makeValue("/root/temp/receipt/ioflag", "I");
  3665. if (srcptflag == "B01" || srcptflag == "B03" ||srcptflag == "B41" ||srcptflag == "B43") {
  3666. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3667. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E") {
  3668. // model.makeValue("/root/temp/receipt/ordtype", "응급영수증" );
  3669. //} else {
  3670. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3671. //}
  3672. } else if (srcptflag == "B11") { //입원중간수납영수증
  3673. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  3674. } else if (srcptflag == "B31" || srcptflag == "B33") { //가퇴원, 퇴원영수증
  3675. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3676. if ( drgflag == "Y") {
  3677. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증");
  3678. } else {
  3679. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  3680. }
  3681. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3682. } else if (srcptflag == "B21" || srcptflag == "B23") {
  3683. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  3684. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3685. } else if (srcptflag == "B51" || srcptflag == "B53") {
  3686. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3687. } else if (srcptflag == "C01") {
  3688. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  3689. }
  3690. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3691. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3692. } else {
  3693. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3694. }
  3695. model.makeValue("/root/temp/receipt/reprintYN", "Y" ); //재발행여부
  3696. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  3697. //영수증 팝업화면 호출
  3698. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  3699. modal("SPPAO01900");
  3700. //modal("SPPAO01900" );
  3701. //출력 후 노드 삭제
  3702. model.removenode("/root/temp/receipt");
  3703. }
  3704. //청구수납 미수내역 확인
  3705. function fRcptUnco() {
  3706. //선택된 row 읽는다.
  3707. var i = grd_rcptamt.row;
  3708. var srow = grd_inpatinfo.row
  3709. if (srow <= 0 ) {
  3710. srow = 1;
  3711. }
  3712. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3713. if (srcptflag != "B33" && srcptflag != "B31" ) {
  3714. return;
  3715. }
  3716. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/uncoamt") == "0") {
  3717. return;
  3718. }
  3719. model.resetInstanceNode("/root/send/data10");
  3720. model.makeValue("/root/send/data10/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3721. model.makeValue("/root/send/data10/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3722. model.makeValue("/root/send/data10/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3723. model.makeValue("/root/send/data10/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3724. model.makeValue("/root/send/data10/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3725. model.makeValue("/root/send/data10/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3726. model.makeValue("/root/send/data10/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3727. if (submit("TRPAI00134") == true) {
  3728. if (model.getValue("/root/temp_node/frcptuncocd/rcptuncocd/pid") != "") {
  3729. var sUncoCd = "";
  3730. var sUncoNm = "";
  3731. var sUncoAmt = "";
  3732. var sUncMsg = "";
  3733. var sCount = getNodesetCount("/root/temp_node/frcptuncocd/rcptuncocd");
  3734. for(var i=1; i<=sCount; i++) {
  3735. sUncoCd = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/uncocd");
  3736. sUncoNm = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/unconm");
  3737. sUncoAmt = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/uncoamt");
  3738. sUncMsg = sUncMsg + sUncoCd + " - " + sUncoNm + " [ " + sUncoAmt + " 원]\n";
  3739. }
  3740. messageBox(sUncMsg,"I999","");
  3741. model.resetInstanceNode("/root/temp_node/frcptuncocd")
  3742. }
  3743. }
  3744. model.resetInstanceNode("/root/send/data10");
  3745. }
  3746. //계산서 재발행
  3747. function fCalcIss() {
  3748. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == "") {
  3749. return;
  3750. }
  3751. //영수증 재발행
  3752. model.removenode("/root/temp/receipt");
  3753. //선택된 row 읽는다.
  3754. var i = grd_rcptamt.row;
  3755. var srow = grd_inpatinfo.row
  3756. if (srow <= 0 ) {
  3757. srow = 1;
  3758. }
  3759. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") =="E70" || model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") =="E50") {
  3760. } else {
  3761. messageBox("출력할 계산서를 선택하여 주십시오..", "I999");
  3762. return;
  3763. }
  3764. if (i == 0) {
  3765. messageBox("출력할 계산서를 선택하여 주십시오.", "I999");
  3766. return;
  3767. }
  3768. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptstat") =="D") {
  3769. messageBox("이미 삭제된 계산서 입니다.", "I999");
  3770. return;
  3771. }
  3772. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3773. if (srcptflag == "" || srcptflag == null || srcptflag == "B01" || srcptflag == "B21" || srcptflag == "B31" || srcptflag == "B51") {
  3774. return;
  3775. }
  3776. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3777. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3778. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3779. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3780. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3781. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3782. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3783. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3784. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  3785. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3786. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3787. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3788. model.makeValue("/root/temp/receipt/seqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/seqno"));
  3789. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3790. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3791. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3792. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3793. model.makeValue("/root/temp/receipt/ioflag", "I");
  3794. if (srcptflag == "E50") {
  3795. model.makeValue("/root/temp/receipt/ordtype", "중간계산서" );
  3796. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3797. model.makeValue("/root/temp/receipt/ret_act_label", "청구서"); //중간계산서 일 경우 청구서, 영수증 여부
  3798. model.makeValue("/root/temp/receipt/ret_act_form", "영수증양식"); //영수증양식, 중간계산서양식
  3799. model.makeValue("/root/temp/receipt/rcptexe_label", "수납할 금액"); //수납금액부분라벨
  3800. model.makeValue("/root/temp/receipt/endmidflag", "중간"); //퇴원, 중간(영수증 상단 체크박스)
  3801. } else {
  3802. model.makeValue("/root/temp/receipt/ordtype", "퇴원계산서" );
  3803. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3804. }
  3805. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3806. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3807. } else {
  3808. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3809. }
  3810. modal("SPPAO01900");
  3811. //modal("SPPAO01900" );
  3812. //출력 후 노드 삭제
  3813. model.removenode("/root/temp/receipt");
  3814. }
  3815. //계산서내역 삭제
  3816. function fCalcDel() {
  3817. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") != "99991231") {
  3818. messageBox("퇴원환자의 계산서 내역은 삭제할 수", "I004","")
  3819. return;
  3820. }
  3821. var iphssrow = grd_inpatinfo.row;
  3822. if (iphssrow <= 0) {
  3823. iphssrow = 1;
  3824. }
  3825. var srow = grd_rcptamt.row;
  3826. if (srow == 0) {
  3827. messageBox("삭제할 계산서를 선택하여 주십시오.", "I999");
  3828. return;
  3829. }
  3830. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" +srow + "]/rcptstat") =="D") {
  3831. messageBox("이미 삭제된 계산서 입니다.", "I999");
  3832. return;
  3833. }
  3834. model.removenode("/root/send/data5");
  3835. model.makeValue("/root/send/data5/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3836. model.makeValue("/root/send/data5/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3837. model.makeValue("/root/send/data5/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ iphssrow +"]/iphs_cretno"));
  3838. model.makeValue("/root/send/data5/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3839. model.makeValue("/root/send/data5/seqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" +srow + "]/seqno"));
  3840. if (submit("TXPAI00104") == true) {
  3841. fCalcInfo("2");
  3842. //fOrdAmtInfo();
  3843. //fRcptInfo("1");
  3844. //진료비내역,청구수납 내역
  3845. fRcpt_AllInfo("Y","Y","1");
  3846. }
  3847. }
  3848. //퇴원계산서 생성
  3849. function fDschCalcIns() {
  3850. var srow = grd_inpatinfo.row;
  3851. if (srow <= 0) {
  3852. srow = 1;
  3853. }
  3854. //유형이 분리 되었을 경우 이전 유형에 대해서 퇴원 계산서 생성은 중간청구가 되어 있어야 함.
  3855. //마지막 유형(유형이 하나 일경우)퇴원계산서 생성은 보험심사가 완료 되어 있어야 함.
  3856. // if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231") {
  3857. // messageBox("선택하신 유형은 퇴원계산서를 생성", "E001", "");
  3858. // return;
  3859. // }
  3860. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") == model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")) {
  3861. // messageBox("선택하신 유형은 퇴원계산서를 생성", "E001", "");
  3862. // return;
  3863. // }
  3864. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_totamt") == "0") {
  3865. messageBox("진료비총액이 0원 입니다. 퇴원계산서를 생성 할 수 없습니다.", "I999");
  3866. return;
  3867. }
  3868. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") == "Y") {
  3869. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") != "T") {
  3870. messageBox("수납이 완료되어 퇴원계산서를 생성", "E001", "");
  3871. return;
  3872. }
  3873. }
  3874. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231") {
  3875. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "A" ||
  3876. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "B") {
  3877. messageBox("심사가 완료 되어 있지 않아 퇴원계산서를 생성", "E001", "");
  3878. return;
  3879. }
  3880. var stodd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  3881. var sorgtodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3882. } else {
  3883. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "A" ||
  3884. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "B") {
  3885. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  3886. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") > slastmdlclamdd) {
  3887. messageBox("선택하신 유형은 중간청구가 되지 않아 퇴원계산서를 생성", "E001", "");
  3888. return;
  3889. }
  3890. }
  3891. var stodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3892. var sorgtodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3893. }
  3894. model.removenode("/root/send/data5");
  3895. model.makeValue("/root/send/data5/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3896. model.makeValue("/root/send/data5/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3897. model.makeValue("/root/send/data5/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3898. model.makeValue("/root/send/data5/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3899. model.makeValue("/root/send/data5/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  3900. model.makeValue("/root/send/data5/insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  3901. model.makeValue("/root/send/data5/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  3902. model.makeValue("/root/send/data5/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  3903. //todd가 99991231 일 경우 퇴원통보일자로 처리(확인필요)
  3904. model.makeValue("/root/send/data5/todd", stodd);
  3905. model.makeValue("/root/send/data5/orgtodd", sorgtodd);
  3906. model.makeValue("/root/send/data5/flag", "I");
  3907. model.makeValue("/root/send/data5/wardcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_wardcd"));
  3908. model.makeValue("/root/send/data5/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3909. model.makeValue("/root/send/data5/orddeptcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_orddeptcd"));
  3910. model.makeValue("/root/send/data5/medispclid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_medispclid"));
  3911. model.makeValue("/root/send/data5/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3912. model.makeValue("/root/send/data5/rcptflag", "E70");
  3913. model.makeValue("/root/send/data5/ownbmaxgradeflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownbmaxgradeflag"));
  3914. if (submit("TXPAI00105") == true) {
  3915. fCalcInfo("2");
  3916. //fOrdAmtInfo();
  3917. //fRcptInfo("1");
  3918. //진료비내역,청구수납 내역
  3919. fRcpt_AllInfo("Y","Y","1");
  3920. messageBox("퇴원계산서 생성이", "I002", "");
  3921. }
  3922. }
  3923. function fCardCashNo() {
  3924. //1-카드
  3925. if(model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1"){
  3926. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  3927. if ((ipt_cardcashno.currentText).length >16) {
  3928. //16자리보다 크면, "="이 있으면, swipe
  3929. if ( (ipt_cardcashno.currentText).indexOf("=") >0 ) {
  3930. var vSwipeData = "";
  3931. var vCardno_array = "";
  3932. var vCardno = "";
  3933. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  3934. vSwipeData = ipt_cardcashno.currentText;
  3935. // swipe 시 첫글자에 ?
  3936. if ( vSwipeData.indexOf("?") >= 0 ) {
  3937. vSwipeData = (vSwipeData).substr(1,37);
  3938. }
  3939. if ( vSwipeData.indexOf("/") >= 0 ) {
  3940. vSwipeData = (vSwipeData).substr(1,37);
  3941. }
  3942. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData );
  3943. vCardno_array = vSwipeData.split("=");
  3944. vCardno = vCardno_array[0];
  3945. // swipe 시 첫글자에 ?
  3946. if ( vCardno.indexOf("?") >= 0 ) {
  3947. vCardno = (vCardno).substr(1,16);
  3948. }
  3949. if ( vCardno.indexOf("/") >= 0 ) {
  3950. vCardno = (vCardno).substr(1,16);
  3951. }
  3952. //유효일자
  3953. var vValiterm = (vCardno_array[1]).substr(0,4);
  3954. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , vCardno);
  3955. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "S");
  3956. model.setValue("/root/main/admi_info/rcptmthd/validterm" , vValiterm);
  3957. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  3958. model.refresh();
  3959. model.setFocus("ipt_allotmm");
  3960. }
  3961. } else if ((ipt_cardcashno.currentText).length ==16) {
  3962. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , ipt_cardcashno.currentText);
  3963. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  3964. model.refresh();
  3965. model.setFocus("ipt_valiterm");
  3966. }
  3967. // 2-현금영수증
  3968. }else if( model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2"){
  3969. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  3970. model.setValue("/root/main/admi_info/rcptmthd/cardcashno", ipt_cardcashno.currentText);
  3971. // ICPos단말기의 경우 현금영수증카드번호는 단말기를 통해서 입력
  3972. if (model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm") != "KOCES_IC"
  3973. || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") != "3") {
  3974. //현금영수증
  3975. //rdo_indyn.disabled = false;
  3976. //20100401 현금영수증 의무화
  3977. //현금영수증 선택시
  3978. if ((ipt_cardcashno.currentText).length >16) {
  3979. //16자리보다 크면,
  3980. //"="이 있으면, swipe
  3981. if((ipt_cardcashno.currentText).indexOf("=") > 0){
  3982. var vSwipeData = "";
  3983. var vCardno_array = "";
  3984. var vCardno = "";
  3985. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  3986. vSwipeData = ipt_cardcashno.currentText;
  3987. //swipe 시 첫글자에 ?
  3988. if ( vSwipeData.indexOf("?") >= 0 ) {
  3989. vSwipeData = (vSwipeData).substr(1,37);
  3990. }
  3991. if ( vSwipeData.indexOf("/") >= 0 ) {
  3992. vSwipeData = (vSwipeData).substr(1,37);
  3993. }
  3994. vSwipeData = vSwipeData.getRightPad(40, " ");
  3995. model.setValue("/root/main/admi_info/rcptmthd/swipedata", vSwipeData );
  3996. vCardno_array = vSwipeData.split("=");
  3997. vCardno = vCardno_array[0];
  3998. // swipe 시 첫글자에 ?
  3999. if ( vCardno.indexOf("?") >= 0 ) {
  4000. vCardno = (vCardno).substr(1,16);
  4001. }
  4002. //유효일자
  4003. var vValiterm = (vCardno_array[1]).substr(0,4);
  4004. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , vCardno);
  4005. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "S");
  4006. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4007. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , model.getValue("/root/main/admi_info/rcptmthd/cashmthd") ); //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4008. }
  4009. //2013-01-28
  4010. //현금영수증 사업자 카드
  4011. vCardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  4012. if( vCardno.length == 18 && vCardno.substr(8, 1) == '9' ){
  4013. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4014. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , '01'); //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4015. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , '01');
  4016. }
  4017. model.refresh();
  4018. model.setFocus("ipt_cashamt");
  4019. } else if ((ipt_cardcashno.currentText).length == 16){
  4020. var vSwipeData = "";
  4021. vSwipeData = model.getValue("/root/main/admi_info/rcptmthd/cardcashno")+"=";
  4022. vSwipeData = vSwipeData.getRightPad(40, " ");
  4023. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData);
  4024. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  4025. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4026. model.refresh();
  4027. //model.setFocus("ipt_cashamt");
  4028. } else {
  4029. //16자리보다 작으면, 주민번호 혹은 전화번호 사업장번호
  4030. var vSwipeData = "";
  4031. vSwipeData = model.getValue("/root/main/admi_info/rcptmthd/cardcashno")+"=";
  4032. vSwipeData = vSwipeData.getRightPad(40, " ");
  4033. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData);
  4034. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  4035. //길이가 13자리이면,주민번호
  4036. if (model.getValue("/root/main/admi_info/rcptmthd/cardcashno").length == 13 ){
  4037. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag","1");
  4038. }else{
  4039. //앞 3자리 010,011,016,017,018,019 이면 전화
  4040. if ( (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "010" ||
  4041. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "011" ||
  4042. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "016" ||
  4043. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "017" ||
  4044. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "018" ||
  4045. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "019"
  4046. ) {
  4047. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "2"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4048. } else {
  4049. //16자리 길이 미만일 때 13자리 주민번호 제외 후 핸드폰 앞자리 체크 나머지는 사업장
  4050. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "4"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4051. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "01"); //00-소득공제, 01-지출증비, 02-미승인
  4052. }
  4053. }
  4054. model.refresh();
  4055. //model.setFocus("ipt_cashamt");
  4056. }
  4057. }
  4058. //1-카드, 2-현금영수증, 3-현금
  4059. // } else if ( model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "3" ){
  4060. // model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "1");
  4061. // model.refresh();
  4062. // 3-현금
  4063. }else{
  4064. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4065. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  4066. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  4067. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "");
  4068. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , "");
  4069. }
  4070. }
  4071. function fPrcpCodeUncoChk() {
  4072. //임상미수 체크
  4073. var srow = grd_inpatinfo.row
  4074. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  4075. if (srow <= 0 ) {
  4076. srow = 1;
  4077. }
  4078. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "71") {
  4079. var iRcptAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt");
  4080. messageBox("임상환자 입니다. 수납금액을 미수로 생성합니다.", "I999");
  4081. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I41");
  4082. // 2009.10.28 - 미수코드 하드코딩제거
  4083. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0063list/P0063[cdid = 'C']/cdnm"));
  4084. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iRcptAmt);
  4085. model.refresh();
  4086. fReCalcAmt();
  4087. model.removenode("/root/main/admi_info/unco/unco");
  4088. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4089. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4090. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4091. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4092. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4093. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4094. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4095. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4096. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4097. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4098. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4099. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4100. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4101. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4102. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4103. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4104. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4105. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4106. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4107. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4108. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4109. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4110. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_clincstdycd"));
  4111. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4112. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4113. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4114. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4115. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4116. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4117. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4118. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4119. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4120. }
  4121. //PMCMCODE cdgrupid = P0003 자동미수코드 정의
  4122. //처방코드 미수 발생, 중복으로 미수가 발생하지 않는다고 함.
  4123. for(var i=1; i<=getNodesetCount("/root/main/prcpcodechk/prcpchk"); i++) {
  4124. //b형간염 수직감염 예방접종
  4125. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") != "") {
  4126. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "A") {
  4127. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4128. messageBox("B형간염 수직감염 예방접종 처방이 존재합니다.\nB형간염 수직감염 예방접종 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4129. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I22"); //B형간염 수직감염 예방사업
  4130. // 2009.10.28 - 미수코드 하드코딩제거
  4131. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'A']/cdnm")); //B형간염 수직감염 예방사업
  4132. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4133. model.refresh();
  4134. fReCalcAmt();
  4135. }
  4136. //성폭력 kit
  4137. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "B") {
  4138. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4139. messageBox("성폭력키트 처방이 존재합니다.\n성폭력키트 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4140. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I23"); //성폭력키트
  4141. // 2009.10.28 - 미수코드 하드코딩제거
  4142. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'B']/cdnm")); //성폭력키트
  4143. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "H02"); //응급실 미수
  4144. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4145. model.refresh();
  4146. fReCalcAmt();
  4147. }
  4148. //음주채혈
  4149. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "C") {
  4150. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4151. messageBox("음주운전자 채혈비용 처방이 존재합니다.\n음주운전자 채혈비용 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4152. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I24"); //서초경찰서미수
  4153. // 2009.10.28 - 미수코드 하드코딩제거
  4154. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'C']/cdnm")); //서초경찰서미수
  4155. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4156. model.refresh();
  4157. fReCalcAmt();
  4158. }
  4159. //신생아 청력검사
  4160. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "D") {
  4161. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4162. messageBox("신생아 청력검사 처방이 존재합니다.\n신생아 청력검사 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4163. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "F342"); // 보건소 미수 - 의정부만 사용
  4164. // 2009.10.28 - 미수코드 하드코딩제거
  4165. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'D']/cdnm")); // 보건소 미수 - 의정부만 사용
  4166. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4167. model.refresh();
  4168. fReCalcAmt();
  4169. }
  4170. var nodeList =getNodesetCount("/root/main/admi_info/unco/unco");
  4171. if (nodeList > 1) {
  4172. messageBox("미수 내역이 2개 이상입니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4173. return;
  4174. }
  4175. model.removenode("/root/main/admi_info/unco/unco");
  4176. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4177. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4178. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4179. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4180. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4181. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4182. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4183. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4184. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4185. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4186. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4187. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4188. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4189. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4190. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4191. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4192. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4193. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4194. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4195. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4196. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4197. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4198. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4199. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4200. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4201. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4202. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4203. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4204. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4205. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4206. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4207. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4208. }
  4209. }
  4210. //필수예방접종 미수 생성
  4211. var nodeList = getNodesetCount("/root/main/admi_info/prvnamt/prvnamt");
  4212. if (nodeList > 0) {
  4213. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd") != "") {
  4214. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != "0"
  4215. && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != "") {
  4216. msg_prvntmedccd = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd");
  4217. msg_prvntmedcamt = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt");
  4218. messageBox( "예방접종미수" +msg_prvntmedccd+ " 처방이 존재합니다.\n예방접종미수처방의 금액(" +
  4219. msg_prvntmedcamt + "원)을 미수로 생성합니다.", "I999");
  4220. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") != "") {
  4221. messageBox("미수 내역이 입력되어 있습니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4222. } else {
  4223. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", msg_prvntmedccd);
  4224. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", msg_prvntmedcamt);
  4225. model.refresh();
  4226. fReCalcAmt();
  4227. model.removenode("/root/main/admi_info/unco/unco");
  4228. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4229. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4230. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4231. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4232. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4233. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4234. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4235. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4236. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4237. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4238. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4239. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4240. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4241. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4242. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4243. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4244. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4245. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4246. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4247. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4248. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4249. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4250. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4251. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4252. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4253. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4254. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4255. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4256. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4257. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4258. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4259. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4260. }
  4261. }
  4262. }
  4263. /* 예방접종미수가 존재하는 환자에게는 감면을 적용시키지 않음 by 조중래
  4264. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd") != "") {
  4265. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != "0"
  4266. && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != "") {
  4267. msg_prvntmeddiscccd = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd");
  4268. msg_prvntmedcdiscamt = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt");
  4269. messageBox( "감면계정이 있는 환자에게 예방접종처방이 존재합니다.\n예방접종금액에서 예방접종미수를 제외한 본인부담금에서 할인금(" +
  4270. msg_prvntmedcdiscamt + "원)을 임의감면(" + msg_prvntmeddiscccd + ")으로 생성합니다.", "I999");
  4271. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") != "") {
  4272. messageBox("임의감면 내역이 입력되어 있습니다. 임의감면 버튼을 클릭하여 변경하십시오.", "E999","");
  4273. } else {
  4274. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", msg_prvntmeddiscccd);
  4275. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", msg_prvntmedcdiscamt);
  4276. model.refresh();
  4277. fReCalcAmt();
  4278. model.removenode("/root/main/admi_info/dcgm/dcgm");
  4279. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4280. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  4281. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  4282. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduflag", "G");
  4283. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_apprsn", "");
  4284. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_pid", "");
  4285. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_seqno", "");
  4286. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptdd", "");
  4287. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptno", "");
  4288. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_instcd", "");
  4289. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptstat", "");
  4290. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptseqno", "");
  4291. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_ordtype", "");
  4292. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptexecdd", "");
  4293. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcpttm", "");
  4294. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_remfact", "");
  4295. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptrid", "");
  4296. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstrid", "");
  4297. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstdt", "");
  4298. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtrid", "");
  4299. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtdt", "");
  4300. }
  4301. }
  4302. }
  4303. */
  4304. }
  4305. //선천성대사이상검사 미수 생성
  4306. var nodeList = getNodesetCount("/root/main/admi_info/inbornamt/inbornamt");
  4307. if (nodeList > 0) {
  4308. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd") != "") {
  4309. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != "0"
  4310. && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != "") {
  4311. msg_inbornuncocd = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd");
  4312. msg_inbornuncoamt = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt");
  4313. messageBox( "선천성대사이상검사미수" +msg_inbornuncocd+ " 처방이 존재합니다.\선천성대사이상검사 금액(" +
  4314. msg_inbornuncoamt + "원)을 미수로 생성합니다.", "I999");
  4315. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") != "") {
  4316. messageBox("미수 내역이 입력되어 있습니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4317. } else {
  4318. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", msg_inbornuncocd);
  4319. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", msg_inbornuncoamt);
  4320. model.refresh();
  4321. fReCalcAmt();
  4322. model.removenode("/root/main/admi_info/unco/unco");
  4323. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4324. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4325. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4326. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4327. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4328. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4329. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4330. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4331. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4332. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4333. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4334. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4335. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4336. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4337. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4338. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4339. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4340. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4341. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4342. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4343. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4344. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4345. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4346. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4347. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4348. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4349. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4350. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4351. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4352. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4353. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4354. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4355. }
  4356. }
  4357. }
  4358. /* 선천성대사이상 미수가 존재하는 환자에게는 감면을 적용시키지 않음(by 조중래)
  4359. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd") != "") {
  4360. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != "0"
  4361. && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != "") {
  4362. msg_inborndiscccd = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd");
  4363. msg_inborndiscamt = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt");
  4364. messageBox( "감면계정이 있는 환자에게 선천성대사이상검사 처방이 존재합니다.\n선천성대사이상검사금액에서 선천성대사이상검사 미수를 제외한 본인부담금에서 할인금(" +
  4365. msg_inborndiscamt + "원)을 임의감면(" + msg_inborndiscccd + ")으로 생성합니다.", "I999");
  4366. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") != "") {
  4367. messageBox("임의감면 내역이 입력되어 있습니다. 임의감면 버튼을 클릭하여 변경하십시오.", "E999","");
  4368. } else {
  4369. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", msg_inborndiscccd);
  4370. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", msg_inborndiscamt);
  4371. model.refresh();
  4372. fReCalcAmt();
  4373. model.removenode("/root/main/admi_info/dcgm/dcgm");
  4374. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4375. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  4376. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  4377. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduflag", "G");
  4378. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_apprsn", "");
  4379. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_pid", "");
  4380. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_seqno", "");
  4381. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptdd", "");
  4382. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptno", "");
  4383. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_instcd", "");
  4384. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptstat", "");
  4385. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptseqno", "");
  4386. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_ordtype", "");
  4387. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptexecdd", "");
  4388. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcpttm", "");
  4389. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_remfact", "");
  4390. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptrid", "");
  4391. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstrid", "");
  4392. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstdt", "");
  4393. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtrid", "");
  4394. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtdt", "");
  4395. }
  4396. }
  4397. }*/
  4398. }
  4399. }
  4400. //세션정보 추출하기
  4401. function fGetUserInfosSampling() {
  4402. var sUserInfosS = getUserInfos();
  4403. sUserInfosS = sUserInfosS + "|";
  4404. var UserInfosS_Array = sUserInfosS.split("|");
  4405. var userid = UserInfosS_Array[0]; //사용자번호
  4406. var usernm = UserInfosS_Array[1]; //사용자이름
  4407. var posinstcd = UserInfosS_Array[6]; //근무지기관코드 2009.04.15
  4408. var posinstnm = UserInfosS_Array[7]; //근무지기관명 2009.04.15
  4409. var posdeptcd = UserInfosS_Array[4]; //소속부서코드
  4410. var posdeptnm = UserInfosS_Array[5]; //소속부서명
  4411. model.makeNode("/root/hidden/session/" + "userid");
  4412. model.makeNode("/root/hidden/session/" + "usernm");
  4413. model.makeNode("/root/hidden/session/" + "posinstcd");
  4414. model.makeNode("/root/hidden/session/" + "posinstnm");
  4415. model.makeNode("/root/hidden/session/" + "posdeptcd");
  4416. model.makeNode("/root/hidden/session/" + "posdeptnm")
  4417. if (userid == null || userid == "" || userid == " " || userid == "-") userid = "pam";
  4418. //if (posinstcd == null || posinstcd == "" || posinstcd == " " || posinstcd == "-") posinstcd = "";
  4419. model.setValue("/root/hidden/session/userid",userid);
  4420. model.setValue("/root/hidden/session/usernm",usernm);
  4421. model.setValue("/root/hidden/session/posinstcd",posinstcd);
  4422. model.setValue("/root/hidden/session/posinstnm",posinstnm);
  4423. model.setValue("/root/hidden/session/posdeptcd",posdeptcd);
  4424. model.setValue("/root/hidden/session/posdeptnm",posdeptnm);
  4425. model.refresh();
  4426. }
  4427. //화면 초기화
  4428. function fInitialize(type) {
  4429. if (type == "all") {
  4430. model.resetInstanceNode("/root/send");
  4431. model.resetInstanceNode("/root/main/inpt_info/inptpatinfo"); //인적정보
  4432. model.resetInstanceNode("/root/hidden/inpt_info/inptpatinfo"); //인적정보(hidden)
  4433. model.resetInstanceNode("/root/hidden/item01"); // 입원일자
  4434. ipt_dschdclrdt.hint="-";
  4435. ipt_dschnotidt.hint="-";
  4436. ipt_roomcd.hint= "-";
  4437. cpt_ermesg.text = "";
  4438. ipt_onlnno.visible = false;
  4439. }
  4440. if (type == "all" || type == "ipat") {
  4441. model.resetInstanceNode("/root/main/pat_info/h_emr_snw/emr_snw"); //상병정보
  4442. model.resetInstanceNode("/root/main/pat_info/h_otpt_rsrv/otpt_rsrv"); //외래예약
  4443. model.resetInstanceNode("/root/hidden/pat_info/otpt_rsrv"); //외래예약
  4444. model.resetInstanceNode("/root/hidden/pat_info/emr_snw"); //상병정보
  4445. model.resetInstanceNode("/root/main/ermngtamtmsg/ermsg"); //응급메세지
  4446. model.resetInstanceNode("/root/main/ermngtamtmsg/ermsg1"); //응급메세지1
  4447. model.resetInstanceNode("/root/main/pat_info/h_unco_uncoamt/unco_uncoamt");//환자미수내역
  4448. model.resetInstanceNode("/root/hidden/pat_info/unco_uncoamt");//환자미수내역
  4449. model.resetInstanceNode("/root/main/pat_info/h_ptsp_specpat/ptsp_specpat"); //특이내역
  4450. model.resetInstanceNode("/root/hidden/pat_info/ptsp_specpat"); //특이내역
  4451. model.resetInstanceNode("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum"); //현금영수증승인번호
  4452. model.resetInstanceNode("/root/hidden/etc2");
  4453. model.resetInstanceNode("/root/hidden/etc3");
  4454. model.resetInstanceNode("/root/hidden/etc4");
  4455. model.resetInstanceNode("/root/hidden/etc5");
  4456. model.resetInstanceNode("/root/hidden/etc6");
  4457. model.resetInstanceNode("/root/hidden/etc7");
  4458. btn_opdinfo.attribute("class") = "btn2_letter4";
  4459. btn_opspec.attribute("class") = "btn2_letter2";
  4460. btn_aipm.attribute("class") = "btn2_letter4";
  4461. btn_dscharngmnmemo.attribute("class") = "btn2_letter4";
  4462. //20100401 현금영수증 의무화 주석
  4463. ipt_cardcashno.hint ="";
  4464. ipt_cardcashno.attribute("background-color") = "#ffffff";
  4465. //2012-01-03 수납 후 강제분리 여부 세팅 해제
  4466. //파라미터가 all, ipat 일 때만 리셋한다.
  4467. model.setValue("/root/init/option/iphs_div", "false");
  4468. }
  4469. if (type == "all" || type == "ipat" || type == "ipatinfo") {
  4470. model.resetInstanceNode("/root/main/iphs_info/h_grdipatinfo/grdipatinfo"); //재원정보
  4471. model.resetInstanceNode("/root/main/iphs_info/h_opspec/opspec"); //수술내역
  4472. model.resetInstanceNode("/root/main/emr_ast_info/grdbabyhsct"); //산모, 신생아 정보
  4473. grd_inpatinfo.attribute("width") = "884" //산모, 신생아 그리드 초기화
  4474. grdbabyhsct.attribute("visibility") = "hidden";
  4475. cpt_iphs.text = ""; //재원유형 메세지 초기화
  4476. cpt_amtflag.text = ""; //요율 메세지 초기화
  4477. }
  4478. model.setValue("/root/init/option/pregdmndamtchk", "");
  4479. model.resetInstanceNode("/root/hidden/source");
  4480. model.resetInstanceNode("/root/main/admi_info/admi/grdclamrcpt"); //헌혈증정보
  4481. model.resetInstanceNode("/root/main/iscl_info/grdearnflag1"); //수익구분1
  4482. model.resetInstanceNode("/root/main/iscl_info/grdearnflag2"); //수익구분2
  4483. model.resetInstanceNode("/root/main/prcpcodechk/prcpchk"); //처방코드 미수 체크
  4484. model.resetInstanceNode("/root/main/iscl_info/reductexptamt"); //감면제외
  4485. model.resetInstanceNode("/root/hidden/earnflag"); //수익구분에서 doubleclick시 넘겨주는 node
  4486. model.resetInstanceNode("/root/main/admi_info/admi/grdclamrcpt"); //청구수납 node
  4487. model.resetInstanceNode("/root/hidden/admi_info/admi/grdclamrcpt"); //청구수납 node
  4488. model.resetInstanceNode("/root/hidden/admi_info/admietc/grdcardspec"); //카드내역
  4489. model.resetInstanceNode("/root/main/admi_info/ordamt/admispec"); //수납내역
  4490. model.resetInstanceNode("/root/main/admi_info/card/card"); //카드내역
  4491. model.resetInstanceNode("/root/main/admi_info/cash/cash"); //현금내역
  4492. model.resetInstanceNode("/root/main/admi_info/onln/onln"); //온라인입금내역
  4493. model.resetInstanceNode("/root/main/admi_info/unco/unco"); //미수내역
  4494. model.resetInstanceNode("/root/main/admi_info/dcgm/dcgm"); //감액내역
  4495. model.resetInstanceNode("/root/main/admi_info/prvnamt/prvnamt"); //필수예방접종
  4496. model.resetInstanceNode("/root/main/admi_info/inbornamt/inbornamt"); //선천성대사이상검사
  4497. // model.resetInstanceNode("/root/send/set_dcgm/dcgm");
  4498. // model.resetInstanceNode("/root/send/set_card/card");
  4499. // model.resetInstanceNode("/root/send/set_cash/cash");
  4500. // model.resetInstanceNode("/root/send/set_onln/onln");
  4501. // model.resetInstanceNode("/root/send/set_unco/unco");
  4502. // model.resetInstanceNode("/root/send/set_bldc/bldc");
  4503. model.resetInstanceNode("/root/hidden/admi_info/ordamt/admispec"); //수납내역
  4504. model.resetInstanceNode("/root/hidden/admi_info/ordamt/card"); //카드내역
  4505. model.resetInstanceNode("/root/hidden/admi_info/ordamt/cash"); //현금내역
  4506. model.resetInstanceNode("/root/hidden/admi_info/ordamt/onln"); //온라인입금
  4507. model.resetInstanceNode("/root/hidden/admi_info/ordamt/unco"); //미수
  4508. model.resetInstanceNode("/root/hidden/admi_info/ordamt/dcgm"); //감액
  4509. model.resetInstanceNode("/root/hidden/admi_info/ordamt/prvnamt"); //필수예방접종
  4510. model.resetInstanceNode("/root/main/admi_info/rcptmthd"); //수납방법, 소득지출증빙, 카드번호, 유효기간, 할부
  4511. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); //1-카드, 2-현금영수증, 3-현금
  4512. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  4513. model.resetInstanceNode("/root/temp/receipt"); //영수증내역
  4514. model.resetInstanceNode("/root/temp1"); //temp
  4515. model.resetInstanceNode("/root/main/ipsc_info"); //소급내역 정보
  4516. model.resetInstanceNode("/root/main/popupendflag"); //popup 내역
  4517. model.resetInstanceNode("/root/main/emr_prcpspec/grdnexecspec"); //미시행처방
  4518. model.setValue("/root/main/admi_info/rcptmthd/allotmm", "00"); //카드 선택시 할부 00 setting
  4519. model.setValue("/root/init/option/receipt", "Y");
  4520. //현금영수증 자동승인 여부
  4521. if( model.getValue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm") == 'Y'){
  4522. model.setValue("/root/init/option/autocashyn", model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm"));
  4523. }
  4524. model.removeNodeset("/root/send/rcptinfo/bldc_info");
  4525. model.removeNode("/root/send/rcptinfo/rcpt_info/bldcdiscamtdcYN");
  4526. model.removenode("/root/send/set_card/card");
  4527. model.makeNode("/root/send/set_card/card");
  4528. model.removenode("/root/send/set_cash/cash");
  4529. model.makeNode("/root/send/set_cash/cash");
  4530. model.removenode("/root/send/set_onln/onln");
  4531. model.makeNode("/root/send/set_onln/onln");
  4532. model.removenode("/root/send/set_dcgm/dcgm");
  4533. model.makeNode("/root/send/set_dcgm/dcgm");
  4534. model.removenode("/root/send/set_unco/unco");
  4535. model.makeNode("/root/send/set_unco/unco");
  4536. model.removenode("/root/send/set_bldc/bldc");
  4537. model.makeNode("/root/send/set_bldc/bldc");
  4538. model.removenode("/root/hidden/cncl_card"); //다중카드승인취소
  4539. model.makeNode("/root/hidden/cncl_card");
  4540. model.removenode("root/main/emr_prcpspec/grdnexecspec");
  4541. model.makeNode("root/main/emr_prcpspec/grdnexecspec");
  4542. model.removenode("/root/temp1/nexeccalc");
  4543. model.makeNode("/root/temp1/nexeccalc");
  4544. model.setValue("/root/etcvalue/popupcardamt", ""); //팝업카드결제액
  4545. model.removenode("/root/temp3");
  4546. model.makeNode("/root/temp3");
  4547. // opt_popupcard.visible = false;
  4548. btn_remfactsave.attribute("class") = "btn2_letter2";
  4549. tar_remfact.attribute("background-color") = "#ffffff";
  4550. // 동의서 출력여부 초기화
  4551. cpt_scanyn.text = '';
  4552. // 사생활보호 관리여부 초기화
  4553. cap_privacy.visible = false;
  4554. // 격리여부 초기화
  4555. cap_isolate.visible = false;
  4556. cap_isolate.hint = "";
  4557. // KTAS초기화
  4558. cap_ktas.text = "";
  4559. // 격리표식 초기화
  4560. img_isolb.src = "../../../com/hismainweb/images/btn_top_infection0_d.gif";
  4561. img_isolc.src = "../../../com/hismainweb/images/btn_top_infection1_d.gif";
  4562. img_isola.src = "../../../com/hismainweb/images/btn_top_infection2_d.gif";
  4563. //2009-01-19 이동식 추가
  4564. //카드자동승인 여부 체크 초기화
  4565. model.setValue("/root/init/option/checkcard", "N");
  4566. // 가퇴원 정산SMS 전송여부 초기화 by 조중래
  4567. model.setValue("/root/init/option/receiptsms", "Y");
  4568. // 이지패스 SMS 전송여부 초기화 by 조중래
  4569. model.setValue("/root/init/option/ezpasssms", "");
  4570. // DRG 정보 초기화
  4571. model.setValue("/root/hidden/drginfo/drgno", "");
  4572. model.setValue("/root/hidden/drginfo/rowno", "");
  4573. // 응급실 전실신청 시 출력물 제어 초기화 by 조중래
  4574. model.setValue("/root/hidden/ervisityn", "");
  4575. model.setValue("/root/hidden/erroomcd", "");
  4576. // 필수심사 내역 초기화
  4577. cpt_judgneedmsg.text = ""
  4578. model.refresh();
  4579. if (type == "all") {
  4580. model.setFocus("ipt_pid");
  4581. } else {
  4582. model.setFocus("ipt_cardcashno");
  4583. }
  4584. ipt_rcptpayamt.disabled = true;
  4585. fCloseAmt();
  4586. }
  4587. function fDschamtVisible(status){
  4588. grp_rcptpayamt.visible = status;
  4589. }
  4590. function fRtnRcpt(flag) {
  4591. if(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == null ||
  4592. (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")).getTrim == ""){
  4593. messageBox("환자번호가 존재하지 않습니다.", "E999");
  4594. }
  4595. if(flag== "1"){
  4596. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  4597. model.getValue("/root/hidden/session/posinstcd") + "▦" + //기관코드
  4598. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자등록번호
  4599. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //환자성명
  4600. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "▦" + //주민등록번호 앞자리
  4601. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민등록번호뒷자리
  4602. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hometel") + "▦" + //집전화
  4603. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel") + "▦" + //휴대폰
  4604. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일
  4605. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //일련번호
  4606. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  4607. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")+ "▦" + //진료의
  4608. ""+ "▦" + //환불금액
  4609. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "▦" + //보험유형
  4610. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") ; //진료유형
  4611. setParameter("SPPAO00600_PARM",sValue);
  4612. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  4613. }else if(flag== "2"){
  4614. var sCardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  4615. var sCashAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt");
  4616. var sOnlineAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt");
  4617. if(sCashAmt + sCardAmt + sOnlineAmt >=0 ){
  4618. return;
  4619. }else{
  4620. var rtn = messageBox("환불내역을 등록 하시겠습니까?", "Q999");
  4621. if(rtn == "7"){ //아니오
  4622. return;
  4623. }else if(rtn == "6"){
  4624. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  4625. model.getValue("/root/hidden/session/posinstcd") + "▦" + //기관코드
  4626. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자등록번호
  4627. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //환자성명
  4628. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "▦" + //주민등록번호 앞자리
  4629. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민등록번호뒷자리
  4630. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hometel") + "▦" + //집전화
  4631. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel") + "▦" + //휴대폰
  4632. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일
  4633. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //일련번호
  4634. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  4635. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")+ "▦" + //진료의
  4636. Math.abs(parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")))+ "▦" + //환불금액
  4637. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "▦" + //보험유형
  4638. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") ; //진료유형
  4639. setParameter("SPPAO00600_PARM",sValue);
  4640. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  4641. }//환불수납여부 체크 end
  4642. }//환불금액 존재여부 end
  4643. }
  4644. }//fRtnRcpt end
  4645. function fEasyPadNoInsert(flag, ipt1, ipt2){
  4646. var sValue = flag ; //rrgstno.민번 phone.전번
  4647. setParameter("SPPAO00503_PARM",sValue);//1.전번 2.민번
  4648. modal("../../../pam/inordamtmngtweb/xrw/SPPAO00503", "1","", "", "SPPAO00503", "", "", "sysmenu:hidden");
  4649. var SPPAO00503_RTN = getParameter("SPPAO00503_RTN");
  4650. var array_parm = SPPAO00503_RTN.split("▦"); //[0] 정상처리여부Y/N ,[1]전번(phone)민번(rrgstno)구분값 ,[2]전번일때값/민번일때 앞자리, [3] 전번일땐 없음 민번일땐 뒷자리
  4651. if(array_parm[0] == "Y"){
  4652. if (array_parm[1] == "phone" ) { //전번
  4653. if(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B21" && grp_rcptpayamt.visible == true){
  4654. // model.setValue("/root/main/inpt_info/inptpatinfo/inpt_smstel", getParameter("SPPAO00503_Mpphontel"));
  4655. model.refresh();
  4656. model.setFocus("button14");
  4657. } else {
  4658. if(array_parm[2].length > 0){
  4659. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "2"); //1-카드, 2-현금영수증, 3-현금
  4660. fRcptMthd("2"); //현금영수증 세팅.
  4661. // model.setValue("/root/main/admi_info/rcptmthd/cardcashno", getParameter("SPPAO00503_Mpphontel"));
  4662. model.refresh();
  4663. model.setFocus("btn_rcpt");
  4664. }else{
  4665. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "3"); //1-카드, 2-현금영수증, 3-현금
  4666. rdo_rcptmthd.refresh();
  4667. }
  4668. }
  4669. ipt1.value = array_parm[2];
  4670. ipt1.refresh();
  4671. }else if (array_parm[1] == "rrgstno" ) { //민번
  4672. ipt1.value = array_parm[2];
  4673. ipt2.value = array_parm[3];
  4674. ipt1.refresh(); ipt2.refresh();
  4675. }
  4676. }else{
  4677. messageBox("팝업 비정상종료","E999");
  4678. }
  4679. }
  4680. // ER/DSC 자동계산배치 - 2009.06.12
  4681. // ER/DSC && 입원 상태일 때만 돌린다.
  4682. function fSetAutoErDscCalc() {
  4683. var sInstcd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd");
  4684. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  4685. var sIndd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  4686. var sCretno = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno");
  4687. var sOrdtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  4688. var sIndschacptstat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat");
  4689. var sDschnotiyn = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn");
  4690. var sDschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  4691. var sDschjudgprcsstat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschjudgprcsstat");
  4692. // ER/DSC체크
  4693. if (sOrdtype == "E" || sOrdtype == "D") {
  4694. if (sIndschacptstat == "A") { // 재원
  4695. if (sDschjudgprcsstat == "A") { // 미심
  4696. model.resetInstanceNode("/root/send/data10");
  4697. model.makeValue("/root/send/data10/instcd", sInstcd);
  4698. model.makeValue("/root/send/data10/pid", sPid);
  4699. model.makeValue("/root/send/data10/indd", sIndd);
  4700. model.makeValue("/root/send/data10/cretno", sCretno);
  4701. model.makeValue("/root/send/data10/ordtype", sOrdtype);
  4702. model.makeValue("/root/send/data10/indschacptstat", sIndschacptstat);
  4703. model.makeValue("/root/send/data10/dschnotiyn", sDschnotiyn);
  4704. model.makeValue("/root/send/data10/dschnotidt", sDschnotidt);
  4705. model.makeValue("/root/send/data10/dschjudgprcsstat", sDschjudgprcsstat);
  4706. submit("TXPAI00109");
  4707. }
  4708. }
  4709. }
  4710. }
  4711. // 2009.11.14 - 금액표시기 로직 분리
  4712. function fShowAmt() {
  4713. // 원무공통코드를 통해서 금액표시기 종류 및 사용여부를 체크한다.
  4714. var sMoneyDevice = model.getValue("/root/init/PAM/P0022list/P0022[cdid = '91']/cdnm");
  4715. // POPUP : 듀얼 모니터, SERIAL : LED, null : 사용않함
  4716. if (!isNull(sMoneyDevice)) {
  4717. // 외래와 입원의 금액표시기가 다를 수 있으므로 공통함수(외래기준)를 통한 초기화를 사용하지 않고 직접 설정하는 로직으로 대체
  4718. //금액표시기 초기화
  4719. //fInit_Display(); // PAM.js
  4720. // PAM.js의 global variable에 설정
  4721. AmtDispKind = sMoneyDevice;
  4722. //금액표시기 포트열기
  4723. fOpenCom(); // PAM.js
  4724. // PAM.js
  4725. fDisplayAmt(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  4726. , model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")
  4727. , model.getValue("/root/hidden/session/usernm"));
  4728. //금액표시기 포트닫기
  4729. fCloseCom(); // PAM.js
  4730. }
  4731. }
  4732. // 20009.11.19 - 금액표시기 닫기
  4733. function fCloseAmt() {
  4734. if( AmtDispKind == 'POPUP' ){
  4735. var popupObjt = findChildWindowByScreenID("SPPMC06400");
  4736. if( popupObjt == null ){
  4737. return;
  4738. }else{
  4739. popupObjt.window.javascript.fClose();
  4740. }
  4741. } else if( AmtDispKind == 'SERIAL' ){
  4742. try{
  4743. if (document.all("NWSerial_OCX") != null){
  4744. //Port Close
  4745. var vreturn3 = -1;
  4746. vreturn3 = AmtDisplay.CloseCom();
  4747. if (vreturn3 == 0) {
  4748. AmtDisplay.CloseCom();
  4749. }
  4750. }
  4751. }catch(E){
  4752. AmtDisplay = null;
  4753. }
  4754. }else if( AmtDispKind == '-' ){
  4755. AmtDispKind = fGetAmtDispKind();
  4756. fCloseCom();
  4757. }
  4758. }
  4759. // 20091215 JHP 중증번호 희귀번호 동시존재시 콤보로 보여주기
  4760. // 희귀난치 정보와 중증 번호가 있는 경우 같이 있는 대상자만 콤보로 보이도록 함.
  4761. // DEFAULT로는 중증번호를 먼저 보여주세요. 콤보가 있는 환자는 콤보 누르면 희귀도 하단에 조회되도록..
  4762. // 변경개발요청 9553
  4763. function fItemRareMsg(){
  4764. var itemmsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_seridiagno");
  4765. var raremsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rareobstno");
  4766. // 중증번호만 존재시..itemmsg
  4767. if(itemmsg != "" && raremsg == "-"){
  4768. ipt_seridiagno.visible = true;
  4769. cmb_itemraremsg.visible = false;
  4770. caption29.attribute("text") = "중증번호";
  4771. // 희귀번호만 존재시.. raremsg
  4772. }else if(itemmsg == "" && raremsg != "-"){
  4773. ipt_seridiagno.visible = true;
  4774. cmb_itemraremsg.visible = false;
  4775. caption29.attribute("text") = "희귀번호";
  4776. // 희귀난치성 산정특례환자의 등록번호를 보여준다. - 20090622 박창원
  4777. var raremsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rareobstno");
  4778. if (raremsg != '-') {
  4779. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_seridiagno",raremsg);
  4780. model.refresh();
  4781. }
  4782. // 두번호 모두 존재시.. itemmsg, raremsg
  4783. }else if(itemmsg != "" && raremsg != "-"){
  4784. ipt_seridiagno.visible = false;
  4785. cmb_itemraremsg.visible = true;
  4786. cmb_itemraremsg.attribute("top") = 127;
  4787. caption29.attribute("text") = "중증/희귀";
  4788. model.setValue("/root/hidden/itemraremsg/msg[" + 1 + "]/cd","itemmsg");
  4789. model.setValue("/root/hidden/itemraremsg/msg[" + 1 + "]/nm",itemmsg);
  4790. model.setValue("/root/hidden/itemraremsg/msg[" + 2 + "]/cd","raremsg");
  4791. model.setValue("/root/hidden/itemraremsg/msg[" + 2 + "]/nm",raremsg);
  4792. // 기본 중증 셋팅
  4793. cmb_itemraremsg.value= "itemmsg";
  4794. }else{
  4795. ipt_seridiagno.visible = true;
  4796. cmb_itemraremsg.visible = false;
  4797. caption29.attribute("text") = "중증번호";
  4798. }
  4799. }
  4800. //수혈대체
  4801. function fbtn_bloddiscamt() {
  4802. // 수정이력 JHP 20100409 수혈대체시 무조건 주유형에 매칭되므로 부유형에 매칭되도록 cretno를 유형별 재원정보에서 가져오도록 수정
  4803. var inpatinforow = grd_inpatinfo.row;
  4804. if(inpatinforow < 1){
  4805. inpatinforow = 1;
  4806. }
  4807. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자번호
  4808. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  4809. //model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //생성번호
  4810. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_cretno") + "▦" + //생성번호
  4811. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_orddeptcd") + "▦" + //진료과
  4812. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_medispclid") + "▦" + //진료의사
  4813. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_insukind") + "▦" + //보험유형
  4814. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_suppkind") + "▦" + //보조유형
  4815. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" + //진료형태
  4816. "" + "▦" + //진료형태
  4817. "" + "▦" + //parent가 이미 가지고 있던 감액 내역
  4818. "/root/send/set_bldc" + "▦" + //팝업이 닫힐때 감액내역을 받을 위치
  4819. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_fromdd") + "▦" + // 유형 적용 시작일
  4820. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_todd") + "▦"; // 유형 적용 종료일
  4821. setParameter("SPPAO01401_PARM",parm);
  4822. //alert("parm :" + parm);
  4823. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "D") {
  4824. messageBox("퇴원수납된 환자의 추가 수혈대체인 경우 수납계정을 [B41]로 입력 후 대체 하십시오.","I999","");
  4825. setParameter("SPPAO01401_CopyBtn", "Y");
  4826. } else {
  4827. setParameter("SPPAO01401_CopyBtn", "");
  4828. }
  4829. //수혈대체 감면적용 제외 대상 환자는 퇴원 취소 후 처리하도록 유도
  4830. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_indschacptstat") == 'D'
  4831. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '-'
  4832. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '' ){
  4833. messageBox("감면대상 환자는 퇴원상태에서 수혈대체 할 수 없습니다."
  4834. + "\n퇴원 취소 후 수혈대체 처리하세요!!", "E999", "");
  4835. return false;
  4836. }
  4837. modal("SPPAO01401", "1","300", "300", "SPPAO01401", "", "");
  4838. if (getParameter("SPPAO01401_RTN") != "Y" ) return;
  4839. //2013-01-21 수혈대체 감면금액 제외 후 대체되도록 수정
  4840. //감면코드가 있을 때만 처리한다.
  4841. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '-'
  4842. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '' ){
  4843. fRcpt_AllInfo("Y","Y","4");
  4844. }
  4845. var TotBlodDiscAmt = parseInt(getParameter("SPPAO01401_TotBldcDiscAmt"));
  4846. model.setValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt", TotBlodDiscAmt);
  4847. //fReCalcAmt("1", TotBlodDiscAmt); //r금액 재계산
  4848. fReCalcAmt(); //r금액 재계산
  4849. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "") {
  4850. model.setFocus("ipt_rcptcd");
  4851. } else {
  4852. model.setFocus("ipt_cardcashno");
  4853. }
  4854. model.refresh();
  4855. }
  4856. //입원일자 콤보 박스에서 선택할시 이벤트
  4857. function fbtn_cmb_indd() {
  4858. var sinddvalue = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  4859. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt", "");
  4860. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt", "");
  4861. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt", "");
  4862. var iSelectRow = cmb_indd.mouseRow;
  4863. if (iSelectRow == 0) {
  4864. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  4865. fInitialize("all");
  4866. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  4867. fInPatInfoRef("1");
  4868. return;
  4869. }
  4870. iSelectRow = iSelectRow + 1;
  4871. fInitialize("ipat");
  4872. copyNodesetType("/root/main/inpt_info/inptpatinfo","/root/hidden/inpt_info/inptpatinfo[" + iSelectRow + "]","replace");
  4873. model.setValue("/root/hidden/etc7", model.getValue("/root/hidden/item01/indd[" + iSelectRow +"]/indd1"));
  4874. model.refresh();
  4875. fAgeCalc();
  4876. fInDayNo();
  4877. model.setValue("/root/send/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4878. model.setValue("/root/send/ordtype", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  4879. // 20091215 JHP 수정추가 중증에 희귀 존재할시에 콤보박스로 보여주기
  4880. fItemRareMsg();
  4881. fIPatInfoChk();
  4882. model.refresh();
  4883. }
  4884. //입원수납현금영수증 버튼 - 기존현금영수증 로직(사용안함 20110422 cys)
  4885. function fbtn_cashdamt_org() {
  4886. if( model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == ' ' ||
  4887. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' ){
  4888. messageBox("환자를 먼저 조회하신 후에 현금영수증 팝업을 열어 작업을 하실 수 있습니다!!", "E999", "");
  4889. return false;
  4890. }
  4891. var parm = "0" + "▦" + //외래등록의 멀티접수인 경우만 해당멀티건수 나머지는 default '0'으로 세팅
  4892. "-" + "▦" + //외래등록 멀티접수인 경우만 각각의 본인부담액을 보낸다. 나머지는 '-'
  4893. "" + "▦" +
  4894. "" + "▦" +
  4895. "" + "▦" +
  4896. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) + "▦" +
  4897. "/root/main/admi_info/cash" + "▦" +
  4898. "/root/main/admi_info/cash" + "▦";
  4899. setParameter("SPPAO00500_PARM",parm);
  4900. modal("../../../pam/pamcomnweb/xrw/SPPAO00500", "1","200", "200", "SPPAO00500", "", "");
  4901. }
  4902. //입원수납현금영수증 버튼 - 신규로직
  4903. function fbtn_cashdamt() {
  4904. if( model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == ' ' ||
  4905. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' ){
  4906. messageBox("환자를 먼저 조회하신 후에 현금영수증 팝업을 열어 작업을 하실 수 있습니다!!", "E999", "");
  4907. return false;
  4908. }
  4909. if(!fOpenCashPopUp()){return false;}
  4910. }
  4911. function fOpenCashPopUp(flag) {
  4912. //현금영수증 선택되어 있고, 현금금액이 있을 경우 현금승인
  4913. var parm = "";
  4914. var cashamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"));
  4915. var pre_cash_amt = 0;
  4916. var totcashamt = pre_cash_amt + cashamt;
  4917. var cardamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  4918. var pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  4919. var ordtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  4920. var indinstflag = model.getValue("/root/main/admi_info/rcptmthd/cashmthd");
  4921. var cardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  4922. var valiterm = model.getValue("/root/main/admi_info/rcptmthd/validterm");
  4923. //var allotmm = ""
  4924. var keyinpuflag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  4925. var swipedata = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  4926. var qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  4927. var vcheck_cashcard = "";
  4928. var ordergb = "";
  4929. var approvaldate = "";
  4930. var approvaltime = "";
  4931. var approvalno = "";
  4932. //디폴트 현금영수증번호
  4933. var cshb_qualcnfmno = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  4934. var cshb_qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4935. if(cshb_qualcnfmno != "") {
  4936. cshb_qualcnfmno = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  4937. cshb_qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  4938. }else{
  4939. cshb_qualcnfmno = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno");
  4940. cshb_qualcnfmflag = "1"; //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4941. }
  4942. //현금영수증 자격번호
  4943. //카드, 현금영수증을 동시수납
  4944. if (parseInt(cardamt) > 0 &&
  4945. parseInt(cashamt) > 0)
  4946. {
  4947. vcheck_cashcard = "Y";
  4948. cardno = cshb_qualcnfmno;
  4949. qualcnfmflag = cshb_qualcnfmflag;
  4950. if(qualcnfmflag == "3"){keyinpuflag = "S"; }else{keyinpuflag = "K";}
  4951. swipedata = cshb_qualcnfmno+"=";
  4952. swipedata = swipedata.getRightPad(40, " ");
  4953. }
  4954. //현금영수증만 수납
  4955. if (parseInt(cardamt) == 0 &&
  4956. parseInt(cashamt) > 0 )
  4957. {
  4958. vcheck_cashcard = "N";
  4959. cardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  4960. qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  4961. keyinpuflag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  4962. swipedata = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  4963. }
  4964. /*
  4965. alert(
  4966. "멀티건수 " + parm + '\n' +
  4967. "멀티opmi " + "/root/send/s_opmi" + '\n' +
  4968. "totalamt " + cashamt + '\n' +
  4969. "send " + "/root/hidden/rcv1/h_cash" + '\n' +
  4970. "receive " + "/root/send/s_cash" + '\n' +
  4971. "pid " + pid + '\n' +
  4972. "ordtype " + ordtype + '\n' +
  4973. "indinstflag " + indinstflag + '\n' +
  4974. "gQualcnfmno " + cardno + '\n' +
  4975. //,"valiterm " + valiterm + '\n' +
  4976. //,"allotmm " + allotmm + '\n' +
  4977. "keyinpuflag " + keyinpuflag + '\n' +
  4978. "swipedata " + swipedata + '\n' +
  4979. "qualcnfmflag " + qualcnfmflag + '\n'
  4980. )
  4981. */
  4982. //처음에는 기현금노드를 보내고 그다음에는 send에서 주고받음
  4983. var send_cash ="/root/send/set_cash" ;
  4984. /*
  4985. var send_cash = "";
  4986. if(getNodesetCount("/root/send/set_cash/cash/cash_pid") == 0){
  4987. send_cash = "/root/hidden/rcv1/h_cash";
  4988. }else{
  4989. send_cash = "/root/send/set_cash" ;
  4990. }
  4991. */
  4992. parm = "0" + "▦" + //멀티건수
  4993. "" + "▦" + //멀티opmi
  4994. totcashamt + "▦" + //totalamt
  4995. send_cash + "▦" + //send
  4996. "/root/send/set_cash" + "▦" + //receive
  4997. pid + "▦" + //pid
  4998. ordtype + "▦" + //ordtype
  4999. indinstflag + "▦" + //indinstflag
  5000. cardno + "▦" + //gQualcnfmno
  5001. //valiterm + "▦" + //valiterm
  5002. //allotmm + "▦" + //allotmm
  5003. keyinpuflag + "▦" + //keyinpuflag
  5004. swipedata + "▦" + //swipedata
  5005. qualcnfmflag + "▦" ; //qualcnfmflag
  5006. setParameter("SPPAO00500_PARM", parm);
  5007. setParameter("SPPAO00500_FLAG", flag);
  5008. //팝업 오픈 방식 체크
  5009. if( flag == 'I' || flag == 'D'){
  5010. var ivrObjt = document.all("ivr_cashpopup");
  5011. if( ivrObjt == null ){
  5012. body.createChild("xforms:iviewer", "id:ivr_cashpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00501_현금영수증승인.xrw");
  5013. ivrObjt = document.all("ivr_cashpopup");
  5014. }
  5015. if( flag == 'I' ){
  5016. ivrObjt.window.javascript.fInit();
  5017. var retMsg = ivrObjt.window.javascript.fAutoGetCashAprv();
  5018. }else{
  5019. ivrObjt.window.javascript.fInit();
  5020. var retMsg = ivrObjt.window.javascript.fAutoCnclCashAprv();
  5021. }
  5022. ordergb = ivrObjt.model.getValue("/root/tmp/appvanif/ordergb");//42:현금영수증승인응답
  5023. approvaldate = ivrObjt.model.getValue("/root/tmp/appvanif/approvaldate");
  5024. approvaltime = ivrObjt.model.getValue("/root/tmp/appvanif/approvaltime");
  5025. approvalno = ivrObjt.model.getValue("/root/tmp/appvanif/approvalno" );
  5026. body.removeChild("ivr_cashpopup");
  5027. if( retMsg == false ){
  5028. messageBox("현금영수증 승인시 오류가 났습니다. 수납변경에서 재승인하십시요.", "E999");
  5029. }
  5030. }else{
  5031. modal("SPPAO00501", "1","400", "400", "SPPAO00501", "", "");
  5032. //팝업 정상종료 여부!
  5033. if (getParameter("SPPAO00500_RTN") == "N" || getParameter("SPPAO00500_RTN") == ""){
  5034. return false;
  5035. }
  5036. }
  5037. /*
  5038. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") ; i++) {
  5039. for (var k = 1; k <= getNodesetCount("/root/send/s_cash/cash/cash_pid") ; k++) {
  5040. if (model.getValue( "/root/send/s_cash/cash["+ k +"]/cash_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_mseqno")) continue;
  5041. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  5042. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  5043. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  5044. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  5045. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddeptcd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  5046. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddrid_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  5047. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptdd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  5048. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  5049. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptseqno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  5050. }
  5051. }
  5052. */
  5053. return true;
  5054. }
  5055. //확장창 켜기
  5056. function fgrp_etc_open() {
  5057. grp_etc.attribute("visibility") = "visible";
  5058. }
  5059. //확장창 끄기
  5060. function fgrp_etc_close() {
  5061. grp_etc.attribute("visibility") = "hidden";
  5062. }
  5063. // 해당 기간에 영수키 존재하지 않는 ISCL 검증
  5064. function fGetISCLNoRcptKey(param) {
  5065. var result = true;
  5066. var i = grd_inpatinfo.row
  5067. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  5068. if (i <= 0 ) {
  5069. i = 1;
  5070. }
  5071. model.removenode("/root/send/data12");
  5072. model.makeValue("/root/send/data12/pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_pid"));
  5073. model.makeValue("/root/send/data12/indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_indd"));
  5074. model.makeValue("/root/send/data12/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_cretno"));
  5075. // 수납 시 검증
  5076. if (param == 'R') {
  5077. model.makeValue("/root/send/data12/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_fromdd"));
  5078. model.makeValue("/root/send/data12/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_todd"));
  5079. // 영수증 재출력 시 검증
  5080. } else if (param == 'P') {
  5081. // 수납정보 선택
  5082. var j = grd_rcptamt.row;
  5083. // Y건에 대해서만 검증
  5084. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/rcptstat") != "Y") {
  5085. return result;
  5086. }
  5087. model.makeValue("/root/send/data12/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/fromdd"));
  5088. model.makeValue("/root/send/data12/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/todd"));
  5089. }
  5090. // 구분 R:수납, P:출력
  5091. model.makeValue("/root/send/data12/gubun", param);
  5092. if (submit("TRPAI00109")) {
  5093. var msg = model.getValue("/root/hidden/isclinfo/msg");
  5094. if (msg != null && msg != "") {
  5095. messageBox(msg + " 기간에 대하여\r\n수납(B31) 이후 수가계산이 발생되었습니다.\r\n해당기간이 포함된 수납건에 대한 재수납을 진행하시기 바랍니다.", "C000");
  5096. result = false;
  5097. }
  5098. }
  5099. return result;
  5100. }]]></Script>