SMPAI00100.js 326 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036
  1. /*
  2. * 화면 : SMPAI00100_입원 퇴원수납.xrw
  3. * 설명 : 입원수납
  4. * 작성자 :
  5. * 작성일 : 2010/12/22
  6. */
  7. function fReady() {
  8. btn_clamrcpt.selected= true;
  9. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  10. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); //1-카드, 2-현금영수증, 3-현금
  11. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  12. // 20091216 JHP 수가재계산구분(IPHS.calcscorrecalflag) 공통코드(P0027) 추가
  13. zbcfGetCodeList(new Array("P0363","P0160","P0006","P0008","P0010","P0025","P0026","P0032", "P0312", "P0311", "P0104", "P0019", "P0001", "P0076","P0027", "P0327"),
  14. new Array("/root/init/P0363list","/root/init/P0160list","/root/init/P0006list","/root/init/P0008list","/root/init/P0010list","/root/init/P0025list"
  15. ,"/root/init/P0026list","/root/init/P0032list","/root/init/P0312list","/root/init/P0311list","/root/init/P0104list","/root/init/P0019list"
  16. ,"/root/init/P0001list","/root/init/P0076list","/root/init/P0027list","/root/init/P0327list"));
  17. //2009.08.28 - 원무공통코드
  18. //2009.10.28 - 자동미수코드 추가 - P0081
  19. pamfGetCodeList(new Array("P0022", "P0041", "P0063", "P0071", "P0081", "PK018", "PK020", "PK059", "PK062", "PK084", "P6571", "P0032"),
  20. 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"));
  21. //현금영수증 자동승인 여부
  22. if( model.getValue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm") == 'Y'){
  23. model.setValue("/root/init/option/autocashyn", model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm"));
  24. }
  25. model.setValue("/root/init/option/inhospyn", "N");
  26. // 진료비 세부내역서 자동출력 체크 해제 by 조중래 20150528
  27. model.setValue("/root/init/option/specbillyn", "");
  28. model.setValue("/root/init/option/specbillcnt", "1");
  29. // 개인정보이용동의서 출력을 위한 서식코드 취득
  30. reqHardCodeInfo("/root/send/reqdata", "/root/init/prncd", "5604");
  31. // 가퇴원 정산SMS 발송용 메세지 포맷 취득 및 전송여부 초기화
  32. submit("TRPAI00137");
  33. checkbox4.hint = model.getValue("/root/init/receiptsms/smsmsg/orgmsgfrmtcnts");
  34. checkbox5.hint = model.getValue("/root/init/receiptsms/ezpasssmsmsg/orgmsgfrmtcnts");
  35. chk_chemosms.hint = model.getValue("/root/init/receiptsms/chemosms/orgmsgfrmtcnts");
  36. model.setValue("/root/init/option/receiptsms", "Y");
  37. model.setValue("/root/init/option/ezpasssms", "");
  38. model.setValue("/root/init/option/chemosms", "");
  39. if (getUserInfo("dutplceinstcd") == "032") {
  40. chk_chemosms.visible = true;
  41. }
  42. //금액표시기 초기화
  43. fInit_Display();
  44. //금액표시기 포트열기
  45. fOpenCom();
  46. //세션정보 추출하기
  47. fGetUserInfosSampling();
  48. model.setValue("/root/send/sess_posinstcd", model.getValue("/root/hidden/session/posinstcd"));
  49. model.setValue("/root/send/ioflag", "I");
  50. submit("TRPAI00120");
  51. model.setFocus("ipt_pid");
  52. // 응급실재실환자조회 화면에서 넘기는 환자번호 파라미터 처리
  53. // Top Viewer
  54. var topViewer = getViewer("patientInfo");
  55. if (topViewer != null) {
  56. var sParamPid = topViewer.window.javascript.getParameter("SMPAI00100_Param1");
  57. if (!isNull(sParamPid)) {
  58. topViewer.window.javascript.clearParameter("SMPAI00100_Param1");
  59. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sParamPid);
  60. fInPatInfoRef("1");
  61. }
  62. }
  63. // 개인/계약처 미수입금관리화면에서 호출되는 경우 파라미터 처리
  64. if (checkOpener()){
  65. var sParamPid = opener.window.javascript.getParameter("ipt_pid");
  66. if (!isNull(sParamPid)) {
  67. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sParamPid);
  68. fInPatInfoRef("1");
  69. }
  70. }
  71. // 실사 관련 by 조중래 20171211
  72. if (model.getValue("/root/hidden/session/userid") != "SIMSA1"
  73. && model.getValue("/root/hidden/session/userid") != "SIMSA2"
  74. && model.getValue("/root/hidden/session/userid") != "SIMSA3"
  75. && model.getValue("/root/hidden/session/userid") != "SIMSA4"
  76. && model.getValue("/root/hidden/session/userid") != "SIMSA5"
  77. && model.getValue("/root/hidden/session/userid") != "SIMSA6") {
  78. button16.visible = true;
  79. button19.visible = true;
  80. }
  81. }
  82. //환자번호후 엔터 이벤트
  83. function fInPatInfoRef(sflag) {
  84. fCloseAmt();
  85. model.resetInstanceNode("/root/main/emr_prcpspec/grdnexecspec"); //미시행처방
  86. model.resetInstanceNode("/root/main/admi_info/rcptmthd"); //수납방법, 소득지출증빙, 카드번호, 유효기간, 할부
  87. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); ////1-카드, 2-현금영수증, 3-현금
  88. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  89. model.setValue("/root/init/option/pregdmndamtchk" , "");
  90. model.setValue("/root/init/option/iphs_div" , "false"); // 강제분리 초기화
  91. if (sflag =="1") {
  92. var spid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  93. if (spid == "" || spid == null) {
  94. messageBox("환자등록번호가", "I004");
  95. fInitialize("all");
  96. return false;
  97. }
  98. model.setValue("/root/send/pid", spid);
  99. }
  100. else if (sflag =="2") {
  101. var shngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  102. if (shngnm == "" || shngnm == null) {
  103. messageBox("성명이","I004");
  104. return false;
  105. }
  106. model.setValue("/root/send/hngnm", shngnm);
  107. }
  108. else if (sflag =="3") {
  109. var srrgstno1 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1");
  110. var srrgstno2 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2");
  111. if (srrgstno1 == "" || srrgstno1 == null) {
  112. messageBox("주민번호가", "I004");
  113. return false;
  114. }
  115. model.setValue("/root/send/rrgstno1", srrgstno1);
  116. model.setValue("/root/send/rrgstno1", srrgstno2);
  117. }
  118. model.setValue("/root/send/refflag", sflag); //조회조건(환자번호, 성명, 주민번호)
  119. submit("TRPAI00101");
  120. if (model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd") == null) {
  121. messageBox("해당 환자는 입원내역이", "I004");
  122. fInitialize("all");
  123. return false;
  124. }
  125. //동의서 출력여부
  126. var scanyn = model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_scanyn");
  127. cpt_scanyn.text = '[동:' + scanyn + ']';
  128. //선택진료 스캔여부 2011/10/01 고시
  129. var spifScanYn = model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_spifscanyn");
  130. // 격리대상정보 표시
  131. fSetIsolInfo(model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_isolinfo"));
  132. // 메르스 대상자 조회
  133. fMersPatChk("PAM", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  134. //스캔되지 않은 경우, 선택진료조회화면 연동
  135. if (spifScanYn != 'Y') {
  136. if (messageBox("선택진료신청서 중 스캔되지 않은 건이 존재합니다."
  137. + "\r\n선택진료신청서를 조회", "S001") == "6") {
  138. setParameter("SMPMC06503_PARM_PID", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_pid"));
  139. modal("SMPMC06503");
  140. }
  141. }
  142. model.setValue("/root/send/indd", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_indd"));
  143. model.setValue("/root/send/ordtype", model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_ordtype"));
  144. fInPatInfo(); //입원 combo seting 환자의 입원일자
  145. fAgeCalc(); //나이계산
  146. fInDayNo(); //입원일수 계산
  147. //2009.06.12 - ER/DSC 자동 배치
  148. fSetAutoErDscCalc();
  149. //감면정보체크
  150. fGetDcucInfo(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  151. fIPatInfoChk(); //환자정보조회(상병, 수술, 미수, 후원금, OPD/수납 등)
  152. model.setValue("/root/main/admi_info/rcptmthd/allotmm", "00");
  153. //환자조회시 자격체크
  154. //20110409 수납시점에 자격체크로 변경
  155. //fCheckInsuRgst();
  156. var vpid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  157. //미진료 예약금 환불 팝업
  158. //fCheckRefund(vpid);
  159. //사망한 환자 미시행 처방 존재여부 체크 - 20130905
  160. var dethdt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt");
  161. if(dethdt != '-' && dethdt.length > 0){
  162. fGetDethOtptInfo(vpid);
  163. }
  164. // 휴진일정 검증로직 추가 by 조중래 20131106
  165. // 심사팀 요청 있을때까지 무기한 적용 연기
  166. //fGetDrHoliInfo();
  167. model.setFocus("ipt_rcptcd");
  168. model.refresh();
  169. }
  170. //자격조회 화면 초기화
  171. function fInitInsuInfo(){
  172. var ivrObjt = document.all("ivr_insupopup");
  173. if( ivrObjt == null ){
  174. body.createChild("xforms:iviewer", "id:ivr_insupopup; src:../../../pam/pamcomnweb/xrw/SPPMC03900_의료급여자격조회승인.xrw");
  175. ivrObjt = document.all("ivr_insupopup");
  176. //공통코드 초기화
  177. ivrObjt.window.javascript.fGetInitCode();
  178. }
  179. }
  180. //환자조회시 자격체크
  181. function fCheckInsuRgst(){
  182. //환자조회 완료시 자격체크
  183. clearParameter("SPPMC03900_RTN");
  184. clearParameter("SPPMC03900_insukind");
  185. clearParameter("SPPMC03900_suppkind");
  186. clearParameter("SPPMC03900_insucd");
  187. clearParameter("SPPMC03900_insuno");
  188. clearParameter("SPPMC03900_insdnm");
  189. clearParameter("SPPMC03900_insufromdd");
  190. clearParameter("SPPMC03900_ownbflag");
  191. clearParameter("SPPMC03900_ETCORD");
  192. clearParameter("SPPMC03900_handcapfundyn");
  193. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == "") {
  194. //return true;
  195. //}
  196. var srow = grd_inpatinfo.row;
  197. if (srow <= 0) {
  198. srow = 1;
  199. }
  200. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '11'
  201. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '21'
  202. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '22' ){
  203. //보험, 급여일 때만 체크
  204. return;
  205. }
  206. //기준일자를 유형 시작일에서 종료일자로 변경(김무조 선생님 요청 2012-09-13)
  207. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  208. //종료일이 99991231 이면 오늘일자로 변경해서 체크한다.
  209. if( iphs_todd = "99991231" ) iphs_todd = getCurrentDate();
  210. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") +
  211. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민번호
  212. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //이름
  213. //model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  214. //model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") + "▦" + //진료일자
  215. iphs_todd + "▦" + //기준일자를 유형 시작일에서 종료일자로 변경(김무조 선생님 요청 2012-09-13)
  216. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //진료생성번호(당일 외래요율만 적용하니 iphs것을 사용하지 않음)
  217. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" +//ordtype
  218. "" + "▦"+ //퇴원일자
  219. "" + "▦"+//본인일부부담금
  220. "" + "▦"+//기관부담금
  221. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦"+ //등록번호
  222. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  223. //model.getValue("/root/hidden/init/orddeptcd[ cd = '" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']/reqdeptno") + "▦" + //진료과
  224. "" + "▦" + //본인부담구분
  225. "" + "▦" + //비급여총금액
  226. "" + "▦" + //산전진료비
  227. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") + "▦"; //보조유형
  228. setParameter("SPPMC03900_PARM",parm);
  229. //신종플루진료
  230. setParameter("SPPMC03900_ETCORD", '-');
  231. setParameter("SPPMC03900_MSGYN", "N");
  232. if( fApproveHeallifeAmt2() == false ){
  233. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격조회실패]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  234. if( retVal == '6' ){
  235. //button48.dispatch("DOMActivate");
  236. return false;
  237. }
  238. }else{
  239. if (getParameter("SPPMC03900_RTN") == "N" || getParameter("SPPMC03900_RTN") == ""){
  240. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격없음]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  241. if( retVal == '6' ){
  242. //button48.dispatch("DOMActivate");
  243. return false;
  244. }
  245. }else if (getParameter("SPPMC03900_RTN") == "Y") {
  246. var insukind = getParameter("SPPMC03900_insukind");
  247. var suppkind = getParameter("SPPMC03900_suppkind");
  248. if( insukind != model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") ){
  249. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격불일치]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  250. if( retVal == '6' ){
  251. //button48.dispatch("DOMActivate");
  252. return false;
  253. }
  254. }else{
  255. if( getParameter("SPPMC03900_handcapfundyn") == "Y" ){ //장애대불 가능 여부 체크
  256. //장애대불 적용 여부 체크
  257. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_handicaprbookpossnyn") != 'Y' ){
  258. var retVal = messageBox("장애인대불 가능한 환자입니다. \n확인 후 장애인마스터 등록 및 장애인대불 적용해주세요!"
  259. + "\n확인 후 수납을 진행하시겠습니까?[No : 수납진행]", "Q999", "");
  260. if( retVal == '6' ){
  261. //button48.dispatch("DOMActivate");
  262. return true;
  263. }
  264. }
  265. }
  266. }
  267. }else{
  268. var retVal = messageBox("환자의 보험정보가 일치하지 않습니다.[자격확인필요]\n자격조회에서 확인하시겠습니까?", "Q999", "");
  269. if( retVal == '6' ){
  270. //button48.dispatch("DOMActivate");
  271. return false;
  272. }
  273. }
  274. //장애대불 대상이 아닌경우 체크
  275. if( getParameter("SPPMC03900_handcapfundyn") != "Y" ){ //장애대불 가능 여부 체크
  276. //장애대불 적용 여부 체크
  277. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_handicaprbookpossnyn") == 'Y' ){
  278. var retVal = messageBox("장애인대불 적용 불가능한 환자입니다. \n장애인정보를 확인 하신 후 장애대불 적용 취소해주세요!"
  279. + "\n확인 후 수납을 진행하시겠습니까?[No : 수납진행]", "Q999", "");
  280. if( retVal == '6' ){
  281. //button48.dispatch("DOMActivate");
  282. return true;
  283. }
  284. }
  285. }
  286. }
  287. return;
  288. //}
  289. }
  290. //환자정보조회
  291. function fIPatInfoChk() {
  292. model.resetInstanceNode("/root/send/data1");
  293. model.makeValue("/root/send/data1/pid" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  294. model.makeValue("/root/send/data1/cretno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"));
  295. model.makeValue("/root/send/data1/indd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  296. model.makeValue("/root/send/data1/orddeptcd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd"));
  297. model.makeValue("/root/send/data1/dschdclrtyn", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrtyn"));
  298. model.makeValue("/root/send/data1/dschdclrdt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt").substr(0, 8));
  299. model.makeValue("/root/send/data1/dschnotiyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn"));
  300. model.makeValue("/root/send/data1/dschnotidt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  301. model.makeValue("/root/send/data1/dschdd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  302. // 특이환자조회 (실사용)
  303. // model.makeValue("/root/hidden/rcv/patinfo/checkyn", "");
  304. // if (submit("TRPMC06515")) {
  305. //
  306. // // 특이환자여부 (Y:특이환자)
  307. // if (model.getValue("/root/hidden/rcv/patinfo/checkyn") == "Y") {
  308. //
  309. // messageBox("\r\n업무처리시 오류가 발생하였습니다!!!\r\n\r\n해당 내용의 처리는 원무팀(6178)으로 문의 및 안내하시기 바랍니다.", "C000");
  310. // fInitialize("all");
  311. // return false;
  312. // }
  313. // }
  314. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  315. //소스 튜닝 시작
  316. //model.removeNodeset("/root/send/pidinfo");
  317. model.setValue("/root/send/pidinfo/pid" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  318. model.setValue("/root/send/pidinfo/indd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  319. model.setValue("/root/send/pidinfo/intm" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_intm")); // 동일일자 재내원 구분용
  320. model.setValue("/root/send/pidinfo/cretno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"));
  321. model.setValue("/root/send/pidinfo/orddeptcd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd"));
  322. model.setValue("/root/send/pidinfo/dschdclrdt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt"));
  323. model.setValue("/root/send/pidinfo/dschdclrtyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrtyn"));
  324. model.setValue("/root/send/pidinfo/emplnm" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"));
  325. model.setValue("/root/send/pidinfo/rrgstno1" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1"));
  326. model.setValue("/root/send/pidinfo/rrgstno2" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2"));
  327. model.setValue("/root/send/pidinfo/dschnotiyn" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn"));
  328. model.setValue("/root/send/pidinfo/dschnotidt" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  329. model.setValue("/root/send/pidinfo/dschdd" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  330. model.setValue("/root/send/pidinfo/ordtype" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  331. model.setValue("/root/send/pidinfo/mskind" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  332. //model.setValue("/root/send/pidinfo/iphs_div" , bl_iphs_div.value);
  333. submit("TRPAI00135");
  334. //model.removeNodeset("/root/send/pidinfo");
  335. /* 속도 튜닝을 위한 서브밋 통합
  336. TRPAI00102
  337. TRPAI00107
  338. TRPAI00108
  339. TRPAI00121
  340. TRPAI00124
  341. TRPAI00125
  342. TRPAI00132
  343. TRPAI05008
  344. TRPAI05009
  345. TRPAI05010
  346. TRPAI00125는 다른곳에서도 호출 나머지는 삭제해도 됩니다.
  347. */
  348. model.copyNode("/root/main/iphs_info/h_grdipatinfo" , "/root/hidden2/all_info/pidinfo/h_grdipatinfo");
  349. model.copyNode("/root/main/iphs_info/h_opspec" , "/root/hidden2/all_info/pidinfo/h_opspec");
  350. model.copyNode("/root/main/iphs_info/h_iphscnt" , "/root/hidden2/all_info/pidinfo/h_iphscnt");
  351. model.copynode("/root/main/ermngtamtmsg/ermsg" , "/root/hidden2/all_info/pidinfo/h_ermsg/ermsg");
  352. model.copynode("/root/main/ermngtamtmsg/ermsg1" , "/root/hidden2/all_info/pidinfo/h_ermsg1/ermsg1");
  353. //model.copynode("/root/main/emr_ast_info/grdbabyhsct" , "/root/hidden2/all_info/pidinfo/h_grdbabyhsct/grdbabyhsct"); // 단일 노드 복사 수정 by 조중래 20141217
  354. copyNodesetType("/root/main/emr_ast_info/grdbabyhsct" , "/root/hidden2/all_info/pidinfo/h_grdbabyhsct/grdbabyhsct","replace");
  355. model.copynode("/root/main/prcpcodechk" , "/root/hidden2/all_info/pidinfo/h_prcpchk");
  356. model.copynode("/root/temp6/deathinfo" , "/root/hidden2/all_info/pidinfo/h_deathlist");
  357. model.copynode("/root/temp7/testrsrvinfo" , "/root/hidden2/all_info/pidinfo/h_testrsrvlist");
  358. model.copynode("/root/temp8/profcertinfo" , "/root/hidden2/all_info/pidinfo/h_profcertlist");
  359. model.copynode("/root/main/ipsc_info" , "/root/hidden2/all_info/pidinfo/h_retcspec");
  360. model.makeNode("/root/temp/result/h_famylist");
  361. model.copynode("/root/temp/result/h_famylist" , "/root/hidden2/all_info/pidinfo/h_famylist");
  362. model.makeNode("/root/send/charity/rcv");
  363. model.copynode("/root/send/charity/rcv" , "/root/hidden2/all_info/pidinfo/h_charity");
  364. model.makeNode("/root/send/suppmanage/rcv");
  365. model.copynode("/root/send/suppmanage/rcv" , "/root/hidden2/all_info/pidinfo/h_supp");
  366. model.makeNode("/root/temp/h_patprivacy");
  367. model.copynode("/root/temp/h_patprivacy" , "/root/hidden2/all_info/pidinfo/h_patprivacy");
  368. model.copyNode("/root/main/pat_info/h_emr_snw" , "/root/hidden2/all_info/pidinfo/h_emr_snw");
  369. model.copyNode("/root/main/pat_info/h_otpt_rsrv" , "/root/hidden2/all_info/pidinfo/h_otpt_rsrv");
  370. model.copyNode("/root/main/pat_info/h_unco_uncoamt" , "/root/hidden2/all_info/pidinfo/h_unco_uncoamt");
  371. model.copyNode("/root/main/pat_info/h_ptsp_specpat" , "/root/hidden2/all_info/pidinfo/h_ptsp_specpat");
  372. model.copyNode("/root/main/pat_info/h_capm" , "/root/hidden2/all_info/pidinfo/h_capm");
  373. model.copyNode("/root/main/pat_info/h_cshb_cashrcptnum" , "/root/hidden2/all_info/pidinfo/h_cshb_cashrcptnum");
  374. model.copyNode("/root/main/pat_info/h_dump_brgstcnt" , "/root/hidden2/all_info/pidinfo/h_dump_brgstcnt");
  375. model.copyNode("/root/main/pat_info/h_bldccnt" , "/root/hidden2/all_info/pidinfo/h_bldccnt");
  376. model.copyNode("/root/main/pat_info/h_cert" , "/root/hidden2/all_info/pidinfo/h_cert");
  377. model.copyNode("/root/main/pat_info/h_dump" , "/root/hidden2/all_info/pidinfo/h_dump");
  378. grd_inpatinfo.rebuild();
  379. fIphs_Info();
  380. var srow = grd_inpatinfo.row
  381. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  382. if (srow <= 0 ) {
  383. srow = 1;
  384. }
  385. //버튼 상테 셋팅
  386. fBtn_State();
  387. //현금영수증 의무화
  388. fCashQualCnfmno();
  389. //응급실 환자 응급의료관리료 정보 표시 //응급전원소견서 조회
  390. fER_mngt_msg(srow); //TRPAI00125 ok
  391. //산모, 신생아, 수혜자, 공여자 정보 조회
  392. fBabyHsct(); //TRPAI00107 ok
  393. //수익구분
  394. fCalcInfo("2"); //TRPAI00103 <- 여러곳에서 호출
  395. //B형간염 수직감염 접종, 성폭력kit, 음주채혈 체크
  396. //submit("TRPAI00124"); ok
  397. //진료비내역
  398. //fOrdAmtInfo(); //TRPAI00104 , TRPAI00131 <- 여러곳에서 호출
  399. //청구수납 내역
  400. //fRcptInfo("1"); //TRPAI00105 , TRPAI00106
  401. //진료비내역,청구수납 내역
  402. fRcpt_AllInfo("Y","Y","1");
  403. //응급실 퇴원심사 - 버튼 visility 여부 판단 -순천향버전 경북대 사용안함
  404. //fBtn_judg();
  405. //사망환자일 경우 외래접수내역조회 -순천향버전 경북대 사용안함
  406. //fDethordlist(); //TRPAI05008 ok test pid: 1172353
  407. //검사예약내역 -순천향버전 경북대 사용안함
  408. //fTestRsrv(); //TRPAI05009 ok test pid: 9876543
  409. //응급 6시간 미만 외래 부담율 정보 메세지
  410. fBrateflagMsg();
  411. //재원상태 보조유형 변경 체크
  412. fInsukindChk();
  413. // 퇴원이후에는 소급내역을 조회하지 않도록 수정 by 조중래 20130814
  414. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") != "D") {
  415. //소급내역 조회
  416. fRetcSpec(); //TRPAI00108 ok , TXPAI01801
  417. }
  418. //////////////////////////////////////////////환자 신규조회시 제공하는 정보들///////////////////////////////////////////////////////
  419. //제증명내역 -순천향버전 경북대 사용안함
  420. //fProfCert(); //TRPAI05010
  421. //감면환자 조회 //TRPMC03802 ok test pid: 3006639
  422. //fGetPsnWorkInfo_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2"),
  423. // model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),"Y");
  424. fGetPsnWorkInfo_pid_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") ,"Y");
  425. //미수금내역 여부 확인
  426. fUncoAmtChk();
  427. //보관금내역 여부 확인
  428. fKeepAmtChk();
  429. //자선환자 popup //TRPMO00121 ok test pid: 3006639
  430. fCheckCharityYN_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"), "Y");
  431. //후원금 환자 popup //TRPAI00132 ok
  432. fSuppManageYN_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"), "Y");
  433. // 사생활보호 요청 체크 //TRPMC06904 ok test pid: 1172353
  434. fGetPatPrivacyInfo_i(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") , "Y");
  435. // 격리병실 신청여부 체크
  436. fGetPatIsolateInfo(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_isolateinfo"));
  437. //////////////////////////////////////////////환자 신규조회시 제공하는 정보들 끝///////////////////////////////////////////////////////
  438. //소스 튜닝 마감
  439. ///////////////////////////////////////////////////////////////////////////////////////////////////////////
  440. //dump 헌혈증 내역 체크
  441. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "A") {
  442. //의급 1종, 차상위 1종, 희귀 H 환자는 메세지 안 뿌림.
  443. //if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != "21" &&
  444. // model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") != "32" &&
  445. // model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag") != "H") {
  446. var ibrgstcnt = 0;
  447. var strbrgstmsg="";
  448. for(var idx=1; idx<=getNodesetCount("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt"); idx++) {
  449. //if (model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstinrcptyn") == "N") {
  450. if (parseInt(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstcnt")) > 0) {
  451. ibrgstcnt = ibrgstcnt + parseInt(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_brgstcnt"));
  452. //alert(model.getValue("/root/main/pat_info/h_dump_brgstcnt/dump_brgstcnt[" + idx + "]/oicv_orddd"));
  453. 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"))+"건";
  454. }
  455. //}
  456. }
  457. var icnt = model.getValue("/root/main/pat_info/h_bldccnt/bldccnt/iscl_bldccnt");
  458. if (icnt>0 || ibrgstcnt>0){
  459. messageBox("수혈처방이 ["+ icnt + " 매], 외래 Dump된 수혈처방이 총:"+ibrgstcnt+"건, ["+ strbrgstmsg +"] 이 있습니다. 확인후 헌혈증서 제출시 수납하세요. ", "I999");
  460. }
  461. }
  462. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E" && model.getValue("/root/main/ermngtamtmsg/ermsg1/formrecseq") != "" ) {
  463. messageBox("응급전원소견서가 작성된 환자 입니다. 응급전원소견서를 발행하십시오.", "I999");
  464. }
  465. //금액표시기(응급, DSC, CHEMO)
  466. //필요시 주석 풀어서 사용
  467. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") != "I" ) {
  468. // var shngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  469. // var ircptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  470. // if (ircptamt != 0) {
  471. // fDisplayAmt(shngnm, ircptamt);
  472. // }
  473. // }
  474. //alert(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  475. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") != "-" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") != "") {
  476. ipt_onlnno.visible = true;
  477. } else {
  478. ipt_onlnno.visible = false;
  479. }
  480. var cert_pid = model.getValue("/root/main/pat_info/h_cert/cert/pid");
  481. if (cert_pid != "") {
  482. messageBox("당일 수납할 제증명 내역이 있습니다.", "I999");
  483. }
  484. var dumpexistyn = model.getValue("/root/hidden2/all_info/pidinfo/h_dump/dump/dumpexistyn");
  485. if (dumpexistyn == "Y") {
  486. messageBox("외래처방 덤프대상이 존재합니다. 확인하십시오.", "I999");
  487. }
  488. //var otpt_pid = getNodesetCount("/root/main/pat_info/otpt/pid")
  489. //if(otpt_pid > 0) {
  490. //messageBox("입원당일 외래건이 " + otpt_pid + "건 있습니다.", "I999");
  491. //}
  492. model.setFocus("ipt_rcptcd");
  493. }
  494. //20100401 현금영수증 의무화
  495. function fCashQualCnfmno() {
  496. if (getNodesetCount("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") > 0) {
  497. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != "" &&
  498. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != null &&
  499. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != "-" &&
  500. model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") != " ") {
  501. ipt_cardcashno.attribute("background-color") = "#ffff66";
  502. ipt_cardcashno.hint = "No : " + model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno") + " ";
  503. } else {
  504. ipt_cardcashno.attribute("background-color") = "#ffffff";
  505. ipt_cardcashno.hint = "";
  506. }
  507. } else {
  508. ipt_cardcashno.attribute("background-color") = "#ffffff";
  509. ipt_cardcashno.hint = "";
  510. }
  511. ipt_cardcashno.refresh();
  512. }
  513. // 수익구분
  514. function fCalcInfo(flag) {
  515. var srow = grd_inpatinfo.row
  516. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  517. if (srow <= 0 ) {
  518. srow = 1;
  519. }
  520. //청구수납tab으로 변경
  521. if (flag == "2") {
  522. btn_clamrcpt.selected= true;
  523. btn_clamrcpt.dispatch("xforms-activate");
  524. }
  525. model.resetInstanceNode("/root/send/data1");
  526. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  527. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  528. model.makeValue("/root/send/data1/dschdd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  529. model.makeValue("/root/send/data1/disccd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_disccd"));
  530. model.makeValue("/root/send/data1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  531. model.makeValue("/root/send/data1/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  532. model.makeValue("/root/send/data1/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  533. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  534. if (flag == "1") {
  535. submit("TRPAI00103");
  536. //수익구분에서 사용할 정보
  537. model.resetInstanceNode("/root/hidden/earnflag");
  538. model.copyNode("/root/hidden/earnflag", "/root/send/data1");
  539. }
  540. }
  541. // 선택진료 사인여부 체크
  542. function fCheckSpecOrdApp(){
  543. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")); //환자번호
  544. model.makeValue("/root/send/data1/instcd", model.getValue("/root/hidden/session/posinstcd")); //기관코드
  545. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")); //입원일자
  546. model.makeValue("/root/send/data1/orddeptcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd")); //진료과
  547. model.makeValue("/root/send/data1/medispclid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")); //진료의
  548. model.makeValue("/root/send/data1/ordtype", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); //진료형태
  549. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno")); //생성번호
  550. submit("TRPAI00138");
  551. var signFlag = true;
  552. for(var idx =1; idx<=getNodesetCount("/root/hidden/spiflist/spiflist"); idx++) {
  553. if (model.getValue("/root/hidden/spiflist/spiflist[" + idx + "]/spifyn") == "N") {
  554. signFlag = false;
  555. }
  556. }
  557. if (signFlag == false) {
  558. messageBox("선택진료신청서 미작성내역이 존재합니다.", "E000");
  559. modal("SPPAI00103", "1", "100", "100" ,"SPPAI00103", "/root/hidden/spiflist", "/root/main/spiflist");
  560. }
  561. /* 선택진료신청서 작성여부 체크로직 수정 - icdr 기준으로 체크 by 조중래 20130228
  562. submit("TRPAI00133");
  563. // 20091125 수정 JHP /root/main/admicheck/rgst 변경 -> /root/main/admicheck1/rgst /root/main/admicheck/admichecklist하고 인스턴스중복남
  564. if (model.getValue("/root/main/admicheck1/rgst/rgstyn") == "N") {
  565. var sOrddeptcd = instance1.selectSingleNode("/root/hidden/init/orddeptcd[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']");
  566. if (sOrddeptcd == null) {
  567. var sOrddeptcdMsg = "";
  568. } else {
  569. var sOrddeptcdMsg = "[" + sOrddeptcd.nm.nodeValue + "]";
  570. }
  571. var sOrddrid = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']");
  572. if (sOrddrid == null) {
  573. var ssOrddridMsg = "";
  574. } else {
  575. var sOrddridMsg = " [" + sOrddrid.nm.nodeValue + "]";
  576. }
  577. sMsg = sOrddeptcdMsg + sOrddridMsg
  578. var sMsgFooter;
  579. var msgResult;
  580. var specamt1 = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_specinsubamt"));
  581. var specamt2 = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_specownbamt"));
  582. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") != "E"){
  583. sMsgFooter = " 선택진료 등록이 되어 있지 않습니다. 등록하시겠습니까?";
  584. msgResult = messageBox(sMsg + sMsgFooter, "Q999", ""); // yes = 6, no = 7, cancel = 2
  585. } else if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E"
  586. && (specamt1 + specamt2) > 0) {
  587. sMsgFooter = " 선택진료비가 발생하였으나 선택진료 등록이 되어있지 않습니다!!!\r\n"
  588. + " 선택진료신청서를 받아주십시요.";
  589. messageBox(sMsg + sMsgFooter, "E000"); // ok = 2
  590. msgResult = 6
  591. }
  592. if( msgResult == 6){
  593. var s_pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  594. var s_ordtype = "I";
  595. var s_orddd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  596. var s_orddeptcd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd");
  597. var s_orddrid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid");
  598. var s_fromdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  599. var s_hngnm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm");
  600. var s_rrgstno1 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1");
  601. var s_rrgstno2 = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2");
  602. fCallSpecPopUp(s_pid,s_ordtype,s_orddd,s_orddeptcd,s_orddrid,s_fromdd,s_hngnm,s_rrgstno1,s_rrgstno2);
  603. return true;
  604. }
  605. }
  606. */
  607. }
  608. function trim(str){
  609. str = str.replace(/(^\s*)|(\s*$)/g,"");
  610. return str;
  611. }
  612. //외래전환 내역 조회
  613. function fDumpInfo() {
  614. var srow = grd_inpatinfo.row
  615. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  616. if (srow <= 0 ) {
  617. srow = 1;
  618. }
  619. model.resetInstanceNode("/root/send/data1");
  620. model.makeValue("/root/send/data1/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  621. model.makeValue("/root/send/data1/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  622. model.makeValue("/root/send/data1/dschdd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  623. model.makeValue("/root/send/data1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  624. model.makeValue("/root/send/data1/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  625. model.makeValue("/root/send/data1/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  626. model.makeValue("/root/send/data1/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  627. model.makeValue("/root/send/data1/insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  628. model.makeValue("/root/send/data1/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  629. model.makeValue("/root/send/data1/rcptkind", model.getValue("/root/hidden/rcptkind"));
  630. model.resetInstanceNode("/root/hidden/admi_info/dumplist");
  631. model.resetInstanceNode("root/main/admi_info/dumplist");
  632. submit("TRPAI00110","true");
  633. copyNodeType("/root/main/admi_info/dumplist","/root/hidden/admi_info/dumplist","replace");
  634. model.refresh();
  635. //setTree(grddumplist, 0, 0, true,2);
  636. //var scnt = getNodesetCount("/root/main/admi_info/dumplist");
  637. //if (scnt>1)
  638. //{
  639. // setTree(grddumplist, 0, 0,true,2);
  640. // model.refresh();
  641. //}
  642. }
  643. //생년월일로 나이계산을 한다.
  644. function fAgeCalc() {
  645. if (isValidDateTime(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brthdd"), "YYYYMMDD")==true) {
  646. var sage=getFullAge(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brthdd"));
  647. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_age", sage);
  648. }
  649. }
  650. // 입원일수계산 퇴원전일 경우 현재일자로 입원일수를 계산한다.
  651. function fInDayNo() {
  652. 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)) {
  653. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") == "99991231") {
  654. //퇴원통보가 있을 경우 퇴원통보 일로 계산
  655. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "-") {
  656. var sdschdd = getCurrentDate();
  657. } else {
  658. var sdschdd = (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8));
  659. }
  660. } else {
  661. var sdschdd = (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"));
  662. }
  663. var sdayno=getDateInterval(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"), sdschdd);
  664. sdayno++;
  665. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dayno", sdayno);
  666. }
  667. model.setValue("/root/hidden/etc2", cmb_orddeptcd.label);
  668. model.setValue("/root/hidden/etc3", cmb_medispclid.label);
  669. model.setValue("/root/hidden/etc4", cmb_roomgrdecd.label);
  670. model.setValue("/root/hidden/etc5", cmb_insukind.label);
  671. model.setValue("/root/hidden/etc6", cmb_disccd.label);
  672. }
  673. function fInPatInfo() {
  674. var snode = instance1.selectSingleNode("/root/hidden/inpt_info").cloneNode(true);
  675. model.copyNode("/root/main/inpt_info", snode);
  676. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt", "");
  677. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt", "");
  678. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt", "");
  679. model.refresh();
  680. copyNodesetType("/root/main/inpt_info","/root/hidden/inpt_info","replace");
  681. var scount = getNodesetCount("/root/main/inpt_info/inptpatinfo");
  682. model.removenode("/root/hidden/item01");
  683. model.makeNode("/root/hidden/item01");
  684. for (var i = 1; i <= scount; i++) { //입원일이 2개 이상일 경우 입원일을 별도로 저장하여 combo 입력한다.
  685. var sindd = model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_indd");
  686. var sOrdType = model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_ordtype");
  687. if (sOrdType == "I") {
  688. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  689. sOrdType = "IN";
  690. } else {
  691. sOrdType = "IN/O";
  692. }
  693. } else if (sOrdType == "E") {
  694. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  695. sOrdType = "ER";
  696. } else {
  697. sOrdType = "ER/O";
  698. }
  699. } else {
  700. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_brateflag") == "I") {
  701. sOrdType = "D/C"
  702. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "DSC") {
  703. sOrdType = "DSC"
  704. } else if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "CHEMO") {
  705. sOrdType = "CHEMO"
  706. }
  707. } else {
  708. sOrdType = "D/C/O"
  709. if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "DSC") {
  710. sOrdType = "DSC/O"
  711. } else if (model.getValue("/root/main/inpt_info/inptpatinfo["+ i +"]/inpt_roomcd") == "CHEMO") {
  712. sOrdType = "CHEMO/O"
  713. }
  714. }
  715. }
  716. model.makeValue("/root/hidden/item01/indd["+ i +"]/indd1", sindd.substr(0, 4) + "-" + sindd.substr(4,2) + "-" + sindd.substr(6,2) + " " + sOrdType);
  717. model.makeValue("/root/hidden/item01/indd["+ i +"]/indd2", sindd);
  718. }
  719. // 20091215 JHP 수정추가 중증에 희귀 존재할시에 콤보박스로 보여주기
  720. fItemRareMsg();
  721. model.setValue("/root/hidden/etc7", model.getValue("/root/hidden/item01/indd/indd1"));
  722. model.refresh();
  723. }
  724. //수납방법 선택시 card, cash에 납부할 금액을 setting
  725. function fRcptMthd(sflag) {
  726. //신용카드
  727. if(sflag == "1"){
  728. 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"));
  729. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt" , "0");
  730. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  731. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  732. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  733. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  734. model.setFocus("ipt_cardcashno");
  735. //현금영수증
  736. }else if (sflag == "2"){
  737. 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"));
  738. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt" , "0");
  739. //현금영수증승인번호가 저장되어 있을 경우 저장된 내역으로 화면에 표시
  740. //20100401 현금영수증 의무화
  741. // 02-미승인
  742. if (model.getValue("/root/main/admi_info/rcptmthd/cashmthd") == "02"){
  743. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "02"); //00-소득공제, 01-지출증빙, 02-미승인
  744. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm"));
  745. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "2");
  746. // 01-소득공제, 02-지출증빙
  747. } else {
  748. // 사전 등록된 신분확인번호가 없는 경우 주민번호로 설정
  749. 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) {
  750. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno"));
  751. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "1");
  752. // 사전 등록된 신분확인번호가 있는 경우 해당 번호로 설정
  753. } else {
  754. // ICPos의 경우 저장된 현금영수증 카드번호 사용불가처리 by 조중래 20160429
  755. if (model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm") == "KOCES_IC"
  756. && model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") == "3") {
  757. messageBox("현재 신분확인번호가 카드번호로 저장되어있습니다. \r\nIC단말기의 경우 저장된 카드번호는 사용불가입니다.\r\nIC단말기에서 카드리딩/번호입력하세요!!", "E000");
  758. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  759. } else {
  760. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno"));
  761. }
  762. // 사업자번호
  763. if (model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") == "4") {
  764. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "01"); //00-소득공제, 01-지출증빙, 02-미승인
  765. } else {
  766. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  767. }
  768. }
  769. }
  770. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  771. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "");
  772. model.setFocus("ipt_cardcashno");
  773. // 현금
  774. } else if (sflag == "3") {
  775. 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"));
  776. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt" , "0");
  777. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  778. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  779. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  780. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  781. }
  782. model.refresh();
  783. }
  784. //수납처리
  785. function fRcptProcess() {
  786. // 수납자 마감여부 체크하여 처리
  787. if (isMagmAprv()) {
  788. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  789. }
  790. // 환자번호 체크 (20140927 이정택)
  791. var ipt_pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  792. var iphs_pid = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[1]/iphs_pid");
  793. var rtn = "6";
  794. if(ipt_pid!=iphs_pid){
  795. rtn=messageBox("수납하실려는 환자번호["+iphs_pid+"]와 입력된 환자번호["+ipt_pid+"]가\n동일하지 않습니다. 계속 진행", "S001", "");
  796. if(rtn=="7"){
  797. return false;
  798. }else if(rtn=="2"){
  799. return false;
  800. }
  801. }
  802. // 환자번호 체크 (20140927 이정택)
  803. //리셋인스턴스
  804. model.removeNodeset("/root/send/rcptinfo/inpt_info/inptpatinfo");
  805. model.removeNodeset("/root/send/rcptinfo/iphs_info/grdipatinfo");
  806. model.makeNode("/root/send/rcptinfo/inpt_info/inptpatinfo");
  807. model.makeNode("/root/send/rcptinfo/iphs_info/grdipatinfo");
  808. //현금수납시 자동 현금영수증 처리
  809. if (model.getValue("/root/init/option/autocashyn") == "Y") {
  810. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "3") {
  811. var vRcptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"));
  812. //20100401 현금영수증 의무화
  813. if (model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm") != "" && model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm") != null) {
  814. if (vRcptamt >= parseInt(model.getValue("/root/init/PAM/P0022list/P0022[cdid = '161' ]/cdnm"))) {
  815. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" ,"2"); //수납방법-현금
  816. //model.setvalue("/root/main/admi_info/rcptmthd/cashmthd" ,"00"); //소득공제
  817. var sflag = rdo_rcptmthd.value;
  818. fRcptMthd(sflag);
  819. fCardCashNo(); //카드 현금영수증 승인 내역 setting
  820. }
  821. } else {
  822. messageBox("현금영수증 최소금액이 등록되어 있지 않습니다. 확인하여 주십시오.[P0022/161]","I999","");
  823. }
  824. }
  825. }
  826. var srow = grd_inpatinfo.row
  827. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  828. if (srow <= 0 ) {
  829. srow = 1;
  830. }
  831. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == null) {
  832. messageBox("수납 할 입원내역이","I004","");
  833. return;
  834. }
  835. 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) {
  836. messageBox("수납 할 재원정보가","I004","");
  837. return;
  838. }
  839. // 임상환자 등록여부 검증은 주유형일때만 하도록 수정 by 조중래 20140114
  840. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "71"
  841. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") == "M"
  842. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_clincyn") == "N" ) {
  843. messageBox("임상환자 등록이 되지 않았습니다. 확인하십시오.", "E999");
  844. return;
  845. }
  846. var srcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag");
  847. // drg 적용여부를 가져온다 ("Y"일 경우만 DRG 영수증 적용)
  848. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  849. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  850. if (srcptflag != "C01") {
  851. messageBox("마이그레이션 데이터는 수납처리 할 수 없습니다.","I999","");
  852. return;
  853. }
  854. }
  855. // drg의 경우 반드시 입원요율이 적용되어야 함 by 조중래 20130627
  856. if (drgflag == "Y" && srcptflag == "B31" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O") {
  857. messageBox("DRG환자의 경우 외래요율로 퇴원수납(B31)할 수 없습니다.", "C000");
  858. return;
  859. // drg환자임에도 불구하고 paihiscl에 DRGAMT / DRGCMT가 존재하지 않는 경우(행위별 계산처리됨)
  860. } else if (drgflag == "Y"
  861. && parseInt(model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgamtcnt")) < 1) {
  862. messageBox("DRG환자에 대해 DRG계산내역이 존재하지 않습니다. \r\n심사과에 DRG계산 요청하십시오.", "C000");
  863. return;
  864. // admi의 drgno 설정용
  865. } else if (drgflag == "Y" && (srcptflag == "B21" || srcptflag == "B31")) {
  866. model.setValue("/root/main/admi_info/ordamt/admispec/admi_drgno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgno"));
  867. } else {
  868. model.setValue("/root/main/admi_info/ordamt/admispec/admi_drgno", "");
  869. }
  870. // 2013년 10월 1일 이후 의료급여환자 외래요율퇴원 시 감면코드(F002) 설정하도록 제어 - 20131004 조중래
  871. if (srcptflag == "B21" || srcptflag == "B31") {
  872. // 의료급여 선택진료비 100% 감면적용(2015/09/10)
  873. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") >= "20150910"
  874. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  875. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  876. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "-") {
  877. alert("의료급여1/2종 환자의 경우 2015년 9월 10일 이후 퇴원 시 \r\n선택진료비 100% 감면코드를 반드시 설정해야합니다.");
  878. return;
  879. // 의료급여 선택진료비 50% 감면적용(2013/10/01)
  880. } else if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") >= "20131001"
  881. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O"
  882. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  883. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  884. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "-") {
  885. alert("의료급여1/2종 환자의 경우 2013년 10월 1일 이후 외래요율 퇴원 시 \r\n선택진료비 50% 감면코드를 반드시 설정해야합니다.");
  886. return;
  887. // 의료급여1/2종이 아니거나 의료급여1/2종 입원요율의 경우는 F002코드 적용불가
  888. } else if (((model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") != "21"
  889. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") != "22")
  890. // || ((model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "21"
  891. // || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "22")
  892. // && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "I")
  893. )
  894. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd") == "F002") {
  895. // alert("선택진료비 50% 감면코드는 의료급여1/2종 외래요율 퇴원시에만 적용가능합니다. \r\n감면코드를 재설정하십시요. ");
  896. alert("선택진료비 감면코드는 의료급여1/2종만 적용가능합니다. \r\n감면코드를 재설정하십시요. ");
  897. return;
  898. }
  899. var disccd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_disccd");
  900. // 미용목적성형의 경우 감면정보 적용여부 점검 by 조중래 20140217
  901. 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") {
  902. // 모발이식센터이외의 경우 블러킹
  903. if (disccd != '-' && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_orddeptcd") != "2450000000") {
  904. alert("미용목적성형의 경우, 감면적용이 불가능합니다.");
  905. return false;
  906. }
  907. // 모발이식센터의 경우라도 모발관련(PK059) 코드가 아니면 블러킹
  908. 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") {
  909. alert("모발이식센터의 경우 모발이식관련 감면코드만 적용가능합니다.\r\n(원무공통코드 - PK059)");
  910. return false;
  911. }
  912. }
  913. // 새마을금고 감면코드 수납 불가 처리
  914. if (disccd == "E140" || disccd == "E150" || disccd == "E155" || disccd == "E156") {
  915. messageBox("새마을금고 감면코드는 수납 하실 수 없습니다.", "E999", "");
  916. return false;
  917. }
  918. }
  919. // 자보환자 사고접수번호 확인용 제어 추가 by 조중래 20130706
  920. if (srcptflag == "B31"
  921. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "31"
  922. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_suppkind") != "01") {
  923. // 자보 + 전액본인부담 이외의 경우 사고접수번호는 필수
  924. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd") == ""
  925. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd") == "-") {
  926. messageBox("자보 전액본인부담 이외의 경우 퇴원수납(B31) 시 반드시 보험사코드가 있어야합니다.\r\n자보등록정보를 확인 하신 후 재원변경에서 수정하십시오.", "C000");
  927. return false;
  928. }
  929. // 자보 + 전액본인부담 이외의 경우 지불보증번호는 필수
  930. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_paygrntnoyn") != "Y") {
  931. messageBox("자보 전액본인부담 이외의 경우 퇴원수납(B31) 시 반드시 지불보증번호가 있어야합니다.\r\n자보등록정보를 확인 하신 후 재원변경에서 수정하십시오.", "C000");
  932. return false;
  933. }
  934. }
  935. // 보험사 코드는 퇴원수납일 경우에만 설정
  936. if (srcptflag == "B31" && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insukind") == "31") {
  937. // 자보 보험사코드 설정
  938. model.setValue("/root/main/admi_info/ordamt/admispec/admi_insucd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_insucd"));
  939. }
  940. if (srcptflag == "B31" || srcptflag == "B41") {
  941. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) < 0) {
  942. var iRcpt = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  943. for(var a=1; a<=iRcpt; a++) {
  944. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptstat") == "Y") {
  945. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptflag") == "B01"
  946. || model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/rcptflag") == "B21") {
  947. if (parseInt(model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ a +"]/cashamt")) > 0) {
  948. messageBox("현금영수증내역을 확인 하십시오.","I999","");
  949. break;
  950. }
  951. }
  952. }
  953. }
  954. }
  955. }
  956. // 재원유형기간 중 주치의 휴진등록 되어있는 경우 퇴원수납(B31) 블러킹 처리
  957. // 심사팀 요청 있을때까지 무기한 적용 연기
  958. //if (srcptflag == "B31" && fGetDrHoliInfo("Y") != true) {
  959. // return false;
  960. //}
  961. /*
  962. * 불필요 판단 주석처리 - 20130418 서원식
  963. 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") {
  964. //산전지원금 상한체크
  965. //2011-04-01시점으로 4만원 -> 6만원으로 상한조정됨 by 조중래
  966. var tempIndd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  967. if(tempIndd < "20130422"){
  968. if (tempIndd >= "20110401") {
  969. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")) > 60000) {
  970. messageBox("산전진료비 수납금액은 1일 60,000원을 초과 할 수 없습니다.", "I999");
  971. return;
  972. }
  973. } else {
  974. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")) > 40000) {
  975. messageBox("산전진료비 수납금액은 1일 40,000원을 초과 할 수 없습니다.", "I999");
  976. return;
  977. }
  978. }
  979. }
  980. }
  981. */
  982. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y" && model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt") == "0") {
  983. messageBox("산전진료비 수납을 체크 하셨습니다. 산전진료비를 입력하십시오.", "I999");
  984. return;
  985. }
  986. //수납전 보험, 보조유형 재세팅
  987. model.setValue("/root/main/admi_info/ordamt/admispec/admi_insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  988. model.setValue("/root/main/admi_info/ordamt/admispec/admi_suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  989. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orddeptcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_orddeptcd"));
  990. model.setValue("/root/main/admi_info/ordamt/admispec/admi_medispclid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_medispclid"));
  991. //납부할 금액과 실수납금액 비교
  992. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) !=
  993. (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt"))
  994. + parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"))
  995. + parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt"))
  996. )) {
  997. if (messageBox("납부할금액과 실수납할 금액에 차이가 있습니다. 수납을 진행하시겠습니까?", "Q999","") == 7) {
  998. return;
  999. }
  1000. }
  1001. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "08") {
  1002. messageBox("6세 미만 외래요율 환자입니다. 보조유형을 변경하십시오.","E999","");
  1003. return;
  1004. }
  1005. //20091111-외래요율 신생아인 경우 수납처리시 보조유형을 변경처리 메시지
  1006. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "O" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "31") {
  1007. messageBox("신생아 외래요율 환자입니다. 보조유형을 변경하십시오.","E999","");
  1008. return;
  1009. }
  1010. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") == "I" && model.getvalue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind") == "07") {
  1011. messageBox("외래요율 환자입니다. 산정특례를 적용할 수 없습니다. 보조유형을 변경하십시오.","E999","");
  1012. return;
  1013. }
  1014. // 입원요율과 계산요율이 다를 경우 수납불가
  1015. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag") != model.getValue("/root/main/admi_info/ordamt/admispec/admi_brateflag")
  1016. && (srcptflag == "B31" || srcptflag == "B21")) {
  1017. messageBox("실제 입원요율과 계산요율이 상이합니다. 재계산 후 수납처리하십시오.","E999","");
  1018. return;
  1019. }
  1020. //var slastmdlclamdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_lastmdlclamdd");
  1021. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  1022. var sordtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  1023. var sbrateflag = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag");
  1024. var sjudgrcsstat = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat");
  1025. var dschrcptflag = "";
  1026. var dschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  1027. if ((srcptflag == "") || (srcptflag == null)) {
  1028. messageBox("수납계정이 없습니다. 수납계정을","C001","");
  1029. model.setFocus("ipt_rcptcd");
  1030. return;
  1031. }
  1032. if ((model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") == "21" ||
  1033. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") == "22") &&
  1034. model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt") != "0" &&
  1035. srcptflag != "B31" && sbrateflag =='O') {
  1036. messageBox("건강생활유지비는 퇴원수납(B31)일 경우만 수납처리 가능합니다. 해당 계정으로 수납처리 할 수", "I004");
  1037. return;
  1038. }
  1039. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt") != "0" && sbrateflag == 'I') {
  1040. messageBox("입원환자는 건강생활유지비를 발생할 수 없습니다. 확인해 주십시오.", "I999");
  1041. return;
  1042. }
  1043. if (srcptflag == "B01" || srcptflag == "B51" ) {
  1044. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt/rcptflag") != "") {
  1045. var iRcptRow1 = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  1046. for(var iRcptRow=1; iRcptRow<=iRcptRow1; iRcptRow++) {
  1047. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptstat") == "Y") {
  1048. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptflag") == "E70") {
  1049. messageBox("퇴원청구(E70)계정이 생성되어 있습니다. 해당 계정으로 수납처리(취소) 할 수", "I004");
  1050. fInitialize("inpatinfo");
  1051. fDschamtVisible(false);
  1052. fCalcInfo("2");
  1053. //fOrdAmtInfo(); //진료비내역
  1054. //fRcptInfo("1");
  1055. //진료비내역,청구수납 내역
  1056. fRcpt_AllInfo("Y","Y","1");
  1057. return;
  1058. }
  1059. }
  1060. }
  1061. }
  1062. }
  1063. // 퇴원수납 시 복수연도에 대해서 본인부담상한금액이 존재하는 경우, 강제분리하여 수납하도록 유도 by 조중래 20140331
  1064. if (srcptflag == "B31"
  1065. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == '11'
  1066. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") != '01') {
  1067. var fromdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd").substr(0, 4);
  1068. var todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd").substr(0, 4);
  1069. // 제일 마지막 통의 경우 종료일자가 9999/12/31 이므로 퇴원통보일로 보정처리
  1070. if (todd == '9999') {
  1071. todd = dschnotidt.substr(0, 4);
  1072. }
  1073. // 본인부담상한금이 존재하고, 시작/종료연도가 다른 경우 NG
  1074. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payownblimamt")) > 0
  1075. && fromdd != todd) {
  1076. alert("복수연도에 본인부담상한금액이 존재하는 경우 반드시 유형을 분리하십시오.");
  1077. return false;
  1078. }
  1079. }
  1080. // 퇴원수납 시, 유형강제분리를 한 경우 반드시 미수생성 by 조중래 20150327
  1081. if (srcptflag == "B31"
  1082. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_forcesepcd") != null
  1083. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_forcesepcd") != "")
  1084. && (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") == null
  1085. || model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") == 0)) {
  1086. messageBox("유형분리사유가 입력된 경우, 미수금액을 반드시 입력하셔야 합니다.", "I999","");
  1087. return;
  1088. }
  1089. /*
  1090. JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 주석처리함
  1091. if (sbrateflag == "O" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1092. var iInAmtChk = parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/payamt1")) +
  1093. parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/nopyamt1")) +
  1094. parseInt(model.getValue("/root/main/iscl_info/grdearnflag1[2]/specamt1"));
  1095. if (iInAmtChk > 0) {
  1096. //blocking 하지 않음. 메세지 처리13401
  1097. if (messageBox("외래요율환자에게 입원료가 존재합니다. 반드시 확인 하십시오. 수납을", "Q003") == 7) {
  1098. return;
  1099. }
  1100. }
  1101. }
  1102. */
  1103. //################# 퇴원확정일자 이후에 액팅된 처방인 있는 경우 메시지 처리 시작#######################################
  1104. var strexecddnotiyn=model.getValue("/root/main/admicheck/admichecklist/execddnotiyn");
  1105. if( (srcptflag == "B31") && (strexecddnotiyn=="Y")){
  1106. messageBox("퇴원확정 이후에 액팅 된 처방이 있습니다. 보험심사팀 또는 진료에 ","I007");
  1107. return;
  1108. }
  1109. //################# 퇴원확정일자 이후에 액팅된 처방인 있는 경우 메시지 처리끝 #######################################
  1110. //################# 시작 : JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 기존로직 주석처리하고 이 로직 추가함. #########################
  1111. var smskind = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind");
  1112. if(smskind == "M"){
  1113. submit("TRPAI00130");
  1114. if (sbrateflag == "O" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1115. var iInAmtChk = model.getValue("/root/temp4/brateflagchk/chk/yn");
  1116. if (iInAmtChk == "Y") {
  1117. //blocking 하지 않음. 메세지 처리13401
  1118. messageBox("외래요율환자에게 입원료가 존재합니다. 수가계산을 다시 하십시요. 수납승인을 ", "E001");
  1119. return;
  1120. }
  1121. }else if (sbrateflag == "I" && (srcptflag == "B31" || srcptflag == "B21")) { //수익구분을 선택시 가져오도록 변경하여 적용되지 않음.(차후 submit으로 체크)
  1122. var iInAmtChk = model.getValue("/root/temp4/brateflagchk/chk/yn");
  1123. var dschNotidd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  1124. var dschNotitm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(8, 4);
  1125. // 퇴원당일만 유형이 분리된 경우는 제외(단, 1800 이후 퇴원시는 포함)
  1126. if (iInAmtChk == "N"
  1127. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") != dschNotidd
  1128. || (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") == dschNotidd
  1129. && dschNotitm >= 1800))) {
  1130. //blocking 하지 않음. 메세지 처리13401
  1131. if (messageBox("입원요율환자에게 입원료가 존재하지 않습니다. 반드시 확인 하십시오. 수납을", "Q003") == 7) {
  1132. return;
  1133. }
  1134. }
  1135. }
  1136. }
  1137. //################# 끝 : JHP, 20090204 외래요율에 입원료가 있어도 그냥 진행하면 수납할수가 있는 형태여서 수정하기위해 기존로직 주석처리하고 이 로직 추가함. #########################
  1138. // 의료급여 + 정신과 + 외래요율 + 원외퇴원약 존재하는 경우 퇴원수납 제어 by 조중래 20150206
  1139. // 해당 조건은 sql에 적용되어있으므로 카운터만으로 체크 실시
  1140. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdrugcnt") > 0 && (srcptflag == "B21" || srcptflag == "B31")) {
  1141. messageBox("의료급여 정신과 외래요율 퇴원환자에게 원외약이 존재합니다. \r\n퇴원약을 확인하시기 바랍니다. ", "E999");
  1142. return;
  1143. }
  1144. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "T" && srcptflag == "B31") {
  1145. } else {
  1146. if (srcptflag == "C01" || srcptflag == "B41") {
  1147. } else {
  1148. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") == "Y") {
  1149. messageBox("선택한 재원정보는 이미수납처리 되었습니다.\n수정하시려면 수납취소 후 처리하십시오.","E999","");
  1150. return;
  1151. }
  1152. }
  1153. }
  1154. //주/부로 입원 되어 있는 경우 체크 해야 함.
  1155. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")
  1156. == model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd"))) {
  1157. sdschrcptflag = "D";
  1158. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "D");
  1159. } else if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") != "99991231")) {
  1160. sdschrcptflag = "R";
  1161. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "R");
  1162. } else {
  1163. sdschrcptflag = "-";
  1164. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "-");
  1165. }
  1166. //부유형(임상등) 취소시 iphs에 rcptyn이 Y로 남아있는 케이스 문제로 아래 IF문 추가 20110401 cys
  1167. //원래는 위에 if문만 있어야 합니다.
  1168. //수납할때 admi_dschrcptflag -> D , iphs_rcptyn -> Y 로 됩니다. 만약 B31인데 admi_dschrcptflag값이 -로 들어가면 취소시 rcptyn이 N으로 못돌아가는 문제가 생깁니다.
  1169. //그래서 아래 if문 추가합니다. 본인 생각으론 아래 if필요없고 위에서 B31일때 무조건 admi_dschrcptflag -> D 하면 될것같은데(경북대는 중간청구가 없습니다)
  1170. //상황이 여의치 않아 아래if문을 추가해서 부유형일때만 예외처리를 한번 더 해줍니다.
  1171. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind")== "S")
  1172. // 2013-07-17 조건절 추가 - 위 조건으론 유형이 분리된 부유형 앞 기간이 유형을 수납할 때도 무조건 퇴원처리됨.
  1173. // 마지막 유형을 수납할때만 퇴원되도록 조건 추가 by 조중래
  1174. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231")) {
  1175. sdschrcptflag = "D";
  1176. model.setValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag", "D");
  1177. }
  1178. //중간청구가 되지 않으면 유형에 대하여 수납처리를 할 수 없도록 blocking
  1179. //재원심사여부로 체크 해야 할지.?
  1180. //재원심사여부로 체크하도록 수정(KTAS4/5등급 당일퇴원 하지않는 경우 처리 관련) by 20160725
  1181. // if ((sjudgrcsstat == "A" && sdschrcptflag == "R" && srcptflag == "B31") && (slastmdlclamdd == "" || slastmdlclamdd == "-" || slastmdlclamdd == "00000000")) {
  1182. // messageBox("보험 중간청구가 되어 있지 않아 수납처리를", "E001", "");
  1183. // return;
  1184. // }
  1185. //
  1186. // if ((sjudgrcsstat == "A" && sdschrcptflag == "R" && srcptflag == "B31") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") > slastmdlclamdd)) {
  1187. // messageBox("보험 중간청구가 되어 있지 않아 수납처리를", "E001", "");
  1188. // return;
  1189. // }
  1190. //dschrcptflag : R --> 가퇴원 수납할 수 없도록 체크, 이전 수납하지 않았으면 수납 할 수 없도록 체크
  1191. //B31 체크시 확인
  1192. //B21 수납시 이전 수납내역 체크 하 않음. 퇴원 수납시만 체크 요청
  1193. //B31,21 둘다 체크 경북대는 같은보험유형 2줄보일수있으므로. 20110213 cys
  1194. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  1195. /*
  1196. if ((srcptflag == "B31" || srcptflag == "B21") && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow + 1) +"]/iphs_rcptyn") == "N")) {
  1197. if (srcptflag == "B31" && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow + 1) +"]/iphs_rcptyn") == "N") {
  1198. messageBox("이전 재원 유형이 수납되어 있지 않습니다. 현재 유형을 수납처리를", "E001", "");
  1199. return;
  1200. }
  1201. */
  1202. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  1203. if (srcptflag == "B31" || srcptflag == "B21") {
  1204. if(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_todd < '" + iphs_todd + "' and iphs_rcptyn = 'N']/iphs_todd") > 0) {
  1205. messageBox("이전 재원 유형이 수납되어 있지 않습니다. 현재 유형을 수납처리를", "E001", "");
  1206. return;
  1207. }
  1208. }
  1209. if (srcptflag == "B31") {
  1210. if(getNodesetCount("/root/main/admi_info/admi/grdclamrcpt[todd = '" + iphs_todd + "' and rcptstat = 'Y' and rcptflag = 'B31']/rcptflag") > 0) {
  1211. messageBox("B31계정으로 이미 수납한 건입니다.", "E999", "");
  1212. return;
  1213. }
  1214. }
  1215. if (srcptflag == "B21") {
  1216. if(getNodesetCount("/root/main/admi_info/admi/grdclamrcpt[todd = '" + iphs_todd + "' and rcptstat = 'Y' and rcptflag = 'B21']/rcptflag") > 0) {
  1217. messageBox("B21계정으로 이미 수납한 건입니다.", "E999", "");
  1218. return;
  1219. }
  1220. }
  1221. //부유형이 존재할 경우 주유형 수납전에 부유형이 먼져 수납되어야 함.
  1222. //중간금은 수납 할 수 있어야 함.
  1223. //if (srcptflag == "B31" || srcptflag == "B21") {
  1224. if (srcptflag == "B31") {
  1225. for (i = 1; i <= getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo"); i++) {
  1226. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "S" &&
  1227. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "N") {
  1228. messageBox("주유형 수납전에 부유형을 수납하셔야 합니다.", "E999");
  1229. return;
  1230. }
  1231. }
  1232. }
  1233. }
  1234. if ((srcptflag != "B01") && (srcptflag != "B11") && (srcptflag != "B21") && (srcptflag != "B31") && (srcptflag != "B41") && (srcptflag != "C01")) {
  1235. messageBox("입력된 수납계정으로는 수납처리를", "E001","");
  1236. return;
  1237. }
  1238. // 감면코드 유효성검증에 문제가 있는경우 퇴원수납(B31) 불가
  1239. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dcucynfrom") == "N"
  1240. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dcucynto") == "N") {
  1241. messageBox("감면코드가 유효하지 않습니다. 유형별 감면코드를 확인하십시요.", "E999");
  1242. return;
  1243. }
  1244. //가퇴원일 경우 심사 여부는 체크하지 않는다.
  1245. if ((srcptflag == "B31") ||(srcptflag == "B21")) {
  1246. var stime = getCurrentTime();
  1247. var sdate = getCurrentDate();
  1248. //차후 간호입실 시간으로 시간 계산 함.
  1249. var schkcalcdd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_calcdd")
  1250. if (schkcalcdd == "-" || schkcalcdd == null || schkcalcdd == "" || schkcalcdd == "00000000") {
  1251. messageBox("간호 입실 체크 되지 않았습니다. 확인하여 주십시오.", "E999", "");
  1252. return;
  1253. } else {
  1254. if ((sordtype != "I") && (sbrateflag == "-" || sbrateflag == null || sbrateflag =="")) {
  1255. messageBox("[응급, DSC] 계산 요율이 없어 수납처리를", "E001", "");
  1256. return;
  1257. } else if (sordtype == "I") {
  1258. //별도 시간 체크 하지 않음. 간호에서 외래 요율 계산해서 넣기로 함.
  1259. // var sintime = getTimeInterval(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_calctm"),stime.substr(0,4)) / 60 ;
  1260. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == sdate && sintime < 360) {
  1261. // messageBox("입원시간이 6시간 미만 입니다.","E001","");
  1262. // //return;
  1263. // }
  1264. }
  1265. }
  1266. //의사 사인은 체크 하지 않음. 응급, DSC는 퇴원통보만 체크 한다.
  1267. //if (sordtype == "I") {
  1268. // var sdschdclrdt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt");
  1269. // if ((sdschrcptflag == "D") && (sdschdclrdt == "" || sdschdclrdt == "-" || sdschdclrdt == null)) {
  1270. // messageBox("의사 Sign(퇴원예고)이 없어 수납처리를", "E001","");
  1271. // return;
  1272. // }
  1273. //}
  1274. var sdschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  1275. if ((sdschrcptflag == "D") && (sdschnotidt == "" || sdschnotidt == "-" || sdschnotidt == null)) {
  1276. messageBox("간호 Sign(퇴원통보)이 없어 수납처리를", "E001","");
  1277. return;
  1278. }
  1279. }
  1280. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt")) > 0) {
  1281. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") == "") {
  1282. messageBox("임의감면 코드가 입력되지", "E007","");
  1283. return;
  1284. }
  1285. }
  1286. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt")) > 0) {
  1287. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "") {
  1288. messageBox("미수 코드가 입력되지", "E007","");
  1289. return;
  1290. }
  1291. //일반미수 권한 체크
  1292. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "A01") {
  1293. getRcptuserInfo(); //수납마감 사용자관리 조회
  1294. if(model.getValue("/root/rcptuser/rcptuserinfo/uncoyn") != "Y"){
  1295. messageBox("일반미수 발생 권한이 없습니다.","E999","");
  1296. return;
  1297. }
  1298. }
  1299. }
  1300. if (srcptflag == "B21") {
  1301. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt") != "0") {
  1302. messageBox("가퇴원(B21)시 수혈대체를 할 수 없습니다. 퇴원수납(B31)시 수혈대체를 하십시오.", "I999");
  1303. return;
  1304. }
  1305. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt") != "0") {
  1306. messageBox("가퇴원(B21)시 임의감면을 생성할 수 없습니다. 퇴원수납(B31)시 임의감면을 생성 하십시오.", "I999");
  1307. return;
  1308. }
  1309. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") != "0") {
  1310. messageBox("가퇴원(B21)시 미수를 생성할 수 없습니다. 퇴원수납(B31)시 미수를 생성 하십시오.", "I999");
  1311. return;
  1312. }
  1313. }
  1314. if (srcptflag == "B01") {
  1315. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt") != "0") {
  1316. messageBox("선수금 입금시 수혈대체를 할 수 없습니다. 퇴원수납(B31)시 수혈대체를 하십시오.", "I999");
  1317. return;
  1318. }
  1319. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt") != "0") {
  1320. messageBox("선수금 입금시 임의감면을 생성할 수 없습니다. 퇴원수납(B31)시 임의감면을 생성 하십시오.", "I999");
  1321. return;
  1322. }
  1323. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt") != "0") {
  1324. messageBox("선수금 입금시 미수를 생성할 수 없습니다. 퇴원수납(B31)시 미수를 생성 하십시오.", "I999");
  1325. return;
  1326. }
  1327. }
  1328. //flag 값 확인
  1329. //A:미심사, B:심사중, C:심사완료, E:통합심사완료
  1330. // 심사상태는 건보, 급여, 자보, 산재의 경우에만 체크 by 조중래 20180112
  1331. //if (sdschrcptflag == "D" && srcptflag == "B31" && sordtype == "I") {
  1332. if (sdschrcptflag == "D" && srcptflag == "B31"
  1333. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "11"
  1334. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "21"
  1335. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "22"
  1336. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "31"
  1337. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "41")) {
  1338. //외래요율로 계산시에는 심사 여부를 체크하지 않는다.
  1339. //입원일 경우만 심사여부를 체크 한다.
  1340. //if (sbrateflag == "I") {
  1341. if (sordtype == "I" && sbrateflag == "I") {
  1342. if (sjudgrcsstat == "A" ||sjudgrcsstat == "B" || sjudgrcsstat == "") {
  1343. messageBox("심사완료전에는 수납처리를", "E001","");
  1344. return;
  1345. }
  1346. }
  1347. if (sjudgrcsstat == "B") {
  1348. messageBox("해당환자는 현재 [심사중]입니다. 확인 후 수납처리 하십시오.", "I999");
  1349. return;
  1350. }
  1351. }
  1352. // DSC / CHEMO 외래요율 일반유형 환자 확인용 팝업 추가 by 조중래 20180201
  1353. if (sdschrcptflag == "D"
  1354. && srcptflag == "B31"
  1355. && sordtype == "D"
  1356. && sbrateflag == "O"
  1357. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "51") {
  1358. if (messageBox("DSC / CHEMO 일반유형 외래요율 환자입니다.\r\n수납을 진행하시겠습니까?", "Q000") == 7) {
  1359. return;
  1360. }
  1361. }
  1362. // 수납대상유형 이전 유형의 ISCL에 원무키가 빠져있는 경우 에러처리
  1363. if (srcptflag == "B31") {
  1364. if (!fGetISCLNoRcptKey("R")) {
  1365. return;
  1366. }
  1367. }
  1368. /* 원무팀 정혜연 선생님 요청으로 삭제
  1369. //DSC, CHEMO 환자는 평일 17시 30분 이전, 휴일 없음, 토요일 13시 이전, 휴일은 심사 하지 않음
  1370. //if (srcptflag == "B31" && sordtype == "D" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn") == "Y" && (sjudgrcsstat == "A" || sjudgrcsstat == "B") && sbrateflag == "O") {
  1371. if (srcptflag == "B31" && sordtype == "D" && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn") == "Y" && (sjudgrcsstat == "A" || sjudgrcsstat == "B")) {
  1372. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == null || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt") == "") {
  1373. messageBox("퇴원통보일시가 잘못 되었습니다.", "I999");
  1374. }
  1375. var sDschNotiRgstDD = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  1376. var sDschNotiRgstTM = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(8, 4);
  1377. //if (sDschNotiRgstDD == model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")) {
  1378. model.resetInstanceNode("/root/hidden/hschinfo");
  1379. model.setValue("/root/hidden/hschinfo/hsch/hsch_basedd", sDschNotiRgstDD);
  1380. //PMCMCODE cdgrupid = P0004 심사시간 정의
  1381. submit("TRPAI00123");
  1382. //dutflag 8/휴일 4/토요일 0/평일
  1383. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_dutflag") == "0") {
  1384. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == null || model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == "") {
  1385. var iJudgTM = 0;
  1386. } else {
  1387. var iJudgTM = model.getValue("/root/hidden/hschinfo/hsch/hsch_tm");
  1388. }
  1389. if (iJudgTM != 0) {
  1390. if (sDschNotiRgstTM < iJudgTM) {
  1391. if (messageBox("[DSC, CHEMO환자는 평일의 경우 " + iJudgTM + "분까지 심사완료 후 수납하십시오]\n심사가(퇴원통보등록시간 : " + sDschNotiRgstTM.substr(0, 2) + ":" + sDschNotiRgstTM.substr(2, 2) + " ) 완료되지 않았습니다.\n수납을", "Q003","") == 7) {
  1392. return;
  1393. }
  1394. }
  1395. }
  1396. } else if (model.getValue("/root/hidden/hschinfo/hsch/hsch_dutflag") == "4") {
  1397. if (model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == null || model.getValue("/root/hidden/hschinfo/hsch/hsch_tm") == "") {
  1398. var iJudgTM = 0;
  1399. } else {
  1400. var iJudgTM = model.getValue("/root/hidden/hschinfo/hsch/hsch_tm");
  1401. }
  1402. if (iJudgTM != 0) {
  1403. if (sDschNotiRgstTM < iJudgTM) {
  1404. if (messageBox("[DSC, CHEMO환자는 토요일의 경우 " + iJudgTM + "분까지 심사완료 후 수납하십시오]\n심사가(퇴원통보등록시간 : " + sDschNotiRgstTM.substr(0, 2) + ":" + sDschNotiRgstTM.substr(2, 2) + " ) 완료되지 않았습니다.\n수납을", "Q003","") == 7) {
  1405. return;
  1406. }
  1407. }
  1408. }
  1409. }
  1410. //}
  1411. }
  1412. */
  1413. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1414. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) < 0
  1415. && model.getValue("/root/init/option/checkcard") != "Y") {
  1416. messageBox("카드 결제액이 - 금액입니다. \r\n승인완료가 체크된 상태에서만 수납가능합니다.", "E000", "");
  1417. return;
  1418. }
  1419. }
  1420. var sVanFlag = model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm");
  1421. //카드금액 체크
  1422. //2009-01-15 이동식 추가
  1423. var checkCardYN = model.getValue("/root/init/option/checkcard");
  1424. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) > 0 ) {
  1425. var scardno = (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).getTrim();
  1426. var svalidterm = (model.getValue("/root/main/admi_info/rcptmthd/validterm")).getTrim();
  1427. var sallotmm = (model.getValue("/root/main/admi_info/rcptmthd/allotmm")).getTrim();
  1428. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") != "1") {
  1429. messageBox("카드수납은 수납방법이 카드로 선택되어 있어야 합니다. ", "C999","");
  1430. return;
  1431. }
  1432. /* 카드수납팝업에서 처리
  1433. // 최소금액체크
  1434. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) < 1000
  1435. && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) > -1000) {
  1436. messageBox("1,000원미만 금액은 카드결제 할 수 없습니다.","E999");
  1437. return;
  1438. }
  1439. */
  1440. if( checkCardYN != 'Y' ){
  1441. //카드 팝업에서 입력한 경우 체크 하지 않음.
  1442. if (model.getValue("/root/main/admi_info/card/card[1]/card_pid") == "") {
  1443. // KocesICPos 이외의 경우에만 검증
  1444. if (sVanFlag != "KOCES_IC") {
  1445. if (scardno == "" || scardno == "-" || scardno == null) {
  1446. messageBox("카드번호가 입력되지", "E007","");
  1447. model.setFocus("ipt_cardcashno");
  1448. return;
  1449. }
  1450. if (svalidterm == "" || svalidterm == "-" || svalidterm == null) {
  1451. messageBox("카드 유효기간이 입력되지", "E007","");
  1452. model.setFocus("ipt_valiterm");
  1453. return;
  1454. }
  1455. if (sallotmm == "" || sallotmm == "-" || sallotmm == null) {
  1456. messageBox("카드 할부개월이 입력되지", "E007","");
  1457. model.setFocus("ipt_allotmm");
  1458. return;
  1459. }
  1460. }
  1461. }
  1462. }else{
  1463. if (scardno != null && scardno.length > 0) {
  1464. messageBox("승인완료 선택하시고 카드번호를 입력하셨습니다. 카드번호를 지우시거나 승인완료 체크 해제하신 후 다시 수납승인하세요!", "E999","");
  1465. model.setFocus("ipt_cardcashno");
  1466. return;
  1467. }
  1468. }
  1469. }
  1470. //수납방법 3 : 현금영수증 발행 하지 않음.
  1471. //차후 현금 영수증 체크 로직 변경 해야 함.
  1472. //카드와 현금 같이 수납 하는 경우 scashno 항목은 카드로 가져가며, 현금 영수증 승인 정보는 저장된 내역으로 해야 할듯 함.
  1473. if (model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2") {
  1474. //현금영수증 체크
  1475. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) >= 1) {
  1476. // ICPos의 경우 현금영수증카드번호는 단말기에서 입력되도록 예외처리
  1477. if (sVanFlag != "KOCES_IC" || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") != "3") {
  1478. var scashno = (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).getTrim();
  1479. if (scashno == "" || scashno == "-" || scashno == null) {
  1480. var smsg = messageBox("현금영수증 승인정보가 입력되지", "E007");
  1481. model.setFocus("ipt_cardcashno");
  1482. return;
  1483. }
  1484. }
  1485. }
  1486. }
  1487. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totamt")) == 0 && sdschrcptflag == "D" && srcptflag == "B31") {
  1488. if (messageBox("총진료비가 0 원 입니다. 퇴원수납을", "Q003", "") == 7) {
  1489. return;
  1490. }
  1491. }
  1492. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) == 0 && sdschrcptflag == "D" && srcptflag == "B31") {
  1493. if (messageBox("납부할금액이 0 원 입니다. 퇴원수납을", "Q003", "") == 7) {
  1494. return;
  1495. }
  1496. }
  1497. if (srcptflag == "C01") {
  1498. if ((parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt")) +
  1499. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt")) +
  1500. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"))
  1501. ) < 1) {
  1502. messageBox("미수입금금액이 0원이거나 - 금액입니다. 입금금액을 확인하십시오.", "I999");
  1503. return;
  1504. }
  1505. }
  1506. //퇴원수납시 미계산내역 check, blocking 할지 진행할지 확인필요.
  1507. if (srcptflag == "B21" || srcptflag == "B31") {
  1508. //소급내역이 있을 경우 수납블럭킹 처리 한다.
  1509. if(fRetcSpec() != true) return false;
  1510. model.removenode("/root/send/chkdata9");
  1511. model.makeNode("/root/send/chkdata9");
  1512. model.makeValue("/root/send/chkdata9/pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_pid"));
  1513. model.makeValue("/root/send/chkdata9/indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indd"));
  1514. model.makeValue("/root/send/chkdata9/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  1515. model.makeValue("/root/send/chkdata9/instcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_instcd"));
  1516. model.makeValue("/root/send/chkdata9/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  1517. model.makeValue("/root/send/chkdata9/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  1518. submit("TRPAI00127");
  1519. model.removenode("/root/send/chkdata9");
  1520. if (getNodesetCount("/root/chkvalue/nocalcchk") > 0) {
  1521. if (messageBox("미계산내역(ISCL2)이 존재합니다. 수납을 처리하시겠습니까?", "Q999","") == 7) {
  1522. model.removenode("/root/chkvalue/nocalcchk");
  1523. model.makeNode("/root/chkvalue/nocalcchk");
  1524. return;
  1525. }
  1526. }
  1527. var dupexecdd = model.getValue("/root/chkvalue/dup/dupexecdd");
  1528. if (dupexecdd != "") {
  1529. dupexecdd = dupexecdd.toDate().getDateFormat("YYYY/MM/DD")
  1530. messageBox(dupexecdd + "중복계산 내역이 존재합니다. " + dupexecdd + "일 재계산","I008");
  1531. model.removenode("/root/chkvalue/dup");
  1532. model.makeNode("/root/chkvalue/dup");
  1533. return;
  1534. }
  1535. // var prcphistcdecnt = model.getValue("/root/chkvalue/histcde/prcphistcdecnt");
  1536. // if (prcphistcdecnt != "" && prcphistcdecnt != "0") {
  1537. // messageBox("반환요청처방 내역이 존재합니다. 간호팀에 연락하셔서 반환확인 후 퇴원수납을 진행하세요","I008");
  1538. // model.removenode("/root/chkvalue/histcde");
  1539. // model.makeNode("/root/chkvalue/histcde");
  1540. // return;
  1541. // }
  1542. model.removenode("/root/chkvalue/nocalcchk");
  1543. model.makeNode("/root/chkvalue/nocalcchk");
  1544. }
  1545. //2011-04-09
  1546. //수납시에 환자 보험 자격 체크
  1547. //B21, B31일때만 체크
  1548. if( srcptflag == 'B31' || srcptflag == 'B21' ){
  1549. //공단자격조회
  1550. var retVal = fCheckInsuRgst();
  1551. if( retVal == false ){
  1552. //자격조회
  1553. button48.dispatch("DOMActivate");
  1554. return false;
  1555. }else if( retVal == true ){
  1556. //장애인적용확인
  1557. return false;
  1558. }
  1559. }
  1560. var smessage ="";
  1561. if (sordtype == "E" && sbrateflag == "O" && srcptflag == "B31") {
  1562. smessage = "응급 [외래부담율] ";
  1563. } else if (sordtype == "E" && sbrateflag == "I" && srcptflag == "B31") {
  1564. smessage = "응급 [입원부담율] ";
  1565. } else {
  1566. if (srcptflag == "B31") {
  1567. smessage = "입원 [정상퇴원] ";
  1568. } else if (srcptflag == "B21") {
  1569. smessage = "입원 [가퇴원] ";
  1570. } else if (srcptflag == "B01") {
  1571. if (model.getValue("/root/init/option/pregdmndamtchk") == "Y") {
  1572. smessage = "입원 [산전진료비] ";
  1573. } else {
  1574. smessage = "입원 [선수금] ";
  1575. }
  1576. } else if (srcptflag == "B41") {
  1577. smessage = "[퇴원후추가수납금] ";
  1578. } else if (srcptflag == "C01") {
  1579. smessage = "[미수입금] ";
  1580. }
  1581. }
  1582. var sCardAndCash = false;
  1583. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) >= 1 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1584. if (messageBox("카드, 현금영수증을 동시 승인처리 하시겠습니까?\n현금영수증 승인번호가 저장되어 있지 않을 경우 주민번호로 승인됩니다.\n[ 예 ] 카드승인 + 현금영수증승인 수납\n[아니오] 카드승인 + 현금 수납", "Q999","") != 7) {
  1585. sCardAndCash = true;
  1586. }
  1587. }
  1588. if (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt")) >= 1) {
  1589. // 2009.10.22 - 체크노드 변경
  1590. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno") == "-") {
  1591. if (isNull(model.getValue("/root/main/admi_info/onln/onln/onln_acntno"))) {
  1592. messageBox("통장번호가 선택되지 않았습니다. [통장입금] 버튼을 클릭한 후 통장번호를 선택하십시오. ", "C999","");
  1593. return;
  1594. }
  1595. }
  1596. //수납처리***************************
  1597. if (messageBox(smessage + "수납을 처리하시겠습니까?", "Q999","") == 7) {
  1598. return;
  1599. }
  1600. model.resetInstanceNode("/root/send/data1");
  1601. model.resetInstanceNode("/root/send/data2");
  1602. model.resetInstanceNode("/root/send/data3");
  1603. //현재 환자 상태 조회
  1604. if ((srcptflag == "B21" || srcptflag == "B31") && (sdschrcptflag == "D")) {
  1605. model.copyNode("/root/send/data11/iphs", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  1606. model.copyNode("/root/send/data11/admi", "/root/main/admi_info/ordamt/admispec");
  1607. //카드 임의 승인시 이력생성 추가를 위해
  1608. if( model.getValue("/root/init/option/checkcard") == 'Y'){
  1609. model.makeValue("/root/send/data11/admi/admi_checkcard", "Y");
  1610. }
  1611. submit("TRPAI00129");
  1612. // 회송 관련 메세지 처리
  1613. var patReturnMsg = model.getValue("/root/temp2/ipatchk/patreturnmsg");
  1614. if (!isNull(patReturnMsg)) {
  1615. if (patReturnMsg == "1") {
  1616. if (messageBox("퇴원 수속전 진료의뢰센터 방문하여 회송서를 받으세요.\r\n(문의:진료의뢰센터)\r\n수납을 계속 진행하시겠습니까?", "Q000") == "7") {
  1617. return;
  1618. }
  1619. } else if (patReturnMsg == "2") {
  1620. // 제증명 처리 시 진행여부 확인 필요
  1621. if (messageBox("제증명 창구 방문후 퇴원수속하세요.\r\n수납을 계속 진행하시겠습니까?", "Q000") == "7") {
  1622. return;
  1623. }
  1624. }
  1625. }
  1626. if (model.getValue("/root/temp2/ipatchk/indschacptstat") == "D") {
  1627. messageBox("퇴원처리된 환자입니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  1628. return;
  1629. }
  1630. if (srcptflag == "B21" && model.getValue("/root/temp2/ipatchk/indschacptstat") == "T") {
  1631. messageBox("가퇴원처리된 환자입니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  1632. return;
  1633. }
  1634. // 심사상태는 건보, 급여, 자보, 산재의 경우에만 체크 by 조중래 20180112
  1635. if (sordtype == "I" && sbrateflag == "I"
  1636. && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "11"
  1637. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "21"
  1638. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "22"
  1639. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "31"
  1640. || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "41")) {
  1641. if (srcptflag == "B31" && (model.getValue("/root/temp2/ipatchk/dschjudgprcsstat") == "A" || model.getValue("/root/temp2/ipatchk/dschjudgprcsstat") == "B")) {
  1642. messageBox("보험심사 상태가 미심 또는 심사중 상태입니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1643. return;
  1644. }
  1645. //화면의 심사상태와 재조회한 심사상태가 틀린 경우
  1646. if (srcptflag == "B31" || srcptflag == "B21") {
  1647. var j1 = sjudgrcsstat;
  1648. var j2 = model.getValue("/root/temp2/ipatchk/dschjudgprcsstat");
  1649. // 심사상태 완료(C), 통합(E), 예고심사(G)의 경우 통합(E)으로 일괄처리(원무에서 바라보는 기준은 C, E, G가 동일)
  1650. if (j1 == 'C' || j1 == 'G') j1 = 'E';
  1651. if (j2 == 'C' || j2 == 'G') j2 = 'E';
  1652. if (j1 != j2) {
  1653. messageBox("보험심사 상태가 변경 되었습니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1654. return;
  1655. }
  1656. }
  1657. }
  1658. if (model.getValue("/root/temp2/ipatchk/dschnotiyn") != "Y") {
  1659. messageBox("간호퇴원통보상태가 변경되었습니다. 환자를 재조회 하여 상태를 확인하십시오.", "E999");
  1660. return;
  1661. }
  1662. ///////////////카드승인금액비교///////////////////
  1663. if(model.getvalue("/root/temp2/h_msg/msg/msg_cardvan") != "") {
  1664. var msg_cardvan = model.getvalue("/root/temp2/h_msg/msg/msg_cardvan");
  1665. var rtn = messageBox(msg_cardvan,"Q999","");
  1666. if (rtn == 7) {
  1667. return false;
  1668. }
  1669. }
  1670. ///////////////카드승인금액비교 끝///////////////////
  1671. model.removenode("/root/temp2");
  1672. model.makeNode("/root/temp2");
  1673. model.resetInstanceNode("/root/send/data2");
  1674. model.removenode("/root/send/data11/iphs");
  1675. model.removenode("/root/send/data11/admi");
  1676. model.makeNode("/root/send/data11/iphs");
  1677. model.makeNode("/root/send/data11/admi");
  1678. }
  1679. if (srcptflag == "B21" || srcptflag == "C01") {
  1680. fMdlAmtRcpt("D");
  1681. }
  1682. if (srcptflag == "B41") {
  1683. fMdlAmtRcpt("B41");
  1684. }
  1685. if (srcptflag == "B01") {
  1686. if (model.getValue("/root/init/option/pregdmndamtchk") != "Y") {
  1687. fMdlAmtRcpt("R");
  1688. }
  1689. }
  1690. // 개인 정보 이용 동의서 확인 및 출력
  1691. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_scanyn") == "X"
  1692. && messageBox("개인 정보 이용 동의서가 작성되어 있지 않습니다.\n개인 정보 이용 동의서를 출력하시겠습니까?", "Q999") == 6){
  1693. //개인정보이용 동의서 전자동의서를 위한 처리로직 추가 by 조중래 20130305
  1694. var ocrtype = "O";
  1695. if(model.getValue("/root/init/PAM/PK018list/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  1696. if (messageBox("개인정보이용동의서", "Q017") == "6") {
  1697. ocrtype = "S";
  1698. }
  1699. }
  1700. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  1701. //구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  1702. var formcd = model.getValue("/root/init/prncd/hardcd[cdseqno='3']/hardcd");
  1703. fPerPrintOCR(formcd
  1704. , ipt_pid
  1705. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")
  1706. , model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + srow + "]/iphs_cretno")
  1707. , "I"
  1708. , ocrtype);
  1709. }
  1710. model.copyNode("/root/send/data1", "/root/main/inpt_info/inptpatinfo");
  1711. model.copyNode("/root/send/data2", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  1712. model.copyNode("/root/send/data3", "/root/main/admi_info/ordamt/admispec");
  1713. model.setValue("/root/send/data3/admi_rcptexecdd", getCurrentDate());
  1714. model.setValue("/root/send/data3/admi_rcpttm", getCurrentTime());
  1715. //퇴원수납에서 중간금 수납시 incalcenddd는 incalcfromdd로 변경한다.
  1716. if ((model.getValue("/root/send/data3/admi_rcptflag") == "B01" || model.getValue("/root/send/data3/admi_rcptflag") == "B11")
  1717. && model.getValue("/root/send/data3/admi_incalcenddd") == "99991231") {
  1718. model.setValue("/root/send/data3/admi_incalcenddd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_incalcfromdd"))
  1719. }
  1720. //퇴원일 경우
  1721. if (model.getValue("/root/send/data3/admi_rcptflag") == "B31" || model.getValue("/root/send/data3/admi_rcptflag") == "B21") {
  1722. var sdschdt = model.getValue("/root/send/data1/inpt_dschnotidt")
  1723. var stime = getCurrentTime();
  1724. model.setValue("/root/send/data1/inpt_dschdd", sdschdt.substr(0, 8));
  1725. // 가퇴원 -> 퇴원의 경우에는 기존의 퇴원시간을 유지해야할 필요 있음 by 조중래 20140717
  1726. if (model.getValue("/root/send/data1/inpt_indschacptstat") == "T") {
  1727. model.setValue("/root/send/data1/inpt_dschtm", model.getValue("/root/send/data1/inpt_dschtm"));
  1728. } else {
  1729. model.setValue("/root/send/data1/inpt_dschtm", stime.substr(0, 4));
  1730. }
  1731. if (model.getValue("/root/send/data3/admi_incalcenddd") == "99991231") {
  1732. model.setValue("/root/send/data3/admi_incalcenddd", model.getValue("/root/send/data1/inpt_dschdd"));
  1733. }
  1734. if (model.getValue("/root/send/data3/admi_rcptflag") == "B21") {
  1735. model.setValue("/root/send/data3/admi_pregdmndamt", "0"); //퇴원수납시에는 산전진료비를 발생하지 않는다.
  1736. }
  1737. // alert("퇴원");
  1738. // return false;
  1739. }
  1740. //미수 입금처리시 미수내역을 넘긴다.
  1741. if (model.getValue("/root/send/data3/admi_rcptflag") == "C01") {
  1742. if (parseInt(model.getValue("/root/main/admi_info/unco/unco/unco_uncoamt")) > 0) {
  1743. model.removenode("/root/send/set_unco/unco");
  1744. copyNodeListType("/root/send/set_unco","/root/main/admi_info/unco/unco","replace");
  1745. for(var i=1; i<=getNodesetCount("/root/send/set_unco/unco"); i++) {
  1746. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_pid", model.getValue("/root/send/data1/inpt_pid"));
  1747. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptdd", model.getValue("/root/main/admi_info/unco/unco/unco_rcptdd"));
  1748. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptno", model.getValue("/root/main/admi_info/unco/unco/unco_rcptno"));
  1749. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptseqno", model.getValue("/root/main/admi_info/unco/unco/unco_rcptseqno"));
  1750. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_seqno", i);
  1751. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1752. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1753. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddeptcd", model.getValue("/root/send/data2/iphs_orddeptcd"));
  1754. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddrid", model.getValue("/root/send/data2/iphs_medispclid"));
  1755. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_dschdd", model.getValue("/root/send/data1/inpt_dschdd"));
  1756. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_insukind", model.getValue("/root/send/data2/iphs_insukind"));
  1757. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_suppkind", model.getValue("/root/send/data2/iphs_suppkind"));
  1758. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1759. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncorcptflag", "2");
  1760. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocls", "1");
  1761. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  1762. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  1763. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  1764. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_apprsn", "");
  1765. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptamt", model.getValue("/root/send/data3/admi_rcptpayamt"));
  1766. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_debtamt" , "0");
  1767. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_endyn", "Y");
  1768. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", "-");
  1769. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_empid", "-");
  1770. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1771. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1772. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptrid", "");
  1773. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_remfact", "");
  1774. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstrid", "");
  1775. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstdt", "");
  1776. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtrid", "");
  1777. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtdt", "");
  1778. }
  1779. model.setValue("/root/send/data3/admi_uncocalcflag", "2");
  1780. model.setValue("/root/send/data3/admi_orgrcptdd", model.getValue("/root/send/set_unco/unco/unco_rcptdd"));
  1781. model.setValue("/root/send/data3/admi_orgrcptno", model.getValue("/root/send/set_unco/unco/unco_rcptno"));
  1782. model.setValue("/root/send/data3/admi_orgrcptseqno", model.getValue("/root/send/set_unco/unco/unco_rcptseqno"));
  1783. }
  1784. }
  1785. //퇴원후추가수납시 수혈내역은 처리함.
  1786. if (model.getValue("/root/send/data3/admi_rcptflag") == "B41" || model.getValue("/root/send/data3/admi_rcptflag") == "B31") {
  1787. //수혈내역// 수혈 감면은 팝업에서 send로 이미 node 생성// 수납일자, 수납시간 적용
  1788. var ibldc = parseInt(model.getValue("/root/send/data3/admi_bloddiscamt"));
  1789. if (ibldc > 0) {
  1790. for(var i=1; i<=getNodesetCount("/root/send/set_bldc/bldc"); i++){
  1791. model.setValue("/root/send/set_bldc/bldc[" + i + "]/bldc_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1792. model.setValue("/root/send/set_bldc/bldc[" + i + "]/bldc_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1793. }
  1794. }
  1795. }
  1796. //미수금수납, 감액 퇴원수납시만 발생
  1797. if (model.getValue("/root/send/data3/admi_rcptflag") == "B31") {
  1798. //미수금 내역
  1799. var iunco = parseInt(model.getValue("/root/send/data3/admi_uncoamt"));
  1800. if (iunco > 0) {
  1801. model.removenode("/root/send/set_unco/unco");
  1802. copyNodeListType("/root/send/set_unco","/root/main/admi_info/unco/unco","replace");
  1803. for(var i=1; i<=getNodesetCount("/root/send/set_unco/unco"); i++) {
  1804. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_pid", model.getValue("/root/send/data1/inpt_pid"));
  1805. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1806. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1807. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1808. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_seqno", i);
  1809. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1810. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1811. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddeptcd", model.getValue("/root/send/data2/iphs_orddeptcd"));
  1812. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddrid", model.getValue("/root/send/data2/iphs_medispclid"));
  1813. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_dschdd", model.getValue("/root/send/data1/inpt_dschdd"));
  1814. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_insukind", model.getValue("/root/send/data2/iphs_insukind"));
  1815. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_suppkind", model.getValue("/root/send/data2/iphs_suppkind"));
  1816. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1817. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncorcptflag", "1");
  1818. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocls", "1");
  1819. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  1820. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  1821. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  1822. //model.setValue("/root/send/set_unco/unco[" + i + "]/unco_apprsn", "");
  1823. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptamt" , "0");
  1824. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_debtamt" , "0");
  1825. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_endyn", "N");
  1826. if (model.getValue("/root/send/set_unco/unco[" + i + "]/unco_uncocd") == "I41") {
  1827. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", model.getValue("/root/send/data1/inpt_clincstdycd"));
  1828. } else {
  1829. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_clincstdyno", "-");
  1830. }
  1831. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_empid", "-");
  1832. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1833. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1834. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_rcptrid", "");
  1835. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_remfact", "");
  1836. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstrid", "");
  1837. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_fstrgstdt", "");
  1838. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtrid", "");
  1839. model.setValue("/root/send/set_unco/unco[" + i + "]/unco_lastupdtdt", "");
  1840. }
  1841. }
  1842. //감면내역
  1843. var idcgm = parseInt(model.getValue("/root/send/data3/admi_reduamt"));
  1844. if (idcgm > 0) {
  1845. model.removenode("/root/send/set_dcgm/dcgm");
  1846. copyNodeListType("/root/send/set_dcgm", "/root/main/admi_info/dcgm/dcgm","replace");
  1847. for(var i=1; i<=getNodesetCount("/root/send/set_dcgm/dcgm"); i++) {
  1848. //이미 생성 됨.
  1849. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  1850. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  1851. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_discreduflag", "G");
  1852. //model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_apprsn", "");
  1853. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1854. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_seqno", i);
  1855. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1856. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1857. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1858. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1859. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1860. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1861. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1862. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1863. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_remfact", "");
  1864. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_rcptrid", "");
  1865. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_fstrgstrid", "");
  1866. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_fstrgstdt", "");
  1867. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_lastupdtrid", "");
  1868. model.setValue("/root/send/set_dcgm/dcgm[" + i + "]/dcgm_lastupdtdt", "");
  1869. }
  1870. }
  1871. //할인내역
  1872. var idiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt"));
  1873. if (idiscamt > 0) {
  1874. //임의감면이 없을 경우 첫번째 index 생성
  1875. var sdcgmchk = model.getValue("/root/send/set_dcgm/dcgm/dcgm_pid");
  1876. if (sdcgmchk == "" || sdcgmchk == null || sdcgmchk == "") {
  1877. model.makeNode("root/send/set_dcgm/dcgm");
  1878. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1879. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1880. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1881. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_seqno", "1");
  1882. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1883. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1884. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1885. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1886. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreducd", model.getValue("/root/send/data2/iphs_disccd"));
  1887. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/send/data3/admi_discamt"));
  1888. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_discreduflag", "D");
  1889. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_apprsn", "");
  1890. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1891. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1892. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_remfact", "");
  1893. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_rcptrid", "");
  1894. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_fstrgstrid", "");
  1895. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_fstrgstdt", "");
  1896. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_lastupdtrid", "");
  1897. model.makeValue("/root/send/set_dcgm/dcgm/dcgm_lastupdtdt", "");
  1898. } else {
  1899. var ii = getNodesetCount("/root/send/set_dcgm/dcgm");
  1900. ii++;
  1901. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_pid", model.getValue("/root/send/data1/inpt_pid"));
  1902. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  1903. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  1904. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_seqno", ii);
  1905. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  1906. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  1907. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  1908. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  1909. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreducd", model.getValue("/root/send/data2/iphs_disccd"));
  1910. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreduamt", model.getValue("/root/send/data3/admi_discamt"));
  1911. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_discreduflag", "D");
  1912. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_apprsn", "");
  1913. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  1914. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  1915. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_remfact", "");
  1916. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_rcptrid", "");
  1917. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_fstrgstrid", "");
  1918. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_fstrgstdt", "");
  1919. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_lastupdtrid", "");
  1920. model.makeValue("/root/send/set_dcgm/dcgm[" + ii + "]/dcgm_lastupdtdt", "");
  1921. }
  1922. }
  1923. }
  1924. //카드내역
  1925. var icard = parseInt(model.getValue("/root/send/data3/admi_cardamt"));
  1926. // if (icard == 0 ) {
  1927. // if (model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != "" || model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != " " ||
  1928. // model.getValue("/root/main/admi_info/card/card[1]/card_cardamt") != null) {
  1929. // icard = parseInt(model.getValue("/root/main/admi_info/card/card[1]/card_cardamt"));
  1930. // if (icard < 0) {
  1931. // icard = icard * -1;
  1932. // }
  1933. // }
  1934. // }
  1935. //1-카드, 2-현금영수증, 3-현금
  1936. if (icard > 0 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1") {
  1937. model.removenode("/root/send/set_card/card");
  1938. var scardcount = getNodesetCount("/root/main/admi_info/card/card/card_pid");
  1939. 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 ){
  1940. scardcount = 0;
  1941. }
  1942. var bCardAprv = false;
  1943. //팝업에서 받아오는 값이 없을 경우 화면에서 입력된 카드만 처리한다.
  1944. if (model.getValue("/root/main/admi_info/card/card[1]/card_pid") == "" &&
  1945. model.getValue("/root/main/admi_info/card/card[1]/card_aprvdd") == "" &&
  1946. model.getValue("/root/main/admi_info/card/card[1]/card_aprvtm") == "") {
  1947. var bCardAprv = true;
  1948. }
  1949. //======================================================================================================================================임시
  1950. // if (scardcount <= 1) {
  1951. //카드내역이 2개 이상인 경우 카드popup 에서 이미 승인되어 넘어 옴, 카드 개수만큼 카드내역만 생성.
  1952. //단일 카드일 경우 카드popup을 호출하여 승인 후 카드내역 생성
  1953. if (bCardAprv == true && checkCardYN != 'Y' ) {
  1954. var iCardAmt = parseInt(model.getValue("/root/send/data3/admi_cardamt")); //card 금액
  1955. var sPid = model.getValue("/root/send/data1/inpt_pid"); //환자번호
  1956. var sVanCD =""; //van사 구분
  1957. var sAprvFlag = ""; //승인구분
  1958. var sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag"); //입력구분
  1959. var sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata"); //swipedata
  1960. var sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno"); //카드번호
  1961. var sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm"); //유효기간
  1962. var sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm"); //할부기간
  1963. var sAprvDD = ""; //원거래승인일자(취소)
  1964. var sAprvTm = ""; //원거래승인일시(취소)
  1965. var sAprvNo = ""; //원거래승인번호(취소)
  1966. var sOrdType = model.getValue("/root/send/data1/inpt_ordtype"); //ordtype
  1967. var sOrdDeptCd = model.getValue("/root/send/data2/iphs_orddeptcd"); //orddeptcd
  1968. var sCrdtNo = model.getValue("/root/send/data2/iphs_cretno"); //cretno
  1969. var sOrdDD = model.getValue("/root/send/data1/inpt_indd"); //orddd
  1970. var iSeqno = 1;
  1971. parm = "0" + "▦" + //멀티건수
  1972. "" + "▦" + //멀티opmi
  1973. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  1974. "" + "▦" + //rcptno
  1975. "" + "▦" + //rcptseqno
  1976. iCardAmt + "▦" + //totalamt
  1977. "" + "▦" + //send
  1978. "/root/main/admi_info/card" + "▦" + //receive
  1979. sPid + "▦" + //pid
  1980. sOrdDD + "▦" + //orddd
  1981. sCrdtNo + "▦" + //cretno
  1982. "" + "▦" + //strRcvVan
  1983. sOrdType + "▦" + //ordtype
  1984. "" + "▦" + //fromdd
  1985. "" + "▦" + //todd
  1986. sOrdDeptCd + "▦" + //orddeptcd
  1987. //단일건 접수 승인일때만 필요
  1988. sCardNo + "▦" + //cardno
  1989. sValidterm + "▦" + //valiterm
  1990. sAllotmm + "▦" + //allotmm
  1991. sKeyInptFlag + "▦" + //keyinptflag
  1992. sSwipeData + "▦" ; //sSwipeData
  1993. setParameter("SPPAO00400_PARM",parm);
  1994. setParameter("SPPAO00400_FLAG", "I"); // I : 승인, D : 취소
  1995. //iviewer 생성 후 카드popup 호출
  1996. var ivrObjt = document.all("ivr_cardpopup");
  1997. if (ivrObjt == null) {
  1998. //body.createChild("xforms:iviewer", "id:ivr_cardpopup; visibility:visible; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw; left:200px; top:200px; width:790px; height:650px");
  1999. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  2000. ivrObjt = document.all("ivr_cardpopup");
  2001. }
  2002. //setParameter("SPPAO00400_PARM",parm);
  2003. //if( flag == 'I' ){
  2004. ivrObjt.window.javascript.fInit();
  2005. var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv();
  2006. //}else{
  2007. // ivrObjt.window.javascript.fInit();
  2008. // var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  2009. //}
  2010. body.removeChild("ivr_cardpopup");
  2011. setParameter("SPPAO00400_FLAG", "");
  2012. if (retMsg != true) {
  2013. return;
  2014. }
  2015. //카드 개수 1 seting
  2016. scardcount = 1;
  2017. }
  2018. for(var icard=1; icard<=scardcount; icard++) {
  2019. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_pid"));
  2020. //영수증번호는 영수증 번호 생성 후 받는다
  2021. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd"));
  2022. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno"));
  2023. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno"));
  2024. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  2025. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_instcd"));
  2026. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptstat"));
  2027. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2028. //카드정보 차후 정리
  2029. 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
  2030. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardcmpycd"));
  2031. //카드번호
  2032. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno"));
  2033. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvflag")); //12:카드승인응답, 22:카드승인취소
  2034. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd")); //승인일자
  2035. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm")); //승인시간
  2036. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno")); //승인번호
  2037. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd")); //VAN코드
  2038. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm")); //할부개월수
  2039. //카드결제금액
  2040. // model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")));
  2041. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt"));
  2042. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm")); //유효기간
  2043. //수납일자
  2044. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2045. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2046. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2047. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2048. if (srcptflag == "B01") {
  2049. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2050. } else {
  2051. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2052. }
  2053. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2054. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2055. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2056. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2057. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2058. }
  2059. }
  2060. /***************************************************************************************************************************************
  2061. var sCardCancel = false;
  2062. var iCardAmt = 0; //card 금액
  2063. var sVanCD =""; //van사 구분
  2064. var sAprvFlag = ""; //승인구분
  2065. var sKeyInptFlag = ""; //입력구분
  2066. var sSwipeData = ""; //swipedata
  2067. var sCardNo = ""; //카드번호
  2068. var sValidterm = ""; //유효기간
  2069. var sAllotmm = ""; //할부기간
  2070. var sAprvDD = ""; //원거래승인일자(취소)
  2071. var sAprvTm = ""; //원거래승인일시(취소)
  2072. var sAprvNo = ""; //원거래승인번호(취소)
  2073. var iSeqno = 1;
  2074. for(var icard=1; icard<=scardcount; icard++){
  2075. model.removenode("/root/tmp");
  2076. //카드 내역이 2건 이상일 경우 카드 popup 에서 생성된 것임.
  2077. if (scardcount >= 2) {
  2078. //수납금액이 - 일경우 취소 된 내역임.
  2079. if (parseInt(model.getValue("/root/main/admi_info/card/card[" + icard + "]/card_cardamt")) < 0 ) {
  2080. sCardCancel = true;
  2081. sVanCD = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd");
  2082. iCardAmt = parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")) * -1;
  2083. sAprvFlag = "21";
  2084. sAprvDD = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd");
  2085. sAprvTm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm");
  2086. sAprvNo = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno");
  2087. } else { //수납승인
  2088. sCardCancel = false;
  2089. iCardAmt = parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt"));
  2090. sVanCD = "";
  2091. sAprvFlag = "11";
  2092. sAprvDD = "";
  2093. sAprvTm = "";
  2094. sAprvNo = "";
  2095. }
  2096. sKeyInptFlag = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_keyinptflag");
  2097. sSwipeData = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_swipedata");
  2098. sCardNo = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno");
  2099. sValidterm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm");
  2100. sAllotmm = model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm");
  2101. } else { //수납화면에서 카드 입력된 내역
  2102. sCardCancel = false;
  2103. sVanCD = "";
  2104. iCardAmt = model.getValue("/root/send/data3/admi_cardamt");
  2105. sAprvFlag = "11";
  2106. sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  2107. sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  2108. sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  2109. sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm");
  2110. sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm");
  2111. sAprvDD = "";
  2112. sAprvTm = "";
  2113. sAprvNo = "";
  2114. }
  2115. //카드승인
  2116. //swipe 데이타 읽어, 입력구분 세팅
  2117. fAppCardVanData(sVanCD //data1 //vangb van사구분
  2118. ,sAprvFlag //data2 //ordergb 거래구분
  2119. ,getCurrentDate() //data3 //mdate 회계일자
  2120. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  2121. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  2122. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  2123. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  2124. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  2125. ,sKeyInptFlag //data9 //entrymode 입력구분
  2126. ,sSwipeData //data10 //track2data 트랙data
  2127. ,sCardNo //data11 //cardnumber 카드번호
  2128. ,sValidterm //data12 //cardperiod 유효기간
  2129. ,sAllotmm //data13 //carddivide 할부개월수
  2130. ,iCardAmt //data14 //netamt 금액
  2131. ,sAprvDD //data15 //oldappdate 원거래승인일자(취소시)
  2132. ,sAprvTm //data16 //oldapptime 원거래승인시간(취소시)
  2133. ,sAprvNo //data17 //oldappno 원거래승인번호(취소시)
  2134. );
  2135. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  2136. messageBox("카드승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  2137. return;
  2138. } else {
  2139. //전자서명은 카드승인 일경우만 처리
  2140. if (sCardCancel == false) {
  2141. //전자서명 처리
  2142. var parm = model.getValue("/root/send/data1/inpt_pid") + "▦" + //PID
  2143. model.getValue("/root/send/data3/admi_cardamt") + "▦" + //수납대상금액
  2144. "12" + "▦" + //승인구분
  2145. model.getValue("/root/tmp/appvanif/approvaldate") + "▦" + //승인일자
  2146. model.getValue("/root/tmp/appvanif/approvaltime") + "▦" + //승인시간
  2147. model.getValue("/root/tmp/appvanif/approvalno") + "▦" +//승인번호
  2148. model.getValue("/root/hidden/session/posinstcd") + "▦" //기관코드
  2149. ;
  2150. setParameter("SPPAO02101_PARM",parm);
  2151. modal("../../../pam/pamcomnweb/xrw/SPPAO02101", "1","400", "400", "SPPAO02101", "", "");
  2152. //전자서명에 실패하더라도, 카드승인을 받았기 때문에, Continue
  2153. //if (getParameter("SPPAO02101_RTN") == "N" || getParameter("SPPAO02101_RTN") == "") return;
  2154. }
  2155. }
  2156. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/send/data1/inpt_pid"));
  2157. //영수증번호는 영수증 번호 생성 후 받는다
  2158. if (sCardCancel == false) {
  2159. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2160. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2161. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2162. } else {
  2163. //취소 일 경우 원 영수증 번호를 가져 간다.
  2164. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd_old"));
  2165. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno_old"));
  2166. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno_old"));
  2167. // model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_seqno"));
  2168. }
  2169. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  2170. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2171. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2172. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2173. //카드정보 차후 정리
  2174. model.makeValue("/root/send/set_card/card[" + icard + "]/card_keyinptflag", sKeyInptFlag); //S:Swipe, K:Key in
  2175. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/tmp/appvanif/bankid"));
  2176. //카드번호
  2177. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", sCardNo);
  2178. if (sCardCancel == false) {
  2179. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", "12"); //12:카드승인응답
  2180. } else {
  2181. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", "22"); //22:카드승인취소
  2182. }
  2183. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  2184. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  2185. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  2186. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  2187. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", sAllotmm ); //할부개월수
  2188. //카드결제금액
  2189. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", iCardAmt );
  2190. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", sValidterm ); //유효기간
  2191. //수납일자
  2192. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2193. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2194. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2195. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2196. if (srcptflag == "B01") {
  2197. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2198. } else {
  2199. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2200. }
  2201. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2202. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2203. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2204. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2205. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2206. //}
  2207. }
  2208. } else {
  2209. for(var icard=1; icard<=scardcount; icard++){
  2210. model.makeValue("/root/send/set_card/card[" + icard + "]/card_pid", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_pid"));
  2211. //영수증번호는 영수증 번호 생성 후 받는다
  2212. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptdd"));
  2213. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptno"));
  2214. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptseqno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptseqno"));
  2215. model.makeValue("/root/send/set_card/card[" + icard + "]/card_seqno", icard);
  2216. model.makeValue("/root/send/set_card/card[" + icard + "]/card_instcd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_instcd"));
  2217. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptstat", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_rcptstat"));
  2218. model.makeValue("/root/send/set_card/card[" + icard + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2219. //카드정보 차후 정리
  2220. 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
  2221. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardcmpycd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardcmpycd"));
  2222. //카드번호
  2223. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardno"));
  2224. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvflag", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvflag")); //12:카드승인응답, 22:카드승인취소
  2225. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvdd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvdd")); //승인일자
  2226. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvtm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvtm")); //승인시간
  2227. model.makeValue("/root/send/set_card/card[" + icard + "]/card_aprvno", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_aprvno")); //승인번호
  2228. model.makeValue("/root/send/set_card/card[" + icard + "]/card_vancd", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_vancd")); //VAN코드
  2229. model.makeValue("/root/send/set_card/card[" + icard + "]/card_allotmm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_allotmm")); //할부개월수
  2230. //카드결제금액
  2231. model.makeValue("/root/send/set_card/card[" + icard + "]/card_cardamt", parseInt(model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_cardamt")));
  2232. model.makeValue("/root/send/set_card/card[" + icard + "]/card_valiterm", model.getValue("/root/main/admi_info/card/card["+ icard +"]/card_valiterm")); //유효기간
  2233. //수납일자
  2234. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2235. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2236. model.makeValue("/root/send/set_card/card[" + icard + "]/card_rcptrid", ""); //수납자
  2237. model.makeValue("/root/send/set_card/card[" + icard + "]/card_innrtretyn", "N"); //내부처리여부
  2238. if (srcptflag == "B01") {
  2239. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "Y"); //선수금여부
  2240. } else {
  2241. model.makeValue("/root/send/set_card/card[" + icard + "]/card_preamtyn", "N"); //선수금여부
  2242. }
  2243. model.makeValue("/root/send/set_card/card[" + icard + "]/card_remfact", ""); //수납내역에 대한 참고사항
  2244. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstrid", "");
  2245. model.makeValue("/root/send/set_card/card[" + icard + "]/card_fstrgstdt", "");
  2246. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtrid", "");
  2247. model.makeValue("/root/send/set_card/card[" + icard + "]/card_lastupdtdt", "");
  2248. }
  2249. }
  2250. }
  2251. ***************************************************************************************************************************************/
  2252. //////////////////////////////////////////////////////////////현금승인 추가start/////////////////////////////////////////////////////////////////////////
  2253. //화면에서 실승인 한 내역이 없으면 승인시도한다. 20110422 cys
  2254. if(getNodesetCount("/root/send/set_cash/cash[cash_innrtretyn='N']") == 0) {
  2255. //현금영수증 내역(통장입금내역도 현금영수증 처리 한다)
  2256. //1-카드, 2-현금영수증, 3-현금
  2257. var icash = parseInt(model.getValue("/root/send/data3/admi_cashamt")) + parseInt(model.getValue("/root/send/data3/admi_onlineamt"));
  2258. if((sCardAndCash == true && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1")
  2259. || (icash >= 1 && model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2")) {
  2260. model.removenode("/root/tmp");
  2261. var sCashNo = ""; //카드번호(승인번호)
  2262. var sCashAllotmm = ""; //소득공제, 지출증빙
  2263. var sCashQualcnfmFlag = ""; //현금승인종류(주민번호, 휴대폰, 카드, 사업장)
  2264. var sCashKeyInptFlag = ""; //keyin
  2265. //카드현금영수증동시 승인(승인번호가 저장되어 있지 않을 경우 무조건 주민번호로 함.)
  2266. if (sCardAndCash == true) {
  2267. 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) {
  2268. sCashNo = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno");
  2269. sCashAllotmm = "00";
  2270. sCashKeyInptFlag = "K";
  2271. if (model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag") != "") {
  2272. sCashQualcnfmFlag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  2273. } else {
  2274. sCashQualcnfmFlag = "1"; //주민번호
  2275. }
  2276. } else {
  2277. sCashNo = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  2278. sCashQualcnfmFlag = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag");
  2279. sCashKeyInptFlag = "K";
  2280. if (sCashQualcnfmFlag == "4") {
  2281. sCashAllotmm = "01"; //지출증빙
  2282. } else {
  2283. sCashAllotmm = "00"; //소득공제
  2284. }
  2285. }
  2286. // 02 미승인
  2287. if (model.getValue("/root/main/admi_info/rcptmthd/cashmthd") == "02") {
  2288. if (model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm") != "" && model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm") != null) {
  2289. sCashNo = model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '163' ]/cdnm")
  2290. sCashQualcnfmFlag = "2"
  2291. sCashKeyInptFlag = "K";
  2292. sCashAllotmm = "00"; //소득공제
  2293. } else {
  2294. messageBox("소비자 미발급시 국세청 현금영수증 번호가 등록되어 있지 않아 현금영수증을 승인 할 수 없습니다. 확인하여 주십시오.[P0022/163]", "I999");
  2295. return;
  2296. }
  2297. }
  2298. } else {
  2299. sCashNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  2300. sCashAllotmm = model.getValue("/root/main/admi_info/rcptmthd/cashmthd");
  2301. 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) {
  2302. if (model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag") != "") {
  2303. sCashQualcnfmFlag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  2304. } else {
  2305. sCashQualcnfmFlag = "1"; //주민번호
  2306. }
  2307. } else {
  2308. sCashQualcnfmFlag = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag");
  2309. }
  2310. // ICPos의 경우 카드정보는 Swipe로 처리(카드리딩, 키입력 모두)
  2311. if (sVanFlag == "KOCES_IC" && sCashQualcnfmFlag == "3") {
  2312. sCashKeyInptFlag = "S";
  2313. } else {
  2314. sCashKeyInptFlag = "K";
  2315. }
  2316. }
  2317. //현금영수증승인
  2318. //swipe 데이타 읽어, 입력구분 세팅
  2319. fAppCardVanData("01" //data1 //vangb van사구분
  2320. ,"41" //data2 //ordergb 거래구분 41:현금영수증승인
  2321. ,getCurrentDate() //data3 //mdate 회계일자
  2322. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  2323. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  2324. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  2325. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  2326. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  2327. ,sCashKeyInptFlag //data9 //entrymode 입력구분
  2328. ,model.getValue("/root/main/admi_info/rcptmthd/swipedata") //data10 //track2data 트랙data
  2329. ,sCashNo //data11 //cardnumber 카드번호
  2330. ,sCashQualcnfmFlag //data12 //cardperiod 유효기간(현금영수증일 경우 자격확인구분)
  2331. ,sCashAllotmm //data13 //carddivide 할부개월수-개인법인구분
  2332. ,parseInt(model.getValue("/root/send/data3/admi_cashamt"))
  2333. + parseInt(model.getValue("/root/send/data3/admi_onlineamt")) //data14 //netamt 금액
  2334. ,"" //data15 //oldappdate 원거래승인일자(취소시)
  2335. ,"" //data16 //oldapptime 원거래승인시간(취소시)
  2336. ,"" //data17 //oldappno 원거래승인번호(취소시)
  2337. ,""
  2338. ,""
  2339. ,""
  2340. ,sVanFlag //data21 //VAN구분
  2341. );
  2342. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  2343. messageBox("현금영수증승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  2344. return;
  2345. }
  2346. // ICPos의 경우 카드정보 역으로 전달해줘야함
  2347. if (sVanFlag == "KOCES_IC" && sCashQualcnfmFlag == "3") {
  2348. model.setValue("/root/main/admi_info/rcptmthd/cardcashno", model.getValue("/root/main/cash2/cash_qualcnfmno"));
  2349. sCashNo = model.getValue("/root/main/cash2/cash_qualcnfmno");
  2350. }
  2351. //copyNodeListType("/root/send/set_cash", "/root/main/admi_info/cash/cash", "replace");
  2352. //현금영수증내역 처리 //차후 현금영수증 두개 이상일 경우 적용 해야 함
  2353. //for(var i=1; i<=getNodesetCount("/root/send/set_cash/cash"); i++) {
  2354. i = 1;
  2355. model.removenode("/root/send/set_cash/cash");
  2356. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_pid", model.getValue("/root/send/data1/inpt_pid"));
  2357. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2358. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2359. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2360. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_seqno", i);
  2361. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2362. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2363. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2364. //키입력구분 K:Kind in, S:Swipe
  2365. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_keyinptflag", sCashKeyInptFlag);
  2366. //개인법인구분 P:개인, C:법인(00, 01) 확인 필요
  2367. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_indinstflag", sCashAllotmm);
  2368. //자격확인구분(주민, 핸드폰, 신용카드)
  2369. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_qualcnfmflag", sCashQualcnfmFlag);
  2370. //자격확인번호
  2371. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_qualcnfmno", sCashNo);
  2372. //승인구분 //42:현금영수증승인응답
  2373. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvflag", model.getValue("/root/tmp/appvanif/ordergb"));
  2374. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvno", model.getValue("/root/tmp/appvanif/approvalno"));//승인번호
  2375. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate"));//승인일자
  2376. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime"));//승인시간
  2377. //승인금액
  2378. 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")));
  2379. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2380. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2381. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_rcptrid", ""); //수납자
  2382. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_innrtretyn", "N"); //내부처리여부
  2383. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_preamtyn", "N"); //선수금여부
  2384. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_remfact", ""); //수납내역에 대한 참고사항
  2385. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_fstrgstrid", "");
  2386. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_fstrgstdt", "");
  2387. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_lastupdtrid", "");
  2388. model.makeValue("/root/send/set_cash/cash[" + i + "]/cash_lastupdtdt", "");
  2389. //}
  2390. }
  2391. }
  2392. //////////////////////////////////////////////////////////////현금승인 추가end/////////////////////////////////////////////////////////////////////////
  2393. //통장입금금액 내역
  2394. var ionln = parseInt(model.getValue("/root/send/data3/admi_onlineamt"));
  2395. if (ionln > 0) {
  2396. model.removenode("/root/send/set_onln/onln")
  2397. copyNodeListType("/root/send/set_onln", "/root/main/admi_info/onln/onln", "replace");
  2398. var j = 1;
  2399. for(var i=1; i<=getNodesetCount("/root/main/admi_info/onln/onln"); i++) {
  2400. //영수증일자가 있을 경우 기존에 입력된 내역이므로 입력시 제외한다.
  2401. if ((model.getValue("/root/main/admi_info/onln/onln[" + i + "]/onln_rcptdd") == "") ||
  2402. (model.getValue("/root/main/admi_info/onln/onln[" + i + "]/onln_rcptdd") == null)) {
  2403. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_pid", model.getValue("/root/send/data1/inpt_pid"));
  2404. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  2405. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  2406. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  2407. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_seqno", j);
  2408. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  2409. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  2410. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2411. //통장입금정보 입력 받음
  2412. //통장입금정보는 통장번호만 사용하기로 함. 차후 통장관리 할 경우 통장입금정보를 받아서 수정해야 함.
  2413. // 2009.10.22 - onln_onlineamt, onln_bankcd, onln_acntno, onln_paydd, onln_paypsnnm 팝업의 값을 그대로 입력
  2414. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_onlineamt", model.getValue("/root/send/data3/admi_onlineamt"));
  2415. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_bankcd", "-");
  2416. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_acntno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_onlnno"));
  2417. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_paydd", getCurrentDate());
  2418. //model.makeValue("/root/send/set_onln/onln[" + j + "]/onln/onln_paypsnnm", "-");
  2419. //model.makeValue("/root/send/set_onln/onln/onln_onlineamt", "");
  2420. //model.makeValue("/root/send/set_onln/onln/onln_bankcd", "");
  2421. //model.makeValue("/root/send/set_onln/onln/onln_acntno", "");
  2422. //model.makeValue("/root/send/set_onln/onln/onln_paydd", getCurrentDate());
  2423. //model.makeValue("/root/send/set_onln/onln/onln_paypsnnm", "");
  2424. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  2425. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  2426. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_innrtretyn", "N");
  2427. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_preamtyn", "N");
  2428. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_rcptrid", ""); //수납자
  2429. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_remfact", ""); //수납내역에 대한 참고사항
  2430. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_fstrgstrid", "");
  2431. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_fstrgstdt", "");
  2432. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_lastupdtrid", "");
  2433. model.makeValue("/root/send/set_onln/onln[" + j + "]/onln_lastupdtdt", "");
  2434. j++;
  2435. }
  2436. }
  2437. }
  2438. //2009-01-16 이동식 추가
  2439. //카드 임의 승인시 이력생성 추가를 위해
  2440. if( model.getValue("/root/init/option/checkcard") == 'Y' ){
  2441. model.makeNode("/root/send/data3/admi_checkcard");
  2442. model.setValue("/root/send/data3/admi_checkcard", "Y");
  2443. }
  2444. //20090701 1.단수처리 고시적용
  2445. if (srcptflag == "B31" && model.getValue("/root/send/data1/inpt_brateflag") == "O"
  2446. && (model.getValue("/root/send/data2/iphs_insukind") == "11" || model.getValue("/root/send/data2/iphs_insukind") == "21" || model.getValue("/root/send/data2/iphs_insukind") == "22")
  2447. && model.getValue("/root/send/data2/iphs_suppkind") != "01") {
  2448. if (parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")) != 0) {
  2449. model.setValue("/root/send/data3/admi_payownbamt", parseInt(model.getValue("/root/send/data3/admi_payownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2450. model.setValue("/root/send/data3/admi_payinsubamt", parseInt(model.getValue("/root/send/data3/admi_payinsubamt")) - parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2451. model.setValue("/root/send/data3/admi_totownbamt", parseInt(model.getValue("/root/send/data3/admi_totownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2452. }
  2453. // 입원요율 단수처리 추가 by 조중래 20160401
  2454. // 입원요율의 경우 원단위절사금액에 대하여 보험자부담으로 처리
  2455. } else if (srcptflag == "B31" && model.getValue("/root/send/data1/inpt_brateflag") == "I"
  2456. && model.getValue("/root/send/data1/inpt_indd") >= '20160401'
  2457. && (model.getValue("/root/send/data2/iphs_insukind") == "11" || model.getValue("/root/send/data2/iphs_insukind") == "21" || model.getValue("/root/send/data2/iphs_insukind") == "22")
  2458. && model.getValue("/root/send/data2/iphs_suppkind") != "01") {
  2459. if (parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")) != 0) {
  2460. model.setValue("/root/send/data3/admi_payownbamt", parseInt(model.getValue("/root/send/data3/admi_payownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2461. model.setValue("/root/send/data3/admi_payinsubamt", parseInt(model.getValue("/root/send/data3/admi_payinsubamt")) - parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2462. model.setValue("/root/send/data3/admi_totownbamt", parseInt(model.getValue("/root/send/data3/admi_totownbamt")) + parseInt(model.getValue("/root/send/data3/admi_payinsurestamt")));
  2463. }
  2464. }
  2465. /*
  2466. // 개인정보이용동의서가 출력되지 않았을 경우 동의서 자동출력 by 조중래 20120328
  2467. if (model.getValue("/root/hidden/inpt_info/inptpatinfo/inpt_scanyn") == "X") {
  2468. // 개인정보이용동의서는 재원상태(indschacptstat = 'A')일때만 적용시키도록 함
  2469. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == 'A') {
  2470. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  2471. var formcd;
  2472. // 구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  2473. for (var i = 1; i <= nodeCnt; i++) {
  2474. if (3 == model.getValue("/root/init/prncd/hardcd[" + i + "]/cdseqno")) {
  2475. formcd = model.getValue("/root/init/prncd/hardcd[" + i + "]/hardcd");
  2476. break;
  2477. }
  2478. }
  2479. fPerPrintOCR (formcd,
  2480. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"),
  2481. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"),
  2482. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno"),
  2483. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  2484. }
  2485. }
  2486. */
  2487. // 가퇴원 정산 시 정산내용 SMS전송 추가
  2488. // 정산SMS 전송은 가퇴원 정산시에만 처리 by 조중래 20120625
  2489. if (model.getValue("/root/init/option/receiptsms") == "Y") {
  2490. var cardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  2491. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B31"
  2492. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") == "T"
  2493. && cardAmt != 0) {
  2494. // 사망환자의 경우 가퇴원 정산SMS는 발송되지 않음
  2495. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "-"
  2496. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "") {
  2497. messageBox("사망환자의 경우 가퇴원 정산 SMS는 전송하지 않습니다.", "I000");
  2498. } else {
  2499. var ivrObjt = document.all("ivr_receiptsms");
  2500. if (ivrObjt == null) {
  2501. body.createChild("xforms:iviewer", "id:ivr_receiptsms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2502. ivrObjt = document.all("ivr_receiptsms");
  2503. }
  2504. var submitType = "";
  2505. if (parseInt(cardAmt) > 0) {
  2506. submitType = "추가승인";
  2507. } else {
  2508. submitType = "취소정산";
  2509. }
  2510. if (cardAmt.length > 3) {
  2511. var reg = /(^[+-]?\d+)(\d{3})/;
  2512. cardAmt += '';
  2513. while (reg.test(cardAmt)) {
  2514. cardAmt = cardAmt.replace(reg, '$1' + ',' + '$2');
  2515. }
  2516. }
  2517. // 가퇴원정산 sms.pam.0005
  2518. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/smsmsg/msgfrmtid"),
  2519. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),
  2520. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel"),
  2521. model.getValue("/root/init/receiptsms/smsmsg/replytelno"),
  2522. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"), // param1
  2523. cardAmt, // param2
  2524. submitType // param3
  2525. );
  2526. }
  2527. }
  2528. }
  2529. // EZPass환자 CHEMO 수납금액을 기등록된 신용카드로 처리할 경우 SMS 전송기능 추가 (칠곡요청)
  2530. // 퇴원수납시에만 전송 by 조중래 20150904
  2531. if (model.getValue("/root/init/option/ezpasssms") == "Y"
  2532. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_roomcd") == "CHEMO"
  2533. && model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B31") {
  2534. var cardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  2535. // 사망환자의 경우 가퇴원 정산SMS는 발송되지 않음
  2536. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "-"
  2537. && model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt") != "") {
  2538. messageBox("사망환자의 경우 이지패스 수납 SMS는 전송하지 않습니다.", "I000");
  2539. } else {
  2540. var ivrObjt = document.all("ivr_ezpasssms");
  2541. if (ivrObjt == null) {
  2542. body.createChild("xforms:iviewer", "id:ivr_ezpasssms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2543. ivrObjt = document.all("ivr_ezpasssms");
  2544. }
  2545. var strMsg = "수납";
  2546. if (cardAmt.length > 3) {
  2547. var reg = /(^[+-]?\d+)(\d{3})/;
  2548. cardAmt += '';
  2549. while (reg.test(cardAmt)) {
  2550. cardAmt = cardAmt.replace(reg, '$1' + ',' + '$2');
  2551. }
  2552. }
  2553. // 이지패스정산 sms.pam.0007
  2554. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/ezpasssmsmsg/msgfrmtid"),
  2555. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm"),
  2556. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel"),
  2557. model.getValue("/root/init/receiptsms/ezpasssmsmsg/replytelno"),
  2558. cardAmt,
  2559. strMsg
  2560. );
  2561. }
  2562. }
  2563. // [칠곡] 항암미수 수납시 SMS 전송
  2564. if (getUserInfo("dutplceinstcd") == "032" &&
  2565. model.getValue("/root/init/option/chemosms") == "Y" &&
  2566. model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") == "A71") {
  2567. var ivrObjt = document.all("ivr_chemosms");
  2568. if (ivrObjt == null) {
  2569. body.createChild("xforms:iviewer", "id:ivr_chemosms; src:../../../com/shortmsgweb/xrw/SPZMS00100_단문메시지전송.xrw");
  2570. ivrObjt = document.all("ivr_chemosms");
  2571. }
  2572. var admi_uncoamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt");
  2573. if (admi_uncoamt.length > 3) {
  2574. var reg = /(^[+-]?\d+)(\d{3})/;
  2575. admi_uncoamt += '';
  2576. while (reg.test(admi_uncoamt)) {
  2577. admi_uncoamt = admi_uncoamt.replace(reg, '$1' + ',' + '$2');
  2578. }
  2579. }
  2580. ivrObjt.window.javascript.fSendSmsId(model.getValue("/root/init/receiptsms/chemosms/msgfrmtid")
  2581. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  2582. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel")
  2583. , model.getValue("/root/init/receiptsms/chemosms/replytelno")
  2584. , model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  2585. , admi_uncoamt);
  2586. body.removeChild("ivr_chemosms");
  2587. }
  2588. // 퇴원처리
  2589. if (submit("TXPAI00101") == true) {
  2590. //퇴원수납영수증 출력(선택해제한 경우에는 스킵)
  2591. if (model.getValue("/root/init/option/receipt") == "Y") {
  2592. //중간금
  2593. if (srcptflag == "B01" || srcptflag == "B41" ) {
  2594. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  2595. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  2596. model.makeValue("/root/temp/receipt/ioflag", "I");
  2597. } else if (srcptflag == "B11") { //입원중간수납영수증
  2598. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  2599. model.makeValue("/root/temp/receipt/ioflag", "I");
  2600. } else if (srcptflag == "B31") { //가퇴원, 퇴원영수증
  2601. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  2602. if ( drgflag == "Y") {
  2603. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증" );
  2604. } else {
  2605. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  2606. }
  2607. //model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  2608. model.makeValue("/root/temp/receipt/ioflag", "I");
  2609. } else if (srcptflag == "B21") {
  2610. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  2611. model.makeValue("/root/temp/receipt/ioflag", "I");
  2612. } else if (srcptflag == "B51") {
  2613. //model.makeValue("/root/temp/receipt/ordtype", "응급영수증" );
  2614. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  2615. model.makeValue("/root/temp/receipt/ioflag", "I");
  2616. } else if (srcptflag == "C01") {
  2617. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  2618. model.makeValue("/root/temp/receipt/ioflag", "I");
  2619. }
  2620. var srow = grd_inpatinfo.row
  2621. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  2622. if (srow <= 0 ) {
  2623. srow = 1;
  2624. }
  2625. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  2626. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  2627. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  2628. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  2629. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  2630. model.makeValue("/root/temp/receipt/rcptsite", "S"); //등록수납발행처구분 S:수납, J:등록
  2631. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  2632. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  2633. } else {
  2634. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  2635. }
  2636. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  2637. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  2638. //영수증 팝업화면 호출
  2639. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  2640. modal("SPPAO01900");
  2641. if (srcptflag == "B31") {
  2642. model.removenode("/root/send/data5");
  2643. model.makeValue("/root/send/data5/pid", model.getValue("/root/temp/receipt/pid"));
  2644. model.makeValue("/root/send/data5/rcptdd", model.getValue("/root/temp/receipt/rcptdd"));
  2645. model.makeValue("/root/send/data5/rcptno", model.getValue("/root/temp/receipt/rcptno"));
  2646. model.makeValue("/root/send/data5/rcptseqno", model.getValue("/root/temp/receipt/rcptseqno"));
  2647. model.makeValue("/root/send/data5/cretno", model.getValue("/root/temp/receipt/cretno"));
  2648. model.makeValue("/root/send/data5/indd", model.getValue("/root/temp/receipt/indd"));
  2649. model.makeValue("/root/send/data5/instcd", model.getValue("/root/temp/receipt/instcd"));
  2650. model.makeValue("/root/send/data5/mskind", model.getValue("/root/temp/receipt/mskind"));
  2651. model.makeValue("/root/send/data5/insukind", model.getValue("/root/temp/receipt/insukind"));
  2652. model.makeValue("/root/send/data5/suppkind", model.getValue("/root/temp/receipt/suppkind"));
  2653. model.makeValue("/root/send/data5/fromdd", model.getValue("/root/temp/receipt/fromdd"));
  2654. model.makeValue("/root/send/data5/todd", model.getValue("/root/temp/receipt/todd"));
  2655. model.makeValue("/root/send/data5/ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  2656. model.makeValue("/root/send/data5/wardcd", model.getValue("/root/send/data1/inpt_wardcd"));
  2657. model.makeValue("/root/send/data5/roomcd", model.getValue("/root/send/data1/inpt_roomcd"));
  2658. model.makeValue("/root/send/data5/orddeptcd", model.getValue("/root/temp/receipt/orddeptcd"));
  2659. model.makeValue("/root/send/data5/medispclid", model.getValue("/root/temp/receipt/medispclid"));
  2660. model.makeValue("/root/send/data5/atdoctid", model.getValue("/root/temp/receipt/atdoctid"));
  2661. model.makeValue("/root/send/data5/drgno", model.getValue("/root/temp/receipt/drgno"));
  2662. model.makeValue("/root/send/data5/rcptexecdd", model.getValue("/root/temp/receipt/rcptexecdd"));
  2663. model.makeValue("/root/send/data5/rcpttm", model.getValue("/root/temp/receipt/rcpttm"));
  2664. submit("TXPAI00107");
  2665. }
  2666. }
  2667. // 진료비 세부내역서 자동출력 by 조중래 20150528
  2668. if (srcptflag == "B31" && model.getValue("/root/init/option/specbillyn") == "Y" ) {
  2669. // DRG환자는 세부내역서 심사팀으로 안내하도록 팝업처리
  2670. if (drgflag == "Y") {
  2671. messageBox("DRG환자의 경우 세부내역서는 심사팀에서 출력하십시오.", "I000");
  2672. // 일반환자
  2673. } else {
  2674. // 진료비세부산정내역서 통합으로 기존 / 신규서식 분기처리 by 조중래 20180223
  2675. // 기존서식
  2676. if (model.getValue("/root/init/PAM/P0032list/P0032[cdid = '370']/cdnm") != "Y") {
  2677. // 의료급여 보험유형 통합처리
  2678. // 세부내역서 옵션 : 수가별합산 의 경우 불필요 by 조중래 20160330
  2679. var sInsuKind = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind");
  2680. // if (sInsuKind == "21" || sInsuKind == "22") {
  2681. // sInsuKind = "20";
  2682. // }
  2683. model.removenode("/root/rex/rex_detl/rex_detl_inpt");
  2684. model.makeNode ("/root/rex/rex_detl/rex_detl_inpt");
  2685. model.removenode("/root/rex/rex_detl/rex_detl_iscl");
  2686. model.makeNode ("/root/rex/rex_detl/rex_detl_iscl");
  2687. model.removenode("/root/rex/rex_detl/isclsum");
  2688. model.makeNode ("/root/rex/rex_detl/isclsum");
  2689. model.makeValue("/root/send/dataprint1/prt_pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_pid"));
  2690. model.makeValue("/root/send/dataprint1/prt_indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indd"));
  2691. model.makeValue("/root/send/dataprint1/prt_cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  2692. model.makeValue("/root/send/dataprint1/prt_insukind", sInsuKind);
  2693. model.makeValue("/root/send/dataprint1/prt_fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  2694. model.makeValue("/root/send/dataprint1/prt_todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2695. model.makeValue("/root/send/dataprint1/prt_todd_iphs", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2696. model.makeValue("/root/send/dataprint1/prt_prntflag", "1"); // 1:세부내역서, 2:수익전체, 3:수익별
  2697. model.makeValue("/root/send/dataprint1/prt_useflag", "1"); // 1:보험회사, 2:기타
  2698. model.makeValue("/root/send/dataprint1/srchflag", "O"); // O:진료, R:수납
  2699. model.makeValue("/root/send/dataprint1/prt_payflag", "-','0','2','1','5"); // 0:급여, 2:일반, 1:본인100%, 5:선택진료
  2700. model.makeValue("/root/send/dataprint1/prt_specflag", "1"); // 진료비상세내역 화면에서 1로 고정
  2701. model.makeValue("/root/send/dataprint1/prt_incls", ""); // 수익구분
  2702. model.makeValue("/root/send/dataprint1/prt_calcsum", "Y"); // 수가별합산
  2703. model.makeValue("/root/send/dataprint1/prt_drgyn", "N"); // DRG여부
  2704. // ISCL_SUM용 파라미터
  2705. model.makeValue("/root/send/dataprint1/todd_iphs", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd"));
  2706. model.makeValue("/root/send/dataprint1/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  2707. model.makeValue("/root/send/dataprint1/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  2708. model.makeValue("/root/send/dataprint1/mig", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig"));
  2709. model.makeValue("/root/send/dataprint1/ownbmaxgradeflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownbmaxgradeflag"));
  2710. model.makeValue("/root/send/dataprint1/ownoveryn", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownoveryn"));
  2711. model.makeValue("/root/send/dataprint1/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  2712. model.makeValue("/root/send/dataprint1/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  2713. model.makeValue("/root/send/dataprint1/log_ipaddr", app.clientIp); // 보안로깅용
  2714. model.makeValue("/root/send/dataprint1/log_logdeptcd", getUserInfo("dutplcecd")); // 보안로깅용
  2715. model.makeValue("/root/send/dataprint1/log_scrncd", "SMPAI00100"); // 보안로깅용
  2716. // 진료비 세부내역(ISCL), ISCL_SUM 조회
  2717. submit("TRPAI00111");
  2718. // inpt_xxxx 설정 처리
  2719. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_hoslog", getLogoImageURL()); // 로고
  2720. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag")); // 외래/입원구분
  2721. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_proccorpcd", model.getValue("/root/hidden/init/proccd/cd")); // 요양기관코드
  2722. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")); // 환자번호
  2723. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_hngnm", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")); // 환자성명
  2724. var itemNode = instance1.selectSingleNode("/root/hidden/init/insukind[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "']"); // 보험유형
  2725. if (itemNode == null) {
  2726. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insukind", "");
  2727. } else {
  2728. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insukind", itemNode.nm.nodeValue);
  2729. }
  2730. var itemNode = instance1.selectSingleNode("/root/hidden/init/suppkind[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_suppkind") + "']"); // 보조유형
  2731. if (itemNode == null) {
  2732. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppkind", "");
  2733. } else {
  2734. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppkind", itemNode.nm.nodeValue);
  2735. }
  2736. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_rrgstno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "-*******"); // 주민번호
  2737. 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")); // 나이/성별
  2738. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddeptcdall[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "']"); // 진료과
  2739. if (itemNode == null) {
  2740. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_orddeptcd", "");
  2741. } else {
  2742. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_orddeptcd", itemNode.nm.nodeValue);
  2743. }
  2744. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']"); // 진료의사
  2745. if (itemNode == null) {
  2746. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_medispclid", "");
  2747. } else {
  2748. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_medispclid", itemNode.nm.nodeValue);
  2749. }
  2750. var itemNode = instance1.selectSingleNode("/root/hidden/init/orddrid[cd='" + model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid") + "']"); // 면허번호
  2751. if (itemNode == null) {
  2752. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_licnsno", "");
  2753. } else {
  2754. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_licnsno", itemNode.licnsno.nodeValue);
  2755. }
  2756. // 유형별 종료일자 설정
  2757. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  2758. if (iphs_todd == "99991231") {
  2759. iphs_todd = model.getValue("/root/send/data1/inpt_dschdd");
  2760. }
  2761. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_roomcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_roomcd")); // 병실
  2762. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd")); // 계정감면
  2763. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd")); // 입원일자
  2764. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_dschdd", model.getValue("/root/send/data1/inpt_dschdd")); // 퇴원일자
  2765. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_insucd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insucd")); // 조합기호
  2766. 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); // 재원일수(양입법)
  2767. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd")); // 시작일자
  2768. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_todd", iphs_todd); // 종료일자
  2769. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_chgroomhist", model.getValue("/root/rex/rex_detl/isclsum/isclsum_chgroomhist")); // 전실내역
  2770. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_totalamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_totalamt"));
  2771. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_payamt"));
  2772. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payinsubamt", parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_payinsubamt"))
  2773. + parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_nopyinsubamt"))
  2774. + parseInt(model.getValue("/root/rex/rex_detl/isclsum/isclsum_specinsubamt")));
  2775. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_payownamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_payownamt"));
  2776. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_allownownbamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_allownownbamt"));
  2777. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_nopyownbamt_org", model.getValue("/root/rex/rex_detl/isclsum/isclsum_nopyownbamt_org"));
  2778. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_specamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_specamt"));
  2779. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_discamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_discamt"));
  2780. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_bloddiscamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_bloddiscamt"));
  2781. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_ownoveramt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_ownoveramt"));
  2782. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_suppamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_suppamt"));
  2783. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_ownbamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_ownbamt"));
  2784. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_taxamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_taxamt"));
  2785. model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_prercptamt", model.getValue("/root/rex/rex_detl/isclsum/isclsum_prercptamt"));
  2786. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_chgdepthist", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2787. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_wardcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2788. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_nopyamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2789. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_cashamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2790. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_cardamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2791. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_limitdiffamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2792. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_drgnopyamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2793. // model.makeValue("/root/rex/rex_detl/rex_detl_inpt/inpt_drgallownbamt", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  2794. model.refresh();
  2795. // 진료비 세부내역서 출력
  2796. exeReportPreview("RPPAI00207", "XMLSTR", "", "", "true", "", "", "", "", "true", "", "", "", "", "", model.getValue("/root/init/option/specbillcnt"));
  2797. // 신규서식
  2798. } else {
  2799. // 헤더
  2800. var sValues = "";
  2801. sValues += "ordtype▦";
  2802. sValues += "pid▦";
  2803. sValues += "orddd▦";
  2804. sValues += "cretno▦";
  2805. sValues += "fromdd▦";
  2806. sValues += "todd▦";
  2807. sValues += "calcfromdd▦";
  2808. sValues += "calctodd▩";
  2809. // 데이터
  2810. sValues += model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦";
  2811. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_pid") + "▦";
  2812. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indd") + "▦";
  2813. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno") + "▦";
  2814. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") + "▦";
  2815. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") + "▦";
  2816. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd") + "▦";
  2817. sValues += model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") + "▩";
  2818. setParameter("SPPAC00200_HNGNM", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")); // 환자성명
  2819. setParameter("SPPAC00200_VALUES", sValues); // 수진/수납이력
  2820. setParameter("SPPAC00200_PRNTCNT", model.getValue("/root/init/option/specbillcnt")); // 출력부수
  2821. modal("SPPAC00200", "1", "300", "300"); // 진료비세부산정내역관리화면 호출
  2822. }
  2823. }
  2824. }
  2825. // 퇴원 후 외래검사 미예약건 팝업처리
  2826. if ((srcptflag == "B31" || srcptflag == "B21")
  2827. && getUserInfo("dutplceinstcd") == "031"
  2828. && model.getValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag") == "D"
  2829. && model.getValue("/root/temp/receipt/excuflag") == "Y") {
  2830. messageBox("외래 미예약 통합예약검사가 존재합니다.\r\n일과중 퇴원시 : 1층 창구 10, 11창구에서 예약\r\n일과후 퇴원시 : 053-200-6023 전화로 검사예약 ", "I000");
  2831. }
  2832. //가퇴원에서 정상퇴원으로 처리시 보관금(- 금액 발생)이 발생할 경우 보관금 창을 띄운다
  2833. var srow = grd_inpatinfo.row
  2834. var sindschstat = model.getValue("/root/send/data2/iphs_indschacptstat");
  2835. if (sindschstat == "T" && parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) < 0 && srcptflag == "B31") {
  2836. if (messageBox("보관금을 등록하겠습니까?", "Q999","") == 6) {
  2837. model.makeValue("/root/main/inpt_info/inptpatinfo/keepamt", (parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")) * -1));
  2838. modal("../../../pam/inordamtmngtweb/xrw/SMPAI02300", "1","", "", "SMPAI02300", "/root/main/inpt_info/inptpatinfo", "/root/send/patinfo");
  2839. }
  2840. }
  2841. fRtnRcpt("2");//수납하면 인스턴스가 지워지므로 초기화 전에 한다.
  2842. //퇴원수납이 아닌 유형의 수납처리시 초기화 하지 않음.
  2843. //if (sdschrcptflag == "R" || model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") == "S" ) {
  2844. // var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  2845. // fInitialize("all");
  2846. // model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  2847. // fInPatInfoRef("1");
  2848. //} else {
  2849. //수납 후 환자 재조회 요청(20080908)
  2850. // 2012.01.17 - 수납 후 재조회 기능 제거 by 조중래
  2851. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  2852. fInitialize("all");
  2853. // 2009.04.22 - 수납취소 후 재조회 기능 제거
  2854. // 2009.05.18 - 수납취소 후 재조회 기능 복원
  2855. // 2012.01.17 - 수납 후 재조회 기능 제거 by 조중래
  2856. model.makeValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  2857. model.refresh();
  2858. //fInPatInfoRef("1");
  2859. //}
  2860. }
  2861. }
  2862. //수납취소
  2863. function fRcptCnclProcess() {
  2864. // 수납자 마감여부 체크하여 처리
  2865. if (isMagmAprv()) {
  2866. return false; // 마감결제 완료되어있으므로 더이상 진행하지 않음
  2867. }
  2868. var srowcount = getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo");
  2869. var srow = grd_inpatinfo.row
  2870. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  2871. if (srow <= 0 ) {
  2872. srow = 1;
  2873. }
  2874. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == "" || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") == null) {
  2875. messageBox("수납취소할 입원내역이 없습니다.","E999","");
  2876. return;
  2877. }
  2878. 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) {
  2879. messageBox("수납취소할 재원정보가 없습니다.","E999","");
  2880. return;
  2881. }
  2882. var srcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag")
  2883. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  2884. if (srcptflag != "C01") {
  2885. messageBox("마이그레이션 데이터는 수납취소 할 수 없습니다.","I999","");
  2886. return;
  2887. }
  2888. }
  2889. if ((srcptflag) == "" || (srcptflag) == null) {
  2890. messageBox("수납계정이 없습니다. 수납계정을","C001","");
  2891. model.setFocus("ipt_rcptcd");
  2892. return;
  2893. }
  2894. if ((srcptflag != "B03") && (srcptflag != "B13") && (srcptflag != "B23") && (srcptflag != "B33") && (srcptflag != "B43") && (srcptflag != "B53")) {
  2895. messageBox("입력된 수납계정으로는 수납취소를 할 수 없습니다.", "E999","");
  2896. return;
  2897. }
  2898. var srcptnochk = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno");
  2899. if (srcptnochk == null || srcptnochk == "" || srcptnochk == " " || srcptnochk == "-") {
  2900. messageBox("수납취소할 내역을 [청구수납]에서 더블클릭 하십시오.", "E999", "");
  2901. return;
  2902. }
  2903. //자료수집 체크
  2904. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  2905. var bLastmdlclamyn = false;
  2906. if (srcptflag == "B33" && (slastmdlclamdd == "" || slastmdlclamdd == "-" || slastmdlclamdd == "00000000")) {
  2907. } else {
  2908. if (srcptflag == "B33" && slastmdlclamdd >= model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")) {
  2909. if (messageBox("보험 자료수집이 완료된 환자 입니다.(할인정보 변경외에는 수납취소 하지 마십시오) 수납취소를 하시겠습니까?", "Q999","") == 7) {
  2910. return;
  2911. }
  2912. /* 2011/01/14 cys 김상진 대리요청했다가 다시 원복
  2913. messageBox("보험 자료수집이 완료된 환자입니다. 자료수집이 삭제되어야 취소가능합니다. 심사팀에 전화하여 취소하십시오!","E999");
  2914. return;
  2915. */
  2916. bLastmdlclamyn = true;
  2917. }
  2918. }
  2919. if (srcptflag == "B03" || srcptflag == "B53") {
  2920. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt/rcptflag") != "") {
  2921. var iRcptRow1 = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  2922. for(var iRcptRow=1; iRcptRow<=iRcptRow1; iRcptRow++){
  2923. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptstat") == "Y") {
  2924. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ iRcptRow +"]/rcptflag") == "E70") {
  2925. messageBox("퇴원청구(E70)계정이 생성되어 있습니다. 해당 계정으로 수납처리(취소) 할 수", "I004");
  2926. fInitialize("inpatinfo");
  2927. fDschamtVisible(false);
  2928. fCalcInfo("2");
  2929. //fOrdAmtInfo(); //진료비내역
  2930. //fRcptInfo("1");
  2931. //진료비내역,청구수납 내역
  2932. fRcpt_AllInfo("Y","Y","1");
  2933. return;
  2934. }
  2935. }
  2936. }
  2937. }
  2938. }
  2939. /*
  2940. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  2941. if ((srcptflag == "B31" || srcptflag == "B21") && (srow != 1) && (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ (srow - 1) +"]/iphs_rcptyn") == "Y")) {
  2942. messageBox("이전 유형이 수납되어 있지 않습니다. 현재 유형을 수납", "E001", "");
  2943. return;
  2944. }
  2945. }
  2946. */
  2947. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind") != "S") {
  2948. if ((srcptflag == "B33") || (srcptflag == "B22")) {
  2949. var iphs_todd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  2950. //alert(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_mskind = 'M' and iphs_rcptyn = 'Y' and iphs_todd > " + iphs_todd + "]/iphs_rcptyn"));
  2951. if(getNodesetCount("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[iphs_mskind = 'M' and iphs_rcptyn = 'Y' and iphs_todd > " + iphs_todd + "]/iphs_rcptyn") >0){
  2952. messageBox("이후 재원 유형중 수납취소 처리 되지 않은 내역이 있습니다.\n현재 유형을 수납취소", "E001", "");
  2953. return;
  2954. }
  2955. /*
  2956. if (srow != 1) {
  2957. var i = srow - 1;
  2958. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "Y") {
  2959. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "M") {
  2960. messageBox("이후 재원 유형중 수납취소 처리 되지 않은 내역이 있습니다.\n현재 유형을 수납취소", "E001", "");
  2961. return;
  2962. }
  2963. }
  2964. }
  2965. */
  2966. }
  2967. } else {
  2968. //부유형이 존재할 경우 주유형 수납취소 후 부유형을 취소해야 함.
  2969. for (i = 1; i <= srowcount; i++) {
  2970. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mskind") == "M" &&
  2971. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_rcptyn") == "Y" &&
  2972. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_mig") != "Y") {
  2973. messageBox("부유형 수납취소전에 주유형 수납을 취소 하셔야 합니다.", "E999");
  2974. return;
  2975. }
  2976. }
  2977. }
  2978. if (srcptflag == "B33") {
  2979. var iBloodCount = getNodesetCount("/root/main/admi_info/admietc/grdbloodspec");
  2980. if (iBloodCount > 0) {
  2981. var iDiscCnt = 0;
  2982. for (i = 1; i <= iBloodCount; i++) {
  2983. if (model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptflag") == "B31") {
  2984. iDiscCnt = iDiscCnt + parseInt(model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/disccnt"));
  2985. }
  2986. }
  2987. if (iDiscCnt > 0) {
  2988. var sDiscCnt = "(" + iDiscCnt + " 매)";
  2989. messageBox("퇴원수납반환(B33)시 수혈대체액이 반환처리 됩니다. 헌혈증매수를 확인하십시오." + sDiscCnt, "I999");
  2990. }
  2991. }
  2992. }
  2993. if (srcptflag == "B43") {
  2994. var iBloodCount = getNodesetCount("/root/main/admi_info/admietc/grdbloodspec");
  2995. if (iBloodCount > 0) {
  2996. var iDiscCnt = 0;
  2997. for (i = 1; i <= iBloodCount; i++) {
  2998. if (model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptflag") == "B41") {
  2999. //B41이 두개 이상 발생할 수 있음.
  3000. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptdd") == model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptdd") &&
  3001. model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno") == model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/rcptno")) {
  3002. iDiscCnt = iDiscCnt + parseInt(model.getValue("/root/main/admi_info/admietc/grdbloodspec["+ i +"]/disccnt"));
  3003. }
  3004. }
  3005. }
  3006. if (iDiscCnt > 0) {
  3007. var sDiscCnt = "(" + iDiscCnt + " 매)";
  3008. messageBox("퇴원후추가수납반환(B43)시 수혈대체액이 반환처리 됩니다. 헌혈증매수를 확인하십시오." + sDiscCnt, "I999");
  3009. }
  3010. }
  3011. }
  3012. var sdschrcptflag = model.getValue("/root/main/admi_info/ordamt/admispec/admi_dschrcptflag");
  3013. // var srateflag = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag");
  3014. // var sOrdType = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  3015. var sDschJudgPrcsStat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschjudgprcsstat");
  3016. var bjudgprcsyn = false;
  3017. var bRcptCnclYN = false;
  3018. var bHeallifeamtclamamt = false;
  3019. if (srcptflag == "B33" || srcptflag == "B23") {
  3020. if (sdschrcptflag != "R") {
  3021. if (srcptflag == "B33") {
  3022. if (sDschJudgPrcsStat != "A"
  3023. //&& bLastmdlclamyn == false
  3024. ) {
  3025. //수납취소시 보험심사내역 삭제 여부
  3026. if (messageBox("퇴원수납취소시 보험심사내역을 미심사로 변경 하시겠습니까?", "Q999","") == 7) {
  3027. bjudgprcsyn = false;
  3028. } else {
  3029. bjudgprcsyn = true;
  3030. }
  3031. }
  3032. if (messageBox("퇴원수납취소시 퇴원수납금액의 수납을 취소 하시겠습니까?\n[ 예 ] 퇴원수납금액 반환(재원상태)\n[아니오] 퇴원당일 경우 중간금전환(재원상태), 퇴원일이 과거일 경우 가퇴원금전환(가퇴원상태)", "Q999","") == 7) {
  3033. bRcptCnclYN = false;
  3034. } else {
  3035. bRcptCnclYN = true;
  3036. }
  3037. var iheallifeamtclamamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt");
  3038. if (iheallifeamtclamamt != "0") {
  3039. messageBox("건강생활유지비(" + iheallifeamtclamamt + ")가 수납된 환자입니다. 수납내역은 반환되며, 수납취소 후 의료급여승인을 취소하십시오.", "I999");
  3040. bHeallifeamtclamamt = true;
  3041. }
  3042. } else {
  3043. if (sDschJudgPrcsStat != "A") {
  3044. //수납취소시 보험심사내역 삭제 여부
  3045. if (messageBox("가퇴원수납취소시 보험심사내역을 미심사로 변경 하시겠습니까?", "Q999","") == 7) {
  3046. bjudgprcsyn = false;
  3047. } else {
  3048. bjudgprcsyn = true;
  3049. }
  3050. }
  3051. if (messageBox("가퇴원수납취소시 가퇴원수납금액의 수납을 취소 하시겠습니까?\n[ 예 ] 퇴원수납금액 반환(재원상태)\n[아니오] 중간금전환(재원상태)", "Q999","") == 7) {
  3052. bRcptCnclYN = false;
  3053. } else {
  3054. bRcptCnclYN = true;
  3055. }
  3056. }
  3057. }
  3058. }
  3059. var bUncoCnclYN = false;
  3060. if (srcptflag == "B33") {
  3061. //퇴원수납 취소시 미수입금 금액이 있을 경우 메세지 처리로 미수 -> 중간금으로 변경한다.
  3062. var iUncoCount = getNodesetCount("/root/main/admi_info/admi/grdclamrcpt");
  3063. for (i = 1; i <= iUncoCount; i++) {
  3064. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ i +"]/rcptflag") == "C01" && model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ i +"]/rcptstat") == "Y") {
  3065. messageBox("미수입금액이 존재합니다. 미수입금액은 모두 입원선수금(B01)으로 전환됩니다.", "I999")
  3066. bUncoCnclYN = true;
  3067. break;
  3068. }
  3069. }
  3070. }
  3071. //중간금 수납취소시 card, cash, onln으로 수납되었는지 확인 후 승인취소 메세지와 함께 취소 처리 한다.
  3072. if (srcptflag == "B03" || srcptflag == "B53" || bRcptCnclYN == true) {
  3073. var srcptdd = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptdd");
  3074. var srcptno = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptno");
  3075. var srcptseqno = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptseqno");
  3076. var sdd = "";
  3077. var sno = "";
  3078. var sseqno = "";
  3079. var j = 0;
  3080. var scardcancel = false;
  3081. var scashcancel = false;
  3082. // for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3083. // sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3084. // sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3085. // sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3086. // if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3087. // if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3088. // j = j + 1
  3089. //
  3090. // }
  3091. // }
  3092. // }
  3093. //
  3094. // if (j != 0) {
  3095. // if (messageBox("카드수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 승인취소가 됩니다.", "Q003","") == 7) {
  3096. // return;
  3097. // }
  3098. // scardcancel = true;
  3099. // }
  3100. var selectedRow = grd_rcptamt.row;
  3101. if ( parseInt( model.getValue("/root/main/admi_info/admi/grdclamrcpt["+ selectedRow +"]/cardamt")) > 0) {
  3102. if (messageBox("카드수납 금액이 있습니다. [신용카드 자동취소는 되지 않습니다. 직접 승인취소하세요!]", "Q003","") == 7) {
  3103. return;
  3104. }
  3105. scardcancel = false;
  3106. }
  3107. j = 0;
  3108. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/cash"); i++) {
  3109. sdd = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptdd");
  3110. sno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptno");
  3111. sseqno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptseqno");
  3112. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3113. j = j + 1
  3114. }
  3115. }
  3116. if (j != 0) {
  3117. if (messageBox("현금영수증수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 승인취소가 됩니다.", "Q003","") == 7) {
  3118. return;
  3119. }
  3120. scashcancel = true;
  3121. }
  3122. j = 0;
  3123. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/onln"); i++) {
  3124. sdd = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptdd");
  3125. sno = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptno");
  3126. sseqno = model.getValue("/root/hidden/admi_info/ordamt/onln[" + i + "]/onln_rcptseqno");
  3127. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3128. j = j + 1
  3129. }
  3130. }
  3131. //강남 온라인 사용하지 않음.(하지만 처리 로직 필요)
  3132. if (j != 0) {
  3133. if (messageBox("온라인입금수납(" + j + " 건) 된 내역입니다. 수납취소와 함께 온라인입금 취소가 됩니다.", "Q003","") == 7) {
  3134. return;
  3135. }
  3136. }
  3137. }
  3138. //수납취소***********************
  3139. if (messageBox("수납취소를 처리하시겠습니까?", "Q999","") == 7) {
  3140. return;
  3141. }
  3142. // 퇴원취소(B330 사유 등록
  3143. if (srcptflag == "B33") {
  3144. modal("SMPAI00101", "1","300", "300", "SMPAI00101", "", "", "sysmenu:hidden;");
  3145. }
  3146. model.resetInstanceNode("/root/send/data1");
  3147. model.resetInstanceNode("/root/send/data2");
  3148. model.resetInstanceNode("/root/send/data3");
  3149. model.copyNode("/root/send/data1", "/root/main/inpt_info/inptpatinfo");
  3150. //퇴원수납시 보험심사 내역 변경 처리
  3151. if (bjudgprcsyn == true) {
  3152. model.makeValue("/root/send/data1/inpt_judgprcsyn", "Y");
  3153. } else {
  3154. model.makeValue("/root/send/data1/inpt_judgprcsyn", "N");
  3155. }
  3156. //수납금취소 여부
  3157. if (bRcptCnclYN == true) {
  3158. model.makeValue("/root/send/data1/inpt_rcptcnclyn", "Y");
  3159. } else {
  3160. model.makeValue("/root/send/data1/inpt_rcptcnclyn", "N");
  3161. }
  3162. //미수입금 전환여부
  3163. if (bUncoCnclYN == true) {
  3164. model.makeValue("/root/send/data1/inpt_uncocnclyn", "Y");
  3165. } else {
  3166. model.makeValue("/root/send/data1/inpt_uncocnclyn", "N");
  3167. }
  3168. model.copyNode("/root/send/data2", "/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]");
  3169. model.copyNode("/root/send/data3", "/root/main/admi_info/ordamt/admispec");
  3170. //model.setValue("/root/send/data3/admi_appdd", getCurrentDate());
  3171. model.setValue("/root/send/data3/admi_rcptexecdd", getCurrentDate());
  3172. model.setValue("/root/send/data3/admi_rcpttm", getCurrentTime());
  3173. model.setValue("/root/send/data3/admi_dschrcptflag", sdschrcptflag);
  3174. //현재 환자 상태 조회
  3175. /*
  3176. if ((srcptflag == "B23" || srcptflag == "B33") && (sdschrcptflag == "D")) {
  3177. submit("TRPAI00129");
  3178. if (model.getValue("/root/temp2/ipatchk/indschacptstat") == "A") {
  3179. messageBox("재원 환자입니다. 환자를 재조회 하여 환자 상태를 확인하십시오.", "E999");
  3180. return;
  3181. }
  3182. if (srcptflag == "B33" && model.getValue("/root/temp2/ipatchk/indschacptstat") != "D") {
  3183. messageBox("퇴원환자가 아닙니다. 환자를 재조회 하여 수납내역을 확인하십시오.", "E999");
  3184. return;
  3185. }
  3186. model.removenode("/root/temp2");
  3187. model.makeNode("/root/temp2");
  3188. }
  3189. */
  3190. if (scardcancel == true) {
  3191. model.removenode("/root/send/set_card/card");
  3192. ///--------------------------------------------------------------------------------------------------------------------------카드 취소 로직 변경
  3193. // var iCardAmt = parseInt(model.getValue("/root/send/data3/admi_cardamt")); //card 금액
  3194. // var sPid = model.getValue("/root/send/data1/inpt_pid"); //환자번호
  3195. // var sVanCD =""; //van사 구분
  3196. // var sAprvFlag = ""; //승인구분
  3197. // var sKeyInptFlag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag"); //입력구분
  3198. // var sSwipeData = model.getValue("/root/main/admi_info/rcptmthd/swipedata"); //swipedata
  3199. // var sCardNo = model.getValue("/root/main/admi_info/rcptmthd/cardcashno"); //카드번호
  3200. // var sValidterm = model.getValue("/root/main/admi_info/rcptmthd/validterm"); //유효기간
  3201. // var sAllotmm = model.getValue("/root/main/admi_info/rcptmthd/allotmm"); //할부기간
  3202. // var sAprvDD = ""; //원거래승인일자(취소)
  3203. // var sAprvTm = ""; //원거래승인일시(취소)
  3204. // var sAprvNo = ""; //원거래승인번호(취소)
  3205. // var sOrdType = model.getValue("/root/send/data1/inpt_ordtype"); //ordtype
  3206. // var sOrdDeptCd = model.getValue("/root/send/data2/iphs_orddeptcd"); //orddeptcd
  3207. // var sCrdtNo = model.getValue("/root/send/data2/iphs_cretno"); //cretno
  3208. // var sOrdDD = model.getValue("/root/send/data1/inpt_indd"); //orddd
  3209. // var iSeqno = 1;
  3210. model.removenode("/root/hidden/cncl_card"); //카드승인취소
  3211. model.makeNode("/root/hidden/cncl_card");
  3212. //model.removenode("/root/hidden/cncl_cash/cash"); //현금영수증승인취소
  3213. //model.makeNode("/root/hidden/cncl_cash/cash");
  3214. var iCardCount = 0;
  3215. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3216. sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3217. sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3218. sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3219. if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3220. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3221. iCardCount = parseInt(iCardCount) + 1;
  3222. model.makeNode("/root/hidden/cncl_card/card[" + iCardCount + "]");
  3223. copyNodeType("/root/hidden/cncl_card/card[" + iCardCount + "]", "/root/hidden/admi_info/ordamt/card[" + i + "]", "after");
  3224. }
  3225. }
  3226. }
  3227. //카드취소는 취소 node -> 취소 -> 취소내역 node 처리한다.
  3228. parm = "0" + "▦" + //멀티건수
  3229. "" + "▦" + //멀티opmi
  3230. "" + "▦" + //rcptdd 변경 혹은 취소인 경우 필요
  3231. "" + "▦" + //rcptno
  3232. "" + "▦" + //rcptseqno
  3233. "0" + "▦" + //totalamt
  3234. "/root/hidden/cncl_card" + "▦" + //send
  3235. "/root/send/set_card/card" + "▦" + //receive
  3236. model.getValue("/root/send/data1/inpt_pid") + "▦" + //pid
  3237. model.getValue("/root/send/data1/inpt_indd") + "▦" + //orddd
  3238. "" + "▦" + //cretno
  3239. "" + "▦" + //strRcvVan
  3240. model.getValue("/root/hidden/cncl_card/card/card_ordtype") + "▦" + //ordtype
  3241. "" + "▦" + //fromdd
  3242. "" + "▦" + //todd
  3243. model.getValue("/root/send/data2/iphs_orddeptcd") + "▦" + //orddeptcd
  3244. //단일건 접수 승인일때만 필요
  3245. "" + "▦" + //cardno
  3246. "" + "▦" + //valiterm
  3247. "" + "▦" + //allotmm
  3248. "" + "▦" + //keyinptflag
  3249. "" + "▦" ; //sSwipeData
  3250. setParameter("SPPAO00400_PARM",parm);
  3251. setParameter("SPPAO00400_FLAG", "D"); // I : 승인, D : 취소
  3252. //iviewer 생성 후 카드popup 호출
  3253. var ivrObjt = document.all("ivr_cardpopup");
  3254. if (ivrObjt == null) {
  3255. //body.createChild("xforms:iviewer", "id:ivr_cardpopup; visibility:visible; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw; left:200px; top:200px; width:790px; height:650px");
  3256. body.createChild("xforms:iviewer", "id:ivr_cardpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00400_신용카드승인.xrw");
  3257. ivrObjt = document.all("ivr_cardpopup");
  3258. }
  3259. //setParameter("SPPAO00400_PARM",parm);
  3260. //if( flag == 'I' ){
  3261. //ivrObjt.window.javascript.fInit();
  3262. //var retMsg = ivrObjt.window.javascript.fAutoGetCardAprv();
  3263. //}else{
  3264. ivrObjt.window.javascript.fInit();
  3265. var retMsg = ivrObjt.window.javascript.fAutoCnclCardAprv();
  3266. //}
  3267. body.removeChild("ivr_cardpopup");
  3268. setParameter("SPPAO00400_FLAG", "");
  3269. if (retMsg != true) {
  3270. model.removenode("/root/hidden/cncl_card"); //카드승인취소
  3271. model.makeNode("/root/hidden/cncl_card");
  3272. return;
  3273. }
  3274. for(var i=1; i<=getNodesetCount("/root/send/set_card/card"); i++) {
  3275. model.setValue("/root/send/set_card/card[" + i + "]/card_aprvflag", "22");
  3276. model.setValue("/root/send/set_card/card[" + i + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3277. model.setValue("/root/send/set_card/card[" + i + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3278. model.setValue("/root/send/set_card/card[" + i + "]/card_innrtretyn", "N"); //내부처리여부
  3279. model.setValue("/root/send/set_card/card[" + i + "]/card_preamtyn", "N"); //선수금여부
  3280. model.setValue("/root/send/set_card/card[" + i + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3281. model.setValue("/root/send/set_card/card[" + i + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3282. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  3283. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  3284. //model.setValue("/root/send/set_card/card[" + i + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  3285. //model.setValue("/root/send/set_card/card[" + i + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  3286. }
  3287. //*/
  3288. /********************************************************************************************************************************************
  3289. j = 0
  3290. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/card"); i++) {
  3291. sdd = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptdd");
  3292. sno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptno");
  3293. sseqno = model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_rcptseqno");
  3294. if (sdd != null && sdd != "" && sdd != " " && sdd != "-") {
  3295. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3296. //카드승인
  3297. //swipe 데이타 읽어, 입력구분 세팅
  3298. fAppCardVanData(model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_vancd") //data1 //vangb van사구분
  3299. ,"21" //data2 //ordergb 거래구분
  3300. ,getCurrentDate() //data3 //mdate 회계일자
  3301. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  3302. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  3303. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  3304. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  3305. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  3306. ,"K" //data9 //entrymode 입력구분
  3307. ,"" //data10 //track2data 트랙data
  3308. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardno") //data11 //cardnumber 카드번호
  3309. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_valiterm") //data12 //cardperiod 유효기간
  3310. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_allotmm") //data13 //carddivide 할부개월수
  3311. ,parseInt(model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardamt")) //data14 //netamt 금액
  3312. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvdd") //data15 //oldappdate 원거래승인일자(취소시)
  3313. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvtm") //data16 //oldapptime 원거래승인시간(취소시)
  3314. ,model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_aprvno") //data17 //oldappno 원거래승인번호(취소시)
  3315. );
  3316. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  3317. messageBox("카드승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  3318. return;
  3319. }
  3320. j = j + 1
  3321. model.makeValue("/root/send/set_card/card[" + j + "]/card_pid", model.getValue("/root/send/data1/inpt_pid"));
  3322. //영수증번호는 영수증 번호 생성 후 받는다
  3323. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  3324. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  3325. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  3326. model.makeValue("/root/send/set_card/card[" + j + "]/card_seqno", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_seqno"));
  3327. model.makeValue("/root/send/set_card/card[" + j + "]/card_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  3328. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3329. model.makeValue("/root/send/set_card/card[" + j + "]/card_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3330. //카드정보 차후 정리
  3331. 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
  3332. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardcmpycd", model.getValue("/root/tmp/appvanif/bankid"));
  3333. //카드번호
  3334. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardno", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_cardno"));
  3335. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvflag", "22"); //12:카드승인응답
  3336. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate")); //승인일자
  3337. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime")); //승인시간
  3338. model.makeValue("/root/send/set_card/card[" + j + "]/card_aprvno", model.getValue("/root/tmp/appvanif/approvalno")); //승인번호
  3339. model.makeValue("/root/send/set_card/card[" + j + "]/card_vancd", model.getValue("/root/tmp/appvanif/vangb")); //VAN코드
  3340. model.makeValue("/root/send/set_card/card[" + j + "]/card_allotmm", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_allotmm")); //할부개월수
  3341. //카드결제금액
  3342. model.makeValue("/root/send/set_card/card[" + j + "]/card_cardamt", model.getValue("/root/send/data3/admi_cardamt"));
  3343. model.makeValue("/root/send/set_card/card[" + j + "]/card_valiterm", model.getValue("/root/hidden/admi_info/ordamt/card[" + i + "]/card_validterm")); //유효기간
  3344. //수납일자
  3345. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3346. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3347. model.makeValue("/root/send/set_card/card[" + j + "]/card_rcptrid", ""); //수납자
  3348. model.makeValue("/root/send/set_card/card[" + j + "]/card_innrtretyn", "N"); //내부처리여부
  3349. model.makeValue("/root/send/set_card/card[" + j + "]/card_preamtyn", "N"); //선수금여부
  3350. model.makeValue("/root/send/set_card/card[" + j + "]/card_remfact", ""); //수납내역에 대한 참고사항
  3351. model.makeValue("/root/send/set_card/card[" + j + "]/card_fstrgstrid", "");
  3352. model.makeValue("/root/send/set_card/card[" + j + "]/card_fstrgstdt", "");
  3353. model.makeValue("/root/send/set_card/card[" + j + "]/card_lastupdtrid", "");
  3354. model.makeValue("/root/send/set_card/card[" + j + "]/card_lastupdtdt", "");
  3355. }
  3356. }
  3357. }
  3358. //********************************************************************************************************************************************/
  3359. } //카드취소 End..
  3360. //현금영수증 취소.
  3361. if (scashcancel == true) {
  3362. model.removenode("/root/send/set_cash/cash");
  3363. //model.removenode("/root/hidden/cncl_cash/cash"); //현금영수증승인취소
  3364. //model.makeNode("/root/hidden/cncl_cash/cash");
  3365. var sVanFlag = model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm");
  3366. var iCash = 0;
  3367. for(var i=1; i<=getNodesetCount("/root/hidden/admi_info/ordamt/cash"); i++) {
  3368. sdd = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptdd");
  3369. sno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptno");
  3370. sseqno = model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_rcptseqno");
  3371. if (srcptdd == sdd && srcptno == sno && srcptseqno == sseqno) {
  3372. iCash = iCash + 1;
  3373. var sCashKeyInptFlag = 'K'
  3374. // ICPos의 경우 카드정보는 Swipe로 처리(카드리딩, 키입력 모두)
  3375. if (sVanFlag == "KOCES_IC" && model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmflag") == "3") {
  3376. sCashKeyInptFlag = "S";
  3377. }
  3378. fAppCardVanData("01"//model.getValue("/root/hidden/h_cvan/cvan/cvan_vancd") //data1 //vangb van사구분
  3379. ,"51" //data2 //ordergb 거래구분
  3380. ,getCurrentDate() //data3 //mdate 회계일자
  3381. ,model.getValue("/root/send/data1/inpt_pid") //data4 //pano 등록번호
  3382. ,model.getValue("/root/send/data1/inpt_ordtype") //data5 //iogb 입외구분
  3383. ,model.getValue("/root/send/data2/iphs_orddeptcd") //data6 //deptcode 진료과코드
  3384. ,model.getValue("/root/send/data1/inpt_indd") //data7 //diagdate 진료일자
  3385. ,model.getValue("/root/hidden/session/userid") //data8 //clientid 수납자
  3386. ,sCashKeyInptFlag //data9 //entrymode 입력구분
  3387. ,"" //data10 //track2data 트랙data
  3388. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmno") //data11 //cardnumber 카드번호
  3389. ,"" //data12 //cardperiod 유효기간
  3390. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_indinstflag") //data13 //carddivide 할부개월수
  3391. ,parseInt(model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_cashamt")) //data14 //netamt 금액
  3392. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvdd") //data15 //oldappdate 원거래승인일자(취소시)
  3393. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvtm") //data16 //oldapptime 원거래승인시간(취소시)
  3394. ,model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_aprvno") //data17 //oldappno 원거래승인번호(취소시)
  3395. ,"" //data18
  3396. ,"" //data19
  3397. ,"" //data20
  3398. ,sVanFlag //data21 //VAN사 구분
  3399. );
  3400. if (model.getValue("/root/tmp/appvanif/replystat") != "0000" ) {
  3401. //현금영수증은 취소실패가 되더래도 진행한다.
  3402. messageBox("현금영수증취소승인실패 => "+ model.getValue("/root/tmp/appvanif/cardname") ,"E999","");
  3403. //return;
  3404. }
  3405. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_pid", model.getValue("/root/send/data1/inpt_pid"));
  3406. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptdd", model.getValue("/root/send/data3/admi_rcptdd"));
  3407. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptno", model.getValue("/root/send/data3/admi_rcptno"));
  3408. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptseqno", model.getValue("/root/send/data3/admi_rcptseqno"));
  3409. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_seqno", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_seqno"));
  3410. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_instcd", model.getValue("/root/send/data1/inpt_instcd"));
  3411. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptstat", model.getValue("/root/send/data3/admi_rcptstat"));
  3412. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_ordtype", model.getValue("/root/send/data1/inpt_ordtype"));
  3413. //키입력구분 K:Kind in, S:Swipe
  3414. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_keyinptflag", 'K');
  3415. //개인법인구분 P:개인, C:법인(00, 01) 확인 필요
  3416. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_indinstflag", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_indinstflag"));
  3417. //자격확인구분(주민, 핸드폰, 신용카드)
  3418. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_qualcnfmflag", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmflag"));
  3419. //자격확인번호
  3420. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_qualcnfmno", model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_qualcnfmno"));
  3421. //승인구분 //42:현금영수증승인응답, 52:현금영수증취소응답
  3422. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvflag", model.getValue("/root/tmp/appvanif/ordergb"));
  3423. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvno", model.getValue("/root/tmp/appvanif/approvalno"));//승인번호
  3424. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvdd", model.getValue("/root/tmp/appvanif/approvaldate"));//승인일자
  3425. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_aprvtm", model.getValue("/root/tmp/appvanif/approvaltime"));//승인시간
  3426. //승인금액
  3427. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_cashamt", parseInt(model.getValue("/root/hidden/admi_info/ordamt/cash[" + i + "]/cash_cashamt")));
  3428. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptexecdd", model.getValue("/root/send/data3/admi_rcptexecdd"));
  3429. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcpttm", model.getValue("/root/send/data3/admi_rcpttm"));
  3430. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_rcptrid", ""); //수납자
  3431. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_innrtretyn", "N"); //내부처리여부
  3432. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_preamtyn", "N"); //선수금여부
  3433. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_remfact", ""); //수납내역에 대한 참고사항
  3434. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_fstrgstrid", "");
  3435. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_fstrgstdt", "");
  3436. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_lastupdtrid", "");
  3437. model.makeValue("/root/send/set_cash/cash[" + iCash + "]/cash_lastupdtdt", "");
  3438. }//취소 현금영수증 end..
  3439. }//현금영수증 개수 for end.
  3440. }//현금영수증취소 end..
  3441. if (submit("TXPAI00102") == true) {
  3442. if (bHeallifeamtclamamt == true) {
  3443. //보험증번호 조회(보험자격조회)
  3444. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") +
  3445. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민번호
  3446. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //이름
  3447. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  3448. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //진료생성번호(당일 외래요율만 적용하니 iphs것을 사용하지 않음)
  3449. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" +//ordtype
  3450. "" + "▦"+ //퇴원일자
  3451. model.getValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt")+ "▦"+//본인일부부담금
  3452. model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsubamt")+ "▦"+//기관부담금
  3453. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦"+ //등록번호
  3454. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦"; //진료과
  3455. setParameter("SPPMC03900_PARM",parm);
  3456. setParameter("SPPMC03900_RTN","");
  3457. modal("SPPMC03900", "1","0", "0", "SPPMC03900", "", "");
  3458. }
  3459. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  3460. fInitialize("all");
  3461. // 2009.04.22 - 수납취소 후 재조회 기능 제거
  3462. // 2009.05.18 - 수납취소 후 재조회 기능 복원
  3463. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  3464. fInPatInfoRef("1");
  3465. }
  3466. }
  3467. //중간금수납(B01)
  3468. function fMdlAmtRcpt(flag) {
  3469. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totamt", 0);
  3470. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payamt", 0);
  3471. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payinsubamt", 0);
  3472. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt10", 0);
  3473. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt20", 0);
  3474. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownblimamt", 0);
  3475. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totnopyamt", 0);
  3476. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specordamt", 0);
  3477. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt", 0);
  3478. model.setValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund", 0);
  3479. model.setValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt", 0);
  3480. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discamt", 0);
  3481. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", "");
  3482. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", 0);
  3483. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "");
  3484. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", 0);
  3485. model.setValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt", 0);
  3486. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardamt", 0);
  3487. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_cashamt", 0);
  3488. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt", 0);
  3489. if (flag != "B41") {
  3490. model.setValue("/root/main/admi_info/ordamt/admispec/admi_restamt", 0);
  3491. model.setValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt", 0);
  3492. }
  3493. model.setValue("/root/main/admi_info/ordamt/admispec/admi_outmoveyn", "N");
  3494. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allownbamt", 0);
  3495. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyamt", 0);
  3496. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payownbamt", 0);
  3497. model.setValue("/root/main/admi_info/ordamt/admispec/admi_precashamt", 0);
  3498. model.setValue("/root/main/admi_info/ordamt/admispec/admi_precardamt", 0);
  3499. model.setValue("/root/main/admi_info/ordamt/admispec/admi_preonlineamt", 0);
  3500. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocalcflag", "1");
  3501. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptdd", "-");
  3502. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptno", 0);
  3503. model.setValue("/root/main/admi_info/ordamt/admispec/admi_orgrcptseqno", 0);
  3504. model.setValue("/root/main/admi_info/ordamt/admispec/admi_clamlastdd", "-");
  3505. model.setValue("/root/main/admi_info/ordamt/admispec/admi_calcrcptrem", "-");
  3506. model.setValue("/root/main/admi_info/ordamt/admispec/admi_cardprercptamt", 0);
  3507. model.setValue("/root/main/admi_info/ordamt/admispec/admi_totnopyinsubamt", 0);
  3508. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyinsubamt", 0);
  3509. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allowninsubamt", 0);
  3510. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specinsubamt", 0);
  3511. model.setValue("/root/main/admi_info/ordamt/admispec/admi_nopyownbamt", 0);
  3512. model.setValue("/root/main/admi_info/ordamt/admispec/admi_allownownbamt", 0);
  3513. model.setValue("/root/main/admi_info/ordamt/admispec/admi_specownbamt", 0);
  3514. model.setValue("/root/main/admi_info/ordamt/admispec/admi_suppamt", 0);
  3515. model.setValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt", 0);
  3516. model.setValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt", 0);
  3517. //2011-07-01 미용 부가세
  3518. model.setValue("/root/main/admi_info/ordamt/admispec/admi_taxamt", 0);
  3519. if (flag == "R" || flag == "F") {
  3520. //미수, 감면, 수혈 node 처리
  3521. model.removenode("/root/main/admi_info/unco/unco");
  3522. model.makenode("/root/main/admi_info/unco/unco");
  3523. model.removenode("/root/main/admi_info/dcgm/dcgm");
  3524. model.makenode("/root/main/admi_info/dcgm/dcgm");
  3525. model.removenode("/root/send/set_bldc/bldc");
  3526. model.makenode("/root/send/set_bldc/bldc");
  3527. }
  3528. if (flag != "F") {
  3529. model.setValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt", 0);
  3530. }
  3531. model.refresh();
  3532. }
  3533. //임의감면, 미수 입력시 금액 재계산
  3534. function fReCalcAmt(){
  3535. var sUncoamt = 0; //미수금
  3536. var sReduAmt = 0; //감면액
  3537. var sBloddiscamt = 0; //수혈대체액
  3538. var sTotownbamt = 0; //본인부담총액
  3539. var sHandcapfund = 0; //장애인기금
  3540. var sProcsubtamt = 0; //대불액
  3541. var sDiscamt = 0; //계정감면액
  3542. var sPrercptamt = 0; //중간금
  3543. var sSuppamt = 0; //희귀난치지원금
  3544. var sHealamt = 0; //건유비
  3545. var spregdmndamt = 0; //산전진료비
  3546. //var sPayinsuRestamt = 0; //급여본인부담 절사금 공단부담금 처리
  3547. //2011-07-01 미용성형 부가세
  3548. var sTaxAmt = 0;
  3549. var srow = grd_inpatinfo.row
  3550. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  3551. if(srow <= 0){
  3552. srow = 1;
  3553. }
  3554. //수납이 되어 있을 경우 아래 세종류만 수납처리 할 수 있음.
  3555. sUncoamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt")); //미수금
  3556. sReduAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt")); //감면액
  3557. sBloddiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt")); //수혈대체액
  3558. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") != "Y") {
  3559. sTotownbamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt")); //본인부담총액
  3560. sHandcapfund = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund")); //장애인기금
  3561. sProcsubtamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt")); //대불액
  3562. sDiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt")); //계정감면액
  3563. sPrercptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt")); //중간금
  3564. sSuppamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_suppamt")); //희귀난치지원금
  3565. sHealamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt")); //건유비
  3566. spregdmndamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")); //산전진료비
  3567. sTaxAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_taxamt")); //산전진료비
  3568. //sPayinsuRestamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt")); //급여절사금액
  3569. }
  3570. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") == "T") {
  3571. sTotownbamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_totownbamt")); //본인부담총액
  3572. sHandcapfund = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_handcapfund")); //장애인기금
  3573. sProcsubtamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_procsubtamt")); //대불액
  3574. sDiscamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_discamt")); //계정감면액
  3575. sPrercptamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_prercptamt")); //중간금
  3576. sSuppamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_suppamt")); //희귀난치지원금
  3577. sHealamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_heallifeamtclamamt")); //건유비
  3578. spregdmndamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_pregdmndamt")); //산전진료비
  3579. sTaxAmt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_taxamt")); //산전진료비
  3580. //sPayinsuRestamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_payinsurestamt")); //급여절사금액
  3581. }
  3582. var sTotrcptpayamt = sTotownbamt - sPrercptamt - sDiscamt - sReduAmt
  3583. - sBloddiscamt - sSuppamt - sHandcapfund - sProcsubtamt - sHealamt - spregdmndamt - sUncoamt + sTaxAmt;
  3584. // 병원절사금액 재설정(원단위 절사)
  3585. model.setValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt", (Math.floor(sTotrcptpayamt / 10) * 10));
  3586. var sRcptPayAmt = sTotrcptpayamt - parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  3587. model.setValue("/root/main/admi_info/ordamt/admispec/admi_restamt", sRcptPayAmt);
  3588. //가퇴원금 변경 후 다시 가퇴원금 계산을 하기 위해 납부금액을 세팅함.
  3589. model.setValue("/root/temp1/admi_orgrcptpayamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt"));
  3590. rdo_rcptmthd.value = "3"; //1-카드, 2-현금영수증, 3-현금
  3591. fRcptMthd("3"); //1-카드, 2-현금영수증, 3-현금
  3592. model.refresh();
  3593. }
  3594. //영수증 재발행 수정시 fRcptIss2 같이 수정
  3595. function fRcptIss() {
  3596. //영수증 재발행(원본)
  3597. model.removenode("/root/temp/receipt");
  3598. //선택된 row 읽는다.
  3599. var i = grd_rcptamt.row;
  3600. var srow = grd_inpatinfo.row
  3601. if (srow <= 0 ) {
  3602. srow = 1;
  3603. }
  3604. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  3605. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") != "C01") {
  3606. messageBox("마이그레이션 데이터는 영수증 재발행을 할 수 없습니다.","I999","");
  3607. return;
  3608. }
  3609. }
  3610. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3611. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  3612. // 영수증 재발행 가능여부 검증
  3613. if (srcptflag == "B31") {
  3614. if (!fGetISCLNoRcptKey("P")) {
  3615. return;
  3616. }
  3617. }
  3618. if (srcptflag == "" || srcptflag == null || srcptflag == "E50" || srcptflag == "E70" ) {
  3619. return;
  3620. }
  3621. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3622. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3623. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3624. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3625. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3626. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3627. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3628. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3629. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  3630. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3631. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3632. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3633. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3634. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3635. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3636. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3637. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  3638. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  3639. model.makeValue("/root/temp/receipt/ioflag", "I");
  3640. if (srcptflag == "B01" ||srcptflag == "B03" ||srcptflag == "B41" ||srcptflag == "B43") {
  3641. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3642. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E") {
  3643. // model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3644. //} else {
  3645. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3646. //}
  3647. } else if (srcptflag == "B11") { //입원중간수납영수증
  3648. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  3649. } else if (srcptflag == "B31" || srcptflag == "B33") { //가퇴원, 퇴원영수증
  3650. // 과거 B31에 대한 영수증 재출력 제어용
  3651. // 과거의 영수증인 경우에만 isclhistyn = 'Y'를 설정
  3652. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptstat") != 'Y') {
  3653. model.makeValue("/root/temp/receipt/isclhistyn", "Y");
  3654. }
  3655. if ( drgflag == "Y") {
  3656. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증");
  3657. } else {
  3658. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3659. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  3660. }
  3661. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3662. } else if (srcptflag == "B21" || srcptflag == "B23") {
  3663. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  3664. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3665. } else if (srcptflag == "B51" || srcptflag == "B53") { //일반영수증으로 출력
  3666. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3667. } else if (srcptflag == "C01") {
  3668. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  3669. }
  3670. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3671. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3672. } else {
  3673. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3674. }
  3675. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3676. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  3677. //영수증 팝업화면 호출
  3678. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  3679. modal("SPPAO01900");
  3680. //modal("SPPAO01900" );
  3681. //출력 후 노드 삭제
  3682. model.removenode("/root/temp/receipt");
  3683. }
  3684. function fRcptIss2() {
  3685. //영수증 재발행(사본)
  3686. model.removenode("/root/temp/receipt");
  3687. //선택된 row 읽는다.
  3688. var i = grd_rcptamt.row;
  3689. var srow = grd_inpatinfo.row
  3690. if (srow <= 0 ) {
  3691. srow = 1;
  3692. }
  3693. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mig") == "Y") {
  3694. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") != "C01") {
  3695. messageBox("마이그레이션 데이터는 영수증 재발행을 할 수 없습니다.","I999","");
  3696. return;
  3697. }
  3698. }
  3699. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3700. var drgflag = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_drgyn");
  3701. // 영수증 재발행 가능여부 검증
  3702. if (srcptflag == "B31") {
  3703. if (!fGetISCLNoRcptKey("P")) {
  3704. return;
  3705. }
  3706. }
  3707. if (srcptflag == "" || srcptflag == null || srcptflag == "E50" || srcptflag == "E70" ) {
  3708. return;
  3709. }
  3710. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3711. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3712. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3713. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3714. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3715. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3716. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3717. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3718. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  3719. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3720. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3721. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3722. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3723. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3724. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3725. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3726. model.makeValue("/root/temp/receipt/brateflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_brateflag"));
  3727. model.makeValue("/root/temp/receipt/ordreqformflag", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordreqformflag"));
  3728. model.makeValue("/root/temp/receipt/ioflag", "I");
  3729. if (srcptflag == "B01" || srcptflag == "B03" ||srcptflag == "B41" ||srcptflag == "B43") {
  3730. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3731. //if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") == "E") {
  3732. // model.makeValue("/root/temp/receipt/ordtype", "응급영수증" );
  3733. //} else {
  3734. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3735. //}
  3736. } else if (srcptflag == "B11") { //입원중간수납영수증
  3737. model.makeValue("/root/temp/receipt/ordtype", "입원중간수납영수증" );
  3738. } else if (srcptflag == "B31" || srcptflag == "B33") { //가퇴원, 퇴원영수증
  3739. //ordtype : 퇴원영수증/입원중간금영수증/퇴원계산서/중간계산서
  3740. if ( drgflag == "Y") {
  3741. model.makeValue("/root/temp/receipt/ordtype", "DRG퇴원영수증");
  3742. } else {
  3743. model.makeValue("/root/temp/receipt/ordtype", "퇴원영수증" );
  3744. }
  3745. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3746. } else if (srcptflag == "B21" || srcptflag == "B23") {
  3747. model.makeValue("/root/temp/receipt/ordtype", "가퇴원영수증" );
  3748. //model.makeValue("/root/temp/receipt/ioflag", "I");
  3749. } else if (srcptflag == "B51" || srcptflag == "B53") {
  3750. model.makeValue("/root/temp/receipt/ordtype", "입원중간금영수증" );
  3751. } else if (srcptflag == "C01") {
  3752. model.makeValue("/root/temp/receipt/ordtype", "미수영수증");
  3753. }
  3754. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3755. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3756. } else {
  3757. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3758. }
  3759. model.makeValue("/root/temp/receipt/reprintYN", "Y" ); //재발행여부
  3760. model.makeValue("/root/temp/receipt/ordtype_org", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype")); // 진료구분
  3761. //영수증 팝업화면 호출
  3762. //modal("../../../pam/pamcomnweb/xrw/SPPAO01900_영수증출력", "1", "100", "100" ,"SPPAO01900_영수증출력", "", "");
  3763. modal("SPPAO01900");
  3764. //modal("SPPAO01900" );
  3765. //출력 후 노드 삭제
  3766. model.removenode("/root/temp/receipt");
  3767. }
  3768. //청구수납 미수내역 확인
  3769. function fRcptUnco() {
  3770. //선택된 row 읽는다.
  3771. var i = grd_rcptamt.row;
  3772. var srow = grd_inpatinfo.row
  3773. if (srow <= 0 ) {
  3774. srow = 1;
  3775. }
  3776. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3777. if (srcptflag != "B33" && srcptflag != "B31" ) {
  3778. return;
  3779. }
  3780. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/uncoamt") == "0") {
  3781. return;
  3782. }
  3783. model.resetInstanceNode("/root/send/data10");
  3784. model.makeValue("/root/send/data10/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3785. model.makeValue("/root/send/data10/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3786. model.makeValue("/root/send/data10/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3787. model.makeValue("/root/send/data10/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3788. model.makeValue("/root/send/data10/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3789. model.makeValue("/root/send/data10/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3790. model.makeValue("/root/send/data10/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3791. if (submit("TRPAI00134") == true) {
  3792. if (model.getValue("/root/temp_node/frcptuncocd/rcptuncocd/pid") != "") {
  3793. var sUncoCd = "";
  3794. var sUncoNm = "";
  3795. var sUncoAmt = "";
  3796. var sUncMsg = "";
  3797. var sCount = getNodesetCount("/root/temp_node/frcptuncocd/rcptuncocd");
  3798. for(var i=1; i<=sCount; i++) {
  3799. sUncoCd = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/uncocd");
  3800. sUncoNm = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/unconm");
  3801. sUncoAmt = model.getValue("/root/temp_node/frcptuncocd/rcptuncocd[" + i + "]/uncoamt");
  3802. sUncMsg = sUncMsg + sUncoCd + " - " + sUncoNm + " [ " + sUncoAmt + " 원]\n";
  3803. }
  3804. messageBox(sUncMsg,"I999","");
  3805. model.resetInstanceNode("/root/temp_node/frcptuncocd")
  3806. }
  3807. }
  3808. model.resetInstanceNode("/root/send/data10");
  3809. }
  3810. //계산서 재발행
  3811. function fCalcIss() {
  3812. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == "") {
  3813. return;
  3814. }
  3815. //영수증 재발행
  3816. model.removenode("/root/temp/receipt");
  3817. //선택된 row 읽는다.
  3818. var i = grd_rcptamt.row;
  3819. var srow = grd_inpatinfo.row
  3820. if (srow <= 0 ) {
  3821. srow = 1;
  3822. }
  3823. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") =="E70" || model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag") =="E50") {
  3824. } else {
  3825. messageBox("출력할 계산서를 선택하여 주십시오..", "I999");
  3826. return;
  3827. }
  3828. if (i == 0) {
  3829. messageBox("출력할 계산서를 선택하여 주십시오.", "I999");
  3830. return;
  3831. }
  3832. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptstat") =="D") {
  3833. messageBox("이미 삭제된 계산서 입니다.", "I999");
  3834. return;
  3835. }
  3836. var srcptflag = model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptflag");
  3837. if (srcptflag == "" || srcptflag == null || srcptflag == "B01" || srcptflag == "B21" || srcptflag == "B31" || srcptflag == "B51") {
  3838. return;
  3839. }
  3840. model.makeValue("/root/temp/receipt/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3841. model.makeValue("/root/temp/receipt/rcptdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptdd"));
  3842. model.makeValue("/root/temp/receipt/rcptno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptno"));
  3843. model.makeValue("/root/temp/receipt/rcptseqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/rcptseqno"));
  3844. model.makeValue("/root/temp/receipt/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3845. model.makeValue("/root/temp/receipt/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3846. model.makeValue("/root/temp/receipt/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/fromdd"));
  3847. model.makeValue("/root/temp/receipt/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/todd"));
  3848. model.makeValue("/root/temp/receipt/mskind", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mskind"));
  3849. model.makeValue("/root/temp/receipt/insukind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/insukind"));
  3850. model.makeValue("/root/temp/receipt/suppkind", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/suppkind"));
  3851. model.makeValue("/root/temp/receipt/orddeptcd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/orddeptcd"));
  3852. model.makeValue("/root/temp/receipt/seqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + i + "]/seqno"));
  3853. model.makeValue("/root/temp/receipt/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3854. model.makeValue("/root/temp/receipt/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3855. model.makeValue("/root/temp/receipt/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3856. model.makeValue("/root/temp/receipt/rareobstflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rareobstflag"));
  3857. model.makeValue("/root/temp/receipt/ioflag", "I");
  3858. if (srcptflag == "E50") {
  3859. model.makeValue("/root/temp/receipt/ordtype", "중간계산서" );
  3860. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3861. model.makeValue("/root/temp/receipt/ret_act_label", "청구서"); //중간계산서 일 경우 청구서, 영수증 여부
  3862. model.makeValue("/root/temp/receipt/ret_act_form", "영수증양식"); //영수증양식, 중간계산서양식
  3863. model.makeValue("/root/temp/receipt/rcptexe_label", "수납할 금액"); //수납금액부분라벨
  3864. model.makeValue("/root/temp/receipt/endmidflag", "중간"); //퇴원, 중간(영수증 상단 체크박스)
  3865. } else {
  3866. model.makeValue("/root/temp/receipt/ordtype", "퇴원계산서" );
  3867. model.makeValue("/root/temp/receipt/reprintYN", "N" ); //재발행여부
  3868. }
  3869. if (model.getValue("/root/init/option/engreceipt") == "Y") {
  3870. model.makeValue("/root/temp/receipt/engYN", "Y"); //입원 영문 영수증 출력.
  3871. } else {
  3872. model.makeValue("/root/temp/receipt/engYN", "N"); //입원 영문 영수증 출력.
  3873. }
  3874. modal("SPPAO01900");
  3875. //modal("SPPAO01900" );
  3876. //출력 후 노드 삭제
  3877. model.removenode("/root/temp/receipt");
  3878. }
  3879. //계산서내역 삭제
  3880. function fCalcDel() {
  3881. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") != "99991231") {
  3882. messageBox("퇴원환자의 계산서 내역은 삭제할 수", "I004","")
  3883. return;
  3884. }
  3885. var iphssrow = grd_inpatinfo.row;
  3886. if (iphssrow <= 0) {
  3887. iphssrow = 1;
  3888. }
  3889. var srow = grd_rcptamt.row;
  3890. if (srow == 0) {
  3891. messageBox("삭제할 계산서를 선택하여 주십시오.", "I999");
  3892. return;
  3893. }
  3894. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" +srow + "]/rcptstat") =="D") {
  3895. messageBox("이미 삭제된 계산서 입니다.", "I999");
  3896. return;
  3897. }
  3898. model.removenode("/root/send/data5");
  3899. model.makeValue("/root/send/data5/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3900. model.makeValue("/root/send/data5/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3901. model.makeValue("/root/send/data5/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ iphssrow +"]/iphs_cretno"));
  3902. model.makeValue("/root/send/data5/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3903. model.makeValue("/root/send/data5/seqno", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" +srow + "]/seqno"));
  3904. if (submit("TXPAI00104") == true) {
  3905. fCalcInfo("2");
  3906. //fOrdAmtInfo();
  3907. //fRcptInfo("1");
  3908. //진료비내역,청구수납 내역
  3909. fRcpt_AllInfo("Y","Y","1");
  3910. }
  3911. }
  3912. //퇴원계산서 생성
  3913. function fDschCalcIns() {
  3914. var srow = grd_inpatinfo.row;
  3915. if (srow <= 0) {
  3916. srow = 1;
  3917. }
  3918. //유형이 분리 되었을 경우 이전 유형에 대해서 퇴원 계산서 생성은 중간청구가 되어 있어야 함.
  3919. //마지막 유형(유형이 하나 일경우)퇴원계산서 생성은 보험심사가 완료 되어 있어야 함.
  3920. // if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231") {
  3921. // messageBox("선택하신 유형은 퇴원계산서를 생성", "E001", "");
  3922. // return;
  3923. // }
  3924. // if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschdd") == model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd")) {
  3925. // messageBox("선택하신 유형은 퇴원계산서를 생성", "E001", "");
  3926. // return;
  3927. // }
  3928. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_totamt") == "0") {
  3929. messageBox("진료비총액이 0원 입니다. 퇴원계산서를 생성 할 수 없습니다.", "I999");
  3930. return;
  3931. }
  3932. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_rcptyn") == "Y") {
  3933. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_indschacptstat") != "T") {
  3934. messageBox("수납이 완료되어 퇴원계산서를 생성", "E001", "");
  3935. return;
  3936. }
  3937. }
  3938. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") == "99991231") {
  3939. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "A" ||
  3940. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "B") {
  3941. messageBox("심사가 완료 되어 있지 않아 퇴원계산서를 생성", "E001", "");
  3942. return;
  3943. }
  3944. var stodd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt").substr(0, 8);
  3945. var sorgtodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3946. } else {
  3947. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "A" ||
  3948. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_dschjudgprcsstat") == "B") {
  3949. var slastmdlclamdd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_lastmdlclamdd");
  3950. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd") > slastmdlclamdd) {
  3951. messageBox("선택하신 유형은 중간청구가 되지 않아 퇴원계산서를 생성", "E001", "");
  3952. return;
  3953. }
  3954. }
  3955. var stodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3956. var sorgtodd = model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_todd");
  3957. }
  3958. model.removenode("/root/send/data5");
  3959. model.makeValue("/root/send/data5/pid", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid"));
  3960. model.makeValue("/root/send/data5/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_cretno"));
  3961. model.makeValue("/root/send/data5/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  3962. model.makeValue("/root/send/data5/instcd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd"));
  3963. model.makeValue("/root/send/data5/mskind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_mskind"));
  3964. model.makeValue("/root/send/data5/insukind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind"));
  3965. model.makeValue("/root/send/data5/suppkind", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_suppkind"));
  3966. model.makeValue("/root/send/data5/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_fromdd"));
  3967. //todd가 99991231 일 경우 퇴원통보일자로 처리(확인필요)
  3968. model.makeValue("/root/send/data5/todd", stodd);
  3969. model.makeValue("/root/send/data5/orgtodd", sorgtodd);
  3970. model.makeValue("/root/send/data5/flag", "I");
  3971. model.makeValue("/root/send/data5/wardcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_wardcd"));
  3972. model.makeValue("/root/send/data5/roomcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_roomcd"));
  3973. model.makeValue("/root/send/data5/orddeptcd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_orddeptcd"));
  3974. model.makeValue("/root/send/data5/medispclid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_medispclid"));
  3975. model.makeValue("/root/send/data5/disccd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_disccd"));
  3976. model.makeValue("/root/send/data5/rcptflag", "E70");
  3977. model.makeValue("/root/send/data5/ownbmaxgradeflag", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_ownbmaxgradeflag"));
  3978. if (submit("TXPAI00105") == true) {
  3979. fCalcInfo("2");
  3980. //fOrdAmtInfo();
  3981. //fRcptInfo("1");
  3982. //진료비내역,청구수납 내역
  3983. fRcpt_AllInfo("Y","Y","1");
  3984. messageBox("퇴원계산서 생성이", "I002", "");
  3985. }
  3986. }
  3987. function fCardCashNo() {
  3988. //1-카드
  3989. if(model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "1"){
  3990. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  3991. if ((ipt_cardcashno.currentText).length >16) {
  3992. //16자리보다 크면, "="이 있으면, swipe
  3993. if ( (ipt_cardcashno.currentText).indexOf("=") >0 ) {
  3994. var vSwipeData = "";
  3995. var vCardno_array = "";
  3996. var vCardno = "";
  3997. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  3998. vSwipeData = ipt_cardcashno.currentText;
  3999. // swipe 시 첫글자에 ?
  4000. if ( vSwipeData.indexOf("?") >= 0 ) {
  4001. vSwipeData = (vSwipeData).substr(1,37);
  4002. }
  4003. if ( vSwipeData.indexOf("/") >= 0 ) {
  4004. vSwipeData = (vSwipeData).substr(1,37);
  4005. }
  4006. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData );
  4007. vCardno_array = vSwipeData.split("=");
  4008. vCardno = vCardno_array[0];
  4009. // swipe 시 첫글자에 ?
  4010. if ( vCardno.indexOf("?") >= 0 ) {
  4011. vCardno = (vCardno).substr(1,16);
  4012. }
  4013. if ( vCardno.indexOf("/") >= 0 ) {
  4014. vCardno = (vCardno).substr(1,16);
  4015. }
  4016. //유효일자
  4017. var vValiterm = (vCardno_array[1]).substr(0,4);
  4018. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , vCardno);
  4019. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "S");
  4020. model.setValue("/root/main/admi_info/rcptmthd/validterm" , vValiterm);
  4021. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "00");
  4022. model.refresh();
  4023. model.setFocus("ipt_allotmm");
  4024. }
  4025. } else if ((ipt_cardcashno.currentText).length ==16) {
  4026. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , ipt_cardcashno.currentText);
  4027. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  4028. model.refresh();
  4029. model.setFocus("ipt_valiterm");
  4030. }
  4031. // 2-현금영수증
  4032. }else if( model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "2"){
  4033. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4034. model.setValue("/root/main/admi_info/rcptmthd/cardcashno", ipt_cardcashno.currentText);
  4035. // ICPos단말기의 경우 현금영수증카드번호는 단말기를 통해서 입력
  4036. if (model.getValue("/root/init/PAM/P0032list/P0032[cdid = '200']/cdnm") != "KOCES_IC"
  4037. || model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmflag") != "3") {
  4038. //현금영수증
  4039. //rdo_indyn.disabled = false;
  4040. //20100401 현금영수증 의무화
  4041. //현금영수증 선택시
  4042. if ((ipt_cardcashno.currentText).length >16) {
  4043. //16자리보다 크면,
  4044. //"="이 있으면, swipe
  4045. if((ipt_cardcashno.currentText).indexOf("=") > 0){
  4046. var vSwipeData = "";
  4047. var vCardno_array = "";
  4048. var vCardno = "";
  4049. //vSwipeData = model.getValue("/root/main/outrgst/m_etc/cardno");
  4050. vSwipeData = ipt_cardcashno.currentText;
  4051. //swipe 시 첫글자에 ?
  4052. if ( vSwipeData.indexOf("?") >= 0 ) {
  4053. vSwipeData = (vSwipeData).substr(1,37);
  4054. }
  4055. if ( vSwipeData.indexOf("/") >= 0 ) {
  4056. vSwipeData = (vSwipeData).substr(1,37);
  4057. }
  4058. vSwipeData = vSwipeData.getRightPad(40, " ");
  4059. model.setValue("/root/main/admi_info/rcptmthd/swipedata", vSwipeData );
  4060. vCardno_array = vSwipeData.split("=");
  4061. vCardno = vCardno_array[0];
  4062. // swipe 시 첫글자에 ?
  4063. if ( vCardno.indexOf("?") >= 0 ) {
  4064. vCardno = (vCardno).substr(1,16);
  4065. }
  4066. //유효일자
  4067. var vValiterm = (vCardno_array[1]).substr(0,4);
  4068. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , vCardno);
  4069. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "S");
  4070. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4071. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , model.getValue("/root/main/admi_info/rcptmthd/cashmthd") ); //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4072. }
  4073. //2013-01-28
  4074. //현금영수증 사업자 카드
  4075. vCardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  4076. if( vCardno.length == 18 && vCardno.substr(8, 1) == '9' ){
  4077. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4078. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , '01'); //현금영수증일때는 할부개월에 법인/개인구분(개인:00 사업자:01)
  4079. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , '01');
  4080. }
  4081. model.refresh();
  4082. model.setFocus("ipt_cashamt");
  4083. } else if ((ipt_cardcashno.currentText).length == 16){
  4084. var vSwipeData = "";
  4085. vSwipeData = model.getValue("/root/main/admi_info/rcptmthd/cardcashno")+"=";
  4086. vSwipeData = vSwipeData.getRightPad(40, " ");
  4087. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData);
  4088. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  4089. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "3"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4090. model.refresh();
  4091. //model.setFocus("ipt_cashamt");
  4092. } else {
  4093. //16자리보다 작으면, 주민번호 혹은 전화번호 사업장번호
  4094. var vSwipeData = "";
  4095. vSwipeData = model.getValue("/root/main/admi_info/rcptmthd/cardcashno")+"=";
  4096. vSwipeData = vSwipeData.getRightPad(40, " ");
  4097. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , vSwipeData);
  4098. model.setValue("/root/main/admi_info/rcptmthd/keyinptflag" , "K");
  4099. //길이가 13자리이면,주민번호
  4100. if (model.getValue("/root/main/admi_info/rcptmthd/cardcashno").length == 13 ){
  4101. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag","1");
  4102. }else{
  4103. //앞 3자리 010,011,016,017,018,019 이면 전화
  4104. if ( (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "010" ||
  4105. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "011" ||
  4106. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "016" ||
  4107. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "017" ||
  4108. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "018" ||
  4109. (model.getValue("/root/main/admi_info/rcptmthd/cardcashno")).substr(0,3) == "019"
  4110. ) {
  4111. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "2"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4112. } else {
  4113. //16자리 길이 미만일 때 13자리 주민번호 제외 후 핸드폰 앞자리 체크 나머지는 사업장
  4114. model.setValue("/root/main/admi_info/rcptmthd/qualcnfmflag" , "4"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  4115. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "01"); //00-소득공제, 01-지출증비, 02-미승인
  4116. }
  4117. }
  4118. model.refresh();
  4119. //model.setFocus("ipt_cashamt");
  4120. }
  4121. }
  4122. //1-카드, 2-현금영수증, 3-현금
  4123. // } else if ( model.getValue("/root/main/admi_info/rcptmthd/rcptmthd") == "3" ){
  4124. // model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "1");
  4125. // model.refresh();
  4126. // 3-현금
  4127. }else{
  4128. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증비, 02-미승인
  4129. model.setValue("/root/main/admi_info/rcptmthd/cardcashno" , "");
  4130. model.setValue("/root/main/admi_info/rcptmthd/validterm" , "");
  4131. model.setValue("/root/main/admi_info/rcptmthd/allotmm" , "");
  4132. model.setValue("/root/main/admi_info/rcptmthd/swipedata" , "");
  4133. }
  4134. }
  4135. function fPrcpCodeUncoChk() {
  4136. //임상미수 체크
  4137. var srow = grd_inpatinfo.row
  4138. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  4139. if (srow <= 0 ) {
  4140. srow = 1;
  4141. }
  4142. if (model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ srow +"]/iphs_insukind") == "71") {
  4143. var iRcptAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt");
  4144. messageBox("임상환자 입니다. 수납금액을 미수로 생성합니다.", "I999");
  4145. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I41");
  4146. // 2009.10.28 - 미수코드 하드코딩제거
  4147. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0063list/P0063[cdid = 'C']/cdnm"));
  4148. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iRcptAmt);
  4149. model.refresh();
  4150. fReCalcAmt();
  4151. model.removenode("/root/main/admi_info/unco/unco");
  4152. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4153. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4154. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4155. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4156. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4157. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4158. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4159. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4160. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4161. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4162. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4163. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4164. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4165. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4166. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4167. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4168. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4169. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4170. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4171. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4172. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4173. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4174. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_clincstdycd"));
  4175. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4176. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4177. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4178. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4179. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4180. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4181. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4182. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4183. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4184. }
  4185. //PMCMCODE cdgrupid = P0003 자동미수코드 정의
  4186. //처방코드 미수 발생, 중복으로 미수가 발생하지 않는다고 함.
  4187. for(var i=1; i<=getNodesetCount("/root/main/prcpcodechk/prcpchk"); i++) {
  4188. //b형간염 수직감염 예방접종
  4189. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") != "") {
  4190. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "A") {
  4191. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4192. messageBox("B형간염 수직감염 예방접종 처방이 존재합니다.\nB형간염 수직감염 예방접종 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4193. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I22"); //B형간염 수직감염 예방사업
  4194. // 2009.10.28 - 미수코드 하드코딩제거
  4195. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'A']/cdnm")); //B형간염 수직감염 예방사업
  4196. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4197. model.refresh();
  4198. fReCalcAmt();
  4199. }
  4200. //성폭력 kit
  4201. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "B") {
  4202. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4203. messageBox("성폭력키트 처방이 존재합니다.\n성폭력키트 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4204. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I23"); //성폭력키트
  4205. // 2009.10.28 - 미수코드 하드코딩제거
  4206. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'B']/cdnm")); //성폭력키트
  4207. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "H02"); //응급실 미수
  4208. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4209. model.refresh();
  4210. fReCalcAmt();
  4211. }
  4212. //음주채혈
  4213. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "C") {
  4214. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4215. messageBox("음주운전자 채혈비용 처방이 존재합니다.\n음주운전자 채혈비용 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4216. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "I24"); //서초경찰서미수
  4217. // 2009.10.28 - 미수코드 하드코딩제거
  4218. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'C']/cdnm")); //서초경찰서미수
  4219. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4220. model.refresh();
  4221. fReCalcAmt();
  4222. }
  4223. //신생아 청력검사
  4224. if (model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/kind") == "D") {
  4225. var iunco = model.getValue("/root/main/prcpcodechk/prcpchk[" + i + "]/ownamt");
  4226. messageBox("신생아 청력검사 처방이 존재합니다.\n신생아 청력검사 처방의 금액(" + iunco + ")을 미수로 생성합니다.", "I999");
  4227. //model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", "F342"); // 보건소 미수 - 의정부만 사용
  4228. // 2009.10.28 - 미수코드 하드코딩제거
  4229. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", model.getValue("/root/init/PAM/P0081list/P0081[cdid = 'D']/cdnm")); // 보건소 미수 - 의정부만 사용
  4230. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", iunco);
  4231. model.refresh();
  4232. fReCalcAmt();
  4233. }
  4234. var nodeList =getNodesetCount("/root/main/admi_info/unco/unco");
  4235. if (nodeList > 1) {
  4236. messageBox("미수 내역이 2개 이상입니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4237. return;
  4238. }
  4239. model.removenode("/root/main/admi_info/unco/unco");
  4240. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4241. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4242. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4243. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4244. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4245. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4246. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4247. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4248. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4249. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4250. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4251. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4252. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4253. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4254. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4255. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4256. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4257. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4258. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4259. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4260. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4261. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4262. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4263. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4264. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4265. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4266. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4267. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4268. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4269. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4270. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4271. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4272. }
  4273. }
  4274. //필수예방접종 미수 생성
  4275. var nodeList = getNodesetCount("/root/main/admi_info/prvnamt/prvnamt");
  4276. if (nodeList > 0) {
  4277. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd") != "") {
  4278. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != "0"
  4279. && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt") != "") {
  4280. msg_prvntmedccd = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedccd");
  4281. msg_prvntmedcamt = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcamt");
  4282. messageBox( "예방접종미수" +msg_prvntmedccd+ " 처방이 존재합니다.\n예방접종미수처방의 금액(" +
  4283. msg_prvntmedcamt + "원)을 미수로 생성합니다.", "I999");
  4284. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") != "") {
  4285. messageBox("미수 내역이 입력되어 있습니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4286. } else {
  4287. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", msg_prvntmedccd);
  4288. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", msg_prvntmedcamt);
  4289. model.refresh();
  4290. fReCalcAmt();
  4291. model.removenode("/root/main/admi_info/unco/unco");
  4292. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4293. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4294. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4295. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4296. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4297. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4298. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4299. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4300. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4301. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4302. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4303. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4304. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4305. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4306. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4307. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4308. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4309. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4310. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4311. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4312. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4313. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4314. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4315. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4316. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4317. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4318. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4319. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4320. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4321. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4322. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4323. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4324. }
  4325. }
  4326. }
  4327. /* 예방접종미수가 존재하는 환자에게는 감면을 적용시키지 않음 by 조중래
  4328. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd") != "") {
  4329. if (model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != null && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != "0"
  4330. && model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt") != "") {
  4331. msg_prvntmeddiscccd = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmeddiscccd");
  4332. msg_prvntmedcdiscamt = model.getValue("/root/main/admi_info/prvnamt/prvnamt/prvntmedcdiscamt");
  4333. messageBox( "감면계정이 있는 환자에게 예방접종처방이 존재합니다.\n예방접종금액에서 예방접종미수를 제외한 본인부담금에서 할인금(" +
  4334. msg_prvntmedcdiscamt + "원)을 임의감면(" + msg_prvntmeddiscccd + ")으로 생성합니다.", "I999");
  4335. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") != "") {
  4336. messageBox("임의감면 내역이 입력되어 있습니다. 임의감면 버튼을 클릭하여 변경하십시오.", "E999","");
  4337. } else {
  4338. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", msg_prvntmeddiscccd);
  4339. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", msg_prvntmedcdiscamt);
  4340. model.refresh();
  4341. fReCalcAmt();
  4342. model.removenode("/root/main/admi_info/dcgm/dcgm");
  4343. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4344. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  4345. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  4346. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduflag", "G");
  4347. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_apprsn", "");
  4348. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_pid", "");
  4349. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_seqno", "");
  4350. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptdd", "");
  4351. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptno", "");
  4352. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_instcd", "");
  4353. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptstat", "");
  4354. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptseqno", "");
  4355. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_ordtype", "");
  4356. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptexecdd", "");
  4357. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcpttm", "");
  4358. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_remfact", "");
  4359. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptrid", "");
  4360. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstrid", "");
  4361. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstdt", "");
  4362. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtrid", "");
  4363. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtdt", "");
  4364. }
  4365. }
  4366. }
  4367. */
  4368. }
  4369. //선천성대사이상검사 미수 생성
  4370. var nodeList = getNodesetCount("/root/main/admi_info/inbornamt/inbornamt");
  4371. if (nodeList > 0) {
  4372. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd") != "") {
  4373. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != "0"
  4374. && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt") != "") {
  4375. msg_inbornuncocd = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncocd");
  4376. msg_inbornuncoamt = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inbornuncoamt");
  4377. messageBox( "선천성대사이상검사미수" +msg_inbornuncocd+ " 처방이 존재합니다.\선천성대사이상검사 금액(" +
  4378. msg_inbornuncoamt + "원)을 미수로 생성합니다.", "I999");
  4379. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd") != "") {
  4380. messageBox("미수 내역이 입력되어 있습니다. 미수액 버튼을 클릭하여 변경하십시오.", "E999","");
  4381. } else {
  4382. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncocd", msg_inbornuncocd);
  4383. model.setValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt", msg_inbornuncoamt);
  4384. model.refresh();
  4385. fReCalcAmt();
  4386. model.removenode("/root/main/admi_info/unco/unco");
  4387. model.makeValue("/root/main/admi_info/unco/unco/unco_pid", "");
  4388. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptdd", "");
  4389. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptno", "");
  4390. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptseqno", "");
  4391. model.makeValue("/root/main/admi_info/unco/unco/unco_seqno", "");
  4392. model.makeValue("/root/main/admi_info/unco/unco/unco_instcd", "");
  4393. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptstat", "");
  4394. model.makeValue("/root/main/admi_info/unco/unco/unco_orddeptcd", "");
  4395. model.makeValue("/root/main/admi_info/unco/unco/unco_orddrid", "");
  4396. model.makeValue("/root/main/admi_info/unco/unco/unco_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4397. model.makeValue("/root/main/admi_info/unco/unco/unco_dschdd", "");
  4398. model.makeValue("/root/main/admi_info/unco/unco/unco_insukind", "");
  4399. model.makeValue("/root/main/admi_info/unco/unco/unco_suppkind", "");
  4400. model.makeValue("/root/main/admi_info/unco/unco/unco_ordtype", "");
  4401. model.makeValue("/root/main/admi_info/unco/unco/unco_uncorcptflag", "1");
  4402. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocls", "1");
  4403. model.makeValue("/root/main/admi_info/unco/unco/unco_uncocd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncocd"));
  4404. model.makeValue("/root/main/admi_info/unco/unco/unco_uncoamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_uncoamt"));
  4405. model.makeValue("/root/main/admi_info/unco/unco/unco_apprsn", "");
  4406. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptamt" , "");
  4407. model.makeValue("/root/main/admi_info/unco/unco/unco_debtamt" , "");
  4408. model.makeValue("/root/main/admi_info/unco/unco/unco_endyn", "");
  4409. model.makeValue("/root/main/admi_info/unco/unco/unco_clincstdyno", "");
  4410. model.makeValue("/root/main/admi_info/unco/unco/unco_empid", "");
  4411. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptexecdd", "");
  4412. model.makeValue("/root/main/admi_info/unco/unco/unco_rcpttm", "");
  4413. model.makeValue("/root/main/admi_info/unco/unco/unco_rcptrid", "");
  4414. model.makeValue("/root/main/admi_info/unco/unco/unco_remfact", "");
  4415. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstrid", "");
  4416. model.makeValue("/root/main/admi_info/unco/unco/unco_fstrgstdt", "");
  4417. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtrid", "");
  4418. model.makeValue("/root/main/admi_info/unco/unco/unco_lastupdtdt", "");
  4419. }
  4420. }
  4421. }
  4422. /* 선천성대사이상 미수가 존재하는 환자에게는 감면을 적용시키지 않음(by 조중래)
  4423. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd") != "") {
  4424. if (model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != null && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != "0"
  4425. && model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt") != "") {
  4426. msg_inborndiscccd = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscccd");
  4427. msg_inborndiscamt = model.getValue("/root/main/admi_info/inbornamt/inbornamt/inborndiscamt");
  4428. messageBox( "감면계정이 있는 환자에게 선천성대사이상검사 처방이 존재합니다.\n선천성대사이상검사금액에서 선천성대사이상검사 미수를 제외한 본인부담금에서 할인금(" +
  4429. msg_inborndiscamt + "원)을 임의감면(" + msg_inborndiscccd + ")으로 생성합니다.", "I999");
  4430. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd") != "") {
  4431. messageBox("임의감면 내역이 입력되어 있습니다. 임의감면 버튼을 클릭하여 변경하십시오.", "E999","");
  4432. } else {
  4433. model.setValue("/root/main/admi_info/ordamt/admispec/admi_discreducd", msg_inborndiscccd);
  4434. model.setValue("/root/main/admi_info/ordamt/admispec/admi_reduamt", msg_inborndiscamt);
  4435. model.refresh();
  4436. fReCalcAmt();
  4437. model.removenode("/root/main/admi_info/dcgm/dcgm");
  4438. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_orddd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4439. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreducd", model.getValue("/root/main/admi_info/ordamt/admispec/admi_discreducd"));
  4440. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduamt", model.getValue("/root/main/admi_info/ordamt/admispec/admi_reduamt"));
  4441. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_discreduflag", "G");
  4442. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_apprsn", "");
  4443. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_pid", "");
  4444. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_seqno", "");
  4445. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptdd", "");
  4446. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptno", "");
  4447. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_instcd", "");
  4448. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptstat", "");
  4449. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptseqno", "");
  4450. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_ordtype", "");
  4451. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptexecdd", "");
  4452. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcpttm", "");
  4453. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_remfact", "");
  4454. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_rcptrid", "");
  4455. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstrid", "");
  4456. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_fstrgstdt", "");
  4457. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtrid", "");
  4458. model.makeValue("/root/main/admi_info/dcgm/dcgm/dcgm_lastupdtdt", "");
  4459. }
  4460. }
  4461. }*/
  4462. }
  4463. }
  4464. //세션정보 추출하기
  4465. function fGetUserInfosSampling() {
  4466. var sUserInfosS = getUserInfos();
  4467. sUserInfosS = sUserInfosS + "|";
  4468. var UserInfosS_Array = sUserInfosS.split("|");
  4469. var userid = UserInfosS_Array[0]; //사용자번호
  4470. var usernm = UserInfosS_Array[1]; //사용자이름
  4471. var posinstcd = UserInfosS_Array[6]; //근무지기관코드 2009.04.15
  4472. var posinstnm = UserInfosS_Array[7]; //근무지기관명 2009.04.15
  4473. var posdeptcd = UserInfosS_Array[4]; //소속부서코드
  4474. var posdeptnm = UserInfosS_Array[5]; //소속부서명
  4475. model.makeNode("/root/hidden/session/" + "userid");
  4476. model.makeNode("/root/hidden/session/" + "usernm");
  4477. model.makeNode("/root/hidden/session/" + "posinstcd");
  4478. model.makeNode("/root/hidden/session/" + "posinstnm");
  4479. model.makeNode("/root/hidden/session/" + "posdeptcd");
  4480. model.makeNode("/root/hidden/session/" + "posdeptnm")
  4481. if (userid == null || userid == "" || userid == " " || userid == "-") userid = "pam";
  4482. //if (posinstcd == null || posinstcd == "" || posinstcd == " " || posinstcd == "-") posinstcd = "";
  4483. model.setValue("/root/hidden/session/userid",userid);
  4484. model.setValue("/root/hidden/session/usernm",usernm);
  4485. model.setValue("/root/hidden/session/posinstcd",posinstcd);
  4486. model.setValue("/root/hidden/session/posinstnm",posinstnm);
  4487. model.setValue("/root/hidden/session/posdeptcd",posdeptcd);
  4488. model.setValue("/root/hidden/session/posdeptnm",posdeptnm);
  4489. model.refresh();
  4490. }
  4491. //화면 초기화
  4492. function fInitialize(type) {
  4493. if (type == "all") {
  4494. model.resetInstanceNode("/root/send");
  4495. model.resetInstanceNode("/root/main/inpt_info/inptpatinfo"); //인적정보
  4496. model.resetInstanceNode("/root/hidden/inpt_info/inptpatinfo"); //인적정보(hidden)
  4497. model.resetInstanceNode("/root/hidden/item01"); // 입원일자
  4498. ipt_dschdclrdt.hint="-";
  4499. ipt_dschnotidt.hint="-";
  4500. ipt_roomcd.hint= "-";
  4501. cpt_ermesg.text = "";
  4502. ipt_onlnno.visible = false;
  4503. }
  4504. if (type == "all" || type == "ipat") {
  4505. model.resetInstanceNode("/root/main/pat_info/h_emr_snw/emr_snw"); //상병정보
  4506. model.resetInstanceNode("/root/main/pat_info/h_otpt_rsrv/otpt_rsrv"); //외래예약
  4507. model.resetInstanceNode("/root/hidden/pat_info/otpt_rsrv"); //외래예약
  4508. model.resetInstanceNode("/root/hidden/pat_info/emr_snw"); //상병정보
  4509. model.resetInstanceNode("/root/main/ermngtamtmsg/ermsg"); //응급메세지
  4510. model.resetInstanceNode("/root/main/ermngtamtmsg/ermsg1"); //응급메세지1
  4511. model.resetInstanceNode("/root/main/pat_info/h_unco_uncoamt/unco_uncoamt");//환자미수내역
  4512. model.resetInstanceNode("/root/hidden/pat_info/unco_uncoamt");//환자미수내역
  4513. model.resetInstanceNode("/root/main/pat_info/h_ptsp_specpat/ptsp_specpat"); //특이내역
  4514. model.resetInstanceNode("/root/hidden/pat_info/ptsp_specpat"); //특이내역
  4515. model.resetInstanceNode("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum"); //현금영수증승인번호
  4516. model.resetInstanceNode("/root/hidden/etc2");
  4517. model.resetInstanceNode("/root/hidden/etc3");
  4518. model.resetInstanceNode("/root/hidden/etc4");
  4519. model.resetInstanceNode("/root/hidden/etc5");
  4520. model.resetInstanceNode("/root/hidden/etc6");
  4521. model.resetInstanceNode("/root/hidden/etc7");
  4522. btn_opdinfo.attribute("class") = "btn2_letter4";
  4523. btn_opspec.attribute("class") = "btn2_letter2";
  4524. btn_aipm.attribute("class") = "btn2_letter4";
  4525. btn_dscharngmnmemo.attribute("class") = "btn2_letter4";
  4526. //20100401 현금영수증 의무화 주석
  4527. ipt_cardcashno.hint ="";
  4528. ipt_cardcashno.attribute("background-color") = "#ffffff";
  4529. //2012-01-03 수납 후 강제분리 여부 세팅 해제
  4530. //파라미터가 all, ipat 일 때만 리셋한다.
  4531. model.setValue("/root/init/option/iphs_div", "false");
  4532. }
  4533. if (type == "all" || type == "ipat" || type == "ipatinfo") {
  4534. model.resetInstanceNode("/root/main/iphs_info/h_grdipatinfo/grdipatinfo"); //재원정보
  4535. model.resetInstanceNode("/root/main/iphs_info/h_opspec/opspec"); //수술내역
  4536. model.resetInstanceNode("/root/main/emr_ast_info/grdbabyhsct"); //산모, 신생아 정보
  4537. grd_inpatinfo.attribute("width") = "884" //산모, 신생아 그리드 초기화
  4538. grdbabyhsct.attribute("visibility") = "hidden";
  4539. cpt_iphs.text = ""; //재원유형 메세지 초기화
  4540. cpt_amtflag.text = ""; //요율 메세지 초기화
  4541. }
  4542. model.setValue("/root/init/option/pregdmndamtchk", "");
  4543. model.resetInstanceNode("/root/hidden/source");
  4544. model.resetInstanceNode("/root/main/admi_info/admi/grdclamrcpt"); //헌혈증정보
  4545. model.resetInstanceNode("/root/main/iscl_info/grdearnflag1"); //수익구분1
  4546. model.resetInstanceNode("/root/main/iscl_info/grdearnflag2"); //수익구분2
  4547. model.resetInstanceNode("/root/main/prcpcodechk/prcpchk"); //처방코드 미수 체크
  4548. model.resetInstanceNode("/root/main/iscl_info/reductexptamt"); //감면제외
  4549. model.resetInstanceNode("/root/hidden/earnflag"); //수익구분에서 doubleclick시 넘겨주는 node
  4550. model.resetInstanceNode("/root/main/admi_info/admi/grdclamrcpt"); //청구수납 node
  4551. model.resetInstanceNode("/root/hidden/admi_info/admi/grdclamrcpt"); //청구수납 node
  4552. model.resetInstanceNode("/root/hidden/admi_info/admietc/grdcardspec"); //카드내역
  4553. model.resetInstanceNode("/root/main/admi_info/ordamt/admispec"); //수납내역
  4554. model.resetInstanceNode("/root/main/admi_info/card/card"); //카드내역
  4555. model.resetInstanceNode("/root/main/admi_info/cash/cash"); //현금내역
  4556. model.resetInstanceNode("/root/main/admi_info/onln/onln"); //온라인입금내역
  4557. model.resetInstanceNode("/root/main/admi_info/unco/unco"); //미수내역
  4558. model.resetInstanceNode("/root/main/admi_info/dcgm/dcgm"); //감액내역
  4559. model.resetInstanceNode("/root/main/admi_info/prvnamt/prvnamt"); //필수예방접종
  4560. model.resetInstanceNode("/root/main/admi_info/inbornamt/inbornamt"); //선천성대사이상검사
  4561. // model.resetInstanceNode("/root/send/set_dcgm/dcgm");
  4562. // model.resetInstanceNode("/root/send/set_card/card");
  4563. // model.resetInstanceNode("/root/send/set_cash/cash");
  4564. // model.resetInstanceNode("/root/send/set_onln/onln");
  4565. // model.resetInstanceNode("/root/send/set_unco/unco");
  4566. // model.resetInstanceNode("/root/send/set_bldc/bldc");
  4567. model.resetInstanceNode("/root/hidden/admi_info/ordamt/admispec"); //수납내역
  4568. model.resetInstanceNode("/root/hidden/admi_info/ordamt/card"); //카드내역
  4569. model.resetInstanceNode("/root/hidden/admi_info/ordamt/cash"); //현금내역
  4570. model.resetInstanceNode("/root/hidden/admi_info/ordamt/onln"); //온라인입금
  4571. model.resetInstanceNode("/root/hidden/admi_info/ordamt/unco"); //미수
  4572. model.resetInstanceNode("/root/hidden/admi_info/ordamt/dcgm"); //감액
  4573. model.resetInstanceNode("/root/hidden/admi_info/ordamt/prvnamt"); //필수예방접종
  4574. model.resetInstanceNode("/root/main/admi_info/rcptmthd"); //수납방법, 소득지출증빙, 카드번호, 유효기간, 할부
  4575. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd" , "3"); //1-카드, 2-현금영수증, 3-현금
  4576. model.setValue("/root/main/admi_info/rcptmthd/cashmthd" , "00"); //00-소득공제, 01-지출증빙, 02-미승인
  4577. model.resetInstanceNode("/root/temp/receipt"); //영수증내역
  4578. model.resetInstanceNode("/root/temp1"); //temp
  4579. model.resetInstanceNode("/root/main/ipsc_info"); //소급내역 정보
  4580. model.resetInstanceNode("/root/main/popupendflag"); //popup 내역
  4581. model.resetInstanceNode("/root/main/emr_prcpspec/grdnexecspec"); //미시행처방
  4582. model.setValue("/root/main/admi_info/rcptmthd/allotmm", "00"); //카드 선택시 할부 00 setting
  4583. model.setValue("/root/init/option/receipt", "Y");
  4584. //현금영수증 자동승인 여부
  4585. if( model.getValue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm") == 'Y'){
  4586. model.setValue("/root/init/option/autocashyn", model.getvalue("/root/init/PAM/P0022list/P0022[cdid = '160' ]/cdnm"));
  4587. }
  4588. model.removeNodeset("/root/send/rcptinfo/bldc_info");
  4589. model.removeNode("/root/send/rcptinfo/rcpt_info/bldcdiscamtdcYN");
  4590. model.removenode("/root/send/set_card/card");
  4591. model.makeNode("/root/send/set_card/card");
  4592. model.removenode("/root/send/set_cash/cash");
  4593. model.makeNode("/root/send/set_cash/cash");
  4594. model.removenode("/root/send/set_onln/onln");
  4595. model.makeNode("/root/send/set_onln/onln");
  4596. model.removenode("/root/send/set_dcgm/dcgm");
  4597. model.makeNode("/root/send/set_dcgm/dcgm");
  4598. model.removenode("/root/send/set_unco/unco");
  4599. model.makeNode("/root/send/set_unco/unco");
  4600. model.removenode("/root/send/set_bldc/bldc");
  4601. model.makeNode("/root/send/set_bldc/bldc");
  4602. model.removenode("/root/hidden/cncl_card"); //다중카드승인취소
  4603. model.makeNode("/root/hidden/cncl_card");
  4604. model.removenode("root/main/emr_prcpspec/grdnexecspec");
  4605. model.makeNode("root/main/emr_prcpspec/grdnexecspec");
  4606. model.removenode("/root/temp1/nexeccalc");
  4607. model.makeNode("/root/temp1/nexeccalc");
  4608. model.setValue("/root/etcvalue/popupcardamt", ""); //팝업카드결제액
  4609. model.removenode("/root/temp3");
  4610. model.makeNode("/root/temp3");
  4611. // opt_popupcard.visible = false;
  4612. btn_remfactsave.attribute("class") = "btn2_letter2";
  4613. tar_remfact.attribute("background-color") = "#ffffff";
  4614. // 동의서 출력여부 초기화
  4615. cpt_scanyn.text = '';
  4616. // 사생활보호 관리여부 초기화
  4617. cap_privacy.visible = false;
  4618. // 격리여부 초기화
  4619. cap_isolate.visible = false;
  4620. cap_isolate.hint = "";
  4621. // KTAS초기화
  4622. cap_ktas.text = "";
  4623. // 격리표식 초기화
  4624. img_isolb.src = "../../../com/hismainweb/images/btn_top_infection0_d.gif";
  4625. img_isolc.src = "../../../com/hismainweb/images/btn_top_infection1_d.gif";
  4626. img_isola.src = "../../../com/hismainweb/images/btn_top_infection2_d.gif";
  4627. //2009-01-19 이동식 추가
  4628. //카드자동승인 여부 체크 초기화
  4629. model.setValue("/root/init/option/checkcard", "N");
  4630. // 가퇴원 정산SMS 전송여부 초기화 by 조중래
  4631. model.setValue("/root/init/option/receiptsms", "Y");
  4632. // 이지패스 SMS 전송여부 초기화 by 조중래
  4633. model.setValue("/root/init/option/ezpasssms", "");
  4634. // DRG 정보 초기화
  4635. model.setValue("/root/hidden/drginfo/drgno", "");
  4636. model.setValue("/root/hidden/drginfo/rowno", "");
  4637. // 응급실 전실신청 시 출력물 제어 초기화 by 조중래
  4638. model.setValue("/root/hidden/ervisityn", "");
  4639. model.setValue("/root/hidden/erroomcd", "");
  4640. // 필수심사 내역 초기화
  4641. cpt_judgneedmsg.text = "";
  4642. // 희귀난치 산정특례 신청여부
  4643. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "");
  4644. ipt_srdgsignyn.attribute("background-color") = "#ffffff";
  4645. model.refresh();
  4646. if (type == "all") {
  4647. model.setFocus("ipt_pid");
  4648. } else {
  4649. model.setFocus("ipt_cardcashno");
  4650. }
  4651. ipt_rcptpayamt.disabled = true;
  4652. fCloseAmt();
  4653. }
  4654. function fDschamtVisible(status){
  4655. grp_rcptpayamt.visible = status;
  4656. }
  4657. function fRtnRcpt(flag) {
  4658. if(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == null ||
  4659. (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid")).getTrim == ""){
  4660. messageBox("환자번호가 존재하지 않습니다.", "E999");
  4661. }
  4662. if(flag== "1"){
  4663. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  4664. model.getValue("/root/hidden/session/posinstcd") + "▦" + //기관코드
  4665. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자등록번호
  4666. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //환자성명
  4667. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "▦" + //주민등록번호 앞자리
  4668. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민등록번호뒷자리
  4669. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hometel") + "▦" + //집전화
  4670. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel") + "▦" + //휴대폰
  4671. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일
  4672. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //일련번호
  4673. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  4674. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")+ "▦" + //진료의
  4675. ""+ "▦" + //환불금액
  4676. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "▦" + //보험유형
  4677. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") ; //진료유형
  4678. setParameter("SPPAO00600_PARM",sValue);
  4679. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  4680. }else if(flag== "2"){
  4681. var sCardAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  4682. var sCashAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt");
  4683. var sOnlineAmt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_onlineamt");
  4684. if(sCashAmt + sCardAmt + sOnlineAmt >=0 ){
  4685. return;
  4686. }else{
  4687. var rtn = messageBox("환불내역을 등록 하시겠습니까?", "Q999");
  4688. if(rtn == "7"){ //아니오
  4689. return;
  4690. }else if(rtn == "6"){
  4691. var sValue = flag + "▦" + //1.환불내역 조회용 2.환불수납후 호출용
  4692. model.getValue("/root/hidden/session/posinstcd") + "▦" + //기관코드
  4693. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자등록번호
  4694. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") + "▦" + //환자성명
  4695. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno1") + "▦" + //주민등록번호 앞자리
  4696. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno2") + "▦" + //주민등록번호뒷자리
  4697. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hometel") + "▦" + //집전화
  4698. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_mpphontel") + "▦" + //휴대폰
  4699. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일
  4700. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //일련번호
  4701. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_orddeptcd") + "▦" + //진료과
  4702. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_medispclid")+ "▦" + //진료의
  4703. Math.abs(parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")))+ "▦" + //환불금액
  4704. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_insukind") + "▦" + //보험유형
  4705. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") ; //진료유형
  4706. setParameter("SPPAO00600_PARM",sValue);
  4707. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  4708. }//환불수납여부 체크 end
  4709. }//환불금액 존재여부 end
  4710. }
  4711. }//fRtnRcpt end
  4712. function fEasyPadNoInsert(flag, ipt1, ipt2){
  4713. var sValue = flag ; //rrgstno.민번 phone.전번
  4714. setParameter("SPPAO00503_PARM",sValue);//1.전번 2.민번
  4715. modal("../../../pam/inordamtmngtweb/xrw/SPPAO00503", "1","", "", "SPPAO00503", "", "", "sysmenu:hidden");
  4716. var SPPAO00503_RTN = getParameter("SPPAO00503_RTN");
  4717. var array_parm = SPPAO00503_RTN.split("▦"); //[0] 정상처리여부Y/N ,[1]전번(phone)민번(rrgstno)구분값 ,[2]전번일때값/민번일때 앞자리, [3] 전번일땐 없음 민번일땐 뒷자리
  4718. if(array_parm[0] == "Y"){
  4719. if (array_parm[1] == "phone" ) { //전번
  4720. if(model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "B21" && grp_rcptpayamt.visible == true){
  4721. // model.setValue("/root/main/inpt_info/inptpatinfo/inpt_smstel", getParameter("SPPAO00503_Mpphontel"));
  4722. model.refresh();
  4723. model.setFocus("button14");
  4724. } else {
  4725. if(array_parm[2].length > 0){
  4726. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "2"); //1-카드, 2-현금영수증, 3-현금
  4727. fRcptMthd("2"); //현금영수증 세팅.
  4728. // model.setValue("/root/main/admi_info/rcptmthd/cardcashno", getParameter("SPPAO00503_Mpphontel"));
  4729. model.refresh();
  4730. model.setFocus("btn_rcpt");
  4731. }else{
  4732. model.setValue("/root/main/admi_info/rcptmthd/rcptmthd", "3"); //1-카드, 2-현금영수증, 3-현금
  4733. rdo_rcptmthd.refresh();
  4734. }
  4735. }
  4736. ipt1.value = array_parm[2];
  4737. ipt1.refresh();
  4738. }else if (array_parm[1] == "rrgstno" ) { //민번
  4739. ipt1.value = array_parm[2];
  4740. ipt2.value = array_parm[3];
  4741. ipt1.refresh(); ipt2.refresh();
  4742. }
  4743. }else{
  4744. messageBox("팝업 비정상종료","E999");
  4745. }
  4746. }
  4747. // ER/DSC 자동계산배치 - 2009.06.12
  4748. // ER/DSC && 입원 상태일 때만 돌린다.
  4749. function fSetAutoErDscCalc() {
  4750. var sInstcd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_instcd");
  4751. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  4752. var sIndd = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  4753. var sCretno = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno");
  4754. var sOrdtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  4755. var sIndschacptstat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat");
  4756. var sDschnotiyn = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotiyn");
  4757. var sDschnotidt = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt");
  4758. var sDschjudgprcsstat = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_dschjudgprcsstat");
  4759. // ER/DSC체크
  4760. if (sOrdtype == "E" || sOrdtype == "D") {
  4761. if (sIndschacptstat == "A") { // 재원
  4762. if (sDschjudgprcsstat == "A") { // 미심
  4763. model.resetInstanceNode("/root/send/data10");
  4764. model.makeValue("/root/send/data10/instcd", sInstcd);
  4765. model.makeValue("/root/send/data10/pid", sPid);
  4766. model.makeValue("/root/send/data10/indd", sIndd);
  4767. model.makeValue("/root/send/data10/cretno", sCretno);
  4768. model.makeValue("/root/send/data10/ordtype", sOrdtype);
  4769. model.makeValue("/root/send/data10/indschacptstat", sIndschacptstat);
  4770. model.makeValue("/root/send/data10/dschnotiyn", sDschnotiyn);
  4771. model.makeValue("/root/send/data10/dschnotidt", sDschnotidt);
  4772. model.makeValue("/root/send/data10/dschjudgprcsstat", sDschjudgprcsstat);
  4773. submit("TXPAI00109");
  4774. }
  4775. }
  4776. }
  4777. }
  4778. // 2009.11.14 - 금액표시기 로직 분리
  4779. function fShowAmt() {
  4780. // 원무공통코드를 통해서 금액표시기 종류 및 사용여부를 체크한다.
  4781. var sMoneyDevice = model.getValue("/root/init/PAM/P0022list/P0022[cdid = '91']/cdnm");
  4782. // POPUP : 듀얼 모니터, SERIAL : LED, null : 사용않함
  4783. if (!isNull(sMoneyDevice)) {
  4784. // 외래와 입원의 금액표시기가 다를 수 있으므로 공통함수(외래기준)를 통한 초기화를 사용하지 않고 직접 설정하는 로직으로 대체
  4785. //금액표시기 초기화
  4786. //fInit_Display(); // PAM.js
  4787. // PAM.js의 global variable에 설정
  4788. AmtDispKind = sMoneyDevice;
  4789. //금액표시기 포트열기
  4790. fOpenCom(); // PAM.js
  4791. // PAM.js
  4792. fDisplayAmt(model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm")
  4793. , model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptpayamt")
  4794. , model.getValue("/root/hidden/session/usernm"));
  4795. //금액표시기 포트닫기
  4796. fCloseCom(); // PAM.js
  4797. }
  4798. }
  4799. // 20009.11.19 - 금액표시기 닫기
  4800. function fCloseAmt() {
  4801. if( AmtDispKind == 'POPUP' ){
  4802. var popupObjt = findChildWindowByScreenID("SPPMC06400");
  4803. if( popupObjt == null ){
  4804. return;
  4805. }else{
  4806. popupObjt.window.javascript.fClose();
  4807. }
  4808. } else if( AmtDispKind == 'SERIAL' ){
  4809. try{
  4810. if (document.all("NWSerial_OCX") != null){
  4811. //Port Close
  4812. var vreturn3 = -1;
  4813. vreturn3 = AmtDisplay.CloseCom();
  4814. if (vreturn3 == 0) {
  4815. AmtDisplay.CloseCom();
  4816. }
  4817. }
  4818. }catch(E){
  4819. AmtDisplay = null;
  4820. }
  4821. }else if( AmtDispKind == '-' ){
  4822. AmtDispKind = fGetAmtDispKind();
  4823. fCloseCom();
  4824. }
  4825. }
  4826. // 20091215 JHP 중증번호 희귀번호 동시존재시 콤보로 보여주기
  4827. // 희귀난치 정보와 중증 번호가 있는 경우 같이 있는 대상자만 콤보로 보이도록 함.
  4828. // DEFAULT로는 중증번호를 먼저 보여주세요. 콤보가 있는 환자는 콤보 누르면 희귀도 하단에 조회되도록..
  4829. // 변경개발요청 9553
  4830. function fItemRareMsg(){
  4831. var itemmsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_seridiagno");
  4832. var raremsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rareobstno");
  4833. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "");
  4834. ipt_srdgsignyn.attribute("background-color") = "#ffffff";
  4835. // 중증번호만 존재시..itemmsg
  4836. if(itemmsg != "" && raremsg == "-"){
  4837. ipt_seridiagno.visible = true;
  4838. cmb_itemraremsg.visible = false;
  4839. caption29.attribute("text") = "중증번호";
  4840. if(itemmsg.indexOf("환자서명(N") > -1){
  4841. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "N");
  4842. ipt_srdgsignyn.attribute("background-color") = "#ff0000";
  4843. } else {
  4844. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "Y");
  4845. }
  4846. // 희귀번호만 존재시.. raremsg
  4847. }else if(itemmsg == "" && raremsg != "-"){
  4848. ipt_seridiagno.visible = true;
  4849. cmb_itemraremsg.visible = false;
  4850. caption29.attribute("text") = "희귀번호";
  4851. if(raremsg.indexOf("환자서명(N") > -1){
  4852. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "N");
  4853. ipt_srdgsignyn.attribute("background-color") = "#ff0000";
  4854. } else {
  4855. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "Y");
  4856. }
  4857. // 희귀난치성 산정특례환자의 등록번호를 보여준다. - 20090622 박창원
  4858. var raremsg = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rareobstno");
  4859. if (raremsg != '-') {
  4860. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_seridiagno",raremsg);
  4861. model.refresh();
  4862. }
  4863. // 두번호 모두 존재시.. itemmsg, raremsg
  4864. }else if(itemmsg != "" && raremsg != "-"){
  4865. ipt_seridiagno.visible = false;
  4866. cmb_itemraremsg.visible = true;
  4867. cmb_itemraremsg.attribute("top") = 127;
  4868. caption29.attribute("text") = "중증/희귀";
  4869. model.setValue("/root/hidden/itemraremsg/msg[" + 1 + "]/cd","itemmsg");
  4870. model.setValue("/root/hidden/itemraremsg/msg[" + 1 + "]/nm",itemmsg);
  4871. model.setValue("/root/hidden/itemraremsg/msg[" + 2 + "]/cd","raremsg");
  4872. model.setValue("/root/hidden/itemraremsg/msg[" + 2 + "]/nm",raremsg);
  4873. if(itemmsg.indexOf("환자서명(N") > -1 || raremsg.indexOf("환자서명(N") > -1){
  4874. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "N");
  4875. ipt_srdgsignyn.attribute("background-color") = "#ff0000";
  4876. } else {
  4877. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_srdgsignyn", "Y");
  4878. }
  4879. // 기본 중증 셋팅
  4880. cmb_itemraremsg.value= "itemmsg";
  4881. }else{
  4882. ipt_seridiagno.visible = true;
  4883. cmb_itemraremsg.visible = false;
  4884. caption29.attribute("text") = "중증번호";
  4885. }
  4886. }
  4887. //수혈대체
  4888. function fbtn_bloddiscamt() {
  4889. // 수정이력 JHP 20100409 수혈대체시 무조건 주유형에 매칭되므로 부유형에 매칭되도록 cretno를 유형별 재원정보에서 가져오도록 수정
  4890. var inpatinforow = grd_inpatinfo.row;
  4891. if(inpatinforow < 1){
  4892. inpatinforow = 1;
  4893. }
  4894. var parm = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") + "▦" + //환자번호
  4895. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd") + "▦" + //진료일자
  4896. //model.getValue("/root/main/inpt_info/inptpatinfo/inpt_cretno") + "▦" + //생성번호
  4897. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_cretno") + "▦" + //생성번호
  4898. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_orddeptcd") + "▦" + //진료과
  4899. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_medispclid") + "▦" + //진료의사
  4900. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_insukind") + "▦" + //보험유형
  4901. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo/iphs_suppkind") + "▦" + //보조유형
  4902. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype") + "▦" + //진료형태
  4903. "" + "▦" + //진료형태
  4904. "" + "▦" + //parent가 이미 가지고 있던 감액 내역
  4905. "/root/send/set_bldc" + "▦" + //팝업이 닫힐때 감액내역을 받을 위치
  4906. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_fromdd") + "▦" + // 유형 적용 시작일
  4907. model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo[" + inpatinforow + "]/iphs_todd") + "▦"; // 유형 적용 종료일
  4908. setParameter("SPPAO01401_PARM",parm);
  4909. //alert("parm :" + parm);
  4910. if (model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indschacptstat") == "D") {
  4911. messageBox("퇴원수납된 환자의 추가 수혈대체인 경우 수납계정을 [B41]로 입력 후 대체 하십시오.","I999","");
  4912. setParameter("SPPAO01401_CopyBtn", "Y");
  4913. } else {
  4914. setParameter("SPPAO01401_CopyBtn", "");
  4915. }
  4916. //수혈대체 감면적용 제외 대상 환자는 퇴원 취소 후 처리하도록 유도
  4917. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_indschacptstat") == 'D'
  4918. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '-'
  4919. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '' ){
  4920. messageBox("감면대상 환자는 퇴원상태에서 수혈대체 할 수 없습니다."
  4921. + "\n퇴원 취소 후 수혈대체 처리하세요!!", "E999", "");
  4922. return false;
  4923. }
  4924. modal("SPPAO01401", "1","300", "300", "SPPAO01401", "", "");
  4925. if (getParameter("SPPAO01401_RTN") != "Y" ) return;
  4926. //2013-01-21 수혈대체 감면금액 제외 후 대체되도록 수정
  4927. //감면코드가 있을 때만 처리한다.
  4928. if( model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '-'
  4929. && model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ inpatinforow +"]/iphs_disccd") != '' ){
  4930. fRcpt_AllInfo("Y","Y","4");
  4931. }
  4932. var TotBlodDiscAmt = parseInt(getParameter("SPPAO01401_TotBldcDiscAmt"));
  4933. model.setValue("/root/main/admi_info/ordamt/admispec/admi_bloddiscamt", TotBlodDiscAmt);
  4934. //fReCalcAmt("1", TotBlodDiscAmt); //r금액 재계산
  4935. fReCalcAmt(); //r금액 재계산
  4936. if (model.getValue("/root/main/admi_info/ordamt/admispec/admi_rcptflag") == "") {
  4937. model.setFocus("ipt_rcptcd");
  4938. } else {
  4939. model.setFocus("ipt_cardcashno");
  4940. }
  4941. model.refresh();
  4942. }
  4943. //입원일자 콤보 박스에서 선택할시 이벤트
  4944. function fbtn_cmb_indd() {
  4945. var sinddvalue = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd");
  4946. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschdclrdt", "");
  4947. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dschnotidt", "");
  4948. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_dethdt", "");
  4949. var iSelectRow = cmb_indd.mouseRow;
  4950. if (iSelectRow == 0) {
  4951. var sPid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  4952. fInitialize("all");
  4953. model.setValue("/root/main/inpt_info/inptpatinfo/inpt_pid", sPid);
  4954. fInPatInfoRef("1");
  4955. return;
  4956. }
  4957. iSelectRow = iSelectRow + 1;
  4958. fInitialize("ipat");
  4959. copyNodesetType("/root/main/inpt_info/inptpatinfo","/root/hidden/inpt_info/inptpatinfo[" + iSelectRow + "]","replace");
  4960. model.setValue("/root/hidden/etc7", model.getValue("/root/hidden/item01/indd[" + iSelectRow +"]/indd1"));
  4961. model.refresh();
  4962. fAgeCalc();
  4963. fInDayNo();
  4964. model.setValue("/root/send/indd", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_indd"));
  4965. model.setValue("/root/send/ordtype", model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype"));
  4966. // 20091215 JHP 수정추가 중증에 희귀 존재할시에 콤보박스로 보여주기
  4967. fItemRareMsg();
  4968. fIPatInfoChk();
  4969. model.refresh();
  4970. }
  4971. //입원수납현금영수증 버튼 - 기존현금영수증 로직(사용안함 20110422 cys)
  4972. function fbtn_cashdamt_org() {
  4973. if( model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == ' ' ||
  4974. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' ){
  4975. messageBox("환자를 먼저 조회하신 후에 현금영수증 팝업을 열어 작업을 하실 수 있습니다!!", "E999", "");
  4976. return false;
  4977. }
  4978. var parm = "0" + "▦" + //외래등록의 멀티접수인 경우만 해당멀티건수 나머지는 default '0'으로 세팅
  4979. "-" + "▦" + //외래등록 멀티접수인 경우만 각각의 본인부담액을 보낸다. 나머지는 '-'
  4980. "" + "▦" +
  4981. "" + "▦" +
  4982. "" + "▦" +
  4983. parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt")) + "▦" +
  4984. "/root/main/admi_info/cash" + "▦" +
  4985. "/root/main/admi_info/cash" + "▦";
  4986. setParameter("SPPAO00500_PARM",parm);
  4987. modal("../../../pam/pamcomnweb/xrw/SPPAO00500", "1","200", "200", "SPPAO00500", "", "");
  4988. }
  4989. //입원수납현금영수증 버튼 - 신규로직
  4990. function fbtn_cashdamt() {
  4991. if( model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid") == ' ' ||
  4992. model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' || model.getValue("/root/main/inpt_info/inptpatinfo/inpt_hngnm") == '' ){
  4993. messageBox("환자를 먼저 조회하신 후에 현금영수증 팝업을 열어 작업을 하실 수 있습니다!!", "E999", "");
  4994. return false;
  4995. }
  4996. if(!fOpenCashPopUp()){return false;}
  4997. }
  4998. function fOpenCashPopUp(flag) {
  4999. //현금영수증 선택되어 있고, 현금금액이 있을 경우 현금승인
  5000. var parm = "";
  5001. var cashamt = parseInt(model.getValue("/root/main/admi_info/ordamt/admispec/admi_cashamt"));
  5002. var pre_cash_amt = 0;
  5003. var totcashamt = pre_cash_amt + cashamt;
  5004. var cardamt = model.getValue("/root/main/admi_info/ordamt/admispec/admi_cardamt");
  5005. var pid = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_pid");
  5006. var ordtype = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_ordtype");
  5007. var indinstflag = model.getValue("/root/main/admi_info/rcptmthd/cashmthd");
  5008. var cardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  5009. var valiterm = model.getValue("/root/main/admi_info/rcptmthd/validterm");
  5010. //var allotmm = ""
  5011. var keyinpuflag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  5012. var swipedata = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  5013. var qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  5014. var vcheck_cashcard = "";
  5015. var ordergb = "";
  5016. var approvaldate = "";
  5017. var approvaltime = "";
  5018. var approvalno = "";
  5019. //디폴트 현금영수증번호
  5020. var cshb_qualcnfmno = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  5021. var cshb_qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag"); //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  5022. if(cshb_qualcnfmno != "") {
  5023. cshb_qualcnfmno = model.getValue("/root/main/pat_info/h_cshb_cashrcptnum/cshb_cashrcptnum/cshb_qualcnfmno");
  5024. cshb_qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  5025. }else{
  5026. cshb_qualcnfmno = model.getValue("/root/main/inpt_info/inptpatinfo/inpt_rrgstno");
  5027. cshb_qualcnfmflag = "1"; //현금영수증확인구분(1.주민,2.전화,3.카드,4.사업자)
  5028. }
  5029. //현금영수증 자격번호
  5030. //카드, 현금영수증을 동시수납
  5031. if (parseInt(cardamt) > 0 &&
  5032. parseInt(cashamt) > 0)
  5033. {
  5034. vcheck_cashcard = "Y";
  5035. cardno = cshb_qualcnfmno;
  5036. qualcnfmflag = cshb_qualcnfmflag;
  5037. if(qualcnfmflag == "3"){keyinpuflag = "S"; }else{keyinpuflag = "K";}
  5038. swipedata = cshb_qualcnfmno+"=";
  5039. swipedata = swipedata.getRightPad(40, " ");
  5040. }
  5041. //현금영수증만 수납
  5042. if (parseInt(cardamt) == 0 &&
  5043. parseInt(cashamt) > 0 )
  5044. {
  5045. vcheck_cashcard = "N";
  5046. cardno = model.getValue("/root/main/admi_info/rcptmthd/cardcashno");
  5047. qualcnfmflag = model.getValue("/root/main/admi_info/rcptmthd/qualcnfmflag");
  5048. keyinpuflag = model.getValue("/root/main/admi_info/rcptmthd/keyinptflag");
  5049. swipedata = model.getValue("/root/main/admi_info/rcptmthd/swipedata");
  5050. }
  5051. /*
  5052. alert(
  5053. "멀티건수 " + parm + '\n' +
  5054. "멀티opmi " + "/root/send/s_opmi" + '\n' +
  5055. "totalamt " + cashamt + '\n' +
  5056. "send " + "/root/hidden/rcv1/h_cash" + '\n' +
  5057. "receive " + "/root/send/s_cash" + '\n' +
  5058. "pid " + pid + '\n' +
  5059. "ordtype " + ordtype + '\n' +
  5060. "indinstflag " + indinstflag + '\n' +
  5061. "gQualcnfmno " + cardno + '\n' +
  5062. //,"valiterm " + valiterm + '\n' +
  5063. //,"allotmm " + allotmm + '\n' +
  5064. "keyinpuflag " + keyinpuflag + '\n' +
  5065. "swipedata " + swipedata + '\n' +
  5066. "qualcnfmflag " + qualcnfmflag + '\n'
  5067. )
  5068. */
  5069. //처음에는 기현금노드를 보내고 그다음에는 send에서 주고받음
  5070. var send_cash ="/root/send/set_cash" ;
  5071. /*
  5072. var send_cash = "";
  5073. if(getNodesetCount("/root/send/set_cash/cash/cash_pid") == 0){
  5074. send_cash = "/root/hidden/rcv1/h_cash";
  5075. }else{
  5076. send_cash = "/root/send/set_cash" ;
  5077. }
  5078. */
  5079. parm = "0" + "▦" + //멀티건수
  5080. "" + "▦" + //멀티opmi
  5081. totcashamt + "▦" + //totalamt
  5082. send_cash + "▦" + //send
  5083. "/root/send/set_cash" + "▦" + //receive
  5084. pid + "▦" + //pid
  5085. ordtype + "▦" + //ordtype
  5086. indinstflag + "▦" + //indinstflag
  5087. cardno + "▦" + //gQualcnfmno
  5088. //valiterm + "▦" + //valiterm
  5089. //allotmm + "▦" + //allotmm
  5090. keyinpuflag + "▦" + //keyinpuflag
  5091. swipedata + "▦" + //swipedata
  5092. qualcnfmflag + "▦" ; //qualcnfmflag
  5093. setParameter("SPPAO00500_PARM", parm);
  5094. setParameter("SPPAO00500_FLAG", flag);
  5095. //팝업 오픈 방식 체크
  5096. if( flag == 'I' || flag == 'D'){
  5097. var ivrObjt = document.all("ivr_cashpopup");
  5098. if( ivrObjt == null ){
  5099. body.createChild("xforms:iviewer", "id:ivr_cashpopup; src:../../../pam/pamcomnweb/xrw/SPPAO00501_현금영수증승인.xrw");
  5100. ivrObjt = document.all("ivr_cashpopup");
  5101. }
  5102. if( flag == 'I' ){
  5103. ivrObjt.window.javascript.fInit();
  5104. var retMsg = ivrObjt.window.javascript.fAutoGetCashAprv();
  5105. }else{
  5106. ivrObjt.window.javascript.fInit();
  5107. var retMsg = ivrObjt.window.javascript.fAutoCnclCashAprv();
  5108. }
  5109. ordergb = ivrObjt.model.getValue("/root/tmp/appvanif/ordergb");//42:현금영수증승인응답
  5110. approvaldate = ivrObjt.model.getValue("/root/tmp/appvanif/approvaldate");
  5111. approvaltime = ivrObjt.model.getValue("/root/tmp/appvanif/approvaltime");
  5112. approvalno = ivrObjt.model.getValue("/root/tmp/appvanif/approvalno" );
  5113. body.removeChild("ivr_cashpopup");
  5114. if( retMsg == false ){
  5115. messageBox("현금영수증 승인시 오류가 났습니다. 수납변경에서 재승인하십시요.", "E999");
  5116. }
  5117. }else{
  5118. modal("SPPAO00501", "1","400", "400", "SPPAO00501", "", "");
  5119. //팝업 정상종료 여부!
  5120. if (getParameter("SPPAO00500_RTN") == "N" || getParameter("SPPAO00500_RTN") == ""){
  5121. return false;
  5122. }
  5123. }
  5124. /*
  5125. for (var i = 1; i <= getNodesetCount("/root/hidden/rcv1/h_opmi/opmi/opmi_pid") ; i++) {
  5126. for (var k = 1; k <= getNodesetCount("/root/send/s_cash/cash/cash_pid") ; k++) {
  5127. if (model.getValue( "/root/send/s_cash/cash["+ k +"]/cash_mseqno") != model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_mseqno")) continue;
  5128. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  5129. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  5130. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddd_org"));
  5131. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_cretno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_cretno_org"));
  5132. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddeptcd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddeptcd_org"));
  5133. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_orddrid_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_orddrid_org"));
  5134. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptdd_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptdd_org"));
  5135. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptno_org"));
  5136. model.makeValue("/root/send/s_cash/cash["+ k +"]/cash_rcptseqno_org" , model.getValue("/root/hidden/rcv1/h_opmi/opmi["+ i +"]/opmi_rcptseqno_org"));
  5137. }
  5138. }
  5139. */
  5140. return true;
  5141. }
  5142. //확장창 켜기
  5143. function fgrp_etc_open() {
  5144. grp_etc.attribute("visibility") = "visible";
  5145. }
  5146. //확장창 끄기
  5147. function fgrp_etc_close() {
  5148. grp_etc.attribute("visibility") = "hidden";
  5149. }
  5150. // 해당 기간에 영수키 존재하지 않는 ISCL 검증
  5151. function fGetISCLNoRcptKey(param) {
  5152. var result = true;
  5153. var i = grd_inpatinfo.row
  5154. //재원정보 grid 선택이 없을시 1번째를 선택하도록 한다
  5155. if (i <= 0 ) {
  5156. i = 1;
  5157. }
  5158. model.removenode("/root/send/data12");
  5159. model.makeValue("/root/send/data12/pid", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_pid"));
  5160. model.makeValue("/root/send/data12/indd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_indd"));
  5161. model.makeValue("/root/send/data12/cretno", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_cretno"));
  5162. // 수납 시 검증
  5163. if (param == 'R') {
  5164. model.makeValue("/root/send/data12/fromdd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_fromdd"));
  5165. model.makeValue("/root/send/data12/todd", model.getValue("/root/main/iphs_info/h_grdipatinfo/grdipatinfo["+ i +"]/iphs_todd"));
  5166. // 영수증 재출력 시 검증
  5167. } else if (param == 'P') {
  5168. // 수납정보 선택
  5169. var j = grd_rcptamt.row;
  5170. // Y건에 대해서만 검증
  5171. if (model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/rcptstat") != "Y") {
  5172. return result;
  5173. }
  5174. model.makeValue("/root/send/data12/fromdd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/fromdd"));
  5175. model.makeValue("/root/send/data12/todd", model.getValue("/root/main/admi_info/admi/grdclamrcpt[" + j + "]/todd"));
  5176. }
  5177. // 구분 R:수납, P:출력
  5178. model.makeValue("/root/send/data12/gubun", param);
  5179. if (submit("TRPAI00109")) {
  5180. var msg = model.getValue("/root/hidden/isclinfo/msg");
  5181. if (msg != null && msg != "") {
  5182. messageBox(msg + " 기간에 대하여\r\n수납(B31) 이후 수가계산이 발생되었습니다.\r\n해당기간이 포함된 수납건에 대한 재수납을 진행하시기 바랍니다.", "C000");
  5183. result = false;
  5184. }
  5185. }
  5186. return result;
  5187. }