SPMMO16101_최대용량최대기간저함량처방사유입력(경북대).xrw 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>처방사유 입력</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <result>
  10. <prcperrlist>
  11. <prcpcd/>
  12. <prcpnm/>
  13. <delflag/>
  14. <flag/>
  15. <errrow/>
  16. <dcprcppkspec/>
  17. <resncnt/>
  18. <exmkndcd/>
  19. </prcperrlist>
  20. </result>
  21. <err2>
  22. <prcperrlist/>
  23. </err2>
  24. <err3>
  25. <prcperrlist/>
  26. </err3>
  27. <err4>
  28. <prcperrlist/>
  29. </err4>
  30. <hardcd>
  31. <hardcd>
  32. <status/>
  33. <hardcd/>
  34. <hardcdnm/>
  35. </hardcd>
  36. </hardcd>
  37. <hardcd2>
  38. <hardcd>
  39. <status/>
  40. <hardcd/>
  41. <hardcdnm/>
  42. </hardcd>
  43. </hardcd2>
  44. <send>
  45. <cond1/>
  46. </send>
  47. <ageresn>
  48. <resncd/>
  49. <resncnt/>
  50. <resncdnm/>
  51. </ageresn>
  52. <comresn>
  53. <resncd/>
  54. <resncnt/>
  55. <resncdnm/>
  56. </comresn>
  57. <test>
  58. <test1/>
  59. <test2/>
  60. </test>
  61. <init>
  62. <cond1>Y</cond1>
  63. </init>
  64. </root>
  65. </instance>
  66. <script type="javascript" ev:event="xforms-model-construct-done">
  67. <![CDATA[
  68. model.removenode ( "/root/err1/prcperrlist" );
  69. model.removenode ( "/root/err2/prcperrlist" );
  70. model.removenode ( "/root/err3/prcperrlist" );
  71. caption2.value = caption2.value + opener.model.getValue("/root/initsrch/callnoinfo[trgtcd='pharmacy']/trgtcdnm") + ")";
  72. ]]>
  73. </script>
  74. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  75. <script type="javascript" ev:event="xforms-ready">
  76. <![CDATA[
  77. var flag = "";
  78. var exmkndcd = "";
  79. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcperrlist");
  80. var destNode = model.instances(0).selectSingleNode( "/root/err4" );
  81. var currow = 1;
  82. var cnt1 = 0;
  83. var cnt2 = 0;
  84. var cnt3 = 0;
  85. var listcnt = destNode.length;
  86. model.removenode("/root/err4/prcperrlist");
  87. for ( var i=0; i < srcNodeList.length; i++ ) {
  88. currow = i + 1;
  89. flag = model.getValue ( "/root/result/prcperrlist[" + currow + "]/flag" );
  90. if ( flag == "5" || flag == "6" || flag == "7" || flag == "51" || flag == "52") {
  91. destNode.appendChild(srcNodeList.item(i).cloneNode(true));
  92. model.makeNode("/root/err4/prcperrlist[" + listcnt + "]/resncnt");
  93. model.makeNode("/root/err4/prcperrlist[" + listcnt + "]/resncntcd");
  94. cnt2++;
  95. listcnt++;
  96. }
  97. if ( flag == "4") {
  98. exmkndcd = model.getValue ( "/root/result/prcperrlist[" + currow + "]/exmkndcd" );
  99. if (exmkndcd == "08" || exmkndcd == "40") { // 처방전간 병용금기, 처방전간 효능군 중복
  100. destNode.appendChild(srcNodeList.item(i).cloneNode(true));
  101. model.makeNode("/root/err4/prcperrlist[" + listcnt + "]/resncnt");
  102. model.makeNode("/root/err4/prcperrlist[" + listcnt + "]/resncntcd");
  103. model.setValue ("/root/err4/prcperrlist[" + listcnt + "]/resncntcd" , "X" );
  104. model.setValue ("/root/err4/prcperrlist[" + listcnt + "]/resncnt" , "정보제공(사유입력 불필요)");
  105. cnt2++;
  106. listcnt++;
  107. }
  108. }
  109. }
  110. errlist1.rebuild();
  111. var srchLength1 = model.instances(0).selectNodes( "/root/err2/prcperrlist" ).length;
  112. var srcNodeListMainLength = opener.model.instances(0).selectNodes( "/root/main/prcp/prcplist" ).length;
  113. var chkNewPrcp = 0;
  114. if ( srchLength1 > 0 ) {
  115. for ( var i =1; i <= srchLength1; i++ ) {
  116. var prcpcd = model.getValue ( "/root/err4/prcperrlist[" + i + "]/prcpcd" );
  117. chkNewPrcp = 0;
  118. for ( var j=1; j <= srcNodeListMainLength; j++ ) {
  119. if ( prcpcd == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/prcpcd" )) {
  120. chkNewPrcp++;
  121. break;
  122. }
  123. }
  124. if ( chkNewPrcp == 0 ) {
  125. model.setValue ( "/root/err4/prcperrlist[" + i + "]/errrow", "X" );
  126. }
  127. }
  128. }
  129. //CP 미래처방 저장 시, 취소 불가능하도록 처리 (2009.05.04 JJE)
  130. var mainObj = getMainViewer();
  131. var curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
  132. var cpSaveFlag = opener.javascript.getParameter("SMMMP00800_cpsaveflag");
  133. if( curCpObj != null && cpSaveFlag == "T" ){
  134. btn_cncl.disabled = true;
  135. }
  136. //end (2009.05.04 JJE)
  137. var dp_cnt = getNodesetCount("/root/result/prcperrlist[dphospdrnm !='']");
  138. if(dp_cnt >0) {cpt_tooltip.visible = true;}
  139. model.refresh();
  140. model.recalculate();
  141. ]]>
  142. </script>
  143. <submission id="TRMMB16401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/hardcd"/>
  144. <bind id="bind1" ref="/root/hardcd/hardcd/hardcdnm" readonly="../hardcd != 'T'"/>
  145. <bind id="bind2" ref="/root/hardcd2/hardcd/hardcdnm" readonly="../hardcd != 'T'"/>
  146. <bind id="bind3" ref="/root/err2/prcperrlist/delflag" readonly="../errrow = 'X'"/>
  147. </model>
  148. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  149. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  150. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  151. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  152. <script type="javascript">
  153. <![CDATA[
  154. var cRow = "";
  155. // 화면 open, 저장시 초기화 기능을 수행한다.
  156. function fClose() {
  157. window.close();
  158. }
  159. function fSelectResn(idx) {
  160. var currow = grd_resnlist.row;
  161. for ( var i = 1; i < grd_resnlist.rows; i++ ) {
  162. if ( i != currow ) {
  163. model.setValue ( "/root/hardcd/hardcd[" + i + "]/status", "N" )
  164. } else {
  165. model.setValue ( "/root/hardcd/hardcd[" + i + "]/status", "Y" )
  166. }
  167. }
  168. var resncnts = "instcd|pid|orddd|cretno|ordtype|orddeptcd|prcpdd|prcpno|prcphistno|resnflag|resncd|resncnts^" ;
  169. var pid = opener.model.getValue( "/root/paminfo/list/pid");
  170. var prcpgenrflag = opener.model.getValue ( "/root/patflag/list/prcpgenrflag" );
  171. var orddd = "";
  172. if ( prcpgenrflag == "O" ) {
  173. orddd = opener.model.getValue( "/root/paminfo/list/orddd");
  174. } else {
  175. orddd = opener.model.getValue( "/root/paminfo/list/indd");
  176. }
  177. var cretno = opener.model.getValue( "/root/paminfo/list/cretno");
  178. var orddeptcd = opener.model.getValue( "/root/paminfo/list/orddeptcd");
  179. var chkresncnts = "-";
  180. var chkresnflag = "";
  181. var flag = model.getValue("/root/err4/prcperrlist[" + idx + "]/flag");
  182. if( flag == "5") { //최대용량
  183. chkresnflag = "K";
  184. }else if(flag == "6"){ //최대기간
  185. chkresnflag = "L";
  186. }else if(flag == "7"){ //저함량
  187. chkresnflag = "H";
  188. }
  189. var chkresncd = model.getValue ( "/root/err4/prcperrlist[" + idx + "]/resncntcd" );
  190. var chkresncnt = model.getValue("/root/err4/prcperrlist[" + idx + "]/resncnt");
  191. var instcd = getUserInfo("dutplceinstcd") ;
  192. resncnts = resncnts + instcd + "|" + pid + "|" + orddd + "|" + cretno + "|" + prcpgenrflag + "|" + orddeptcd + "|-|0|0|"+chkresnflag+"|" + chkresncd + "|" + chkresncnt + "^" ;
  193. model.setValue ( "/root/comresn/resncd", chkresncd );
  194. model.setValue ( "/root/comresn/resncnt", resncnts );
  195. model.setValue ( "/root/comresn/resncdnm", chkresncnt);
  196. model.refresh();
  197. model.recalculate();
  198. }
  199. function fClick_resnlist() {
  200. if(isNull(cRow)){
  201. messageBox ( "선택 된 사유가 없습니다.\n\n처방을 클릭 하면 아래에 사유 항목이 조회 됩니다." , "I" );
  202. return;
  203. }
  204. //errlist1.rebuild(); 때문에 errlist1.row 를 찾지 못하고 죽는 현상때문에 전역변수를 설정하고 해당 값으로 셋팅하는 것으로 변경
  205. var resncntcd = model.getValue("/root/hardcd/hardcd[" + grd_resnlist.row + "]/hardcd");
  206. var resncntnm = model.getValue("/root/hardcd/hardcd[" + grd_resnlist.row + "]/hardcdnm");
  207. var resnrow = grd_resnlist.row;
  208. if(resncntcd == "E") {
  209. model.setValue("/root/err4/prcperrlist[" + cRow + "]/resncntcd", resncntcd);
  210. errlist1.colDisabled(errlist1.colRef("resncnt")) = false;
  211. } else {
  212. if(model.getValue("/root/init/cond1") == "Y") { // 일괄 적용이면
  213. var checkLength = model.instances(0).selectNodes( "/root/err4/prcperrlist" ).length;
  214. var selectFlag = model.getValue("/root/err4/prcperrlist["+ cRow +"]/flag"); // 처방사유구분
  215. var selectKind = model.getValue("/root/err4/prcperrlist["+ cRow +"]/exmkndcd"); //체크항목구분
  216. var checkFlag = "";
  217. var checkKind = "";
  218. for ( var i= 1; i<=checkLength; i++ ) {
  219. checkFlag = model.getValue ( "/root/err4/prcperrlist[" + i + "]/flag" );
  220. checkKind = model.getValue ( "/root/err4/prcperrlist[" + i + "]/exmkndcd" );
  221. if (checkFlag == "4") { // 정보제공 사유 입력 불필요
  222. continue;
  223. } else if(checkFlag == "5") {
  224. if(selectFlag == checkFlag && selectKind == checkKind) {
  225. model.setValue("/root/err4/prcperrlist[" + i + "]/resncntcd", resncntcd);
  226. model.setValue("/root/err4/prcperrlist[" + i + "]/resncnt", resncntnm);
  227. fSelectResn(resnrow);
  228. }
  229. } else {
  230. if(selectFlag == checkFlag) {
  231. model.setValue("/root/err4/prcperrlist[" + i + "]/resncntcd", resncntcd);
  232. model.setValue("/root/err4/prcperrlist[" + i + "]/resncnt", resncntnm);
  233. fSelectResn(resnrow);
  234. }
  235. }
  236. }
  237. } else {
  238. model.setValue("/root/err4/prcperrlist[" + cRow + "]/resncntcd", resncntcd);
  239. model.setValue("/root/err4/prcperrlist[" + cRow + "]/resncnt", resncntnm);
  240. fSelectResn(resnrow);
  241. }
  242. model.refresh();
  243. errlist1.rebuild();
  244. }
  245. }
  246. ]]>
  247. </script>
  248. </xhtml:head>
  249. <xhtml:body pagewidth="870" pageheight="550" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  250. <caption id="caption1" class="tit_2" style="left:5px; top:2px; width:302px; height:14px; ">처방사유 입력</caption>
  251. <caption id="caption2" visibility="hidden" style="left:6px; top:523px; width:259px; height:20px; color:#ff0000; ">* 약물정보관련 문의(TEL.</caption>
  252. <switch id="switch1" style="left:2px; top:17px; width:848px; height:498px; ">
  253. <case id="case1" selected="true" style="left:0px; top:0px; width:843px; height:495px; ">
  254. <datagrid id="errlist1" nodeset="/root/err4/prcperrlist" autoresize="true" caption="flag^구분^처방코드^처방명^오류내용^처방사유^처방사유코드^삭제" colsep="^" colwidth="27, 100, 82, 170, 250, 223, 0, 0" dataheight="23" ellipsis="true" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:0px; top:5px; width:843; height:270px; ">
  255. <col ref="flag" visibility="hidden"/>
  256. <col disabled="true" ref="exmkndcd" type="combo">
  257. <choices>
  258. <item>
  259. <label>사유</label>
  260. <value/>
  261. </item>
  262. <item>
  263. <label>처방전내병용금기</label>
  264. <value>00</value>
  265. </item>
  266. <item>
  267. <label>처방전내연령금기</label>
  268. <value>01</value>
  269. </item>
  270. <item>
  271. <label>처방전내안전성</label>
  272. <value>02</value>
  273. </item>
  274. <item>
  275. <label>처방전내최대용량</label>
  276. <value>03</value>
  277. </item>
  278. <item>
  279. <label>처방전내최대기간</label>
  280. <value>04</value>
  281. </item>
  282. <item>
  283. <label>처방전내저함량</label>
  284. <value>05</value>
  285. </item>
  286. <item>
  287. <label>처방전내임부금기</label>
  288. <value>06</value>
  289. </item>
  290. <item>
  291. <label>처방전간 병용금기</label>
  292. <value>07</value>
  293. </item>
  294. <item>
  295. <label>처방전간 성분별 중복처방</label>
  296. <value>08</value>
  297. </item>
  298. <item>
  299. <label>처방전내 치료중복</label>
  300. <value>20</value>
  301. </item>
  302. <item>
  303. <label>처방전간 치료중복</label>
  304. <value>40</value>
  305. </item>
  306. <item>
  307. <label>처방전내 2주 병용금기</label>
  308. <value>21</value>
  309. </item>
  310. <item>
  311. <label>처방전간 2주 병용금기</label>
  312. <value>41</value>
  313. </item>
  314. <item>
  315. <label>처방전내 1성분병용기간금기</label>
  316. <value>22</value>
  317. </item>
  318. <item>
  319. <label>처방전간 효능군중복</label>
  320. <value>40</value>
  321. </item>
  322. <item>
  323. <label>처방전간 1성분병용기간금기</label>
  324. <value>42</value>
  325. </item>
  326. <item>
  327. <label>처방전내 병용연령성별제한</label>
  328. <value>23</value>
  329. </item>
  330. <item>
  331. <label>처방전간 병용연령성별제한</label>
  332. <value>43</value>
  333. </item>
  334. </choices>
  335. </col>
  336. <col ref="prcpcd" type="output"/>
  337. <col ref="prcpnm"/>
  338. <col ref="prcperr" visibility="visible"/>
  339. <col disabled="true" ref="resncnt" type="input"/>
  340. <col ref="resncntcd" visibility="hidden"/>
  341. <col checkvalue="Y,N" ref="delflag" type="checkbox" visibility="hidden"/>
  342. <script type="javascript" ev:event="onclick">
  343. <![CDATA[
  344. if (isDataCell()) {
  345. cRow = errlist1.row;
  346. var flag = model.getValue("/root/err4/prcperrlist[" + errlist1.row + "]/flag");
  347. if( flag == "5") {
  348. var exmkndcd = model.getValue("/root/err4/prcperrlist[" + errlist1.row + "]/exmkndcd");
  349. if (exmkndcd == "00" ) {
  350. model.setValue ( "/root/send/cond1", "411" ); //처방전간 DUR 병용금기 사유항목
  351. } else if (exmkndcd == "01" ) {
  352. model.setValue ( "/root/send/cond1", "412" ); //처방전간 DUR 연령금기 사유항목
  353. } else if (exmkndcd == "05" ) {
  354. model.setValue ( "/root/send/cond1", "413" ); //처방전간 DUR 저함량 사유항목
  355. } else if (exmkndcd == "06" ) {
  356. model.setValue ( "/root/send/cond1", "414" ); //처방전간 DUR 임부금기 사유항목
  357. } else {
  358. model.setValue ( "/root/send/cond1", "405" ); // 처방전간 DUR 기본 사유항목
  359. }
  360. submit("TRMMB16401" );
  361. }else if(flag == "6"){
  362. model.setValue ( "/root/send/cond1", "405" ); //최대기간 사유항목
  363. submit("TRMMB16401" );
  364. }else if(flag == "7"){
  365. model.setValue ( "/root/send/cond1", "405" ); //저함량 사유항목
  366. submit("TRMMB16401" );
  367. }else if(flag == "51"){
  368. model.setValue ( "/root/send/cond1", "406" ); //처방전간 병용금기 사유항목
  369. submit("TRMMB16401" );
  370. }else if(flag == "52"){
  371. model.setValue ( "/root/send/cond1", "407" ); //처방전간 중복성분 사유항목
  372. submit("TRMMB16401" );
  373. }
  374. model.refresh();
  375. }
  376. ]]>
  377. </script>
  378. <script type="javascript" ev:event="onmouseover">
  379. <![CDATA[
  380. //.
  381. var dp_cnt = getNodesetCount("/root/result/prcperrlist[dphospdrnm !='']");
  382. if(dp_cnt >0){
  383. if ( errlist1.mouseCol == "4") {
  384. var tip_dphospnm = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphospnm");
  385. var tip_dphosptel = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphosptel");
  386. var tip_dphospdrnm = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphospdrnm");
  387. var tip_dpprmcnm = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dpprmcnm");
  388. var tip_dpprmctel = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dpprmctel");
  389. var tip_dpprmcpnm = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dpprmcpnm");
  390. var tip_dphospdd = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphospdd");
  391. var tip_dphospprcpnm = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphospprcpnm");
  392. var tip_dphospqty = model.getValue("/root/result/prcperrlist[" + errlist1.mouseRow + "]/dphospqty");
  393. errlist1.tooltipText( errlist1.mouseRow, 4 ) = "■ 다른 처방전 정보 ■\n"
  394. + tip_dphospnm + " " + tip_dphosptel + " " + tip_dphospdrnm + '\n'
  395. + tip_dpprmcnm + " " + tip_dpprmctel + " " + tip_dpprmcpnm + '\n'
  396. + tip_dphospdd + " " + tip_dphospprcpnm + " " + tip_dphospqty;
  397. }
  398. }
  399. ]]>
  400. </script>
  401. </datagrid>
  402. <caption id="caption6" class="tit_2" style="left:5px; top:286px; width:171px; height:13px; ">사유선택</caption>
  403. <line id="line4" class="line_1" style="x1:0px; y1:302px; x2:843; y2:302px; "/>
  404. <datagrid id="grd_resnlist" nodeset="/root/hardcd/hardcd" caption="코드^상세사유" colsep="^" colwidth="35, 728" dataheight="23" ellipsis="true" extendlastcol="scroll" rowheight="23" rowsep="|" tooltip="true" style="left:0px; top:307px; width:843px; height:186; ">
  405. <col ref="hardcd" style="text-align:center; "/>
  406. <col disabled="false" editable="true" ref="hardcdnm" type="input"/>
  407. <script type="javascript" ev:event="ondblclick">
  408. <![CDATA[
  409. if (isDataCell() ) {
  410. fClick_resnlist();
  411. }
  412. ]]>
  413. </script>
  414. </datagrid>
  415. <line id="line1" class="line_1" style="x1:0px; y1:2px; x2:843; y2:2px; "/>
  416. <button id="button2" class="btn2_letter4" style="left:776px; top:282px; width:64px; height:19px; ">
  417. <caption>사유적용</caption>
  418. <script type="javascript" ev:event="DOMActivate">
  419. <![CDATA[
  420. if(cRow != -1 && grd_resnlist.row != -1) {
  421. fClick_resnlist();
  422. }else{
  423. messageBox ( "선택된 사유가 없습니다." , "I" );
  424. }
  425. ]]>
  426. </script>
  427. </button>
  428. <bool id="bool_cond1" checkvalue="Y,N" overflow="visible" appearance="full" ref="/root/init/cond1" style="left:700px; top:285px; width:20px; height:20px; border-style:none; ">
  429. <hint>
  430. <![CDATA[선택된 처방과 동일한 구분의 처방에 대해 한번에 사유를 적용 합니다. 체크 해제시 선택된 처방만 사유를 적용 합니다.]]>
  431. </hint>
  432. </bool>
  433. <caption id="caption3" style="left:720px; top:285px; width:50px; height:20px; ">
  434. <![CDATA[일괄적용]]>
  435. <hint>
  436. <![CDATA[선택된 처방과 동일한 구분의 처방에 대해 한번에 사유를 적용 합니다. 체크 해제시 선택된 처방만 사유를 적용 합니다.]]>
  437. </hint>
  438. </caption>
  439. </case>
  440. </switch>
  441. <button id="button1" class="btn4_letter4" style="left:682px; top:520px; width:80px; height:22px; ">
  442. <caption>계속저장</caption>
  443. <script type="javascript" ev:event="DOMActivate">
  444. <![CDATA[
  445. var srchLength1 = model.instances(0).selectNodes( "/root/err4/prcperrlist" ).length;
  446. var delcnt = 0;
  447. var resncnt = 0;
  448. if ( srchLength1 > 0 ) {
  449. for ( var i =1; i <= srchLength1; i++ ) {
  450. if ( model.getValue ( "/root/err4/prcperrlist[" + i+ "]/delflag" ) == "Y" ) {
  451. delcnt++;
  452. }
  453. if ( model.getValue ( "/root/err4/prcperrlist[" + i + "]/delflag" ) != "Y" && model.getValue ( "/root/err4/prcperrlist[" + i + "]/resncnt" ) == "" ) {
  454. resncnt++;
  455. }
  456. if ( model.getValue ( "/root/err4/prcperrlist[" + i + "]/delflag" ) != "Y" && model.getValue ( "/root/err4/prcperrlist[" + i + "]/resncnt" ) == "-" ) {
  457. resncnt++;
  458. }
  459. if ( model.getValue ( "/root/err4/prcperrlist[" + i + "]/delflag" ) != "Y" && model.getValue ( "/root/err4/prcperrlist[" + i + "]/resncnt" ) == "(이곳에 사유입력을 하세요)" ) {
  460. resncnt++;
  461. }
  462. }
  463. if ( srchLength1 != delcnt && resncnt > 0) {
  464. messageBox ( "처방사유를", "C001" );
  465. return;
  466. }
  467. }
  468. var srcNodeListMainLength = opener.model.instances(0).selectNodes( "/root/main/prcp/prcplist" ).length;
  469. var prcpcd = "";
  470. for (var i=1; i <= srcNodeListMainLength; i++) {
  471. prcpcd = opener.model.getValue ( "/root/main/prcp/prcplist[" + i + "]/prcpcd" );
  472. for (var j=1; j <= srchLength1; j++) {
  473. if ( prcpcd == model.getValue ( "/root/err4/prcperrlist[" + j + "]/prcpcd" )) {
  474. if ( model.getValue ( "/root/err4/prcperrlist[" + j + "]/delflag" ) == "Y" ) {
  475. opener.model.setValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol6", "D" );
  476. delcnt++;
  477. } else {
  478. fSelectResn(j);
  479. opener.model.setValue ( "/root/main/prcp/prcplist[" + i + "]/tempcol19" , model.getValue ( "/root/comresn/resncnt" ));
  480. opener.model.setValue ( "/root/result/savedrprcplist[" + i + "]/tempcol19" , model.getValue ( "/root/comresn/resncnt" ));
  481. }
  482. }
  483. }
  484. }
  485. //심평원 DUR 적용 20120101 오류팝업 사유를 심평원 DUR파라미터인 결과전문에 셋팅
  486. var rsrt_cnt = opener.javascript.getNodesetCount("/root/result/kdurchkrslt/rslt_prcpcd");
  487. var err_cnt = getNodesetCount("/root/err4/prcperrlist/prcpcd");
  488. if (rsrt_cnt > 0 && err_cnt>0) {
  489. for (var a = 1; a<= rsrt_cnt; a++) {
  490. var rslt_prcpcd = opener.model.getValue("/root/result/kdurchkrslt["+a+"]/rslt_prcpcd");
  491. var rslt_exm_knd_cd = opener.model.getValue("/root/result/kdurchkrslt["+a+"]/rslt_exm_knd_cd");
  492. for (var b = 1; b<= err_cnt; b++) {
  493. var err_prcpcd = model.getValue("/root/err4/prcperrlist["+b+"]/prcpcd");
  494. var err_exmkndcd = model.getValue("/root/err4/prcperrlist["+b+"]/exmkndcd");
  495. if(rslt_prcpcd == err_prcpcd && rslt_exm_knd_cd == err_exmkndcd) {
  496. opener.model.setValue("/root/result/kdurchkrslt["+a+"]/rslt_rs_cd" , model.getValue("/root/err4/prcperrlist["+b+"]/resncntcd"));
  497. opener.model.setValue("/root/result/kdurchkrslt["+a+"]/rslt_rs_txt" , model.getValue("/root/err4/prcperrlist["+b+"]/resncnt"));
  498. }
  499. }
  500. }
  501. }
  502. if ( delcnt > 0 ) {
  503. opener.javascript.fDeleteRow ( "noselect" );
  504. opener.javascript.setParameter ( "SPMMO16101_rtn2", "D" );
  505. }
  506. opener.javascript.setParameter ( "SPMMO16101_rtn1", "Y" );
  507. window.close();
  508. ]]>
  509. </script>
  510. </button>
  511. <button id="btn_cncl" class="btn4_letter4" style="left:766px; top:520px; width:80px; height:22px; ">
  512. <caption>처방취소</caption>
  513. <script type="javascript" ev:event="DOMActivate">
  514. <![CDATA[
  515. opener.javascript.setParameter ( "SPMMO16101_rtn1", "N" );
  516. window.close();
  517. ]]>
  518. </script>
  519. </button>
  520. <caption id="caption4" style="left:130px; top:2px; width:715px; height:16px; ">아래의 처방은 사유를 선택 또는 입력 하셔야 발행이 가능 합니다. 처방을 선택하면 구분에 맞는 사유가 조회 됩니다.</caption>
  521. <caption id="cpt_tooltip" visibility="hidden" style="left:85px; top:304px; width:458px; height:16px; color:#ff0000; ">처방전간 오류일시 오류내용 위에 마우스 커서를 두면 상대약품정보가 나옵니다!</caption>
  522. </xhtml:body>
  523. </xhtml:html>