SMASB02200_감염관리기본코드관리.xrw 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SMASB02200.xrw
  4. * 설 명 : 감염관리기본코드관리
  5. * 수정이력 : 최초작성 / 2008-03-03 / 김영학
  6. * 기 타 :
  7. -->
  8. <?xml-stylesheet type="text/css" href="../../../com/commonweb/css/common.css" ?>
  9. <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">
  10. <xhtml:head>
  11. <![CDATA[}]]>
  12. <xhtml:title>기본코드관리</xhtml:title>
  13. <model id="model1">
  14. <instance id="instance1">
  15. <root xmlns="">
  16. <main>
  17. <etclst>
  18. <item>
  19. <clscd/>
  20. <etccd/>
  21. <etcdetlnm/>
  22. <useyn/>
  23. </item>
  24. </etclst>
  25. <detlcodelst>
  26. <item>
  27. <clscd/>
  28. <etccd/>
  29. <etcdetlnm/>
  30. <useyn/>
  31. </item>
  32. </detlcodelst>
  33. </main>
  34. <send>
  35. <clscd/>
  36. <req>
  37. <savedata/>
  38. <clscd/>
  39. <etccd/>
  40. </req>
  41. </send>
  42. <init>
  43. <selectinput>
  44. <item>
  45. <etcdetlnm/>
  46. <etcdetlcd/>
  47. </item>
  48. </selectinput>
  49. </init>
  50. <hidden>
  51. <item/>
  52. </hidden>
  53. </root>
  54. </instance>
  55. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  56. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  57. <submission id="TRASB02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/etclst"/>
  58. <script type="javascript" ev:event="xforms-ready">
  59. <![CDATA[
  60. model.removeNodeset("/root/main/etclst/item");
  61. model.removeNodeset("/root/main/detlcodelst/item");
  62. submit("TRASB02201");
  63. ]]>
  64. </script>
  65. <submission id="TXASB02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/req" replace="instance" resultref="/root/hidden"/>
  66. <submission id="TRASB02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/detlcodelst"/>
  67. <bind id="bind_etccd" ref="/root/main/etclst/item/etccd" readonly="../clscd!=''"/>
  68. <bind id="bind_etcdetlcd" ref="/root/main/detlcodelst/item/etccd" readonly="../etccd!=''"/>
  69. </model>
  70. <script type="javascript">
  71. <![CDATA[
  72. /*====================================================================================================================
  73. @desc : 분류코드의 환자 정보를 조회한다.
  74. ====================================================================================================================*/
  75. function fGetEtcCodeList() {
  76. model.removeNodeset("/root/main/etclst/item");
  77. model.removeNodeset("/root/main/detlcodelst/item");
  78. var ret = submit("TRASB02201");
  79. return ret;
  80. }
  81. /*====================================================================================================================
  82. @desc : 기본코드를 저장 / 수정 / 삭제 한다
  83. ====================================================================================================================*/
  84. function fExeEtcCodeList() {
  85. if( ! getGridUpdateData(grd_etclst) ) {
  86. messageBox("입력","E013"); // 그리드에 데이터가 업데이트 되지 않으면 "입력된 데이터가 없습니다."는 메시지 출력
  87. return ;
  88. }
  89. var rsv_cnt = grd_etclst.rows ;
  90. var sNode = grd_etclst.nodeset+ "[";
  91. for( var i = 1; i < rsv_cnt ; i++){
  92. if( model.getValue(sNode + i + "]/etccd" ) == "") {
  93. messageBox("분류코드는","I003"); // "분류코드는 필수 입력입니다." 라는 메시지 출력
  94. return ;
  95. }
  96. }
  97. var ret = false;
  98. if ( messageBox("기본코드정보를","Q002")==6 ) {
  99. model.makeValue("/root/send/req/clscd", "00"); // 분류코드의 컬럼 clscd 를 '00'으로 셋팅해준다.
  100. model.makeValue("/root/send/req/savedata", grd_etclst.getUpdateData()); // 분류코드의 업데이트 된 내용을 savedata에 넣는다
  101. ret = submit("TXASB02201");
  102. }
  103. return ret;
  104. }
  105. /*====================================================================================================================
  106. @desc : 상세코드 리스트 조회
  107. ====================================================================================================================*/
  108. function fGetEtcDetlCodeList(){
  109. var idx = grd_etclst.row;
  110. if( idx < 1) return ; // grd_etclst.row가 1보다 작으면 실행되지 않는다.
  111. model.removeNodeset("/root/main/detlcodelst/item");
  112. fSetEtcCodeList(grd_etclst); // 상세코드를 조회하는 함수를 호출한다.
  113. model.setValue("/root/send/req/clscd",model.getValue("/root/main/etclst/item["+grd_etclst.row+"]/etccd")); // grd_etclst.nodeset/etccd 의 값을 req/clscd값으로 저장한다.
  114. var ret = submit("TRASB02202");
  115. return ret;
  116. }
  117. /*====================================================================================================================
  118. @desc : 상세코드를 저장 / 수정 / 삭제한다.
  119. ====================================================================================================================*/
  120. function fExeEtcDetlCodeList() {
  121. if( ! getGridUpdateData(grd_detlcodelist) ) {
  122. messageBox("입력","E013");
  123. return ;
  124. }
  125. var rsv_cnt = grd_detlcodelist.rows ;
  126. var sNode = grd_detlcodelist.nodeset+ "[";
  127. for( var i = 1; i < rsv_cnt ; i++){
  128. if( model.getValue(sNode + i + "]/etccd" ) == "") {
  129. messageBox("분류코드는","I003");
  130. return ;
  131. }
  132. }
  133. var ret = false;
  134. if ( messageBox("기본코드정보를","Q002")==6 ) {
  135. model.setValue("/root/send/req/savedata", grd_detlcodelist.getUpdateData());
  136. ret = submit("TXASB02201");
  137. }
  138. return ret;
  139. }
  140. /*====================================================================================================================
  141. @desc : 기본코드 행 추가시 clscd 값에 00 값을 셋팅해준다
  142. ====================================================================================================================*/
  143. function fSetReload() {
  144. model.makeValue("/root/main/etclst/item["+grd_etclst.row+"]/clscd","00");
  145. return ;
  146. }
  147. /*====================================================================================================================
  148. @desc : 분류코드를 클릭할때 /root/send/req/etccd에 etccd 값을 셋팅해준다.
  149. ====================================================================================================================*/
  150. function fSetEtcCodeList(vGrdObj){
  151. if( vGrdObj == null ) return false;
  152. var sNode = vGrdObj.nodeset+ "[";
  153. var etccd = model.getValue(sNode + vGrdObj.row + "]/etccd" ) ;
  154. model.setValue("/root/send/req/etccd", etccd );
  155. }
  156. ]]>
  157. </script>
  158. </xhtml:head>
  159. <xhtml:body guideline="1,1124;1,1;1,-1;1,265;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  160. <group id="grp_tle" style="left:0px; top:0px; width:1125px; height:15px; ">
  161. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:149px; height:14px; ">기본코드 관리</caption>
  162. </group>
  163. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:1135px; height:712px; ">
  164. <caption id="caption1" class="tit_2" style="left:5px; top:15px; width:78px; height:14px; ">분류코드</caption>
  165. <line id="line1" class="line_1" style="x1:0px; y1:30px; x2:594px; y2:30px; "/>
  166. <datagrid id="grd_etclst" nodeset="/root/main/etclst/item" caption="caption1^코드^분류코드명^적용여부" colsep="^" colwidth="0, 100, 373, 100, 100" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:0px; top:35px; width:594px; height:663px; ">
  167. <col ref="clscd" visibility="hidden"/>
  168. <col ref="etccd" type="input" maxlength="2"/>
  169. <col ref="etcdetlnm" type="input" maxlength="100"/>
  170. <col checkvalue="Y,N" ref="useyn" type="checkbox"/>
  171. <script type="javascript" ev:event="onclick">
  172. <![CDATA[
  173. if (isDataCell() == true) {
  174. if (grd_etclst.row < 1 ) {
  175. return ;
  176. }
  177. // 코드를 클릭하였을 경우에만 상세코드를 호출한다. 분류코드명을 클릭할 경우 분류코드를 수정할 수 있도록 한다.
  178. if(model.getValue(grd_etclst.nodeset+"["+grd_etclst.row +"]/clscd") != "") {
  179. if (grd_etclst.col==2) {
  180. fGetEtcDetlCodeList();
  181. } else {
  182. grd_etclst.editCell();
  183. }
  184. }
  185. }
  186. ]]>
  187. </script>
  188. <script type="javascript" ev:event="onendedit">
  189. <![CDATA[
  190. if( event.keyCode == 13 ) { // Cell 에서 Enter를 치게 되면 이벤트를 발생한다.
  191. if(grd_etclst.col == 2 ) {
  192. grd_etclst.col = 3;
  193. grd_etclst.editCell();
  194. }
  195. else if (grd_etclst.col == 3) {
  196. btn_addcell.dispatch("DOMActivate");
  197. }
  198. }
  199. ]]>
  200. </script>
  201. </datagrid>
  202. <button id="btn_refresh" class="btn2_letter4" style="left:373px; top:10px; width:64px; height:19px; ">
  203. <caption>새로고침</caption>
  204. <script type="javascript" ev:event="DOMActivate">
  205. <![CDATA[
  206. fGetEtcCodeList();
  207. ]]>
  208. </script>
  209. </button>
  210. <button id="btn_addcell" class="btn2_letter3" style="left:440px; top:10px; width:53px; height:19px; ">
  211. <caption>행추가</caption>
  212. <script type="javascript" ev:event="DOMActivate">
  213. <![CDATA[
  214. grd_etclst.addRow();
  215. grd_etclst.col= 2;
  216. grd_etclst.editCell();
  217. ]]>
  218. </script>
  219. </button>
  220. <button id="btn_grddel" class="btn2_letter3" style="left:496px; top:10px; width:53px; height:19px; ">
  221. <caption>행삭제</caption>
  222. <script type="javascript" ev:event="DOMActivate">
  223. <![CDATA[
  224. var getRowno = deleteSelectedRows(grd_etclst, true);
  225. grd_etclst.addStatus(getRowno,"delete");
  226. ]]>
  227. </script>
  228. </button>
  229. <button id="button3" class="btn5_letter2" style="left:552px; top:10px; width:42px; height:19px; ">
  230. <caption>저장</caption>
  231. <script type="javascript" ev:event="DOMActivate">
  232. <![CDATA[
  233. if (fExeEtcCodeList() == true) {
  234. model.refresh();
  235. fGetEtcCodeList();
  236. }
  237. ]]>
  238. </script>
  239. </button>
  240. <datagrid id="grd_detlcodelist" nodeset="/root/main/detlcodelst/item" caption="분류코드^코드^상세코드명^적용여부" colsep="^" colwidth="10, 100, 300, 101" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:601px; top:35px; width:523px; height:663px; ">
  241. <col ref="clscd" visibility="hidden"/>
  242. <col ref="etccd" type="input" maxlength="12"/>
  243. <col ref="etcdetlnm" type="input" maxlength="100"/>
  244. <col checkvalue="Y,N" ref="useyn" type="checkbox"/>
  245. <script type="javascript" ev:event="onendedit">
  246. <![CDATA[
  247. if( event.keyCode == 13 ) {
  248. if(grd_detlcodelist.col == 2 ) {
  249. grd_detlcodelist.col = 3;
  250. grd_detlcodelist.editCell();
  251. } else if (grd_detlcodelist.col == 3) {
  252. btn_grdadd.dispatch("DOMActivate");
  253. }
  254. }
  255. ]]>
  256. </script>
  257. <script type="javascript" ev:event="onclick">
  258. <![CDATA[
  259. if (isDataCell() == true) {
  260. if (grd_detlcodelist.row < 1 ) {
  261. return ;
  262. }
  263. grd_detlcodelist.editCell();
  264. }
  265. ]]>
  266. </script>
  267. </datagrid>
  268. <caption id="caption3" class="tit_2" style="left:606px; top:15px; width:78px; height:14px; ">상세코드</caption>
  269. <line id="line2" class="line_1" style="x1:601px; y1:30px; x2:1123px; y2:30px; "/>
  270. <button id="btn_grdadd" class="btn2_letter3" style="left:948px; top:10px; width:53px; height:19px; ">
  271. <caption>행추가</caption>
  272. <script type="javascript" ev:event="DOMActivate">
  273. <![CDATA[
  274. grd_detlcodelist.addRow();
  275. grd_detlcodelist.col= 2;
  276. grd_detlcodelist.editCell();
  277. ]]>
  278. </script>
  279. </button>
  280. <button id="btn_seldeldetl" class="btn2_letter5" style="left:1003px; top:10px; width:75px; height:19px; ">
  281. <caption>선택행삭제</caption>
  282. <script type="javascript" ev:event="DOMActivate">
  283. <![CDATA[
  284. var getRowno = deleteSelectedRows(grd_detlcodelist, true);
  285. grd_detlcodelist.addStatus(getRowno,"delete");
  286. ]]>
  287. </script>
  288. </button>
  289. <button id="btn_save2" class="btn5_letter2" style="left:1080px; top:10px; width:42px; height:19px; ">
  290. <caption>저장</caption>
  291. <script type="javascript" ev:event="DOMActivate">
  292. <![CDATA[
  293. if (fExeEtcDetlCodeList() == true) {
  294. model.refresh();
  295. fGetEtcDetlCodeList();
  296. }
  297. ]]>
  298. </script>
  299. </button>
  300. </group>
  301. </xhtml:body>
  302. </xhtml:html>