SMMNW20100.js 105 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 구두처방 ( SMMNW10900_구두처방.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sPATINFO_PATH = "/root/main/patinfocond/patinfo"; //환자정보
  7. var sPRCPSRCHLIST_PATH = "/root/main/prcpsrch/prcplist"; //처방검색
  8. var sBFPRCPLIST_PATH = "/root/main/bfprcp/prcplist"; //전처방
  9. var sPRCPLIST_PATH = "/root/main/prcp/prcplist"; //간호처방
  10. var sSIGNDATA_PATH = "/root/main/signdata/signprcplist"; //인증데이터
  11. var sSIGNTEMPDATA_PATH = "/root/main/signdata/signtempprcplist"; //인증데이터(임시처방)
  12. var homecarecenterdeptcd, homecareteamdeptcd;
  13. var signtime = "";
  14. var vsettime = "";
  15. var vsetdate = "";
  16. var spcldept = "";
  17. /**
  18. * @desc : 화면 초기화
  19. * @
  20. * @param :
  21. * @return :
  22. * @author : 성미연
  23. * @---------------------------------------------------
  24. */
  25. function fInitialize_SMMNW20100(){
  26. //간호처방 도움말 기능 칠곡만 보이도록 2013.07.15 KJS
  27. var sInstcd = getUserInfo("dutplceinstcd");
  28. var sDutplcecd = getUserInfo("dutplcecd");
  29. var settingnurid = ""; //내환자 setting변수
  30. zesfInitSign(); //인증 모듈 초기화
  31. // 간호하드코딩 테이블 조회_20090416(ByJA)
  32. //----------(20110118) 경북대
  33. //var pCode = "'047', '048','002','195','207'"; // 조회할 CdGrupID 코드정보 002 : 응급의료센터 추가 (야간가산은 응급의료센터만 세팅)20091214 김홍점
  34. var pCode = "'003', '047', '048','002','195','207','016','T84','202','I09'"; //마취회복실추가 '046':영상의학과 추가. 'T84':인증저장팝업.
  35. var machideptcd = "";
  36. //----------(20110118) 경북대
  37. var pDate = getCurrentDate(); // 조회기준일자
  38. fGetNursHardCdInfo(pCode, pDate);
  39. for(var i=1; i<=getNodesetCount("/root/code/codeinfo/codelist"); i++){
  40. switch (model.getValue("/root/code/codeinfo/codelist["+i+"]/cdgrupid")){
  41. case "202": //대차여부
  42. cartcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  43. break;
  44. case "047": // 가정간호센터
  45. homecarecenterdeptcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  46. break;
  47. case "048": // 가정간호팀
  48. homecareteamdeptcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  49. break;
  50. case "016": // 마취회복실
  51. machideptcd = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  52. break;
  53. case "T84":
  54. signtime = model.getValue("/root/code/codeinfo/codelist["+i+"]/cdid");
  55. }
  56. }
  57. spcldept = model.getValue("/root/code/codeinfo/codelist[cdgrupid='003']/cdid");
  58. if(cartcd != 'Y'){
  59. grd_prcpposlist.colHidden(grd_prcpposlist.colRef("drprcpetc10")) = true;
  60. grd_bfprcplist.colHidden(grd_bfprcplist.colRef("drprcpetc10")) = true;
  61. }
  62. model.removeNodeset(sPRCPSRCHLIST_PATH);
  63. model.removeNodeset(sBFPRCPLIST_PATH);
  64. model.removeNodeset(sPRCPLIST_PATH);
  65. //콤보리스트 셋팅(급비, 처방분류)
  66. zbcfGetCodeList(new Array("M0029", "M0005", "M0007", "P0506", "M0756"), new Array("/root/init/comcodelist/payflag_cmblist", "/root/init/comcodelist/clscd_cmblist", "/root/init/comcodelist/opflag_cmblist" ,"/root/init/drgacptflag", "/root/init/comcodelist/resn_cmblist"), true);
  67. model.setValue("/root/main/bfprcpinfo/bfcond/srchclscd", "ALL");
  68. //초기 셋팅값
  69. model.setValue("/root/main/cond/prcpdd", getCurrentDate()); //처방일
  70. model.setValue("/root/main/bfprcpinfo/bfcond/prcpfromdd", model.getValue("/root/main/cond/prcpdd").toDate().getAddDate(-7, "D").getDateFormat()); //전처방
  71. model.setValue("/root/main/bfprcpinfo/bfcond/prcptodd", model.getValue("/root/main/cond/prcpdd"));
  72. //설정된 상단정보를 불러옴
  73. model.makeNode("/root/main/paminfo");
  74. var node = getGlobalVariable("paminfo");
  75. setCSVToNode("/root/main/paminfo", node);
  76. if (model.getValue("/root/main/paminfo/list/pid") != "") { //상단정보에 환자가 셋팅되어 있을 경우
  77. model.makeValue("/root/main/cond/upinfoyn", "Y");
  78. //patinfo 정보 셋팅
  79. if (model.getValue("/root/main/paminfo/list/ioflag") == 'O') {
  80. var centcd = model.getValue("/root/main/paminfo/list/centcd");
  81. if(centcd == "-" || centcd == "") {
  82. model.setValue("/root/main/cond/wardcd" , model.getValue("/root/main/paminfo/list/orddeptcd"));
  83. } else {
  84. model.setValue("/root/main/cond/wardcd" , centcd);
  85. }
  86. model.setValue(sPATINFO_PATH + "/wardcd" , model.getValue("/root/main/paminfo/list/orddeptcd"));
  87. model.setValue(sPATINFO_PATH + "/orddd" , model.getValue("/root/main/paminfo/list/orddd"));
  88. model.setValue(sPATINFO_PATH + "/acptseqno" , model.getValue("/root/main/paminfo/list/acptseqno"));
  89. model.setValue(sPATINFO_PATH + "/orddrid" , model.getValue("/root/main/paminfo/list/orddrid"));
  90. model.setValue(sPATINFO_PATH + "/atdoctid" , "-");
  91. model.setValue(sPATINFO_PATH + "/clincstdyflag", model.getValue("/root/main/paminfo/list/clincstdyacptflag"));
  92. model.setValue(sPATINFO_PATH + "/clincstdycd" , model.getValue("/root/main/paminfo/list/clincstdyno"));
  93. model.makeValue(sPATINFO_PATH + "/dschnotiyn" , "N"); // 간호사퇴원확정여부_20080807추가(ByJA)
  94. model.makeValue(sPATINFO_PATH + "/careinrmyn" , "Y"); // 입실확인여부 체크 외래는 비교대상이 아니므로 무조건 Y 20090908 khj
  95. } else {
  96. model.setValue("/root/main/cond/wardcd" , model.getValue("/root/main/paminfo/list/wardcd"));
  97. model.setValue(sPATINFO_PATH + "/wardcd" , model.getValue("/root/main/paminfo/list/wardcd"));
  98. model.setValue(sPATINFO_PATH + "/roomcd" , model.getValue("/root/main/paminfo/list/roomcd"));
  99. model.setValue(sPATINFO_PATH + "/indd" , model.getValue("/root/main/paminfo/list/indd"));
  100. model.setValue(sPATINFO_PATH + "/orddrid" , model.getValue("/root/main/paminfo/list/medispclid"));
  101. model.setValue(sPATINFO_PATH + "/atdoctid" , model.getValue("/root/main/paminfo/list/atdoctid"));
  102. model.setValue(sPATINFO_PATH + "/clincstdyflag", model.getValue("/root/main/paminfo/list/clincstdyyn"));
  103. model.setValue(sPATINFO_PATH + "/clincstdycd" , model.getValue("/root/main/paminfo/list/clincstdycd"));
  104. model.makeValue(sPATINFO_PATH + "/dschnotiyn" , model.getValue("/root/main/paminfo/list/dschnotiyn")); // 간호사퇴원확정여부_20080807추가(ByJA)
  105. if ( model.getValue("/root/main/paminfo/list/ioflag") == 'E' && model.getValue("/root/main/paminfo/list/calcdd") != '-' ){
  106. model.makeValue(sPATINFO_PATH + "/careinrmyn" ,'Y');// 입실확인여부 체크 20090908 khj
  107. } else if ( model.getValue("/root/main/paminfo/list/ioflag") != 'E' && model.getValue("/root/main/paminfo/list/careinrmdd") != '-' ){
  108. model.makeValue(sPATINFO_PATH + "/careinrmyn" ,'Y');// 입실확인여부 체크 20090908 khj
  109. } else {
  110. model.makeValue(sPATINFO_PATH + "/careinrmyn" ,'N');// 입실확인여부 체크 20090908 khj
  111. }
  112. }
  113. model.setValue(sPATINFO_PATH + "/pid" , model.getValue("/root/main/paminfo/list/pid"));
  114. model.setValue(sPATINFO_PATH + "/patnm" , model.getValue("/root/main/paminfo/list/hngnm"));
  115. model.setValue(sPATINFO_PATH + "/cretno" , model.getValue("/root/main/paminfo/list/cretno"));
  116. model.setValue(sPATINFO_PATH + "/orddeptcd", model.getValue("/root/main/paminfo/list/orddeptcd"));
  117. model.setValue(sPATINFO_PATH + "/ordtype" , model.getValue("/root/main/paminfo/list/ioflag"));
  118. model.setValue(sPATINFO_PATH + "/sexage" , model.getValue("/root/main/paminfo/list/sex") + "/" + model.getValue("/root/main/paminfo/list/age"));
  119. model.setValue(sPATINFO_PATH + "/insukind" , model.getValue("/root/main/paminfo/list/insukind"));
  120. model.setValue(sPATINFO_PATH + "/specordyn", model.getValue("/root/main/paminfo/list/specordyn"));
  121. model.setValue(sPATINFO_PATH + "/instcd" , model.getValue("/root/main/paminfo/list/instcd"));
  122. ////20110828_KNUH_Start 내환자setting정보 조회.
  123. fGetSettringInfoRef();
  124. //내환자셋팅정보가 있으면 set,없으면 그냥 null
  125. settingnurid = model.getValue("/root/init/settinginfo/settingrn[settingrnid='" + getUserInfo("userid") +"']/settingrnid");
  126. if(settingnurid == null || settingnurid == "") {
  127. } else {
  128. model.setValue(cmb_settingrn.attribute("ref"), getUserInfo("userid"));
  129. cmb_settingrn.refresh();
  130. }
  131. //20110828_KNUH_End
  132. } else {
  133. model.setValue("/root/main/cond/wardcd", getUserInfo("dutplcecd")); //상단정보가 없을 경우 간호사 소속부서
  134. //20110828_KNUH_Start 환자setting정보 조회
  135. fGetSettringInfoRef();
  136. settingnurid = model.getValue("/root/init/settinginfo/settingrn[settingrnid='" + getUserInfo("userid") +"']/settingrnid");
  137. //내환자셋팅정보가 있으면 set,없으면 그냥 null
  138. if(settingnurid == null || settingnurid == "") {
  139. } else {
  140. model.setValue(cmb_settingrn.attribute("ref"), getUserInfo("userid"));
  141. cmb_settingrn.refresh();
  142. }
  143. //20110828_KNUH_End
  144. }
  145. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
  146. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", model.getValue(sPATINFO_PATH + "/orddeptcd"), "0330");
  147. model.setValue("/root/main/prcpposinfo/cond/resndeptcd", model.getValue(sPATINFO_PATH + "/orddeptcd"));
  148. if("-" != model.getValue(sPATINFO_PATH + "/atdoctid") && !isNull(model.getValue(sPATINFO_PATH + "/atdoctid"))) {
  149. model.setValue("/root/main/prcpposinfo/cond/resndrid" , model.getValue(sPATINFO_PATH + "/atdoctid"));
  150. } else {
  151. model.setValue("/root/main/prcpposinfo/cond/resndrid" , model.getValue(sPATINFO_PATH + "/orddrid"));
  152. }
  153. submit("TRMNW11001", false); //부서콤보 조회
  154. if(getScreenMenuParameter() == "SMMNH" || opener.javascript.getParameter("screenParam") == "SMMNH"){
  155. model.setValue("/root/main/cond/homecareyn", "Y");
  156. }
  157. //20110215 이선경 : 경북대 - 응급실일 경우 구역정보를 조회
  158. fGetZoneList();
  159. fnZoneDisp();
  160. fRoomInfoRef("init"); //해당병동의 해당병실조회
  161. if(settingnurid == null || settingnurid=="") {
  162. cmb_room.disabled = false;
  163. } else {
  164. cmb_room.disabled = true;
  165. fPatInfoRef("I");
  166. }
  167. cmb_userpos.disabled = true;
  168. fChkClincstdy(); //임상연구 체크 20100727 환자정보 최종 카피되고 나서 세팅해야하므로 위치 옮기면 안됌.
  169. //가정간호처방일 경우 방문일자 셋팅
  170. if(getScreenMenuParameter() == "SMMNH" || opener.javascript.getParameter("screenParam") == "SMMNH"){
  171. model.setValue("/root/main/prcpposinfo/cond/poscd" , "2"); // 처방위치_2:User위치
  172. model.setValue("/root/main/prcpposinfo/cond/deptcd", homecarecenterdeptcd); // User위치코드_2361000000:가정간호센터_강남성모,서울성모병원
  173. if(cmb_userpos.label == ""){
  174. model.setValue("/root/main/prcpposinfo/cond/deptcd", homecareteamdeptcd); // User위치코드_3090100000:가정간호팀_강남성모,서울성모병원
  175. }
  176. cmb_userpos.disabled = false;
  177. fSearchHomePatInfo(); // 방문일자 조회_추가(20090331_ByJA)
  178. } else if(getScreenMenuParameter() == "SMMND"){ //인공신장일 경우 처방위치 user위치로_20081015(byJA_소경화ITC요청)
  179. model.setValue("/root/main/prcpposinfo/cond/poscd" , "2"); // 처방위지_2:User위치
  180. model.setValue("/root/main/prcpposinfo/cond/deptcd", getUserInfo("dutplcecd")); //소속부서
  181. cmb_userpos.disabled = false;
  182. } else if(getScreenMenuParameter() == "SMAEA" || opener.javascript.getParameter("screenParam") == "SMAEA"){ //간호기능파트(내시경실, 부정맥검사실, 간크리닉, 기관지경실, 심장초음파실) 경우 처방위치 user위치로_20081208(ByJA)
  183. model.setValue("/root/main/prcpposinfo/cond/poscd" , "2"); // 처방위지_2:User위치
  184. model.setValue("/root/main/prcpposinfo/cond/deptcd", getUserInfo("dutplcecd")); //소속부서
  185. cmb_userpos.disabled = false;
  186. } else if(machideptcd == getUserInfo("dutplcecd") ){ //간호기능파트(마취회복실) 경우 처방위치 user위치 //-------------(20110118) 경북대
  187. model.setValue("/root/main/prcpposinfo/cond/poscd" , "2"); // 처방위지_2:User위치
  188. model.setValue("/root/main/prcpposinfo/cond/deptcd", getUserInfo("dutplcecd")); //소속부서
  189. cmb_userpos.disabled = false;
  190. } //-------------(20110118) 경북대
  191. cmb_userpos.refresh();
  192. cmb_bfcond.choices.itemset.attribute("nodeset") = "/root/init/bfcondinfo/bfcond";
  193. //*** 처방목록
  194. model.makeValue("/root/send/reqdata/comnrefflag", 'Y');
  195. submit("TRMNW10901", false); //set부서콤보 조회(공통 포함)
  196. var pid = model.getValue("/root/main/cond/pid");
  197. if(pid != ""){
  198. fprtlnm(pid);
  199. }
  200. }
  201. /**
  202. * @desc : 부서조건에 따른 병실 조회
  203. * @
  204. * @param :initflag ="init" 초기화
  205. * @return :
  206. * @author : 성미연
  207. * @---------------------------------------------------
  208. */
  209. function fRoomInfoRef(initflag) {
  210. model.removeNodeset("/root/init/roominfo/room/roomcd");
  211. model.resetInstanceNode("/root/main/cond/patnm");
  212. model.resetInstanceNode("/root/main/cond/pid");
  213. model.removeNodeset(sPRCPLIST_PATH);
  214. model.removeNodeset(sBFPRCPLIST_PATH);
  215. var settingrnid = model.getValue("/root/main/cond/settingrnid");
  216. var deptflag = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/cond/wardcd") + "']/deptflag");
  217. if (deptflag == 'I') { //해당병동의 해당병실조회
  218. cmb_room.disabled = false;
  219. model.removeNodeset("/root/send/reqdata");
  220. model.makeNode("/root/send/reqdata");
  221. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  222. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  223. if (submit("TRMNW10902", false)) {
  224. if (model.getValue("/root/main/cond/upinfoyn") == "Y") { //상단정보에 환자가 셋팅되어 있을 경우
  225. //20110828_KNUH_Start
  226. if(settingrnid == null || settingrnid == "") {
  227. model.setValue("/root/main/cond/roomcd", model.getValue("/root/main/paminfo/list/roomcd"));
  228. } else {
  229. model.setValue("/root/main/cond/roomcd", "-");
  230. }
  231. //20110828_KNUH_End
  232. fPatInfoRef("I",initflag);
  233. } else {
  234. model.setValue("/root/main/cond/roomcd", "-");
  235. model.removeNodeset("/root/init/patinfo/patlist");
  236. }
  237. }
  238. } else { //외래과 환자 조회
  239. cmb_room.disabled = true;
  240. fPatInfoRef("O", initflag);//병동은 상관없고 외래인경우 내시경실의 경우 상단정보대로 처방발생20100409 변경협의체결과 나오기전까지 임시 khj ->16040 요청번호에 의해 당일수진에만 처방발생하도록 함. 20100715 김홍점
  241. }
  242. model.refresh();
  243. }
  244. //20110828_KNUH_Start 환자setting정보 조회
  245. function fGetSettringInfoRef() {
  246. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd") );
  247. submit("TRMNW10910");
  248. cmb_settingrn.refresh();
  249. }
  250. /**
  251. * @desc : 병실별 환자리스트 조회, 부서별 환자리스트 조회
  252. * @
  253. * @param :
  254. * @return :
  255. * @author : 성미연
  256. * @---------------------------------------------------
  257. */
  258. function fPatInfoRef(deptflag, initflag) {
  259. var settingnurid="";
  260. settingnurid = model.getValue("/root/main/cond/settingrnid");
  261. model.resetInstanceNode("/root/main/cond/pid");
  262. model.resetInstanceNode("/root/main/cond/patnm");
  263. model.removeNodeset(sPRCPLIST_PATH);
  264. model.removeNodeset(sBFPRCPLIST_PATH);
  265. model.removeNodeset("/root/send/reqdata");
  266. model.makeNode("/root/send/reqdata");
  267. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  268. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  269. var centcd = model.getValue("/root/main/paminfo/list/centcd");
  270. if(centcd != "-" && centcd != "") {
  271. model.makeValue("/root/send/reqdata/centflag", "Y");
  272. }
  273. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  274. if (deptflag == "I") { //병실별 환자조회
  275. //20110828_KNUH_Start
  276. if(settingnurid == null || settingnurid == "") {
  277. model.makeValue("/root/send/reqdata/roomcd", model.getValue("/root/main/cond/roomcd"));
  278. } else {
  279. model.makeValue("/root/send/reqdata/roomcd", "-");
  280. }
  281. //20110828_KNUH_End
  282. model.makeValue("/root/send/reqdata/refflag", "room");
  283. model.makeValue("/root/send/reqdata/ordtype", "I");
  284. model.makeValue("/root/send/reqdata/zonecd", model.getValue("/root/main/cond/zonecd"));
  285. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  286. } else { //외래부서 환자조회
  287. model.makeValue("/root/send/reqdata/refflag", "dept");
  288. model.makeValue("/root/send/reqdata/ordtype", "O");
  289. model.makeValue("/root/send/reqdata/homecareyn", model.getValue("/root/main/cond/homecareyn"));
  290. }
  291. if(spcldept == model.getValue("/root/main/cond/wardcd")) {
  292. model.makeValue("/root/send/reqdata/spcldeptyn", "Y");
  293. } else {
  294. model.makeValue("/root/send/reqdata/spcldeptyn", "");
  295. }
  296. if (submit("TRMNW10903", false)) {
  297. if (model.getValue("/root/main/cond/upinfoyn") == "Y") { //상단정보에 환자가 셋팅되어 있을 경우
  298. model.setValue("/root/main/cond/patnm", model.getValue("/root/main/paminfo/list/pid"));
  299. model.setValue("/root/main/cond/pid", model.getValue("/root/main/paminfo/list/pid"));
  300. //가정간호 환자인 경우 방문일자 조회
  301. if(model.getValue("/root/main/cond/homecareyn") == "Y") {
  302. fSearchHomePatInfo();
  303. }
  304. } else {
  305. model.setValue("/root/main/cond/patnm", "");
  306. model.setValue("/root/main/cond/pid", "");
  307. }
  308. }
  309. var pid=model.getValue("/root/main/cond/pid");
  310. //병동은 상관없고 외래인경우 내시경실의 경우 상단정보대로 처방발생20100409 변경협의체결과 나오기전까지 임시 khj
  311. //->16040 요청번호에 의해 당일수진에만 처방발생하도록 함. 20100715 김홍점
  312. // if ( (getScreenMenuParameter() == "SMAEA" || opener.javascript.getScreenID() == "SMAEA01500" )
  313. // && deptflag == "O"
  314. // && initflag == "init"
  315. // || deptflag == "I"){////병동은 퇴원환자도 전처방은 조회되어야 함.
  316. if ( initflag == "init" && deptflag == "I"){////병동은 퇴원환자도 전처방은 조회되어야 함.
  317. if ( !isNull(model.getValue("/root/init/patinfo/patlist[pid = '" + pid + "']/pid"))) {
  318. //환자정보조건 셋팅
  319. model.copyNode("/root/main/patinfocond/patinfo", "/root/init/patinfo/patlist[pid = '" + pid + "']");
  320. }
  321. fReqBfNursPrcpInfo(); //전처방 조회
  322. }else{
  323. fChgPatnm(deptflag, model.getValue("/root/main/cond/prcpdd"),initflag);
  324. }
  325. model.refresh();
  326. }
  327. /**
  328. * @desc : 환자아이디로 해당부서, 병실, 환자명 조회
  329. * @
  330. * @param :
  331. * @return :
  332. * @author : 성미연
  333. * @---------------------------------------------------
  334. */
  335. function fSearchPatInfo() {
  336. if(event.keycode == "13"){
  337. model.setFocus("btn_ref");
  338. //그리드 초기화
  339. model.removeNodeset(sPRCPLIST_PATH);
  340. model.removeNodeset(sBFPRCPLIST_PATH);
  341. //환자아이디로 현재 상태 조회
  342. var pid = model.getValue("/root/main/cond/pid");
  343. model.removeNodeset("/root/send/reqdata");
  344. model.makeNode("/root/send/reqdata");
  345. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  346. model.makeValue("/root/send/reqdata/pid", model.getValue("/root/main/cond/pid"));
  347. model.makeValue("/root/send/reqdata/refflag", "pat");
  348. model.makeValue("/root/send/reqdata/homecareyn", model.getValue("/root/main/cond/homecareyn"));
  349. if (submit("TRMNW10904")) {
  350. if (model.getValue("/root/main/patinfocond/patinfo/wardcd") == 'err') {
  351. messageBox("해당 환자 정보가 존재하지 않습니다.", "I");
  352. model.setValue("/root/main/cond/patnm", model.getValue("/root/init/patinfo/patlist/pid"));
  353. model.setFocus("ipt_pid");
  354. model.refresh();
  355. return;
  356. } else {
  357. btn_signsave.disabled = false;
  358. //해당 부서 셋팅
  359. if (getNodesetCount("/root/main/patinfocond/patinfo") > 1 ) {
  360. modal("SPMNW11800", 1, 100, 100, "SPMNW11800", "/root/main/patinfocond", "/root/main/patinfocond");
  361. }
  362. model.setValue("/root/main/cond/wardcd", model.getValue("/root/main/patinfocond/patinfo/wardcd"));
  363. if (model.getValue("/root/main/patinfocond/patinfo/ordtype") == 'I' || model.getValue("/root/main/patinfocond/patinfo/ordtype") == 'D' || model.getValue("/root/main/patinfocond/patinfo/ordtype") == 'E') {
  364. cmb_room.disabled = false;
  365. //해당 병동의 병실 조회
  366. model.removeNodeset("/root/send/reqdata");
  367. model.makeNode("/root/send/reqdata");
  368. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  369. submit("TRMNW10902", false);
  370. model.setValue("/root/main/cond/roomcd", model.getValue("/root/main/patinfocond/patinfo/roomcd")); //해당 병실 셋팅
  371. //해당 병실의 환자 조회
  372. model.removeNodeset("/root/send/reqdata");
  373. model.makeNode("/root/send/reqdata");
  374. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  375. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  376. model.makeValue("/root/send/reqdata/roomcd", model.getValue("/root/main/cond/roomcd"));
  377. model.makeValue("/root/send/reqdata/refflag", "room");
  378. model.makeValue("/root/send/reqdata/ordtype", "I");
  379. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  380. if(spcldept == model.getValue("/root/main/cond/wardcd")) {
  381. model.makeValue("/root/send/reqdata/spcldeptyn", "Y");
  382. } else {
  383. model.makeValue("/root/send/reqdata/spcldeptyn", "");
  384. }
  385. submit("TRMNW10903", false);
  386. //20110216 경북대 : 응급실 구역 매핑
  387. model.makeValue("/root/main/cond/zonecd", model.getValue("/root/main/patinfocond/patinfo/zonecd"));
  388. } else {
  389. model.removeNodeset("/root/init/roominfo/room/roomcd");
  390. cmb_room.disabled = true;
  391. //해당 부서(진료과)의 환자 조회
  392. model.removeNodeset("/root/send/reqdata");
  393. model.makeNode("/root/send/reqdata");
  394. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  395. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  396. model.makeValue("/root/send/reqdata/refflag", "dept");
  397. model.makeValue("/root/send/reqdata/ordtype", "O");
  398. model.makeValue("/root/send/reqdata/homecareyn", model.getValue("/root/main/cond/homecareyn"));
  399. if(spcldept == model.getValue("/root/main/cond/wardcd")) {
  400. model.makeValue("/root/send/reqdata/spcldeptyn", "Y");
  401. } else {
  402. model.makeValue("/root/send/reqdata/spcldeptyn", "");
  403. }
  404. submit("TRMNW10903", false);
  405. //가정간호 환자인 경우 방문일자 조회
  406. if(model.getValue("/root/main/cond/homecareyn") == "Y") {
  407. fSearchHomePatInfo();
  408. }
  409. }
  410. //환자정보조건 셋팅
  411. model.copyNode("/root/main/patinfocond/patinfo", "/root/init/patinfo/patlist[pid = '" + pid + "']");
  412. model.setValue("/root/main/cond/patnm", model.getValue("/root/main/patinfocond/patinfo/pid")); //해당 환자명 셋팅
  413. fChkClincstdy(); //임상연구 체크
  414. fReqBfNursPrcpInfo(); //전처방 조회
  415. }
  416. }
  417. }
  418. }
  419. /**
  420. * @desc : 조회조건 환자명 변경시
  421. * @
  422. * @param :
  423. * @return :
  424. * @author : 성미연
  425. * @---------------------------------------------------
  426. */
  427. function fChgPatnm(deptflag, prcpdd, initflag) {
  428. btn_signsave.disabled = false;
  429. model.removeNodeset(sPRCPSRCHLIST_PATH); //SET처방 조회하는 시점에 spynpy1를 조회하기 위한 insukind를 넘겨줘야 함(환자별로 다름)
  430. model.removeNodeset(sPRCPLIST_PATH);
  431. var pid = model.getValue("/root/main/cond/patnm");
  432. model.setValue("/root/main/cond/pid", pid);
  433. if ( isNull(model.getValue("/root/init/patinfo/patlist[pid = '" + pid + "']/pid"))) {
  434. if (initflag =="init"
  435. && deptflag == "O"
  436. && model.getValue(sPATINFO_PATH + "/orddd") != prcpdd
  437. && model.getValue("/root/main/cond/upinfoyn") =="Y" ) { //화면오픈시 외래수진일자와 처방일자가 다를경우 블러킹메시지.20100727 김홍점 김숙인itc요청
  438. messageBox("진료일["+model.getValue(sPATINFO_PATH + "/orddd")+"]과 처방일자가 달라 처방발행이 불가능합니다", "I");
  439. btn_signsave.disabled = true;
  440. if ( !isNull(model.getValue("/root/main/cond/patnm")) ) {
  441. fReqBfNursPrcpInfo(); //전처방 조회
  442. }
  443. return;
  444. }else {
  445. model.resetInstanceNode("/root/main/cond/pid");
  446. }
  447. }
  448. ipt_pid.refresh();
  449. if (model.getValue("/root/init/patinfo/patlist[pid = '" + pid + "']/elbulbodstat") == '0') { //M0062 전광판상태
  450. messageBox("해당 과에 간호접수되지 않은 환자입니다.", "I");
  451. }
  452. //환자정보조건 셋팅
  453. model.copyNode(sPATINFO_PATH, "/root/init/patinfo/patlist[pid = '" + pid + "']");
  454. // 처방의 셋팅
  455. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", model.getValue(sPATINFO_PATH + "/orddeptcd"), "0330");
  456. model.setValue("/root/main/prcpposinfo/cond/resndeptcd", model.getValue(sPATINFO_PATH + "/orddeptcd"));
  457. if("-" != model.getValue(sPATINFO_PATH + "/atdoctid") && !isNull(model.getValue(sPATINFO_PATH + "/atdoctid"))) {
  458. model.setValue("/root/main/prcpposinfo/cond/resndrid" , model.getValue(sPATINFO_PATH + "/atdoctid"));
  459. } else {
  460. model.setValue("/root/main/prcpposinfo/cond/resndrid" , model.getValue(sPATINFO_PATH + "/orddrid"));
  461. }
  462. //가정간호 환자인 경우 방문일자 조회
  463. if(model.getValue("/root/main/cond/homecareyn") == "Y") {
  464. fSearchHomePatInfo();
  465. }
  466. fChkClincstdy(); //임상연구 체크
  467. if ( !isNull(model.getValue("/root/main/cond/patnm")) && !isNull(model.getValue("/root/main/cond/pid")) ) {
  468. fReqBfNursPrcpInfo(); //전처방 조회
  469. }
  470. // 항암프로토콜명 조회
  471. if(pid != ""){
  472. fprtlnm(pid);
  473. }
  474. }
  475. /**
  476. * @desc : 가정간호 환자의 소속 정보 조회(방문일자 포함)
  477. * @
  478. * @param :
  479. * @return :
  480. * @author : 성미연
  481. * @---------------------------------------------------
  482. */
  483. function fSearchHomePatInfo() {
  484. //해당 환자의 방문일자 조회 : 방문일자에 따라 원무정보가 달라짐
  485. model.removeNodeset("/root/send/reqdata");
  486. model.makeNode("/root/send/reqdata");
  487. model.makeValue("/root/send/reqdata/pid", model.getValue("/root/main/cond/pid"));
  488. submit("TRMNW10909");
  489. }
  490. /**
  491. * @desc : 환자에 따른 임상연구 체크
  492. * @
  493. * @param :
  494. * @return :
  495. * @author : 성미연
  496. * @---------------------------------------------------
  497. */
  498. function fChkClincstdy() {
  499. //clincstdyacptflag : otpt(N:임상시험접수아님, P:사람임상 A:동물임상), inpt(임상연구여부)
  500. if( !isNull(model.getValue(sPATINFO_PATH + "/clincstdyflag"))
  501. && model.getValue(sPATINFO_PATH + "/clincstdyflag") != "N"){
  502. chk_clincstdy.disabled = false;
  503. model.setValue("/root/main/cond/clincstdyflag", "Y");
  504. }else{
  505. chk_clincstdy.disabled = true;
  506. model.setValue("/root/main/cond/clincstdyflag", "N");
  507. }
  508. }
  509. /**
  510. * @desc : 보험정보 조회
  511. * @
  512. * @param : calcscorcd 수가코드
  513. * @return :
  514. * @author : 성미연
  515. : - 오지훈 2007.12.27 수정
  516. * @---------------------------------------------------
  517. */
  518. function fInsuMsgInfoRef(calcscorcd) {
  519. model.removeNodeset("/root/send/reqdata");
  520. model.makeValue("/root/send/reqdata/calcscorcd", calcscorcd);
  521. if(submit("TRMNW10907")){
  522. }
  523. }
  524. /**
  525. * @desc : 약품편람 조회
  526. * @
  527. * @param :
  528. * @return :
  529. * @author : 성미연
  530. * @---------------------------------------------------
  531. */
  532. function fDrugHbook() {
  533. var prcpclscd = model.getValue(sPRCPSRCHLIST_PATH +"[" + grd_prcplist.row + "]/prcpclscd");
  534. if("A2" == prcpclscd || "A4" == prcpclscd || "A6" == prcpclscd) {
  535. model.makeValue("/root/temp/setparma/prcpcd", model.getValue(sPRCPSRCHLIST_PATH +"[" + grd_prcplist.row + "]/prcpcd"));
  536. modal("SMADB01900", "1", "0", "0", "","/root/temp/setparma/prcpcd", "/root/hidden/receivedata/srchdrugcd");
  537. model.removenode("/root/temp/setparma/prcpcd");
  538. } else {
  539. messageBox("약/주사 처방이 아닙니다.", "I");
  540. }
  541. }
  542. /**
  543. * @desc : 수가편람 조회
  544. * @
  545. * @param :
  546. * @return :
  547. * @author : 성미연
  548. * @---------------------------------------------------
  549. */
  550. function fCalcScorHbook(flag) {
  551. var prcpcd;
  552. if(flag == 'prcp'){
  553. prcpcd = model.getValue(sPRCPSRCHLIST_PATH +"[" + grd_prcplist.row + "]/prcpcd")
  554. model.makeValue("/root/temp/setparma/prcpcd", prcpcd);
  555. modal("SMPIC00200", "1", "400", "400", "", "/root/temp/setparma/prcpcd" , "/root/temp");
  556. if(prcpcd == model.getValue("/root/temp/picmmech/picmmech_calcscorcd") ) {
  557. if (grd_prcplist.row > 0 ){
  558. if (model.getValue("/root/main/cond/patnm") == "") {
  559. messageBox("해당 환자를", "C002");
  560. return;
  561. }
  562. //처방 main grid로 약속처방 copy
  563. mnwAddNursPrcp(sPRCPSRCHLIST_PATH, "/root/main/prcp", grd_prcplist.row, "");
  564. var prcplist = model.instances(0).selectNodes("/root/main/prcp/prcplist");
  565. fSetNursPrcpDefault(model.instances(0).selectNodes("/root/main/prcp/prcplist").length);
  566. fSetPrcpInfo();
  567. //신규처방은 반환컬럼 disable
  568. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("tempcol8")) = true;
  569. if ( model.getValue(sPRCPLIST_PATH + "[" + model.instances(0).selectNodes("/root/main/prcp/prcplist").length + "]/estmcls")!= "Y" ){
  570. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("nigtprcpflag") ) = true;
  571. }
  572. //수가 보험정보 조회
  573. var calcscormastspec = model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/calcscormastspec");
  574. var calcscorcd = calcscormastspec.split("|");
  575. fInsuMsgInfoRef(calcscorcd[3]);
  576. }
  577. }
  578. model.removenode("/root/temp/picmmech");
  579. model.removenode("/root/temp/setparma");
  580. }else if(flag == 'prcppos'){
  581. prcpcd = model.getValue(sPRCPLIST_PATH +"[" + grd_prcpposlist.row + "]/prcpcd")
  582. model.makeValue("/root/temp/setparma/prcpcd", prcpcd);
  583. modal("SMPIC00200", "1", "400", "400", "", "/root/temp/setparma/prcpcd" , "/root/temp");
  584. }else if(flag == 'bf'){
  585. prcpcd = model.getValue(sBFPRCPLIST_PATH +"[" + grd_bfprcplist.row + "]/prcpcd")
  586. model.makeValue("/root/temp/setparma/prcpcd", prcpcd);
  587. modal("SMPIC00200", "1", "400", "400", "", "/root/temp/setparma/prcpcd" , "/root/temp");
  588. }
  589. }
  590. /**
  591. * @desc : 물류편람 조회
  592. * @
  593. * @param :
  594. * @return :
  595. * @author : 성미연
  596. * @---------------------------------------------------
  597. */
  598. function fGoodHbook() {
  599. modal("SMRSC00600", "1", "0", "0");
  600. }
  601. /**
  602. * @desc : 간호처방 추가
  603. * @
  604. * @param : srcnode 원본노드
  605. * : trgtnode 목적지노드
  606. * : currow row값
  607. * : pflag 처리구분 popup에서 opener로 처리되는 경우, opener으로 설정
  608. * : status 상태구분(I:신규, U:수정, D:D/C)
  609. *
  610. * @return :
  611. * @author : 오지훈 2007.12.27
  612. * @---------------------------------------------------
  613. */
  614. function mnwAddNursPrcp(srcnode, trgtnode, currow, pflag){
  615. //목적지 노드에 처방instance를 copy한다.
  616. var node = model.instances(0).selectSingleNode(srcnode + "[" + currow + "]");
  617. if(pflag == "popup"){
  618. var desnode = opener.model.instances(0).selectSingleNode(trgtnode);
  619. var desnodelist = opener.model.instances(0).selectNodes(trgtnode);
  620. }else{
  621. var desnode = model.instances(0).selectSingleNode(trgtnode);
  622. var desnodelist = model.instances(0).selectNodes(trgtnode);
  623. }
  624. desnode.appendChild(node.cloneNode(true));
  625. }
  626. /**
  627. * @desc : 한/영 여부 검사
  628. * @
  629. * @param : param 한영구분할 문자열
  630. * @return : "H" 한글
  631. * : "E" 영문
  632. * @author : 오지훈 2007.12.28
  633. * @---------------------------------------------------
  634. */
  635. function fIsHng(param){
  636. //parameter의 첫번째 글자의 문자코드 값이 255보다 크면 한글, 작으면 영문
  637. if(param.charCodeAt(0) > 255){
  638. return "H";
  639. } else{
  640. return "E";
  641. }
  642. }
  643. /**
  644. * @desc : 처방data(명, 코드)검색
  645. * @
  646. * @param :
  647. * @return :
  648. * @author : 성미연
  649. * : - 오지훈 2007.12.27 수정
  650. * @---------------------------------------------------
  651. */
  652. function fReqSrchPrcpData(){
  653. if (model.getValue("/root/main/srchcond/srchdata").length < 2 ){
  654. messageBox("검색어는 2자 이상","C001");
  655. model.setFocus("ipt_listsrchdata");
  656. return;
  657. }
  658. model.removeNodeset("/root/main/prcpsrch"); // 조회결과 node를 삭제
  659. model.removeNodeset("/root/send/reqdata");
  660. model.makeValue("/root/send/reqdata/prcpdd" , model.getValue("/root/main/cond/prcpdd"));
  661. model.makeValue("/root/send/reqdata/srchflag", model.getValue("/root/main/srchcond/srchflag"));
  662. model.makeValue("/root/send/reqdata/srchdata", model.getValue("/root/main/srchcond/srchdata"));
  663. model.makeValue("/root/send/reqdata/langflag", fIsHng(model.getValue("/root/main/srchcond/srchdata")));
  664. model.makeValue("/root/send/reqdata/insukind", model.getValue("/root/main/patinfocond/patinfo/insukind"));
  665. if(submit("TRMNW20101")){
  666. //-------------경북대 (20101213)
  667. var prcplist = model.instances(0).selectNodes("/root/main/prcpsrch/prcplist");
  668. //-------------경북대 (20101213)
  669. if(prcplist.length > 0){
  670. //open("SPMNW10600", 1, "", "", "SPMNW10600", "/root/main/prcpsrch", "/root/main/prcpsrch");
  671. //model.removeNodeset("/root/main/prcpsrch"); //처방검색 결과 후, 조회결과 node를 삭제
  672. }else{
  673. messageBox("검색 결과가", "I004");
  674. model.setFocus("ipt_listsrchdata");
  675. return;
  676. }
  677. }
  678. model.refresh();
  679. }
  680. /**
  681. * @desc : SET처방 리스트 용법 클릭시 팝업
  682. * @
  683. * @param :
  684. * @return :
  685. * @author : 성미연
  686. * @---------------------------------------------------
  687. */
  688. function fClickSavePrcpDrugMthd(){
  689. var currow = grd_prcpposlist.mouseRow;
  690. if(currow < 1){
  691. return;
  692. }
  693. var prcpclscd = model.getValue(sPRCPLIST_PATH + "[" + currow + "]/prcpclscd");
  694. if((prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6") && grd_prcpposlist.col == grd_prcpposlist.colRef("drugmthdspccdnm")){
  695. setParameter("srchRow", grd_prcpposlist.row);
  696. setParameter("GridPath", sPRCPLIST_PATH);
  697. modal("SPMNW11200");
  698. }else if (grd_prcpposlist.col < 4 ) {
  699. //수가 보험정보 조회
  700. var calcscormastspec = model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/calcscormastspec");
  701. var calcscorcd = calcscormastspec.split("|");
  702. fInsuMsgInfoRef(calcscorcd[3]);
  703. }
  704. }
  705. /**
  706. * @desc : 간호처방 SignData 조회
  707. * @
  708. * @param :
  709. * @return :
  710. * @author : 오지훈 2008. 1. 2
  711. * @---------------------------------------------------
  712. */
  713. function fReqNursPrcpSignData(){
  714. if (model.getValue("/root/main/cond/pid") == "" || model.getValue("/root/main/cond/patnm") == "") {
  715. messageBox("환자가 지정되지", "E007");
  716. return;
  717. }
  718. //20110422_KNUH_Start 잠시 주석처리.
  719. //20110420_KNUH_Start
  720. var cnt = 0;
  721. var str = "";
  722. var drprcpetc7;
  723. var drprcpetc8;
  724. var prcpclscd;
  725. var prcpcd;
  726. //20110626_KNUH_Start 보조유형이 미용성형일 경우, 처방을 보조유형으로 발행하도록 하는 로직 추가
  727. var anamneflag; //기왕력 유무(Y/N9
  728. var anamnecnt = 0;
  729. var subcretno = ""; //보조유형생성번호(subcretno)
  730. var flag;
  731. var tempcol8;
  732. var str1 = "";
  733. var str2 = "";
  734. var stoccnt = 0;
  735. var stoccnt2 = 0;
  736. var idxinfo = "";
  737. var idxinfo2= "";
  738. var sResnCd = model.getValue("/root/main/prcpposinfo/cond/resncd");
  739. var sResnCnts = "";
  740. if(sResnCd == "Z") {
  741. sResnCnts = model.getValue("/root/main/prcpposinfo/cond/etcresn");
  742. } else {
  743. sResnCnts = model.getValue("/root/init/comcodelist/resn_cmblist/M0756[cdid = '"+ sResnCd + "']/cdnm");
  744. }
  745. if (isNull(sResnCd)) {
  746. messageBox("처방사유가 지정되지", "E007");
  747. return;
  748. }
  749. var sResnDeptCd = model.getValue("/root/main/prcpposinfo/cond/resndeptcd");
  750. if (isNull(sResnDeptCd) || "-" == sResnDeptCd) {
  751. messageBox("처방의사의 부서가 지정되지", "E007");
  752. return;
  753. }
  754. var sResnDrId = model.getValue("/root/main/prcpposinfo/cond/resndrid");
  755. if (isNull(sResnDrId) || "-" == sResnDrId) {
  756. messageBox("처방의사가 지정되지", "E007");
  757. return;
  758. }
  759. if ("11111" == sResnDrId || "EMR" == sResnDrId) {
  760. messageBox("처방의사로 지정할수 없는 의사입니다.", "E999");
  761. return;
  762. }
  763. for (var i=grd_prcpposlist.fixedRows; i < grd_prcpposlist.rows; i++) {
  764. drprcpetc7 = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("drprcpetc7"));
  765. drprcpetc8 = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("drprcpetc8"));
  766. prcpclscd = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("prcpclscd"));
  767. prcpcd = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("prcpcd"));
  768. prcpnm = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("prcpnm"));
  769. flag = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("flag"));
  770. tempcol8 = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("tempcol8"));
  771. qty = parseInt(grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("drprcpetc8")));
  772. if(flag == "N" && (tempcol8 == "N" || tempcol8 == "" || tempcol8 == null)) {
  773. messageBox("[" + prcpcd + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  774. grd_prcpposlist.row = i;
  775. return;
  776. }
  777. //20110626_KNUH_Start 보조유형이 미용성형일 경우, 처방을 보조유형으로 발행하도록 하는 로직 추가
  778. anamneflag = grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("anamneflag"));
  779. if(anamneflag == "Y") {
  780. if(anamnecnt == 0) {
  781. var flag = fCheckSubKindCd();
  782. if(flag == "false") {
  783. return;
  784. }
  785. subcretno = model.getValue("/root/temp/prcpinfo/subcretno");
  786. if(subcretno == "0" || subcretno == "" || subcretno == null) {
  787. messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.\n\n기왕증 체크를 해제 합니다.", "I999" );
  788. subcretno = "0";
  789. }
  790. }
  791. anamnecnt++;
  792. if(subcretno != "0") {
  793. grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("subcretno")) = subcretno;
  794. } else {
  795. grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("anamneflag")) = "N";
  796. grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("subcretno")) = "0";
  797. }
  798. } else {
  799. grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("anamneflag")) = "N";
  800. grd_prcpposlist.valueMatrix(i,grd_prcpposlist.colRef("subcretno")) = "0";
  801. }
  802. //20110626_KNUH_End
  803. if( drprcpetc7 != drprcpetc8 || drprcpetc7 == "Y" || drprcpetc8 == "Y" || drprcpetc7 == "N" || drprcpetc8 == "N") {
  804. if(prcpclscd == "A6" || prcpclscd == "A4" || prcpclscd == "A2") {
  805. continue;
  806. } else {
  807. grd_prcpposlist.cellstyle("background-color", i, 1, i, grd_prcpposlist.cols-1) = "#FFF000";
  808. if(cnt != 0) {
  809. str += ",";
  810. }
  811. str += i;
  812. cnt++;
  813. }
  814. } else {
  815. grd_prcpposlist.cellstyle("background-color", i, 1, i, grd_prcpposlist.cols-1) = "#FFFFFF";
  816. }
  817. }
  818. if(cnt > 0) {
  819. messageBox(str + "번째 처방이 잘못 발생되었습니다. 우측마우스를 눌러 삭제후 다시 입력하십시오.", "E");
  820. return;
  821. }
  822. //20090908 khj
  823. if (( model.getValue(sPATINFO_PATH + "/ordtype") == "I" || model.getValue(sPATINFO_PATH + "/ordtype") == "D" )) {
  824. model.removeNodeset("/root/send/reqdata");
  825. model.makeNode("/root/send/reqdata");
  826. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  827. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  828. model.makeValue("/root/send/reqdata/roomcd", model.getValue("/root/main/cond/roomcd"));
  829. model.makeValue("/root/send/reqdata/refflag", "room");
  830. model.makeValue("/root/send/reqdata/ordtype", "I");
  831. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  832. if(spcldept == model.getValue("/root/main/cond/wardcd")) {
  833. model.makeValue("/root/send/reqdata/spcldeptyn", "Y");
  834. } else {
  835. model.makeValue("/root/send/reqdata/spcldeptyn", "");
  836. }
  837. submit("TRMNW10903");
  838. var pid = model.getValue("/root/main/cond/pid");
  839. model.copyNode("/root/main/patinfocond/patinfo", "/root/init/patinfo/patlist[pid = '" + pid + "']");
  840. if ( model.getValue(sPATINFO_PATH + "/careinrmyn") != "Y" ){
  841. messageBox("입실체크를 하기 전 또는 퇴원환자는 처방 저장을 하실 수 ", "I004");
  842. return;
  843. }
  844. }
  845. if (model.getValue(sPRCPLIST_PATH + "/prcpcd") == "") {
  846. messageBox("저장할 처방내역이", "I004");
  847. return;
  848. }
  849. var posdept = model.getValue("/root/main/prcpposinfo/cond/deptcd");
  850. if (model.getValue("/root/main/prcpposinfo/cond/poscd") == '2' && model.getValue("/root/init/deptinfo/deptlist[deptcd = '"+ posdept + "']/deptcd") == "") {
  851. messageBox("User위치가 지정되지", "E007");
  852. return;
  853. }
  854. model.removeNodeset("/root/send/reqdata");
  855. model.makeNode("root/err/result");
  856. model.makeNode("/root/endinfo/result");
  857. //상단정보가 아닌, 환자검색정보 설정인 경우
  858. var ioflag = model.getValue("/root/main/patinfocond/patinfo/ordtype");
  859. var orddeptcd = model.getValue("/root/main/patinfocond/patinfo/orddeptcd");
  860. var orddeptnm = model.getValue("/root/main/patinfocond/patinfo/orddeptnm");
  861. var orddrid = model.getValue("/root/main/patinfocond/patinfo/orddrid");
  862. var orddrnm = model.getValue("/root/main/patinfocond/patinfo/orddrnm");
  863. var pid = model.getValue("/root/main/patinfocond/patinfo/pid");
  864. var hngnm = model.getValue("/root/main/patinfocond/patinfo/patnm");
  865. var cretno = model.getValue("/root/main/patinfocond/patinfo/cretno");
  866. var instcd = model.getValue("/root/main/patinfocond/patinfo/instcd");
  867. var sa = model.getValue("/root/main/patinfocond/patinfo/sexage");
  868. var userkindcd = model.getValue("/root/main/patinfocond/patinfo/userkindcd");
  869. var aftcertdrid = "";
  870. var orddd = "";
  871. var pamflag = "";
  872. var chkprcpclscd ="";
  873. var chkaftcertyn ="";
  874. if(ioflag == "O" || ioflag == "S"){
  875. orddd = model.getValue("/root/main/patinfocond/patinfo/orddd");
  876. if ( userkindcd == "97" ){
  877. for (var i=1; i < grd_prcpposlist.rows; i++) {
  878. chkprcpclscd = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpclscd");
  879. if (!isNull( model.getValue("/root/code/codeinfo/codelist[cdgrupid ='207' and cdid = '"+chkprcpclscd+"']/cdid") )) {
  880. chkaftcertyn = "Y";
  881. break;
  882. }
  883. }
  884. if ( chkaftcertyn == "Y" ){
  885. setParameter("SPMMB04100_orddrid", orddrid);
  886. setParameter("SPMMB04100_defdeptcd", orddeptcd);
  887. modal("SPMMB04100");
  888. var useyn = getParameter("SPMMB04100_useyn");
  889. if (useyn != "Y") {
  890. return false;
  891. }else if(useyn == "Y"){ //후인증 선택의사로 설정
  892. aftcertdrid = getParameter("SPMMB04100_orddrid");
  893. }
  894. }
  895. }
  896. }else{
  897. orddd = model.getValue("/root/main/patinfocond/patinfo/indd");
  898. }
  899. var bedcd = model.getValue(cmb_Zone.attribute("ref"));
  900. var er ="";
  901. var grupcd = "";
  902. if(ioflag == "O"){ //외래인 경우, 원무정보 처리
  903. pamflag = "Y";
  904. }
  905. var deptcd="";
  906. var deptnm="";
  907. if (model.getValue("/root/main/prcpposinfo/cond/poscd") == '1') { //환자위치
  908. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+combo1.value+"']/cdid")) ) {
  909. deptcd = model.getValue("/root/init/patinfo/patlist[pid='" + pid + "']/grupcd");
  910. deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/init/patinfo/patlist[pid='" + pid + "']/grupcd") + "']/depthngnm");
  911. } else {
  912. deptcd = model.getValue("/root/main/cond/wardcd");
  913. deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/cond/wardcd") + "']/depthngnm");
  914. }
  915. } else { //User위치
  916. deptcd = model.getValue("/root/main/prcpposinfo/cond/deptcd");
  917. deptnm = model.getValue("/root/init/deptinfo/deptlist[deptcd = '" + model.getValue("/root/main/prcpposinfo/cond/deptcd") + "']/depthngnm");
  918. }
  919. model.makeValue("/root/temp/saveflaginfo/savedataflag", "2"); //저장자료구분(2:처방)
  920. model.makeValue("/root/temp/saveflaginfo/saveflag" , ioflag); //저장구분 O:외래, I:입원, E:응급, S:건진, D:DSC
  921. model.makeValue("/root/temp/saveflaginfo/prcpflag" , "2"); //처방구분 (M0035 처방권한에 대한 구분종류 : 간호 추가처방) 처방구분 0:의사처방, 2:간호, 3:지원부서, 5:Admission, 6:CP, 7:항암프로토콜, 8:임시처방
  922. model.makeValue("/root/temp/saveflaginfo/inptflag" , "38"); //처방입력구분 (M0034 처방입력에 대한 구분종류 38 : 구두처방)
  923. model.makeValue("/root/temp/saveflaginfo/pamflag" , pamflag);//원무정보 처리구분(외래만 Y)
  924. model.makeValue("/root/temp/saveflaginfo/prcperrflag" , "Y"); //처방오류구분
  925. model.makeValue("/root/temp/saveflaginfo/deptcd" , deptcd); //부서코드
  926. model.makeValue("/root/temp/saveflaginfo/deptnm" , deptnm); //부서명
  927. model.makeValue("/root/temp/saveflaginfo/userid" , getUserInfo("userid")); //사용자ID
  928. model.makeValue("/root/temp/saveflaginfo/usernm" , getUserInfo("usernm")); //사용자명
  929. model.makeValue("/root/temp/saveflaginfo/signyn" , "Y"); //전자서명여부
  930. model.makeValue("/root/temp/saveflaginfo/prcpdd" , model.getValue("/root/main/cond/prcpdd")); //처방일
  931. model.makeValue("/root/temp/saveflaginfo/resndeptcd" , sResnDeptCd); //구두처방 발행의 부서
  932. model.makeValue("/root/temp/saveflaginfo/resndrid" , sResnDrId); //구두처방 발행의
  933. model.makeValue("/root/temp/saveflaginfo/resncd" , sResnCd); //구두처방 사유
  934. model.makeValue("/root/temp/saveflaginfo/resncnts" , sResnCnts); //구두처방 사유 내용
  935. var saveflaginfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/saveflaginfo"));
  936. model.makeValue("/root/send/reqdata/saveflaginfo", saveflaginfolist);
  937. model.makeValue("/root/temp/savergstinfo/pid" , pid); //등록번호
  938. model.makeValue("/root/temp/savergstinfo/indd" , orddd); //진료일자
  939. model.makeValue("/root/temp/savergstinfo/orddd" , orddd); //진료일자
  940. model.makeValue("/root/temp/savergstinfo/cretno" , cretno); //생성번호
  941. model.makeValue("/root/temp/savergstinfo/instcd" , instcd); //기관코드
  942. model.makeValue("/root/temp/savergstinfo/orddeptcd" , orddeptcd); //진료과
  943. model.makeValue("/root/temp/savergstinfo/orddeptnm" , orddeptnm); //진료과명
  944. model.makeValue("/root/temp/savergstinfo/orddrid" , orddrid); //진료의
  945. model.makeValue("/root/temp/savergstinfo/orddrnm" , orddrnm); //진료의명
  946. model.makeValue("/root/temp/savergstinfo/hngnm" , hngnm); //환자명
  947. model.makeValue("/root/temp/savergstinfo/sa" , sa); //성별나이
  948. model.makeValue("/root/temp/savergstinfo/ordtype" , ioflag); //외래입원구분
  949. model.makeValue("/root/temp/savergstinfo/aftcertdrid" , aftcertdrid); //외래 일반의사의 경우 후인증 대상의사는 지정한다.
  950. var savergstinfolist = getNodeListCSV(model.instances(0).selectNodes("/root/temp/savergstinfo"));
  951. model.makeValue("/root/send/reqdata/savergstinfo", savergstinfolist);
  952. for(var i = 1; i < grd_prcpposlist.rows; i++){
  953. var prcpclscd = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpclscd");
  954. var drugmthdspccd = model.getValue(sPRCPLIST_PATH + "[" + i + "]/drugmthdspccd");
  955. var drugmthdspccdnm = model.getValue(sPRCPLIST_PATH + "[" + i + "]/drugmthdspccdnm");
  956. var prcpno = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcprefseq");
  957. var prcpcd = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpcd");
  958. var prcpnm = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpnm");
  959. var rtnflag = model.getValue(sPRCPLIST_PATH + "[" + i + "]/tempcol8"); //반환체크
  960. var enddd = model.getValue(sPRCPLIST_PATH + "[" + i + "]/tempcol10");
  961. var prcppkspec = (model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcppkspec")).split("|");
  962. //약,주사 처방 중에 용법이 없을 경우 에러리스트
  963. if("A2" == prcpclscd || "A4" == prcpclscd || "A6" == prcpclscd){
  964. if(drugmthdspccd == "-" || drugmthdspccdnm == "-" || drugmthdspccdnm == " " || drugmthdspccdnm == "") {
  965. model.makeValue("/root/err/errresult/prcperrlist/prcpno", prcpno);
  966. model.makeValue("/root/err/errresult/prcperrlist/prcpcd", prcpcd);
  967. model.makeValue("/root/err/errresult/prcperrlist/prcpnm", prcpnm);
  968. model.makeValue("/root/err/errresult/prcperrlist/prcperr", "용법이 존재하지 않습니다.");
  969. model.makeValue("/root/err/errresult/prcperrlist/prcplineno", i);
  970. model.duplicate("/root/err/result","/root/err/errresult/prcperrlist");
  971. }
  972. }
  973. var prcpvol = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpvol");
  974. var prcpqty = model.getValue(sPRCPLIST_PATH + "[" + i + "]/prcpqty");
  975. //수량이 0보다 적을 경우 에러리스트
  976. if(prcpvol <= 0 || prcpqty <= 0 ) {
  977. model.makeValue("/root/err/errresult/prcperrlist/prcpno", prcpno);
  978. model.makeValue("/root/err/errresult/prcperrlist/prcpcd", prcpcd);
  979. model.makeValue("/root/err/errresult/prcperrlist/prcpnm", prcpnm);
  980. model.makeValue("/root/err/errresult/prcperrlist/prcperr", "처방 수량을 확인하세요");
  981. model.makeValue("/root/err/errresult/prcperrlist/prcplineno", i);
  982. model.duplicate("/root/err/result","/root/err/errresult/prcperrlist");
  983. }
  984. //********************************************
  985. //임상연구 환자체크
  986. if(model.getValue("root/main/cond/clincstdyflag") == "Y"){
  987. model.setValue(sPRCPLIST_PATH + "[" + i + "]/clincstdyflag", "Y");
  988. model.setValue(sPRCPLIST_PATH + "[" + i + "]/clincstdycd", model.getValue(sPATINFO_PATH + "/clincstdycd"));
  989. }
  990. //*********************************************/
  991. //마감 이후에 반환일 경우 반환사유 입력 팝업
  992. //enddd default값 변경으로 수정_20080715
  993. if(rtnflag == "Y" && enddd.substr(0,8) != '99991231' && enddd != ''){
  994. model.makeValue("/root/endinfo/endinforesult/list/prcpdd", prcppkspec[0]);
  995. model.makeValue("/root/endinfo/endinforesult/list/prcpno", prcppkspec[1]);
  996. model.makeValue("/root/endinfo/endinforesult/list/prcphistno", prcppkspec[2]);
  997. model.makeValue("/root/endinfo/endinforesult/list/execprcpno", "");
  998. model.makeValue("/root/endinfo/endinforesult/list/instcd", prcppkspec[3]);
  999. model.makeValue("/root/endinfo/endinforesult/list/ioflag", ioflag);
  1000. model.duplicate("/root/endinfo/result","/root/endinfo/endinforesult/list");
  1001. }
  1002. }
  1003. var saveprcplist = getNodeListCSV(model.instances(0).selectNodes("/root/main/prcp/prcplist"));
  1004. model.makeValue("/root/send/reqdata/saveprcpinfo", saveprcplist);
  1005. if (getNodesetCount ("/root/err/result/prcperrlist") > 0 ) {
  1006. var xpt = window.screenleft + 100;
  1007. var ypt = window.screenTop + 50;
  1008. var coord = getRelativeCoordinate ( xpt, ypt );
  1009. var mon = coord[0];
  1010. xpt = coord[1];
  1011. ypt = coord[2];
  1012. open( "SPMNW11000", mon, xpt, ypt, "prcpdetl", "/root/err/result", "/root/result", "", false );
  1013. //오류목록 생성후 오류난 처방을 붉은 색으로 표시
  1014. fDestDisplayErrlist("/root/err/result/prcperrlist", "grd_prcpposlist");
  1015. model.removeNodeset("/root/err");
  1016. } else {
  1017. //인증데이터 처리
  1018. if(submit("TRMNW10906")){
  1019. //** 간호사퇴원통보가 되어있는 경우 **//
  1020. var dschnotiyn = model.getValue(sSIGNDATA_PATH + "/dschnotiyn"); // 간호사퇴원확정여부_20080923(ByJA)
  1021. if(dschnotiyn == "Y"){
  1022. messageBox( "[" + model.getValue("/root/main/patinfocond/patinfo/pid")
  1023. +" " + model.getValue("/root/main/patinfocond/patinfo/patnm")
  1024. +"]\n 이미 퇴원통보가 되어 처방을 저장", "E001");
  1025. return;
  1026. }
  1027. //** 간호사퇴원통보가 되어있는 경우 **//
  1028. var signbfcnts = model.getValue(sSIGNDATA_PATH + "/signbfcnts");
  1029. var userid = getUserInfo("userid");
  1030. // -----------------------(2010.08.18 센터)start--------------------
  1031. //운영서버는 인증모듈 타고 그외서버는 인증모듈제외
  1032. var signinfo = "";
  1033. if(vsettime == "") { //인증저장한시간.
  1034. signinfo = fMakeSignData(signbfcnts, userid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
  1035. } else {
  1036. var res2 = getTimeInterval(vsettime, getCurrentTime(), 'hhmmss');
  1037. if(res2 > signtime* 60 || res2 < 0) {
  1038. signinfo = fMakeSignData(signbfcnts, userid, true); // 항상 인증서 비밀번호 확인 설정(true)_20080909(ByJA)
  1039. } else {
  1040. signinfo = fMakeSignData(signbfcnts, userid, false); // 항상 인증서 비밀번호 확인 설정안함(false)_20080909(ByJA)
  1041. }
  1042. }
  1043. // -----------------------(2010.08.18 센터)start--------------------
  1044. if(signinfo == "" || signinfo == "-"){ //인증저장 취소
  1045. return;
  1046. }else{
  1047. //처방반환사유 팝업
  1048. vsetdate = getCurrentDate();
  1049. vsettime = getCurrentTime();
  1050. if (getNodesetCount ("/root/endinfo/result/list") > 0 ) {
  1051. modal("SPPAS03000", "2", "100", "100", "SPPAS03000", "/root/endinfo/result", "root/target", "left:100; top:100; width:400; height:400; sysmenu:hidden; min:visible; max:hidden; :hidden; resize:true; caption:visible;", false);
  1052. model.removeNodeset("/root/endinfo");
  1053. }
  1054. model.setValue(sSIGNDATA_PATH + "/signaftcnts", signinfo); //true : 처방저장할 때마다 인증저장 태움
  1055. var savesignlist = getNodeListCSV(model.instances(0).selectNodes(sSIGNDATA_PATH));
  1056. model.makeValue("/root/send/savedata/saveflaginfo", saveflaginfolist);
  1057. model.makeValue("/root/send/savedata/savergstinfo", savergstinfolist);
  1058. model.makeValue("/root/send/savedata/saveprcpinfo", saveprcplist);
  1059. model.makeValue("/root/send/savedata/savesigninfo", savesignlist);
  1060. fSavePrcp(); //처방저장
  1061. }
  1062. }
  1063. }
  1064. }
  1065. /**
  1066. * @desc : 간호처방 SignData 생성
  1067. * @
  1068. * @param : signbfcnts - 인증 전 데이터
  1069. * : signuserid - 인증자ID
  1070. * : signcnfmflag - 인증확인여부
  1071. * @return :
  1072. * @author : 오지훈 2008. 1. 3
  1073. * @---------------------------------------------------
  1074. */
  1075. function fMakeSignData(signbfcnts, userid, signcnfmflag){
  1076. return zesfSignData(signbfcnts, userid, signcnfmflag);
  1077. }
  1078. /**
  1079. * @desc : 간호 전처방 조회
  1080. * @
  1081. * @param :
  1082. * @return :
  1083. * @author : 오지훈 2008. 1. 3
  1084. * @---------------------------------------------------
  1085. */
  1086. function fReqBfNursPrcpInfo(){
  1087. if (model.getValue("/root/main/cond/patnm") == "" && model.getValue("/root/main/paminfo/list/pid") != "") {
  1088. model.resetInstanceNode("/root/main/cond/pid");
  1089. ipt_pid.refresh();
  1090. messageBox("환자를 먼저 지정하십시오!", "C");
  1091. return;
  1092. }
  1093. var ordtype = model.getValue("/root/main/patinfocond/patinfo/ordtype");
  1094. var pid = model.getValue("/root/main/patinfocond/patinfo/pid");
  1095. var cretno = model.getValue("/root/main/patinfocond/patinfo/cretno");
  1096. var insukind = model.getValue("/root/main/patinfocond/patinfo/insukind");
  1097. var prcpfromdd = model.getValue("/root/main/bfprcpinfo/bfcond/prcpfromdd");
  1098. var prcptodd = model.getValue("/root/main/bfprcpinfo/bfcond/prcptodd");
  1099. var srchflag = model.getValue("/root/main/bfprcpinfo/bfcond/srchflag");
  1100. var srchclscd = model.getValue("/root/main/bfprcpinfo/bfcond/srchclscd");
  1101. var srchdata = model.getValue("/root/main/bfprcpinfo/bfcond/srchdata");
  1102. var srchdayflag = model.getValue("/root/main/bfprcpinfo/bfcond/srchdayflag");
  1103. var ordercond = model.getValue("/root/main/bfprcpinfo/bfcond/ordercond");
  1104. var ordercond2 = model.getValue("/root/main/bfprcpinfo/bfcond/ordercond2");
  1105. //가정간호 여부(가정간호 환자인 경우는 전처방 조회시 원무정보 조건을 걸지 않음)
  1106. var homecareyn = model.getValue("/root/main/cond/homecareyn");
  1107. var deptcd = model.getValue("/root/main/cond/wardcd");
  1108. if(ordtype == "O" || ordtype == "S"){
  1109. var orddd = model.getValue("/root/main/patinfocond/patinfo/orddd");
  1110. }else{
  1111. var orddd = model.getValue("/root/main/patinfocond/patinfo/indd");
  1112. }
  1113. model.removeNodeset("/root/send/reqdata");
  1114. model.makeValue("/root/send/reqdata/pid" , pid);
  1115. model.makeValue("/root/send/reqdata/orddd" , orddd);
  1116. model.makeValue("/root/send/reqdata/cretno" , cretno);
  1117. model.makeValue("/root/send/reqdata/insukind" , insukind);
  1118. model.makeValue("/root/send/reqdata/prcpfromdd" , prcpfromdd);
  1119. model.makeValue("/root/send/reqdata/prcptodd" , prcptodd);
  1120. model.makeValue("/root/send/reqdata/ordtype" , ordtype);
  1121. model.makeValue("/root/send/reqdata/srchflag" , srchflag);
  1122. model.makeValue("/root/send/reqdata/srchclscd" , srchclscd);
  1123. model.makeValue("/root/send/reqdata/srchdata" , srchdata);
  1124. model.makeValue("/root/send/reqdata/srchdayflag" , srchdayflag);
  1125. model.makeValue("/root/send/reqdata/homecareyn" , homecareyn);
  1126. model.makeValue("/root/send/reqdata/ordercond" , ordercond);
  1127. model.makeValue("/root/send/reqdata/ordercond2" , ordercond2);
  1128. model.makeValue("/root/send/reqdata/deptcd" , model.getValue("/root/main/cond/wardcd"));
  1129. model.makeValue("/root/send/reqdata/prcpinptflag" , "38"); // 처방입력에 대한 구분종류 ('09':간호처방, '38':간호구두처방)
  1130. grd_bfprcplist.rebuildStyle();
  1131. if(submit("TRMNW10905")){
  1132. // 처방일자로 구분선 표시(기준자료에 등록된 부서만)
  1133. if( deptcd == model.getValue("/root/code/codeinfo/codelist[cdgrupid='I09' and cdid ='"+deptcd+"']/cdid")){
  1134. var pGrdCnt = getNodesetCount(sBFPRCPLIST_PATH);
  1135. if (pGrdCnt != 0 ) {
  1136. var rgstdt1 = "";
  1137. var rgstdt2 = "";
  1138. for (var i = grd_bfprcplist.fixedRows; i <= grd_bfprcplist.rows; i++) {
  1139. rgstdt1 = model.getValue(sBFPRCPLIST_PATH + "[" + i + "]/rgstdt");
  1140. rgstdt2 = model.getValue(sBFPRCPLIST_PATH + "[" + (i+1) + "]/rgstdt");
  1141. if (rgstdt1.substring(0,8) == rgstdt2.substring(0,8)){
  1142. }else{
  1143. if(i != 0){
  1144. grd_bfprcplist.rowStyle(i, "all", "border-bottom-color") = "#ff0000";
  1145. grd_bfprcplist.rowStyle(i, "all", "border-top-width") = "1";
  1146. }
  1147. }
  1148. }
  1149. grd_bfprcplist.refresh();
  1150. }
  1151. }
  1152. }
  1153. //전처방 검색 후 검색창 초기화
  1154. model.resetInstanceNode("/root/main/bfprcpinfo/bfcond/srchdata");
  1155. model.setFocus("ipt_bfsrchdata");
  1156. ipt_bfsrchdata.refresh();
  1157. //전처방 리스트에서 반납일 경우 텍스트 빨간색
  1158. for ( i = 1; i<= getNodesetCount(sBFPRCPLIST_PATH); i++) {
  1159. var prcphistcd = model.getValue(sBFPRCPLIST_PATH + "[" + i + "]/prcphistcd");
  1160. if (prcphistcd == "L" || prcphistcd == "D" ) {
  1161. grd_bfprcplist.rowStyle(i, "data", "color") = "#FF0000";
  1162. }
  1163. }
  1164. model.refresh();
  1165. }
  1166. /**
  1167. * @desc : 간호처방 기본값 설정
  1168. * @
  1169. * @param : desrow 목적지 노드의 row위치
  1170. * @return :
  1171. * @author : 오지훈 2008. 1. 4
  1172. * @---------------------------------------------------
  1173. */
  1174. function fSetNursPrcpDefault(desrow){
  1175. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/status" , "I"); //처방상태(신규)
  1176. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpkindcd" , "20"); //처방분류코드(구두처방은 모두 추가)
  1177. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpstatcd" , "000"); //처방상태코드
  1178. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpauthflag" , "8"); //처방권한구분, 0:의사처방화면에서 발생, 1:간호사가 발생한 처방으로 의사도 공유, 2:간호 추가처방, 3:지원부서의사처방, 4:지원부서 추가처방 , 5:원무계산 추가처방, 6:건진처방, 7:보험팀추가처방, 8:간호구두처방
  1179. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpinptflag" , "38"); //처방입력구분, 간호구두처방:38
  1180. model.setvalue(sPRCPLIST_PATH + "[" + desrow + "]/prcpnm" , "[구두]" + model.getvalue(sPRCPLIST_PATH + "[" + desrow + "]/orgprcpnm")); //처방명에 [구두] 추가
  1181. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcphopedd" , model.getValue("/root/main/cond/prcpdd")); //처방희망일
  1182. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpmixno" , 0); //Mix번호
  1183. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prnprcpflag" , "N"); //PRN처방구분
  1184. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/precureprcpflag" , "N"); //선처치처방구분
  1185. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/drprcpetc10" , "N"); //대차구분
  1186. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/drgacptflag" , "-"); //DRG인정
  1187. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/nigtprcpflag" , "N"); //야간처방구분
  1188. if ( model.getValue(sPRCPLIST_PATH + "[" + desrow + "]/estmcls")!= "Y" ){
  1189. grd_prcpposlist.isReadOnly(desrow, grd_prcpposlist.colRef("nigtprcpflag") ) = true;
  1190. }
  1191. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/portprcpflag" , "N"); //포터블처방구분
  1192. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/fixprcpflag" , "N"); //정액처방구분
  1193. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/choiordflag" , "-"); //원무기준으로 처리하기 위해, '-' 설정
  1194. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/anamneflag" , "N"); //기왕증구분
  1195. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/angioflagcd" , "-"); //Angio구분
  1196. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpdelivefact" , "-"); //전달사항
  1197. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/homematrflag" , "N"); //귀가유치를 위한 물품여부
  1198. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/homematrqty" , "0"); //귀가유치를 위한 물품수량
  1199. if( model.getValue(sPRCPLIST_PATH + "[" + desrow + "]/opansflagcd") == "") {
  1200. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/opansflagcd" , "-"); //수술마취구분
  1201. }
  1202. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/offictourhealexamflag", "N"); //출장검진구분
  1203. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpdayno" , 1); //처방일수(일자)
  1204. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpgenrflag" , model.getValue("/root/main/patinfocond/patinfo/ordtype"));
  1205. model.setvalue(sPRCPLIST_PATH + "[" + desrow + "]/prcpsignflag" , ""); //전처방에서 2로 copy되어 ""로 초기화
  1206. //처방수량단위 설정, 약품일 경우 '3', 그 이외는 '-'로 설정
  1207. //약품 처방 응급처방구분 디폴트 응급으로 요청서 20170801042
  1208. var prcpclscd = model.getValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpclscd");
  1209. if(prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6"){
  1210. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/erprcpflag", "Y");
  1211. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpqtyunitflag", "3");
  1212. }else{
  1213. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/erprcpflag", "N");
  1214. model.setValue(sPRCPLIST_PATH + "[" + desrow + "]/prcpqtyunitflag", "-");
  1215. }
  1216. // 전처방 조회와 인스턴스를 맞추기위해
  1217. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/fstrgstrnm", "-");
  1218. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/resncnts", "-");
  1219. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/confirmdrnm", "-");
  1220. model.makeValue(sPRCPLIST_PATH + "[" + desrow + "]/confirmdt", "-");
  1221. }
  1222. /**
  1223. * @desc : 간호처방 저장
  1224. * @
  1225. * @param :
  1226. * @return :
  1227. * @author : 오지훈 2008. 1. 4
  1228. * @---------------------------------------------------
  1229. */
  1230. function fSavePrcp(){
  1231. if(submit("TXMNW10901")){
  1232. //오류팝업
  1233. var prcpErrList = model.instances(0).selectNodes( "/root/temp/result/prcperrlist" );
  1234. if ( prcpErrList.length > 0 ) {
  1235. if ( !isNull(model.getValue ("/root/temp/result/prcperrlist/prcpcd"))){
  1236. var xpt = window.screenleft + 100;
  1237. var ypt = window.screenTop + 50;
  1238. var coord = getRelativeCoordinate ( xpt, ypt );
  1239. var mon = coord[0];
  1240. xpt = coord[1];
  1241. ypt = coord[2];
  1242. open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/temp/result", "/root/result", "", false );
  1243. model.removeNodeset("/root/temp/result/prcperrlist");
  1244. model.refresh();
  1245. }
  1246. } else {
  1247. model.toggle("case_bf"); //전처방 화면으로 변경
  1248. btn_bf.dispatch("onclick");
  1249. //처방 저장 후 전처방 조회시 저장된 처방이 보이도록 스크롤을 가장 위로 함
  1250. grd_bfprcplist.topRow = 1;
  1251. model.removeNodeset(sPRCPLIST_PATH);
  1252. model.resetInstanceNode("/root/main/insumsginfo/insuinfo/limmsg");
  1253. fReqBfNursPrcpInfo(); // 전처방 조회
  1254. if(getScreenMenuParameter() == "SMMNH" || opener.javascript.getParameter("screenParam") == "SMMNH"){
  1255. fSearchHomePatInfo(); // 방문일자 조회_20090330(ByJA)
  1256. }
  1257. }
  1258. }
  1259. }
  1260. /**
  1261. * @desc : 처방저장 오류내역표시
  1262. * @
  1263. * @param :
  1264. * @return :
  1265. * @author : 성미연 2008. 2. 23
  1266. * @---------------------------------------------------
  1267. */
  1268. function fDestDisplayErrlist(errListPath, gridID ){
  1269. var gridObj = document.controls.item(gridID);
  1270. gridObj.rebuildStyle();
  1271. //전처방 리스트에서 반납일 경우 텍스트 빨간색
  1272. for (var i = 1; i<= getNodesetCount(errListPath); i++) {
  1273. var prcplineno = model.getValue(errListPath + "[" + i + "]/prcplineno");
  1274. for (var j = 1; j< gridObj.rows; j++) {
  1275. if (prcplineno == j ) {
  1276. gridObj.rowStyle(j, "data", "color") = "#FF0000";
  1277. }
  1278. }
  1279. }
  1280. }
  1281. /**
  1282. * @desc : 처방 SET 그리드 클릭시
  1283. * @
  1284. * @param :
  1285. * @return :
  1286. * @author : 성미연 2008. 1. 9
  1287. * @---------------------------------------------------
  1288. */
  1289. function fClickSetPrcp(mthdflag){
  1290. if(isNull(mthdflag)) mthdflag = "dblclick"; //복사 버튼은 btnclick
  1291. if ( !isDataCell() && mthdflag != "btnclick" ) {
  1292. return;
  1293. }
  1294. if (grd_prcplist.row > 0 ){
  1295. if (model.getValue("/root/main/cond/patnm") == "") {
  1296. messageBox("해당 환자를", "C002");
  1297. return;
  1298. }
  1299. //ALL SIZE 처방 처리
  1300. if(model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/prcpclscd") == "M2"
  1301. && model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/matrallsizespecid") == "ALL")
  1302. {
  1303. var grupsnglflag = model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/grupsnglflag");
  1304. //** prcpinptflag || '|' ||matrsetflag || '|' ||matrsizeflag || '|' ||calcscorcd AS calcscormastspec
  1305. var calcscormastspec = (model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/calcscormastspec")).split("|");
  1306. var matrsizeflag = calcscormastspec[2];
  1307. var matrallsizespecid = model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/matrallsizespecid");
  1308. var xpt = window.screenleft + 100;
  1309. var ypt = window.screenTop + 50;
  1310. var coord = getRelativeCoordinate ( xpt, ypt );
  1311. var mon = coord[0];
  1312. xpt = coord[1];
  1313. ypt = coord[2];
  1314. setParameter("scrnflag", "nursprcp");
  1315. setParameter("grupsnglflag", 'S');
  1316. setParameter("calcscorcd", calcscormastspec[3]);
  1317. setParameter("matrallsizespecid", matrallsizespecid);
  1318. setParameter("currow", grd_prcplist.row);
  1319. setParameter("targetpath", "/root/main/prcp/prcplist");
  1320. //setParameter("targetgridid", "grd_prcpposlist");
  1321. modal("SPMNW11500", mon, xpt, ypt);
  1322. }else{
  1323. //처방 main grid로 약속처방 copy
  1324. mnwAddNursPrcp(sPRCPSRCHLIST_PATH, "/root/main/prcp", grd_prcplist.row, "");
  1325. fSetNursPrcpDefault(model.instances(0).selectNodes("/root/main/prcp/prcplist").length);
  1326. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.rows + "]/status", "I"); //처방상태 : 신규
  1327. }
  1328. fSetPrcpInfo();
  1329. //신규처방은 반환컬럼 disable
  1330. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("tempcol8")) = true;
  1331. if ( model.getValue(sPRCPLIST_PATH + "[" + model.instances(0).selectNodes("/root/main/prcp/prcplist").length + "]/estmcls")!= "Y" ){
  1332. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("nigtprcpflag") ) = true;
  1333. }
  1334. //수가 보험정보 조회
  1335. var calcscormastspec = model.getValue(sPRCPSRCHLIST_PATH + "[" + grd_prcplist.row + "]/calcscormastspec");
  1336. var calcscorcd = calcscormastspec.split("|");
  1337. fInsuMsgInfoRef(calcscorcd[3]);
  1338. }
  1339. }
  1340. /**
  1341. * @desc : 전처방 그리드 클릭시
  1342. * @
  1343. * @param :
  1344. * @return :
  1345. * @author : 성미연 2008. 1. 9
  1346. * @---------------------------------------------------
  1347. */
  1348. function fClickBfPrcp(mthdflag){
  1349. if(isNull(mthdflag)) mthdflag = "dblclick"; //복사 버튼은 btnclick
  1350. if ( !isDataCell() && mthdflag != "btnclick" ) {
  1351. return;
  1352. }
  1353. if (grd_bfprcplist.row > 0 ){
  1354. if (model.getValue("/root/main/cond/patnm") == "") {
  1355. messageBox("해당 환자를", "C002");
  1356. return;
  1357. }
  1358. var prcphistcd = model.getValue(sBFPRCPLIST_PATH + "[" + grd_bfprcplist.row + "]/prcphistcd");
  1359. var flag = model.getValue(sBFPRCPLIST_PATH + "[" + grd_bfprcplist.row + "]/flag");
  1360. var prcpcd = model.getValue(sBFPRCPLIST_PATH + "[" + grd_bfprcplist.row + "]/prcpcd");
  1361. if(flag == "N") {
  1362. messageBox("[" + prcpcd + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  1363. }
  1364. if (prcphistcd == "L" || prcphistcd == "D" ) {
  1365. return;
  1366. }else{
  1367. mnwAddNursPrcp(sBFPRCPLIST_PATH, "/root/main/prcp", grd_bfprcplist.row, "");
  1368. fSetNursPrcpDefault(model.instances(0).selectNodes("/root/main/prcp/prcplist").length);
  1369. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.rows + "]/status", "B"); //처방상태[전]
  1370. }
  1371. fSetPrcpInfo();
  1372. if ( model.getValue(sPRCPLIST_PATH + "[" + model.instances(0).selectNodes("/root/main/prcp/prcplist").length + "]/estmcls")!= "Y" ){
  1373. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("nigtprcpflag") ) = true;
  1374. }
  1375. //수가 보험정보 조회
  1376. var calcscormastspec = model.getValue(sBFPRCPLIST_PATH + "[" + grd_bfprcplist.row + "]/calcscormastspec");
  1377. var calcscorcd = calcscormastspec.split("|");
  1378. fInsuMsgInfoRef(calcscorcd[3]);
  1379. }
  1380. }
  1381. /**
  1382. * @desc : 처방저장 그리드 저장 이전 셋팅
  1383. * @
  1384. * @param :
  1385. * @return :
  1386. * @author : 성미연 2008. 1. 9
  1387. * @---------------------------------------------------
  1388. */
  1389. function fSetPrcpInfo(refYN){
  1390. //KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능을 위해 refYN 인자 추가 (2011.02.16 JJE)
  1391. if( isNull(refYN) ) refYN = "Y";
  1392. //KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능을 위해 refYN 값에 따라 refresh 처리 분기 (2011.02.16 JJE)
  1393. if(refYN == "Y") grd_prcpposlist.refresh();
  1394. }
  1395. /**
  1396. * @desc : 처방저장 그리드에서 처방 삭제(드래그하여 delete key이용)
  1397. * @
  1398. * @param :
  1399. * @return :
  1400. * @author : 성미연 2008. 1. 9
  1401. * @---------------------------------------------------
  1402. */
  1403. function fDragDelPrcp() {
  1404. if (event.keyCode == "46") {
  1405. for (i = 0; i < grd_prcpposlist.selectedRows; i++) {
  1406. model.setValue("/root/main/prcp/prcplist[" + grd_prcpposlist.selectedRow(i) + "]/status", 'D');
  1407. }
  1408. for (i = 1; i <= getNodesetCount("/root/main/prcp/prcplist"); i++) {
  1409. if (model.getValue("/root/main/prcp/prcplist[" + i + "]/status") == 'D') {
  1410. grd_prcpposlist.deleteRow(i, false);
  1411. i--;
  1412. }
  1413. }
  1414. model.refresh();
  1415. }
  1416. }
  1417. /**
  1418. * @desc : 처방저장 그리드에서 반환컬럼 클릭시(물품 팝업, 수량, 총용량 변경)
  1419. * @
  1420. * @param :
  1421. * @return :
  1422. * @author : 성미연 2008. 1. 9
  1423. * @---------------------------------------------------
  1424. */
  1425. function fClickRtn() {
  1426. var iRow = grd_prcpposlist.row;
  1427. var prcppkspec = model.getValue("/root/main/prcp/prcplist[" + iRow + "]/prcppkspec");
  1428. var deptcd = "";
  1429. var pid = model.getValue("/root/main/cond/pid");
  1430. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+combo1.value+"']/cdid")) ) {
  1431. deptcd = model.getValue("/root/init/patinfo/patlist[pid='" + pid + "']/grupcd");
  1432. } else {
  1433. deptcd = model.getValue("/root/main/cond/wardcd");
  1434. }
  1435. if(grd_prcpposlist.col == grd_prcpposlist.colRef("tempcol8")){
  1436. //전처방에서 복사된 처방일 경우([전])
  1437. if(model.getValue("/root/main/prcp/prcplist[" + iRow + "]/status") == "B") {
  1438. //전처방을 여러개 이동하고 반환시 두개이상 체크할 경우 alert(한개만 삭제 요청하도록)
  1439. if (getNodesetCount(sPRCPLIST_PATH + "[prcppkspec = '"+ prcppkspec + "' and tempcol8 = 'Y']/tempcol8") > 1) {
  1440. messageBox("반환요청이", "E006");
  1441. model.setValue("/root/main/prcp/prcplist[" + iRow + "]/tempcol8", "N");
  1442. grd_prcpposlist.refresh();
  1443. return;
  1444. }
  1445. //물품반납부서 선택 팝업(재료인 경우)
  1446. if (model.getValue("/root/main/prcp/prcplist[" + iRow + "]/tempcol8") == "Y"
  1447. && model.getValue("/root/main/prcp/prcplist[" + iRow + "]/prcpclscd") == "M2"
  1448. && model.getValue("/root/main/prcp/prcplist[" + iRow + "]/issdeptcd") != deptcd ) {
  1449. fPopGoodRtn("/root/main/prcp/prcplist[" + iRow + "]", iRow);
  1450. }
  1451. //set처방, 검색 처방일 경우(신규 - row 삭제), 임시처방도 삭제
  1452. }else{
  1453. model.removeNode(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]");
  1454. }
  1455. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("prcpvol")){ //수량, 총용량 변경시
  1456. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpvol"))) {
  1457. DrugCalc ("prcpvol" , grd_prcpposlist.row);
  1458. } else {
  1459. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpvol",model.getValue("/root/drugcalc/prcpvol"));
  1460. }
  1461. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("prcpqty")) {
  1462. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpqty"))) {
  1463. DrugCalc ("prcpqty" , grd_prcpposlist.row);
  1464. } else {
  1465. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpqty",model.getValue("/root/drugcalc/prcpqty"));
  1466. }
  1467. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("drprcpetc7")) {
  1468. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc7"))) {
  1469. DrugCalc ("drprcpetc7" , grd_prcpposlist.row);
  1470. } else {
  1471. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc7",model.getValue("/root/drugcalc/drprcpetc7"));
  1472. }
  1473. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("drprcpetc8")) {
  1474. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc8"))) {
  1475. DrugCalc ("drprcpetc8" , grd_prcpposlist.row);
  1476. } else {
  1477. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc8",model.getValue("/root/drugcalc/drprcpetc8"));
  1478. }
  1479. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("prcptims")) {
  1480. if(!isNaN(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcptims"))) {
  1481. DrugCalc ("prcptims" , grd_prcpposlist.row);
  1482. } else {
  1483. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcptims",model.getValue("/root/drugcalc/prcptims"));
  1484. }
  1485. } else if(grd_prcpposlist.col == grd_prcpposlist.colRef("drgacptflag")) {
  1486. if(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drgacptflag") == "A") { // PCA용 약제
  1487. messageBox ( "급여구분이 '본인부담'으로 변경 됩니다.", "I" );
  1488. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/payflagcd", "1");
  1489. } else if(model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drgacptflag") == "B") { // 미용성형
  1490. messageBox ( "급여구분이 '비급여'으로 변경 됩니다.", "I" );
  1491. model.setValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/payflagcd", "2");
  1492. }
  1493. }
  1494. model.refresh();
  1495. }
  1496. /**
  1497. * @desc : 총용량, 수량의 수정전 값을 instance에 넣어둔다.
  1498. * @
  1499. * @param :
  1500. * @return :
  1501. * @author : 성미연 2008. 3. 17
  1502. * @---------------------------------------------------
  1503. */
  1504. function fSetPrcpVolQty() {
  1505. var curCol = grd_prcpposlist.col;
  1506. if(curCol == grd_prcpposlist.colRef("prcpvol")){
  1507. model.setValue("/root/drugcalc/prcpvol", model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpvol"));
  1508. } else if(curCol == grd_prcpposlist.colRef("prcpqty")){
  1509. model.setValue("/root/drugcalc/prcpqty", model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcpqty"));
  1510. } else if(curCol == grd_prcpposlist.colRef("prcptims")){
  1511. model.setValue("/root/drugcalc/prcptims", model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/prcptims"));
  1512. } else if(curCol == grd_prcpposlist.colRef("drprcpetc7")){
  1513. model.setValue("/root/drugcalc/drprcpetc7", model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc7"));
  1514. } else if(curCol == grd_prcpposlist.colRef("drprcpetc8")){
  1515. model.setValue("/root/drugcalc/drprcpetc8", model.getValue(sPRCPLIST_PATH + "[" + grd_prcpposlist.row + "]/drprcpetc8"));
  1516. }
  1517. }
  1518. /**
  1519. * @desc : 용량, 수량, 횟수를 수정했을 때 값계산
  1520. * @
  1521. * @param : flag : 용량, 수량, 횟수 변경 구분
  1522. curRow : 수정할 현재 row
  1523. * @return : void
  1524. * @author : 마정민 2007. 4. 30
  1525. * 소스카피 by cha
  1526. * @---------------------------------------------------
  1527. */
  1528. function DrugCalc ( flag, curRow ) {
  1529. var PrcpVol = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol" );
  1530. if ( isNull(PrcpVol) || PrcpVol == 0 ) {
  1531. PrcpVol = "1";
  1532. }
  1533. var PrcpQty = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty" );
  1534. if ( isNull(PrcpQty) || PrcpQty == 0 ){
  1535. PrcpQty = "1";
  1536. }
  1537. var PrcpTims = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/prcptims" );
  1538. if ( isNull(PrcpTims) || PrcpTims == 0 ) {
  1539. PrcpTims = "1";
  1540. }
  1541. var drprcpetc7 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7" );
  1542. var drprcpetc7_2 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7" );
  1543. if ( isNull(drprcpetc7) || drprcpetc7 == 0 || drprcpetc7 == "-") {
  1544. drprcpetc7 = "1";
  1545. }
  1546. var drprcpetc8 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8" );
  1547. var drprcpetc8_2 = model.getValue (sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8" );
  1548. if ( isNull(drprcpetc8) || drprcpetc8 == 0 || drprcpetc8 == "-") {
  1549. drprcpetc8 = "1";
  1550. }
  1551. var bfPrcpVol = model.getValue ( "/root/drugcalc/prcpvol" );
  1552. if ( isNull(bfPrcpVol) || bfPrcpVol == 0 ) {
  1553. bfPrcpVol = "1";
  1554. }
  1555. var bfPrcpQty = model.getValue ( "/root/drugcalc/prcpqty" );
  1556. if ( isNull(bfPrcpQty) || bfPrcpQty == 0 ) {
  1557. bfPrcpQty = "1";
  1558. }
  1559. var bfprcpTims = model.getValue ( "/root/drugcalc/prcptims" );
  1560. if ( isNull(bfprcpTims) || bfprcpTims == 0 ) {
  1561. bfprcpTims = "1";
  1562. }
  1563. var bfdrprcpetc7 = model.getValue ( "/root/drugcalc/drprcpetc7" );
  1564. if ( isNull(bfdrprcpetc7) || bfdrprcpetc7 == 0 ) {
  1565. bfdrprcpetc7 = "1";
  1566. }
  1567. var bfdrprcpetc8 = model.getValue ( "/root/drugcalc/drprcpetc8" );
  1568. if ( isNull(bfdrprcpetc8) || bfdrprcpetc8 == 0 ) {
  1569. bfdrprcpetc8 = "1";
  1570. }
  1571. var calcPrcpVol = 0;
  1572. var calcPrcpQty = 0;
  1573. var calcPrcpTimeVol = 0;
  1574. var calcPrcpTimeQty = 0;
  1575. //20090820 마정민 수정. 약인 경우는 최초의 용량 수량 비율로 계산하는 것으로 수정
  1576. var baseQty = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 31 , "^", "|" );
  1577. var baseVol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 32 , "^", "|" );
  1578. var drugcntsvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 1 , "^", "|" );
  1579. var drugstndvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 3 , "^", "|" );
  1580. var drugpackvol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 5 , "^", "|" );
  1581. var drugbasevol = getArrayData ( model.getValue ( "/root/main/prcp/prcplist[" + curRow + "]/drugmastspec" ) + "^", 0, 7 , "^", "|" );
  1582. var baseTimeVol = drugcntsvol * drugbasevol / drugpackvol;
  1583. var baseTimeQty = drugbasevol;
  1584. if (model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" ).substring ( 0, 1 ) == "A" && !isNull(baseQty) && !isNull(baseVol)) {
  1585. if ( flag == "prcpvol" && bfPrcpVol != PrcpVol ) { // 용량을 수정했을 때: 수량 자동계산
  1586. calcPrcpQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseQty)*1000;
  1587. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1588. calcPrcpTimeQty = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeQty)*1000;
  1589. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1590. calcPrcpTimeVol = parseFloat(PrcpVol) / parseFloat(baseVol) * parseFloat(baseTimeVol)*1000;
  1591. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1592. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1593. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1594. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1595. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1596. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1597. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1598. //return;
  1599. } //end
  1600. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1601. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1602. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1603. } else if ( flag == "prcpqty" && bfPrcpQty != PrcpQty ) { // 수량을 수정했을 때: 용량 자동계산
  1604. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1605. calcPrcpVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseVol)*1000;
  1606. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1607. calcPrcpTimeQty = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeQty)*1000;
  1608. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1609. calcPrcpTimeVol = parseFloat(PrcpQty) / parseFloat(baseQty) * parseFloat(baseTimeVol)*1000;
  1610. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1611. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1612. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1613. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1614. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  1615. calcPrcpQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseQty)*1000;
  1616. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1617. calcPrcpTimeQty = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseTimeQty)*1000;
  1618. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1619. calcPrcpVol = parseFloat(drprcpetc7) / parseFloat(baseTimeVol) * parseFloat(baseVol)*1000;
  1620. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1621. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1622. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1623. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1624. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1625. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1626. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1627. //return;
  1628. } //end
  1629. if(drprcpetc7.substr(0,1) == "0") {
  1630. calcPrcpQty = "1";
  1631. calcPrcpVol = "1";
  1632. calcPrcpTimeQty = "1";
  1633. }
  1634. if(drprcpetc8.substr(0,1) == "0") {
  1635. calcPrcpQty = "1";
  1636. calcPrcpVol = "1";
  1637. calcPrcpTimeQty = "1";
  1638. }
  1639. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1640. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1641. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1642. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  1643. calcPrcpVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseVol)*1000;
  1644. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1645. calcPrcpTimeVol = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseTimeVol)*1000;
  1646. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1647. calcPrcpQty = parseFloat(drprcpetc8) / parseFloat(baseTimeQty) * parseFloat(baseQty)*1000;
  1648. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1649. if(drprcpetc7.substr(0,1) == "0") {
  1650. calcPrcpQty = "1";
  1651. calcPrcpVol = "1";
  1652. calcPrcpTimeQty = "1";
  1653. }
  1654. if(drprcpetc8.substr(0,1) == "0") {
  1655. calcPrcpQty = "1";
  1656. calcPrcpVol = "1";
  1657. calcPrcpTimeQty = "1";
  1658. }
  1659. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1660. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1661. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1662. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1663. }
  1664. } else {
  1665. if ( flag == "prcpvol" ) { // 용량을 수정했을 때: 수량 자동계산
  1666. calcPrcpQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(PrcpQty)*1000;
  1667. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1668. calcPrcpTimeVol = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc7)*1000;
  1669. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1670. calcPrcpTimeQty = eval(PrcpVol) / eval(bfPrcpVol) * eval(drprcpetc8)*1000;
  1671. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1672. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1673. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1674. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1675. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1676. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1677. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1678. //return;
  1679. } //end
  1680. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1681. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1682. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1683. } else if ( flag == "prcpqty" ) { // 수량을 수정했을 때: 용량 자동계산
  1684. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1685. calcPrcpVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(PrcpVol)*1000;
  1686. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1687. calcPrcpTimeVol = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc7)*1000;
  1688. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1689. calcPrcpTimeQty = eval(PrcpQty) / eval(bfPrcpQty) * eval(drprcpetc8)*1000;
  1690. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1691. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1692. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1693. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1694. if ( prcpclscd == "M2" ) {
  1695. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  1696. if (!isNull(model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4" )>0){
  1697. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4", PrcpQty );
  1698. }
  1699. }
  1700. } else if ( flag == "drprcpetc7" && bfdrprcpetc7 != drprcpetc7 ) { // 용량을 수정했을 때: 수량 자동계산
  1701. calcPrcpTimeQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(drprcpetc8)*1000;
  1702. calcPrcpTimeQty = Math.round(calcPrcpTimeQty)/1000;
  1703. calcPrcpVol = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpVol)*1000;
  1704. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1705. calcPrcpQty = eval(drprcpetc7) / eval(bfdrprcpetc7) * eval(PrcpQty)*1000;
  1706. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1707. //start: 요청번호 9851, 인슐린주사제 변경 alert (2010.01.28 JJE)
  1708. var cnclInptTxt = model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/prcpcd");
  1709. var prcpcdEndTxt = cnclInptTxt.substring(cnclInptTxt.length-1, cnclInptTxt.length);
  1710. if(model.getValue(sPRCPLIST_PATH + "[" + curRow + "]/tempcol2") == "05|04|09" && (prcpcdEndTxt == "J" || prcpcdEndTxt == "P") && calcPrcpQty < 1){
  1711. messageBox(cnclInptTxt + "\n\n소량 처방을 원하시는 경우에는\nUNIT 단위 코드(원 처방의 끝자리 J나 P를 뺀 코드)로 변경 처방하여 주시기 바랍니다.", "I");
  1712. //model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", bfPrcpVol );
  1713. //return;
  1714. } //end
  1715. if(drprcpetc7.substr(0,1) == "0" && drprcpetc7.substr(1,1) != ".") {
  1716. calcPrcpQty = "1";
  1717. calcPrcpVol = "1";
  1718. calcPrcpTimeQty = "1";
  1719. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", "1");
  1720. }
  1721. if(drprcpetc8.substr(0,1) == "0" && drprcpetc8.substr(1,1) != ".") {
  1722. calcPrcpQty = "1";
  1723. calcPrcpVol = "1";
  1724. calcPrcpTimeQty = "1";
  1725. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", "1");
  1726. }
  1727. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1728. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1729. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", calcPrcpTimeQty );
  1730. if ( isNull(drprcpetc7_2) || drprcpetc7_2 == 0 || drprcpetc7_2 == "-") {
  1731. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", "1");
  1732. }
  1733. } else if ( flag == "drprcpetc8" && bfdrprcpetc8 != drprcpetc8 ) { // 수량을 수정했을 때: 용량 자동계산
  1734. calcPrcpTimeVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(drprcpetc7)*1000;
  1735. calcPrcpTimeVol = Math.round(calcPrcpTimeVol)/1000;
  1736. calcPrcpVol = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpVol)*1000;
  1737. calcPrcpVol = Math.round(calcPrcpVol)/1000;
  1738. calcPrcpQty = eval(drprcpetc8) / eval(bfdrprcpetc8) * eval(PrcpQty)*1000;
  1739. calcPrcpQty = Math.round(calcPrcpQty)/1000;
  1740. if(drprcpetc7.substr(0,1) == "0" && drprcpetc7.substr(1,1) != ".") {
  1741. calcPrcpQty = "1";
  1742. calcPrcpVol = "1";
  1743. calcPrcpTimeVol = "1";
  1744. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", "1");
  1745. }
  1746. if(drprcpetc8.substr(0,1) == "0" && drprcpetc8.substr(1,1) != ".") {
  1747. calcPrcpQty = "1";
  1748. calcPrcpVol = "1";
  1749. calcPrcpTimeVol = "1";
  1750. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", "1");
  1751. }
  1752. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpvol", calcPrcpVol );
  1753. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpqty", calcPrcpQty );
  1754. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc7", calcPrcpTimeVol );
  1755. if ( isNull(drprcpetc8_2) || drprcpetc8_2 == 0 || drprcpetc8_2 == "-") {
  1756. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc8", "1");
  1757. }
  1758. var prcpclscd = model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/prcpclscd" );
  1759. if ( prcpclscd == "M2" ) {
  1760. //20090330 마정민수정. 귀가유치용 물품처방은 의사처방 수량을 수정하면 귀가유치용물품수량컬럼에 같이 반영한다.
  1761. if (!isNull(model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")) && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4")!= "-" && model.getValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4" )>0){
  1762. model.setValue ( sPRCPLIST_PATH + "[" + curRow + "]/drprcpetc4", PrcpQty );
  1763. }
  1764. }
  1765. }
  1766. }
  1767. }
  1768. /**
  1769. * @desc : 처방저장 그리드 오른쪽 마우스 클릭시(적용일자 팝업, 반납부서 팝업)
  1770. * @
  1771. * @param :
  1772. * @return :
  1773. * @author : 성미연 2008. 1. 9
  1774. * @---------------------------------------------------
  1775. */
  1776. function fClickBkPrcp(){
  1777. window.showPopupMenu(true);
  1778. if (event.button == 3) {
  1779. window.setPopupMenu(true, "/root/main/popupmenu/prcpposlist/item", "name", "func", false);
  1780. model.refresh();
  1781. } else {
  1782. return;
  1783. }
  1784. }
  1785. /**
  1786. * @desc : 물품부서 팝업
  1787. * @
  1788. * @param :
  1789. * @return :
  1790. * @author : 성미연 2008. 1. 9
  1791. * @---------------------------------------------------
  1792. */
  1793. function fPopGoodRtn(GridPath, iRow) {
  1794. var rtndeptcd = fGetPrcpPos();
  1795. setParameter("rtndeptcd", rtndeptcd);
  1796. open("SPMNW11400","1","300","500", "SPMNW11400", GridPath, "/root/main/prcp/prcplist");
  1797. /*
  1798. if (model.getValue("/root/main/prcpposinfo/cond/goodrtnyn") != 'Y') { //물품반납부서 지정 버튼을 누르지 않았을 경우 반환 해지
  1799. model.setValue("/root/main/prcpposinfo/prcpinfo/prcplist[" + iRow + "]/return", "false");
  1800. // model.setValue("/root/main/prcpposinfo/cond/dcdeptcd", model.getValue("/root/main/prcpposinfo/cond/dcdeptcd"));
  1801. model.refresh();
  1802. }
  1803. */
  1804. }
  1805. /**
  1806. * @desc : 처방위치 return
  1807. * @
  1808. * @param :
  1809. * @return :
  1810. * @author : 성미연 2008. 1. 9
  1811. * @---------------------------------------------------
  1812. */
  1813. function fGetPrcpPos() {
  1814. var PrcpPosCD = "";
  1815. var pid=model.getValue("/root/main/cond/pid");
  1816. if (model.getValue("/root/main/prcpposinfo/cond/poscd") == '1') { //환자위치
  1817. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+combo1.value+"']/cdid")) ) {
  1818. PrcpPosCD = model.getValue("/root/init/patinfo/patlist[pid='" + pid + "']/grupcd");
  1819. } else {
  1820. PrcpPosCD = model.getValue("/root/main/cond/wardcd");
  1821. }
  1822. } else { //User위치
  1823. PrcpPosCD = model.getValue("/root/main/prcpposinfo/cond/deptcd");
  1824. }
  1825. return PrcpPosCD;
  1826. }
  1827. /**
  1828. * @desc : 전처방 그리드 확대/축소
  1829. * @
  1830. * @param : state - true : 확대, false : 축소
  1831. * @return :
  1832. * @author : 성미연 2008. 2. 5
  1833. * @---------------------------------------------------
  1834. */
  1835. function fbfzoomToggle(state){
  1836. if(state) {
  1837. btn_bfzoom.attribute("text") = "축소";
  1838. switch1.attribute("width")= "1165";
  1839. grd_bfprcplist.attribute("width") = "1155";
  1840. } else {
  1841. btn_bfzoom.attribute("text") = "확대";
  1842. switch1.attribute("width")= "500";
  1843. grd_bfprcplist.attribute("width") = "489";
  1844. }
  1845. }
  1846. function fDelPrcp() {
  1847. for (i = 0; i < grd_prcpposlist.selectedRows; i++) {
  1848. model.setValue("/root/main/prcp/prcplist[" + grd_prcpposlist.selectedRow(i) + "]/status", 'D');
  1849. }
  1850. for (i = 1; i <= getNodesetCount("/root/main/prcp/prcplist"); i++) {
  1851. if (model.getValue("/root/main/prcp/prcplist[" + i + "]/status") == 'D') {
  1852. grd_prcpposlist.deleteRow(i, false);
  1853. i--;
  1854. }
  1855. }
  1856. model.refresh();
  1857. }
  1858. function fnZoneDisp() {
  1859. //응급의료센터(2280200000)인 경우
  1860. //병동정보대신에 구역정보가 보임)(20080620)
  1861. if ( !isNull(model.getValue("/root/code/codeinfo/codelist[cdgrupid ='002' and cdid ='"+combo1.value+"']/cdid")) ) {
  1862. caption15.visible = false;
  1863. cmb_room.visible = false;
  1864. cap_Zone.visible = true;
  1865. cmb_Zone.visible = true;
  1866. //20110830_KNUH_Start
  1867. //cmb_settingrn.visible = false;
  1868. //cap_settingrn.visible = false;
  1869. //20110830_KNUH_End
  1870. cmb_room.value = "-";
  1871. var zonecd = model.getValue("/root/main/paminfo/list/sectioncd");
  1872. if( !isNull(zonecd) && zonecd != "-" ){
  1873. cmb_Zone.value = model.getValue("/root/main/paminfo/list/sectioncd");
  1874. } else {
  1875. cmb_Zone.value = "-";
  1876. }
  1877. //cmb_settingrn.visible = false;
  1878. } else {
  1879. caption15.visible = true;
  1880. cmb_room.visible = true;
  1881. //cmb_settingrn.visible =true;
  1882. cap_Zone.visible = false;
  1883. cmb_Zone.visible = false;
  1884. cmb_Zone.value = "";
  1885. //20110830_KNUH_Start
  1886. //cmb_settingrn.visible = true;
  1887. //cap_settingrn.visible = true;
  1888. //20110830_KNUH_End
  1889. }
  1890. model.refresh();
  1891. }
  1892. /**
  1893. * @desc : KNUH, 처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능
  1894. * @
  1895. * @param :
  1896. * @return :
  1897. * @author : JJE 2011. 2. 16
  1898. * @---------------------------------------------------
  1899. */
  1900. function fClickSetPrcpRows(){
  1901. var selectedRows = grd_prcplist.selectedRows;
  1902. var prcpPosListRows = grd_prcpposlist.rows;
  1903. if(selectedRows == 1 ){
  1904. fClickSetPrcp("btnclick");
  1905. return;
  1906. }
  1907. if (selectedRows > 0 ){
  1908. if (model.getValue("/root/main/cond/patnm") == ""){
  1909. messageBox("해당 환자를", "C002");
  1910. return;
  1911. }
  1912. for (i=0; i<selectedRows; i++){
  1913. var iRow = grd_prcplist.selectedrow(i);
  1914. //ALL SIZE 처방 처리
  1915. if(model.getValue(sPRCPSRCHLIST_PATH + "[" + iRow + "]/prcpclscd") == "M2" && model.getValue(sPRCPSRCHLIST_PATH + "[" + iRow + "]/matrallsizespecid") == "ALL") {
  1916. var grupsnglflag = model.getValue(sPRCPSRCHLIST_PATH + "[" + iRow + "]/grupsnglflag");
  1917. var calcscormastspec = (model.getValue(sPRCPSRCHLIST_PATH + "[" + iRow + "]/calcscormastspec")).split("|");
  1918. var matrsizeflag = calcscormastspec[2];
  1919. var matrallsizespecid = model.getValue(sPRCPSRCHLIST_PATH + "[" + iRow + "]/matrallsizespecid");
  1920. var xpt = window.screenleft + 100;
  1921. var ypt = window.screenTop + 50;
  1922. var coord = getRelativeCoordinate ( xpt, ypt );
  1923. var mon = coord[0];
  1924. xpt = coord[1];
  1925. ypt = coord[2];
  1926. setParameter("scrnflag", "nursprcp");
  1927. setParameter("grupsnglflag", 'S');
  1928. setParameter("calcscorcd", calcscormastspec[3]);
  1929. setParameter("matrallsizespecid", matrallsizespecid);
  1930. setParameter("currow", iRow);
  1931. setParameter("targetpath", "/root/main/prcp/prcplist");
  1932. //setParameter("targetgridid", "grd_prcpposlist");
  1933. modal("SPMNW11500", mon, xpt, ypt);
  1934. }else{
  1935. //처방 main grid로 검색처방 copy
  1936. mnwAddNursPrcp(sPRCPSRCHLIST_PATH, "/root/main/prcp", iRow, "");
  1937. fSetNursPrcpDefault(model.instances(0).selectNodes("/root/main/prcp/prcplist").length);
  1938. model.setValue(sPRCPLIST_PATH + "[" + prcpPosListRows + "]/status", "I"); //처방상태 : 신규
  1939. prcpPosListRows++;
  1940. }
  1941. fSetPrcpInfo("N");
  1942. } //end for
  1943. model.refresh();
  1944. }
  1945. }
  1946. /**
  1947. * @desc : KNUH, 전처방복사 버튼 클릭하여 선택된 처방 리스트를 복사하는 기능
  1948. * @
  1949. * @param :
  1950. * @return :
  1951. * @author : JJE 2011. 2. 17
  1952. * @---------------------------------------------------
  1953. */
  1954. function fClickBfPrcpRows(){
  1955. var selectedRows = grd_bfprcplist.selectedRows;
  1956. var errRtnMsg = "";
  1957. var prcpPosListRows = grd_prcpposlist.rows;
  1958. if(selectedRows == 1 ){
  1959. fClickBfPrcp("btnclick");
  1960. return;
  1961. }
  1962. if (selectedRows > 0 ){
  1963. if (model.getValue("/root/main/cond/patnm") == "") {
  1964. messageBox("해당 환자를", "C002");
  1965. return;
  1966. }
  1967. var cnt = 0;
  1968. var str = "";
  1969. for (i=0; i<selectedRows; i++){
  1970. var iRow = grd_bfprcplist.selectedrow(i);
  1971. var flag = model.getValue(sBFPRCPLIST_PATH + "[" + iRow + "]/flag");
  1972. var prcpcd = model.getValue(sBFPRCPLIST_PATH + "[" + iRow + "]/prcpcd");
  1973. if(flag == "N") {
  1974. if(cnt == 0) {
  1975. str = prcpcd
  1976. } else {
  1977. str +=", " + prcpcd;
  1978. }
  1979. cnt++;
  1980. }
  1981. var prcphistcd = model.getValue(sBFPRCPLIST_PATH + "[" + iRow + "]/prcphistcd");
  1982. if (prcphistcd == "L" || prcphistcd == "D" ) {
  1983. continue;
  1984. }else{
  1985. //방문일자와 다른 방문일의 처방 클릭시 blocking
  1986. if (model.getValue("/root/main/cond/homecareyn") == "Y"){
  1987. if (model.getValue("/root/main/cond/visitdd") == ""){
  1988. if (model.getValue("/root/main/cond/visitdd") != model.getValue(sBFPRCPLIST_PATH + "[" + iRow + "]/prcpdelivefact")){
  1989. if(errRtnMsg != "") errRtnMsg = errRtnMsg + ", ";
  1990. errRtnMsg = errRtnMsg + model.getValue(sBFPRCPLIST_PATH + "[" + iRow + "]/prcpcd");
  1991. continue;
  1992. }
  1993. }
  1994. }
  1995. mnwAddNursPrcp(sBFPRCPLIST_PATH, "/root/main/prcp", iRow, "");
  1996. fSetNursPrcpDefault(model.instances(0).selectNodes("/root/main/prcp/prcplist").length);
  1997. model.setValue(sPRCPLIST_PATH + "[" + prcpPosListRows + "]/status", "B"); //처방상태[전]
  1998. prcpPosListRows++;
  1999. }
  2000. fSetPrcpInfo("N");
  2001. if ( model.getValue(sPRCPLIST_PATH + "[" + model.instances(0).selectNodes("/root/main/prcp/prcplist").length + "]/estmcls")!= "Y" ){
  2002. grd_prcpposlist.isReadOnly(model.instances(0).selectNodes("/root/main/prcp/prcplist").length, grd_prcpposlist.colRef("nigtprcpflag") ) = true;
  2003. }
  2004. } // end for
  2005. if(cnt > 0) {
  2006. messageBox("[" + str + "]처방은 수가가 종료되어 반환만 가능합니다.", "E");
  2007. }
  2008. model.refresh();
  2009. if(errRtnMsg != ""){
  2010. messageBox("방문일이 동일한 처방에 대해서만 일괄 저장이 가능합니다.\n" + errRtnMsg + "처방은 방문일이 동일하지 않습니다.", "C");
  2011. }
  2012. }
  2013. }
  2014. /**
  2015. * @desc : 20110626_KNUH 보조유형 체크하는 로직
  2016. * @
  2017. * @param :
  2018. * @return :
  2019. * @author : dark9258 2011. 6. 26
  2020. * @---------------------------------------------------
  2021. */
  2022. function fCheckSubKindCd() {
  2023. var prcpgenrflag = model.getValue("/root/main/patinfocond/patinfo/ordtype");
  2024. var pid = model.getValue("/root/main/paminfo/list/pid");
  2025. var indd = model.getValue("/root/main/paminfo/list/indd");
  2026. model.makeValue("/root/temp/send/pid", pid);
  2027. model.makeValue("/root/temp/send/indd", indd);
  2028. if(submit("TRMMO15701")){
  2029. var nodelist = model.instances(0).selectNodes("/root/temp/patsupkind/patsupkind");
  2030. if(nodelist != null) {
  2031. if(nodelist.length > 1){
  2032. clearParameter("SPMMO15700_subcretno");
  2033. modal("SPMMO15700", "", "", "", "SPMMO15700", "/root/temp/patsupkind", "/root/main/patsupkind");
  2034. var subcretno = getParameter("SPMMO15700_subcretno");
  2035. if(subcretno == "0") {
  2036. var rtn = messageBox("주유형으로 처방을 발행하시겠습니까?", "Q");
  2037. if(rtn != "6") {
  2038. return "false";
  2039. }
  2040. }
  2041. if(subcretno == null || subcretno == "") {
  2042. messageBox("유형을 선택하세요.", "E");
  2043. return "false";
  2044. }
  2045. model.makeValue("/root/temp/prcpinfo/subcretno", subcretno);
  2046. } else {
  2047. model.makeValue("/root/temp/prcpinfo/subcretno", "0");
  2048. }
  2049. } else {
  2050. model.makeValue("/root/temp/prcpinfo/subcretno", "0");
  2051. }
  2052. }
  2053. return "true";
  2054. }
  2055. //20110828_KNUH_Start
  2056. function fGetPatInfo() {
  2057. var settingnurid = model.getValue("/root/main/cond/settingrnid");
  2058. if(settingnurid == null || settingnurid == "") {
  2059. cmb_room.disabled = false;
  2060. } else {
  2061. cmb_room.disabled = true;
  2062. }
  2063. model.removeNodeset("/root/send/reqdata");
  2064. model.makeNode("/root/send/reqdata");
  2065. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  2066. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  2067. submit("TRMNW10902", false);
  2068. model.setValue("/root/main/cond/roomcd", "-"); //해당 병실 셋팅
  2069. cmb_room.refresh();
  2070. //해당 병실의 환자 조회
  2071. model.removeNodeset("/root/send/reqdata");
  2072. model.makeNode("/root/send/reqdata");
  2073. model.makeValue("/root/send/reqdata/orddd", model.getValue("/root/main/cond/prcpdd"));
  2074. model.makeValue("/root/send/reqdata/wardcd", model.getValue("/root/main/cond/wardcd"));
  2075. model.makeValue("/root/send/reqdata/roomcd", model.getValue("/root/main/cond/roomcd"));
  2076. model.makeValue("/root/send/reqdata/refflag", "room");
  2077. model.makeValue("/root/send/reqdata/ordtype", "I");
  2078. model.makeValue("/root/send/reqdata/settingrnid", model.getValue("/root/main/cond/settingrnid"));
  2079. if(spcldept == model.getValue("/root/main/cond/wardcd")) {
  2080. model.makeValue("/root/send/reqdata/spcldeptyn", "Y");
  2081. } else {
  2082. model.makeValue("/root/send/reqdata/spcldeptyn", "");
  2083. }
  2084. submit("TRMNW10903", false);
  2085. model.setValue("/root/main/cond/patnm", "");
  2086. model.setValue("/root/main/cond/pid", "");
  2087. cmb_patnm.refresh();
  2088. ipt_pid.refresh();
  2089. cap_prtlnm.refresh();
  2090. }
  2091. function fCalcScorHbookPrcp(){
  2092. fCalcScorHbook('prcp');
  2093. }
  2094. function fCalcScorHbookPrcppos(){
  2095. fCalcScorHbook('prcppos');
  2096. }
  2097. function fCalcScorHbookPrcpbf(){
  2098. fCalcScorHbook('bf');
  2099. }
  2100. function fOpenSendSms(){
  2101. var patnm = model.getValue("/root/main/patinfocond/patinfo/patnm");
  2102. var rgstridnm = model.getValue(sBFPRCPLIST_PATH +"[" + grd_bfprcplist.row + "]/rgstridnm")
  2103. var rgstrtelno = model.getValue(sBFPRCPLIST_PATH +"[" + grd_bfprcplist.row + "]/rgstrtelno")
  2104. var wardtelno = model.getValue(sBFPRCPLIST_PATH +"[" + grd_bfprcplist.row + "]/wardtelno")
  2105. var msgcnts = patnm + " 환자에게 구두처방이 발행 되었습니다."
  2106. model.removeNodeset("/root/hidden/smsdata");
  2107. model.makeValue("/root/hidden/smsdata/bizabbr", "ENR");
  2108. model.makeValue("/root/hidden/smsdata/replytelno", wardtelno);
  2109. model.makeValue("/root/hidden/smsdata/rsrvyn", "");
  2110. model.makeValue("/root/hidden/smsdata/rsrvdate", "");
  2111. model.makeValue("/root/hidden/smsdata/rsrvtime", "");
  2112. model.makeValue("/root/hidden/smsdata/msgcnts", msgcnts);
  2113. model.makeValue("/root/hidden/smsdata/recvrlist/chk", "Y");
  2114. model.makeValue("/root/hidden/smsdata/recvrlist/recvrnm", rgstridnm);
  2115. model.makeValue("/root/hidden/smsdata/recvrlist/recvrtelno", rgstrtelno);
  2116. zmsfOpenSMS("/root/hidden/smsdata");
  2117. model.removeNodeset("/root/hidden/smsdata");
  2118. }
  2119. function fClickEr(){
  2120. if(grd_prcpposlist.colRef("erprcpflag") == grd_prcpposlist.mouseCol){
  2121. if(grd_prcpposlist.valuematrix(grd_prcpposlist.row, grd_prcpposlist.colRef("erprcpflag")) == 'Y'){
  2122. grd_prcpposlist.valuematrix(grd_prcpposlist.row, grd_prcpposlist.colRef("drprcpetc10"))='Y';
  2123. }else{
  2124. grd_prcpposlist.valuematrix(grd_prcpposlist.row, grd_prcpposlist.colRef("drprcpetc10"))='N';
  2125. }
  2126. }
  2127. }
  2128. function fprtlnm(pid){
  2129. model.makeValue("/root/send/reqdata/pid", pid);
  2130. submit("TRMNW10911");
  2131. }
  2132. //20110828_KNUH_End