SPMMO00900_보험제한처방.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  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>보험제한처방</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <result>
  10. <limprcplist>
  11. <status/>
  12. <delflag/>
  13. <rowid/>
  14. <calcscorcd/>
  15. <prcpnm/>
  16. <qestmsg/>
  17. <choiflag/>
  18. <qestflag/>
  19. <essnyn/>
  20. <payflag/>
  21. <rsltinpt/>
  22. <qestanswcnts/>
  23. <genrdd/>
  24. <genrno/>
  25. <instcd/>
  26. <seq/>
  27. <seqno/>
  28. <fstrgstrid/>
  29. <fstrgstdt/>
  30. <lastupdtrid/>
  31. <lastupdtdt/>
  32. <prcpdd/>
  33. <prcpno/>
  34. </limprcplist>
  35. </result>
  36. <init>
  37. <payflagcd/>
  38. <msgchk>Y</msgchk>
  39. </init>
  40. <send>
  41. <limprcp/>
  42. </send>
  43. <temp/>
  44. <savedata/>
  45. </root>
  46. </instance>
  47. <script type="javascript" ev:event="xforms-model-construct-done">
  48. <![CDATA[
  49. zbcfGetCodeList(new Array("M0029" ), new Array("/root/init/payflagcd"));
  50. /* grd_prcplist.mergeCells = "bycol";
  51. grd_prcplist.mergeCol(0) = true;
  52. grd_prcplist.mergeCol(1) = true;
  53. grd_prcplist.mergeCol(2) = false;
  54. grd_prcplist.mergeCol(3) = false;
  55. grd_prcplist.mergeCol(4) = false;
  56. grd_prcplist.mergeCol(5) = false;
  57. grd_prcplist.merge(); */
  58. //by sonjy start 2008-09-09 cp요구사항 cp의 경우 보험제한팝업시 미래처방도 뜰수 있으므로 처방일자를 보여주도록 한다. 조범준과장님 요청사항.
  59. if(checkOpener() ){
  60. if( opener.model.getValue ( "/root/cp") == "Y" ){
  61. grd_prcplist.colhidden(grd_prcplist.colref("prcpdd") ) = false ;
  62. }
  63. }
  64. //by sonjy end
  65. grd_prcplist.autoResize = true ;
  66. model.refresh();
  67. ]]>
  68. </script>
  69. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  70. <script type="javascript" ev:event="xforms-ready">
  71. <![CDATA[
  72. caption7.value = caption7.value + opener.model.getValue("/root/initsrch/callnoinfo[trgtcd='insurance']/trgtcdnm");
  73. //1. qestflag 이 M일때 choiflag ready only
  74. //2. qestflag 이 M일때 qestmsg ready only
  75. ]]>
  76. </script>
  77. <bind id="bind1" ref="/root/result/limprcplist/qestanswcnts" readonly="../qestflag = &quot;M&quot; or ../rsltinpt != &quot;Y&quot; or ../delflag = &quot;Y&quot;"/>
  78. <bind id="bind2" ref="/root/result/limprcplist/choiflag" readonly="../qestflag = &quot;M&quot; or ../delflag = &quot;Y&quot;"/>
  79. <submission id="TXMMO00901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  80. </model>
  81. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  82. <script type="javascript" src="../../../emr/prcpmngtweb/js/MMO001.js"/>
  83. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  84. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  85. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  86. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  87. <script type="javascript">
  88. <![CDATA[
  89. // 화면 open, 저장시 초기화 기능을 수행한다.
  90. function fClose() {
  91. window.close();
  92. }
  93. ]]>
  94. </script>
  95. </xhtml:head>
  96. <xhtml:body pagewidth="1000" pageheight="500" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  97. <button id="button1" class="btn4_letter2" style="left:911px; top:471px; width:56px; height:22px; ">
  98. <caption>확인</caption>
  99. <script type="javascript" ev:event="DOMActivate">
  100. <![CDATA[
  101. model.removeNodeset ( "/root/send/limprcp/limprcplist" );
  102. var srcNodeList = model.instances(0).selectNodes( "/root/result/limprcplist" );
  103. var delcnt = 0;
  104. var inscnt = 0;
  105. var rowid = 0;
  106. for ( var i= 1; i<= srcNodeList.length ; i++) {
  107. //삭제 안되고, qestflag 가 M이 아닌것 중에
  108. if ( model.getValue ( "/root/result/limprcplist[" + i + "]/delflag" ) == "N" && model.getValue ( "/root/result/limprcplist[" + i + "]/qestflag" ) != "M" ) {
  109. rowid = model.getValue ( "/root/result/limprcplist[" + i + "]/rowid" );
  110. var calcscorcd = model.getValue ( "/root/result/limprcplist[rowid='" + rowid + "' and choiflag='Y']/calcscorcd" );
  111. if ( isNull(calcscorcd)) {
  112. var msg = model.getValue ( "/root/result/limprcplist[" + i + "]/prcpnm" ) + " 처방의 선택된 내용이" ;
  113. messageBox ( msg ,"I004" );
  114. return;
  115. }
  116. if ( model.getValue ( "/root/result/limprcplist[" + i + "]/choiflag" ) == "Y" ) { //선택 된것중에
  117. if ( model.getValue ( "/root/result/limprcplist[" + i + "]/rsltinpt" ) == "Y" ) { //사유입력해야 하는 것 중
  118. if ( isNull ( model.getValue ( "/root/result/limprcplist[" + i + "]/qestanswcnts" ))) { //사유가 없다면
  119. var msg = model.getValue ( "/root/result/limprcplist[" + i + "]/prcpnm" ) + " 처방의 답변내용이 입력되지" ;
  120. messageBox ( msg ,"E007" );
  121. return;
  122. }
  123. }
  124. //inscnt++;
  125. //저장할 데이터를 복사한다.
  126. //appendChildPrcp ( "/root/result/limprcplist[" + i + "]", "/root/savedata", "main" );
  127. }
  128. } else if ( model.getValue ( "/root/result/limprcplist[" + i + "]/delflag" ) == "Y" ) {
  129. delcnt++;
  130. }
  131. }
  132. /*if ( inscnt > 0 ) {
  133. var saveInfo = model.instances(0).selectNodes( "/root/savedata/limprcplist" );
  134. model.setValue ( "/root/send/limprcp", getNodeListCSV(saveInfo));
  135. submit ( "TXMMO00901", false );
  136. return;
  137. }*/
  138. if ( delcnt > 0 ) {
  139. messageBox ( "삭제선택된 처방이 있습니다. 삭제후 계속 저장됩니다." , "I" );
  140. }
  141. var srcNodeListMainLength = opener.model.instances(0).selectNodes( "/root/main/prcp/prcplist" ).length;
  142. var rowid = 0;
  143. var limprcpdd = "";
  144. var limprcpno = "";
  145. var drprcpdd = "";
  146. var drprcpno = "";
  147. var execprcpdd = "";
  148. var execprcpno = "";
  149. var checkcnt = 0;
  150. for ( var i= 1; i <= srcNodeList.length; i++ ) {
  151. rowid = model.getValue ( "/root/result/limprcplist[" + i + "]/rowid" );
  152. //20081117 마정민수정: 선택값이 있는 처방과 메시지만 보여주는 처방이 같이 있는 경우 저장하고 나서 메시지만 있는 처방 팝업이 다시 뜨는 오류 수정
  153. //메시지만 있는 처방은 M으로 표시하여 체크에서 빠지게 함.
  154. if ( model.getValue ( "/root/result/limprcplist[" + i + "]/qestflag" ) == "M" ) {
  155. var calcscorcd = model.getValue ( "/root/result/limprcplist[rowid='" + rowid + "' and choiflag='Y']/calcscorcd" );
  156. if ( isNull(calcscorcd)) {
  157. for ( var j=1 ; j <= srcNodeListMainLength; j++ ) {
  158. if ( rowid == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol5" ) ){
  159. if ( opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol4") == "M" ) {
  160. break;
  161. } else {
  162. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol4", "M" );
  163. break;
  164. }
  165. }
  166. }
  167. }
  168. }
  169. if ( model.getValue ( "/root/result/limprcplist[" + i + "]/delflag" ) == "Y" ) { //삭제 된것이 있으면
  170. //화면에 있는 것을 삭제 표시 해준다.
  171. for ( var j=1 ; j <= srcNodeListMainLength; j++ ) {
  172. // alert ( "rowid=>" + rowid );
  173. // alert ( "tempcol" + opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol5" ));
  174. // alert ( "j" + j );
  175. if ( rowid == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol5" )) {
  176. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol6", "D" );
  177. checkcnt++;
  178. break;
  179. }
  180. }
  181. } else if ( model.getValue ( "/root/result/limprcplist[" + i + "]/choiflag" ) == "Y" ) { //삭제된 것이 없으면 tempcol4에 저장 데이터를 박아준다.
  182. var limsavedata = "calcscorcd|prcpdd|prcpno|qestflag|essnyn |payflag|rsltinpt|qestanswcnts|genrdd|genrno|instcd|seq|seqno|fstrgstrid|fstrgstdt|lastupdtrid|lastupdtdt^"
  183. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/calcscorcd" ) + "|";
  184. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/prcpdd" ) + "|";
  185. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/prcpno" ) + "|";
  186. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/qestflag" ) + "|";
  187. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/essnyn" ) + "|";
  188. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/payflag" ) + "|";
  189. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/rsltinpt" ) + "|";
  190. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/qestanswcnts" ) + "|";
  191. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/genrdd" ) + "|";
  192. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/genrno" ) + "|";
  193. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/instcd" ) + "|";
  194. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/seq" ) + "|";
  195. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/seqno" ) + "|";
  196. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/fstrgstrid" ) + "|";
  197. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/fstrgstdt" ) + "|";
  198. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/lastupdtrid" ) + "|";
  199. limsavedata = limsavedata + model.getValue ( "/root/result/limprcplist[" + i + "]/lastupdtdt" ) + "^";
  200. var payflag = model.getValue ( "/root/result/limprcplist[" + i + "]/payflag" );
  201. //화면에 있는 것을 삭제 표시 해준다.
  202. for ( var j=1 ; j <= srcNodeListMainLength; j++ ) {
  203. if ( rowid == opener.model.getValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol5" ) ){
  204. checkcnt++;
  205. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/tempcol4", limsavedata );
  206. if ( payflag == "0" || payflag == "1" || payflag == "2" ) {
  207. opener.model.setValue ( "/root/main/prcp/prcplist[" + j + "]/payflagcd", payflag );
  208. }
  209. break;
  210. }
  211. }
  212. }
  213. }
  214. if ( delcnt > 0 ) {
  215. opener.javascript.fDeleteRow ( "noselect" );
  216. }
  217. if ( checkcnt > 0 ) {
  218. opener.javascript.setParameter ( "SPMMO00900_rtnyn", "Y" )
  219. } else {
  220. opener.javascript.setParameter ( "SPMMO00900_rtnyn", "C" )
  221. }
  222. //20081209 마정민 추가: 메시지만 있을 경우에는 창을 다시 띄우지 않기 위해 레지스트리에 등록
  223. if ( model.getValue ( "/root/init/msgchk" ) == "Y" ) {
  224. opener.window.javascript.setRegistryPrcp ( "limprcp|"+getCurrentDate(), "Y" );
  225. } else {
  226. opener.window.javascript.setRegistryPrcp ( "limprcp|"+getCurrentDate(), "N" );
  227. }
  228. window.close();
  229. ]]>
  230. </script>
  231. </button>
  232. <caption id="caption1" class="tit_2" style="left:5px; top:0px; width:328px; height:14px; ">처방제한 항목이 존재합니다. 해당사항에 선택하세요</caption>
  233. <line id="line7" class="line_1" style="x1:3px; y1:15px; x2:970px; y2:15px; "/>
  234. <datagrid id="grd_prcplist" nodeset="/root/result/limprcplist" caption="group^처방일자^처방코드^질문사항^선택^급여구분^답변내용^답변내용^삭제" colsep="^" colwidth="49, 82, 150, 470, 35, 90, 31, 100, 31" dataheight="23" extendlastcol="scroll" mergecells="byrestriccol" rowheight="23" rowsep="|" selectionmode="free" tooltip="true" style="left:3px; top:20px; width:967px; height:445px; word-wrap:word; ">
  235. <col ref="rowid" visibility="hidden"/>
  236. <col ref="prcpdd" type="output" visibility="hidden" format="yyyy-mm-dd"/>
  237. <col ref="displayprcpnm" type="output"/>
  238. <col ref="qestmsg"/>
  239. <col checkvalue="Y,N" ref="choiflag" type="checkbox"/>
  240. <col disabled="true" ref="payflag" type="combo">
  241. <choices>
  242. <itemset nodeset="/root/init/payflagcd/M0029">
  243. <label ref="cdnm"/>
  244. <value ref="cdid"/>
  245. </itemset>
  246. </choices>
  247. </col>
  248. <col ref="rsltinpt" type="combo" style="text-align:center; ">
  249. <choices>
  250. <item>
  251. <label>필요</label>
  252. <value>Y</value>
  253. </item>
  254. <item>
  255. <label>-</label>
  256. <value>N</value>
  257. </item>
  258. </choices>
  259. </col>
  260. <col ref="qestanswcnts" type="input"/>
  261. <col checkvalue="Y,N" ref="delflag" type="checkbox"/>
  262. <script type="javascript" ev:event="xforms-value-changed">
  263. <![CDATA[
  264. if ( grd_prcplist.col == grd_prcplist.colRef ( "choiflag" ) || grd_prcplist.col == grd_prcplist.colRef ( "delflag" ) ) {
  265. var srcNodeList = model.instances(0).selectNodes( "/root/result/limprcplist" );
  266. var currow = grd_prcplist.row;
  267. if ( grd_prcplist.col == grd_prcplist.colRef ( "delflag" )) {
  268. // 삭제 체크 선택 시 여러 row일 경우 mregecell이 안되므로 하드 코딩 20080828 msh
  269. var choiflag = model.getValue ( "/root/result/limprcplist[" + currow + "]/choiflag" );
  270. for ( var i= currow; i<=srcNodeList.length; i++) {
  271. var j = i + 1;
  272. var currowcd = model.getValue ( "/root/result/limprcplist[" + i + "]/calcscorcd" );
  273. var nextrowcd = model.getValue ( "/root/result/limprcplist[" + j + "]/calcscorcd" );
  274. if (currowcd == nextrowcd) {
  275. model.setValue("/root/result/limprcplist[" + j + "]/delflag", model.getValue( "/root/result/limprcplist[" + i + "]/delflag" )) ;
  276. }
  277. }
  278. model.refresh();
  279. } else if ( grd_prcplist.col == grd_prcplist.colRef ( "choiflag" )) {
  280. //var mergeprcpcd = model.getValue ( "/root/result/limprcplist[" + currow + "]/calcscorcd" );
  281. var mergeseqno = model.getValue ( "/root/result/limprcplist[" + currow + "]/seqno" );
  282. var mergerowid = model.getValue ( "/root/result/limprcplist[" + currow + "]/rowid" );
  283. var prcpcd = "";
  284. var rowid = "";
  285. for ( var i= 1; i<=srcNodeList.length ; i++) {
  286. // prcpcd = model.getValue ( "/root/result/limprcplist[" + i + "]/calcscorcd" ); // 같은 코드일 때 같게 변경되는 것은 막는다.
  287. rowid = model.getValue ( "/root/result/limprcplist[" + i + "]/rowid" );
  288. seqno = model.getValue ( "/root/result/limprcplist[" + i + "]/seqno" );
  289. //if ( mergeprcpcd == prcpcd ) {
  290. if ( mergerowid == rowid ) {
  291. if ( mergeseqno == seqno ) { //처방코드가 같은 머지된 부분에서
  292. model.setValue ( "/root/result/limprcplist[" + i + "]/choiflag", "Y" );
  293. } else {
  294. model.setValue ( "/root/result/limprcplist[" + i + "]/choiflag", "N" );
  295. }
  296. }
  297. }
  298. }
  299. model.refresh();
  300. model.recalculate();
  301. }
  302. ]]>
  303. </script>
  304. </datagrid>
  305. <button id="button23" class="btn3_letter4" visibility="hidden" style="left:260px; top:470px; width:80px; height:22px; ">
  306. <caption>고시원문</caption>
  307. <script type="javascript" ev:event="DOMActivate">
  308. <![CDATA[
  309. messageBox ( "구현중입니다.", "E" );
  310. ]]>
  311. </script>
  312. </button>
  313. <caption id="caption7" class="hand" visibility="visible" style="left:1px; top:471px; width:259px; height:20px; ">인정기준 문의 : 보험팀 T.</caption>
  314. <bool id="bool1" checkvalue="Y,N" ref="/root/init/msgchk" style="left:545px; top:471px; width:25px; height:20px; "/>
  315. <caption id="caption2" style="left:568px; top:472px; width:341px; height:20px; ">message만 있는 경우 오늘 하루 동안 페이지를 열지 않습니다.</caption>
  316. </xhtml:body>
  317. </xhtml:html>