SPMMO18200_외래수술예약처방입원전환.xrw 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274
  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. <prcplist/>
  11. </result>
  12. <init>
  13. <prcpkindcd/>
  14. <prcpclscd/>
  15. <prcpstatcd/>
  16. <hosinprcpresncd/>
  17. <payflagcd/>
  18. <orddept/>
  19. </init>
  20. <prcptemp/>
  21. <send>
  22. <cond1/>
  23. <cond2/>
  24. <cond3/>
  25. </send>
  26. <paminfo>
  27. <pid/>
  28. <orddd/>
  29. <cretno/>
  30. <instcd/>
  31. <prcpdd/>
  32. <deptcd/>
  33. <userid/>
  34. </paminfo>
  35. <saveflaginfo>
  36. <savedataflag/>
  37. <saveflag/>
  38. <prcpflag/>
  39. <inptflag/>
  40. <pamflag/>
  41. <deptcd/>
  42. <deptnm/>
  43. <userid/>
  44. <usernm/>
  45. <signyn/>
  46. <prcpdd/>
  47. <diagflag/>
  48. <prcperrflag/>
  49. </saveflaginfo>
  50. <errresult/>
  51. </root>
  52. </instance>
  53. <script type="javascript" ev:event="xforms-model-construct-done">
  54. <![CDATA[
  55. zbcfGetCodeList(new Array( "M0005" ), new Array("/root/init/prcpclscd"));
  56. if ( opener.javascript.getParameter ( "SPMMO18200_select" ) == "Y") {
  57. button1.visible = false;
  58. button2.visible = false;
  59. button3.visible = true;
  60. }
  61. ]]>
  62. </script>
  63. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  64. <submission id="TRZSD00109" mediatype="application/x-www-form-urlencoded" method="post"/>
  65. <submission id="TXMMO18201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/errresult"/>
  66. <script type="javascript" ev:event="xforms-ready">
  67. <![CDATA[
  68. document.title = document.title + "[" + opener.javascript.getParameter ( "SPMMO18200_title" ) + "]";
  69. model.setValue ( "/root/paminfo/pid", opener.javascript.getParameter ( "SPMMO18200_pid" ));
  70. model.setValue ( "/root/paminfo/orddd", opener.javascript.getParameter ( "SPMMO18200_orddd" ));
  71. model.setValue ( "/root/paminfo/cretno", opener.javascript.getParameter ( "SPMMO18200_cretno" ));
  72. model.setValue ( "/root/paminfo/instcd", getUserInfo("dutplceinstcd"));
  73. model.setValue ( "/root/paminfo/prcpdd", opener.javascript.getParameter ( "SPMMO18200_prcpdd" ));
  74. model.setValue ( "/root/paminfo/deptcd", getUserInfo("dutplcecd"));
  75. model.setValue ( "/root/paminfo/userid", getUserInfo ("userid"));
  76. model.setValue ( "/root/saveflaginfo/savedataflag", "2" );
  77. model.setValue ( "/root/saveflaginfo/saveflag", opener.javascript.getParameter ( "SPMMO18200_ioflag" )); //저장구분 O:외래, I:입원, E:응급, S:건진
  78. model.setValue ( "/root/saveflaginfo/prcpflag", "-" );
  79. model.setValue ( "/root/saveflaginfo/inptflag", opener.javascript.getParameter ( "SPMMO18200_prcpinptflag" )); //입력구분: 입력구분 (코드정의서 M0034 참조)
  80. model.setValue ( "/root/saveflaginfo/pamflag", "N" ); //원무정보: 처리구분 (외래만 해당 Y/N)
  81. model.setValue ( "/root/saveflaginfo/deptcd", getUserInfo("dutplcecd")); //부서코드
  82. model.setValue ( "/root/saveflaginfo/deptnm", getUserInfo("dutplcenm")); //부서명
  83. model.setValue ( "/root/saveflaginfo/userid", getUserInfo("userid")); //사용자ID
  84. model.setValue ( "/root/saveflaginfo/usernm", getUserInfo("usernm")); //사용자명
  85. model.setValue ( "/root/saveflaginfo/signyn", "N" );
  86. model.setValue ( "/root/saveflaginfo/prcpdd", opener.javascript.getParameter ( "SPMMO18200_prcpdd" ));
  87. model.setValue ( "/root/saveflaginfo/diagflag", "N"); //진단정보 처리구분 (Y/N) -> N일 경우 check하지 않음. ('Y'이면 진단없이 처방 저장이 안됨)
  88. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcperrflag" ))) {
  89. model.setValue ( "/root/saveflaginfo/prcperrflag", opener.javascript.getParameter ( "SPMMO18200_prcperrflag" ));
  90. } else {
  91. model.setValue ( "/root/saveflaginfo/prcperrflag", "N" );
  92. }
  93. model.refresh();
  94. grd_prcplist.rebuild();
  95. ]]>
  96. </script>
  97. </model>
  98. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  99. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  100. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  101. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  102. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  103. <script type="javascript" src="../../../com/departmentcodeweb/js/ZSD001.js"/>
  104. <script type="javascript" src="../../../emr/prcpmngtweb/js/SMMMO00100.js"/>
  105. </xhtml:head>
  106. <xhtml:body pagewidth="850" pageheight="400">
  107. <button id="button3" class="btn4_letter2" visibility="hidden" style="left:745px; top:372px; width:56px; height:22px; ">
  108. <caption>닫기</caption>
  109. <script type="javascript" ev:event="DOMActivate">
  110. <![CDATA[
  111. window.close();
  112. ]]>
  113. </script>
  114. </button>
  115. <datagrid id="grd_prcplist" nodeset="/root/result/prcplist" dragmode="true" dropmode="true" caption="^처방일자^분류^처방분류^처방코드^처방명^수량^횟수^일수^전달" colsep="^" colwidth="38, 80, 0, 80, 100, 411, 37, 40, 37" dataheight="23" ellipsis="true" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="byrow" tooltip="true" navindex="1" style="left:7px; top:4px; width:828px; height:362px; focus-rect:hidden; ">
  116. <col checkvalue="I,C" ref="status" type="checkbox" style="left:0px; top:23px; width:38px; height:23px; text-align:center; word-wrap:word; ">
  117. <choices>
  118. <item>
  119. <label>검색</label>
  120. <value>S</value>
  121. </item>
  122. <item>
  123. <label>신규</label>
  124. <value>I</value>
  125. </item>
  126. <item>
  127. <label>삭제</label>
  128. <value>D</value>
  129. </item>
  130. <item>
  131. <label>D/C</label>
  132. <value>C</value>
  133. </item>
  134. <item>
  135. <label>-</label>
  136. <value>-</value>
  137. </item>
  138. </choices>
  139. </col>
  140. <col ref="prcpdd" format="yyyy-mm-dd" style="text-align:center; "/>
  141. <col ref="prcpclscd" type="combo" style="left:93px; top:23px; width:0px; height:23px; text-align:left; ">
  142. <choices>
  143. <itemset nodeset="/root/init/prcpclscd/M0005">
  144. <label ref="cdnm"/>
  145. <value ref="cdid"/>
  146. </itemset>
  147. </choices>
  148. </col>
  149. <col ref="prcpclscd" type="combo" style="text-align:center; ">
  150. <choices>
  151. <itemset nodeset="/root/init/prcpclscd/M0005">
  152. <label ref="cdnm"/>
  153. <value ref="cdid"/>
  154. </itemset>
  155. </choices>
  156. </col>
  157. <col ref="prcpcd" style="text-align:center; "/>
  158. <col ref="prcpnm" style="left:173px; top:23px; width:250px; height:23px; text-align:left; "/>
  159. <col ref="prcpqty" format="#.###" maxlength=".3" style="left:505px; top:23px; width:37px; height:23px; text-align:center; "/>
  160. <col ref="prcptims" style="left:579px; top:23px; width:40px; height:23px; text-align:center; "/>
  161. <col ref="prcpdayno" style="left:619px; top:23px; width:37px; height:23px; text-align:center; "/>
  162. </datagrid>
  163. <line id="line5" class="line_1" style="x1:7px; y1:0px; x2:834px; y2:1px; "/>
  164. <button id="button1" class="btn4_letter2" style="left:715px; top:372px; width:56px; height:22px; ">
  165. <caption>저장</caption>
  166. <script type="javascript" ev:event="DOMActivate">
  167. <![CDATA[
  168. var srcNodeList = model.instances(0).selectNodes ("/root/result/prcplist");
  169. var curitem = 0;
  170. var nochkcnt = 0;
  171. for ( var i = 1; i<grd_prcplist.rows; i++ ) {
  172. if ( model.getValue ( "/root/result/prcplist[" + i + "]/status" ) != "I" ) {
  173. nochkcnt++;
  174. } else {
  175. model.setValue ( "/root/result/prcplist[" + i + "]/prcpkindcd", opener.javascript.getParameter ( "SPMMO18200_prcpkindcd" ));
  176. model.setValue ( "/root/result/prcplist[" + i + "]/prcpinptflag", opener.javascript.getParameter ( "SPMMO18200_prcpinptflag" ));
  177. var prcphopedd = opener.javascript.getParameter ( "SPMMO18200_prcpdd" );
  178. //의사 희망일이 현재 처방일에서 지난것들만 적용
  179. if ( prcphopedd > model.getValue ( "/root/result/prcplist[" + i + "]/prcphopedd" )) {
  180. model.setValue ( "/root/result/prcplist[" + i + "]/prcphopedd", prcphopedd );
  181. }
  182. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcpstatcd" ))) {
  183. model.setValue ( "/root/result/prcplist[" + i + "]/prcpstatcd", opener.javascript.getParameter ( "SPMMO18200_prcpstatcd" ));
  184. }
  185. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcpsignflag" ))) {
  186. model.setValue ( "/root/result/prcplist[" + i + "]/prcpsignflag", opener.javascript.getParameter ( "SPMMO18200_prcpsignflag" ));
  187. }
  188. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_oprsrvno" ))) {
  189. model.setValue ( "/root/result/prcplist[" + i + "]/oprsrvno", opener.javascript.getParameter ( "SPMMO18200_oprsrvno" ));
  190. }
  191. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_prcpauthflag" ))) {
  192. model.setValue ( "/root/result/prcplist[" + i + "]/prcpauthflag", opener.javascript.getParameter ( "SPMMO18200_prcpauthflag" ));
  193. }
  194. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_aftcertflag" ))) {
  195. model.setValue ( "/root/result/prcplist[" + i + "]/aftcertflag", opener.javascript.getParameter ( "SPMMO18200_aftcertflag" ));
  196. }
  197. if ( !isNull(opener.javascript.getParameter ( "SPMMO18200_aftcertdrid" ))) {
  198. model.setValue ( "/root/result/prcplist[" + i + "]/aftcertdrid", opener.javascript.getParameter ( "SPMMO18200_aftcertdrid" ));
  199. }
  200. if ( "O" != opener.javascript.getParameter ( "SPMMO18200_ioflag" )) {
  201. if ( model.getValue ( "/root/result/prcplist[" + i + "]/prcpclscd" ) == "B4" ) {
  202. model.setValue ( "/root/result/prcplist[" + i + "]/prepprcpflag", "Y");
  203. } else if ( model.getValue ( "/root/result/prcplist[" + i + "]/prcpclscd" ).substring (0,1) == "A" ) {
  204. //입원base 약처방인경우 병동약국으로 setting, 원내처리
  205. var antideptcd = fDrugDeptcdChk ( "/root/result", i );
  206. if ( isNull(antideptcd)) {
  207. model.setValue ( "/root/result/prcplist[" + i + "]/prcpexecdeptcd", "3240300000" );
  208. } else {
  209. model.setValue ( "/root/result/prcplist[" + i + "]/prcpexecdeptcd", antideptcd );
  210. }
  211. model.setValue ( "/root/result/prcplist[" + i + "]/hosinhosoutflag", "I" );
  212. model.setValue ( "/root/result/prcplist[" + i + "]/hosinprcpresncd", "00" );
  213. }
  214. }
  215. }
  216. }
  217. var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/result/prcplist" );
  218. model.setValue ( "/root/send/cond1", getNodeListCSV(saveFlagInfoNodeList));
  219. var savePamInfoNodeList = model.instances(0).selectNodes( "/root/paminfo" );
  220. model.setValue ( "/root/send/cond2", getNodeListCSV(savePamInfoNodeList));
  221. var saveFlagInfoNodeList = model.instances(0).selectNodes( "/root/saveflaginfo" );
  222. model.setValue ( "/root/send/cond3", getNodeListCSV(saveFlagInfoNodeList));
  223. if ( nochkcnt > 0 ) {
  224. if ( messageBox ( "체크안된 처방은 전환이 안됩니다. 저장하시겠습니까?", "Q" ) != "6" ) return;
  225. }
  226. if (submit ( "TXMMO18201", false )) {
  227. var prcpErrList = model.instances(0).selectNodes( "/root/errresult/prcperrlist" );
  228. if ( prcpErrList.length > 0 ) {
  229. xpt = window.screenleft + 10;
  230. ypt = window.screenTop + 0;
  231. coord = getRelativeCoordinate ( xpt, ypt );
  232. mon = coord[0];
  233. xpt = coord[1];
  234. ypt = coord[2];
  235. open ( "SPMMO00600", mon, xpt, ypt, "prcpdetl", "/root/errresult", "/root/result", "", false ); //오류팝업
  236. return;
  237. }
  238. opener.javascript.setParameter ( "SPMMO18200_rtnyn", "Y" );
  239. }
  240. window.close();
  241. ]]>
  242. </script>
  243. </button>
  244. <button id="button2" class="btn4_letter2" style="left:775px; top:372px; width:56px; height:22px; ">
  245. <caption>취소</caption>
  246. <script type="javascript" ev:event="DOMActivate">
  247. <![CDATA[
  248. window.close();
  249. ]]>
  250. </script>
  251. </button>
  252. <button id="btn_ex" class="btn6_letter2" style="left:9px; top:370px; width:56px; height:22px; ">
  253. <caption>엑셀</caption>
  254. <script type="javascript" ev:event="DOMActivate">
  255. <![CDATA[
  256. var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  257. if (fileName != "")
  258. {
  259. grd_prcplist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  260. }
  261. ]]>
  262. </script>
  263. </button>
  264. </xhtml:body>
  265. </xhtml:html>