AHA001.js 158 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026
  1. /************************************************************************************************
  2. @(#)AHA001.js
  3. @author : 손주연
  4. @version : 2007-04-18
  5. @desc : 건진업무에서 사용하는 공용함수 관리
  6. *************************************************************************************************/
  7. /************************************************************************************************
  8. **fMoveFocus
  9. @author : 손주연
  10. @version : 2007-04-18
  11. @desc : enter key입력시 특정 control로 focus 이동
  12. *************************************************************************************************/
  13. function fMoveFocus(vCtrlID){
  14. if( event.keyCode == 13 ) {
  15. if( vCtrlID != "" ) model.setFocus(vCtrlID);
  16. }
  17. }
  18. /************************************************************************************************
  19. **fExcelUpload
  20. @author : 손주연
  21. @version : 2007-04-18
  22. @desc :Excel File을 grid로 load한다.
  23. @param : grid control id
  24. *************************************************************************************************/
  25. function fExcelToGrid(grdObj){
  26. /* if(grdObj == "xforms:datagrid"){*/
  27. var fileName = window.fileDialog("open", ",", false, "", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  28. vId.loadExcel(fileName, 1, true);
  29. var cnt = grdObj.rows;
  30. var i = 0;
  31. for( i = 1; i < cnt +1 ; i++)
  32. {
  33. grdObj.addStatus(i, "insert");
  34. }
  35. grdObj.deleteRow(1);
  36. grdObj.refresh();
  37. }
  38. /**
  39. *====================================================================================================================================.
  40. @author : 손주연
  41. @version : 2007-04-20
  42. @desc : 건진구분 설정 => 추후 로그인 시 건진구분 세션관리가 되지 않을 경우를 대비.
  43. @param : grid control id
  44. @return : C: 종건/ G :일건
  45. ====================================================================================================================================*/
  46. function fGetHealExamFlag(){
  47. var sFlag = getScreenMenuParameter();
  48. var sFlagLen = parseInt(sFlag.length);
  49. //한자리 이하 인경우 ==> 건진장소구분(K,S)로 구분
  50. if(sFlagLen <= 1){
  51. if(sFlag == "") sFlag = "C";
  52. }else{ // 한자리 초과인경우 => 건진상세구분 (CXX ,GXX)로 구분
  53. sFlag = sFlag.substr(0, 1);
  54. }
  55. return sFlag;
  56. }
  57. /**
  58. *====================================================================================================================================.
  59. @author : 손주연
  60. @version : 2007-04-20
  61. @desc : 건진상세구분 설정 => 추후 로그인 시 건진구분 세션관리가 되지 않을 경우를 대비.
  62. @param : grid control id
  63. @return : C: 종건/ G :일건
  64. ====================================================================================================================================*/
  65. function fGetHealExamDetlFlag(){
  66. var sFlag = getScreenMenuParameter() ;
  67. var sFlagLen = parseInt(sFlag.length);
  68. // 한자리 이하 인경우 ==> 건진장소구분(K,S)로 구분
  69. if(sFlagLen <= 1) {
  70. if( sFlag == "" ) {
  71. sFlag = "C01";
  72. } else {
  73. sFlag=sFlag +'01';
  74. }
  75. }else { // 한자리 초과인경우 => 건진상세구분 (CXX ,GXX)로 구분
  76. sFlag = sFlag
  77. }
  78. return sFlag ;
  79. }
  80. /**
  81. * 기관코드 및 사업체코드가져오기======================================================================================================================
  82. @author : 손주연
  83. @version : 2007-04-30
  84. @desc : 기관코드 및 사업체코드가져오기
  85. @param :
  86. *vOpenerID : 현재화면ID
  87. *vFlag : 코드구분 공통코드 A0114참조
  88. ** 01 판정의
  89. ** 02 건강보험공단
  90. ** 03 관할군병원
  91. ** 04 산업안전공단
  92. ** 05 보건소
  93. ** 06 노동청
  94. ** 07 지도원
  95. ** 08 사업체
  96. * vCond : 검색구분(cd/nm)
  97. * vCdnm : 검색조건(코드/명칭)
  98. * vDesXPathCd: code값을 setting할 목적노드
  99. * vDesXPathNm: name값을 setting할 목적노드
  100. * SPAHA00500_PARAM1 : 코드구분 공통코드 A0114참조
  101. * SPAHA00500_PARAM2 : 검색구분(cd/nm)
  102. * SPAHA00500_PARAM3 : 검색조건(코드/명칭)
  103. * SPAHA00500_PARAM4 : 기관코드
  104. * SPAHA00500_PARAM5 : 코드구분 공통코드 A0114참조
  105. * SPAHA00500_PARAM6 : code값을 setting할 목적노드
  106. * SPAHA00500_PARAM7 : name값을 setting할 목적노드
  107. */
  108. function fGetComnCd(vOpenerID, vFlag , vCond, vCdnm , vDesXPathCd , vDesXPathNm ){
  109. clearParameter("SPAHA00500_PARAM1");
  110. clearParameter("SPAHA00500_PARAM2");
  111. clearParameter("SPAHA00500_PARAM3");
  112. clearParameter("SPAHA00500_PARAM4");
  113. clearParameter("SPAHA00500_PARAM5");
  114. clearParameter("SPAHA00500_PARAM6");
  115. clearParameter("SPAHA00500_PARAM7");
  116. setParameter ("SPAHA00500_PARAM1", vFlag);
  117. setParameter ("SPAHA00500_PARAM2", vCond);
  118. setParameter ("SPAHA00500_PARAM3", vCdnm);
  119. setParameter ("SPAHA00500_PARAM4", getUserInfo("dutplceinstcd"));
  120. setParameter ("SPAHA00500_PARAM5", vOpenerID);
  121. setParameter ("SPAHA00500_PARAM6", vDesXPathCd);
  122. setParameter ("SPAHA00500_PARAM7", vDesXPathNm);
  123. modal("SPAHA00500");
  124. }
  125. /**
  126. * Node가 존재하지 않을 경우 make.======================================================================================================================
  127. @author : 손주연
  128. @version : 2007-04-30
  129. @desc : Node가 존재하지 않을 경우 make.
  130. @param :
  131. * xPath : node XPath
  132. * bMake : make 여부
  133. @return : true/false (node 존재 여부 )
  134. */
  135. function fCheckNodeExist(xPath, bMake){
  136. var node = instance1.selectSingleNode(xPath);
  137. if(node == null){
  138. if(bMake == true){
  139. model.makeNode(xPath);
  140. return true;
  141. }else{
  142. return false;
  143. }
  144. }
  145. return true;
  146. }
  147. /**
  148. * 환자검색창 open=====================================================================================================================================
  149. @author : 손주연
  150. @version : 2007-04-30
  151. @desc : 환자검색창 open
  152. @param :
  153. * SPAHA00400_PARAM1 : 현재화면ID
  154. * SPAHA00400_PARAM2 : 검색조건 pnm/pid/rgstno
  155. * SPAHA00400_PARAM3 : 검색어
  156. * SPAHA00400_PARAM4 : nodeset전체 copy여부 (N일경우 원무등록번호와 환자 한글명만 copy)
  157. * SPAHA00400_PARAM5 : nodeset전체 copy여부 Y 일경우 대상노드
  158. * SPAHA00400_PARAM6 : nodeset전체 copy여부 N 일경우 원무등록번호 대상노드
  159. * SPAHA00400_PARAM7 : nodeset전체 copy여부 N 일경우 환자 한글명 대상노드
  160. * =====================================================================================================================================================
  161. */
  162. function fSearchPatInfo(vOpenerID, vCond, vCdnm, vSetYN, vDestXPath, vDestPid, vDestPnm, vRgstNo1, vRgstNo2, vHometel, vMpphontel, vSex, vAge){
  163. clearParameter("SPAHA00400_PARAM1");
  164. clearParameter("SPAHA00400_PARAM2");
  165. clearParameter("SPAHA00400_PARAM3");
  166. clearParameter("SPAHA00400_PARAM4");
  167. clearParameter("SPAHA00400_PARAM5");
  168. clearParameter("SPAHA00400_PARAM6");
  169. clearParameter("SPAHA00400_PARAM7");
  170. clearParameter("SPAHA00400_PARAM8");
  171. clearParameter("SPAHA00400_PARAM9");
  172. clearParameter("SPAHA00400_PARAM10");
  173. clearParameter("SPAHA00400_PARAM11");
  174. clearParameter("SPAHA00400_PARAM12");
  175. clearParameter("SPAHA00400_PARAM13");
  176. setParameter ("SPAHA00400_PARAM1", vOpenerID);
  177. setParameter ("SPAHA00400_PARAM2", vCond);
  178. setParameter ("SPAHA00400_PARAM3", vCdnm);
  179. setParameter ("SPAHA00400_PARAM4", vSetYN);
  180. setParameter ("SPAHA00400_PARAM5", vDestXPath);
  181. setParameter ("SPAHA00400_PARAM6", vDestPid);
  182. setParameter ("SPAHA00400_PARAM7", vDestPnm);
  183. setParameter ("SPAHA00400_PARAM8", vRgstNo1);
  184. setParameter ("SPAHA00400_PARAM9", vRgstNo2);
  185. setParameter ("SPAHA00400_PARAM10", vHometel);
  186. setParameter ("SPAHA00400_PARAM11", vMpphontel);
  187. setParameter ("SPAHA00400_PARAM12", vSex);
  188. setParameter ("SPAHA00400_PARAM13", vAge);
  189. modal("SPAHA00400");
  190. }
  191. /**
  192. * 환자인적사항저장=====================================================================================================================================
  193. @author : 손주연
  194. @version : 2007-04-30
  195. @desc : 환자인적사항저장
  196. @param :
  197. * vPidYN : 등록번호생성여부
  198. */
  199. function fSavePatInfo(vPidYN){
  200. if(fCheckPatInfo() == false) return;
  201. fCheckNodeExist("/root/main/info/patinfo/item/pidcretfg", true);
  202. model.removenode("/root/send/save");
  203. model.makeNode("/root/send/save");
  204. model.setValue("/root/main/info/patinfo/item/pidcretfg", vPidYN);
  205. model.copyNode("/root/send/save", "/root/main/info/patinfo/item");
  206. fCheckNodeExist("/root/send/save/userid", true);
  207. fCheckNodeExist("/root/send/save/instcd", true);
  208. model.setValue("/root/send/save/userid", getUserId());
  209. model.setValue("/root/send/save/instcd", getUserInfo("dutplceinstcd"));
  210. model.makeNode("/root/send/save/healexamdetlflag");
  211. model.setValue("/root/send/save/healexamdetlflag", model.getValue("/root/send/srchhealexamflag"));
  212. model.makeNode("/root/send/save/zipcdaddr");
  213. model.setValue("/root/send/save/zipcdaddr", model.getValue("/root/main/info/patinfo/item/addr1"));
  214. model.makeNode("/root/send/save/builno");
  215. model.setValue("/root/send/save/builno", model.getValue("/root/temp/address/builno"));
  216. //openLoadingBar("건진자 인적사항 저장 중입니다.."); //처리중 화면을 오픈한다.
  217. submit("TXAHA00101");
  218. //closeLoadingBar() ;//처리중 화면을 close한다.
  219. }
  220. /**
  221. * 건진자인적사항 내용 check.==========================================================================================================================
  222. @author : 손주연
  223. @version : 2007-04-30
  224. @desc : 건진자인적사항 내용 check
  225. @param :
  226. */
  227. function fCheckPatInfo(vFrom){
  228. if(vFrom=="1"){
  229. /**
  230. * 필수항목 입력여부 check.
  231. */
  232. var vTmp = ipt_pnm.currentText.getTrim(); //model.getValue("/root/main/info/patinfo/pnm");
  233. if(vTmp == ""){
  234. messageBox("성명을 ", "C001");
  235. model.setFocus("ipt_pnm");
  236. return false;
  237. }
  238. /**
  239. * 외국인일 경우 별도의 구분 없이 주민번호 뒷번호가 남/여, 5/6으로 처리.
  240. */
  241. vTmp = ipt_rgstno1.currentText; //model.getValue("/root/main/info/patinfo/rgstno1");
  242. if(vTmp == ""){
  243. messageBox("주민번호를 ", "C001");
  244. model.setFous("ipt_rgstno1");
  245. return false;
  246. }
  247. vTmp = ipt_rgstno2.currentText; //model.getValue("/root/main/info/patinfo/rgstno2");
  248. if(vTmp == ""){
  249. messageBox("주민번호를 ", "C001");
  250. model.setFocus("ipt_rgstno2");
  251. return false;
  252. }
  253. return true;
  254. }else{
  255. return true;
  256. }
  257. }
  258. /** ==========================================================================================================
  259. * fCheckRgstNo
  260. @author : 손주연
  261. @version : 2007-04-30
  262. @desc : 주민번호 유효여부 check
  263. @param :
  264. ==========================================================================================================================*/
  265. function fCheckRgstNo(){
  266. var vTmp = ipt_rgstno1.currentText + ipt_rgstno2.currentText ;
  267. if( isResidentNo(vTmp) == false ){
  268. if( messageBox("유효하지 않은 주민번호 입니다. ", "Q003") == 6 ) {
  269. return true;
  270. }
  271. model.setFocus("ipt_rgstno1");
  272. return false;
  273. }
  274. if( isResidentNo(vTmp) == true && vTmp.substr(7, 6)=='000000'){
  275. if( messageBox("외국인 입니다. ", "Q003") == 6 ) {
  276. cmb_forgneryn.value = "Y";
  277. return true;
  278. }
  279. model.setFocus("ipt_rgstno1");
  280. return false;
  281. }
  282. return true ;
  283. }
  284. /** ==========================================================================================================
  285. @author : 손주연
  286. @version : 2007-04-30
  287. @desc : 주민번호로 생년월일/성별/나이 기본 setting
  288. @param :
  289. * ==========================================================================================================*/
  290. function fSetBrthDD(){
  291. //if( ipt_brthdd.value != "" ) return ;
  292. var vrgstno1 = ipt_rgstno1.currentText;
  293. var vrgstno2 = ipt_rgstno2.currentText;
  294. var vSex = vrgstno2.substr( 0, 1) ;
  295. var vBrthdd = "";
  296. if( ( vSex == 3 ) || (vSex == 4) ) {
  297. vBrthdd = "20" + vrgstno1;
  298. }
  299. else {
  300. vBrthdd = "19" + vrgstno1;
  301. }
  302. ipt_brthdd.value = vBrthdd;
  303. opt_sex.value = getGender(vrgstno1+ vrgstno2);
  304. opt_age.value = getFullAge(vrgstno1+ vrgstno2);
  305. }
  306. function isResidentNo(pResidnetNo){
  307. if(isNaN(pResidnetNo)) return false;
  308. if(pResidnetNo.length != 13) return false;
  309. var c = pResidnetNo.substr(6,1);
  310. if(c == '5' || c == '6') return true;
  311. var c2 = pResidnetNo.substr(7,6);
  312. if(c2 == '000000') return true;
  313. last = pResidnetNo.substr(12,1);
  314. regNo = new Array(12); regNo[12] = 0;
  315. for(var i = 0; i < (regNo.length - 1); i++) {
  316. regNo[i] = eval(pResidnetNo.substr(i, 1)) * ((i % 8) + 2);
  317. }
  318. for(var i = 0; i < (regNo.length - 1); i++) {
  319. regNo[12] += regNo[i];
  320. }
  321. var result = ((11 - (regNo[12] % 11)) % 10);
  322. if(result == eval(last)) {
  323. return true;
  324. } else {
  325. return false;
  326. }
  327. }
  328. /** ==========================================================================================================
  329. @author : 손주연
  330. @version : 2007-04-30
  331. @desc : 수진자 인적사항만 조회, 외국인일 경우 별도의 구분 없이 주민번호 뒷번호가 남/여, 5/6으로 처리.
  332. @param :
  333. * 조회조건 : vMode (0 -pnm:환자명, 1-rgstno: 주민번호, 2-pid:등록번호, 3-hpid:건진임시환자번호)
  334. * vPidXPath : pid node
  335. * vPnmXPath : pnm node
  336. * ==========================================================================================================*/
  337. function fGetPatInfo(vMode){
  338. var vCond = "";
  339. var vChoiFlag = "";
  340. vChoiFlag = model.getValue("/root/main/info/rsrvacptinfo/item/choiflag");
  341. switch(vMode){
  342. case 0: vCond = "pnm";
  343. break;
  344. case 1: vCond = "rgstno";
  345. if(fCheckRgstNo() == false){
  346. ipt_rgstno1.value = "";
  347. ipt_rgstno2.value = "";
  348. return ;
  349. }
  350. break;
  351. case 2: vCond = "pid";
  352. break;
  353. default : vCond = "hid";
  354. break;
  355. }
  356. model.removeNodeSet("/root/send/save");
  357. model.makeNode("/root/send/save");
  358. fCheckNodeExist("/root/send/srchcond" , true );
  359. fCheckNodeExist("/root/send/srchinstcd" , true );
  360. fCheckNodeExist("/root/send/srchhealexampid" , true );
  361. fCheckNodeExist("/root/send/srchrgstno1" , true );
  362. fCheckNodeExist("/root/send/srchrgstno2" , true );
  363. fCheckNodeExist("/root/send/srchpid" , true );
  364. fCheckNodeExist("/root/send/srchpnm" , true );
  365. model.setValue("/root/send/srchcond" , vCond);
  366. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  367. if(vCond == "pnm"){
  368. model.setValue("/root/send/srchpnm" , ipt_pnm.currentText);
  369. }else if(vCond == "pid"){
  370. model.setValue("/root/send/srchpid" , ipt_pid.currentText);
  371. }else if(vCond == "rgstno"){
  372. model.setValue("/root/send/srchrgstno1" , ipt_rgstno1.currentText);
  373. model.setValue("/root/send/srchrgstno2" , ipt_rgstno2.currentText);
  374. }else{
  375. model.setValue("/root/send/srchhealexampid" , model.getValue("/root/main/info/patinfo/item/healexampid"));
  376. }
  377. fCheckNodeExist("/root/temp/patinfo/item", true);
  378. model.resetInstanceNode("/root/temp/patinfo/item");
  379. submit("TRAHA00101", false);
  380. //node clear현상때문임...
  381. var tmpnode = model.instance1.selectSingleNode("/root/temp/patinfo/item/pid");
  382. if(tmpnode != null){
  383. model.copyNode("/root/main/info/patinfo/item", "/root/temp/patinfo/item");
  384. model.makeValue("/root/main/info/rsrvacptinfo/item/choiflag", vChoiFlag);
  385. ipt_pid.disabled = true;
  386. }else{
  387. model.makeValue("/root/main/info/rsrvacptinfo/item/choiflag", vChoiFlag);
  388. }
  389. model.refresh();
  390. }
  391. function fGetPatInfo2(vMode ){
  392. var vCond = "";
  393. switch( vMode ){
  394. case 0: vCond = "pnm";
  395. break;
  396. case 1: vCond = "rgstno";
  397. if( fCheckRgstNo() == false ){
  398. ipt_rgstno1.value = "";
  399. ipt_rgstno2.value = "";
  400. return ;
  401. }
  402. break;
  403. case 2: vCond = "pid";
  404. break;
  405. default : vCond = "hid";
  406. break;
  407. }
  408. model.removeNodeSet("/root/send/save");
  409. model.makeNode("/root/send/save");
  410. fCheckNodeExist("/root/send/srchcond" , true );
  411. fCheckNodeExist("/root/send/srchpnm" , true );
  412. fCheckNodeExist("/root/send/srchpid" , true );
  413. fCheckNodeExist("/root/send/srchrgstno1" , true );
  414. fCheckNodeExist("/root/send/srchrgstno2" , true );
  415. fCheckNodeExist("/root/send/srchhealexampid", true );
  416. fCheckNodeExist("/root/send/srchinstcd" , true );
  417. model.setValue("/root/send/srchcond" , vCond);
  418. if( vCond == "pnm") {
  419. model.setValue("/root/send/srchpnm" , ipt_pnm.currentText );
  420. }
  421. else
  422. if( vCond == "pid") {
  423. model.setValue("/root/send/srchpid" , model.getValue("/root/send/healexampid"));
  424. }
  425. else
  426. if( vCond == "rgstno") {
  427. model.setValue("/root/send/srchrgstno1" , ipt_rgstno1.currentText );
  428. model.setValue("/root/send/srchrgstno2" , ipt_rgstno2.currentText );
  429. }
  430. else {
  431. model.setValue("/root/send/srchhealexampid" , model.getValue("/root/main/info/patinfo/item/healexampid"));
  432. }
  433. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  434. fCheckNodeExist("/root/temp/patinfo/item", true);
  435. model.resetInstanceNode("/root/temp/patinfo/item");
  436. submit("TRAHA00101") ;
  437. //node clear현상때문임...
  438. var tmpnode = model.instance1.selectSingleNode("/root/temp/patinfo/item/pid");
  439. if( tmpnode != null ){
  440. model.copyNode("/root/main/info/patinfo/item", "/root/temp/patinfo/item");
  441. }
  442. else {
  443. //model.resetInstanceNode("/root/main/info/patinfo/item");
  444. }
  445. model.refresh();
  446. }
  447. function setPkgInfo(){
  448. }
  449. /** ==========================================================================================================
  450. @author : 손주연
  451. @version : 2007-09-30
  452. @desc : 수진자 인적사항만 조회, 외국인일 경우 별도의 구분 없이 주민번호 뒷번호가 남/여, 5/6으로 처리.
  453. @param :
  454. * 조회조건: vMode (0 -pnm:환자명, 1-rgstno: 주민번호, 2-pid:등록번호, 3-hpid:건진임시환자번호)
  455. * vCond1 : 검색어1
  456. * vCond2 : 검색어2 (주민번호일경우 ...)
  457. * vDestXPath : 대상 노드
  458. * ==========================================================================================================*/
  459. function ahafGetPatInfo(vMode, vCond1, vCond2 , vDestXPath ){
  460. var vCond = "";
  461. switch( vMode ){
  462. case 0: vCond = "pnm";
  463. break;
  464. case 1: vCond = "rgstno";
  465. if( fCheckRgstNo() == false ){
  466. ipt_rgstno1.value = "";
  467. ipt_rgstno2.value = "";
  468. return ;
  469. }
  470. break;
  471. case 2: vCond = "pid";
  472. break;
  473. default : vCond = "hid";
  474. break;
  475. }
  476. fCheckNodeExist(vDestXPath , true );
  477. fCheckNodeExist("/root/send/srchcond" , true );
  478. fCheckNodeExist("/root/send/srchpnm" , true );
  479. fCheckNodeExist("/root/send/srchpid" , true );
  480. fCheckNodeExist("/root/send/srchrgstno1" , true );
  481. fCheckNodeExist("/root/send/srchrgstno2" , true );
  482. fCheckNodeExist("/root/send/srchhealexampid" , true );
  483. fCheckNodeExist("/root/send/srchinstcd" , true );
  484. model.setValue("/root/send/srchcond" , vCond);
  485. if( vCond == "pnm") {
  486. model.setValue("/root/send/srchpnm" , vCond1);
  487. }else if( vCond == "pid") {
  488. model.setValue("/root/send/srchpid" ,vCond1);
  489. }else if( vCond == "rgstno") {
  490. model.setValue("/root/send/srchrgstno1" , vCond1 );
  491. model.setValue("/root/send/srchrgstno2" , vCond2 );
  492. }else{
  493. model.setValue("/root/send/srchhealexampid" , vCond1 );
  494. }
  495. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  496. fCheckNodeExist("/root/temp/patinfo/item", true);
  497. model.resetInstanceNode("/root/temp/patinfo/item");
  498. var ret = submit("TRAHA00101") ;
  499. if( ret == false ) return false;
  500. //node clear현상때문임...
  501. var tmpnode = model.instance1.selectSingleNode("/root/temp/patinfo/item/pid");
  502. if( tmpnode != null ){
  503. model.copyNode(vDestXPath, "/root/temp/patinfo/item");
  504. return true ;
  505. }
  506. return false;
  507. }
  508. /** ==========================================================================================================
  509. @author : 손주연
  510. @version : 2007-04-30
  511. @desc : 예약/접수정보를 저장
  512. @param :
  513. * Mode : 공통코드A0107참조
  514. **A 예약
  515. **B 예약보류
  516. **C 예약확인
  517. **D 예약취소
  518. **E 접수
  519. **F 접수취소
  520. **G 결과
  521. **H 판정
  522. * ==========================================================================================================*/
  523. function fSaveRsrvAcpt(vMode,vFrom){
  524. }
  525. /** ==========================================================================================================
  526. @author : 손주연
  527. @version : 2007-04-30
  528. @desc : 건진자별 건진이력조회
  529. @param :
  530. * vPid : 등록번호
  531. * ==========================================================================================================*/
  532. function ahafGetHistList(vPid){
  533. //var node = instance1.selectSingleNode("/root/main/info/histlst/item");
  534. model.removeNodeset("/root/main/info/histlst/item");
  535. if( vPid == "" ) return ;
  536. var vhf = "";
  537. if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")==""){
  538. vhf = fGetHealExamFlag();
  539. }else{
  540. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  541. }
  542. model.setValue("/root/send/srchhealexamflag" , vhf);
  543. model.setValue("/root/send/srchhealexamdetlflag" , cmb_healexamdetlflag.value );
  544. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  545. model.setValue("/root/send/srchpid" , vPid);
  546. submit("TRAHA00106");
  547. }
  548. /** ==========================================================================================================
  549. @author : 김호익
  550. @version : 2007-11-15
  551. @desc : 검진페키지 상세조회(예약/접수)
  552. @param :
  553. * vPkgCd : 패키지 코드
  554. * ==========================================================================================================*/
  555. function ahafGetPkgDetlList(vPkgCd){
  556. if( vPkgCd == "" ){
  557. messageBox("선택된 패키지가 없습니다.", "E999");
  558. return ;
  559. }
  560. model.makeValue("/root/send/PkgCd" , vPkgCd);
  561. model.makeValue("/root/send/cmpycd" , model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  562. model.makeValue("/root/send/conseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  563. model.makeValue("/root/send/conhistseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  564. submit("TRAHA00113");
  565. }
  566. function fSetInstance(svalue){
  567. model.makeValue("/root/tmp/reqacpt/divflag", svalue);
  568. model.makeValue("/root/tmp/reqadd/divflag", svalue);
  569. model.makeValue("/root/tmp/reqpkg/divflag", svalue);
  570. model.makeValue("/root/tmp/reqacptold/divflag",svalue);
  571. model.makeValue("/root/tmp/reqaddold/divflag", svalue);
  572. model.makeValue("/root/tmp/opatvo/divflag", svalue);
  573. model.makeValue("/root/tmp/getvo/divflag", svalue);
  574. model.makeValue("/root/tmp/getsflag/divflag", svalue);
  575. model.makeValue("/root/tmp/reqords/divflag", svalue);
  576. model.makeValue("/root/tmp/retvo/divflag", svalue);
  577. model.makeValue("/root/tmp/retstd/divflag", svalue);
  578. model.makeValue("/root/tmp/reqpat/divflag", svalue);
  579. }
  580. /** ==========================================================================================================
  581. @author : 손주연
  582. @version : 2007-04-30
  583. @desc : 건진자별 건진이력조회
  584. @param :
  585. * vPid : 등록번호
  586. * ==========================================================================================================*/
  587. function ahafGetHistList2(vPid, vHealExamDetlFlag , vStatFlag){
  588. //var node = instance1.selectSingleNode("/root/main/info/histlst/item");
  589. model.removeNodeset("/root/main/info/histlst/item");
  590. if( vPid == "" ) return ;
  591. model.setValue("/root/send/srchhealexamflag" , vHealExamDetlFlag.substr(0,1));
  592. model.setValue("/root/send/srchhealexamdetlflag" , vHealExamDetlFlag );
  593. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  594. model.setValue("/root/send/srchpid" , vPid);
  595. model.setValue("/root/send/srchstatflag" , vStatFlag);
  596. submit("TRAHA00106");
  597. }
  598. /** ==========================================================================================================
  599. @author : 손주연
  600. @version : 2007-04-30
  601. @desc : 패키지 상세내역조회
  602. @param :
  603. * sPkgcd : 패키지코드
  604. * sPkgnm : 패키지명
  605. * sSex : 건진자 성별
  606. * sCmpycd : 단체코드
  607. * iConseq : 계약번호
  608. * iConHistseq : 계약이력번호
  609. * ==========================================================================================================*/
  610. function fGetConAddList(sPkgcd, sPkgnm, sSex, sCmpycd, iConseq,iConHistseq ){
  611. model.removeNodeset("/root/temp/pkgtestcdlst");
  612. if( ( (sCmpycd == "") || ( iConseq == "" ) || ( iConHistseq == "" )|| ( iConseq == "0" ) || ( iConHistseq == "0" ))
  613. && ( (sPkgcd == "") ||(sPkgnm == "")) ) return ;
  614. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  615. model.setValue("/root/send/srchpkgcd" , sPkgcd);
  616. var vhf = "";
  617. if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")=="")
  618. {
  619. vhf = fGetHealExamFlag();
  620. } else {
  621. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  622. }
  623. model.setValue("/root/send/srchhealexamflag", vhf);
  624. model.setValue("/root/send/srchcmpycd" , sCmpycd);
  625. model.setValue("/root/send/srchconseq" , iConseq );
  626. model.makeNode("/root/send/srchconhistseq" );
  627. model.setValue("/root/send/srchconhistseq" , iConHistseq );
  628. model.setValue("/root/send/srchsex" , sSex );
  629. model.makeValue("/root/send/srchage" , ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1"),model.getValue("/root/main/info/patinfo/item/rgstno2")));
  630. //2015/10/22 이정택 수정
  631. model.makeValue("/root/send/forgneryn", model.getValue("/root/main/info/patinfo/item/forgneryn"));
  632. model.makeValue("/root/send/agencyrate", model.getValue("/root/main/info/rsrvacptinfo/item/agencyrate"));
  633. //2015/10/22 이정택 수정
  634. submit("TRAHA00107",false);
  635. copyNodeListType("/root/temp2","/root/main/info/rsrvacptinfo/addlst");
  636. //copyNodeListType("/root/temp2","/root/main/info/rsrvacptinfo/addlst[testflag='A']");
  637. var node = instance1.selectSingleNode("/root/temp/pkgtestcdlst/addlst");
  638. if( node != null ){
  639. var i = grd_addlst.rows;
  640. model.removeNodeset("/root/main/info/rsrvacptinfo/addlst");
  641. copyNodeListType("/root/main/info/rsrvacptinfo", "/root/temp/pkgtestcdlst/addlst", "after");
  642. if(model.getValue("/root/temp2/addlst/testcd") != ""){
  643. copyNodesetType("/root/main/info/rsrvacptinfo/addlst" , "/root/temp2/addlst","after");
  644. }
  645. var cnt = getNodesetCount("/root/temp/pkgtestcdlst") + i;
  646. //model.refresh();
  647. for( ; i < cnt ; i++) {
  648. grd_addlst.addStatus(i,"insert");
  649. }
  650. }else{
  651. model.removeNodeset("/root/main/info/rsrvacptinfo/addlst");
  652. if(model.getValue("/root/temp2/addlst/testcd") != ""){
  653. copyNodeListType("/root/main/info/rsrvacptinfo" , "/root/temp2/addlst","after");
  654. }
  655. }
  656. }
  657. /** ==========================================================================================================
  658. @author : 손주연
  659. @version : 2007-04-30
  660. @desc : 예약접수 상세내역조회
  661. @param :
  662. * vMode : 리스트 구분
  663. * ==========================================================================================================*/
  664. function ahafGetRsrvAcptDetl(vMode){
  665. fInitInfo(); // 오른쪽 정보들 초기화 및 기본 값 셋팅
  666. var vXpath = "";
  667. var idx = -1;
  668. switch(vMode){
  669. case 1:
  670. vXpath = "/root/main/list/rsrvlst[";
  671. idx = grd_rsrvlst.row;
  672. break;
  673. case 2:
  674. vXpath = "/root/main/list/rsrvlst[";
  675. idx = grd_rsrventlst.row;
  676. break;
  677. case 3:
  678. vXpath = "/root/main/list/acptlst[";
  679. idx = grd_acptlst.row;
  680. break;
  681. case 4:
  682. vXpath = "/root/main/list/cncllst[";
  683. idx = grd_cncllst.row;
  684. break;
  685. case 5: //일반건진 2차대상자 리스트
  686. vXpath = "/root/main/list/sndlst[";
  687. idx = grd_sndlst.row;
  688. break;
  689. case 6 : //건진이력
  690. vXpath = "/root/main/info/histlst/item[";
  691. //idx = grd_sndlst.row;
  692. idx = grd_hist.row;
  693. break;
  694. default:
  695. messageBox("인자가 잘못되었습니다", "E999");
  696. return ;
  697. break;
  698. }
  699. if( idx < 1) {
  700. messageBox("건진내역을 ", "C002");
  701. return ;
  702. }
  703. var vRsrvdd = model.getValue(vXpath + idx + "]/rsrvdd");
  704. var vRsrvno = model.getValue(vXpath + idx + "]/rsrvno");
  705. /*
  706. *가예약 일경우 환자정보 patm의 정보만으로 조회
  707. * pid가 0일 경우 ptbs에 정보가 없을 수 있음
  708. */
  709. var vStatFlag = model.getValue(vXpath + idx + "]/statflag");
  710. var vPid = model.getValue(vXpath + idx + "]/pid");
  711. ahafGetRsrvAcpDetltInfo(vRsrvdd, vRsrvno , vStatFlag , vPid);// 바로 아래 함수
  712. }
  713. /** ==========================================================================================================
  714. @author : 손주연
  715. @version : 2007-04-30
  716. @desc : 예약/접수 상세내역 조회
  717. @param :
  718. * vRsrvdd : 예약등록일자
  719. * vRsrvno : 예약번호
  720. @return : 건진상세내역
  721. * ==========================================================================================================*/
  722. function ahafGetRsrvAcpDetltInfo(vRsrvdd, vRsrvno , vStatFlag , vPid){
  723. if((vRsrvdd == "") || (vRsrvno == "")) return ;
  724. fCheckNodeExist("/root/send/srchhealexamflag" , true );
  725. fCheckNodeExist("/root/send/srchrsrvdd" , true );
  726. fCheckNodeExist("/root/send/srchrsrvno" , true );
  727. fCheckNodeExist("/root/send/srchinstcd" , true );
  728. fCheckNodeExist("/root/send/scrnnm" , true );
  729. var vhf = "";
  730. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag") == ""){
  731. vhf = fGetHealExamFlag();
  732. }else{
  733. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  734. }
  735. model.setValue("/root/send/srchhealexamflag", vhf);
  736. model.setValue("/root/send/srchrsrvdd" , vRsrvdd);
  737. model.setValue("/root/send/srchrsrvno" , vRsrvno);
  738. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  739. model.setValue("/root/send/scrnnm" , vStatFlag == "A" && vPid == "0" ? "internet":"" );
  740. //model.makeValue("/root/send/srchage" , ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1"), model.getValue("/root/main/info/patinfo/item/rgstno2")));
  741. model.resetInstanceNode("/root/main/info/patinfo/item");
  742. model.resetInstanceNode("/root/main/info/rsrvacptinfo/item");
  743. model.resetInstanceNode("/root/temp/info/rsrvacptinfo");
  744. model.resetInstanceNode("/root/temp/info/patinfo");
  745. //TRAHA00102 -> 접수정보/ 메모/ 최근 건진 내역/ 개인정보(접수정보랑 겹치지 않나 생각됨)
  746. //검사코드 리스트// 추가검사내역? // 태그 넘버// 수납 내역
  747. //상태 값을 넘겨서 조회를 해야할것와 하지 않아도 될것을 구분하면 좋을꺼 같음.
  748. if(submit("TRAHA00102", false) != true){
  749. return;
  750. }
  751. var i = 0;
  752. //node clear현상때문임..
  753. // 건진정보
  754. var tmpnode = instance1.selectSingleNode("/root/temp/info/rsrvacptinfo");
  755. if(tmpnode != null){
  756. model.copyNode("/root/main/info/rsrvacptinfo/item", "/root/temp/info/rsrvacptinfo");
  757. }
  758. //건진장소 확인
  759. //건진자의 건진장소 구분이 없으면 Default 셋팅된 건진장소 구분을 등록
  760. var patPlacecd = model.getValue("/root/main/info/rsrvacptinfo/item/healexamplacecd");
  761. var defaultPlacecd = model.getValue("/root/init/place/healexamplacecd");
  762. model.setValue("/root/main/info/rsrvacptinfo/item/healexamplacecd", patPlacecd == "" ? defaultPlacecd :patPlacecd)
  763. //추가검사내역
  764. model.removeNodeset("/root/main/info/rsrvacptinfo/addlst");
  765. var nodelst = instance1.selectNodes("/root/temp/info/addlst");
  766. // 2008-06-11 이성인
  767. //.refresh() 의 존재 이유를 모르기 때문에 일단 주석처리 -> 테스트 해본바 잘못된거 없는거 같음
  768. //model.refresh();
  769. if(nodelst.length > 0){
  770. for(i=0; i<nodelst.length; i++){
  771. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  772. }
  773. }
  774. //1차판정내역
  775. //model.removeNodeset("/root/main/info/judgone");
  776. var nodelst = getNodesetCount("/root/temp/info/judgone");
  777. copyNodesetType("root/main/info/judgone", "root/temp/info/judgone", "replace");
  778. /*
  779. for (i = 0; i <= nodelst; i++){
  780. model.setValue("/root/main/info/judgone/judgcd" , model.getValue("/root/temp/info/judgone["+i+"]/judgcd"));
  781. model.setValue("/root/main/info/judgone/judgdetlcd" , model.getValue("/root/temp/info/judgone["+i+"]/judgdetlcd"));
  782. model.setValue("/root/main/info/judgone/etcdetlnm" , model.getValue("/root/temp/info/judgone["+i+"]/etcdetlnm"));
  783. model.setValue("/root/main/info/judgone/dulppkgcd" , model.getValue("/root/temp/info/judgone["+i+"]/dulppkgcd"));
  784. }
  785. */
  786. //추가패키지내역
  787. nodelst = instance1.selectNodes("/root/temp/info/pkglst");
  788. model.removeNodeset("/root/main/info/rsrvacptinfo/pkglst");
  789. // 2008-06-11 이성인
  790. //.refresh() 의 존재 이유를 모르기 때문에 일단 주석처리 -> 테스트 해본바 잘못된거 없는거 같음
  791. //model.refresh();
  792. if(nodelst.length > 0){
  793. for(i=0; i<nodelst.length; i++){
  794. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  795. }
  796. }
  797. copyNodesetType("root/send/selpkgexam","root/main/info/rsrvacptinfo/addlst","replace");//일반검진 추가검사
  798. //태그정보
  799. var tagNode = instance1.selectSingleNode("/root/temp/info/taginfo");
  800. btn_tag.attribute("text") = "태그지급";
  801. if(tagNode != null){
  802. copyNodesetType("/root/main/info/taginfo", "/root/temp/info/taginfo", "replace");
  803. var suppStat = model.getValue("/root/main/info/taginfo/suppstat");
  804. if("0" == suppStat){
  805. btn_tag.attribute("text") = "태그반납";
  806. ipt_tagno.disabled = true;
  807. }
  808. }
  809. //결과상담 예약리스트
  810. model.resetInstanceNode("/root/main/info/rsltcnstinfo/choicnst");
  811. copyNodesetType("/root/main/info/rsltcnstinfo/cnstlst/cnst", "/root/temp/info/cnst", "replace");
  812. if(model.getValue("/root/main/info/rsltcnstinfo/choicnst/outexamyn") == ""){
  813. model.makeValue("/root/main/info/rsltcnstinfo/choicnst/outexamyn", "N");
  814. }
  815. //환자정보
  816. tmpnode = instance1.selectSingleNode("/root/temp/info/patinfo");
  817. if( tmpnode != null){
  818. model.copyNode("/root/main/info/patinfo/item", "/root/temp/info/patinfo");
  819. ipt_pid.disabled = true;
  820. }
  821. //할인액 정보
  822. if(model.getValue("/root/main/info/rsrvacptinfo/item/disccd")!="-"){
  823. var nname = model.getValue("/root/main/info/rsrvacptinfo/item/disccd");
  824. var ncount = getNodesetCount("/root/init/baseinfo/pamcdlst/disccdlst");
  825. for(var i=0; i<ncount; i++){
  826. if(nname == model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/cd")){
  827. model.makeValue("/root/main/info/rsrvacptinfo/item/dcamt", model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/dcamt"));
  828. model.makeValue("/root/main/info/rsrvacptinfo/item/adddcamt", model.getValue("/root/init/baseinfo/pamcdlst/disccdlst["+i+"]/adddcamt"));
  829. }
  830. }
  831. }
  832. //수납정보
  833. tmpnode = instance1.selectSingleNode("/root/temp/info/opmi_out");
  834. if(tmpnode != null){
  835. model.makeNode("/root/main/info/rcptinfo/pkgamt");
  836. model.makeNode("/root/main/info/rcptinfo/addamt");
  837. model.makeNode("/root/main/info/rcptinfo/subtotamt");
  838. model.makeNode("/root/main/info/rcptinfo/preamt");
  839. model.makeNode("/root/main/info/rcptinfo/discamt");
  840. model.makeNode("/root/main/info/rcptinfo/uncoamt");
  841. model.makeNode("/root/main/info/rcptinfo/realamt");
  842. tmpnode = instance1.selectSingleNode("/root/temp/info/opmi_out/opmi_discamt");
  843. if(tmpnode!=null){
  844. model.setValue("/root/main/info/rcptinfo/pkgamt" , model.getValue("/root/temp/info/opmi_out/opmi_baseexamamt"));
  845. model.setValue("/root/main/info/rcptinfo/addamt" , model.getValue("/root/temp/info/opmi_out/opmi_addexamamt"));
  846. model.setValue("/root/main/info/rcptinfo/subtotamt" , model.getValue("/root/temp/info/opmi_out/opmi_totamt"));
  847. model.setValue("/root/main/info/rcptinfo/preamt" , model.getValue("/root/temp/info/opmi_out/opmi_mdlrcptamt"));
  848. model.makeNode("root/temp/info/opmi_out/opmi_discamt");
  849. model.setValue("/root/main/info/rcptinfo/discamt" , model.getValue("/root/temp/info/opmi_out/opmi_discamt"));
  850. model.makeValue("/root/temp/discamt" , model.getValue("/root/temp/info/opmi_out/opmi_discamt"));
  851. model.makeValue("/root/main/info/rcptinfo/uncoamt" , model.getValue("/root/temp/info/opmi_out/opmi_restamt"));
  852. model.makeValue("/root/main/info/rcptinfo/realamt" , model.getValue("/root/temp/info/opmi_out/opmi_rcptamt"));
  853. }
  854. model.makeValue("/root/temp/rcptCheck","true"); //수납된 내역 체크
  855. }else{
  856. model.makeValue("/root/send/srchcmpycd" , model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  857. model.makeValue("/root/send/srchconseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  858. model.makeValue("/root/send/srchconhistseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  859. model.makeValue("/root/send/srchsex" , model.getValue("/root/main/info/patinfo/item/sex"));
  860. model.makeValue("/root/send/srchpkgcd" , model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  861. model.makeValue("/root/send/srchpid" , model.getValue("/root/main/info/patinfo/item/pid"));
  862. model.makeValue("/root/send/srchage" , ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1"), model.getValue("/root/main/info/patinfo/item/rgstno2")));
  863. //2015/10/26 이정택 추가
  864. model.makeValue("/root/send/forgneryn" , model.getValue("/root/main/info/patinfo/item/forgneryn"));
  865. //2015/10/26 이정택 추가
  866. //선수금(RCPTFLAG - P, R / 패키지 금액(할인 포함)/ 수납 내역 조회
  867. submit("TXAHA00903", false);
  868. model.makeValue("/root/main/info/rcptinfo/pkgamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/pkgamt"));
  869. model.makeValue("/root/main/info/rcptinfo/discamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/discamt"));
  870. model.makeValue("/root/temp/discamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/discamt"));
  871. model.makeValue("/root/main/info/rcptinfo/subtotamt" , model.getValue("/root/main/info/rcptinfo/rcptinfo/subtotamt"));
  872. if((model.getValue("/root/main/info/rcptinfo/preamt") == "") || (model.getValue("/root/main/info/rcptinfo/preamt") == "0")){
  873. model.makeValue("/root/main/info/rcptinfo/preamt", model.getValue("/root/main/info/rcptinfo/rcptinfo/cashamt"));
  874. }
  875. if(instance1.selectSingleNode("/root/main/info/rcptinfo/addamt") == null){
  876. model.makeValue("/root/main/info/rcptinfo/rcptinfo/addamt", "0");
  877. }
  878. model.makeValue("/root/main/info/rcptinfo/addamt", model.getValue("/root/main/info/rcptinfo/rcptinfo/addamt"));
  879. if(model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag") == "Y" && isNull(model.getValue("/root/main/info/rsrvacptinfo/item/pkguncocd"))){
  880. model.makeValue("/root/main/info/rsrvacptinfo/item/pkguncocd", model.getValue("/root/main/info/rcptinfo/rcptinfo/pkguncocd"));
  881. }else{
  882. model.makeValue("/root/main/info/rcptinfo/realamt", model.getValue("/root/main/info/rcptinfo/rcptinfo/subtotamt"));
  883. }
  884. model.makeValue("/root/temp/rcptCheck", "false"); //수납된 내역 체크
  885. }
  886. //화면상단정보 설정
  887. var sPid = model.getValue("/root/main/info/rsrvacptinfo/item/pid");
  888. var sOrddd = model.getValue("/root/main/info/rsrvacptinfo/item/orddd");
  889. var iCretno = model.getValue("/root/main/info/rsrvacptinfo/item/cretno");
  890. var statflag = model.getValue("/root/main/info/rsrvacptinfo/item/statflag");
  891. if((sPid != "") && (sOrddd != "") && (iCretno != "") && (iCretno != "0")){
  892. // if(statflag != "" && statflag != "A" && statflag != "B" && statflag != "C" && statflag != "D"){
  893. ahafSetScreenTopPatInfo(sPid, sOrddd, iCretno); // 환자 상단정보 세팅
  894. // }
  895. }
  896. fDcAmtCalc();
  897. fSetBtnStat(); // 권한에 따른 버튼 설정
  898. if(model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag")== "Y" && isNull(model.getValue("/root/main/info/rsrvacptinfo/item/pkguncocd"))){
  899. model.makeValue("/root/main/info/rsrvacptinfo/item/pkguncocd","V02");
  900. }
  901. // 미수코드 에 따라서 공단부담금과 단체부담금 입력란을 제어(2017/02/13 이정택)
  902. fUncoSeparate();
  903. // 미수코드 에 따라서 공단부담금과 단체부담금 입력란을 제어(2017/02/13 이정택)
  904. model.refresh();
  905. }
  906. /** ==========================================================================================================
  907. @author : 손주연
  908. @version : 2007-04-30
  909. @desc : 예약/접수 상세내역 조회
  910. @param :
  911. * vHealExamDetlFg : 건진상세구분
  912. * vPid : 환자등록번호
  913. @return : 건진상세내역
  914. * ==========================================================================================================*/
  915. function ahafGetRsrvAcpDetltInfoWithPid(vHealExamDetlFg, vPid){
  916. if((vHealExamDetlFg == "") || (vPid == "")) return ;
  917. fCheckNodeExist("/root/send/srchhealexamflag" , true );
  918. fCheckNodeExist("/root/send/srchhealexamdetlflag" , true );
  919. fCheckNodeExist("/root/send/srchhealexampid" , true );
  920. fCheckNodeExist("/root/send/srchinstcd" , true );
  921. fCheckNodeExist("/root/send/srchrsrvdd" , true );
  922. fCheckNodeExist("/root/send/srchrsrvno" , true );
  923. var vhf = "";
  924. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")==""){
  925. vhf = fGetHealExamFlag();
  926. }else{
  927. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  928. }
  929. model.setValue("/root/send/srchhealexamflag" , vhf);
  930. model.setValue("/root/send/srchhealexamdetlflag" , vHealExamDetlFg);
  931. model.setValue("/root/send/srchhealexampid" , vPid);
  932. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  933. model.setValue("/root/send/srchrsrvdd" , "");
  934. model.setValue("/root/send/srchrsrvno" , "");
  935. //model.resetInstanceNode("/root/main/info/patinfo/item");
  936. //접수정보 초기화...
  937. //fInitRsrvAcptInfo();
  938. /*
  939. model.makeValue("/root/main/info/rsrvacptinfo/item/cmpycd",model.getValue("/root/main/info/patinfo/item/cmpycd")) ;
  940. model.makeValue("/root/main/info/rsrvacptinfo/item/pkgcd",model.getValue("/root/main/info/patinfo/item/pkgcd")) ;
  941. model.makeValue("/root/main/info/rsrvacptinfo/item/conseq",model.getValue("/root/main/info/patinfo/item/conseq")) ;
  942. model.makeValue("/root/main/info/rsrvacptinfo/item/conhistseq",model.getValue("/root/main/info/patinfo/item/conhistseq")) ;
  943. if (model.getValue("/root/main/info/patinfo/item/cmpycd")!=""){
  944. model.makeValue("/root/main/info/rsrvacptinfo/item/cmpyflag","Y");
  945. }
  946. */
  947. //해당 건진자의 년도 건진예약 내역 존재유무
  948. if(submit("TRAHA00111", false) != true ){
  949. if(model.getValue("/root/temp/rsrvacptkey/item1/linfo")!=""){
  950. var linfo = model.getValue("/root/temp/rsrvacptkey/item1/linfo");
  951. var temp = new Date().getYear();
  952. model.setValue("/root/main/info/rsrvacptinfo/item/latestpkginfo", model.getValue("/root/temp/rsrvacptkey/item1/linfo"));
  953. var chklatestpkginfo = model.getValue("/root/main/info/rsrvacptinfo/item/latestpkginfo");
  954. // if(linfo.indexOf(temp-1) !=-1)
  955. if(temp - parseInt(chklatestpkginfo.substr(0, 4)) <=1){
  956. //비자건진은 연속건진 없음 20081004 윤찬우 수정
  957. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag") != "G02"){
  958. var rtn = messageBox("연속건진 할인을 사용 ", "S001") ;
  959. //6.예 7. 아니오 2.취소
  960. //6예이면 연속건진 할인을 사용하므로 할인계정에 셋팅
  961. if(rtn == 6){
  962. model.setValue( cmb_disccd.attribute("ref") , "F71");
  963. //messageBox("연속건진 대상자입니다 ", "E999") ;
  964. }
  965. }
  966. }
  967. }
  968. return ;
  969. }
  970. if(model.getValue("/root/temp/rsrvacptkey/item1/linfo")!=""){
  971. var linfo = model.getValue("/root/temp/rsrvacptkey/item1/linfo");
  972. var temp = new Date().getYear();
  973. model.setValue("/root/main/info/rsrvacptinfo/item/latestpkginfo", model.getValue("/root/temp/rsrvacptkey/item1/linfo"));
  974. var chklatestpkginfo = model.getValue("/root/main/info/rsrvacptinfo/item/latestpkginfo");
  975. //연속건진을 위해 수정 2008-05-29 이성인
  976. // if(linfo.indexOf(temp-1) !=-1)
  977. if(temp - parseInt(chklatestpkginfo.substr(0,4)) <=1 ){
  978. //비자건진은 연속건진 없음 20081004 윤찬우 수정
  979. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag") != "G02"){
  980. var rtn = messageBox("연속건진 할인을 사용 ", "S001") ;
  981. //6.예 7. 아니오 2.취소
  982. //6예이면 연속건진 할인을 사용하므로 할인계정에 셋팅
  983. if(rtn == 6){
  984. model.setValue( cmb_disccd.attribute("ref") , "F71");
  985. }
  986. }
  987. }
  988. }
  989. setPkgInfo();
  990. var tmpnode = instance1.selectSingleNode("/root/temp/rsrvacptkey/item/rsrvdd");
  991. if(tmpnode == null){
  992. fSetBtnStat();
  993. return ;
  994. }
  995. //*Q005=조회 하시겠습니까?
  996. if(messageBox("당해년도의 예약내역이 존재합니다.", "Q005") != 6 ){
  997. fSetBtnStat();
  998. return ;
  999. }else{
  1000. }
  1001. model.setValue("/root/send/srchrsrvdd", model.getValue("/root/temp/rsrvacptkey/rsrvdd") );
  1002. model.setValue("/root/send/srchrsrvno", model.getValue("/root/temp/rsrvacptkey/rsrvno") );
  1003. if(submit("TRAHA00102", false) != true){
  1004. return;
  1005. }
  1006. var i = 0;
  1007. //node clear현상때문임..
  1008. tmpnode = instance1.selectSingleNode("/root/temp/info/rsrvacptinfo");
  1009. if(tmpnode != null){
  1010. model.copyNode("/root/main/info/rsrvacptinfo/item", "/root/temp/info/rsrvacptinfo");
  1011. }
  1012. var nodelst = instance1.selectNodes("/root/temp/info/addlst");
  1013. if(nodelst.length > 0){
  1014. for(i=0; i<nodelst.length; i++){
  1015. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  1016. }
  1017. }
  1018. nodelst = instance1.selectNodes("/root/temp/info/pkglst");
  1019. if(nodelst.length > 0){
  1020. for(i=0; i<nodelst.length; i++){
  1021. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  1022. }
  1023. }
  1024. /*
  1025. tmpnode = instance1.selectSingleNode("/root/temp/info/patinfo");
  1026. if( tmpnode != null){
  1027. model.copyNode("/root/main/info/patinfo/item", "/root/temp/info/patinfo");
  1028. }
  1029. */
  1030. //화면상단정보 설정
  1031. var sPid = model.getValue("/root/main/info/rsrvacptinfo/item/pid");
  1032. var sOrddd = model.getValue("/root/main/info/rsrvacptinfo/item/orddd");
  1033. var iCretno = model.getValue("/root/main/info/rsrvacptinfo/item/cretno");
  1034. var statflag = model.getValue("/root/main/info/rsrvacptinfo/item/statflag");
  1035. if((sPid != "") && (sOrddd != "") && (iCretno != "") && (iCretno != "0")){
  1036. // if(statflag != "" && statflag != "A" && statflag != "B" && statflag != "C" && statflag != "D"){
  1037. ahafSetScreenTopPatInfo(sPid, sOrddd, iCretno);
  1038. // }
  1039. }
  1040. fSetBtnStat();
  1041. model.refresh();
  1042. }
  1043. //예약 시 문진표 자동출력
  1044. function ahafGetRsrvAcpDetltInfoWithPid_R(vHealExamDetlFg, vPid){
  1045. if((vHealExamDetlFg == "") || (vPid == "")) return;
  1046. fCheckNodeExist("/root/send/srchhealexamflag" , true );
  1047. fCheckNodeExist("/root/send/srchhealexamdetlflag" , true );
  1048. fCheckNodeExist("/root/send/srchhealexampid" , true );
  1049. fCheckNodeExist("/root/send/srchinstcd" , true );
  1050. fCheckNodeExist("/root/send/srchrsrvdd" , true );
  1051. fCheckNodeExist("/root/send/srchrsrvno" , true );
  1052. var vhf = "";
  1053. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag") == ""){
  1054. vhf = fGetHealExamFlag();
  1055. }else{
  1056. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  1057. }
  1058. model.setValue("/root/send/srchhealexamflag" , vhf);
  1059. model.setValue("/root/send/srchhealexamdetlflag" , vHealExamDetlFg);
  1060. model.setValue("/root/send/srchhealexampid" , vPid);
  1061. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  1062. model.setValue("/root/send/srchrsrvdd" , "" );
  1063. model.setValue("/root/send/srchrsrvno" , "" );
  1064. //해당 건진자의 년도 건진예약 내역 존재유무
  1065. if(submit("TRAHA00111",false) != true){
  1066. if(model.getValue("/root/temp/rsrvacptkey/item1/linfo")!=""){
  1067. var linfo = model.getValue("/root/temp/rsrvacptkey/item1/linfo");
  1068. var temp = new Date().getYear();
  1069. model.setValue("/root/main/info/rsrvacptinfo/item/latestpkginfo", model.getValue("/root/temp/rsrvacptkey/item1/linfo"));
  1070. }
  1071. return ;
  1072. }
  1073. if(model.getValue("/root/temp/rsrvacptkey/item1/linfo") != ""){
  1074. var linfo = model.getValue("/root/temp/rsrvacptkey/item1/linfo");
  1075. var temp = new Date().getYear();
  1076. model.setValue("/root/main/info/rsrvacptinfo/item/latestpkginfo",model.getValue("/root/temp/rsrvacptkey/item1/linfo"));
  1077. }
  1078. setPkgInfo();
  1079. model.setValue("/root/send/srchrsrvdd" , model.getValue("/root/temp/rsrvacptkey/rsrvdd") );
  1080. model.setValue("/root/send/srchrsrvno" , model.getValue("/root/temp/rsrvacptkey/rsrvno") );
  1081. if(submit("TRAHA00102", false) != true){
  1082. return;
  1083. }
  1084. var i = 0;
  1085. //node clear현상때문임..
  1086. tmpnode = instance1.selectSingleNode("/root/temp/info/rsrvacptinfo");
  1087. if(tmpnode != null){
  1088. model.copyNode("/root/main/info/rsrvacptinfo/item", "/root/temp/info/rsrvacptinfo");
  1089. }
  1090. var nodelst = instance1.selectNodes("/root/temp/info/addlst");
  1091. if(nodelst.length > 0){
  1092. for(i=0; i<nodelst.length; i++){
  1093. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  1094. }
  1095. }
  1096. nodelst = instance1.selectNodes("/root/temp/info/pkglst");
  1097. if(nodelst.length > 0){
  1098. for(i=0; i<nodelst.length; i++){
  1099. model.duplicate("/root/main/info/rsrvacptinfo", nodelst.item(i));
  1100. }
  1101. }
  1102. model.refresh();
  1103. }
  1104. /** ==========================================================================================================
  1105. @author : 손주연
  1106. @version : 2007-04-30
  1107. @desc : 주소 검색
  1108. @param :
  1109. @return :
  1110. * ==========================================================================================================*/
  1111. function fSetAddr(vCond, vDestXPath) {
  1112. fCheckNodeExist("/root/temp/addr/zipcd1" , true);
  1113. fCheckNodeExist("/root/temp/addr/zipcd2" , true);
  1114. fCheckNodeExist("/root/temp/addr/zipcdseq" , true);
  1115. fCheckNodeExist("/root/temp/addr/addr" , true);
  1116. zbcfOpenZipCodeList("combination", "", "/root/temp/addr/zipcd1", "/root/temp/addr/zipcd2", "/root/temp/addr/zipcdseq", "/root/temp/addr/addr");
  1117. var node =model.getValue("/root/temp/addr/zipcd1");
  1118. if( node != "" ){
  1119. model.makeValue( vDestXPath + "/zipcd" + vCond + "1" , model.getValue("/root/temp/addr/zipcd1") );
  1120. model.makeValue( vDestXPath + "/zipcd" + vCond + "2" , model.getValue("/root/temp/addr/zipcd2") );
  1121. model.makeValue( vDestXPath + "/zipcdseq" + vCond , model.getValue("/root/temp/addr/zipcdseq") );
  1122. model.makeValue( vDestXPath + "/addr" + vCond , model.getValue("/root/temp/addr/addr") );
  1123. model.setFocus("ipt_detladdr");
  1124. model.refresh();
  1125. }
  1126. }
  1127. /**==================================================================================================================
  1128. @author : 손주연
  1129. @version : 2007-06-30
  1130. @desc : 주소 검색
  1131. @param :
  1132. * vCond : 주소1,2구분.(발송주소관련)
  1133. * vDestXPath : 목적노드(주소가 입력될)
  1134. * vSrchCond : 검색조건 ( 주소(‘address’), 동명/아파트명/건물명(‘combination’), 우편번호(‘zipcode’) )
  1135. * vSrchCondNm : 조건명
  1136. @return : 주소상세내역
  1137. *====================================================================================================================*/
  1138. function ahafSetAddr(vCond, vDestXPath, vSrchCond, vSrchCondNm) {
  1139. model.resetInstanceNode("/root/temp/address");
  1140. model.makeNode("/root/temp/address/zipcd1");
  1141. model.makeNode("/root/temp/address/zipcd2");
  1142. model.makeNode("/root/temp/address/zipcdseq");
  1143. model.makeNode("/root/temp/address/addr");
  1144. model.makeNode("/root/temp/address/detladdr1");
  1145. model.makeNode("/root/temp/address/builno");
  1146. model.makeNode("/root/temp/address/gubuilnm");
  1147. zbcfOpenZipCodeList(vSrchCond
  1148. , vSrchCondNm
  1149. , "/root/temp/address/zipcd1"
  1150. , "/root/temp/address/zipcd2"
  1151. , "/root/temp/address/zipcdseq"
  1152. , "/root/temp/address/addr"
  1153. , "hangul"
  1154. , "/root/temp/address/detladdr1"
  1155. , "/root/temp/address/builno"
  1156. , "/root/temp/address/gubuilnm");
  1157. var node = model.getValue("/root/temp/address/zipcd1");
  1158. if( node != "" ){
  1159. model.setValue( vDestXPath + "/zipcd" + vCond + "1" , model.getValue("/root/temp/address/zipcd1"));
  1160. model.setValue( vDestXPath + "/zipcd" + vCond + "2" , model.getValue("/root/temp/address/zipcd2"));
  1161. model.setValue( vDestXPath + "/zipcdseq" + vCond , model.getValue("/root/temp/address/zipcdseq"));
  1162. model.setValue( vDestXPath + "/addr" + vCond , model.getValue("/root/temp/address/addr"));
  1163. model.setValue( vDestXPath + "/detladdr" + vCond , model.getValue("/root/temp/address/detladdr1"));
  1164. model.setValue( vDestXPath + "/builno" + vCond , model.getValue("/root/temp/address/builno"));
  1165. model.makeValue( vDestXPath + "/detladdr" + vCond , model.getValue("/root/temp/address/gubuilnm"));
  1166. if( vCond == "1" ) vCond = "";
  1167. model.setFocus("ipt_detladdr" + vCond );
  1168. model.refresh();
  1169. }
  1170. return "/root/temp/address";
  1171. }
  1172. /**==================================================================================================================
  1173. @author : 손주연
  1174. @version : 2007-06-30
  1175. @desc : Calendar관련 draw 공용 함수
  1176. @param :
  1177. @return :
  1178. *====================================================================================================================*/
  1179. function initCalendar(){
  1180. var curDate = getCurrentDate().toDate();
  1181. model.setValue("/root/temp/calendar/year", curDate.getDateFormat('YYYY'));
  1182. model.setValue("/root/temp/calendar/month", curDate.getDateFormat('MM'));
  1183. model.refresh();
  1184. setCalendar(curDate);
  1185. }
  1186. function setCalendar(dateObj) {
  1187. model.removeNodeset("/root/temp/calendar/weeklist/list"); //그리드 초기화
  1188. dateObj.setDate(1);
  1189. var startDay = dateObj.getDay();
  1190. var days = dateObj.getMonthDay();
  1191. var rows = Math.ceil( ( startDay + days ) / 7 );
  1192. for(var i=0; i<rows; i++){
  1193. grd_calendar.addRow(false);
  1194. }
  1195. grd_calendar.rebuild();
  1196. var rowIndex = grd_calendar.fixedRows;
  1197. var colIndex = startDay;
  1198. for(var i=1; i<=days; i++ ){
  1199. grd_calendar.valueMatrix(rowIndex, colIndex) = i;
  1200. colIndex++;
  1201. if(colIndex == 7){
  1202. colIndex = 0;
  1203. rowIndex++;
  1204. }
  1205. }
  1206. }
  1207. function setCellColor(gridObj){
  1208. var calRow = gridObj.row ;
  1209. var calCol = gridObj.col;
  1210. var tmpCalCol;
  1211. if( calCol < 7 ){
  1212. tmpCalCol = calCol + 7;
  1213. }else{
  1214. tmpCalCol = calCol - 7;
  1215. }
  1216. gridObj.rebuildStyle();
  1217. gridObj.cellStyle("background-color", calRow, calCol) = "#daa7d9";
  1218. gridObj.cellStyle("background-color", calRow, tmpCalCol) = "#daa7d9";
  1219. }
  1220. /**==================================================================================================================
  1221. @author : 손주연
  1222. @version : 2007-06-30
  1223. @desc : Calendar 선택한 일자 얻기
  1224. @param :
  1225. * grdObj( calendar grid control )
  1226. @return : date (YYYYMMDD)
  1227. *====================================================================================================================*/
  1228. function fGetCalendarDate(grdObj){
  1229. var cal_row = grdObj.row;
  1230. var cal_col = grdObj.col;
  1231. if( cal_col > 6) cal_col -= 7;
  1232. var rsrvdd = "";
  1233. if( cal_row > 0 ){
  1234. var dd = model.getValue( grdObj.nodeset + "[" + cal_row + "]/" + grdObj.colAttribute( cal_col,"ref") ) ;
  1235. if( dd.length < 2 ) {
  1236. dd = "0" + dd;
  1237. }
  1238. rsrvdd = model.getValue("/root/temp/calendar/year") + model.getValue("/root/temp/calendar/month") + dd ;
  1239. }
  1240. return rsrvdd;
  1241. }
  1242. /**==================================================================================================================
  1243. @author : 손주연
  1244. @version : 2007-06-30
  1245. @desc : Calendar 새로그리기
  1246. @param :
  1247. * vDateFg : Y-년도, M-월
  1248. * vIncrease : 증감(+/-)
  1249. @return : date (YYYYMMDD)
  1250. *====================================================================================================================*/
  1251. function fHRefreshCalender(vDateFg, vIncrease){
  1252. if( (vDateFg != "Y" ) && (vDateFg != "M") ) {
  1253. return ;
  1254. }
  1255. var iTerm = parseInt(vIncrease);
  1256. var isMonth = model.getValue("/root/temp/calendar/month");
  1257. var isYear = model.getValue("/root/temp/calendar/year");
  1258. var isDate = (isYear+isMonth+1).toDate().getAddDate(iTerm,vDateFg);
  1259. model.setValue("/root/temp/calendar/year", isDate.getDateFormat('YYYY'));
  1260. model.setValue("/root/temp/calendar/month", isDate.getDateFormat('MM'));
  1261. model.refresh();
  1262. setCalendar(isDate);
  1263. }
  1264. /**==================================================================================================================
  1265. @author : 손주연
  1266. @version : 2007-04-18
  1267. @desc : fExcelUpload 엑셀파일을 해당 그리드로 in
  1268. @param : grid object
  1269. *====================================================================================================================*/
  1270. function fExcelUpload(grdObj){
  1271. if( grdObj == null ){
  1272. messageBox("grdObj is null!", "E999");
  1273. return ;
  1274. }
  1275. var fileName = window.fileDialog("open", ",", false, "", "xls", "All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  1276. grdObj.loadExcel(fileName, 1, true);
  1277. var cnt = grdObj.rows;
  1278. var i = 0;
  1279. for( i = 1; i < cnt +1 ; i++)
  1280. {
  1281. grdObj.addStatus(i, "insert");
  1282. }
  1283. grdObj.deleteRow(1);
  1284. grdObj.refresh();
  1285. }
  1286. /**==================================================================================================================
  1287. @author : 손주연
  1288. @version : 2007-04-18
  1289. @desc : 질환코드 선택 창 open
  1290. @param : grid object
  1291. * SPAHB00200_PARAM1 : 현재화면ID
  1292. * SPAHB00200_PARAM2 : 질환코드
  1293. * SPAHB00200_PARAM3 : 질환명
  1294. * SPAHB00200_PARAM4 : 대상 nodeset count
  1295. * SPAHB00200_PARAM5 : 대상 nodeset
  1296. *====================================================================================================================*/
  1297. function ahafGetSickCd(vOpenerID, vCondCd, vCondNm, vDestCnt, vDestXPath, vMappSickCd ){
  1298. clearParameter("SPAHB00200_PARAM1");
  1299. clearParameter("SPAHB00200_PARAM2");
  1300. clearParameter("SPAHB00200_PARAM3");
  1301. clearParameter("SPAHB00200_PARAM4");
  1302. clearParameter("SPAHB00200_PARAM5");
  1303. clearParameter("SPAHB00200_PARAM6");
  1304. setParameter ("SPAHB00200_PARAM1", vOpenerID);
  1305. setParameter ("SPAHB00200_PARAM2", vCondCd);
  1306. setParameter ("SPAHB00200_PARAM3", vCondNm);
  1307. setParameter ("SPAHB00200_PARAM4", vDestCnt);
  1308. setParameter ("SPAHB00200_PARAM5", vDestXPath);
  1309. setParameter ("SPAHB00200_PARAM6", vMappSickCd);
  1310. modal("SPAHB00200");
  1311. }
  1312. /**==================================================================================================================
  1313. @author : 손범성
  1314. @version : 2007-12-18
  1315. @desc : 검사코드 선택 창 open
  1316. @param : grid object
  1317. * SPAHB00500_PARAM1 : 현재화면ID
  1318. * SPAHB00500_PARAM2 : 검사코드
  1319. * SPAHB00500_PARAM3 : 검사명
  1320. * SPAHB00500_PARAM4 : 대상 nodeset count
  1321. * SPAHB00500_PARAM5 : 대상 nodeset
  1322. *====================================================================================================================*/
  1323. function ahafGetTestCd(vOpenerID, vCondCd, vCondNm, vDestCnt, vDestXPath,vjudgexmpcd ){
  1324. clearParameter("SPAHB00600_PARAM1");
  1325. clearParameter("SPAHB00600_PARAM2");
  1326. clearParameter("SPAHB00600_PARAM3");
  1327. clearParameter("SPAHB00600_PARAM4");
  1328. clearParameter("SPAHB00600_PARAM5");
  1329. clearParameter("SPAHB00600_PARAM6");
  1330. clearParameter("SPAHB00600_PARAM7");
  1331. clearParameter("SPAHB00600_PARAM8");
  1332. setParameter ("SPAHB00600_PARAM1", vOpenerID);
  1333. setParameter ("SPAHB00600_PARAM2", vCondCd);
  1334. setParameter ("SPAHB00600_PARAM3", vCondNm);
  1335. setParameter ("SPAHB00600_PARAM4", vDestCnt);
  1336. setParameter ("SPAHB00600_PARAM5", vDestXPath);
  1337. setParameter ("SPAHB00600_PARAM6", vjudgexmpcd);
  1338. modal("SPAHB00600");
  1339. }
  1340. /**==================================================================================================================
  1341. @author : 손주연
  1342. @version : 2007-04-18
  1343. @desc : 처방가져오기
  1344. @param :
  1345. * vOpenerID : 현재화면ID
  1346. * vPkgFg :
  1347. * bMultiyn : 다중체크여부
  1348. * vCond : 검색구분(cd/nm)
  1349. * vCdnm : 검색조건(코드/명칭)
  1350. * vHeDetlFg : 건진상세구분
  1351. * vSex : 성별구분(M/F)
  1352. * SPAHA00200_PARAM1 : P=>pkg, C=>단체pkg, A=>추가검사,S=>선택검사(추가검사와 동일한 검색조건임), T=>일반검사코드
  1353. * SPAHA00200_PARAM2 : 검색구분(cd/nm)
  1354. * SPAHA00200_PARAM3 : 검색조건(코드/명칭)
  1355. * SPAHA00200_PARAM4 : 기관코드
  1356. * SPAHA00200_PARAM5 : 건진구분( 공통코드 A0068참고)
  1357. * SPAHA00200_PARAM6 : 건진구분( 공통코드 A0069, A0070 참고)
  1358. * SPAHA00200_PARAM7 : vOpenerID
  1359. * SPAHA00200_PARAM8 : 성별구분(M/F)
  1360. * SPAHA00200_PARAM9 : 다중선택여부(Y/N)
  1361. * SPAHA00200_PARAM10 : single 입력일 경우 대상 nodeset
  1362. *====================================================================================================================*/
  1363. function fGetPkgCd(vOpenerID, vPkgFg, bMultiyn,vCond, vCdnm , vHealExamDetlFlag, vSex, vDestXPath, vSrchDisableYN,vFrom,vage,vbrthareacnts,vforgneryn, vagencyrate ){
  1364. clearParameter("SPAHA00200_PARAM1");
  1365. clearParameter("SPAHA00200_PARAM2");
  1366. clearParameter("SPAHA00200_PARAM3");
  1367. clearParameter("SPAHA00200_PARAM4");
  1368. clearParameter("SPAHA00200_PARAM5");
  1369. clearParameter("SPAHA00200_PARAM6");
  1370. clearParameter("SPAHA00200_PARAM7");
  1371. clearParameter("SPAHA00200_PARAM8");
  1372. clearParameter("SPAHA00200_PARAM9");
  1373. clearParameter("SPAHA00200_PARAM10");
  1374. clearParameter("SPAHA00200_PARAM11");
  1375. clearParameter("SPAHA00200_PARAM12");
  1376. clearParameter("SPAHA00200_PARAM13");
  1377. clearParameter("SPAHA00200_PARAM14");
  1378. clearParameter("SPAHA00200_PARAM15");
  1379. //2015/10/21 이정택 추가(외국인 MOU요율관련)
  1380. clearParameter("SPAHA00200_PARAM16");
  1381. setParameter ("SPAHA00200_PARAM1" , vPkgFg);
  1382. setParameter ("SPAHA00200_PARAM2" , vCond);
  1383. setParameter ("SPAHA00200_PARAM3" , vCdnm);
  1384. setParameter ("SPAHA00200_PARAM4" , getUserInfo("dutplceinstcd"));
  1385. if(vHealExamDetlFlag!="G01"){
  1386. setParameter ("SPAHA00200_PARAM5" , fGetHealExamFlag() );
  1387. } else {
  1388. setParameter ("SPAHA00200_PARAM5" , "G" );
  1389. }
  1390. setParameter ("SPAHA00200_PARAM6" , vHealExamDetlFlag);
  1391. setParameter ("SPAHA00200_PARAM7" , vOpenerID);
  1392. setParameter ("SPAHA00200_PARAM8" , vSex);
  1393. setParameter ("SPAHA00200_PARAM9" , bMultiyn);
  1394. setParameter ("SPAHA00200_PARAM10" , vDestXPath);
  1395. setParameter ("SPAHA00200_PARAM11" , vSrchDisableYN);
  1396. setParameter ("SPAHA00200_PARAM12" , vFrom);
  1397. setParameter ("SPAHA00200_PARAM13" , vage);
  1398. setParameter ("SPAHA00200_PARAM14" , vbrthareacnts);
  1399. setParameter ("SPAHA00200_PARAM15" , vforgneryn);
  1400. //2015/10/21 이정택 추가(외국인 MOU요율관련)
  1401. setParameter ("SPAHA00200_PARAM16" , vagencyrate);
  1402. //2015/10/21 이정택 추가(외국인 MOU요율관련)
  1403. modal("SPAHA00200");
  1404. }
  1405. function fGetPkgCdAuto(vOpenerID, vPkgFg, bMultiyn,vCond, vCdnm , vHealExamDetlFlag, vSex, vDestXPath, vSrchDisableYN,vFrom,vage,vbrthareacnts,vforgneryn){
  1406. clearParameter("SPAHA00200_PARAM1");
  1407. clearParameter("SPAHA00200_PARAM2");
  1408. clearParameter("SPAHA00200_PARAM3");
  1409. clearParameter("SPAHA00200_PARAM4");
  1410. clearParameter("SPAHA00200_PARAM5");
  1411. clearParameter("SPAHA00200_PARAM6");
  1412. clearParameter("SPAHA00200_PARAM7");
  1413. clearParameter("SPAHA00200_PARAM8");
  1414. clearParameter("SPAHA00200_PARAM9");
  1415. clearParameter("SPAHA00200_PARAM10");
  1416. clearParameter("SPAHA00200_PARAM11");
  1417. clearParameter("SPAHA00200_PARAM12");
  1418. clearParameter("SPAHA00200_PARAM13");
  1419. clearParameter("SPAHA00200_PARAM14");
  1420. clearParameter("SPAHA00200_PARAM15");
  1421. setParameter ("SPAHA00200_PARAM1" , vPkgFg);
  1422. setParameter ("SPAHA00200_PARAM2" , vCond);
  1423. setParameter ("SPAHA00200_PARAM3" , vCdnm);
  1424. setParameter ("SPAHA00200_PARAM4" , getUserInfo("dutplceinstcd"));
  1425. if(vHealExamDetlFlag!="G01"){
  1426. setParameter ("SPAHA00200_PARAM5" , fGetHealExamFlag() );
  1427. } else {
  1428. setParameter ("SPAHA00200_PARAM5" , "G" );
  1429. }
  1430. setParameter ("SPAHA00200_PARAM6" , vHealExamDetlFlag);
  1431. setParameter ("SPAHA00200_PARAM7" , vOpenerID);
  1432. setParameter ("SPAHA00200_PARAM8" , vSex);
  1433. setParameter ("SPAHA00200_PARAM9" , bMultiyn);
  1434. setParameter ("SPAHA00200_PARAM10" , vDestXPath);
  1435. setParameter ("SPAHA00200_PARAM11" , vSrchDisableYN);
  1436. setParameter ("SPAHA00200_PARAM12" , vFrom);
  1437. setParameter ("SPAHA00200_PARAM13" , vage);
  1438. setParameter ("SPAHA00200_PARAM14" , vbrthareacnts);
  1439. setParameter ("SPAHA00200_PARAM15" , vforgneryn);
  1440. modal("SPAHA04012");
  1441. }
  1442. /**==================================================================================================================
  1443. @author : 손주연
  1444. @version : 2007-07-05
  1445. @desc : 검사코드 다중 선택 후 opener 화면에서 추가검사 setting.
  1446. @param :
  1447. * vGrdObj(대상grid ID)
  1448. * vTestCdCol( TestCode Column 순번)
  1449. * vSrcXPath(검사코드선택 창으로 입력한 대상노드와 동일.)
  1450. *====================================================================================================================*/
  1451. function fSetAddList(vGrdObj, vTestCdCol, vSrcXPath, vDupCheck, vPkgYN , vPkgCd) {
  1452. if( model.getValue("/root/temp/okflag") != "ok" ) return ;
  1453. if( vGrdObj == null ) return ;
  1454. if( vSrcXPath == "" ) return ;
  1455. var cnt = getNodesetCount(vSrcXPath);
  1456. var grdcnt = vGrdObj.rows;
  1457. var vTestcd = "";
  1458. var vTestnm = "";
  1459. var i = 0;
  1460. if( vPkgYN == "Y" ){
  1461. for( i = 1 ; i <= cnt ; i++ ){
  1462. vTestcd = model.getValue(vSrcXPath + "[" + i + "]/pkgcd" );
  1463. vTestnm = model.getValue(vSrcXPath + "[" + i + "]/pkgnm" );
  1464. if( vDupCheck == "Y" ) {
  1465. if( fCheckDup(vGrdObj , vTestCdCol, vTestcd ) == false ){
  1466. if( messageBox("중복되는 Pkg코드[" + vTestcd + " - " + vTestnm +"] 를 추가 ", "S001") != 6 ){
  1467. continue ;
  1468. }
  1469. }
  1470. }
  1471. var danga = model.getValue(vSrcXPath + "[" + i + "]/scoreamt" );
  1472. /*
  1473. 단체 원단위 절사하지 않도록 주석처리
  1474. if(model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag") == "Y") {
  1475. danga = parseInt(parseFloat(danga)* 0.1)*10;
  1476. }else {
  1477. danga = danga;
  1478. }*/
  1479. vGrdObj.addRow();
  1480. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/sel");
  1481. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/sel" , "Y" );
  1482. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/pkgcd" , vTestcd );
  1483. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/pkgnm" ,vTestnm );
  1484. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/uncocd" );
  1485. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/uncocd" , "V03" );
  1486. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/scoreamt" );
  1487. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/scoreamt" ,danga);
  1488. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/addtotamt" );
  1489. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/addtotamt" ,danga);
  1490. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" );
  1491. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" ,model.getValue(vSrcXPath + "[" + i + "]/calcscorcd" ) );
  1492. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/testdiscyn" ,model.getValue(vSrcXPath + "[" + i + "]/testdiscyn" ) );
  1493. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/gndrflag" ,model.getValue(vSrcXPath + "[" + i + "]/gndrflag" ) );
  1494. grdcnt++;
  1495. }
  1496. }
  1497. else {
  1498. for( i = 1 ; i <= cnt ; i++ ){
  1499. vTestcd = model.getValue(vSrcXPath + "[" + i + "]/testcd" );
  1500. vTestnm = model.getValue(vSrcXPath + "[" + i + "]/testnm" );
  1501. if( vDupCheck == "Y" ) {
  1502. if( fCheckDup(vGrdObj , vTestCdCol, vTestcd ) == false ){
  1503. if( messageBox("중복되는 검사코드[" + vTestcd + " - " + vTestnm +"] 를 추가 ", "S001") != 6 ){
  1504. continue ;
  1505. }
  1506. }
  1507. }
  1508. var danga = model.getValue(vSrcXPath + "[" + i + "]/scoreamt" );
  1509. /*
  1510. 단체 원단위 절사하지 않도록 주석처리
  1511. if(model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag") == "Y") {
  1512. danga = parseInt(parseFloat(danga)* 0.1)*10;
  1513. }else {
  1514. danga = danga;
  1515. }*/
  1516. vGrdObj.addRow();
  1517. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/sel");
  1518. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/sel" , "Y" );
  1519. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/testflag");
  1520. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/testflag" , "A" );
  1521. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/testcd" , vTestcd );
  1522. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/testnm" ,vTestnm );
  1523. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/uncocd" );
  1524. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/uncocd" , "V01" );
  1525. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/scoreamt" );
  1526. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/scoreamt" ,danga );
  1527. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/addtotamt" );
  1528. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/addtotamt" ,danga );
  1529. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" );
  1530. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" ,model.getValue(vSrcXPath + "[" + i + "]/calcscorcd" ) );
  1531. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/prcptims" , "1" );
  1532. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/prcpdayno" , "1" );
  1533. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/testdiscyn" , model.getValue(vSrcXPath + "[" + i + "]/testdiscyn" ) );
  1534. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/gndrflag" , model.getValue(vSrcXPath + "[" + i + "]/gndrflag" ) );
  1535. //묵음처방 구분 추가 (2007.10.11 BY 손주연 )
  1536. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/grupflag" );
  1537. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/grupflag" ,model.getValue(vSrcXPath + "[" + i + "]/grupflag" ) );
  1538. grdcnt++;
  1539. }
  1540. }
  1541. /*
  1542. * 패키지 내부검사 중복여부 체크
  1543. */
  1544. model.removeNodeSet("/root/send/test");
  1545. // for( i = 1; i <= vGrdObj.rows ; i++)
  1546. if(vGrdObj.rows >= 2){
  1547. for( i = 1; i <= vGrdObj.rows - 1 ; i++)// 고정행까지 추가하는거같아서 -1 했음.
  1548. {
  1549. model.makeValue("/root/send/test[" + i +"]/pkgcd" , model.getValue(vGrdObj.nodeset + "[" + i + "]/testcd"));
  1550. model.makeValue("/root/send/test[" + i +"]/grupflag" , model.getValue(vGrdObj.nodeset + "[" + i + "]/grupflag"));
  1551. }
  1552. if(vPkgCd != "") { model.makeValue("/root/send/test/srchpkgcd" , vPkgCd);}
  1553. if(vPkgCd != "") { model.makeValue("/root/send/test/healexamflag" , fGetHealExamFlag());}
  1554. model.makeValue("/root/send/test/cmpycd" , model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  1555. model.makeValue("/root/send/test/conseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  1556. model.makeValue("/root/send/test/conhistseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  1557. model.removeNodeSet("/root/send/testcount");
  1558. submit("TRAHA00013",false);//패키지내 중복 체크*/
  1559. }
  1560. var testnm ="";
  1561. var testnmcount ="";
  1562. var cnt = getNodesetCount("/root/tmp/testcount/testcount");
  1563. if (cnt != 0)
  1564. {
  1565. for (var i=0;i <=cnt ; i++)
  1566. {
  1567. testnm = model.getValue("/root/tmp/testcount/testcount["+i+"]/testnm");
  1568. if (testnm!="")
  1569. {
  1570. testnmcount = testnmcount + testnm + "/";
  1571. }
  1572. }
  1573. messageBox(testnmcount + " 검사가 중복되었습니다","E999");
  1574. model.removeNodeset("/root/tmp/testcount/testcount");
  1575. }
  1576. model.refresh();
  1577. }
  1578. /**==================================================================================================================
  1579. @author : 손주연
  1580. @version : 2007-07-05
  1581. @desc : grid dup value check.
  1582. @param :
  1583. * vGrdObj : grid control
  1584. * vCheckCol : check대상 column ( 0,1,2,...)
  1585. * vCheckVal : dup check 대상 값
  1586. *====================================================================================================================*/
  1587. function fCheckDup( vGrdObj, vCheckCol , vCheckVal ){
  1588. //if( vGrdObj.elementName() != "xforms:grid" ){
  1589. // messageBox("Invalid ObjName!", "E999");
  1590. // return false ;
  1591. //}
  1592. var cnt = vGrdObj.rows ;
  1593. for( var i = 1; i <= cnt ; i++) {
  1594. if( vGrdObj.valueMatrix(i, vCheckCol) == vCheckVal ){
  1595. return false;
  1596. }
  1597. }
  1598. }
  1599. /**==================================================================================================================
  1600. @author : 손주연
  1601. @version : 2007-07-05
  1602. @desc : 임시 건진금액 합계
  1603. @param :
  1604. * vGrdObj : grid control
  1605. * vCalcCol : 금액 column ( 0,1,2,...)
  1606. * vPkgAmt : 패키지금액
  1607. *====================================================================================================================*/
  1608. function fTempCalc( vPkgAmt , vGrdObj , vCalcCol , vPrcpTimsCol, vTotAmtCtrlID, vPkgAmtCtrlID, vAddAmtCtrlID){
  1609. /* var iTotAmt = 0;
  1610. var iAddAmt = 0;
  1611. var iTotAdd = 0;
  1612. var iTotAddExm = 0;
  1613. var vTotAddExm =0;
  1614. var vTotAdd =0;
  1615. var iPkgAmt = parseInt(vPkgAmt);
  1616. var vAddAmt = "";
  1617. var vPrcpTims = "";
  1618. var iDiscAmt =0;*///fDcAmtCalc()에서 처리
  1619. /* iTotAddExm = model.getValue("/root/main/info/rcptinfo/subtotamt"); //소계
  1620. iTotAdd = model.getValue("/root/main/info/rcptinfo/addamt");//추가검사금액
  1621. if(vPkgAmt == "") vPkgAmt = "0";
  1622. if(iTotAddExm == "")
  1623. {
  1624. vTotAddExm = 0;
  1625. } else {
  1626. vTotAddExm = parseInt(iTotAddExm);
  1627. }
  1628. if(iTotAdd == "")
  1629. {
  1630. vTotAdd =0;
  1631. } else {
  1632. vTotAdd =parseInt(iTotAdd);
  1633. }
  1634. */
  1635. /* if(model.getValue("/root/main/info/rsrvacptinfo/item/discamt")!=""){
  1636. iDiscAmt = parseInt(model.getValue("/root/main/info/rsrvacptinfo/item/discamt"));
  1637. }
  1638. model.setValue("/root/main/info/rcptinfo/discamt",iDiscAmt);
  1639. for( var i = 1 ; i < vGrdObj.rows ; i++){
  1640. vAddAmt = vGrdObj.valueMatrix(i, vCalcCol);
  1641. vPrcpTims = vGrdObj.valueMatrix(i, vPrcpTimsCol);
  1642. if( vAddAmt == "" ) vAddAmt = "0";
  1643. if( vPrcpTims == "" ) vPrcpTims = "1";
  1644. iAddAmt += parseInt(vAddAmt) * parseInt(vPrcpTims) ;
  1645. }
  1646. if( vPkgAmtCtrlID != null ) vPkgAmtCtrlID.value = iPkgAmt ;
  1647. if( vAddAmtCtrlID != null ) vAddAmtCtrlID.value = iAddAmt;// + vTotAdd;
  1648. if( vTotAmtCtrlID != null ) vTotAmtCtrlID.value = (iPkgAmt + iAddAmt) - iDiscAmt;// + vTotAddExm;
  1649. model.refresh();*///fDcAmtCalc()에서 처리
  1650. fDcAmtCalc();
  1651. }
  1652. /**==================================================================================================================
  1653. @author : 손주연
  1654. @version :2007-06-30
  1655. @desc : 수가내역 가져오기
  1656. @param :
  1657. * SPAHB00300_PARAM1 : 검색구분(cd/nm)
  1658. * SPAHB00300_PARAM2 : 검색조건(코드/명칭)
  1659. * SPAHB00300_PARAM3 : multiyn
  1660. * SPAHB00300_PARAM4 : multi선택 시 setting할 목적노드
  1661. * SPAHB00300_PARAM5 : code값을 setting할 목적노드
  1662. * SPAHB00300_PARAM6 : name값을 setting할 목적노드
  1663. * SPAHB00300_PARAM7 : 수가를 setting할 목적노드
  1664. *====================================================================================================================*/
  1665. function fGetCalScorCd( vCond, vCdnm, bMultiyn , vMultiDestXPath, vCdDestXPath, vNmDestXPath, vAmtDestXPath){
  1666. clearParameter("SPAHB00300_PARAM1");
  1667. clearParameter("SPAHB00300_PARAM2");
  1668. clearParameter("SPAHB00300_PARAM3");
  1669. clearParameter("SPAHB00300_PARAM4");
  1670. clearParameter("SPAHB00300_PARAM5");
  1671. clearParameter("SPAHB00300_PARAM6");
  1672. clearParameter("SPAHB00300_PARAM7");
  1673. setParameter ("SPAHB00300_PARAM1" , vCond);
  1674. setParameter ("SPAHB00300_PARAM2" , vCdnm);
  1675. setParameter ("SPAHB00300_PARAM3" , bMultiyn);
  1676. setParameter ("SPAHB00300_PARAM4" , vMultiDestXPath);
  1677. setParameter ("SPAHB00300_PARAM5" , vCdDestXPath );
  1678. setParameter ("SPAHB00300_PARAM6" , vNmDestXPath);
  1679. setParameter ("SPAHB00300_PARAM7" , vAmtDestXPath);
  1680. modal("SPAHB00300");
  1681. }
  1682. /**==================================================================================================================
  1683. @author : 손주연
  1684. @version :2007-06-30
  1685. @desc : 수가내역 대상그리드 set
  1686. @param :
  1687. * vGrdObj : 대상그리드
  1688. * vSrcXPath : 목적노드set
  1689. * vDupCheckCo : dup check column no
  1690. * vDupCheck : dup check yn
  1691. * vCodeNode : 수가코드 목적 노드
  1692. * vNameNode : 수가처방명 목적 노드
  1693. * vAmtNode : 수가 목적 노드
  1694. * vHeaderAddRows : header row default값(1) 보다 큰 row수
  1695. *====================================================================================================================*/
  1696. function fSetOcd(vGrdObj, vSrcXPath, vDupCheckCol, vDupCheck, vCodeNode, vNameNode, vAmtNode, vHeaderAddRows ) {
  1697. if( vGrdObj == null ) return ;
  1698. if( vSrcXPath == "" ) return ;
  1699. if( model.getValue("/root/temp/okflag") != "ok" ) return ;
  1700. var cnt = getNodesetCount(vSrcXPath);
  1701. var grdcnt = vGrdObj.rows;
  1702. if( vHeaderAddRows != "" ){
  1703. grdcnt =parseInt( vGrdObj.rows) - parseInt( vHeaderAddRows ) ;
  1704. }
  1705. var vDupCheckVal = "";
  1706. var i = 0;
  1707. if( cnt == 1 ) {
  1708. vDupCheckVal = model.getValue(vSrcXPath + "/calcscorcd" );
  1709. if( vDupCheck == "Y" ) {
  1710. if( fCheckDup(vGrdObj , vDupCheckCol, vDupCheckVal ) == false ){
  1711. if( messageBox("중복되는 수가코드[" + vDupCheckVal + "] 를 추가", "S001") != 6 ){
  1712. return ;
  1713. }
  1714. }
  1715. }
  1716. vGrdObj.addRow();
  1717. if( vCodeNode != "" ){
  1718. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vCodeNode , vDupCheckVal );
  1719. }
  1720. if( vNameNode != "" ){
  1721. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vNameNode , model.getValue(vSrcXPath + "/hngnm" ) );
  1722. }
  1723. if( vAmtNode != "" ){
  1724. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vAmtNode , model.getValue(vSrcXPath + "/scoreamt" ) );
  1725. }
  1726. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" );
  1727. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" , vDupCheckVal );
  1728. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscornm" );
  1729. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscornm" , model.getValue(vSrcXPath + "/ordnm" ) );
  1730. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/oldordcd" );
  1731. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/oldordcd" , model.getValue(vSrcXPath + "/oldordcd" ) );
  1732. }
  1733. else {
  1734. for( var i = 1 ; i <= cnt ; i++ ){
  1735. vDupCheckVal = model.getValue(vSrcXPath + "[" + i + "]/calcscorcd" );
  1736. if( vDupCheck == "Y" ) {
  1737. if( fCheckDup(vGrdObj , vDupCheckCol, vDupCheckVal ) == false ){
  1738. if( messageBox("중복되는 수가코드[" + vDupCheckVal + "] 를 추가", "S001") != 6 ){
  1739. continue ;
  1740. }
  1741. }
  1742. }
  1743. vGrdObj.addRow();
  1744. if( vCodeNode != "" ){
  1745. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vCodeNode , vDupCheckVal );
  1746. }
  1747. if( vNameNode != "" ){
  1748. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vNameNode , model.getValue(vSrcXPath + "[" + i + "]/hngnm" ) );
  1749. }
  1750. if( vAmtNode != "" ){
  1751. model.setValue(vGrdObj.nodeset + "[" + grdcnt + "]/" + vAmtNode ,model.getValue(vSrcXPath + "[" + i + "]/scoreamt" ) );
  1752. }
  1753. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" );
  1754. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscorcd" , vDupCheckVal );
  1755. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/calcscornm" );
  1756. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/calcscornm" , model.getValue(vSrcXPath + "[" + i + "]/ordnm" ) );
  1757. model.makeNode(vGrdObj.nodeset + "[" + grdcnt + "]/oldordcd" );
  1758. model.makeValue(vGrdObj.nodeset + "[" + grdcnt + "]/oldordcd" , model.getValue(vSrcXPath + "/oldordcd" ) );
  1759. grdcnt++;
  1760. }
  1761. }
  1762. model.refresh();
  1763. }
  1764. /**==================================================================================================================
  1765. @author : 손주연
  1766. @version :2007-08-30
  1767. @desc : 수납처리--임시..
  1768. @param :
  1769. * vJobFlag : WORK/CANCEL 작업 구분.(접수/취소 구분)
  1770. function fRcptAmt(vJobFlag){
  1771. var payownamt = model.getValue("/root/temp/rcptinfo/hidden/opmi_out/opmi_rcptamt") ;
  1772. if( payownamt == "") {
  1773. payownamt = "0";
  1774. }
  1775. payownamt = parseInt(payownamt);
  1776. if( payownamt != 0 ) {
  1777. ahafOpenRcpt(fGetHealExamFlag()
  1778. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd")
  1779. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno")
  1780. , model.getValue("/root/main/info/patinfo/item/pid")
  1781. , model.getValue("/root/main/info/rsrvacptinfo/item/rcptstat")
  1782. , model.getValue("/root/main/info/rsrvacptinfo/item/orddd") );
  1783. return ;
  1784. }
  1785. var vTmp = fGetHealExamFlag();
  1786. if( vTmp == "" ){
  1787. messageBox("건진분류 ERROR .", "E999");
  1788. return ;
  1789. }
  1790. model.setValue("/root/send/srchhealexamflag", vTmp );
  1791. vTmp = model.getValue(ipt_pid.attribute("ref"));
  1792. if( vTmp == "" ) {
  1793. messageBox("환자ID ERROR .", "E999");
  1794. return ;
  1795. }
  1796. model.setValue("/root/send/srchpid", vTmp );
  1797. vTmp = model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd");
  1798. if( vTmp== "" ) {
  1799. messageBox("등록일자 ERROR .", "E999");
  1800. return ;
  1801. }
  1802. model.setValue("/root/send/srchrsrvdd", vTmp );
  1803. vTmp = model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno");
  1804. if( vTmp == "" ) {
  1805. messageBox("등록번호 ERROR .", "E999");
  1806. return ;
  1807. }
  1808. model.setValue("/root/send/srchrsrvno", vTmp );
  1809. model.setValue("/root/send/srchinstcd", getUserInfo("dutplceinstcd"));
  1810. //2007-08-17 추가
  1811. model.setValue("/root/send/srchjobflag" ,vJobFlag);
  1812. model.setValue("/root/send/srchrcptdd" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptdd") );
  1813. model.setValue("/root/send/srchrcptno" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptno") );
  1814. model.setValue("/root/send/srchrcptseqno" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptseqno") );
  1815. model.copyNode("/root/send/savercpt/opmi_out", "/root/temp/rcptinfo/hidden/opmi_out");
  1816. openLoadingBar("수납 처리중입니다..") ;//처리중 화면을 오픈한다.
  1817. if( submit("TXAHA02102") == true ){
  1818. messageBox("수납 ","I001");
  1819. }
  1820. closeLoadingBar() ;//처리중 화면을 close한다.
  1821. }
  1822. *====================================================================================================================*/
  1823. /**==================================================================================================================
  1824. @author : 손주연
  1825. @version : 2007-10-11
  1826. @desc : 수납처리
  1827. @param :
  1828. * vJobFlag : WORK/CANCEL 작업 구분.(접수/취소 구분)
  1829. * vRsrvdd :
  1830. *====================================================================================================================*/
  1831. function ahafRcptAmt(vJobFlag, vRsrvdd, vRsrvno, vPid, vOrddd, vRcptStat , vOpmiRoot,vHealexamFlag){
  1832. var payownamt = model.getValue(vOpmiRoot + "/opmi_out/opmi_rcptamt");
  1833. if(payownamt == ""){
  1834. payownamt = "0";
  1835. }
  1836. payownamt = parseInt(payownamt);
  1837. if(vHealexamFlag != "G"){
  1838. //if(payownamt != 0){
  1839. //수납화면 팝업
  1840. ahafOpenRcpt(fGetHealExamFlag()
  1841. , vRsrvdd
  1842. , vRsrvno
  1843. , vPid
  1844. , vRcptStat
  1845. , vOrddd);
  1846. return;
  1847. //}
  1848. }
  1849. var vTmp = vHealexamFlag;//fGetHealExamFlag();
  1850. if( vTmp == "" ){
  1851. messageBox("건진분류 ERROR .", "E999");
  1852. return ;
  1853. }
  1854. model.makeNode("/root/send/savercpt/srchhealexamflag");
  1855. model.setValue("/root/send/savercpt/srchhealexamflag", vTmp );
  1856. if( vPid == "" ) {
  1857. messageBox("환자ID ERROR .", "E999");
  1858. return ;
  1859. }
  1860. model.makeNode("/root/send/savercpt/srchpid");
  1861. model.setValue("/root/send/savercpt/srchpid", vPid );
  1862. if( vRsrvdd== "" ) {
  1863. messageBox("등록일자 ERROR .", "E999");
  1864. return ;
  1865. }
  1866. model.makeNode("/root/send/savercpt/srchrsrvdd");
  1867. model.setValue("/root/send/savercpt/srchrsrvdd", vRsrvdd );
  1868. if( vRsrvno == "" ) {
  1869. messageBox("등록번호 ERROR .", "E999");
  1870. return ;
  1871. }
  1872. model.makeNode("/root/send/savercpt/srchrsrvno");
  1873. model.setValue("/root/send/savercpt/srchrsrvno", vRsrvno );
  1874. model.makeNode("/root/send/savercpt/srchinstcd");
  1875. model.setValue("/root/send/savercpt/srchinstcd", getUserInfo("dutplceinstcd"));
  1876. //2007-08-17 추가
  1877. model.makeNode("/root/send/savercpt/srchjobflag");
  1878. model.makeNode("/root/send/savercpt/srchrcptdd");
  1879. model.makeNode("/root/send/savercpt/srchrcptno");
  1880. model.makeNode("/root/send/savercpt/srchrcptseqno");
  1881. model.setValue("/root/send/savercpt/srchjobflag" ,vJobFlag);
  1882. model.setValue("/root/send/savercpt/srchrcptdd" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptdd") );
  1883. model.setValue("/root/send/savercpt/srchrcptno" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptno") );
  1884. model.setValue("/root/send/savercpt/srchrcptseqno" ,model.getValue(vOpmiRoot +"/opmi_out/org_rcptseqno") );
  1885. model.makeNode("/root/send/savercpt/opmi_out");
  1886. model.copyNode("/root/send/savercpt/opmi_out", vOpmiRoot + "/opmi_out" );
  1887. model.makeNode("/root/send/savercpt/dcgm_out");
  1888. model.copyNode("/root/send/savercpt/dcgm_out", vOpmiRoot + "/dcgm_out" );
  1889. model.makeNode("/root/send/savercpt/unco_out");
  1890. model.copyNode("/root/send/savercpt/unco_out", vOpmiRoot + "/unco_out" );
  1891. //영수증채번을 먼저한다.
  1892. //INPUT(1.수납일시)
  1893. model.makeNode("/root/send/rcptdd");
  1894. model.makeNode("/root/send/genrkind");
  1895. model.setValue("/root/send/rcptdd" , getCurrentDate());
  1896. model.setValue("/root/send/genrkind" , "R");
  1897. //SPAHA02100 이 수납화면
  1898. //결과는 수납 번호
  1899. if(submit("TRAHA02105", false)){
  1900. //영수증번호를 채번하여 셋팅한다.
  1901. var rcptno = model.getValue("/root/temp/rcptno_out/rcptno/opmi_rcptno");
  1902. model.makeNode( "/root/send/savercpt/opmi_rcptno");
  1903. model.setValue( "/root/send/savercpt/opmi_rcptno", rcptno);
  1904. }
  1905. //openLoadingBar("수납 처리중입니다..") ;//처리중 화면을 오픈한다.
  1906. //수납화면의 내용을 채우는 카드나 현금. 추가 검사 내역, 감면정보등 모든 정보를 가져온다.
  1907. if(submit("TXAHA02102") == true){
  1908. messageBox("수납 ","I001");
  1909. }
  1910. //closeLoadingBar() ;//처리중 화면을 close한다.
  1911. }
  1912. /**==================================================================================================================
  1913. @author : 손주연
  1914. @version :2007-08-30
  1915. @desc : 수납화면 open
  1916. @param :
  1917. * 건진 구분, 예약등록일자, 예약등록번호, 등록번호
  1918. *====================================================================================================================*/
  1919. function ahafOpenRcpt(vHealExamFlag, vRsrvDD, vRsrvNo, vPid, vRcptStat, vOrdDD){
  1920. clearParameter("SMAHA02100_PARAM_HEALEXAMFLAG");
  1921. clearParameter("SMAHA02100_PARAM_PID");
  1922. clearParameter("SMAHA02100_PARAM_RSRVDD");
  1923. clearParameter("SMAHA02100_PARAM_RSRVNO");
  1924. setParameter("SMAHA02100_PARAM_HEALEXAMFLAG" , vHealExamFlag);
  1925. setParameter("SMAHA02100_PARAM_PID" , vPid);
  1926. setParameter("SMAHA02100_PARAM_RSRVDD" , vRsrvDD);
  1927. setParameter("SMAHA02100_PARAM_RSRVNO" , vRsrvNo);
  1928. setParameter("SMAHA02100_PARAM_ORDDD" , vOrdDD);
  1929. var sRcptStat = ""; //수납상태
  1930. if(vRcptStat == "N"){
  1931. sRcptStat = "Y";
  1932. }else{
  1933. sRcptStat = "N";
  1934. }
  1935. setParameter("SMAHA02100_RTN" , sRcptStat);
  1936. modal("SMAHA02100");
  1937. }
  1938. /**==================================================================================================================
  1939. @author : 손주연
  1940. @version :2007-08-30
  1941. @desc : 수납처리 : 개인부담금 존재 시 수납창 load.
  1942. @param :
  1943. * 수납창 open yn, job flag, 건진 구분, 예약등록일자, 예약등록번호, 등록번호 , 진료일자, 기관코드
  1944. *====================================================================================================================*/
  1945. /*function ahafRcptAmt(vRcptDlgOpenYN, vJobFlag, vHealExamFlag, vRsrvDD, vRsrvNo, vPid, vRcptStat , vOrdDD, vInstCd){
  1946. var payownamt = model.getValue("/root/temp/rcptinfo/hidden/opmi_out/opmi_rcptamt") ;
  1947. var payrcptamt = 0;
  1948. if( payownamt != "" ) {
  1949. payrcptamt = parseInt(payownamt);
  1950. }
  1951. if( payrcptamt > 0 ) {
  1952. ahafOpenRcpt(vHealExamFlag
  1953. , vRsrvDD
  1954. , vRsrvNo
  1955. , vPid
  1956. , vRcptStat
  1957. , vOrdDD );
  1958. return ;
  1959. }
  1960. model.setValue("/root/send/srchhealexamflag" , vHealExamFlag );
  1961. model.setValue("/root/send/srchpid" , vPid );
  1962. model.setValue("/root/send/srchrsrvdd" , vRsrvDD );
  1963. model.setValue("/root/send/srchrsrvno" , vRsrvNo );
  1964. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  1965. //2007-08-17 추가
  1966. model.setValue("/root/send/srchjobflag" ,vJobFlag);
  1967. model.setValue("/root/send/srchrcptdd" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptdd") );
  1968. model.setValue("/root/send/srchrcptno" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptno") );
  1969. model.setValue("/root/send/srchrcptseqno" ,model.getValue("/root/temp/rcptinfo/hidden/opmi_out/org_rcptseqno") );
  1970. model.copyNode("/root/send/savercpt/opmi_out", "/root/temp/rcptinfo/hidden/opmi_out");
  1971. // 영수증채번을 먼저한다.
  1972. // INPUT(1.수납일시)
  1973. model.setValue("/root/send/rcptdd" , getCurrentDate() );
  1974. model.setValue( "/root/send/genrkind" , "R");
  1975. if ( submit("TRAHA02105")){
  1976. //영수증번호를 채번하여 셋팅한다.
  1977. var rcptno = model.getValue("/root/temp/rcptno_out/rcptno/opmi_rcptno")
  1978. model.setValue( "/root/send/opmi_rcptno", rcptno);
  1979. }
  1980. //openLoadingBar("수납 처리중입니다..") ;//처리중 화면을 오픈한다.
  1981. if( submit("TXAHA02102") == true ){
  1982. messageBox("수납 ","I001");
  1983. }
  1984. //closeLoadingBar() ;//처리중 화면을 close한다.
  1985. }
  1986. */
  1987. /**==================================================================================================================
  1988. @author : 손주연
  1989. @version :2007-08-01
  1990. @desc : 예약/접수 현황조회
  1991. @param :
  1992. * SMAHA00400_PARAM1 : 건진구분
  1993. * SMAHA00400_PARAM2 : 건진상세구분
  1994. * SMAHA00400_PARAM3 : 일자체크여부(Y/N)
  1995. * SMAHA00400_PARAM4 : 일자기준 및 상태기준 (예약:C, 예약등록: C1, 접수:E )
  1996. * SMAHA00400_PARAM5 : 사업체코드
  1997. * SMAHA00400_PARAM6 : 검사실코드
  1998. * SMAHA00400_PARAM7 : 성명
  1999. * SMAHA00400_PARAM8 : 등록번호
  2000. * SMAHA00400_PARAM9 : 주민번호1
  2001. * SMAHA00400_PARAM10 : 주민번호2
  2002. * SMAHA00400_PARAM11 : 패키지코드
  2003. * SMAHA00400_PARAM12 : 조회구분2(성명: pnm/등록번호:pid/주민번호:rgstno)
  2004. * SMAHA00400_PARAM13 : key값 setting 목적노드
  2005. *====================================================================================================================*/
  2006. function ahafOpenRsrvAcptList(vOpenerID, vHealExamFg , vHealExamDetlFg, vDateChkYN , vStatFg , vCmpyCd , vRoomCd , vPnm, vPid, vRgstno1, vRgstno2, vPkgCd, vSrchCond2, vDestNode){
  2007. clearParameter("SMAHA00400_PARAM1");
  2008. clearParameter("SMAHA00400_PARAM2");
  2009. clearParameter("SMAHA00400_PARAM3");
  2010. clearParameter("SMAHA00400_PARAM4");
  2011. clearParameter("SMAHA00400_PARAM5");
  2012. clearParameter("SMAHA00400_PARAM6");
  2013. clearParameter("SMAHA00400_PARAM7");
  2014. clearParameter("SMAHA00400_PARAM8");
  2015. clearParameter("SMAHA00400_PARAM9");
  2016. clearParameter("SMAHA00400_PARAM10");
  2017. clearParameter("SMAHA00400_PARAM11");
  2018. clearParameter("SMAHA00400_PARAM12");
  2019. clearParameter("SMAHA00400_PARAM13");
  2020. setParameter("SMAHA00400_PARAM1", vHealExamFg);
  2021. setParameter("SMAHA00400_PARAM2", vHealExamDetlFg);
  2022. setParameter("SMAHA00400_PARAM3", vDateChkYN);
  2023. setParameter("SMAHA00400_PARAM4", vStatFg);
  2024. setParameter("SMAHA00400_PARAM5", vCmpyCd);
  2025. setParameter("SMAHA00400_PARAM6", vRoomCd);
  2026. setParameter("SMAHA00400_PARAM7", vPnm);
  2027. setParameter("SMAHA00400_PARAM8", vPid );
  2028. setParameter("SMAHA00400_PARAM9", vRgstno1);
  2029. setParameter("SMAHA00400_PARAM10", vRgstno2);
  2030. setParameter("SMAHA00400_PARAM11", vPkgCd);
  2031. setParameter("SMAHA00400_PARAM12", vSrchCond2);
  2032. setParameter("SMAHA00400_PARAM13", vDestNode);
  2033. open("SMAHA00400",100,10,"SMAHA00400");
  2034. }
  2035. /**==================================================================================================================
  2036. @author : 손주연
  2037. @version :2007-08-01
  2038. @desc : 기본코드관리 관련 코드 선택 팝업
  2039. @param :
  2040. * vLargFg : SPAHB00500_PARAM1 : 대분류코드
  2041. * vMidlFg : SPAHB00500_PARAM2 : 중분류코드
  2042. * vMultiYN : SPAHB00500_PARAM3 : multiyn => Y이면 소분류코드 다중선택입력모드
  2043. * vDestNode : SPAHB00500_PARAM4 : 목적노드셋
  2044. * vMidlSetYN : SPAHB00500_PARAM5 : 중분류코드 setting여부(Y/N)=>선택형결과의 경우 중분류 선택시 중분류 코드 해당 중분류에 속한 소분류 전코드를 부모창에 copy
  2045. *====================================================================================================================*/
  2046. function ahzfOpenEtcCdSel( vOpenerID
  2047. , vLargFg /*대분류코드*/
  2048. , vMidlFg /*중분류코드*/
  2049. , vMultiYN /*multiyn*/
  2050. , vDestNode /*multiyn == 'Y'일때 목적노드셋*/
  2051. , vMidlSetYN /*중분류코드 setting여부(Y/N)*/ ){
  2052. clearParameter("SPAHB00500_PARAM1");
  2053. clearParameter("SPAHB00500_PARAM2");
  2054. clearParameter("SPAHB00500_PARAM3");
  2055. clearParameter("SPAHB00500_PARAM4");
  2056. clearParameter("SPAHB00500_PARAM5");
  2057. clearParameter("SPAHB00500_PARAM6");
  2058. model.makeNode(vDestNode);
  2059. setParameter("SPAHB00500_PARAM1", vLargFg);
  2060. setParameter("SPAHB00500_PARAM2", vMidlFg);
  2061. setParameter("SPAHB00500_PARAM3", vMultiYN);
  2062. setParameter("SPAHB00500_PARAM4", vDestNode);
  2063. setParameter("SPAHB00500_PARAM5", vMidlSetYN);
  2064. setParameter("SPAHB00500_PARAM6", vOpenerID);
  2065. modal("SPAHB00500",100,100,"SMAHB00500");
  2066. if( model.getValue("/root/temp/okflag") == "ok" ){
  2067. return true;
  2068. }
  2069. return false;
  2070. }
  2071. /**==================================================================================================================
  2072. @author : 손주연
  2073. @version :2007-05-01
  2074. @desc : 코드입력 시 공통코드 및 사업체 코드 가져오기, map : TRAHA00105 , ref= root/temp/cdlst 로 setting
  2075. @param :
  2076. * vSrchFlag : 검색구분
  2077. ** 01 판정의
  2078. ** 02 건강보험공단
  2079. ** 03 관할군병원
  2080. ** 04 산업안전공단
  2081. ** 05 보건소
  2082. ** 06 노동청
  2083. ** 07 지도원
  2084. ** 08 사업체
  2085. * vCode : 검색코드
  2086. * vAllYN : 전체정보 여부 ( Y일 경우 vDestNodeSet으로 copy)
  2087. * vCodeNode : 코드값이 setting될 목적노드
  2088. * vNameNode : 코드명이 setting될 목적노드
  2089. * vDestNodeSet: vAllYN == 'Y' 인 경우 목적노드셋
  2090. ====================================================================================================================*/
  2091. function ahafGetCmpyInfo( vSrchFlag, vCode , vAllYN, vCodeNode, vNameNode , vDestNodeSet){
  2092. model.makeNode("/root/send/srchflag" );
  2093. model.makeNode("/root/send/srchcond" );
  2094. model.makeNode("/root/send/srchcdnm" );
  2095. model.makeNode("/root/send/srchinstcd" );
  2096. model.setValue("/root/send/srchflag" , vSrchFlag);
  2097. model.setValue("/root/send/srchcond" , "cd" );
  2098. model.setValue("/root/send/srchcdnm" , vCode);
  2099. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  2100. submit("TRAHA00105");
  2101. var SrcNode = model.instance1.selectSingleNode("/root/temp/cdlst/item");
  2102. if( SrcNode != null ) {
  2103. if( vAllYN == "Y" ) {
  2104. model.copyNode(vDestNodeSet, "/root/temp/cdlst/item");
  2105. }
  2106. else {
  2107. model.setValue(vCodeNode , model.getValue("/root/temp/cdlst/item/cmpycd") );
  2108. model.setValue(vNameNode , model.getValue("/root/temp/cdlst/item/cmpynm") );
  2109. }
  2110. model.refresh();
  2111. return true;
  2112. }
  2113. return false;
  2114. }
  2115. /**==================================================================================================================
  2116. @author : 손주연
  2117. @version :2007-09-01
  2118. @desc : 통합검사결과조회 창 띄우기
  2119. @param :
  2120. vPidNode : 환자ID값이 있는 경로
  2121. ====================================================================================================================*/
  2122. function ahafOpenRsltView(vPidNode ){
  2123. modal( "SMAER00800",100,10,"SMAER00800","/root/send/data/singdata/srchpid",vPidNode);
  2124. }
  2125. /**==================================================================================================================
  2126. @author : 손주연
  2127. @version :2007-10-01
  2128. @desc : 종합판정 창 띄우기
  2129. @param :
  2130. sPid : 환자ID
  2131. ====================================================================================================================*/
  2132. function ahafOpenColgJudg(sPid ){
  2133. setParameter("SMAHR00500_PARAM1", sPid);
  2134. open( "SMAHR00500",100,10,"SMAHR00500" );
  2135. }
  2136. /**==================================================================================================================
  2137. @author : 손주연
  2138. @version :2007-10-11
  2139. @desc :보험증번호 조회(보험자격조회)
  2140. @param :
  2141. * sRgstNo1/sRgstNo2 : 주민번호
  2142. * sHngNm : 이름
  2143. * sOrdDD : 진료일자
  2144. 값을 받을 노드 경로
  2145. * vInsuKind : 보험유형
  2146. * vInsuNo : 증번호
  2147. * vInsuCd : 보험자기호
  2148. * vFromDD : 취득일자
  2149. * vInsuNm : 보험자성명
  2150. * vInsuBranchCd : 관할지사 코드
  2151. * vInsuBranchNm : 관할지사 명칭
  2152. ====================================================================================================================*/
  2153. function ahafGetInsuCnts(sRgstNo1, sRgstNo2, sHngNm, sOrdDD
  2154. ,vInsuKind, vInsuNo, vInsuCd, vFromDD, vInsuNm, vInsuBranchCd, vInsuBranchNm ){
  2155. if( (sRgstNo1 == "" ) ||
  2156. (sRgstNo2 == "" ) ||
  2157. (sHngNm == "" ) ||
  2158. (sOrdDD == "" ) ) {
  2159. messageBox("자격조회 필수조건(주민번호/성명/진료일자) 입력이 누락되었습니다. ", "E999");
  2160. return ;
  2161. }
  2162. //보험증번호 조회(보험자격조회)
  2163. var parm = sRgstNo1 + sRgstNo2 + "▦" + //주민번호
  2164. sHngNm + "▦" + //이름
  2165. sOrdDD + "▦" ; //진료일자
  2166. // modal("SMAHA00210");
  2167. modal("SMAHA00210","1", "400", "400", "SMAHA00210","","","");
  2168. /* setParameter("SPPMC03700_PARM",parm);
  2169. setParameter("SPPMC03700_RTN","");
  2170. modal("SPPMC03700", "1","400", "400", "SPPMC03700", "", "");
  2171. if (getParameter("SPPMC03700_RTN") == "N" || getParameter("SPPMC03700_RTN") == "") {
  2172. return;
  2173. }
  2174. if (getParameter("SPPMC03700_RTN") == "Y") {
  2175. //return 값이 있으면,
  2176. if( vInsuKind != "" ) {
  2177. model.makeNode(vInsuKind);
  2178. model.setValue(vInsuKind , getParameter("SPPMC03700_insukind")); //건강보험 :11, 의료급여1/2종 : 21/22
  2179. }
  2180. if( vInsuCd != "" ) {
  2181. model.makeNode(vInsuCd);
  2182. model.setValue(vInsuCd , getParameter("SPPMC03700_insucd")); //보험자 기호
  2183. }
  2184. if( vInsuNo != "" ) {
  2185. model.makeNode(vInsuNo);
  2186. model.setValue(vInsuNo , getParameter("SPPMC03700_insuno")); //증번호
  2187. }
  2188. if( vInsuNm != "" ) {
  2189. model.makeNode(vInsuNm);
  2190. model.setValue(vInsuNm , getParameter("SPPMC03700_insdnm")); //피보험자성명
  2191. }
  2192. if( vFromDD != "" ) {
  2193. model.makeNode(vFromDD);
  2194. model.setValue(vFromDD , getParameter("SPPMC03700_insufromdd")); //취득일자
  2195. }
  2196. //관할지사코드
  2197. if( vInsuBranchCd ){
  2198. model.makeNode(vInsuBranchCd);
  2199. model.setValue(vInsuBranchCd , getParameter("SPPMC03700_choicorpmark1")); //관할지사
  2200. }
  2201. //관할지사명
  2202. if( vInsuBranchNm ){
  2203. model.makeNode(vInsuBranchNm);
  2204. model.setValue(vInsuBranchNm , getParameter("SPPMC03700_choicorpnm1")); //관할지사
  2205. }
  2206. model.refresh();
  2207. }*/
  2208. }
  2209. /**==================================================================================================================
  2210. @author : 손주연
  2211. @version :2007-10-11
  2212. @desc :화면 상단 환자정보 설정
  2213. @param :
  2214. * vOrddd : 진료일자
  2215. * vPid : 환자id
  2216. ====================================================================================================================*/
  2217. function ahafSetScreenTopPatInfo( vPid , vOrddd , vCretno ){
  2218. var param = "O" + "▦" + vPid + "▦" + vOrddd + "▦" + vCretno + "▦" + getUserInfo("dutplceinstcd") + "▦";
  2219. setParameter("condparam", param);
  2220. //setParameter("condparam", "S" + "▦" + vPrcpDD + "▦" + vExecprcpuniqno + "▦" + getUserInfo("dutplceinstcd") );
  2221. modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  2222. }
  2223. /**==================================================================================================================
  2224. @author : 김호익
  2225. @version :2007-12-12
  2226. @desc :통합예약관리 화면으로 이동
  2227. @param :
  2228. * displayid : 호출화면--통합예약 화면
  2229. * maingridlistid : 부서코드 Instance
  2230. * path : send Instance
  2231. ====================================================================================================================*/
  2232. function aezfPopUpRsrvSample(displayid, maingridlistid, path) {
  2233. var pid = model.getValue(path +"/pid" );
  2234. var suppdeptcd = getUserInfo("posdeptcd");
  2235. var sflag = pid + "▦" + "S" + "▦" + suppdeptcd; // 플래그 S
  2236. setParameter("opener_parameter_id", sflag);
  2237. open(displayid, 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; min:hidden, max:hidden;");
  2238. }
  2239. /**==================================================================================================================
  2240. @author : 김호익
  2241. @version :2007-12-12
  2242. @desc :예약시 dc 금액 확인
  2243. @param :
  2244. ====================================================================================================================*/
  2245. function fDcAmtCalc(){
  2246. model.makeValue("/root/send/priceamt/healexamflag", fGetHealExamFlag());
  2247. if(model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd") == "") {
  2248. model.makeValue("/root/send/priceamt/healexamdetlflag" , model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag"));
  2249. }else {
  2250. model.makeValue("/root/send/priceamt/healexamdetlflag", model.getValue("/root/send/srchhealexamdetlflag"));
  2251. }
  2252. model.makeValue("/root/send/priceamt/pkgcd" , model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  2253. model.makeValue("/root/send/priceamt/cmpycd", model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  2254. model.makeValue("/root/send/priceamt/conseq", model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  2255. model.makeValue("/root/send/priceamt/conhistseq", model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  2256. model.makeValue("/root/send/priceamt/pid", model.getValue("/root/main/info/rsrvacptinfo/item/pid"));
  2257. model.makeValue("/root/send/priceamt/rsrvdd", model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd"));
  2258. model.makeValue("/root/send/priceamt/rsrvno", model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno"));
  2259. model.makeValue("/root/send/priceamt/sex", model.getValue("/root/main/info/patinfo/item/sex"));
  2260. model.makeValue("/root/send/priceamt/age", ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1") ,
  2261. model.getValue("/root/main/info/patinfo/item/rgstno2")));//model.getValue("/root/main/info/patinfo/item/age"));
  2262. model.makeValue("/root/send/priceamt/disccd", model.getValue("/root/main/info/rsrvacptinfo/item/disccd"));
  2263. model.makeValue("/root/send/priceamt/pkguncocd", model.getValue("/root/main/info/rsrvacptinfo/item/pkguncocd"));
  2264. // model.makeValue("/root/send/priceamt/forgneryn", model.getValue("/root/main/info/rsrvacptinfo/item/forgneryn"));
  2265. model.makeValue("/root/send/priceamt/choiflag", model.getValue("/root/main/info/rsrvacptinfo/item/choiflag"));
  2266. model.makeValue("/root/send/priceamt/statflag", model.getValue("/root/main/info/rsrvacptinfo/item/statflag"));
  2267. model.makeValue("/root/send/priceamt/hopedd", model.getValue("/root/main/info/rsrvacptinfo/item/hopedd"));
  2268. //2015/10/22 이정택 수정
  2269. model.makeValue("/root/send/priceamt/forgneryn", model.getValue("/root/main/info/patinfo/item/forgneryn"));
  2270. model.makeValue("/root/send/priceamt/agencyrate", model.getValue("/root/main/info/rsrvacptinfo/item/agencyrate"));
  2271. //2015/10/22 이정택 수정
  2272. model.removenode("/root/priceamt/priceamt");
  2273. if(submit("TRAHA00509")) {
  2274. model.makeValue("/root/main/info/rcptinfo/subtotamt", model.getValue("/root/temp/priceamt/priceamt/subtotamt")); //소계
  2275. model.makeValue("/root/main/info/rcptinfo/pkgamt", model.getValue("/root/temp/priceamt/priceamt/pkgamt")); //패키지금액
  2276. model.makeValue("/root/main/info/rcptinfo/cmpyaddamt", model.getValue("/root/temp/priceamt/priceamt/cmpyaddamt")); //단체추가검사금액
  2277. model.makeValue("/root/main/info/rcptinfo/psnaddamt", model.getValue("/root/temp/priceamt/priceamt/psnaddamt")); //개인추가검사금액
  2278. model.makeValue("/root/main/info/rcptinfo/preamt", model.getValue("/root/temp/priceamt/priceamt/preamt")); //선수금
  2279. model.makeValue("/root/main/info/rcptinfo/uncoamt", model.getValue("/root/temp/priceamt/priceamt/uncoamt")); //미수금
  2280. model.makeValue("/root/main/info/rcptinfo/discamt", model.getValue("/root/temp/priceamt/priceamt/discamt")); //할인액
  2281. model.makeValue("/root/main/info/rcptinfo/realamt", model.getValue("/root/temp/priceamt/priceamt/realamt")); //실수납액
  2282. model.makeValue("/root/main/info/rcptinfo/ownbamt", model.getValue("/root/temp/priceamt/priceamt/ownbamt")); //부담액
  2283. //추가검사 금액셋팅
  2284. fSetAddAmt();
  2285. }
  2286. }
  2287. /**==================================================================================================================
  2288. @author : 김호익
  2289. @version :2007-12-17
  2290. @desc :추가검사 그리드의 행삭제 버튼 클릭시 금액 계산
  2291. @param :
  2292. ====================================================================================================================*/
  2293. function fDcCode( ChoiceCD ,vpkguncocd){
  2294. var dcb = false;
  2295. if((ChoiceCD!="") &&(ChoiceCD!="-")){
  2296. for(var i=0 ;i <100 ;i++){
  2297. CodeCD = model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/cd");
  2298. if (ChoiceCD == CodeCD) {
  2299. /* 추가검사 할인일경우는 추가 검사 할인액이 따로 설정되어있다 */
  2300. /* if(vpkguncocd=="V01"){
  2301. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/dcamt"));
  2302. dcb = true;
  2303. return parseFloat(dcamt/100);
  2304. break;
  2305. }else{
  2306. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/adddcamt"));
  2307. dcb = true;
  2308. return parseFloat(dcamt/100);
  2309. break;
  2310. }*/
  2311. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/dcamt"));
  2312. dcb = true;
  2313. return parseFloat(dcamt/100);
  2314. break;
  2315. }
  2316. }
  2317. } else {
  2318. return 0.0;
  2319. }
  2320. if (dcb==false){
  2321. return 0.0;
  2322. }
  2323. }
  2324. /**==================================================================================================================
  2325. @author : 김호익
  2326. @version :2007-12-17
  2327. @desc : 해당할인계정의 금액 확인
  2328. @param :
  2329. ====================================================================================================================*/
  2330. function fDcCodeAdd( ChoiceCD ,vpkguncocd){
  2331. var dcb = false;
  2332. if((ChoiceCD!="") &&(ChoiceCD!="-")){
  2333. for(var i=0 ;i <100 ;i++){
  2334. CodeCD = model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/cd");
  2335. if (ChoiceCD == CodeCD) {
  2336. /* 추가검사 할인일경우는 추가 검사 할인액이 따로 설정되어있다 */
  2337. /* if(vpkguncocd=="V01"){
  2338. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/dcamt"));
  2339. dcb = true;
  2340. return parseFloat(dcamt/100);
  2341. break;
  2342. }else{
  2343. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/adddcamt"));
  2344. dcb = true;
  2345. return parseFloat(dcamt/100);
  2346. break;
  2347. }*/
  2348. dcamt = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[" +i+"]/adddcamt"));
  2349. dcb = true;
  2350. return parseFloat(dcamt/100);
  2351. break;
  2352. }
  2353. }
  2354. } else {
  2355. return 0.0;
  2356. }
  2357. if (dcb==false){
  2358. return 0.0;
  2359. }
  2360. }
  2361. function fRowDeleteCalc(scoreamtco){
  2362. var scoreamt = 0;
  2363. var addamt = 0;
  2364. var subtotamt = 0;
  2365. /* if (model.getValue(grd_addlst.nodeset + "[" + grd_addlst.row + "]/scoreamt")!="") {
  2366. scoreamt = parseInt( model.getValue(grd_addlst.nodeset + "[" + grd_addlst.row + "]/scoreamt"));
  2367. }*/
  2368. if(scoreamtco!=""){
  2369. scoreamt = parseInt( scoreamtco);
  2370. }
  2371. if (model.getValue("/root/main/info/rcptinfo/addamt")!=""){
  2372. addamt = parseInt(model.getValue("/root/main/info/rcptinfo/addamt")) - scoreamt;
  2373. }
  2374. if (model.getValue("/root/main/info/rcptinfo/subtotamt")!=""){
  2375. subtotamt = parseInt(model.getValue("/root/main/info/rcptinfo/subtotamt"));
  2376. }
  2377. if (scoreamt!=0){
  2378. model.setValue("/root/main/info/rcptinfo/addamt",addamt);
  2379. model.setValue("/root/main/info/rcptinfo/subtotamt",subtotamt - scoreamt);
  2380. model.refresh();
  2381. }
  2382. fDcAmtCalc();
  2383. }
  2384. /**==================================================================================================================
  2385. @author : 김호익
  2386. @version :2007-12-17
  2387. @desc : 소견등록시 이전검사 결과와 틀린부분 체크
  2388. @param :
  2389. ====================================================================================================================*/
  2390. function fOldRsltChk(){
  2391. if (model.getValue("/root/main/judgdetl/judginfo/item/hngjudgcnts")!=""){
  2392. var cnt = grd_rsltlst.rows;
  2393. for (var ci=1;ci <cnt;ci++){
  2394. var rsltVal1 = grd_rsltlst.valueMatrix(ci,grd_rsltlst.colRef("rslt1"));
  2395. var rsltVal2 = grd_rsltlst.valueMatrix(ci,grd_rsltlst.colRef("rslt2"));
  2396. var rsltVal3 = grd_rsltlst.valueMatrix(ci,grd_rsltlst.colRef("rslt3"));
  2397. if (rsltVal1 =="처방없음"){
  2398. grd_rsltlst.cellstyle("color", ci ,2, ci,2 ) = "#ff99cc";
  2399. } else if (rsltVal1 != grd_rsltlst.valueMatrix(ci,grd_rsltlst.colRef("judgrslt"))){
  2400. grd_rsltlst.cellstyle("background-color", ci, 2, ci, 2) = "#FFF000";
  2401. }
  2402. }
  2403. cnt = grd_rslttextlst.rows;
  2404. for (var ci=1;ci <cnt;ci++){
  2405. var rsltText1 = grd_rslttextlst.valueMatrix(ci,grd_rslttextlst.colRef("rslt1"));
  2406. var rsltText2 = grd_rslttextlst.valueMatrix(ci,grd_rslttextlst.colRef("rslt2"));
  2407. var rsltText3 = grd_rslttextlst.valueMatrix(ci,grd_rslttextlst.colRef("rslt3"));
  2408. if (rsltText1 != grd_rslttextlst.valueMatrix(ci,grd_rslttextlst.colRef("judgrslt"))){
  2409. grd_rslttextlst.cellstyle("background-color", ci, 1, ci, 1) = "#FFF000";
  2410. }
  2411. }
  2412. }
  2413. }
  2414. function fDocCmtChoice(){
  2415. var cnt = getNodesetCount("/root/main/judgexmpcdlst/item");
  2416. var sCmtH = model.getValue("/root/main/judgdetl/judginfo/item/hngjudgcnts");
  2417. var sCmtE = model.getValue("/root/main/judgdetl/judginfo/item/engjudgcnts");
  2418. var sCmtSH = model.getValue("/root/main/judgdetl/judginfo/item/shrthngjudgcnts");
  2419. var sCmtSE = model.getValue("/root/main/judgdetl/judginfo/item/shrtengjudgcnts");
  2420. for (var i=0; i<=cnt;i++){
  2421. if (model.getValue("/root/main/judgexmpcdlst/item["+i+"]/sel")=="Y" && model.getValue("/root/main/judgexmpcdlst/item["+i+"]/lvl") != "1"){
  2422. sCmtH = sCmtH + model.getValue("/root/main/judgexmpcdlst/item["+i+"]/judghangcnts") + "\n";
  2423. sCmtE = sCmtE + model.getValue("/root/main/judgexmpcdlst/item["+i+"]/judgengcnts")+ "\n";
  2424. sCmtSH = sCmtSH + model.getValue("/root/main/judgexmpcdlst/item["+i+"]/judghangshrtcnts")+ "\n";
  2425. sCmtSE = sCmtSE + model.getValue("/root/main/judgexmpcdlst/item["+i+"]/judgengshrtcnts")+ "\n";
  2426. }
  2427. }
  2428. model.setValue("/root/main/judgdetl/judginfo/item/hngjudgcnts", sCmtH);
  2429. model.setValue("/root/main/judgdetl/judginfo/item/shrthngjudgcnts", sCmtSH);
  2430. model.setValue("/root/main/judgdetl/judginfo/item/engjudgcnts", sCmtE);
  2431. model.setValue("/root/main/judgdetl/judginfo/item/shrtengjudgcnts", sCmtSE);
  2432. model.refresh();
  2433. }
  2434. function fAddExmAmt(){
  2435. var cnt = grd_addlst.rows;// getNodesetCount("/root/main/info/rsrvacptinfo/addlst");
  2436. var addTotamt =0;
  2437. for (var i=1 ;i<cnt;i++){
  2438. if ((grd_addlst.valueMatrix(i,grd_addlst.colRef("scoreamt"))!="")){
  2439. addTotamt = addTotamt + parseInt(grd_addlst.valueMatrix(i,6));
  2440. }
  2441. }
  2442. if (cnt == 1) {
  2443. addTotamt = 0;
  2444. }
  2445. return addTotamt;
  2446. }
  2447. function deleteTest(delrow){
  2448. model.makeValue("/root/temp/judgexmpcd" , model.getValue("/root/main/judgexmpcdlst/item[" +grd_judgexmplst.row+ "]/judgexmpcd" ));
  2449. model.makeValue("/root/temp/testcd" , model.getValue("/root/main/judgexmpdetl/itemtest[" +delrow+"]/testcd"));
  2450. model.makeValue("/root/temp/instcd" , getUserInfo("dutplceinstcd"));
  2451. var vhf = "";
  2452. if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")=="")
  2453. {
  2454. vhf = fGetHealExamFlag();
  2455. } else {
  2456. vhf = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  2457. }
  2458. model.makeValue("/root/temp/healexamflag" , vhf);
  2459. if( messageBox("검사항목을", "Q001") != 6) return -1;
  2460. submit("TXAHB00803");
  2461. grd_testlst.deleteRow(grd_testlst.row);
  2462. }
  2463. /**
  2464. */
  2465. function ageCalc(rgstno1,rgstno2){
  2466. var ssno1 = rgstno1;
  2467. var ssno2 = rgstno2;
  2468. var temp1 = ssno1.substring(0,2);
  2469. var temp2 = ""
  2470. var sexTyp = ssno2.substring(0,1);
  2471. var temp = new Date().getYear();
  2472. if(sexTyp == "1" || sexTyp == "2") {
  2473. temp2 = "19"
  2474. var age = (parseInt(temp) - parseInt(temp2+temp1));
  2475. return age;
  2476. }else {
  2477. temp2 = "20"
  2478. var age = (parseInt(temp) - parseInt(temp2+temp1));
  2479. return age;
  2480. }
  2481. }
  2482. function gridMergeRow(grd_nm){
  2483. var cnt = grd_nm.rows;
  2484. var oldnm = "";
  2485. var grdnm = "";
  2486. var lt = 1;
  2487. var lb = 1;
  2488. for(var i=1; i<=cnt; i++){
  2489. if(grdnm == grd_nm.valueMatrix(i, 2)){
  2490. //grd_nm.valueMatrix(i,1) = "";
  2491. }else{
  2492. grdnm = grd_nm.valueMatrix(i, 2);
  2493. grd_nm.mergeByFree(lt, 2, i-1, 2);
  2494. lt = i;
  2495. }
  2496. }
  2497. model.refresh();
  2498. }
  2499. function gridCellName(codecd){
  2500. var cnt = getNodesetCount("/root/temp/pkgtestcdlst");
  2501. for(var i = 0 ; i<cnt;i++ ){
  2502. if(model.getValue("/root/init/baseinfo/comcodelst/item[" +i+"]/cd")==codecd){
  2503. return model.getValue("/root/init/baseinfo/comcodelst/item[" +i+"]/nm");
  2504. }
  2505. }
  2506. }
  2507. function grdImage(grd_nm){
  2508. var cnt = grd_nm.rows;
  2509. for(var i=1; i<=cnt; i++){
  2510. if(grd_nm.valueMatrix(i, grd_nm.colRef("rsltflag")) == "O"){
  2511. grd_nm.cellstyle("background-image", i, 5) = "../../../ast/healexamweb/image/si.bmp"
  2512. grd_nm.cellstyle("background-position", i, 5) = "center center"
  2513. }
  2514. }
  2515. model.refresh();
  2516. }
  2517. /**==================================================================================================================
  2518. @author : 김호익
  2519. @version :2007-12-17
  2520. @desc : pacs 연동
  2521. @param :
  2522. ====================================================================================================================*/
  2523. function fClickPACSOrdPatResultList(pacsorderid, pid) {
  2524. /*if ( grdobj.rows >= grdobj.fixedRows ) {
  2525. var rowidx = grdobj.row;
  2526. if ( btn_case1.selected == true ) {
  2527. if ( model.getValue("/root/main/ordlist1/maindailylist["+rowidx+"]/execprcpuniqno") == "" ||
  2528. model.getValue("/root/main/ordlist1/maindailylist["+rowidx+"]/execprcpuniqno") == 0 ) {
  2529. messageBox("PACS Viewer와 연동할 수 없습니다.(유일번호가 0이거나 NULL입니다)","I999");
  2530. return;
  2531. }
  2532. var pacsorderid = model.getValue("/root/main/ordlist1/maindailylist["+rowidx+"]/prcpdd")+model.getValue("/root/main/ordlist1/maindailylist["+rowidx+"]/execprcpuniqno");
  2533. var pid = model.getValue("/root/main/ordlist1/maindailylist["+rowidx+"]/pid");
  2534. }
  2535. if ( btn_case2.selected == true ) {
  2536. if ( model.getValue("/root/main/ordlist2/mainserious["+rowidx+"]/execprcpuniqno") == "" ||
  2537. model.getValue("/root/main/ordlist2/mainserious["+rowidx+"]/execprcpuniqno") == 0 ) {
  2538. messageBox("PACS Viewer와 연동할 수 없습니다.(유일번호가 0이거나 NULL입니다)","I999");
  2539. return;
  2540. }
  2541. var pacsorderid = model.getValue("/root/main/ordlist2/mainserious["+rowidx+"]/prcpdd")+model.getValue("/root/main/ordlist2/mainserious["+rowidx+"]/execprcpuniqno");
  2542. var pid = model.getValue("/root/main/ordlist2/mainserious["+rowidx+"]/pid");
  2543. }
  2544. // PACS Viewer 호출
  2545. //zepfpacsOrderID("2007082725595");
  2546. }*/
  2547. zepfpacsAll(pacsorderid, pid);
  2548. }
  2549. function fClickCDISResultList() {
  2550. model.resetInstanceNode("/root/send/iemr");
  2551. model.makeNode("/root/hidden/temp");
  2552. var prcpdd = model.getValue("/root/temp/prcpdd");
  2553. var execprcpuniqno = model.getValue("/root/temp/seqno");
  2554. var instcd = getUserInfo("dutplceinstcd");
  2555. var sprcpdd = aezfTrim(prcpdd, 44);
  2556. var sexecprcpuniqno = aezfTrim(execprcpuniqno, 44);
  2557. var sinstcd = aezfTrim(instcd, 44);
  2558. model.makeValue("/root/send/iemr/cmc_orddate", sprcpdd);
  2559. model.makeValue("/root/send/iemr/cmc_orderseqno", sexecprcpuniqno);
  2560. model.makeValue("/root/send/iemr/cmc_spcid", sinstcd);
  2561. if(window.children.item("imgemrviewer") == null)
  2562. {
  2563. window.load("../../../emr/imgemrweb/xrw/SSMRC03130.xrw","modeless", "imgemrviewer", "", "/root/send/iemr", "/root/hidden/temp");
  2564. /* window.children.item("imgemrviewer").document.title = "Image EMR Viewer";
  2565. window.children.item("imgemrviewer").javaScript.searchChart("/root/hidden/temp");
  2566. if (window.children.item("imgemrviewer").javaScript.downloadChart() == true)
  2567. {
  2568. window.children.item("imgemrviewer").javaScript.setupChart("ChartView");
  2569. }*/
  2570. }
  2571. }
  2572. function fPriceCheck(){
  2573. model.makeValue("/root/send/priceamt/healexamflag", fGetHealExamFlag());
  2574. if(model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd") == "") {
  2575. model.makeValue("/root/send/priceamt/healexamdetlflag" , model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag"));
  2576. }else {
  2577. model.makeValue("/root/send/priceamt/healexamdetlflag", model.getValue("/root/send/srchhealexamdetlflag"));
  2578. }
  2579. model.makeValue("/root/send/priceamt/pkgcd" , model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  2580. model.makeValue("/root/send/priceamt/cmpycd", model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  2581. model.makeValue("/root/send/priceamt/conseq", model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  2582. model.makeValue("/root/send/priceamt/conhistseq", model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  2583. model.makeValue("/root/send/priceamt/pid", model.getValue("/root/main/info/rsrvacptinfo/item/pid"));
  2584. model.makeValue("/root/send/priceamt/rsrvdd", model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd"));
  2585. model.makeValue("/root/send/priceamt/rsrvno", model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno"));
  2586. model.makeValue("/root/send/priceamt/sex", model.getValue("/root/main/info/patinfo/item/sex"));
  2587. model.makeValue("/root/send/priceamt/age", ageCalc(model.getValue("/root/main/info/patinfo/item/rgstno1") ,
  2588. model.getValue("/root/main/info/patinfo/item/rgstno2")));//model.getValue("/root/main/info/patinfo/item/age"));
  2589. model.makeValue("/root/send/priceamt/disccd", model.getValue("/root/main/info/rsrvacptinfo/item/disccd"));
  2590. model.makeValue("/root/send/priceamt/pkguncocd", model.getValue("/root/main/info/rsrvacptinfo/item/pkguncocd"));
  2591. model.makeValue("/root/send/priceamt/forgneryn", model.getValue("/root/main/info/rsrvacptinfo/item/forgneryn"));
  2592. model.makeValue("/root/send/priceamt/choiflag", model.getValue("/root/main/info/rsrvacptinfo/item/choiflag"));
  2593. model.makeValue("/root/send/priceamt/statflag", model.getValue("/root/main/info/rsrvacptinfo/item/statflag"));
  2594. model.removenode("/root/priceamt/priceamt");
  2595. if(submit("TRAHA00509")) {
  2596. model.makeValue("/root/main/info/rcptinfo/subtotamt", model.getValue("/root/temp/priceamt/priceamt/subtotamt")); //소계
  2597. model.makeValue("/root/main/info/rcptinfo/pkgamt", model.getValue("/root/temp/priceamt/priceamt/pkgamt")); //패키지금액
  2598. model.makeValue("/root/main/info/rcptinfo/addamt", model.getValue("/root/temp/priceamt/priceamt/cmpyaddamt")); //단체추가검사금액
  2599. model.makeValue("/root/main/info/rcptinfo/addamt", model.getValue("/root/temp/priceamt/priceamt/psnaddamt")); //개인추가검사금액
  2600. model.makeValue("/root/main/info/rcptinfo/preamt", model.getValue("/root/temp/priceamt/priceamt/preamt")); //선수금
  2601. model.makeValue("/root/main/info/rcptinfo/uncoamt", model.getValue("/root/temp/priceamt/priceamt/uncoamt")); //미수금
  2602. model.makeValue("/root/main/info/rcptinfo/discamt", model.getValue("/root/temp/priceamt/priceamt/discamt")); //할인액
  2603. model.makeValue("/root/main/info/rcptinfo/realamt", model.getValue("/root/temp/priceamt/priceamt/realamt")); //실수납액
  2604. model.makeValue("/root/main/info/rcptinfo/ownbamt", model.getValue("/root/temp/priceamt/priceamt/ownbamt")); //부담액
  2605. //추가검사 금액셋팅
  2606. fSetAddAmt();
  2607. }
  2608. }
  2609. function fSaveRsrvAcptPro(vMode, GMode){
  2610. if(GMode == "1"){
  2611. var vHealExamFlag = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  2612. }else{
  2613. var vHealExamFlag = fGetHealExamFlag();
  2614. if( vHealExamFlag == "" ) return -1;
  2615. }
  2616. var sMode = "";
  2617. switch(vMode){
  2618. case "A" : sMode = "가예약";
  2619. break;
  2620. case "B" : sMode = "보류";
  2621. break;
  2622. case "C" : sMode = "예약";
  2623. break;
  2624. case "D" : sMode = "예약취소";
  2625. break;
  2626. case "E" : sMode = "접수";
  2627. break;
  2628. case "F" : sMode = "접수취소";
  2629. break;
  2630. }
  2631. sMode = sMode + "정보를";
  2632. if(messageBox(sMode, "Q002") != 6) return -1;
  2633. //if(fChoiChk() == false) return -1 ; ;//패키지 검사중 둘중 하나를 반듯이 선택해야하는 검사 체크(예 : 소화기 내시경 패키지)
  2634. //setInputNodeCurText();
  2635. if(fCheckPatInfo() == false) return -1 ;
  2636. if(!fCheckAcpt(vMode)) return -1;
  2637. var vPidYN = "Y";
  2638. //예약/예약보류는 등록번호 생성하지 않음.
  2639. if((vMode == "A") || (vMode == "B")){
  2640. vPidYN = "N";
  2641. }
  2642. /*
  2643. * 수진자정보
  2644. */
  2645. model.setValue("/root/main/info/patinfo/item/pidcretfg" , vPidYN);
  2646. model.copyNode("/root/send/save" , "/root/main/info/patinfo/item");
  2647. fCheckNodeExist("/root/send/save/userid" , true);
  2648. model.setValue("/root/send/save/userid" , getUserId());
  2649. fCheckNodeExist("/root/send/save/instcd" , true);
  2650. model.setValue("/root/send/save/instcd" , getUserInfo("dutplceinstcd") );
  2651. /*
  2652. * 예약접수정보
  2653. */
  2654. fCheckNodeExist("/root/main/info/rsrvacptinfo/item/mode" , true );
  2655. model.setValue("/root/main/info/rsrvacptinfo/item/mode" , vMode);
  2656. fCheckNodeExist("/root/main/info/rsrvacptinfo/item/healexamflag" , true );
  2657. model.setValue("/root/main/info/rsrvacptinfo/item/healexamflag" , vHealExamFlag);
  2658. model.duplicate("/root/send/save" , "/root/main/info/rsrvacptinfo/item");
  2659. model.makeValue("/root/send/save/item/ownbamt" , model.getValue("/root/main/info/rcptinfo/ownbamt"));
  2660. model.makeValue("/root/send/save/pkgcd" , model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  2661. model.makeValue("/root/send/save/cmpyflag" , model.getValue("/root/main/info/rsrvacptinfo/item/cmpyflag"));
  2662. model.makeValue("/root/send/save/cmpycd" , model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"));
  2663. model.makeValue("/root/send/save/conseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conseq"));
  2664. model.makeValue("/root/send/save/conhistseq" , model.getValue("/root/main/info/rsrvacptinfo/item/conhistseq"));
  2665. model.makeValue("/root/send/save/choiflag" , model.getValue("/root/main/info/rsrvacptinfo/item/choiflag"));
  2666. model.makeValue("/root/send/save/zipcdseq1" , model.getValue("/root/main/info/patinfo/item/zipcdseq1"));
  2667. model.makeValue("/root/send/save/zipcdseq2" , model.getValue("/root/main/info/patinfo/item/zipcdseq2"));
  2668. model.makeValue("/root/send/save/clntcmpynm" , model.getValue("/root/main/info/rsrvacptinfo/item/clntcmpynm"));
  2669. model.makeValue("/root/send/save/clntdeptnm" , model.getValue("/root/main/info/rsrvacptinfo/item/clntdeptnm"));
  2670. model.makeValue("/root/send/save/clntempid" , model.getValue("/root/main/info/rsrvacptinfo/item/clntempid"));
  2671. model.makeValue("/root/send/save/clntpos" , model.getValue("/root/main/info/rsrvacptinfo/item/clntpos"));
  2672. model.makeValue("/root/send/save/patm_brthareacnts" , model.getValue("/root/main/info/patinfo/item/brthareacnts"));
  2673. model.makeValue("/root/send/save/acpt_brthareacnts" , model.getValue("/root/main/info/rsrvacptinfo/item/brthareacnts"));
  2674. //건진장소구분에 의한 예약건진상세구분 세팅
  2675. //기업건진 추가 2009-08-28
  2676. if(cmb_place.value == 'S'){
  2677. model.makeValue("/root/send/save/rsltsave/rsrvdetlflag" , 'C01');
  2678. model.makeValue("/root/main/info/rsrvacptinfo/item/rsrvdetlflag" , 'C01');
  2679. }else if(cmb_place.value == 'K'){
  2680. model.makeValue("/root/send/save/rsltsave/rsrvdetlflag" , 'C03');
  2681. model.makeValue("/root/main/info/rsrvacptinfo/item/rsrvdetlflag" , 'C03');
  2682. }
  2683. /*
  2684. * RFID
  2685. */
  2686. fCheckNodeExist("/root/send/save", true);
  2687. model.makeValue("/root/send/save/taginfo/rtime" , model.getValue("/root/main/info/taginfo/rtime"));
  2688. model.makeValue("/root/send/save/taginfo/tagno" , model.getValue("/root/main/info/taginfo/tagno"));
  2689. model.makeValue("/root/send/save/taginfo/suppstat" , model.getValue("/root/main/info/taginfo/suppstat"));
  2690. /*
  2691. *결과상담 예약내역 저장
  2692. */
  2693. //예약 및 접수취소일경우 현재 이후의 예약이며 결과상담이 완료되지 않은 내역은 삭제합니다.
  2694. if(vMode == "F"|| vMode == "D"){
  2695. var rsltRsrvCnt = getNodesetCount("/root/main/info/rsltcnstinfo/cnstlst/cnst");
  2696. for(var i=1; i<=rsltRsrvCnt; i++) {
  2697. var cnstEndYN = model.getValue("/root/main/info/rsltcnstinfo/cnstlst/cnst[" + i + "]/rsltcnstendyn");
  2698. var rsltCnstDD = model.getValue("/root/main/info/rsltcnstinfo/cnstlst/cnst[" + i + "]/rsltcnstdd");
  2699. var rsltCnstRsrvStarttm = model.getValue("/root/main/info/rsltcnstinfo/cnstlst/cnst[" + i + "]/rsltcnstrsrvstarttm");
  2700. var dtRsrvdd = (rsltCnstDD + " " + rsltCnstRsrvStarttm + "00" ).toDate("YYYYMMDD hhmmss");
  2701. if((cnstEndYN == "N" || cnstEndYN == "") && dtRsrvdd > getCurrentDateTime().toDate("YYYYMMDD hhmmss")){
  2702. model.setValue("/root/main/info/rsltcnstinfo/cnstlst/cnst[" + i + "]/m", "d");
  2703. model.setValue("/root/main/info/rsltcnstinfo/cnstlst/cnst[" + i + "]/rsltrsrvsaveyn", "N");
  2704. }
  2705. }
  2706. }
  2707. var rsltRsrvList = instance1.selectNodes("/root/main/info/rsltcnstinfo/cnstlst/cnst[rsltrsrvsaveyn='N']");
  2708. model.makeNode("/root/send/save/rsltsave");
  2709. model.makeValue("/root/send/save/rsltsave/rsltrsrv", getNodeListCSV(rsltRsrvList));
  2710. /*
  2711. * 추가검사정보
  2712. * 종검을 제외한 나머지 검진은 선택된 프로파일을 추가검사정보에 가지고 있으므로 여기서 삭제한다
  2713. */
  2714. /*
  2715. if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")=="G"){
  2716. for(i=1; i<grd_addlst.rows;i++ ){
  2717. if(model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd") == grd_addlst.valueMatrix(i,2)){
  2718. grd_addlst.valueMatrix(i,grd_addlst.colRef("sel"))="";
  2719. }
  2720. }
  2721. }*/
  2722. //model.refresh(); 2008-06-12이성인 주석 처리 및 맨 끝으로 이동
  2723. //model.refresh();
  2724. //추가 검사 내역 rowheader를 i로 셋팅
  2725. //추가검사 중 접수시 처방이 내려져야 하는검사가 있으므로 우선 추가검사 내역을 다 가져가야 하기에 u 모드로 변경
  2726. grd_addlst.clearStatus();
  2727. for(var i=1; i<grd_addlst.rows; i++){
  2728. if((grd_addlst.valueMatrix(i,grd_addlst.colRef("sel"))=="Y") || (grd_addlst.valueMatrix(i,grd_addlst.colRef("sel"))=="true")){
  2729. grd_addlst.rowStatus(i) = 2;
  2730. model.setValue("/root/main/info/rsrvacptinfo/addlst["+ i + "]/m ", "u");
  2731. }
  2732. }
  2733. model.makeValue("/root/send/save/addlst", grd_addlst.getUpdateData());
  2734. //openLoadingBar(sMode + " 처리 중입니다.."); //처리중 화면을 오픈한다.
  2735. model.resetInstanceNode("/root/hidden");
  2736. model.removeNodeset("/root/tmp");
  2737. var retInstance;
  2738. /*
  2739. if(vMode == "D" || vMode == "F"){
  2740. retInstance = submit("TXAHA00013", false);
  2741. }else{
  2742. retInstance = submit("TXAHA00012", false);
  2743. }
  2744. */
  2745. retInstance = submit("TXAHA00012", false);
  2746. //if((retInstance==true) ||(retInstance==True)){
  2747. if(retInstance == true){
  2748. var ret = 0 ;
  2749. var rst = "R";
  2750. if(GMode == "1"){
  2751. var vHealExamFlag = model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag");
  2752. }else{
  2753. //일부결과를 인스턴스에 복사
  2754. //AHA001.JS
  2755. fretinstanceset();
  2756. }
  2757. if(vMode == "E"){ //접수
  2758. model.makeNode("/root/send/srchjobflag");
  2759. model.makeNode("/root/send/srchrcptdd");
  2760. model.makeNode("/root/send/srchrcptno");
  2761. model.makeNode("/root/send/srchrcptseqno");
  2762. // 검사동의서자동 출력
  2763. // submit("TRAHA04098"); //검사동의서자동출력여부 조회
  2764. // if(model.getValue("/root/temp/examformyn/item/examformyn") == "Y"){
  2765. // model.setValue("/root/send/seqinfo/srchhealexamflag" , model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag"));
  2766. // model.setValue("/root/send/seqinfo/srchrsrvdd" , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd"));
  2767. // model.setValue("/root/send/seqinfo/srchrsrvno" , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno"));
  2768. // model.makeValue("/root/send/seqinfo/pid" , model.getValue("/root/main/info/rsrvacptinfo/item/pid"));
  2769. // submit("TRAHA04099"); // 동의서 출력해야할 formcd조회
  2770. //
  2771. // var PrcpFormcdCnt = getNodesetCount("/root/temp/examformlist/item");
  2772. // for(var i=1; i <= PrcpFormcdCnt; i++){
  2773. // var formcd = model.getValue("/root/temp/examformlist/item[" + i + "]/formcd");
  2774. // // 개인정보이용동의서 출력
  2775. //
  2776. // setParameter ("formcd", formcd );
  2777. // setParameter ("pid", model.getValue("/root/main/info/rsrvacptinfo/item/pid"));
  2778. // setParameter ("orddd", model.getValue("/root/main/info/rsrvacptinfo/item/orddd"));
  2779. // setParameter ("cretno", model.getValue("/root/main/info/rsrvacptinfo/item/cretno"));
  2780. // setParameter ("ordtype", "S");
  2781. //
  2782. // modal ("SSMRF03700");
  2783. // }
  2784. // }
  2785. ///root/send/srchpid , srchrsrvdd , srchrsrvno , srchinstcd , srchjobflag 를 기준으로 TXAHA02101(수납)서브미션
  2786. //SMAHA00100_예약접수
  2787. // 태그등록 상태변경
  2788. var suppstat = model.getValue("/root/tmp/reqrfid/suppstat"); // 태그지급상태
  2789. if(suppstat == "0"){
  2790. model.setValue("/root/main/info/taginfo/rtime" , model.getValue("/root/tmp/reqrfid/rtime"));
  2791. model.setValue("/root/main/info/taginfo/tagno" , model.getValue("/root/tmp/reqrfid/tagno"));
  2792. model.setValue("/root/main/info/taginfo/suppstat" , model.getValue("/root/tmp/reqrfid/suppstat"));
  2793. //태그 지급상태 실시값
  2794. model.makeValue("/root/tag/taginfo/tagstat" , model.getValue("/root/tmp/reqrfid/suppstat"));
  2795. btn_tag.attribute("text") = "태그반납";
  2796. ipt_tagno.disabled = true;
  2797. }
  2798. // 본원에만 적용 되야 하는 것들 기술 (2017/02/06 이정택)
  2799. if(getUserInfo("dutplceinstcd")=="031"){
  2800. //접수와 동시에 RFID 카드 등록여부 결정
  2801. var startdd = model.getValue("/root/init/baseinfo/S960list/S960[cdid != '']/cdid");
  2802. var today = getCurrentDate();
  2803. if(parseInt(today)>=parseInt(startdd)){
  2804. fRfidWrite("WR", ipt_pid.value, ipt_pnm.value);
  2805. }
  2806. //접수와 동시에 환자 팔찌 출력여부 결정
  2807. startdd = model.getValue("/root/init/baseinfo/S980list/S980[cdid = '2']/cdnm");
  2808. if(parseInt(today)>=parseInt(startdd)){
  2809. btn_bracelet.dispatch("DOMActivate");
  2810. }
  2811. }
  2812. //RFID 카드 Write(2016/11/22)
  2813. ret = fCalcAmt("RCPT");
  2814. //1은 서브미션결과가 TRUE
  2815. if(ret == 1){
  2816. // 2016/08/01 검진 순서표 자동 출력 되도록 프로그램 수정
  2817. if(model.getValue("/root/tmp2/printchk")=='Y'){
  2818. ipt_pid.value = model.getValue("root/tmp/reqacpt/pid");
  2819. ipt_pid.refresh();
  2820. btn_examseq2.dispatch("DOMActivate");
  2821. }
  2822. // 2016/08/01 검진 순서표 자동 출력 되도록 프로그램 수정
  2823. //함수 내에서 조건에 따라 수납화면 팝업
  2824. //TRAHA02105로 영수증번호 채번
  2825. //TXAHA02102로 수납화면에 뿌려지는 내용인 카드현금수납내역, 할인내역, 검사내역등 을 조회해온다. /root/hidden/rcpt_out에 결과저장
  2826. //ahafRcptAmt("RCPT");
  2827. //2008.09.30 비자건진 담당자 요청에 따라 비자건진 접수시 수납창 안띄워줌
  2828. //2010.07.29 JHP 건진/예약접수 수납화면 쪼회시 hopedd 기준 조회 되게 수정함.
  2829. //ahafRcptAmt의 orddd를 hopedd로 변경함.
  2830. // - 접수취소시에도 조회는 같은 내용으로 들어가니까. hopedd로 변경함.
  2831. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag") != "G" && model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag") != "G02"){
  2832. ahafRcptAmt("RCPT"
  2833. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd")
  2834. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno")
  2835. , model.getValue("/root/main/info/rsrvacptinfo/item/pid")
  2836. , model.getValue("/root/main/info/rsrvacptinfo/item/hopedd")
  2837. , model.getValue("/root/main/info/rsrvacptinfo/item/rcptstat")
  2838. , "/root/temp/rcptinfo/hidden"
  2839. , model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")
  2840. )
  2841. rst = "T";
  2842. }
  2843. }
  2844. }else if( vMode == "F" ){ //F접수 취소
  2845. model.makeNode("/root/send/srchjobflag");
  2846. model.makeNode("/root/send/srchrcptdd");
  2847. model.makeNode("/root/send/srchrcptno");
  2848. model.makeNode("/root/send/srchrcptseqno");
  2849. ret = fCalcAmt("CANCEL");
  2850. if(ret == 1){
  2851. ahafRcptAmt("CANCEL"
  2852. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvdd")
  2853. , model.getValue("/root/main/info/rsrvacptinfo/item/rsrvno")
  2854. , model.getValue("/root/main/info/rsrvacptinfo/item/pid")
  2855. , model.getValue("/root/main/info/rsrvacptinfo/item/hopedd")
  2856. , model.getValue("/root/main/info/rsrvacptinfo/item/rcptstat")
  2857. , "/root/temp/rcptinfo/hidden"
  2858. , model.getValue("/root/main/info/rsrvacptinfo/item/healexamflag")
  2859. )
  2860. rst = "T";
  2861. }
  2862. }
  2863. /*
  2864. if (vMode=="C")//통합예약 뛰우기{
  2865. vGrdObj = grd_addlst;
  2866. for( var i = 1; i <= vGrdObj.rows ; i++){
  2867. model.makeValue("/root/send/test[" + i +"]/pkgcd" , model.getValue(vGrdObj.nodeset + "[" + i + "]/testcd"));
  2868. }
  2869. model.makeValue("/root/send/test[" + i+1 +"]/pkgcd" , model.getValue("/root/main/info/rsrvacptinfo/item/pkgcd"));
  2870. fTotRsrv();
  2871. }
  2872. */
  2873. //2010-04-12 부천성모만 문진표 자동출력
  2874. model.setValue("/root/send/data/cdgrupid" , "S700");
  2875. model.setValue("/root/send/data/srchcond" , "cd");
  2876. model.setValue("/root/send/data/cdid" , "1");
  2877. model.setValue("/root/send/data/srchuseyn" , "Y");
  2878. submit("TRAHA00004");
  2879. var autorsrv = model.getValue("root/main/codelist/item/cdnm");
  2880. if(autorsrv == "Y" && vMode == "C" && (btn_rsrvcfm.disabled == false)){ //예약
  2881. btn_rsrvprnt.dispatch("onclick"); //예약시 문진표 자동출력
  2882. }
  2883. fInitInfo(); //접수 정보 및 건진자 정보 초기화
  2884. ipt_pnm.currentText ="";
  2885. fSetBtnStat(); //예약,접수등 상태에 맞는 버튼 셋팅
  2886. fGetList(); //TRAHA00103 -건진자 리스트 조회
  2887. //closeLoadingBar() ;//처리중 화면을 close한다.
  2888. var sytsrsrvchk = model.getValue("/root/tmp/sytsrsrvchk/sytsrsrvchk");
  2889. if(sytsrsrvchk == "Y" ){// 통합예약할 내역이 있으면 "Y"
  2890. model.setValue("/root/main/info/rsrvacptinfo/item/pid" ,model.getValue("/root/tmp/reqacpt/pid"));
  2891. //2015/07/02 통합예약 프로그램 호출 수정
  2892. //button2.dispatch("onclick");
  2893. button23.dispatch("onclick");
  2894. //2015/07/02 통합예약 프로그램 호출 수정
  2895. }
  2896. model.refresh();
  2897. }else{
  2898. messageBox("저장이 잘못되었습니다", "E999");
  2899. }
  2900. return 1;
  2901. }
  2902. function fRfidWrite(type, pid, hngnm){
  2903. // debugger;
  2904. try{
  2905. var activeObj = new ActiveXObject("WScript.Shell");
  2906. activeObj.CurrentDirectory = "C:/Program Files/himed/components/JsInfo";
  2907. var fileName = "";
  2908. if(type == "WR") {// 저장과 동시에 환자번호 Write
  2909. //fileName = "JS_RfidCCR_K1.exe " + type + "," + pid + "," + hngnm ;
  2910. fileName = "Js_RfidCCRVb.exe " + pid + " " + hngnm;
  2911. }else if(type == "READ") { // Writing 되어 있는 환자 번호 리딩
  2912. fileName = "Js_RfidCCRVb.exe " + type ;
  2913. }
  2914. activeObj.Run(fileName);
  2915. }catch(e){
  2916. alert("RFID 카드 등록오류");
  2917. }
  2918. }
  2919. function fretinstanceset(){
  2920. model.makeValue("/root/main/info/rsrvacptinfo/item/rsrvdd" , model.getValue("/root/tmp/reqacpt/rsrvdd"));
  2921. model.makeValue("/root/main/info/rsrvacptinfo/item/rsrvno" , model.getValue("/root/tmp/reqacpt/rsrvno"));
  2922. model.makeValue("/root/main/info/rsrvacptinfo/item/pid" , model.getValue("/root/tmp/reqpat/pid"));
  2923. model.makeValue("/root/main/info/rsrvacptinfo/item/orddd" , model.getValue("/root/tmp/reqpat/orddd"));
  2924. model.makeValue("/root/main/info/patinfo/item/pid" , model.getValue("/root/tmp/reqpat/pid"));
  2925. }
  2926. function fTotRsrv(){
  2927. var vPkgCount = getNodesetCount("/root/send/test/pkgcd");
  2928. if(vPkgCount !=0){
  2929. submit("TRAHA00014");//패키지내 중복 체크*/
  2930. var testnm ="";
  2931. var testnmcount ="";
  2932. var cnt = getNodesetCount("/root/tmp/totrsrv/testcount");
  2933. if(cnt != 0){
  2934. alert("///");
  2935. aezfPopUpRsrvSample("SMAEA02000", "", "/root/main/info/rsrvacptinfo/item");
  2936. }
  2937. }
  2938. model.removeNodeset("/root/send/test");
  2939. }
  2940. function fGetPro(){
  2941. model.makeValue("/root/send/srchpkgflag", "");
  2942. model.makeValue("/root/send/srchhealexamflag", "G");
  2943. model.makeValue("/root/send/srchcond" , "");
  2944. if(model.getValue("/root/send/pkgcd") == ""){
  2945. model.makeValue("/root/send/srchcond" , "");
  2946. model.makeValue("/root/send/srchcdnm" , "");
  2947. }else{
  2948. model.makeValue("/root/send/srchcond" , "cd");
  2949. model.makeValue("/root/send/srchcdnm" , model.getValue("/root/send/pkgcd"));
  2950. }
  2951. if(model.getValue("/root/send/srchcond") == ""){
  2952. if(model.getValue("/root/send/pkgnm") == ""){
  2953. model.makeValue("/root/send/srchcond" , "");
  2954. model.makeValue("/root/send/srchcdnm" , "");
  2955. }else{
  2956. model.makeValue("/root/send/srchcond" , "nm");
  2957. model.makeValue("/root/send/srchcdnm" , model.getValue("/root/send/pkgnm"));
  2958. }
  2959. }
  2960. submit("TRAHB00303");
  2961. }
  2962. function finsuCheck(){
  2963. model.makeValue("/root/main/info/rsrvacptinfo/item/insu1","");
  2964. model.makeValue("/root/main/info/rsrvacptinfo/item/insu2","");
  2965. model.makeValue("/root/main/info/rsrvacptinfo/item/insu3","");
  2966. model.makeValue("/root/main/info/rsrvacptinfo/item/insu4","");
  2967. model.makeValue("/root/main/info/rsrvacptinfo/item/insu5","");
  2968. model.makeValue("/root/main/info/rsrvacptinfo/item/insu6","");
  2969. model.makeValue("/root/main/info/rsrvacptinfo/item/insu7","");
  2970. model.makeValue("/root/main/info/rsrvacptinfo/item/insu8","");
  2971. model.makeValue("/root/main/info/rsrvacptinfo/item/insu9","");
  2972. model.makeValue("/root/main/info/rsrvacptinfo/item/insu10","");
  2973. if(model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G01"){
  2974. model.makeValue("/root/main/info/rsrvacptinfo/item/insu1", "G01");
  2975. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2976. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G02"){
  2977. model.makeValue("/root/main/info/rsrvacptinfo/item/insu2", "G02");
  2978. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2979. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G03"){
  2980. model.makeValue("/root/main/info/rsrvacptinfo/item/insu3", "G03");
  2981. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2982. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G04"){
  2983. model.makeValue("/root/main/info/rsrvacptinfo/item/insu4", "G04");
  2984. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2985. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G05"){
  2986. model.makeValue("/root/main/info/rsrvacptinfo/item/insu5", "G05");
  2987. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2988. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G06"){
  2989. model.makeValue("/root/main/info/rsrvacptinfo/item/insu6", "G06");
  2990. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2991. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G07"){
  2992. model.makeValue("/root/main/info/rsrvacptinfo/item/insu7", "G07");
  2993. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2994. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G08"){
  2995. model.makeValue("/root/main/info/rsrvacptinfo/item/insu8", "G08");
  2996. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  2997. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G09"){
  2998. model.makeValue("/root/main/info/rsrvacptinfo/item/insu9", "G09");
  2999. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  3000. } else if (model.getValue("/root/main/info/rsrvacptinfo/item/healexamdetlflag")=="G010"){
  3001. model.makeValue("/root/main/info/rsrvacptinfo/item/insu10", "G010");
  3002. model.makeValue("/root/main/info/rsrvacptinfo/item/healexamflag","G");
  3003. }
  3004. }
  3005. function fInsuChange(){
  3006. if(model.getValue("/root/send/srchcdnm") !=""){
  3007. model.makeValue("/root/send/srchflag" , "02");
  3008. model.makeValue("/root/send/srchcond" , "nm" );
  3009. model.makeValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd"));
  3010. submit("TRAHA00105");
  3011. if(model.getValue("/root/temp/cdlst/item/cmpycd")!=""){
  3012. opener.model.makeValue("/root/main/info/rsrvacptinfo/item/insucorpbrchcd",model.getValue("/root/temp/cdlst/item/cmpycd"));
  3013. }
  3014. }
  3015. }
  3016. function fGetAutoCode(vMode, dgflag){
  3017. model.makeValue("/root/tmp/cdflag",vMode);
  3018. model.makeValue("/root/tmp/dgflag",dgflag);
  3019. modal("SPAHA00700");
  3020. }
  3021. //마약 집게 추가(대장내시경시 마약 신청)
  3022. function fDrugSum(){
  3023. submit("TXAHA00105");
  3024. }
  3025. function fChoiChk(){
  3026. var a = "";
  3027. var cnt = 0;
  3028. var cnt2 = 0;
  3029. for(var i=1; i < grd_addlst.rows;i++){
  3030. if ((grd_addlst.valueMatrix(i,grd_addlst.colRef("testflag"))=="S")){cnt2 = cnt2 +1 ; }
  3031. if ((grd_addlst.valueMatrix(i,grd_addlst.colRef("testflag"))=="S") && (grd_addlst.valueMatrix(i,grd_addlst.colRef("sel")) =="Y")){
  3032. cnt = cnt+ 1;
  3033. }
  3034. }
  3035. if(cnt == 0 && cnt2 != 0 ){
  3036. var rtn = messageBox("패키지내 선택검사 중 1개의 선택검사도 선택 되지 않았습니다, 계속 하시겠습니까? ", "Q0999");
  3037. if(rtn == 6){return true;}
  3038. else if(rtn == 7){return false;}
  3039. }
  3040. }
  3041. /*
  3042. * 환자정보 생성 및 저장
  3043. */
  3044. function fSavePtbs(){
  3045. if( fCheckPatInfo() == false ) return -1 ;
  3046. //수진자정보
  3047. model.copyNode("/root/send/save", "/root/main/info/patinfo/item");
  3048. fCheckNodeExist("/root/send/save/userid", true);
  3049. model.setValue("/root/send/save/userid", getUserId() );
  3050. fCheckNodeExist("/root/send/save/instcd", true);
  3051. model.setValue("/root/send/save/instcd", getUserInfo("dutplceinstcd") );
  3052. submit("TXAHA00111", false) ;
  3053. model.setValue("/root/main/info/patinfo/item/pid" , model.getValue("/root/tmp/patinfo/pid"));
  3054. ipt_pid.refresh();
  3055. }
  3056. // 추가검사 금액셋팅
  3057. // 수정이력 : 20100712 JHP 금액계산부분에서 NaN(이 발생하여 금액이 1로 되는 경우 발생하여 NaN일때 0으로 바꾸는 로직 추가
  3058. function fSetAddAmt() {
  3059. var disccd = model.getValue("/root/main/info/rsrvacptinfo/item/disccd"); // 할인코드
  3060. var cmpycd = model.getValue("/root/main/info/rsrvacptinfo/item/cmpycd"); // 단체코드
  3061. var statflag = model.getValue("/root/main/info/rsrvacptinfo/item/statflag"); // 단체코드
  3062. var chngyn = model.getValue("/root/temp/priceamt/priceamt/chngyn"); // 부담금 변경여부
  3063. var pkgdiscyn = model.getValue("/root/main/info/rsrvacptinfo/item/pkgdiscyn"); // 패키지 할인 여부
  3064. var disc = 0;
  3065. var pAddamt = 0;
  3066. var sCnt = 0;
  3067. var pkgDisc = 0;
  3068. var addDisc = 0;
  3069. var uncoamt = 0;
  3070. var ownbamt = 0;
  3071. var PkgDiscamt = 0;
  3072. var subtotamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/subtotamt")); //소계
  3073. var pkgamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/pkgamt")); //패키지금액
  3074. var cmpyaddamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/cmpyaddamt")); //단체추가검사금액
  3075. var psnaddamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/psnaddamt")); //개인추가검사금액
  3076. var preamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/preamt")); //선수금
  3077. var discamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/discamt")); //할인액
  3078. var realamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/realamt")); //실수납액
  3079. var org_uncoamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/orguncoamt")); // 계약처의 미수금(변경없는)
  3080. var org_ownbamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/orgownbamt")); //게약처의 원래 부담금
  3081. if(chngyn == "Y") {
  3082. uncoamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/chnguncoamt")); //미수금
  3083. ownbamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/chngownbamt")); //부담액
  3084. }else {
  3085. uncoamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/uncoamt")); //미수금
  3086. ownbamt = parseInt(model.getValue("/root/temp/priceamt/priceamt/ownbamt")); //부담액
  3087. }
  3088. // 할인율
  3089. if(disccd != "") {
  3090. pkgDisc = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[cd='"+ disccd + "']/dcamt"));
  3091. addDisc = parseInt(model.getValue("/root/init/baseinfo/pamcdlst/disccdlst[cd='"+ disccd + "']/adddcamt"));
  3092. }
  3093. // 수정추가 20100712 JHP disccd가 값은 있는데 실제 할인코드 인지 미수코드인지 구분을 받는게 없어서 NaN을 발생한다. 하여 NaN이면 0으로 바꾼다.
  3094. if(isNaN(pkgDisc) == true){
  3095. pkgDisc = 0;
  3096. }
  3097. if(isNaN(addDisc) == true){
  3098. addDisc = 0;
  3099. }
  3100. // 개인일 경우 패키지의 할인율 적용
  3101. if(cmpycd == "") {
  3102. if(pkgdiscyn == "Y") {
  3103. discamt = discamt + Math.round(pkgamt*(pkgDisc/100));
  3104. PkgDiscamt = Math.round(pkgamt*(pkgDisc/100));
  3105. }
  3106. }
  3107. var cnt = getNodesetCount("/root/main/info/rsrvacptinfo/addlst") ;
  3108. for(var i=1; i <= cnt; i++) {
  3109. var sel = model.getValue("/root/main/info/rsrvacptinfo/addlst[" + i + "]/sel");
  3110. var testflag = model.getValue("/root/main/info/rsrvacptinfo/addlst[" + i + "]/testflag"); // 검사구분
  3111. var uncocd = model.getValue("/root/main/info/rsrvacptinfo/addlst[" + i + "]/uncocd"); // 청구구분
  3112. var scoreamt = parseInt(model.getValue("/root/main/info/rsrvacptinfo/addlst[" + i + "]/scoreamt")); // 단가
  3113. var testdiscyn = model.getValue("/root/main/info/rsrvacptinfo/addlst[" + i + "]/testdiscyn"); //추가검사할인적용여부
  3114. var dcamt = testdiscyn == "Y"? Math.round(scoreamt*(addDisc/100)) : 0; // 추가검사금액
  3115. if("Y" == sel) {
  3116. if(testflag == "S") {
  3117. sCnt++;
  3118. if(cmpycd != "") {
  3119. if("V01" == uncocd) {
  3120. pAddamt += (scoreamt - dcamt);
  3121. psnaddamt += scoreamt;
  3122. discamt += dcamt;
  3123. subtotamt += scoreamt;
  3124. }else if("V02" == uncocd) {
  3125. uncoamt += (scoreamt - dcamt); // 미수금액
  3126. cmpyaddamt += scoreamt;
  3127. discamt += dcamt;
  3128. subtotamt += scoreamt;
  3129. }
  3130. }
  3131. }else {
  3132. if(cmpycd != "") {
  3133. if("V01" == uncocd) {
  3134. pAddamt += (scoreamt - dcamt); // 개인추가금액
  3135. psnaddamt += scoreamt;
  3136. }else if("V02" == uncocd) {
  3137. uncoamt += (scoreamt - dcamt); //미수금액
  3138. cmpyaddamt += scoreamt;
  3139. }
  3140. discamt += dcamt;
  3141. subtotamt += scoreamt;
  3142. }else {
  3143. pAddamt += (scoreamt - dcamt);
  3144. psnaddamt += scoreamt;
  3145. discamt += dcamt;
  3146. subtotamt += scoreamt;
  3147. }
  3148. }
  3149. }
  3150. }
  3151. // 개인 일 경우
  3152. if(cmpycd == "") {
  3153. if(sCnt > 1) {
  3154. messageBox("선택검사을 2개이상" , "E005");
  3155. }
  3156. }
  3157. model.makeValue("/root/main/info/rcptinfo/subtotamt", subtotamt); //소계
  3158. model.makeValue("/root/main/info/rcptinfo/pkgamt", pkgamt); //패키지금액
  3159. model.makeValue("/root/main/info/rcptinfo/cmpyaddamt", cmpyaddamt); //추가검사금액
  3160. model.makeValue("/root/main/info/rcptinfo/psnaddamt", psnaddamt); //추가검사금액
  3161. model.makeValue("/root/main/info/rcptinfo/preamt", preamt); //선수금
  3162. model.makeValue("/root/main/info/rcptinfo/uncoamt", uncoamt); //미수금
  3163. model.makeValue("/root/main/info/rcptinfo/discamt", discamt); //할인액
  3164. if(statflag == "E" || statflag == "G" || statflag == "H" || statflag == "I") {
  3165. model.makeValue("/root/main/info/rcptinfo/realamt", realamt); //실수납액
  3166. }else {
  3167. if(cmpycd != "") {
  3168. model.makeValue("/root/main/info/rcptinfo/realamt", pAddamt + ownbamt - realamt - preamt); //실수납액
  3169. }else {
  3170. model.makeValue("/root/main/info/rcptinfo/realamt", pkgamt + pAddamt - PkgDiscamt - realamt - preamt); //실수납액
  3171. }
  3172. }
  3173. model.makeValue("/root/main/info/rcptinfo/ownbamt", ownbamt); //부담액
  3174. model.makeValue("/root/main/info/rcptinfo/tempamt", org_uncoamt + org_ownbamt); //게약처 미수금 + 부담금
  3175. if(0 > parseInt(model.getValue("/root/main/info/rcptinfo/realamt"))) {
  3176. opt_realamt.attribute("style") = "left:904px; top:675px; width:291px; height:65px; text-align:right; vertical-align:bottom; color:#ff0000 ";
  3177. }else {
  3178. opt_realamt.initStyle("color");
  3179. opt_realamt.attribute("style") = "left:904px; top:675px; width:291px; height:65px; text-align:right; vertical-align:bottom;";
  3180. }
  3181. model.refresh();
  3182. }
  3183. //렉스포트형 바코드 출력
  3184. // rexnm : 레포트코드
  3185. // closeYn : 미리보기 여부(보기:true, 안보기:비우거나 false)
  3186. // printCount : 출력 숫자
  3187. // dataXPath : 파라메터 위치
  3188. // paramsXPath : 파라메터 위치
  3189. // infoXPath : 바코드 프린터 정보 위치
  3190. function fPrintRexbar(rexnm, closeYn, printCount, dataXPath, paramsXPath, infoXPath){
  3191. var posx = '';
  3192. var posy = '';
  3193. var printnm = '';
  3194. if(infoXPath == "" || infoXPath == "undefined" || infoXPath == null) infoXPath = "/root/main/barcdprntsetup/prntsetupinfo";
  3195. if(model.getValue(infoXPath + "/setupinfo/rexgbn") != "1") return false;
  3196. try{
  3197. if(model.getXpathValue("count(" + infoXPath + "/setupinfo/pcl/pcllist[barnm='"+rexnm+"']/barnm)") > "0"){
  3198. posx = model.getValue(infoXPath + "/setupinfo/pcl/pcllist[barnm='"+rexnm+"']/xpos");
  3199. posy = model.getValue(infoXPath + "/setupinfo/pcl/pcllist[barnm='"+rexnm+"']/ypos");
  3200. printnm = model.getValue(infoXPath + "/setupinfo/pcl/pcllist[barnm='"+rexnm+"']/prtnm");
  3201. }else{
  3202. posx = model.getValue(infoXPath + "/setupinfo/blank/left");
  3203. posy = model.getValue(infoXPath + "/setupinfo/blank/top");
  3204. printnm = model.getValue(infoXPath + "/setupinfo/comm01/setupval");
  3205. }
  3206. if(posx == '') posx = "0";
  3207. if(posy == '') posy = "0";
  3208. if(closeYn == "true") printnm = "";
  3209. exeReportPreview(rexnm, 'XMLSTR', paramsXPath, '', printnm,
  3210. '', '', '', '', "true",
  3211. '', '', '', '', '',
  3212. printCount, '', 'offsetx=' + posx + ';offsetx=' + posy + ';', dataXPath, '',
  3213. '');
  3214. }
  3215. catch(e){
  3216. alert("출력시 오류가 발생하였습니다\n" + e);
  3217. return true;
  3218. }
  3219. return true;
  3220. }
  3221. /*
  3222. * 개인정보이용동의서 출력
  3223. */
  3224. function fPrintPerson(pid, orddd, cretno, scanyn){
  3225. // alert(pid+" : "+orddd+" : "+cretno+" : "+scanyn);
  3226. if(scanyn == "X" || isNull(scanyn)){
  3227. //개인정보이용동의서 출력을 위한 서식코드 취득
  3228. reqHardCodeInfo("/root/send/reqdata", "/root/init/prncd", "5604"); //emr/prcpmngtweb/js/MMO001.js
  3229. var ordtype = "S";
  3230. var ocrtype = "P"; //(P : 종이, E : 전자)
  3231. var formcd = "";
  3232. var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
  3233. //구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
  3234. for(i=1; i<=nodeCnt; i++){
  3235. if(3 == model.getValue("/root/init/prncd/hardcd[" + i + "]/cdseqno")){
  3236. formcd = model.getValue("/root/init/prncd/hardcd[" + i + "]/hardcd");
  3237. break;
  3238. }
  3239. }
  3240. if(model.getValue("/root/init/baseinfo/PK018list/PK018[cdid='" + app.clientIp + "']/cdnm") == "Y"){
  3241. ocrtype = "E";
  3242. }
  3243. if(ocrtype=="E"){ // 전자동의서 출력
  3244. setParameter("SSMRC03160_param_patid", pid);
  3245. setParameter("SSMRC03160_param_indate", orddd);
  3246. setParameter("SSMRC03160_param_cretno", cretno);
  3247. setParameter("SSMRC03160_param_instcd", getUserInfo("dutplceinstcd"));
  3248. setParameter("SSMRC03160_param_class", ordtype);
  3249. setParameter("SSMRC03160_param_docucd", formcd);
  3250. setParameter("SSMRC03160_param_cuser", getUserInfo("userid"));
  3251. setParameter("SSMRC03160_param_flag", "G"); // 일반동의서
  3252. modal("SSMRC03160");
  3253. }else{ // 종이 출력
  3254. setParameter("formcd" , formcd);
  3255. setParameter("pid" , pid);
  3256. setParameter("orddd" , orddd);
  3257. setParameter("cretno" , cretno);
  3258. setParameter("ordtype" , ordtype);
  3259. modal("SSMRF03700");
  3260. }
  3261. /*
  3262. emr/formmngtweb/MRF03700.js
  3263. - finit()
  3264. - fPerPrntOCR()
  3265. - emr/formmngtweb/xrw/SSMRF03800_OCR뷰어.xrw
  3266. - ivw_ocrprnt.window.javascript.fGetOCRInfo(formcd, pid, orddd, cretno, ordtype, formtypecls, ocrtagprntyn);
  3267. - ivw_ocrprnt.window.javascript.fPrint();
  3268. */
  3269. }
  3270. }
  3271. /*
  3272. * 환불내역 조회/승인
  3273. * flag : 1.환불내역조회, 2.환불수납후 호출
  3274. */
  3275. function fRtnRcpt(flag, rtnAmt){
  3276. if(model.getValue("/root/main/info/patinfo/item/pid") == null || (model.getValue("/root/main/info/patinfo/item/pid")).getTrim == ""){
  3277. messageBox("환자번호가 존재하지 않습니다.", "E999");
  3278. }
  3279. var acptRow = grd_acptlist.row;
  3280. if(acptRow < 0){
  3281. acptRow = 1;
  3282. }
  3283. if(flag == "1"){
  3284. var sValue = flag + "▦" + //1.환불내역조회 2.환불수납후 호출
  3285. model.getValue("/root/hidden/session/dutplceinstcd") + "▦" + //기관코드
  3286. model.getValue("/root/main/info/patinfo/item/pid") + "▦" + //환자등록번호
  3287. model.getValue("/root/main/info/patinfo/item/hngnm") + "▦" + //환자성명
  3288. model.getValue("/root/main/info/patinfo/item/rgstno1") + "▦" + //주민등록번호앞자리
  3289. model.getValue("/root/main/info/patinfo/item/rgstno2") + "▦" + //주민등록번호뒷자리
  3290. model.getValue("/root/main/info/patinfo/item/telno") + "▦" + //집전화
  3291. model.getValue("/root/main/info/patinfo/item/mpphon") + "▦" + //휴대폰
  3292. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddd") + "▦" + //진료일
  3293. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/cretno") + "▦" + //일련번호
  3294. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddeptcd") + "▦" + //진료과
  3295. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddrid") + "▦" + //진료의
  3296. rtnAmt + "▦" + //환불금액
  3297. "51" + "▦" + //보험유형
  3298. "S"; //진료유형
  3299. setParameter("SPPAO00600_PARM", sValue);
  3300. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  3301. }else if(flag == "2"){
  3302. if(rtnAmt >= 0){
  3303. return;
  3304. }else{
  3305. var rtn = messageBox("환불내역을 등록 하시겠습니까?", "Q999");
  3306. if(rtn == "6"){
  3307. var sValue = flag + "▦" + //1.환불내역조회 2.환불수납후 호출
  3308. model.getValue("/root/hidden/session/dutplceinstcd") + "▦" + //기관코드
  3309. model.getValue("/root/main/info/patinfo/item/pid") + "▦" + //환자등록번호
  3310. model.getValue("/root/main/info/patinfo/item/hngnm") + "▦" + //환자성명
  3311. model.getValue("/root/main/info/patinfo/item/rgstno1") + "▦" + //주민등록번호앞자리
  3312. model.getValue("/root/main/info/patinfo/item/rgstno2") + "▦" + //주민등록번호뒷자리
  3313. model.getValue("/root/main/info/patinfo/item/telno") + "▦" + //집전화
  3314. model.getValue("/root/main/info/patinfo/item/mpphon") + "▦" + //휴대폰
  3315. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddd") + "▦" + //진료일
  3316. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/cretno") + "▦" + //일련번호
  3317. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddeptcd") + "▦" + //진료과
  3318. model.getValue("/root/main/list/acpt/acptlist[" + acptRow + "]/orddrid") + "▦" + //진료의
  3319. rtnAmt + "▦" + //환불금액
  3320. "51" + "▦" + //보험유형
  3321. "S"; //진료유형
  3322. setParameter("SPPAO00600_PARM", sValue);
  3323. modal("SPPAO00600", "1","50", "50", "SPPAO00600", "", "", "sysmenu:hidden");
  3324. }
  3325. }
  3326. }
  3327. }
  3328. /**
  3329. * 패키지에 물려 있는 검사 코드에 동의서 자동 출력 되도록 프로그램 개발
  3330. * 2015/01/22 이정택
  3331. * @return
  3332. */
  3333. function fPrintOcrInfo(){
  3334. model.makeValue("/root/send/testcdinfo/instcd", getUserInfo("dutplceinstcd"));
  3335. model.makeValue("/root/send/testcdinfo/pid", model.getValue("/root/main/info/acptinfo/acptlist/pid"));
  3336. model.makeValue("/root/send/testcdinfo/orddd", model.getValue("/root/main/info/acptinfo/acptlist/orddd"));
  3337. model.makeValue("/root/send/testcdinfo/cretno", model.getValue("/root/main/info/acptinfo/acptlist/cretno"));
  3338. if(submit("TRAHA00931")){
  3339. cnt=getNodeSetCnt("/root/temp/ocrinfo");
  3340. for(var i=1; i<=cnt; i++){
  3341. setParameter("formcd" , model.getValue("/root/temp/ocrinfo['"+i+"']/formcd"));
  3342. setParameter("pid" , model.getValue("/root/main/info/acptinfo/acptlist/pid"));
  3343. setParameter("orddd" , model.getValue("/root/main/info/acptinfo/acptlist/orddd"));
  3344. setParameter("cretno" , model.getValue("/root/main/info/acptinfo/acptlist/cretno"));
  3345. setParameter("ordtype" , "S");
  3346. modal("SSMRF03700");
  3347. }
  3348. }
  3349. }
  3350. function fPrintOcrInfo_20151012(){
  3351. var cnt=getNodeSetCnt("/root/main/list/acptdtl/oscllist");
  3352. //var codecnt=getNodeSetCnt("/root/init/baseinfo/S902list");
  3353. var testcd="";
  3354. if(cnt>0){
  3355. var sb = new StringBuffer();
  3356. for(var i=1; i<=cnt; i++){
  3357. /*
  3358. if(datagrid1.valueMatrix(i,datagrid1.colRef("grupcalcscorcd"))==model.getValue("/root/init/baseinfo/S902list/S902[cdid!='"+""+"']/cdid")){
  3359. sb.append("'"+datagrid1.valueMatrix(i,datagrid1.colRef("grupcalcscorcd"))+"'");
  3360. }
  3361. */
  3362. sb.append("'"+datagrid1.valueMatrix(i,datagrid1.colRef("grupcalcscorcd"))+"'");
  3363. }
  3364. testcd=sb.toString(",");
  3365. model.makeValue("/root/send/testcdinfo/instcd", getUserInfo("dutplceinstcd"));
  3366. model.makeValue("/root/send/testcdinfo/pid", model.getValue("/root/main/info/acptinfo/acptlist/pid"));
  3367. model.makeValue("/root/send/testcdinfo/orddd", model.getValue("/root/main/info/acptinfo/acptlist/orddd"));
  3368. model.makeValue("/root/send/testcdinfo/cretno", model.getValue("/root/main/info/acptinfo/acptlist/cretno"));
  3369. model.makeValue("/root/send/testcdinfo/testcd", testcd);
  3370. }
  3371. if(testcd!=""){
  3372. if(submit("TRAHA00931")){
  3373. cnt=getNodeSetCnt("/root/temp/ocrinfo");
  3374. for(var i=1; i<=cnt; i++){
  3375. setParameter("formcd" , model.getValue("/root/temp/ocrinfo['"+i+"']/formcd"));
  3376. setParameter("pid" , model.getValue("/root/main/info/acptinfo/acptlist/pid"));
  3377. setParameter("orddd" , model.getValue("/root/main/info/acptinfo/acptlist/orddd"));
  3378. setParameter("cretno" , model.getValue("/root/main/info/acptinfo/acptlist/cretno"));
  3379. setParameter("ordtype" , "S");
  3380. modal("SSMRF03700");
  3381. }
  3382. }
  3383. }
  3384. //2015/01/21 이정택
  3385. }
  3386. /**
  3387. * 이정택 2015/01/21
  3388. * @return
  3389. */
  3390. function StringBuffer(){
  3391. this.buffer = [];
  3392. }
  3393. /**
  3394. * 이정택 2015/01/21
  3395. * @return
  3396. */
  3397. StringBuffer.prototype.append = function(str) {
  3398. if (isNull(str)) { str = ""; }
  3399. this.buffer.push(str);
  3400. return this;
  3401. }
  3402. /**
  3403. * 이정택 2015/01/21
  3404. * @return
  3405. */
  3406. StringBuffer.prototype.toString = function(str) {
  3407. if (isNull(str)) { str = ""; }
  3408. return this.buffer.join(str);
  3409. }
  3410. /**
  3411. * 신우편번호 체계 관련 공통함수
  3412. */
  3413. function fNewZipCdCheck(zipcd1, zipcd2){
  3414. if(zipcd2.length!=2){
  3415. messageBox("2015년 8월 1일부터 우편번호 뒷자리는 2자리 변경되었습니다.\n확인 후 수정부탁드립니다.", "E");
  3416. return;
  3417. }
  3418. }
  3419. /**
  3420. * 종합건진 그리드 클릭시 동명이인 확인을 위해서 로직 추가(2016/10/25)
  3421. */
  3422. function fChkPatNameC(gridNode, colName, patName){
  3423. //var cnt=getNodeSetCnt(gridNode + "[pnm='" + patName + "']");
  3424. var cnt=getNodeSetCnt(gridNode + "["+ colName + "='" + patName + "']");
  3425. if(parseInt(cnt)>1){
  3426. messageBox("["+patName+"]님으로 동명이인이 존재합니다. 확인 후 진행부탁드립니다.", "I");
  3427. }
  3428. }
  3429. /**
  3430. * 환자 팔찌 출력 관련 프로그램 개발(2017/02/03 이정택)
  3431. */
  3432. function fPrintBarCode() {
  3433. var pid = model.getValue("/root/main/info/patinfo/item/pid");
  3434. var hngnm = model.getValue("/root/main/info/patinfo/item/hngnm");
  3435. var rrgstno1 = model.getValue("/root/main/info/patinfo/item/rgstno1");
  3436. var today = getCurrentDate();
  3437. var lastinfo = model.getValue("/root/main/info/rsrvacptinfo/item/latestpkginfo").substr(0, 10).replaceAll("-", "");
  3438. var sex = model.getValue("/root/main/info/patinfo/item/sex");
  3439. var age = model.getValue("/root/main/info/patinfo/item/age");
  3440. model.makeValue("/root/hidden/h_receipt/receipt/pid", pid);
  3441. model.makeValue("/root/hidden/h_receipt/receipt/hngnm2", hngnm);
  3442. model.makeValue("/root/hidden/h_receipt/receipt/rrgstno",rrgstno1+" "+today+"/"+lastinfo);
  3443. model.makeValue("/root/hidden/h_receipt/receipt/sex", sex);
  3444. model.makeValue("/root/hidden/h_receipt/receipt/wardcd", "건강증진센터");
  3445. model.makeValue("/root/hidden/h_receipt/receipt/babyyn", "N");
  3446. model.makeValue("/root/hidden/h_receipt/receipt/age", age);
  3447. model.refresh();
  3448. // 프린터정보
  3449. var print_name = "";
  3450. // 트레이정보
  3451. var print_tray = "";
  3452. // 건진 환자 팔찌 프린터 기준자료 설정
  3453. print_name = model.getValue("/root/init/baseinfo/S980list/S980[cdid = '1']/cdnm");
  3454. print_tray = model.getValue("/root/init/baseinfo/S980list/S980[cdid = '1']/sortseq");
  3455. if (print_name == 'SLP-T400' || print_name == 'SLP-T401') {
  3456. exeReportPreview("RPPMI03202", "XMLSTR" , "" , "" , print_name , "", "", "", "", "true", "", "", print_tray);
  3457. }
  3458. }
  3459. /**
  3460. * 종합건진 미수 청구를 분리 시킴
  3461. * @return
  3462. */
  3463. function fUncoSeparate(){
  3464. var uncocd = cmb_pkguncocd.value;
  3465. var pkgamt = parseInt(opt_pkgamt.value);
  3466. var discamt = parseInt(opt_discamt.value);
  3467. if(uncocd == 'V14'){
  3468. ipt_paycmpyamt.disabled=false;
  3469. ipt_payinsubamt.disabled=false;
  3470. if(isNull(ipt_paycmpyamt.value)){
  3471. ipt_paycmpyamt.value = pkgamt - discamt;
  3472. }
  3473. if(isNull(ipt_payinsubamt.value)){
  3474. ipt_payinsubamt.value = "0";
  3475. }
  3476. }else{
  3477. ipt_paycmpyamt.disabled=true;
  3478. ipt_payinsubamt.disabled=true;
  3479. }
  3480. ipt_paycmpyamt.refresh();
  3481. ipt_payinsubamt.refresh();
  3482. }
  3483. //업체와 공단미수금액을 변경시 미수금액을 자동 세팅시킴
  3484. function fSetUncoAmt(btn_name){
  3485. var uncocd = cmb_pkguncocd.value;
  3486. var pkgamt = parseInt(opt_pkgamt.value) - parseInt(opt_discamt.value);
  3487. var paycmpyamt = model.getValue("/root/main/info/rsrvacptinfo/item/paycmpyamt").replaceAll(",", "");
  3488. var payinsubamt = model.getValue("/root/main/info/rsrvacptinfo/item/payinsubamt").replaceAll(",", "");
  3489. if(uncocd == 'V14'){
  3490. if(btn_name=="ipt_paycmpyamt"){
  3491. ipt_payinsubamt.value = parseInt(pkgamt) - parseInt(paycmpyamt);
  3492. }else if(btn_name=="ipt_payinsubamt"){
  3493. ipt_paycmpyamt.value = parseInt(pkgamt) - parseInt(payinsubamt);
  3494. }
  3495. }
  3496. ipt_paycmpyamt.refresh();
  3497. ipt_payinsubamt.refresh();
  3498. }