SPMMO02800.js 101 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141
  1. /**
  2. * @desc : 화면 초기화
  3. * @
  4. * @param :
  5. * @return :
  6. * @author : 엄영만
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize_SPMMO02800(){
  10. zbcfGetCodeList(new Array("P0323", "M0040", "M0029", "P0506", "M0039", "M0044", "M0006", "M0007", "M0008", "M0639"),new Array("/root/init/hosinprcpresncd", "/root/init/drugspdunitflag", "/root/init/payflagcd","/root/init/drgacptflag","/root/init/tnsuseflag","/root/init/irpayflag","/root/init/angioflagcd","/root/init/opansflagcd", "/root/init/anstflagcd", "/root/init/nigtprcpflag"));
  11. zbcfGetKindCodeList(new Array("M0041", "M0042", "M0043"), new Array("M0046", "M0041", "M0045"), new Array("/root/init/tempdrugspd1", "/root/init/tempprcpdirecflag1", "/root/init/tempdrugmthdspccdnm1"), false); // 재활
  12. zbcfGetKindCodeList(new Array("M0044", "M0045", "M0046"), new Array("M0046", "M0041", "M0045"), new Array("/root/init/tempdrugspd2", "/root/init/tempprcpdirecflag2", "/root/init/tempdrugmthdspccdnm2"), false); // 온열암치료
  13. zbcfGetKindCodeList(new Array("M0047"), new Array("M0046"), new Array("/root/init/tempdrugspd3"), false); // 초음파처방
  14. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330", "", "M", "", "", "", "Y"); // 선택진료의사 리스트를 조회한다.
  15. model.setValue ( "/root/send/cond1", "172" ); // PRN 사유 조회
  16. submit("TRMMB16401" );
  17. var pParentNode = null;
  18. var node01 = instance1.selectSingleNode("/root/init/hosinprcpresncd/P0323[cdid='01']");
  19. if(node01 != null){
  20. pParentNode = node01.parentNode;
  21. pParentNode.removeChild(node01);
  22. }
  23. model.setValue("/root/cond/isinit", "Y");
  24. model.refresh();
  25. }
  26. /**
  27. * @desc : 처방화면에서 처방 클릭시
  28. * @
  29. * @param :
  30. * @return :
  31. * @author : 엄영만
  32. * @---------------------------------------------------
  33. */
  34. function fPrcpClick() {
  35. var sIsInit = model.getValue("/root/cond/isinit");
  36. if(sIsInit == "N") {
  37. fInitialize_SPMMO02800(); // 기초 변수,인스턴스 설정
  38. }
  39. var nRow = opener.grd_prcplist.row;
  40. var sPrcpCD = opener.model.getValue ("/root/main/prcp/prcplist[" + nRow + "]/prcpcd");
  41. var srcNodeList = opener.model.instances(0).selectNodes("/root/main/prcp/prcplist");
  42. var destNode = model.instances(0).selectSingleNode("/root/main/prcp");
  43. if(nRow > 0 && !isNull(sPrcpCD)) {
  44. var sBfPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  45. model.removeNodeset("/root/main/prcp/prcplist");
  46. destNode.appendChild(srcNodeList.item(nRow-1).cloneNode(true));
  47. model.setValue("/root/cond/currow", nRow);
  48. if(sBfPrcpCd != sPrcpCD) { // 처방코드가 틀릴경우만 조회
  49. fPrcpExecDeptSrch(); // 시행부서 조회
  50. }
  51. var prcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
  52. fInitPage(prcpClsCd);
  53. } else {
  54. fInitPage("00");
  55. }
  56. }
  57. /**
  58. * @desc : 처방종류별 화면 기본 설정
  59. * @
  60. * @param :
  61. * @return :
  62. * @author : 엄영만
  63. * @---------------------------------------------------
  64. */
  65. function fInitPage(prcpClsCd) {
  66. var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  67. var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  68. var sOrgPrcpNm = model.getValue("/root/main/prcp/prcplist/orgprcpnm");
  69. var prcpClsNm = "";
  70. if(prcpClsCd == "03") { // 식이
  71. /**************************************************************************************************/
  72. // 식이 처방
  73. /**************************************************************************************************/
  74. model.toggle("03");
  75. prcpClsNm = "식이";
  76. model.setValue ( "/root/diet1", "N" );
  77. model.setValue ( "/root/diet2", "N" );
  78. model.setValue ( "/root/diet3", "N" );
  79. model.setValue ( "/root/dietall", "N" );
  80. grd_03_prcplist.valueMatrix ( 0, 4 ) = "열량";
  81. grd_03_prcplist.colDisabled (4)= false;
  82. grd_03_prcplist.colDisabled (5)= false;
  83. cap_03_tfdtlcd.visible = true;
  84. rdo_03_tfdtlcd.visible = true;
  85. model.removeNodeset("/root/init/A0000");
  86. model.makeNode("/root/init/A0000");
  87. var calcond = "";
  88. var mealprotcntscond = "";
  89. var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  90. if(sPrcpCd == "Q2093001"){ //경장영양일반
  91. zbcfGetCodeList(new Array("A0489"), new Array("/root/init/A0000"));
  92. cap_03_tfdtlcd.attribute("text") = "경장영양일반";
  93. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0489";
  94. }else if(sPrcpCd == "Q2093002"){ //경장영양당뇨
  95. zbcfGetCodeList(new Array("A0490"), new Array("/root/init/A0000"));
  96. cap_03_tfdtlcd.attribute("text") = "경장영양당뇨";
  97. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0490";
  98. }else if(sPrcpCd == "Q2093003"){ //경장영양신장질환
  99. zbcfGetCodeList(new Array("A0491"), new Array("/root/init/A0000"));
  100. cap_03_tfdtlcd.attribute("text") = "경장영양신장질환";
  101. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0491";
  102. }else if(sPrcpCd == "Q2093004"){ //경장영양섬유소
  103. zbcfGetCodeList(new Array("A0491"), new Array("/root/init/A0000"));
  104. cap_03_tfdtlcd.attribute("text") = "경장영양섬유소";
  105. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0492";
  106. }else if(sPrcpCd == "Q2093005"){ //경장영양고단백
  107. zbcfGetCodeList(new Array("A0493"), new Array("/root/init/A0000"));
  108. cap_03_tfdtlcd.attribute("text") = "경장영양고단백";
  109. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0493";
  110. }else if(sPrcpCd == "Q2093006"){ //경장영양기타
  111. zbcfGetCodeList(new Array("A0494"), new Array("/root/init/A0000"));
  112. cap_03_tfdtlcd.attribute("text") = "경장영양기타";
  113. rdo_03_tfdtlcd.choices.itemset.attribute("nodeset") = "/root/init/A0000/A0494";
  114. }else{
  115. cap_03_tfdtlcd.visible = false;
  116. rdo_03_tfdtlcd.visible = false;
  117. }
  118. model.refresh();
  119. var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
  120. if(clinccmtcnts == ""){radio1.select(0);}
  121. var dietprcpgenrflag = model.getValue ( "/root/main/prcp/prcplist/dietprcpgenrflag" );
  122. if ( isNull(dietprcpgenrflag) || dietprcpgenrflag == "-" ) {
  123. if (opener.cmb_prcpdd.value > getCurrentDate()) {
  124. model.setValue ( "/root/diet1", "Y" );
  125. model.setValue ( "/root/diet2", "Y" );
  126. model.setValue ( "/root/diet3", "Y" );
  127. } else if (opener.cmb_prcpdd.value == getCurrentDate()) {
  128. var dietfromtm = "";
  129. var diettotm = "";
  130. var dietflag = "";
  131. var srcNodeList = opener.model.instances(0).selectNodes( "/root/initsrch/dietendtm" );
  132. var hhmm = eval(getCurrentTime().substr( 0, 4 ));
  133. for ( var i =1 ; i <= srcNodeList.length; i++ ) {
  134. dietfromtm = 0;
  135. diettotm = eval(opener.model.getValue ( "/root/initsrch/dietendtm[" + i + "]/diettotm" ));
  136. if ( dietfromtm <= hhmm && hhmm <= diettotm ) {
  137. dietflag = opener.model.getValue ( "/root/initsrch/dietendtm[" + i + "]/dietflag" );
  138. if ( dietflag == "1" ) { model.setValue ( "/root/diet1", "Y" ); }
  139. if ( dietflag == "2" ) { model.setValue ( "/root/diet2", "Y" ); }
  140. if ( dietflag == "3" ) { model.setValue ( "/root/diet3", "Y" ); }
  141. }
  142. }
  143. }
  144. } else {
  145. if ( dietprcpgenrflag == "1") { model.setValue ( "/root/diet1", "Y" ); }
  146. if ( dietprcpgenrflag == "2") { model.setValue ( "/root/diet2", "Y" ); }
  147. if ( dietprcpgenrflag == "3") { model.setValue ( "/root/diet3", "Y" ); }
  148. }
  149. var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" ) +"▩";
  150. calcond = getArrayData (drugmastspec, 0, 0, "▩", "|" );
  151. if ( calcond == "1" ) {
  152. grd_03_prcplist.colDisabled (4)= true;
  153. } else if ( calcond == "2" || calcond == "3" ) {
  154. var calmin = eval(getArrayData (drugmastspec, 0, 1, "▩", "|" ));
  155. var calmax = eval(getArrayData (drugmastspec, 0, 2, "▩", "|" ));
  156. var i = 0;
  157. while (calmin <= calmax) {
  158. i++;
  159. model.makeValue("/root/mealcalrcnts/mealcalrcntslist[" + i + "]/cdnm", calmin);
  160. calmin += 100;
  161. }
  162. if ( calcond == "3" ) { //header 수정
  163. grd_03_prcplist.valueMatrix ( 0, 4 ) = "용량";
  164. }
  165. }
  166. mealprotcntscond = getArrayData (drugmastspec, 0, 3, "▩", "|" );
  167. if ( mealprotcntscond == "Y" ) {
  168. var mealprotcnts = getArrayData (drugmastspec, 0, 4, "▩", "|" ) + "▩";
  169. var prcplen = mealprotcnts.split("^").length;
  170. var row = 0;
  171. for ( var j=0; j < prcplen; j++ ) {
  172. row = j + 1;
  173. model.makeValue("/root/mealprotcnts/mealprotcntslist[" + row + "]/cdnm", getArrayData ( mealprotcnts, 0, j, "▩", "^" ) );
  174. }
  175. } else {
  176. model.setValue ( "/root/main/prcp/prcplist/mealprotcnts", "3" );
  177. grd_03_prcplist.colDisabled (5)= true;
  178. }
  179. rdo_03_tfdtlcd.select(0);
  180. } else if(prcpClsCd == "A2" || prcpClsCd == "A4") { // 약 경구, 외용
  181. /**************************************************************************************************/
  182. // 약 경구, 외용
  183. /**************************************************************************************************/
  184. model.toggle("A2");
  185. if(prcpClsCd == "A2") {
  186. prcpClsNm = "약-경구";
  187. } else {
  188. prcpClsNm = "약-외용";
  189. }
  190. reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
  191. //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
  192. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  193. var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
  194. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  195. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  196. if ( spcldrug == "M" ) {
  197. cap_a2_clinccmtcnts.visible = true;
  198. rdo_a2_clinccmtcnts.visible = true;
  199. ipt_a2_clinccmtcnts.visible = true;
  200. if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
  201. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
  202. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
  203. model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
  204. }
  205. ipt_a2_clinccmtcnts.disabled = false;
  206. } else {
  207. ipt_a2_clinccmtcnts.disabled = true;
  208. }
  209. } else {
  210. cap_a2_clinccmtcnts.visible = false;
  211. rdo_a2_clinccmtcnts.visible = false;
  212. ipt_a2_clinccmtcnts.visible = false;
  213. }
  214. //20090115 마정민수정: 내복제-생물학적제제-능동면역약인 경우 접종차수 활성화
  215. if ( model.getValue("/root/main/prcp/prcplist/tempcol2") == "03|08|02" ) {
  216. cap_a2_mealcalrcnts.visible = true;
  217. rdo_a2_mealcalrcnts.visible = true;
  218. } else {
  219. cap_a2_mealcalrcnts.visible = false;
  220. rdo_a2_mealcalrcnts.visible = false;
  221. }
  222. // 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
  223. if (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y"){
  224. ipt_a2_prcpdelivefact.disabled = true;
  225. cap_a2_prn.visible = true;
  226. cap_a2_prntime.visible = true;
  227. cap_a2_prnresncmt.visible = true;
  228. cap_a2_prnterm.visible = true;
  229. ipt_a2_prntime.visible = true;
  230. ipt_a2_prnresncmt.visible = true;
  231. ipt_a2_prnterm.visible = true;
  232. cob_a2_prnprcpresncd.visible = true;
  233. var sDrPrcpEtc6 = model.getValue("/root/main/prcp/prcplist/drprcpetc6");
  234. var SetPrnPrcpDetl = sDrPrcpEtc6.split("|");
  235. if ( SetPrnPrcpDetl.length >2){
  236. model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
  237. model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
  238. model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
  239. if(SetPrnPrcpDetl.length >3) {
  240. model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
  241. } else {
  242. model.setValue("/root/main/temp/prnterm", "");
  243. }
  244. } else {
  245. model.setValue("/root/main/temp/prntms", "");
  246. model.setValue("/root/main/temp/prnprcpresncd", "");
  247. model.setValue("/root/main/temp/prnresncmt", "");
  248. model.setValue("/root/main/temp/prnterm", "");
  249. }
  250. } else {
  251. ipt_a2_prcpdelivefact.disabled = false;
  252. cap_a2_prn.visible = false;
  253. cap_a2_prntime.visible = false;
  254. cap_a2_prnresncmt.visible = false;
  255. cap_a2_prnterm.visible = false;
  256. ipt_a2_prntime.visible = false;
  257. ipt_a2_prnresncmt.visible = false;
  258. ipt_a2_prnterm.visible = false;
  259. cob_a2_prnprcpresncd.visible = false;
  260. model.setValue("/root/main/temp/prntms", "");
  261. model.setValue("/root/main/temp/prnprcpresncd", "");
  262. model.setValue("/root/main/temp/prnresncmt", "");
  263. model.setValue("/root/main/temp/prnterm", "");
  264. }
  265. //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
  266. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  267. if( calcmthdcd == "4" ) {
  268. model.setValue(grd_a2_prcplist.nodeset + "/prcpdayno", "1");
  269. grd_a2_prcplist.colDisabled (grd_a2_prcplist.colRef("prcpdayno") ) = true;
  270. }else {
  271. grd_a2_prcplist.colDisabled (grd_a2_prcplist.colRef("prcpdayno") ) = false;
  272. }
  273. //원내, 원외 처방 처리
  274. //1. 외래: /root/main/prcp/prcplist/hosinhosoutflag 값이 O이면 원외
  275. //1.1 처방화면에 원내처방 사유가 있으면 복사시 값을 가져온다.
  276. //1.2 처방 자체에 원내처방 사유가 있으면 적용된다. 단 처방화면에 원내처방 사유가 있을경우 그걸로 적용
  277. //1.3 처방화면에서 원내처방 사유를 적용하면 그걸로 전부 적용된다.
  278. //1.4 처방상세화면에서 원내처방 사유를 적용할 때 그것이 처방화면의 원내처방 사유와 동일할 경우 그걸로 모두 적용한다.
  279. //1.5 원내/원외, 원내처방사유 enable
  280. //2.입원: 원내, 원내처방사유 00
  281. //2.1 원내/원외, 원내처방사유 disable
  282. //3.응급: 입원과 동일하다.
  283. //3.1 원내/원외, 원내처방사유 enable
  284. //4.DSC: 입원과 동일하다.
  285. //4.1 퇴원처방, 퇴원후 외래처방은 원외이다. ( 입원, 응급과 같게 하라고 해서 처리안함 )
  286. //4.2 원내/원외, 원내처방사유 enable
  287. if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "E" || sPrcpGenrFlag == "D") { //외래, 응급, DSC 이면 prn처방 disable
  288. //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
  289. //값은 원내처방사유가 변경될 때마다 같이 변경된다.
  290. model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
  291. }
  292. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  293. grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("prnprcpflag")) = true;
  294. } else {
  295. grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("prnprcpflag")) = false;
  296. }
  297. var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
  298. if ( hosinhosoutflag != "O" && sPrcpGenrFlag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
  299. rdo_a2_hosinhosoutflag1.disabled = true;
  300. rdo_a2_hosinhosoutflag2.disabled = true;
  301. grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("hosinprcpresncd")) = true;
  302. } else {
  303. rdo_a2_hosinhosoutflag1.disabled = false;
  304. rdo_a2_hosinhosoutflag2.disabled = false;
  305. grd_a2_prcplist.colDisabled(grd_a2_prcplist.colref("hosinprcpresncd")) = false;
  306. }
  307. } else if(prcpClsCd == "A6") { // 약 주사
  308. /**************************************************************************************************/
  309. // 약 주사
  310. /**************************************************************************************************/
  311. model.toggle("A6");
  312. prcpClsNm = "약-주사";
  313. reqHardCodeInfo("/root/main/temp/prnuseyn", "/root/main/temp/prnuseyn", "173");
  314. //30일 이상의 마약처방인 경우, 사유를 입력할 수 있도록 변경, 2008. 06. 12 오지훈
  315. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  316. var clinccmtcnts = model.getValue("/root/main/prcp/prcplist/clinccmtcnts");
  317. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  318. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  319. if ( spcldrug == "M" ) {
  320. cap_a6_clinccmtcnts.visible = true;
  321. rdo_a6_clinccmtcnts.visible = true;
  322. ipt_a6_clinccmtcnts.visible = true;
  323. if(prcpdayno >= 30){ //2.기타인 경우 input box에 clinccmtcnts의 값을 설정
  324. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){
  325. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", "2. 기타");
  326. model.setValue("/root/main/temp/clinccmtcnts", clinccmtcnts);
  327. }
  328. ipt_a6_clinccmtcnts.disabled = false;
  329. } else {
  330. ipt_a6_clinccmtcnts.disabled = true;
  331. }
  332. } else {
  333. cap_a6_clinccmtcnts.visible = false;
  334. rdo_a6_clinccmtcnts.visible = false;
  335. ipt_a6_clinccmtcnts.visible = false;
  336. }
  337. //예방주사 버튼 활성화 처방, 하드코드 25(05|08|00:예방주사 : 수동면역 - Antiserum, 05|08|01:예방주사 : 수동면역 - Human Immune Globulin, 05|08|02:예방주사 : 능동면역 - Toxoid & Vaccines
  338. var tempcol2 = model.getValue ( "/root/main/prcp/prcplist/tempcol2" );
  339. var earnclscd = opener.model.getValue ( "/root/initsrch/earnclsauto[earnclsflag='2' and earnclscd='" + tempcol2 + "']/earnclscd" );
  340. if ( !isNull(earnclscd)) {
  341. cap_a6_mealcalrcnts.visible = true;
  342. rdo_a6_mealcalrcnts.visible = true;
  343. } else {
  344. cap_a6_mealcalrcnts.visible = false;
  345. rdo_a6_mealcalrcnts.visible = false;
  346. } //예방주사 버튼 활성화 처방
  347. // 입력된 PRN 처방 사유와 횟수가 있으면 보여주되 하드코드 173번, 화면코드를 구분기준으로 한다. 2010-01-02 by LYJ
  348. if (model.getValue("/root/main/prcp/prcplist/prnprcpflag")=="Y" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ){
  349. ipt_a6_prcpdelivefact.disabled = true;
  350. cap_a6_prn.visible = true;
  351. cap_a6_prntime.visible = true;
  352. cap_a6_prnresncmt.visible = true;
  353. cap_a6_prnterm.visible = true;
  354. ipt_a6_prntime.visible = true;
  355. ipt_a6_prnresncmt.visible = true;
  356. ipt_a6_prnterm.visible = true;
  357. cob_a6_prnprcpresncd.visible = true;
  358. var sDrPrcpEtc6 = model.getValue("/root/main/prcp/prcplist/drprcpetc6");
  359. var SetPrnPrcpDetl = sDrPrcpEtc6.split("|");
  360. if ( SetPrnPrcpDetl.length >2){
  361. model.setValue("/root/main/temp/prntms", SetPrnPrcpDetl[0]);
  362. model.setValue("/root/main/temp/prnprcpresncd", SetPrnPrcpDetl[1]);
  363. model.setValue("/root/main/temp/prnresncmt", SetPrnPrcpDetl[2]);
  364. if(SetPrnPrcpDetl.length >3) {
  365. model.setValue("/root/main/temp/prnterm", SetPrnPrcpDetl[3]);
  366. } else {
  367. model.setValue("/root/main/temp/prnterm", "");
  368. }
  369. } else {
  370. model.setValue("/root/main/temp/prntms", "");
  371. model.setValue("/root/main/temp/prnprcpresncd", "");
  372. model.setValue("/root/main/temp/prnresncmt", "");
  373. model.setValue("/root/main/temp/prnterm", "");
  374. }
  375. } else {
  376. ipt_a6_prcpdelivefact.disabled = false;
  377. cap_a6_prn.visible = false;
  378. cap_a6_prntime.visible = false;
  379. cap_a6_prnresncmt.visible = false;
  380. cap_a6_prnterm.visible = false;
  381. ipt_a6_prntime.visible = false;
  382. ipt_a6_prnresncmt.visible = false;
  383. ipt_a6_prnterm.visible = false;
  384. cob_a6_prnprcpresncd.visible = false;
  385. model.setValue("/root/main/temp/prntms", "");
  386. model.setValue("/root/main/temp/prnprcpresncd", "");
  387. model.setValue("/root/main/temp/prnresncmt", "");
  388. model.setValue("/root/main/temp/prnterm", "");
  389. }
  390. //by sonjy 20091021 수가계산방법 4일때는 일수입력 불가 처리.변경요청번호 : 3667
  391. var calcmthdcd = getArrayData ( drugmastspec , 0, 26, "^", "|" );
  392. if( calcmthdcd == "4" ) {
  393. model.setValue(grd_a6_prcplist.nodeset + "/prcpdayno", "1");
  394. grd_a6_prcplist.colDisabled (grd_a6_prcplist.colRef("prcpdayno") ) = true;
  395. }else {
  396. grd_a6_prcplist.colDisabled (grd_a6_prcplist.colRef("prcpdayno") ) = false;
  397. }
  398. if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "E" || sPrcpGenrFlag == "D") { //외래, 응급, DSC 이면 prn처방 disable
  399. //원내처방사유 변경시 아니오를 선택할 경우 원래값으로 돌아가기 위해 전원내처방사유를 관리한다.
  400. //값은 원내처방사유가 변경될 때마다 같이 변경된다.
  401. model.setValue ( "/root/init/bfhosinprcpresncd", model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ));
  402. }
  403. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  404. grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("prnprcpflag")) = true;
  405. } else {
  406. grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("prnprcpflag")) = false;
  407. }
  408. var hosinhosoutflag = model.getValue("/root/main/prcp/prcplist/hosinhosoutflag");
  409. if ( hosinhosoutflag != "O" && sPrcpGenrFlag == "I" ) { // 입원은 원내/원외, 원내처방사유 disable
  410. rdo_a6_hosinhosoutflag1.disabled = true;
  411. rdo_a6_hosinhosoutflag2.disabled = true;
  412. grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("hosinprcpresncd")) = true;
  413. } else {
  414. rdo_a6_hosinhosoutflag1.disabled = false;
  415. rdo_a6_hosinhosoutflag2.disabled = false;
  416. grd_a6_prcplist.colDisabled(grd_a6_prcplist.colref("hosinprcpresncd")) = false;
  417. }
  418. } else if(prcpClsCd == "B2" || prcpClsCd == "B6") { // 진단검사 (검체검사), 핵의학 체내
  419. /**************************************************************************************************/
  420. // 진단검사 (검체검사), 핵의학 체내
  421. /**************************************************************************************************/
  422. model.toggle("B2");
  423. if(prcpClsCd == "B2") {
  424. prcpClsNm = "진단검사";
  425. } else {
  426. prcpClsNm = "핵의학체내";
  427. }
  428. if ( eval(model.getValue ( "/root/main/prcp/prcplist/diagtestconttestorgtims" ))>0 ) {
  429. model.setValue ( "/root/main/prcp/prcplist/prcptims", model.getValue ( "/root/main/prcp/prcplist/diagtestconttestorgtims" ));
  430. }
  431. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  432. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prnprcpflag")) = true;
  433. } else {
  434. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prnprcpflag")) = false;
  435. }
  436. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
  437. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  438. if(prcpsetcd != "-"){
  439. grd_b2_prcplist.colDisabled(grd_b2_prcplist.colRef("prcphopedd")) = true;
  440. } else {
  441. grd_b2_prcplist.colDisabled(grd_b2_prcplist.colRef("prcphopedd")) = false;
  442. }
  443. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("diagtestconttestintvlflag")) = false;
  444. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = false;
  445. btn_b2_diagtestconttestcdspec.disabled = false;
  446. var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec")+"^";
  447. if ( getArrayData (drugmastspec, 0, 5, "^", "|" ) == "N" ) {
  448. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("diagtestconttestintvlflag")) = true;
  449. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
  450. btn_b2_diagtestconttestcdspec.disabled = true;
  451. }
  452. if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" || model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
  453. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
  454. btn_b2_diagtestconttestcdspec.disabled = true;
  455. }
  456. } else if(prcpClsCd == "B4") { // 수혈
  457. /**************************************************************************************************/
  458. // 수혈
  459. /**************************************************************************************************/
  460. model.toggle("B4");
  461. prcpClsNm = "수혈";
  462. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정
  463. //2008. 07. 22 오지훈
  464. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  465. if(prcpsetcd != '-'){
  466. ipt_b4_prcphopedd.disabled = true;
  467. } else {
  468. ipt_b4_prcphopedd.disabled = false;
  469. }
  470. //irr 비활성화 병원별 적용(성가요청), cHc, 2009-07-21
  471. if ( opener.model.getValue("/root/initsrch/irrcheckyn/trgtcd") == "Y") {
  472. grd_b4_prcplist.isReadOnly(1, grd_b4_prcplist.colRef("irflag")) = true;
  473. } else {
  474. grd_b4_prcplist.isReadOnly(1, grd_b4_prcplist.colRef("irflag")) = false;
  475. }
  476. if ( sPrcpCd == "LBT25110" ) {
  477. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("erprcpflag")) = true;
  478. } else {
  479. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("erprcpflag")) = false;
  480. }
  481. if ( sPrcpCd == "LBT20440" || sPrcpCd == "LBT20640" ) {
  482. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("irflag")) = true;
  483. } else {
  484. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colRef("irflag")) = false;
  485. }
  486. rdo_b4_prepprcpflag1.disabled = false; //Prep
  487. rdo_b4_prepprcpflag2.disabled = false; //T/F
  488. if ( sPrcpGenrFlag == "O" || sPrcpGenrFlag == "S" ) { //외래
  489. rdo_b4_prepprcpflag2.value = "Y"; // T/F default로 Y
  490. rdo_b4_prepprcpflag1.value = "N";
  491. rdo_b4_prepprcpflag1.disabled = true; //Prep disabled
  492. } else { //입원, 응급, DSC
  493. var prcpkindcd = model.getValue ( "/root/main/prcp/prcplist/prcpkindcd" );
  494. if ( prcpkindcd == "70" || prcpkindcd == "90" || prcpkindcd == "95" ) {
  495. rdo_b4_prepprcpflag2.value = "Y"; // T/F default로 Y
  496. rdo_b4_prepprcpflag1.value = "N";
  497. rdo_b4_prepprcpflag1.disabled = true; //Prep disabled
  498. } else {
  499. rdo_b4_prepprcpflag2.value = "N";
  500. rdo_b4_prepprcpflag1.value = "Y"; // Prep default로 Y
  501. rdo_b4_prepprcpflag2.disabled = true; // T/F disabled
  502. }
  503. }
  504. if ( model.getValue ( "/root/main/prcp/prcplist/irflag" ) == "N" ) {
  505. rdo_b4_irpayflag.disabled = true;
  506. } else {
  507. rdo_b4_irpayflag.disabled = false;
  508. }
  509. var tnsuseflag = model.getValue("/root/main/prcp/prcplist/tnsuseflag");
  510. if ( isNull(tnsuseflag)) {
  511. model.setValue ( "/root/main/prcp/prcplist/tnsuseflag", 0 );
  512. }
  513. if ( sPrcpGenrFlag == "O" ) { //환자리스트에서 준 외래, 입원, 응급 구분
  514. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colref("tnsfiltflag")) = true;
  515. } else {
  516. grd_b4_prcplist.colDisabled(grd_b4_prcplist.colref("tnsfiltflag")) = false;
  517. }
  518. //수술예약일자, 시간 SETTING
  519. var prcphopedd = model.getValue ( "/root/main/prcp/prcplist/prcphopedd" );
  520. model.setValue ( "/root/main/prcp/prcplist/prcphopedd", prcphopedd.substring(0,8));
  521. if ( prcphopedd.length > 8 ) {
  522. model.setValue ( "/root/init/prcphopeddh", prcphopedd.substring(8,10));
  523. model.setValue ( "/root/init/prcphopeddm", prcphopedd.substring(10,12));
  524. } else {
  525. model.setValue("/root/init/prcphopeddh", "00");
  526. model.setValue("/root/init/prcphopeddm", "00");
  527. }
  528. if ( model.getValue ( "/root/main/prcp/prcplist/prepprcpflag") == "N") {
  529. ipt_b4_prcphopedd.disabled = false;
  530. ipt_b4_prcphopeddh.disabled = false;
  531. ipt_b4_prcphopeddm.disabled = false;
  532. }else{
  533. ipt_b4_prcphopedd.disabled = true;
  534. ipt_b4_prcphopeddh.disabled = true;
  535. ipt_b4_prcphopeddm.disabled = true;
  536. }
  537. } else if(prcpClsCd == "C2" || prcpClsCd == "C6" || prcpClsCd == "E2") { // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  538. /**************************************************************************************************/
  539. // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  540. /**************************************************************************************************/
  541. model.toggle("C2"); // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  542. if(prcpClsCd == "C6") {
  543. prcpClsNm = "핵의학영상";
  544. } else if(prcpClsCd == "E2") {
  545. prcpClsNm = "기능검사";
  546. }else {
  547. prcpClsNm = "영상";
  548. }
  549. if (fContainsHardCD("536", sPrcpCd)) { // 단순초음파 또는 유도초음파인경우 치료부위, 관련행위, 처방사유 입력 할수 있도록
  550. cap_c2_ultrasono.visible = true;
  551. cap_c2_rehbprcpcurepartcd.visible = true;
  552. cob_c2_rehbprcpcurepartcd.visible = true;
  553. cap_c2_drugmthdspccd.visible = true;
  554. cob_c2_drugmthdspccd.visible = true;
  555. cap_c2_exptmthdfact.visible = true;
  556. ipt_c2_exptmthdfact.visible = true;
  557. copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd3/M0047M0046", "replace", model, model);
  558. model.makeValue ( "/root/send/prcpcd", model.getValue("/root/main/prcp/prcplist/prcpcd") );
  559. submit ("TRMMO00162")
  560. } else {
  561. cap_c2_ultrasono.visible = false;
  562. cap_c2_rehbprcpcurepartcd.visible = false;
  563. cob_c2_rehbprcpcurepartcd.visible = false;
  564. cap_c2_drugmthdspccd.visible = false;
  565. cob_c2_drugmthdspccd.visible = false;
  566. cap_c2_exptmthdfact.visible = false;
  567. ipt_c2_exptmthdfact.visible = false;
  568. }
  569. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  570. grd_c2_prcplist.colDisabled (grd_c2_prcplist.colref("prnprcpflag")) = true;
  571. } else {
  572. grd_c2_prcplist.colDisabled (grd_c2_prcplist.colref("prnprcpflag")) = false;
  573. }
  574. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정
  575. //2008. 07. 22 오지훈
  576. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  577. if(prcpsetcd != "-"){
  578. grd_c2_prcplist.colDisabled(grd_c2_prcplist.colRef("prcphopedd")) = true;
  579. } else {
  580. grd_c2_prcplist.colDisabled(grd_c2_prcplist.colRef("prcphopedd")) = false;
  581. }
  582. } else if(prcpClsCd == "C4") { // angio
  583. /**************************************************************************************************/
  584. // angio
  585. /**************************************************************************************************/
  586. model.toggle("C4"); // angio
  587. prcpClsNm = "Angio";
  588. //처방필수입력구분 검사, angio구분 입력여부
  589. var prcpessninptflag = model.getValue("/root/main/prcp/prcplist/prcpessninptflag");
  590. if ( prcpessninptflag != 4 ) {
  591. grd_c4_prcplist.colDisabled(grd_c4_prcplist.colref("angioflagcd")) = true;
  592. } else {
  593. grd_c4_prcplist.colDisabled(grd_c4_prcplist.colref("angioflagcd")) = false;
  594. }
  595. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
  596. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  597. if(prcpsetcd != '-'){
  598. grd_c4_prcplist.colDisabled(grd_c4_prcplist.colRef("prcphopedd")) = true;
  599. } else {
  600. grd_c4_prcplist.colDisabled(grd_c4_prcplist.colRef("prcphopedd")) = false;
  601. }
  602. } else if(prcpClsCd == "D2") { // 병리
  603. /**************************************************************************************************/
  604. // 병리
  605. /**************************************************************************************************/
  606. model.toggle("D2"); // 병리
  607. prcpClsNm = "병리";
  608. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  609. grd_d2_prcplist.colDisabled (grd_d2_prcplist.colref("prnprcpflag")) = true;
  610. } else {
  611. grd_d2_prcplist.colDisabled (grd_d2_prcplist.colref("prnprcpflag")) = false;
  612. }
  613. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
  614. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  615. if(prcpsetcd != "-"){
  616. grd_d2_prcplist.colDisabled(grd_d2_prcplist.colRef("prcphopedd")) = true;
  617. } else {
  618. grd_d2_prcplist.colDisabled(grd_d2_prcplist.colRef("prcphopedd")) = false;
  619. }
  620. } else if(prcpClsCd == "F2") { // 재활
  621. /**************************************************************************************************/
  622. // 재활
  623. /**************************************************************************************************/
  624. model.toggle("F2"); // 재활
  625. prcpClsNm = "재활";
  626. if("HZ272" == model.getValue("/root/main/prcp/prcplist/prcpcd")) { // 온열암 고추파 처방일경우 치료부위, 치료위치, 치료빈도를 다르게 조회 한다.
  627. copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd2/M0044M0046", "replace", model, model);
  628. copyNodesetType("/root/init/prcpdirecflag", "/root/init/tempprcpdirecflag2/M0045M0041", "replace", model, model);
  629. copyNodesetType("/root/init/drugmthdspccdnm", "/root/init/tempdrugmthdspccdnm2/M0046M0045", "replace", model, model);
  630. } else {
  631. copyNodesetType("/root/init/drugspd", "/root/init/tempdrugspd1/M0041M0046", "replace", model, model);
  632. copyNodesetType("/root/init/prcpdirecflag", "/root/init/tempprcpdirecflag1/M0042M0041", "replace", model, model);
  633. copyNodesetType("/root/init/drugmthdspccdnm", "/root/init/tempdrugmthdspccdnm1/M0043M0045", "replace", model, model);
  634. }
  635. model.setValue ( "/root/send/cond1", "50" );
  636. model.setValue ( "/root/send/cond2", sPrcpCd);
  637. // 하드코드 조회 후 치료부위, 치료위치 활성화 여부 셋팅
  638. if (submit ("TRMMO00204")) {
  639. var trgtcdnm = model.getValue("/root/hardcode/hardcodelist/trgtcdnm");
  640. if ( trgtcdnm == "Y" || trgtcdnm == "O" ) {
  641. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = false;
  642. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = false;
  643. } else if (trgtcdnm == "N") {
  644. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = true;
  645. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = true;
  646. } else {
  647. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("rehbprcpcurepartcd")) = false;
  648. grd_f2_prcplist.colDisabled(grd_f2_prcplist.colRef("prcpdirecflag")) = false;
  649. }
  650. }
  651. } else if(prcpClsCd == "G2") { // RT
  652. /**************************************************************************************************/
  653. // RT
  654. /**************************************************************************************************/
  655. model.toggle("G2"); // RT
  656. prcpClsNm = "RT";
  657. if ( sPrcpGenrFlag == "O" && model.getValue("/root/main/prcp/prcplist/prcpkindcd") != "80" ) {
  658. grd_g2_prcplist.colDisabled (grd_g2_prcplist.colref("prnprcpflag")) = true;
  659. } else {
  660. grd_g2_prcplist.colDisabled (grd_g2_prcplist.colref("prnprcpflag")) = false;
  661. }
  662. //M-SET 자처방의 경우, 검사희망일(prcphopedd) disabled설정 2008. 07. 22 오지훈
  663. var prcpsetcd = model.getValue("/root/main/prcp/prcplist/prcpsetcd");
  664. if(prcpsetcd != "-"){
  665. grd_g2_prcplist.colDisabled(grd_g2_prcplist.colRef("prcphopedd")) = true;
  666. } else {
  667. grd_g2_prcplist.colDisabled(grd_g2_prcplist.colRef("prcphopedd")) = false;
  668. }
  669. } else if(prcpClsCd == "H2") { // 수술
  670. /**************************************************************************************************/
  671. // 수술
  672. /**************************************************************************************************/
  673. model.toggle("H2"); // 수술
  674. prcpClsNm = "수술";
  675. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  676. if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) { // 처방 필수 3:수술구분, 5:수술/치식 필수
  677. grd_h2_prcplist.colDisabled(grd_h2_prcplist.colref("opansflagcd")) = false;
  678. } else {
  679. model.setValue("/root/main/prcp/prcplist/opansflagcd", "-");
  680. grd_h2_prcplist.colDisabled(grd_h2_prcplist.colref("opansflagcd")) = true;
  681. }
  682. var operation = getGlobalVariable("operation");
  683. if(operation != null || operation != ""){
  684. setCSVToNode("/root/init/operation", operation);
  685. var opflagcd = model.getValue("/root/init/operation/list/opflagcd"); // opflagcd 1:정규, 2:응급, 3:추가
  686. if(opflagcd == "2"){
  687. model.setValue("/root/main/prcp/prcplist/erprcpflag", "Y");
  688. }
  689. var opfromtmcd = model.getValue("/root/init/operation/list/opfromtmcd"); //opfromtmcd 수술시작시간
  690. if(eval(opfromtmcd) > 180000){ //야간 시간 기준을 물어볼 것
  691. model.setValue("/root/main/prcp/prcplist/nigtprcpflag", "Y");
  692. }
  693. }
  694. } else if(prcpClsCd == "H4" || prcpClsCd == "Z0") { // 처치, 기타
  695. /**************************************************************************************************/
  696. // 처치, 기타
  697. /**************************************************************************************************/
  698. model.toggle("H4"); // 처치, 기타
  699. if(prcpClsCd == "H4") {
  700. prcpClsNm = "처치";
  701. } else if(prcpClsCd == "Z0") {
  702. prcpClsNm = "기타";
  703. }else {
  704. prcpClsNm = "";
  705. }
  706. if(sPrcpCd == "PE100") { // 신체억제대
  707. ipt_h4_prcpdelivefact.disabled = true;
  708. cap_h4_select.visible = true;
  709. } else {
  710. ipt_h4_prcpdelivefact.disabled = false;
  711. cap_h4_select.visible = false;
  712. }
  713. } else if(prcpClsCd == "I2" || prcpClsCd == "I4") { // 마취
  714. /**************************************************************************************************/
  715. // 마취
  716. /**************************************************************************************************/
  717. model.toggle("I2"); // 마취
  718. prcpClsNm = "마취";
  719. var ansttm = model.getValue ( "/root/main/prcp/prcplist/clinccmtcnts" );
  720. if ( !isNull(ansttm) && ansttm != "-" ) {
  721. var ansttm = ansttm + "^";
  722. var formtm = getArrayData (ansttm, 0, 0, "^", "|" );
  723. var totm = getArrayData (ansttm, 0, 1, "^", "|" );
  724. model.setValue ( "/root/ansttm/anstfromdd", formtm.substr ( 0, 8 ));
  725. model.setValue ( "/root/ansttm/anstfromh", formtm.substr ( 8, 2 ));
  726. model.setValue ( "/root/ansttm/anstfromm", formtm.substr ( 10, 2 ));
  727. model.setValue ( "/root/ansttm/ansttodd", totm.substr ( 0, 8 ));
  728. model.setValue ( "/root/ansttm/ansttoh", totm.substr ( 8, 2 ));
  729. model.setValue ( "/root/ansttm/ansttom", totm.substr ( 10, 2 ));
  730. } else {
  731. model.setValue ( "/root/ansttm/anstfromdd", getCurrentDate());
  732. model.setValue ( "/root/ansttm/anstfromh", "00");
  733. model.setValue ( "/root/ansttm/anstfromm", "00");
  734. model.setValue ( "/root/ansttm/ansttodd", getCurrentDate());
  735. model.setValue ( "/root/ansttm/ansttoh", "23");
  736. model.setValue ( "/root/ansttm/ansttom", "59");
  737. }
  738. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  739. if ( prcpessninptflag != 1 ) {//처방필수 입력구분이 마취시간일 경우는 마취시간을 체크한다.
  740. ipt_i2_anstfromdd.disabled = true;
  741. ipt_i2_anstfromh.disabled = true;
  742. ipt_i2_anstfromm.disabled = true;
  743. ipt_i2_ansttodd.disabled = true;
  744. ipt_i2_ansttoh.disabled = true;
  745. ipt_i2_ansttom.disabled = true;
  746. }
  747. } else if(prcpClsCd == "K2") { // 치과
  748. /**************************************************************************************************/
  749. // 치과
  750. /**************************************************************************************************/
  751. model.toggle("K2"); // 치과
  752. prcpClsNm = "치과";
  753. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  754. if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) { // 처방 필수 3:수술구분, 5:수술/치식 필수
  755. grd_k2_prcplist.colDisabled(grd_k2_prcplist.colref("opansflagcd")) = false;
  756. } else {
  757. model.setValue("/root/main/prcp/prcplist/opansflagcd", "-");
  758. grd_k2_prcplist.colDisabled(grd_k2_prcplist.colref("opansflagcd")) = true;
  759. }
  760. } else if(prcpClsCd == "M2") { // 재료
  761. /**************************************************************************************************/
  762. // 재료
  763. /**************************************************************************************************/
  764. model.toggle("M2"); // 재료
  765. prcpClsNm = "재료";
  766. var calcscormastspec = model.getValue ( "/root/main/prcp/prcplist/calcscormastspec" ) + "^";
  767. if ( getArrayData ( calcscormastspec, 0, 2, "^", "|" ) == "Y" ) {
  768. model.setValue ( "/root/send/cond1", model.getValue ( "/root/main/prcp/prcplist/prcpcd" ));
  769. model.setValue ( "/root/send/cond2", getUserInfo("dutplceinstcd"));
  770. submit ( "TRMMO13401" );
  771. }
  772. if ( !isNull(model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" )) && model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" ) != "-" && model.getValue ( "/root/main/prcp/prcplist/drprcpetc4" ) > 0 ) {
  773. model.setValue ( "/root/init/drprcpetc4", "Y" );
  774. } else {
  775. model.setValue ( "/root/init/drprcpetc4", "" );
  776. }
  777. } else {
  778. model.setValue("/root/cond/currow", 0);
  779. model.toggle("00"); // 디폴트
  780. }
  781. if(isNull(prcpClsNm)) {
  782. cap_title.text = "처방상세설정";
  783. } else {
  784. cap_title.text = "처방상세설정 [" + prcpClsNm + "] [" + sPrcpCd + " : " + sOrgPrcpNm + "]";
  785. }
  786. model.refresh();
  787. }
  788. /**
  789. * @desc : 그리드 값 변경
  790. * @
  791. * @param :
  792. * @return :
  793. * @author : 엄영만
  794. * @---------------------------------------------------
  795. */
  796. function fGridChanged(grdObj) {
  797. var curRow = model.getValue("/root/cond/currow");
  798. if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
  799. messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다.\n처방을 다시 선택 하시기 바랍니다.", "I" );
  800. fInitPage("00");
  801. return;
  802. }
  803. var sPrcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
  804. var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  805. var sPid = opener.model.getValue("/root/paminfo/list/pid");
  806. var sOrdDd = "";
  807. if(sPrcpGenrFlag == "I" || sPrcpGenrFlag == "D" || sPrcpGenrFlag == "E") {
  808. sOrdDd = opener.model.getValue("/root/paminfo/list/indd");
  809. } else {
  810. sOrdDd = opener.model.getValue("/root/paminfo/list/orddd");
  811. }
  812. /**************************************************************************************************/
  813. // 공통처리 (임상연구, 기왕증, DRG인정)
  814. /**************************************************************************************************/
  815. if (grdObj.col == grdObj.colRef("anamneflag")) {
  816. var clincstdyflag = grdObj.valueMatrix(1, grdObj.colRef("clincstdyflag"));
  817. if(clincstdyflag == "Y") {
  818. messageBox ( "기왕증은 임상연구와 동시에 선택 할 수", "I004" );
  819. grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
  820. return;
  821. }
  822. var anamneflag = grdObj.valueMatrix(1, grdObj.colRef("anamneflag"));
  823. if(sPrcpGenrFlag == "I" || sPrcpGenrFlag == "D" || sPrcpGenrFlag == "E"){
  824. if(anamneflag == "Y"){ //기왕증이 Y로 처리된 경우에만 보조유형선택 팝업 open
  825. var subcretno = fGetSubcretno(sPid, sOrdDd, "anamneflag");
  826. model.setValue("/root/main/prcp/prcplist/subcretno", subcretno);
  827. if(subcretno == "0"){
  828. messageBox ( "환자의 부유형이 없거나 또는 선택되지 않았습니다.", "I999" );
  829. grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
  830. }
  831. }else{ //기왕증이 N로 처리된 경우에는 subcretno 0로 처리
  832. model.setValue("/root/main/prcp/prcplist/subcretno", "0");
  833. }
  834. } else {
  835. messageBox ( "외래 환자는 기왕증을 선택 할 수", "I004" );
  836. grdObj.valueMatrix(1, grdObj.colRef("anamneflag")) = "N";
  837. }
  838. } else if ( grdObj.col == grdObj.colref("clincstdyflag")) {
  839. var anamneflag = grdObj.valueMatrix(1, grdObj.colRef("anamneflag"));
  840. if(anamneflag == "Y") {
  841. messageBox ( "임상연구는 기왕증과 동시에 선택 할 수", "I004" );
  842. grdObj.valueMatrix(1, grdObj.colRef("clincstdyflag")) = "N";
  843. return;
  844. }
  845. fSubcretnoSet("0", grdObj);
  846. } else if ( grdObj.col == grdObj.colref("drgacptflag")) {
  847. if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "A" ) { // PCA용 약제
  848. messageBox ( "급여구분이 '본인부담'으로 변경 됩니다.", "I" );
  849. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "1" );
  850. } else if ( model.getValue ( "/root/main/prcp/prcplist/drgacptflag" ) == "B" ) { // 미용성형
  851. messageBox ( "급여구분이 '비급여'로 변경 됩니다.", "I" );
  852. model.setValue ( "/root/main/prcp/prcplist/payflagcd", "2" );
  853. }
  854. }
  855. /**************************************************************************************************/
  856. // 처방 종류별 처리
  857. /**************************************************************************************************/
  858. if(sPrcpClsCd == "03") { // 식이 처방
  859. /**************************************************************************************************/
  860. // 식이 처방
  861. /**************************************************************************************************/
  862. } else if(sPrcpClsCd == "A2" || sPrcpClsCd == "A4" || sPrcpClsCd == "A6") { // 약 경구, 외용, 주사
  863. /**************************************************************************************************/
  864. // 약 경구, 외용, 주사
  865. /**************************************************************************************************/
  866. if ( grdObj.col == grdObj.colref("prnprcpflag")) {
  867. if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) == "Y" ) {
  868. //PRN 체크시 drugmastspec 의 34번째 컬럼으로 그 가능여부를 따져 블로킹 및 사유, 횟수를
  869. //입력받는 팝업을 띄워준다 . 2010-01-02 by LYJ
  870. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  871. var prnl = getArrayData ( drugmastspec, 0, 33, "^", "|" );
  872. if ( prnl == "N" && model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y" ){
  873. messageBox ( "PRN 지정이 불가능한 처방입니다." , "E" );
  874. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" )
  875. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  876. if(sPrcpClsCd == "A6") {
  877. ipt_a6_prcpdelivefact.disabled = false;
  878. cap_a6_prn.visible = false;
  879. cap_a6_prntime.visible = false;
  880. cap_a6_prnresncmt.visible = false;
  881. cap_a6_prnterm.visible = false;
  882. ipt_a6_prntime.visible = false;
  883. ipt_a6_prnresncmt.visible = false;
  884. ipt_a6_prnterm.visible = false;
  885. cob_a6_prnprcpresncd.visible = false;
  886. } else {
  887. ipt_a2_prcpdelivefact.disabled = true;
  888. cap_a2_prn.visible = false;
  889. cap_a2_prntime.visible = false;
  890. cap_a2_prnresncmt.visible = false;
  891. cap_a2_prnterm.visible = false;
  892. ipt_a2_prntime.visible = false;
  893. ipt_a2_prnresncmt.visible = false;
  894. ipt_a2_prnterm.visible = false;
  895. cob_a2_prnprcpresncd.visible = false;
  896. }
  897. } else if (prnl =="Y"){
  898. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
  899. //20090115 마정민 수정 PRN처방 1회만 되게 수정
  900. if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  901. messageBox ( "PRN 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
  902. var prcptims = model.getValue ("/root/main/prcp/prcplist/prcptims" );
  903. //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  904. var prcpqty = model.getValue ( "/root/main/prcp/prcplist/prcpqty" );
  905. var prcpvol = model.getValue ( "/root/main/prcp/prcplist/prcpvol" );
  906. if ( prcptims != "0" && model.getValue ( "/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) {
  907. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  908. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  909. model.setValue ( "/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  910. model.setValue ( "/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  911. }
  912. model.setValue ( "/root/main/prcp/prcplist/prcptims", "1" );
  913. if ( sPrcpClsCd == "A2" ) {
  914. fBaseMthd(1);
  915. }
  916. }
  917. // 하드코드 173번의 적용여부와 CP,항암프로토콜,처방메인의 구분을 위해 화면코드를 가져와 팝업 띄우기 여부를 결정한다. 2010-01-02 by LYJ
  918. if(model.getValue("/root/main/temp/prnuseyn/hardcd/hardcd")=="Y") {
  919. var xpt = window.screenleft + 50;
  920. var ypt = window.screenTop - 400;
  921. var coord = getRelativeCoordinate ( xpt, ypt );
  922. var mon = coord[0];
  923. xpt = coord[1];
  924. ypt = coord[2];
  925. modal("SPMMO19200",mon,xpt, ypt, "SPMMO19200", "/root/tmp/prnresncd", "/root/main/prcp/prcplist/prnresncd", "sysmenu:hidden;", false );
  926. var SPMMO19200_prnNum = getParameter("SPMMO19200_prnNum");
  927. var SPMMO19200_resncd = getParameter("SPMMO19200_resncd");
  928. var SPMMO19200_resncmt = getParameter("SPMMO19200_resncmt");
  929. var SPMMO19200_resnnm = getParameter("SPMMO19200_resnnm");
  930. var SPMMO19200_prnTerm = getParameter("SPMMO19200_prnTerm");
  931. var resnyn = getParameter("SPMMO19200_rtn1");
  932. if( resnyn == "N" ){
  933. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "N" );
  934. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  935. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6", "-" );
  936. if(sPrcpClsCd == "A6") {
  937. ipt_a6_prcpdelivefact.disabled = false;
  938. cap_a6_prn.visible = false;
  939. cap_a6_prntime.visible = false;
  940. cap_a6_prnresncmt.visible = false;
  941. cap_a6_prnterm.visible = false;
  942. ipt_a6_prntime.visible = false;
  943. ipt_a6_prnresncmt.visible = false;
  944. ipt_a6_prnterm.visible = false;
  945. cob_a6_prnprcpresncd.visible = false;
  946. } else {
  947. ipt_a2_prcpdelivefact.disabled = false;
  948. cap_a2_prn.visible = false;
  949. cap_a2_prntime.visible = false;
  950. cap_a2_prnresncmt.visible = false;
  951. cap_a2_prnterm.visible = false;
  952. ipt_a2_prntime.visible = false;
  953. ipt_a2_prnresncmt.visible = false;
  954. ipt_a2_prnterm.visible = false;
  955. cob_a2_prnprcpresncd.visible = false;
  956. }
  957. } else if (resnyn == "Y") {
  958. var Sprnprcpdtl = SPMMO19200_prnNum + "|" + SPMMO19200_resncd +"|" + SPMMO19200_resncmt + "|" + SPMMO19200_prnTerm;
  959. model.setValue ( "/root/main/prcp/prcplist/drprcpetc6" , Sprnprcpdtl);
  960. model.setValue ( "/root/main/prcp/prcplist/prnprcpflag" , "Y" );
  961. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "Y" );
  962. if(SPMMO19200_prnTerm == "") {
  963. model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt);
  964. }else {
  965. model.setValue ("/root/main/prcp/prcplist/prcpdelivefact", "PRN사유 : " + SPMMO19200_resnnm + " " + SPMMO19200_resncmt + ", PRN간격 : " + SPMMO19200_prnTerm);
  966. }
  967. model.setValue("/root/main/temp/prntms", SPMMO19200_prnNum);
  968. model.setValue("/root/main/temp/prnterm", SPMMO19200_prnTerm);
  969. model.setValue("/root/main/temp/prnresncmt", SPMMO19200_resncmt);
  970. model.setValue("/root/main/temp/prnprcpresncd", SPMMO19200_resncd);
  971. if(sPrcpClsCd == "A6") {
  972. ipt_a6_prcpdelivefact.disabled = true;
  973. cap_a6_prn.visible = true;
  974. cap_a6_prntime.visible = true;
  975. cap_a6_prnresncmt.visible = true;
  976. cap_a6_prnterm.visible = true;
  977. ipt_a6_prntime.visible = true;
  978. ipt_a6_prnresncmt.visible = true;
  979. ipt_a6_prnterm.visible = true;
  980. cob_a6_prnprcpresncd.visible = true;
  981. } else {
  982. ipt_a2_prcpdelivefact.disabled = true;
  983. cap_a2_prn.visible = true;
  984. cap_a2_prntime.visible = true;
  985. cap_a2_prnresncmt.visible = true;
  986. cap_a2_prnterm.visible = true;
  987. ipt_a2_prntime.visible = true;
  988. ipt_a2_prnresncmt.visible = true;
  989. ipt_a2_prnterm.visible = true;
  990. cob_a2_prnprcpresncd.visible = true;
  991. }
  992. }
  993. }
  994. }
  995. } else {
  996. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  997. if(sPrcpClsCd == "A6") {
  998. ipt_a6_prcpdelivefact.disabled = true;
  999. cap_a6_prn.visible = true;
  1000. cap_a6_prntime.visible = true;
  1001. cap_a6_prnresncmt.visible = true;
  1002. cap_a6_prnterm.visible = true;
  1003. ipt_a6_prntime.visible = true;
  1004. ipt_a6_prnresncmt.visible = true;
  1005. ipt_a6_prnterm.visible = true;
  1006. cob_a6_prnprcpresncd.visible = true;
  1007. } else {
  1008. ipt_a2_prcpdelivefact.disabled = true;
  1009. cap_a2_prn.visible = true;
  1010. cap_a2_prntime.visible = true;
  1011. cap_a2_prnresncmt.visible = true;
  1012. cap_a2_prnterm.visible = true;
  1013. ipt_a2_prntime.visible = true;
  1014. ipt_a2_prnresncmt.visible = true;
  1015. ipt_a2_prnterm.visible = true;
  1016. cob_a2_prnprcpresncd.visible = true;
  1017. }
  1018. }
  1019. } else if ( grdObj.col == grdObj.colref("hosinprcpresncd")) { //원내처방 사유를 선택해서 처방화면의 원내처방 사유랑 같은 것이 있으면 모두 그것으로 바꿈
  1020. if ( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "00" ) {
  1021. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  1022. } else {
  1023. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  1024. }
  1025. if ( opener.model.getValue ( "/root/usge" ) == "prcp" ) {
  1026. //약속처방, 지시처방에서는 되면 안됨
  1027. var hosinprcpresncd = model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" );
  1028. //by sonjy 20081016 원외요구 사유 처리
  1029. if( hosinprcpresncd == "90" ){
  1030. fChkHosInResnCd(grdObj);
  1031. return ;
  1032. }
  1033. var openerHosinprcpresncd = opener.model.getValue ( "/root/init/hosinprcpresncd/P0034[cdid='" + hosinprcpresncd + "']/cdid" );
  1034. if ( !isNull(openerHosinprcpresncd) && hosinprcpresncd != "00" ) {
  1035. if ( messageBox ( "모든 약,주사 처방에 같은 원내처방 사유를", "Q009" ) == "6" ) {
  1036. opener.model.setValue ( "/root/init/hosinprcpresncd", openerHosinprcpresncd );
  1037. fChngHosinPrcpResn("child", openerHosinprcpresncd);
  1038. opener.model.refresh();
  1039. } else {
  1040. //아니오를 선택할 경우 변경전 데이터로 돌린다.
  1041. var bfhosinprcpresncd = model.getValue ( "/root/init/bfhosinprcpresncd" );
  1042. if ( bfhosinprcpresncd == "00" ) {
  1043. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  1044. } else {
  1045. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  1046. }
  1047. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", bfhosinprcpresncd );
  1048. grdObj.rebuild();
  1049. return;
  1050. }
  1051. }
  1052. model.setValue ( "/root/init/bfhosinprcpresncd", hosinprcpresncd );
  1053. }
  1054. } else if ( grdObj.col == grdObj.colref("erprcpflag")) {
  1055. if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y") {
  1056. if (model.getValue ( "/root/main/prcp/prcplist/prcptims" ) != "1" ) {
  1057. messageBox ( "응급 처방의 횟수는 1만 가능합니다. 1회로 수정하겠습니다." , "E" );
  1058. var prcptims = model.getValue("/root/main/prcp/prcplist/prcptims" );
  1059. var prcpqty = model.getValue("/root/main/prcp/prcplist/prcpqty" );
  1060. var prcpvol = model.getValue("/root/main/prcp/prcplist/prcpvol" );
  1061. if ( prcptims != "0" && model.getValue("/root/main/prcp/prcplist/prcpclscd" ) == "A2" ) { //1이 아닌 경우는 1로 바꿔주고 경구약인 경우는 용법도 바꿔준다.
  1062. prcpqty = (eval(prcpqty)*1000/eval(prcptims));
  1063. prcpvol = (eval(prcpvol)*1000/eval(prcptims));
  1064. model.setValue ("/root/main/prcp/prcplist/prcpqty", Math.round ( prcpqty ) / 1000);
  1065. model.setValue ("/root/main/prcp/prcplist/prcpvol", Math.round ( prcpvol ) / 1000);
  1066. }
  1067. model.setValue("/root/main/prcp/prcplist/prcptims", "1" );
  1068. }
  1069. if ( sPrcpClsCd == "A2" ) { // 디폴트 용법 셋팅
  1070. fBaseMthd(1);
  1071. }
  1072. } else { //응급 체크 해제시 지금복용 용법에서 기본용법으로 변경
  1073. var prcptims = model.getValue("/root/main/prcp/prcplist/prcptims" );
  1074. fBaseMthd(prcptims);
  1075. }
  1076. } else if ( grdObj.col == grdObj.colref("powdflag") && model.getValue("/root/main/prcp/prcplist/powdflag" ) == "Y" ) {
  1077. //20090218 마정민 수정 산제불가, 산제주의시 대체처방
  1078. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec" );
  1079. var sPowdImpsi = getArrayData(drugmastspec + "^", 0, 19, "^", "|" ); // 산제불가 여부
  1080. if(sPowdImpsi == "1" || sPowdImpsi == "2" ) {
  1081. opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
  1082. if ( sPowdImpsi == "2" ) { //산제불가
  1083. opener.javascript.fAltDrug ( curRow, "4" );
  1084. } else if ( sPowdImpsi == "1" ) { //산제주의
  1085. opener.javascript.fAltDrug ( curRow, "4" );
  1086. }
  1087. //확인을 눌렀을 경우. 단 선택된 대체약이 있을 때만 SPMMB10100_chkyn = Y 처리해 준다.
  1088. if ( opener.javascript.getParameter ( "SPMMB10100_chkyn" ) == "Y" ) {
  1089. var addRow = opener.grd_prcplist.rows-2;
  1090. opener.javascript.fPrcpBuffer( 1, addRow, "/root/prcpdrag", "/root/main/prcp/prcplist" ); // 대체약 버퍼에 복사
  1091. opener.model.removenode ( "/root/main/prcp/prcplist[" + addRow + "]" ); // 대체약 삭제
  1092. opener.model.removenode ( "/root/main/prcp/prcplist[" + curRow + "]" ); // 기존약 삭제
  1093. opener.model.duplicate( "/root/main/prcp", "/root/prcpdrag/prcplist", "*[" + curRow + "]"); // 기존약을 대체약으로 변경
  1094. opener.model.setValue ( "/root/main/prcp/prcplist[" + curRow + "]/powdflag", "Y" )
  1095. opener.model.removeNodeset ( "/root/prcpdrag/prcplist" );
  1096. opener.javascript.makePrcpNm ( prcpNode, curRow );
  1097. opener.model.recalculate();
  1098. opener.model.refresh();
  1099. opener.grd_prcplist.row = curRow;
  1100. fInitPage("00");
  1101. return;
  1102. } else {
  1103. if (sPowdImpsi == "1") {
  1104. model.setValue("/root/main/prcp/prcplist/powdflag", "Y" );
  1105. } else {
  1106. model.setValue("/root/main/prcp/prcplist/powdflag", "N" );
  1107. }
  1108. }
  1109. opener.javascript.clearParameter ( "SPMMB10100_chkyn" );
  1110. }
  1111. }
  1112. } else if(sPrcpClsCd == "B2" || sPrcpClsCd == "B6") { // 진단검사 (검체검사), 핵의학 체내
  1113. /**************************************************************************************************/
  1114. // 진단검사 (검체검사), 핵의학 체내
  1115. /**************************************************************************************************/
  1116. if ( grdObj.col == grdObj.colref("diagtestconttestintvlflag")) {
  1117. fContTest();
  1118. } else if ( grdObj.col == grdObj.colref("prcptims") ) {
  1119. if ( model.getValue ( "/root/main/prcp/prcplist/prcptims" ) == "1" ) {
  1120. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag", "N" ) ;
  1121. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
  1122. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
  1123. } else {
  1124. fContTest();
  1125. }
  1126. } else if( grdObj.col == grdObj.colRef("choiordflag") ){
  1127. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1128. if(choiordflag == "Y"){
  1129. btn_b2_specdrid.dispatch("DOMActivate");
  1130. }else{
  1131. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1132. }
  1133. } else if ( grdObj.col == grdObj.colref("erprcpflag")) {
  1134. if ( model.getValue ( "/root/main/prcp/prcplist/erprcpflag" ) == "Y" ) {
  1135. var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" );
  1136. if ( getArrayData ( drugmastspec + "^", 0, 8, "^", "|" ) == "N" ) {
  1137. messageBox ( "응급이 불가한 처방입니다.", "E" );
  1138. model.setValue ( "/root/main/prcp/prcplist/erprcpflag", "N" );
  1139. }
  1140. }
  1141. } else if ( grdObj.col == grdObj.colref("prnprcpflag")) { //prn check 시 tempprcpflag 처리 부분 by sonjy 20100302
  1142. if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) != "Y" ) {
  1143. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  1144. }
  1145. }
  1146. } else if(sPrcpClsCd == "B4") { // 수혈
  1147. /**************************************************************************************************/
  1148. // 수혈
  1149. /**************************************************************************************************/
  1150. if ( grdObj.col == grdObj.colRef("prcpqty") ) {
  1151. DrugCalc ( "prcpqty" , grdObj.row);
  1152. } else if ( grdObj.col == grdObj.colRef("irflag") ) {
  1153. if ( model.getValue ( "/root/main/prcp/prcplist/irflag" ) == "N" ) {
  1154. model.setValue ( "/root/main/prcp/prcplist/irpayflag", "N" );
  1155. rdo_b4_irpayflag.disabled = true;
  1156. } else {
  1157. model.setValue ( "/root/main/prcp/prcplist/irpayflag", "0" );
  1158. rdo_b4_irpayflag.disabled = false;
  1159. }
  1160. }
  1161. } else if(sPrcpClsCd == "C2" || sPrcpClsCd == "C6" || sPrcpClsCd == "E2") { // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  1162. /**************************************************************************************************/
  1163. // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  1164. /**************************************************************************************************/
  1165. if(grdObj.col == grdObj.colRef("choiordflag")){
  1166. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1167. if(choiordflag == "N"){
  1168. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1169. }else{
  1170. btn_c2_specdrid.dispatch("DOMActivate");
  1171. }
  1172. }
  1173. } else if(sPrcpClsCd == "C4") {// angio
  1174. /**************************************************************************************************/
  1175. // angio
  1176. /**************************************************************************************************/
  1177. if ( grdObj.col == grdObj.colRef("angioflagcd") ) {
  1178. model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1, grdObj.colRef("angioflagcd")));
  1179. } else if( grdObj.col == grdObj.colRef("choiordflag")){
  1180. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1181. if(choiordflag == "Y"){
  1182. btn_c4_specdrid.dispatch("DOMActivate");
  1183. }else{
  1184. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1185. }
  1186. }
  1187. } else if(sPrcpClsCd == "D2") { // 병리
  1188. /**************************************************************************************************/
  1189. // 병리
  1190. /**************************************************************************************************/
  1191. if(grdObj.col == grdObj.colRef("choiordflag")){
  1192. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1193. if(choiordflag == "Y"){
  1194. btn_d2_specdrid.dispatch("DOMActivate");
  1195. }else{
  1196. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1197. }
  1198. }
  1199. } else if(sPrcpClsCd == "F2") { // 재활
  1200. /**************************************************************************************************/
  1201. // 재활
  1202. /**************************************************************************************************/
  1203. if(grdObj.col == grdObj.colRef("choiordflag")){
  1204. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1205. if(choiordflag == "Y"){
  1206. btn_f2_specdrid.dispatch("DOMActivate");
  1207. }else{
  1208. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1209. }
  1210. } else if(grdObj.col == grdObj.colRef("rehbprcpenddd")){
  1211. if (model.getValue ( "/root/main/prcp/prcplist/rehbprcpenddd" ) < getCurrentDate()){
  1212. messageBox ( "마감일이 현재보다 과거일 수 없습니다.", "I" );
  1213. model.setValue("/root/main/prcp/prcplist/rehbprcpenddd","-");
  1214. }
  1215. }
  1216. } else if(sPrcpClsCd == "G2") { // RT
  1217. /**************************************************************************************************/
  1218. // RT
  1219. /**************************************************************************************************/
  1220. if(grdObj.col == grdObj.colRef("choiordflag")){
  1221. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1222. if(choiordflag == "Y"){
  1223. btn_g2_specdrid.dispatch("DOMActivate");
  1224. }else{
  1225. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1226. }
  1227. } else if(grdObj.col == grdObj.colref("prnprcpflag")) {
  1228. if ( model.getValue ( "/root/main/prcp/prcplist/prnprcpflag" ) != "Y" ) { //prn check 시 tempprcpflag 처리 부분 by sonjy 20100302
  1229. model.setValue ( "/root/main/prcp/prcplist/tempprcpflag", "N" );
  1230. }
  1231. }
  1232. } else if(sPrcpClsCd == "H2") { // 수술
  1233. /**************************************************************************************************/
  1234. // 수술
  1235. /**************************************************************************************************/
  1236. if ( grdObj.col == grdObj.colRef("choiordflag")){ //선택진료의 클릭시
  1237. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1238. if(choiordflag == "Y"){
  1239. btn_h2_specdrid.dispatch("DOMActivate");
  1240. }else{
  1241. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1242. }
  1243. } else if ( grdObj.col == grdObj.colRef("erprcpflag")){ //응급컬럼 클릭시
  1244. var node = model.instances(0).selectSingleNode("/root/init/operation/list/opflagcd");
  1245. if(node != null){
  1246. model.setFocus(grdObj);
  1247. var opflagcd = model.getValue("/root/init/operation/list/opflagcd");
  1248. var erprcpflag = model.getValue("/root/main/prcp/prcplist/erprcpflag");
  1249. if(opflagcd == "1" && erprcpflag == "Y"){ //수술이 정규인 경우, 응급을 클릭하면 error!!
  1250. messageBox("정규 수술은 응급을 선택", "E001");
  1251. model.setValue("/root/main/prcp/prcplist/erprcpflag", "N");
  1252. model.refresh();
  1253. return;
  1254. }
  1255. }
  1256. }
  1257. } else if(sPrcpClsCd == "H4" || sPrcpClsCd == "Z0") { // 처치, 기타
  1258. /**************************************************************************************************/
  1259. // 처치, 기타
  1260. /**************************************************************************************************/
  1261. if(grdObj.col == grdObj.colRef("choiordflag")){
  1262. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1263. if(choiordflag == "Y"){
  1264. btn_h4_specdrid.dispatch("DOMActivate");
  1265. }else{
  1266. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1267. }
  1268. }
  1269. } else if(sPrcpClsCd == "I2" || sPrcpClsCd == "I4") { // 마취
  1270. /**************************************************************************************************/
  1271. // 마취
  1272. /**************************************************************************************************/
  1273. if(grdObj.col == grdObj.colRef("choiordflag")){
  1274. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1275. if(choiordflag == "Y"){
  1276. btn_i2_specdrid.dispatch("DOMActivate");
  1277. }else{
  1278. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1279. model.refresh();
  1280. }
  1281. }
  1282. } else if(sPrcpClsCd == "K2") { // 치과
  1283. /**************************************************************************************************/
  1284. // 치과
  1285. /**************************************************************************************************/
  1286. if(grdObj.col == grdObj.colRef("opansflagcd")){
  1287. model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1,grdObj.colRef("opansflagcd")));
  1288. } else if(grdObj.col == grdObj.colRef("choiordflag")){
  1289. var choiordflag = model.getValue("/root/main/prcp/prcplist/choiordflag");
  1290. if(choiordflag == "Y"){
  1291. btn_k2_specdrid.dispatch("DOMActivate");
  1292. }else{
  1293. model.setValue("/root/main/prcp/prcplist/specdrid", "");
  1294. }
  1295. }
  1296. } else if(sPrcpClsCd == "M2") {
  1297. /**************************************************************************************************/
  1298. // 재료
  1299. /**************************************************************************************************/
  1300. if ( grdObj.col == grdObj.colref("matrallsizespecid")) {
  1301. model.setValue ( "/root/main/prcp/prcplist/tempcol1", grdObj.labelMatrix (1,grdObj.colref("matrallsizespecid")));
  1302. }else if ( grdObj.col == grdObj.colref("erprcpflag")) {
  1303. var erprcpflag = grdObj.valueMatrix(1, grdObj.colRef("erprcpflag"));
  1304. if(getUserInfo("dutplceinstcd") == "031" && erprcpflag == "Y") { // 본원 재료 처방 응급 불가 하도록 수정. 공급실 채선자 요청 2012.05.08 엄영만
  1305. messageBox ( "재료처방은 응급을 선택 할 수 없습니다.\n\n응급분출이 필요할 경우 처방 입력 후\n진료재료파트에 선불출을 요청 하십시오.", "I999" );
  1306. grdObj.valueMatrix(1, grdObj.colRef("erprcpflag")) = "N";
  1307. return;
  1308. }
  1309. } else if ( grdObj.col == grdObj.colref("prcpqty")) {
  1310. DrugCalc ( "prcpqty", grdObj.row );
  1311. }
  1312. } else { // 디폴트
  1313. }
  1314. model.refresh();
  1315. }
  1316. /**
  1317. * @desc : 그리드 더블클릭
  1318. * @
  1319. * @param :
  1320. * @return :
  1321. * @author : 엄영만
  1322. * @---------------------------------------------------
  1323. */
  1324. function fGridDbClick(grdObj) {
  1325. var curRow = model.getValue("/root/cond/currow");
  1326. if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
  1327. messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다. \n처방을 다시 선택 하시기 바랍니다.", "I" );
  1328. fInitPage("00");
  1329. return;
  1330. }
  1331. var bIsChanged = false; // 값 변경 여부 변경 되었을때만 반영하기 위해 추가
  1332. var prcpNode = "/root/main/prcp/prcplist";
  1333. if ( grdObj.col == grdObj.colRef("tootfact")) {
  1334. //처방 치식 setting 시작
  1335. var prcpNm = "";
  1336. var tootFact = "";
  1337. var sPrcpStr = "prcpcd▦tootfact▦rtntootfact▦rowcnt▩";
  1338. prcpNm = model.getValue("/root/main/prcp/prcplist/prcpcd") + "▦▦";
  1339. tootFact = model.getValue("/root/main/prcp/prcplist/tootfact") + "▦1▩";
  1340. sPrcpStr = sPrcpStr + prcpNm + tootFact;
  1341. setParameter("param_prcplist", sPrcpStr);
  1342. var sDiagStr = "diagcd▦tootfact▦rtntootfact▦rowcnt▩";
  1343. setParameter("param_diaglist", sDiagStr);
  1344. modal ("SPMMO10500");
  1345. if ( getParameter("rtn_useyn") == "Y" ) {
  1346. var prow = 0;
  1347. var ptootfact = "";
  1348. var drow = 0;
  1349. var dtootfact = "";
  1350. var prcplen = getParameter("rtn_prcptootfact").split("▩").length;
  1351. for ( var i=1; i < prcplen-1; i++ ) {
  1352. prow = getArrayData (getParameter("rtn_prcptootfact"), i, 3, "▩", "▦" ); //치식이 입력될 row
  1353. ptootfact = getArrayData (getParameter("rtn_prcptootfact"), i, 2, "▩", "▦" )//치식
  1354. model.setValue ( "/root/main/prcp/prcplist/tootfact", ptootfact);
  1355. bIsChanged = true;
  1356. }
  1357. }
  1358. }
  1359. if(bIsChanged) {
  1360. model.refresh();
  1361. fPrcpSetting();
  1362. }
  1363. }
  1364. /**
  1365. * @desc : 처방 상세 정보 설정
  1366. * @
  1367. * @param :
  1368. * @return :
  1369. * @author : 엄영만
  1370. * @---------------------------------------------------
  1371. */
  1372. function fPrcpSetting() {
  1373. var curRow = model.getValue("/root/cond/currow");
  1374. if(curRow == 0) { return; }
  1375. if(opener.model.getValue ("/root/main/prcp/prcplist[" + curRow + "]/prcpcd") != model.getValue ("/root/main/prcp/prcplist/prcpcd") ) {
  1376. messageBox ( "해당처방이 처방화면에서 삭제 또는 순서가 변경 되었습니다. \n 처방을 다시 선택 하시기 바랍니다.", "I" );
  1377. fInitPage("00");
  1378. return;
  1379. }
  1380. var prcpClsCd = model.getValue ("/root/main/prcp/prcplist/prcpclscd");
  1381. if(prcpClsCd == "") { return; }
  1382. if(!fCheckValidation(prcpClsCd)) { return; }
  1383. if ( opener.model.instances(0).selectNodes ("/root/prcptemp/prcplist").length == 0 ) { return; }
  1384. opener.javascript.fPrcpDetlApp( prcpClsCd, "/root/prcptemp/prcplist", "/root/main/prcp", curRow );
  1385. //M-SET 모처방인 경우, prcphopedd를 자처방에 동일하게 적용
  1386. //2008. 07. 22 오지훈
  1387. var prcpSetCd = model.getValue ("/root/main/prcp/prcplist/prcpsetcd" );
  1388. var inclPrcpNo = model.getValue ("/root/main/prcp/prcplist/inclprcpno" );
  1389. var prcpHopeDD = model.getValue ("/root/main/prcp/prcplist/prcphopedd" );
  1390. if(prcpSetCd == "-" && inclPrcpNo > 0){ //모처방인 경우, prcphopedd
  1391. for(var i = 1; i <= opener.grd_prcplist.rows; i++){
  1392. if(inclPrcpNo == opener.model.getValue ("/root/main/prcp/prcplist[" + i + "]/inclprcpno")){
  1393. opener.model.setValue("/root/main/prcp/prcplist[" + i + "]/prcphopedd", prcpHopeDD);
  1394. }
  1395. }
  1396. }
  1397. opener.model.recalculate();
  1398. model.refresh();
  1399. }
  1400. /**
  1401. * @desc : 처방종류별 값 유효성 체크
  1402. * @
  1403. * @param :
  1404. * @return :
  1405. * @author : 엄영만
  1406. * @---------------------------------------------------
  1407. */
  1408. function fCheckValidation(prcpClsCd) {
  1409. var bRtn = true;
  1410. var sPrcpGenrFlag = opener.model.getValue("/root/patflag/list/prcpgenrflag");
  1411. var sPid = opener.model.getValue("/root/paminfo/list/pid");
  1412. var sIndd = opener.model.getValue("/root/paminfo/list/indd");
  1413. if(prcpClsCd == "03") {
  1414. /**************************************************************************************************/
  1415. // 식이
  1416. /**************************************************************************************************/
  1417. opener.javascript.clearParameter ( "SPMMO01700_chkcnt" )
  1418. var cnt = 0;
  1419. var drugmastspec = model.getValue ( "/root/main/prcp/prcplist/drugmastspec" ) +"▩";
  1420. var calcond = getArrayData (drugmastspec, 0, 0, "▩", "|" );
  1421. if ( calcond == "2" ) {
  1422. if ( model.getValue ( "/root/main/prcp/prcplist/mealcalrcnts" ) == "0" ) {
  1423. messageBox ( "선택된 열량값이", "I004" );
  1424. bRtn = false;
  1425. }
  1426. } else if ( calcond == "3" ) {
  1427. if ( model.getValue ( "/root/main/prcp/prcplist/mealcalrcnts" ) == "0" ) {
  1428. messageBox ( "선택된 용량값이", "I004" );
  1429. bRtn = false;
  1430. }
  1431. }
  1432. var mealprotcntscond = getArrayData (drugmastspec, 0, 3, "▩", "|" );
  1433. if ( mealprotcntscond == "Y" ) {
  1434. if ( model.getValue ( "/root/main/prcp/prcplist/mealprotcnts" ) == "0" ) {
  1435. messageBox ( "선택된 횟수값이", "I004" );
  1436. bRtn = false;
  1437. }
  1438. }
  1439. model.setValue ( "/root/main/prcp/prcplist/tempcol1" , grd_prcpdetl1.valueMatrix ( 0, 4 ));
  1440. if ( model.getValue ( "/root/diet1" ) == "Y" ) {
  1441. cnt++;
  1442. }
  1443. if ( model.getValue ( "/root/diet2" ) == "Y" ) {
  1444. cnt++;
  1445. }
  1446. if ( model.getValue ( "/root/diet3" ) == "Y" ) {
  1447. cnt++;
  1448. }
  1449. if ( cnt == 0 ) {
  1450. messageBox ( "선택된 식이구분(조식,중식,석식,전체)이", "I004" );
  1451. bRtn = false;
  1452. } else {
  1453. opener.javascript.setParameter ( "SPMMO01700_chkcnt", cnt );
  1454. }
  1455. if(bRtn) {
  1456. model.setValue ( "/root/main/prcp/prcplist/tempcol9", "" );
  1457. if ( model.getValue ( "/root/diet1" ) == "Y" ) {
  1458. model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "1" );
  1459. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  1460. }
  1461. if ( model.getValue ( "/root/diet2" ) == "Y" ) {
  1462. model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "2" );
  1463. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  1464. }
  1465. if ( model.getValue ( "/root/diet3" ) == "Y" ) {
  1466. model.setValue( "/root/main/prcp/prcplist/dietprcpgenrflag", "3" );
  1467. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  1468. }
  1469. }
  1470. } else if(prcpClsCd == "A2" || prcpClsCd == "A4" || prcpClsCd == "A6") {
  1471. /**************************************************************************************************/
  1472. // 약 경구, 외용, 주사
  1473. /**************************************************************************************************/
  1474. //마약처방인 경우, 사유 전달, 2008. 06. 12 오지훈
  1475. var drugmastspec = model.getValue("/root/main/prcp/prcplist/drugmastspec");
  1476. var prcpdayno = model.getValue("/root/main/prcp/prcplist/prcpdayno");
  1477. var spcldrug = getArrayData ( drugmastspec, 0, 23, "^", "|" );
  1478. if ( spcldrug == "M" && prcpdayno >= 30) {
  1479. var clinccmtcnts = "";
  1480. if(prcpClsCd == "A6") {
  1481. clinccmtcnts = rdo_a6_clinccmtcnts.value;
  1482. } else {
  1483. clinccmtcnts = rdo_a2_clinccmtcnts.value;
  1484. }
  1485. if(clinccmtcnts == "-"){
  1486. messageBox("30일 이상의 마약처방 사유를", "C002");
  1487. bRtn = false;
  1488. }
  1489. if(clinccmtcnts == "2. 기타" && (model.getValue("/root/main/temp/clinccmtcnts")=="" || model.getValue("/root/main/temp/clinccmtcnts")=="-")){
  1490. messageBox("30일 이상의 마약처방 사유를", "C001");
  1491. bRtn = false;
  1492. }else{
  1493. if(clinccmtcnts != "1. 다음 진료일까지의 기간이 30일 초과"){ //1. 다음 진료일까지의 기간이 30일 초가 선택
  1494. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", model.getValue("/root/main/temp/clinccmtcnts"));
  1495. }
  1496. }
  1497. }
  1498. } else if(prcpClsCd == "B2" || prcpClsCd == "B6") {
  1499. /**************************************************************************************************/
  1500. // 진단검사 (검체검사), 핵의학 체내
  1501. /**************************************************************************************************/
  1502. if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) != "N" ) {
  1503. if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec" ) == "-" ) {
  1504. messageBox ( "입력된 연속검사값이", "I004" );
  1505. bRtn = false;
  1506. }
  1507. }
  1508. if(bRtn) {
  1509. model.setValue ( "/root/main/prcp/prcplist/mealcalrcnts", model.getValue ( "/root/main/prcp/prcplist/prcptims" ));
  1510. }
  1511. } else if(prcpClsCd == "B4") {
  1512. /**************************************************************************************************/
  1513. // 수혈
  1514. /**************************************************************************************************/
  1515. //수혈적응증
  1516. var prcphopedd = model.getValue ( "/root/main/prcp/prcplist/prcphopedd").substring(0,8);
  1517. var prcphopeddh = model.getValue ( "/root/init/prcphopeddh" );
  1518. var prcphopeddm = model.getValue ( "/root/init/prcphopeddm" );
  1519. if (!isValidDateTime ( prcphopedd, "YYYYMMDD")) {
  1520. messageBox ( "수혈예정일시가", "E016" );
  1521. bRtn = false;
  1522. }
  1523. if ( eval(prcphopeddh) >= 24 ) {
  1524. messageBox ( "수혈예정시간이", "E016" );
  1525. bRtn = false;
  1526. }
  1527. if ( eval(prcphopeddm) >= 60 ) {
  1528. messageBox ( "수혈예정분이", "E016" );
  1529. bRtn = false;
  1530. }
  1531. if(bRtn) {
  1532. prcphopeddh = prcphopeddh.toString().getLeftPad ( 2, "0" );
  1533. prcphopeddm = prcphopeddm.toString().getLeftPad ( 2, "0" );
  1534. model.setValue ( "/root/main/prcp/prcplist/prcphopedd", prcphopedd + prcphopeddh + prcphopeddm + "00" );
  1535. }
  1536. } else if(prcpClsCd == "C2" || prcpClsCd == "C6" || prcpClsCd == "E2") {
  1537. /**************************************************************************************************/
  1538. // 방사선 검사(기능검사, 내시경,천자,생검, 방사선, 핵의학영상)
  1539. /**************************************************************************************************/
  1540. var ck = model.getValue ( "/root/main/prcp/prcplist/tempcol2").substring ( 0, 2 );
  1541. if (ck=="19"||ck=="20"||ck=="21"||ck=="22"||ck=="23"||ck=="24"||ck=="25"||ck=="26" || model.getValue ( "/root/main/prcp/prcplist/tempcol2") == "18|02|06" || model.getValue ( "/root/main/prcp/prcplist/tempcol2") == "09|01|04") {
  1542. var clinccmtcnts = model.getValue ( "/root/main/prcp/prcplist/clinccmtcnts" );
  1543. var prcpdelivefact = model.getValue( "/root/main/prcp/prcplist/prcpdelivefact" );
  1544. if ((clinccmtcnts == "" || clinccmtcnts == "-") && (prcpdelivefact == "" || prcpdelivefact == "-")) {
  1545. messageBox ( "임상소견이나 전달사항이", "E014" );
  1546. bRtn = false;
  1547. }
  1548. }
  1549. } else if(prcpClsCd == "C4") {
  1550. /**************************************************************************************************/
  1551. // angio
  1552. /**************************************************************************************************/
  1553. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  1554. if ( prcpessninptflag ==4) {
  1555. if ( model.getValue ( "/root/main/prcp/prcplist/angioflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/angioflagcd" ))) {
  1556. messageBox ( "Angio 구분이 입력되지" , "E007" );
  1557. bRtn = false;
  1558. }
  1559. }
  1560. } else if(prcpClsCd == "D2") {
  1561. /**************************************************************************************************/
  1562. // 병리
  1563. /**************************************************************************************************/
  1564. bRtn = true;
  1565. } else if(prcpClsCd == "F2") {
  1566. /**************************************************************************************************/
  1567. // 재활
  1568. /**************************************************************************************************/
  1569. var trgtcdnm = model.getValue("/root/hardcode/hardcodelist/trgtcdnm");
  1570. if (trgtcdnm == "Y") {
  1571. if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurepartcd" ) == "-" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurepartcd" ))) {
  1572. messageBox ( "치료부위가", "E014" );
  1573. bRtn = false;
  1574. }
  1575. if ( model.getValue ( "/root/main/prcp/prcplist/prcpdirecflag" ) == "-" || isNull ( model.getValue ( "/root/main/prcp/prcplist/prcpdirecflag" ))) {
  1576. messageBox ( "치료위치가", "E014" );
  1577. bRtn = false;
  1578. }
  1579. if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
  1580. messageBox ( "치료빈도가", "E014" );
  1581. bRtn = false;
  1582. }
  1583. } else if (trgtcdnm == "N") {
  1584. if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
  1585. messageBox ( "치료빈도가", "E014" );
  1586. bRtn = false;
  1587. }
  1588. } else {
  1589. if ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ) == "0" || isNull ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpcurefreqflag" ))) {
  1590. messageBox ( "치료빈도가", "E014" );
  1591. bRtn = false;
  1592. }
  1593. }
  1594. if ( !isValidDateTime ( model.getValue ( "/root/main/prcp/prcplist/rehbprcpenddd" ), "YYYYMMDD")) {
  1595. messageBox ( "마감일이 유효한 날짜가 아닙니다.", "E" );
  1596. bRtn = false;
  1597. }
  1598. if(bRtn) {
  1599. model.setValue ( "/root/main/prcp/prcplist/tempcol1", grd_f2_prcplist.labelMatrix ( 1, grd_f2_prcplist.colRef("rehbprcpcurepartcd") ));
  1600. }
  1601. } else if(prcpClsCd == "G2") {
  1602. /**************************************************************************************************/
  1603. // RT
  1604. /**************************************************************************************************/
  1605. bRtn = true;
  1606. } else if(prcpClsCd == "H2") {
  1607. /**************************************************************************************************/
  1608. // 수술
  1609. /**************************************************************************************************/
  1610. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  1611. if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) {
  1612. if ( model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ))) {
  1613. messageBox ( "수술유형이 입력되지" , "E007" );
  1614. bRtn = false;
  1615. }
  1616. }
  1617. if(bRtn) {
  1618. model.setValue ( "/root/main/prcp/prcplist/tempcol1", grd_h2_prcplist.labelMatrix ( 1, grd_h2_prcplist.colRef("opansflagcd") ));
  1619. }
  1620. } else if(prcpClsCd == "H4" || prcpClsCd == "Z0") {
  1621. /**************************************************************************************************/
  1622. // 처치, 기타
  1623. /**************************************************************************************************/
  1624. var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  1625. if(sPrcpCd == "PE100" ) {// 신체억제대
  1626. var sPrcpDeliveFact = model.getValue("/root/main/prcp/prcplist/prcpdelivefact");
  1627. if (sPrcpDeliveFact == "" || sPrcpDeliveFact =="-") {
  1628. messageBox ( "전달사항을 반드시 입력해야 합니다.", "E" );
  1629. bRtn = false;
  1630. }
  1631. } else {
  1632. bRtn = true;
  1633. }
  1634. } else if(prcpClsCd == "I2" || prcpClsCd == "I4") {
  1635. /**************************************************************************************************/
  1636. // 마취
  1637. /**************************************************************************************************/
  1638. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  1639. if ( prcpessninptflag == 1 ) {//처방필수 입력구분이 마취시간일 경우는 마취시간을 체크한다.
  1640. var earncls = model.getValue ( "/root/main/prcp/prcplist/tempcol2" );
  1641. if ( earncls != "04|01|00" && earncls != "05|01|00" ) {
  1642. var opansflagcd = model.getValue ( "/root/main/prcp/prcplist/opansflagcd" );
  1643. if ( opansflagcd == "-" ) {
  1644. messageBox ( "마취구분이","I004" );
  1645. bRtn = false;
  1646. }
  1647. }
  1648. var fromdd = model.getValue ( "/root/ansttm/anstfromdd" );
  1649. var todd = model.getValue ( "/root/ansttm/ansttodd" );
  1650. if ( eval(fromdd) > eval(todd) ) {
  1651. messageBox ( "시작일이 종료일 보다 클수", "I004" );
  1652. bRtn = false;
  1653. }
  1654. var fromh = model.getValue ( "/root/ansttm/anstfromh" );
  1655. var formm = model.getValue ( "/root/ansttm/anstfromm" );
  1656. var tomh = model.getValue ( "/root/ansttm/ansttoh" );
  1657. var totim = model.getValue ( "/root/ansttm/ansttom" );
  1658. if (isNull(fromh)) {
  1659. messageBox ( "시작시간을 입력해 주십시오.", "E" );
  1660. model.setfocus( "ipt_i2_anstfromh" );
  1661. bRtn = false;
  1662. }
  1663. if (isNull(formm)) {
  1664. messageBox ( "시작분을 입력해 주십시오.", "E" );
  1665. model.setfocus( "ipt_i2_anstfromm" );
  1666. bRtn = false;
  1667. }
  1668. if (isNull(tomh)) {
  1669. messageBox ( "종료시간을 입력해 주십시오.", "E" );
  1670. model.setfocus( "ipt_i2_ansttoh" );
  1671. bRtn = false;
  1672. }
  1673. if (isNull(totim)) {
  1674. messageBox ( "종료분을 입력해 주십시오.", "E" );
  1675. model.setfocus( "ipt_i2_ansttom" );
  1676. bRtn = false;
  1677. }
  1678. if ( eval(fromh) >= 24 ) {
  1679. messageBox ( "시작시간이 잘못 입력되었습니다.", "E" );
  1680. bRtn = false;
  1681. }
  1682. if ( eval(formm) >= 60 ) {
  1683. messageBox ( "시작분이 잘못 입력되었습니다.", "E" );
  1684. bRtn = false;
  1685. }
  1686. if ( eval(tomh) >= 24 ) {
  1687. messageBox ( "종료시간이 잘못 입력되었습니다.", "E" );
  1688. bRtn = false;
  1689. }
  1690. if ( eval(totim) >= 60 ) {
  1691. messageBox ( "종료분이 잘못 입력되었습니다.", "E" );
  1692. bRtn = false;
  1693. }
  1694. tomh = eval(model.getValue ( "/root/ansttm/ansttoh" )) + getDateInterval ( fromdd, todd ) * 24;
  1695. var fromtotm = eval ( fromh ) * 60 + eval ( formm );
  1696. var tototm = eval( tomh ) * 60 + eval ( totim );
  1697. var ansttmh = parseInt(( tototm - fromtotm ) / 60);
  1698. var ansttmm = ( tototm - fromtotm ) % 60;
  1699. ansttmh = ansttmh.toString().getLeftPad ( 2, "0" );
  1700. ansttmm = ansttmm.toString().getLeftPad ( 2, "0" );
  1701. model.setValue ( "/root/main/prcp/prcplist/ansttm", ansttmh + ansttmm);
  1702. if ( model.getValue ( "/root/main/prcp/prcplist/ansttm" ) == "0000" || eval(model.getValue ( "/root/main/prcp/prcplist/ansttm" )) < 0 ) {
  1703. messageBox ( "마취시간 입력이 잘못되었습니다.", "E" );
  1704. bRtn = false;
  1705. }
  1706. if(bRtn) {
  1707. var fromipt = model.getValue("/root/ansttm/anstfromdd") + model.getValue("/root/ansttm/anstfromh").getLeftPad(2, "0") + model.getValue("/root/ansttm/anstfromm").getLeftPad( 2, "0" );
  1708. var toipt = model.getValue("/root/ansttm/ansttodd") + model.getValue("/root/ansttm/ansttoh").getLeftPad(2, "0") + model.getValue("/root/ansttm/ansttom").getLeftPad( 2, "0" );
  1709. model.setValue("/root/main/prcp/prcplist/clinccmtcnts", fromipt + "|" + toipt);
  1710. }
  1711. }
  1712. } else if(prcpClsCd == "K2") {
  1713. /**************************************************************************************************/
  1714. // 치과
  1715. /**************************************************************************************************/
  1716. var prcpessninptflag = model.getValue ( "/root/main/prcp/prcplist/prcpessninptflag" );
  1717. if ( prcpessninptflag == 3 || prcpessninptflag == 5 ) {
  1718. if ( model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ) == "-" || isNull(model.getValue ( "/root/main/prcp/prcplist/opansflagcd" ))) {
  1719. messageBox ( "수술유형이 입력되지" , "E007" );
  1720. bRtn = false;
  1721. }
  1722. }
  1723. if(bRtn) {
  1724. model.setValue("/root/main/prcp/prcplist/tempcol1", grd_k2_prcplist.labelMatrix(1, grd_k2_prcplist.colRef("opansflagcd") ));
  1725. }
  1726. } else if(prcpClsCd == "M2") {
  1727. /**************************************************************************************************/
  1728. // 재료
  1729. /**************************************************************************************************/
  1730. if ( model.getValue("/root/init/drprcpetc4" ) == "Y" ) {
  1731. model.setValue("/root/main/prcp/prcplist/drprcpetc4", model.getValue("/root/main/prcp/prcplist/prcpqty"));
  1732. } else {
  1733. model.setValue("/root/main/prcp/prcplist/drprcpetc4", "");
  1734. }
  1735. model.setValue ( "/root/main/prcp/prcplist/drugmthdspccdnm", grd_m2_prcplist.labelMatrix( 1, grd_m2_prcplist.colref("matrallsizespecid") ));
  1736. } else { // 디폴트
  1737. bRtn = false;
  1738. }
  1739. if(bRtn && prcpClsCd != "03") { // 식이처방은 위에서 처리함.
  1740. appendChildPrcp ( "/root/main/prcp/prcplist", "/root/prcptemp" );
  1741. }
  1742. return bRtn;
  1743. }
  1744. /**
  1745. * @desc : 원외예외사유 setting check
  1746. * @author : sonjy 2008-09-12
  1747. */
  1748. function fChkHosInResnCd(grdObj){
  1749. var prcpgenrflag = opener.model.getValue("/root/patflag/list/prcpgenrflag"); //환자리스트에서 준 외래, 입원, 응급 구분
  1750. var hosinprcpresncd = opener.model.getValue("/root/init/hosinprcpresncd"); //원무에 있는 원내처방 사유 코드
  1751. var prcpclscd = model.getValue( "/root/main/prcp/prcplist/prcpclscd"); // 처방종류
  1752. var drugmastspec = model.getValue( "/root/main/prcp/prcplist/drugmastspec"); //약품정보
  1753. var spcldrug = getArrayData ( drugmastspec + "^", 0, 23, "^", "|" ); //마약구분
  1754. var selfinjyn = getArrayData ( drugmastspec + "^", 0, 20, "^", "|" ); //자가주사가능여부
  1755. var hosinflag = getArrayData ( drugmastspec + "^", 0, 11, "^", "|" ); //약품원내외구분 //SON0930 약품마스터의 원내외구분이 주사및 환자사유에 우선한다. 배성미 선생님 요청 .
  1756. var g3yn =""; //응급 g3여부
  1757. if( prcpgenrflag == "E" && opener.model.getValue ( "/root/init/erresn" ) != "G3" && model.getValue( "/root/main/prcp/prcplist/prcpkindcd") == "60") {
  1758. g3yn = "N";
  1759. }
  1760. //입원은 disable 임으로 select 할 이유가 없다.
  1761. if ( model.getValue ( "/root/main/prcp/prcplist/hosinhosoutflag" ) == "I") { //원내를 선택하면
  1762. if( model.getValue ( "/root/main/prcp/prcplist/hosinprcpresncd" ) == "90" ) { //원외요구시 => by sonjy 20081016
  1763. // 마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  1764. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  1765. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (hosinflag == "I") || (prcpclscd =="A6" && (spcldrug == "M" || spcldrug == "H")) ) { //SON0930
  1766. messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  1767. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  1768. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", model.getValue ( "/root/init/bfhosinprcpresncd" ));
  1769. grd_prcpdetl2.rebuild();
  1770. return ;
  1771. } //마약, MSET은 원외불가. by sonjy 20080912 end
  1772. } else if ( hosinprcpresncd != "00" && g3yn == "" ) { //원무에 있는 원내처방 사유 코드가 있다면
  1773. if( hosinflag == "O" && prcpgenrflag == "O") { //SON0930 약품 원내외 구분 적용.
  1774. messageBox("원외로만 처방이 가능한 약품", "I009");
  1775. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  1776. model.refresh();
  1777. return ;
  1778. }
  1779. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", hosinprcpresncd );
  1780. } else { //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. start
  1781. if( hosinflag == "O" && ( prcpgenrflag == "O" || g3yn == "N" ) ) { //SON0930 약품 원내외 구분 적용.
  1782. messageBox("원외로만 처방이 가능한 약품", "I009");
  1783. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  1784. model.refresh();
  1785. return ;
  1786. }
  1787. model.setValue ( "/root/main/prcp/prcplist/hosinprcpresncd", getArrayData ( drugmastspec, 0, 12, "^", "|" ) );
  1788. }
  1789. grdObj.colDisabled(grdObj.colref("hosinprcpresncd")) = false; //원내처방 사유코드를 입력할 수 있다.
  1790. //by sonjy 20080912 환자원내사유가 없을경우 약제사유로 원복. end
  1791. } else { //원외를 선택하면
  1792. // 마약, MSET, 주사는 원외불가. 단, 주사제중 자가주사구분이 Y인 경우만 원외가능. by sonjy 20080912 start
  1793. // 마약중 경구약은 원외 처방 가능하도록 수정 ( 2010, 12. 03 han19)
  1794. if( (model.getValue( "/root/main/prcp/prcplist/inclprcpno") != "0" ) || (hosinflag == "I") || (prcpclscd =="A6" && (spcldrug == "M" || spcldrug == "H")) ) { //SON0930
  1795. messageBox("마약, 주사, 약제팀의 원내지정약 및 MSET코드내 묶인 약제는 원외로 처방을 낼 수 ", "I004");
  1796. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "I" );
  1797. model.refresh();
  1798. return ;
  1799. } //마약, MSET은 원외불가. by sonjy 20080912 end
  1800. model.setValue ( "/root/main/prcp/prcplist/hosinhosoutflag", "O" );
  1801. model.setValue("/root/main/prcp/prcplist/hosinprcpresncd","00");
  1802. grdObj.colDisabled(grdObj.colref("hosinprcpresncd")) = true; //원내처방 사유코드를 입력할 수는 없다.
  1803. }
  1804. }
  1805. /**
  1806. * @desc : 진단검사 검사 간격 설정
  1807. */
  1808. function fContTest () {
  1809. if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" || model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
  1810. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = true;
  1811. btn_b2_diagtestconttestcdspec.disabled = true;
  1812. } else {
  1813. grd_b2_prcplist.colDisabled (grd_b2_prcplist.colref("prcptims")) = false;
  1814. btn_b2_diagtestconttestcdspec.disabled = false;
  1815. }
  1816. var prcptims = model.getValue ( "/root/main/prcp/prcplist/prcptims" );
  1817. var diagtestconttestcdspec = "";
  1818. var drugrateqty = "";
  1819. if ( isNull(prcptims)) {
  1820. model.setValue ( "/root/main/prcp/prcplist/prcptims", 1 );
  1821. prcptims = 1;
  1822. }
  1823. if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "N" ) {
  1824. model.setValue ( "/root/main/prcp/prcplist/prcptims", 1 );
  1825. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
  1826. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
  1827. } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "5" ) {
  1828. model.setValue ( "/root/main/prcp/prcplist/prcptims", 2 );
  1829. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "식전(0분), 식후(120분)" );
  1830. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "1,2" );
  1831. } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "3" ) { //횟수
  1832. for ( var i = 0; i < prcptims; i++ ) {
  1833. diagtestconttestcdspec = diagtestconttestcdspec + i + "회,";
  1834. drugrateqty = drugrateqty + i + ",";
  1835. }
  1836. diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
  1837. drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
  1838. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
  1839. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
  1840. } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "4" ) { //일수
  1841. for ( var i = 0; i < prcptims; i++ ) {
  1842. diagtestconttestcdspec = diagtestconttestcdspec + i + "일,";
  1843. drugrateqty = drugrateqty + i + ",";
  1844. }
  1845. diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
  1846. drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
  1847. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
  1848. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
  1849. } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "1" ) { //분
  1850. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", "-" );
  1851. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", "-" );
  1852. for ( var i = 0; i < prcptims; i++ ) {
  1853. diagtestconttestcdspec = diagtestconttestcdspec + i*30 + "분,";
  1854. drugrateqty = drugrateqty + i*30 + ",";
  1855. }
  1856. diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
  1857. drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
  1858. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
  1859. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
  1860. } else if ( model.getValue ( "/root/main/prcp/prcplist/diagtestconttestintvlflag" ) == "2" ) { //시간
  1861. for ( var i = 0; i < prcptims; i++ ) {
  1862. diagtestconttestcdspec = diagtestconttestcdspec + i + "시간,";
  1863. drugrateqty = drugrateqty + i + ",";
  1864. }
  1865. diagtestconttestcdspec = diagtestconttestcdspec.substring(0, diagtestconttestcdspec.length-1);
  1866. drugrateqty = drugrateqty.substring(0, drugrateqty.length-1);
  1867. model.setValue ( "/root/main/prcp/prcplist/diagtestconttestcdspec", diagtestconttestcdspec );
  1868. model.setValue ( "/root/main/prcp/prcplist/drugrateqty", drugrateqty );
  1869. }
  1870. model.recalculate();
  1871. model.refresh();
  1872. }
  1873. /**
  1874. * @desc : 전달사항 팝업
  1875. * @author :
  1876. */
  1877. function fPopPrcpDeliveFact(){
  1878. var sPrcpCd = model.getValue("/root/main/prcp/prcplist/prcpcd");
  1879. var sPrnPrcpFlag = model.getValue("/root/main/prcp/prcplist/prnprcpflag"); // PRN 처방여부
  1880. if(sPrnPrcpFlag == "Y") {
  1881. messageBox ( "PRN처방은 전달사항을 수정할수 없습니다.", "E" );
  1882. } else {
  1883. if(sPrcpCd == "PE100" ) {// 신체억제대
  1884. clearParameter("SPMMB02700_cond1");
  1885. clearParameter("SPMMB02700_rtn");
  1886. clearParameter("SPMMB02700_prcpdelivefact");
  1887. setParameter ( "SPMMB02700_cond1", "00" ); // 신체억제대
  1888. fPrcpModal ( "SPMMB02700", 50, -200 );
  1889. if(getParameter("SPMMB02700_rtn") == "Y") {
  1890. model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter("SPMMB02700_prcpdelivefact"));
  1891. }
  1892. } else {
  1893. clearParameter("SPMMB02200_clinccmt")
  1894. setParameter("SPMMB02200_cond2", "3");
  1895. fPrcpModal("SPMMB02200", 50, -260 );
  1896. model.setValue ( "/root/main/prcp/prcplist/prcpdelivefact", getParameter ( "SPMMB02200_clinccmt" ));
  1897. clearParameter("SPMMB02200_clinccmt");
  1898. }
  1899. }
  1900. model.refresh();
  1901. fPrcpSetting();
  1902. }
  1903. /**
  1904. * @desc : 임상소견 팝업
  1905. * @author :
  1906. */
  1907. function fPopClincCmtCnts(){
  1908. clearParameter("SPMMB02200_clinccmt")
  1909. setParameter ( "SPMMB02200_cond2", "2" );
  1910. fPrcpModal ( "SPMMB02200", 50, -260 );
  1911. model.setValue ( "/root/main/prcp/prcplist/clinccmtcnts", getParameter ( "SPMMB02200_clinccmt" ));
  1912. clearParameter("SPMMB02200_clinccmt");
  1913. model.refresh();
  1914. fPrcpSetting();
  1915. }
  1916. /**
  1917. * @desc : 시행부서 팝업
  1918. * @author :
  1919. */
  1920. function fPopSrchExecDept(){
  1921. fPrcpModal("SPMMB02500", 50, -500 );
  1922. model.refresh();
  1923. fPrcpSetting();
  1924. }
  1925. /**
  1926. * @desc : 선택진료의 팝업
  1927. * @author :
  1928. */
  1929. function fPopSrchSpecDrId(){
  1930. if (!fChoiOrdChk()) return; //20110112 mjm 추가 선택진료 가능여부 체크
  1931. fChgChoiDr("pop", 1, 600, 300);
  1932. model.refresh();
  1933. fPrcpSetting();
  1934. }
  1935. /**
  1936. * @desc : 연속검사 팝업
  1937. * @author :
  1938. */
  1939. function fPopDiagTestContTestCdSpec(){
  1940. fPrcpModal ( "SPMMO02700", 50, -200 );
  1941. model.refresh();
  1942. fPrcpSetting();
  1943. }