SPMMO21500_사전심사대상.xrw 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/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>사전심사 요구 -- 문의사항이 있을 경우 심사실(본원.T5076, 칠곡.T2184)로 문의 바랍니다.!!</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <result>
  10. </result>
  11. <err2>
  12. </err2>
  13. <err1>
  14. </err1>
  15. <send/>
  16. </root>
  17. </instance>
  18. <script type="javascript" ev:event="xforms-model-construct-done">
  19. <![CDATA[
  20. model.removenode ( "/root/err1/prcperrlist" );
  21. ]]>
  22. </script>
  23. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  24. <script type="javascript" ev:event="xforms-ready">
  25. <![CDATA[
  26. var flag = "";
  27. var sPrcpPkSpec = ""; //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  28. var waitCnt = 0;
  29. var cnclCnt = 0;
  30. var srcErrNodeList = model.instances(0).selectNodes ("/root/result/prcperrlist");
  31. var currow = 1;
  32. //무조건비급여 대상 instance
  33. var destNode2 = model.instances(0).selectSingleNode( "/root/err2" );
  34. var cnt2 = 0;
  35. //사전심사 대상 instance
  36. var destNode1 = model.instances(0).selectSingleNode( "/root/err1" );
  37. var cnt1 = 0;
  38. //opener에서 받은 instance 없으면, 리스트 조회 (2011.03.17 JJE)
  39. if( srcErrNodeList.length <= 0 ){
  40. model.makeValue("/root/send/pid", opener.model.getValue("/root/paminfo/list/pid") );
  41. model.makeValue("/root/send/cretno", opener.model.getValue("/root/paminfo/list/cretno") );
  42. model.makeValue("/root/send/orddd", opener.model.getValue("/root/paminfo/list/orddd") );
  43. submit("TRMMO21501");
  44. } else {
  45. submit("TRMMO21502");
  46. }
  47. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcpmsglist");
  48. //화면 그리드에 데이터 셋팅
  49. for ( var i=0; i < srcNodeList.length; i++ ) {
  50. currow = i + 1;
  51. sPrcpPkSpec = model.getValue ( "/root/result/prcpmsglist[" + currow + "]/prcppkspec" ); //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  52. if( sPrcpPkSpec == "Y" || sPrcpPkSpec == "2" ){
  53. destNode2.appendChild(srcNodeList.item(i).cloneNode(true));
  54. cnt2++;
  55. }else{ //else : W
  56. destNode1.appendChild(srcNodeList.item(i).cloneNode(true));
  57. cnt1++;
  58. }
  59. }
  60. if ( cnt2 > 0 ) {
  61. btn_err2.selected = true;
  62. }
  63. if ( cnt1 > 0 ) {
  64. btn_bfjudg.visible = true;
  65. btn_bfjudg.disabled = false;
  66. btn_err1.selected = true;
  67. }
  68. errlist2.rebuild();
  69. errlist1.rebuild();
  70. errlist2.mergeCells = "bycol";
  71. errlist2.mergeCol(0) = true;
  72. errlist2.mergeCol(1) = true;
  73. errlist2.merge();
  74. errlist1.mergeCells = "bycol";
  75. errlist1.mergeCol(0) = true;
  76. errlist1.mergeCol(1) = true;
  77. errlist1.mergeCol(errlist1.colRef("cnfmsg") ) = false;
  78. errlist1.merge();
  79. errlist2.autoResize = true ; //2010.02.04 JJE 오류내용이 긴 경우 모두 보이지 않아서 resize시킴..
  80. errlist1.autoResize = true ; //2010.02.04 JJE 오류내용이 긴 경우 모두 보이지 않아서 resize시킴..
  81. // 처방리스트중 사전심사중인지
  82. // 사전심사 거부된 리스트인지 조회해서
  83. // 버튼을 hidden 시킨다.
  84. var sCnts = getNodesetCount("/root/result/savedrprcplist")
  85. if (sCnts > 0 ) {
  86. for (i = 0; i < sCnts; i++ ) {
  87. var drprcpetc9 = model.getValue("/root/result/savedrprcplist/drprcpetc9");
  88. if (drprcpetc9 == "W") {
  89. waitCnt ++;
  90. }
  91. if (drprcpetc9 == "X") {
  92. cnclCnt++;
  93. }
  94. }
  95. }
  96. // 무조건 비급여 대상과 사전심사대상에 같은 수가만 존재할경우 심사요구를 막고 본인100% 저장을 유도 노회식
  97. if(errlist1.rows > 1 && errlist2.rows > 1) {
  98. var vflag = 1;
  99. var vprcpcnt = 0;
  100. for(var i = 1 ; i < errlist1.rows ; i++) {
  101. var vprcpcd = errlist1.valueMatrix(i, errlist1.colRef("prcpcd"));
  102. vprcpcnt = 0;
  103. for(var j = 1 ; j < errlist2.rows ; j++) {
  104. if(errlist2.valueMatrix(j, errlist2.colRef("prcpcd")) == vprcpcd) {
  105. vprcpcnt++;
  106. }
  107. }
  108. if(vprcpcnt == 0) {
  109. vflag = 0
  110. }
  111. }
  112. if(vflag > 0) {
  113. btn_bfjudg.disabled = true;
  114. }
  115. }
  116. ]]>
  117. </script>
  118. <submission id="TRMMO21501" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/result"/>
  119. <submission id="TRMMO21502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/result/saveflaginfo" resultref="/root/result"/>
  120. <submission id="TXMMO21502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/err1/prcpmsglist" resultref="/root/result"/>
  121. </model>
  122. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  123. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  124. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  125. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  126. <script type="javascript">
  127. <![CDATA[
  128. // 화면 open, 저장시 초기화 기능을 수행한다.
  129. function fClose() {
  130. window.close();
  131. }
  132. ]]>
  133. </script>
  134. </xhtml:head>
  135. <xhtml:body pagewidth="815" pageheight="500" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  136. <button id="button1" class="btn4_letter2" visibility="hidden" style="left:400px; top:0px; width:56px; height:22px; ">
  137. <caption>확인</caption>
  138. <script type="javascript" ev:event="DOMActivate">
  139. <![CDATA[
  140. window.close();
  141. ]]>
  142. </script>
  143. </button>
  144. <datagrid id="errlist2" nodeset="/root/err2/prcpmsglist" caption="^처방코드^처방명^심사내용" colsep="^" colwidth="33, 80, 287, 374" dataheight="23" ellipsis="true" extendlastcol="scroll" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:0px; top:23px; width:791px; height:105px; ">
  145. <col checkvalue="W,Y" ref="prcppkspec" type="checkbox" visibility="hidden"/>
  146. <col ref="prcpcd" type="output"/>
  147. <col ref="prcpnm" style="left:113px; top:23px; width:287px; height:23px; "/>
  148. <col ref="errmsg"/>
  149. </datagrid>
  150. <datagrid id="errlist1" nodeset="/root/err1/prcpmsglist" caption="^처방코드^처방명^심사내용^사유코드^처방사유(심사팀전달)^cnfrmk" colsep="^" colwidth="33, 80, 200, 250, 0, 210, 0" dataheight="23" ellipsis="true" extendlastcol="scroll" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:0px; top:157px; width:791px; height:290px; ">
  151. <col checkvalue="W,Y" ref="prcppkspec" type="checkbox" visibility="hidden"/>
  152. <col ref="prcpcd" type="output"/>
  153. <col ref="prcpnm"/>
  154. <col ref="errmsg"/>
  155. <col ref="cnfcd" visibility="hidden"/>
  156. <col ref="cnfmsg"/>
  157. <col ref="cnfrmk" visibility="hidden"/>
  158. <script type="javascript" ev:event="ondblclick">
  159. <![CDATA[
  160. if (isDataCell()) {
  161. var nRow = errlist1.row;
  162. var sPrcpCd = model.getValue("/root/err1/prcpmsglist[" + nRow + "]/prcpcd");
  163. var sCnfRmk = model.getValue("/root/err1/prcpmsglist[" + nRow + "]/cnfrmk"); // EMR.MMOHRESN 처방 사유 테이블의 resnflag 사유구분(M0530)
  164. var sHardCdNo = "";
  165. if(sCnfRmk == "015") { // PET/CT 처방 사유
  166. sHardCdNo = "455";
  167. } else {
  168. sHardCdNo = "457"; // 기본 사유
  169. }
  170. setParameter ("SPMMO90300_hardcdno" , sHardCdNo);
  171. modal("SPMMO90300");
  172. if(getParameter ("SPMMO90300_rtn" ) == "Y") {
  173. var sHardCd = getParameter ("SPMMO90300_hardcd" ) ;
  174. var sHardNm = getParameter ("SPMMO90300_hardnm" ) ;
  175. var checkLength = model.instances(0).selectNodes( "/root/err1/prcpmsglist" ).length;
  176. var resnCnt = 0;
  177. var sUserId = "";
  178. for ( var i =1; i <= checkLength; i++ ) {
  179. if ( sPrcpCd == model.getValue ( "/root/err1/prcpmsglist[" + i + "]/prcpcd" )) {
  180. model.setValue("/root/err1/prcpmsglist[" + i + "]/cnfcd", sHardCd);
  181. model.setValue("/root/err1/prcpmsglist[" + i + "]/cnfmsg", sHardNm);
  182. }
  183. }
  184. model.refresh();
  185. }
  186. clearParameter ("SPMMO90300_rtn" );
  187. clearParameter ("SPMMO90300_hardcd" );
  188. clearParameter ("SPMMO90300_hardnm");
  189. }
  190. ]]>
  191. </script>
  192. </datagrid>
  193. <button id="btn_err2" class="btn_sw" group="tab1" style="left:0px; top:0px; width:125px; height:22px; ">
  194. <caption>무조건 비급여대상</caption>
  195. <script type="javascript" ev:event="DOMActivate">
  196. <![CDATA[
  197. model.toggle ("case1" );
  198. ]]>
  199. </script>
  200. </button>
  201. <button id="btn_err1" class="btn_sw" group="tab2" style="left:0px; top:135px; width:95px; height:22px; ">
  202. <caption>사전심사 대상</caption>
  203. <script type="javascript" ev:event="DOMActivate">
  204. <![CDATA[
  205. model.toggle ("case1" );
  206. ]]>
  207. </script>
  208. </button>
  209. <caption id="cap_inform" style="left:5px; top:446px; width:150px; height:44px; color:#ff0000; ">사전심사 대상 처방에 대해</caption>
  210. <button id="btn_bfjudg" class="btn3_letter13" disabled="true" style="left:160px; top:455px; width:188px; height:22px; ">
  211. <caption>심사 요구 하시겠습니까?</caption>
  212. <script type="javascript" ev:event="DOMActivate">
  213. <![CDATA[
  214. // 처방사유, 심사팀 전달사항 저장 2014.11.12 엄영만
  215. var checkLength = model.instances(0).selectNodes( "/root/err1/prcpmsglist" ).length;
  216. var resnCnt = 0;
  217. var sUserId = "";
  218. if ( checkLength > 0 ) {
  219. sUserId = getUserInfo("userid");
  220. for ( var i =1; i <= checkLength; i++ ) {
  221. model.makeValue ( "/root/err1/prcpmsglist[" + i + "]/userid", sUserId);
  222. if ( "016" != model.getValue ( "/root/err1/prcpmsglist[" + i + "]/cnfrmk" ) && "-" == model.getValue ( "/root/err1/prcpmsglist[" + i + "]/cnfcd" )) {
  223. resnCnt++;
  224. }
  225. }
  226. if (resnCnt > 0) {
  227. messageBox ( "처방사유(심사팀전달) '필수입력 항목' 중 사유가 선택되지 않은 처방이", "I010" );
  228. return;
  229. }
  230. submit("TXMMO21502");
  231. } // End of 처방사유, 심사팀 전달사항 저장 2014.11.12 엄영만
  232. var prcpcd = "";
  233. var dcprcppkspec = ""; //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  234. var errrow = 0;
  235. var srcNodeListMainLength = opener.model.instances(0).selectNodes( "/root/main/prcp/prcplist" ).length;
  236. if( errlist1.rows > 0 ){
  237. for (var i= 1 ; i <errlist1.rows ; i++) {
  238. prcpcd = model.getValue("/root/err1/prcpmsglist[" + i + "]/prcpcd");
  239. errrow = model.getValue("/root/err1/prcpmsglist[" + i + "]/errrow");
  240. for ( var j=1 ; j < srcNodeListMainLength; j++ ) {
  241. if ( prcpcd == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/prcpcd" ) && (j == errrow || errrow == 0)) {
  242. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/drprcpetc9", "W");
  243. if( opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/status" ) == "-" ){ //만일 이미 임시저장해놓은 처방인 경우 저장할 처방이 없어서 블러킹되므로, status를 U로 바꿔준다 (2011.02.14 JJE)
  244. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/status", "U");
  245. }
  246. }
  247. }
  248. }
  249. } //end if errlist1.rows > 0
  250. if( errlist2.rows > 0 ){
  251. for (var i= 1 ; i <errlist2.rows ; i++) {
  252. prcpcd = model.getValue("/root/err2/prcpmsglist[" + i + "]/prcpcd");
  253. prcppkspec = model.getValue("/root/err2/prcpmsglist[" + i + "]/prcppkspec"); //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  254. errrow = model.getValue("/root/err2/prcpmsglist[" + i + "]/errrow");
  255. for ( var j=1 ; j < srcNodeListMainLength; j++ ) {
  256. if ( prcpcd == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/prcpcd" ) && (j == errrow || errrow == 0)) {
  257. if( prcppkspec == "2" ) { //무조건 사전심사 항목은 선택에 무관하게 본인부담으로 변경. 단, 처방코드로 비교하고 있으므로.. 하나의 처방코드가 2개 이상의 룰에 해당되고 일부는 무조건비급여, 일부는 사전심사인 경우 각각의 처리가 안됨. (2010.12.24 전지은)
  258. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "2"); //일반
  259. } else {
  260. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "1"); //본인부담
  261. }
  262. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/drprcpetc9", "Y");
  263. if( opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/status" ) == "-" ){ //만일 이미 임시저장해놓은 처방인 경우 저장할 처방이 없어서 블러킹되므로, status를 U로 바꿔준다 (2011.02.14 JJE)
  264. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/status", "U");
  265. }
  266. }
  267. }
  268. }
  269. } //end if errlist2.rows > 0
  270. opener.javascript.setParameter("SPMMO21500_rntValue", "REQ");
  271. window.close();
  272. ]]>
  273. </script>
  274. </button>
  275. <button id="btn_chgpayflag" class="btn3_letter13" style="left:370px; top:455px; width:188px; height:22px; ">
  276. <caption>본인 100%로 하시겠습니까?</caption>
  277. <script type="javascript" ev:event="DOMActivate">
  278. <![CDATA[
  279. var prcpcd = "";
  280. var prcppkspec = ""; //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  281. var errrow = 0;
  282. var srcNodeListMainLength = opener.model.instances(0).selectNodes( "/root/main/prcp/prcplist" ).length;
  283. if( errlist1.rows > 0 ){
  284. for (i= 1 ; i <errlist1.rows ; i++) {
  285. prcpcd = model.getValue("/root/err1/prcpmsglist[" + i + "]/prcpcd");
  286. prcppkspec = model.getValue("/root/err1/prcpmsglist[" + i + "]/prcppkspec"); //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  287. errrow = model.getValue("/root/err1/prcpmsglist[" + i + "]/errrow");
  288. for ( var j=1 ; j < srcNodeListMainLength; j++ ) {
  289. if ( prcpcd == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/prcpcd" ) && (j == errrow || errrow == 0)){
  290. if( prcppkspec == "2" || prcppkspec == "W2" ) {
  291. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "2"); //일반
  292. } else {
  293. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "1"); //본인부담
  294. }
  295. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/drprcpetc9", "Y");
  296. }
  297. }
  298. }
  299. }
  300. if( errlist2.rows > 0 ){
  301. for (i= 1 ; i <errlist2.rows ; i++) {
  302. prcpcd = model.getValue("/root/err2/prcpmsglist[" + i + "]/prcpcd");
  303. prcppkspec = model.getValue("/root/err2/prcpmsglist[" + i + "]/prcppkspec"); //Y: 무조건비급여, 2:무조건일반, W:심사요구->비급여변경, W2:심사요구->일반변경
  304. errrow = model.getValue("/root/err2/prcpmsglist[" + i + "]/errrow");
  305. for ( var j=1 ; j < srcNodeListMainLength; j++ ) {
  306. if ( prcpcd == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/prcpcd" ) && (j == errrow || errrow == 0) ) {
  307. //무조건 사전심사 항목은 선택에 무관하게 본인부담으로 변경. 단, 처방코드로 비교하고 있으므로.. 하나의 처방코드가 2개 이상의 룰에 해당되고 일부는 무조건비급여, 일부는 사전심사인 경우 각각의 처리가 안됨. (2010.12.24 전지은)
  308. if( prcppkspec == "2" || prcppkspec == "W2" ) {
  309. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "2"); //일반
  310. } else {
  311. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", "1"); //본인부담
  312. }
  313. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/drprcpetc9", "Y");
  314. }
  315. }
  316. }
  317. } //end if errlist2.rows > 0
  318. opener.javascript.setParameter("SPMMO21500_rntValue", "chgPayFlag");
  319. window.close();
  320. ]]>
  321. </script>
  322. </button>
  323. <button id="btn_close" class="btn3_letter15" style="left:580px; top:455px; width:212px; height:22px; ">
  324. <caption>처방변경을 하시겠습니까? (닫기)</caption>
  325. <script type="javascript" ev:event="DOMActivate">
  326. <![CDATA[
  327. opener.javascript.setParameter("SPMMO21500_rntValue", "PrcpChg");
  328. window.close();
  329. ]]>
  330. </script>
  331. </button>
  332. </xhtml:body>
  333. </xhtml:html>