SPADC02700_CarePlan내용입력.xrw 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271
  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>Care Plan 내용 입력</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <careplandata>
  11. <list>
  12. <problem/>
  13. <careplan/>
  14. </list>
  15. </careplandata>
  16. </main>
  17. <send>
  18. <searchitem>
  19. <basecdcnts/>
  20. <basesuppdeptcd/>
  21. <cdgrupid/>
  22. </searchitem>
  23. </send>
  24. <init>
  25. <aebmbscddata>
  26. <codelist>
  27. <mbasecd/>
  28. <mbasecdcnts/>
  29. <mbasecdflagdesc/>
  30. <sbasecd/>
  31. <sbasecdcnts/>
  32. <sbasecdflagdesc/>
  33. </codelist>
  34. </aebmbscddata>
  35. <opnerdatanstinfo>
  36. <nstflag/>
  37. <nodepath/>
  38. </opnerdatanstinfo>
  39. </init>
  40. <hidden>
  41. <careplangridrow/>
  42. <careplangridcol/>
  43. <rgstdd/>
  44. <rgsttm/>
  45. </hidden>
  46. </root>
  47. </instance>
  48. <script type="javascript" ev:event="xforms-ready">
  49. <![CDATA[
  50. model.setValue("/root/send/searchitem/cdgrupid", "PN02");
  51. submit("TRADC02613"); // CarePlan 기준 코드 조회하기 (영양팀과 동일방법으로 조회)
  52. var nstflag = model.getValue("/root/init/opnerdatanstinfo/nstflag"); // 의뢰구분
  53. var NstNodepathMain = model.getValue("/root/init/opnerdatanstinfo/nodepath"); //opner Node Path - root/main/ennstinfo/
  54. // 수행시간을 현재 시간으로 세팅
  55. var curDt = getCurrentDateTime().split(" ");
  56. // 등록일자, 등록시간 세팅
  57. if(opener.model.getValue(NstNodepathMain + "careplaninfo/rgstdd") == "" ||
  58. opener.model.getValue(NstNodepathMain + "careplaninfo/rgsttm") == "" ||
  59. opener.model.getValue(NstNodepathMain + "careplaninfo/rgstdd") == "99991231" ||
  60. opener.model.getValue(NstNodepathMain + "careplaninfo/rgsttm") == "235959") {
  61. model.setValue("/root/hidden/rgstdd", curDt[0]);
  62. model.setValue("/root/hidden/rgsttm", curDt[1]);
  63. } else {
  64. model.setValue("/root/hidden/rgstdd", opener.model.getValue(NstNodepathMain + "careplaninfo/rgstdd"));
  65. model.setValue("/root/hidden/rgsttm", opener.model.getValue(NstNodepathMain + "careplaninfo/rgsttm"));
  66. }
  67. // Care Plan 의 problem, plan 데이터 세팅
  68. var carePlanData = opener.model.getValue(NstNodepathMain + "careplaninfo/problemcareplan");
  69. // 로우 데이터 별로 나누기
  70. carePlanData = carePlanData.split("§");
  71. for(var i = 1; i <= carePlanData.length; ++i) {
  72. var problemPlanData = carePlanData[i-1].split("▦");
  73. model.makeNode("/root/main/careplandata/list[" + i + "]");
  74. model.makeValue("/root/main/careplandata/list[" + i + "]/problem", problemPlanData[0]);
  75. model.makeValue("/root/main/careplandata/list[" + i + "]/careplan", problemPlanData[1]);
  76. }
  77. datagrid1.resizeCells();
  78. model.refresh();
  79. ]]>
  80. </script>
  81. <submission id="TRADC02613" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" resultref="/root/init/aebmbscddata"/>
  82. </model>
  83. </xhtml:head>
  84. <script type="javascript" src="../../../com/commonweb/js/common.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" src="../../../ast/commonweb/js/AST.js"/>
  88. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  89. <script type="javascript" src="../../../ast/examcureweb/js/AEZ0001.js"/>
  90. <xhtml:body pagewidth="800" pageheight="400" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  91. <group id="group1" scroll="auto" style="left:320px; top:0px; width:310px; height:380px; ">
  92. <caption id="caption4" class="tit_2" style="left:5px; top:9px; width:125px; height:13px; ">Care Plan</caption>
  93. <line id="line3" class="line_1" style="x1:0px; y1:24px; x2:306px; y2:24px; "/>
  94. <datagrid id="datagrid2" nodeset="/root/main/careplandata/list" autoresize="true" caption="Problem^Plan^basecdflag^basesuppdeptcd" colsep="^" colwidth="146, 136, 0, 0" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:30px; width:305px; height:265px; ">
  95. <col ref="problem" type="input"/>
  96. <col ref="careplan" type="input"/>
  97. <script type="javascript" ev:event="onclick">
  98. <![CDATA[
  99. var mousRow = datagrid2.mouseRow; // 마우스로 선택된 현재 행의 번호
  100. var mousCol = datagrid2.mouseCol; // 마우스로 선택된 열의 번호
  101. var fixedRows = datagrid2.fixedRows; // 고정된 행의 갯수
  102. if( (fixedRows <= mousRow) && (datagrid2.colRef("problem") == mousCol) || (datagrid2.colRef("careplan") == mousCol) ) {
  103. model.setValue("/root/hidden/careplangridrow", datagrid2.mouseRow);
  104. model.setValue("/root/hidden/careplangridcol", datagrid2.mouseCol);
  105. }
  106. ]]>
  107. </script>
  108. </datagrid>
  109. <input id="ipt_rgstdd" ref="/root/hidden/rgstdd" inputtype="date" format="yyyy-mm-dd" style="left:215px; top:300px; width:90px; height:19px; "/>
  110. <caption id="caption11" style="left:125px; top:300px; width:85px; height:20px; font-weight:bold; ">* 등록일자 :</caption>
  111. <input id="ipt_rgsttm" ref="/root/hidden/rgsttm" format="hh:nn" type="input" style="left:215px; top:320px; width:65px; height:19px; "/>
  112. <caption id="caption12" style="left:125px; top:320px; width:85px; height:20px; font-weight:bold; ">* 등록시간 :</caption>
  113. <button id="button2" class="btn2_letter3" style="left:251px; top:4px; width:53px; height:19px; ">
  114. <caption>행삭제</caption>
  115. <script type="javascript" ev:event="DOMActivate">
  116. <![CDATA[
  117. datagrid2.deleteRow(datagrid2.row, true);
  118. ]]>
  119. </script>
  120. </button>
  121. <button id="button3" class="btn2_letter3" style="left:195px; top:4px; width:53px; height:19px; ">
  122. <caption>행추가</caption>
  123. <script type="javascript" ev:event="DOMActivate">
  124. <![CDATA[
  125. datagrid2.addRow();
  126. model.refresh();
  127. ]]>
  128. </script>
  129. </button>
  130. <button id="button4" class="btn4_letter2" style="left:250px; top:355px; width:56px; height:22px; ">
  131. <caption>확인</caption>
  132. <script type="javascript" ev:event="DOMActivate">
  133. <![CDATA[
  134. var NstNodepathMain = model.getValue("/root/init/opnerdatanstinfo/nodepath"); //opner Node Path - root/main/ennstinfo/
  135. var sColSep = "▦";
  136. var sRowSep = "§";
  137. // 그리드 헤더값 생성
  138. var rCSV = "";
  139. var gridRow = datagrid2.rows; // 데이터 로우 종 갯수
  140. var fixedRows = datagrid2.fixedRows; // 고정 데이터 로우 갯수
  141. // 그리드 데이터가 없으면 메서드 종료
  142. if(gridRow <= fixedRows) {
  143. return;
  144. }
  145. if(model.getValue("/root/hidden/rgstdd") == "") {
  146. alert("'등록일자' 를 입력해주세요");
  147. return false;
  148. }
  149. if(model.getValue("/root/hidden/rgsttm") == "") {
  150. alert("'등록시간' 을 입력해주세요");
  151. return false;
  152. }
  153. // Care Plan 관련 데이터 생성
  154. for(var i = 1; i < gridRow; ++i) {
  155. // 필수 데이터 체크
  156. if(datagrid2.valueMatrix(i, datagrid2.colRef("problem")) == "" ||
  157. datagrid2.valueMatrix(i, datagrid2.colRef("careplan")) == "") {
  158. alert(i + "번째 데이터에 필수 항목인 'Problem' 및 'Plan'을 입력 해주세요");
  159. return;
  160. }
  161. if(i == 1) {
  162. rCSV +=
  163. datagrid2.valueMatrix(i, datagrid2.colRef("problem")) + sColSep +
  164. datagrid2.valueMatrix(i, datagrid2.colRef("careplan"));
  165. } else {
  166. rCSV +=
  167. sRowSep +
  168. datagrid2.valueMatrix(i, datagrid2.colRef("problem")) + sColSep +
  169. datagrid2.valueMatrix(i, datagrid2.colRef("careplan"));
  170. }
  171. }
  172. opener.model.setValue(NstNodepathMain + "careplaninfo/workflag" , "004"); // 작업구분(001:Treatment, 004:Nutrition Management, 003:Discharge, 002:Activity/Rehabilitation, 005:Nursing Care, 999:Other Care)
  173. opener.model.setValue(NstNodepathMain + "careplaninfo/problemcareplan" , rCSV); // PLOBLEM CAREPLAN
  174. opener.model.setValue(NstNodepathMain + "careplaninfo/rgstdd" , model.getValue("/root/hidden/rgstdd")); // 등록일자
  175. opener.model.setValue(NstNodepathMain + "careplaninfo/rgsttm" , model.getValue("/root/hidden/rgsttm")); // 등록시분초
  176. window.close();
  177. ]]>
  178. </script>
  179. </button>
  180. <button id="button5" class="btn4_letter3" style="left:180px; top:355px; width:68px; height:22px; ">
  181. <caption>초기화</caption>
  182. <script type="javascript" ev:event="DOMActivate">
  183. <![CDATA[
  184. if ( messageBox("초기화하시겠습니까?", "Q") == 6) {
  185. model.reset();
  186. }
  187. ]]>
  188. </script>
  189. </button>
  190. <line id="line1" class="line_3" style="x1:5px; y1:349px; x2:305px; y2:349px; "/>
  191. </group>
  192. <group id="group3" scroll="auto" style="left:0px; top:0px; width:310px; height:380px; ">
  193. <caption id="caption2" class="tit_2" style="left:5px; top:10px; width:125px; height:13px; ">대분류, 중분류 표</caption>
  194. <line id="line4" class="line_1" style="x1:0px; y1:26px; x2:304px; y2:25px; "/>
  195. <datagrid id="datagrid1" nodeset="/root/init/aebmbscddata/codelist" autoresize="true" caption="^^대분류^^^소분류^basecdflag^basesuppdeptcd" colsep="^" colwidth="15, 15, 95, 14, 17, 127, 0, 0" explorerbar="sortshow" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:30px; width:305px; height:320px; ">
  196. <col ref="mbasecd" visibility="hidden"/>
  197. <col ref="mbasecdcnts" visibility="hidden"/>
  198. <col ref="mbasecdflagdesc" type="output"/>
  199. <col ref="sbasecd" visibility="hidden"/>
  200. <col ref="sbasecdcnts" visibility="hidden"/>
  201. <col ref="sbasecdflagdesc" type="output"/>
  202. <script type="javascript" ev:event="onaftersort">
  203. <![CDATA[
  204. // 정렬된 순서대로 인스턴스를 재정의 함
  205. // datagrid2.gridToInstance();
  206. ]]>
  207. </script>
  208. <script type="javascript" ev:event="onclick">
  209. <![CDATA[
  210. var mousRow = datagrid1.mouseRow; // 마우스로 선택된 현재 행의 번호
  211. var mousCol = datagrid1.mouseCol; // 마우스로 선택된 열의 번호
  212. var fixedRows = datagrid1.fixedRows; // 고정된 행의 갯수
  213. var fixedCols = datagrid1.fixedCols; // 고정된 열의 갯수
  214. var mousRow2 = model.getValue("/root/hidden/careplangridrow"); // 마우스로 선택된 현재 행의 번호
  215. var mousCol2 = model.getValue("/root/hidden/careplangridcol"); // 마우스로 선택된 열의 번호
  216. var fixedRows2 = datagrid2.fixedRows; // 고정된 행의 갯수
  217. if( (mousRow >= fixedRows) && (mousCol >= fixedCols) &&
  218. (datagrid1.colRef("sbasecdflagdesc") == mousCol) && event.target != "datagrid1.vscroll.thumb") {
  219. if((fixedRows2 <= mousRow2) && (datagrid2.colRef("problem") == mousCol2)) {
  220. var problem = datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem"));
  221. if(problem == "") {
  222. problem = datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  223. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem")) = problem;
  224. } else {
  225. problem = problem + ", " + datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  226. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem")) = problem;
  227. }
  228. } else if((fixedRows2 <= mousRow2) && (datagrid2.colRef("careplan") == mousCol2)) {
  229. var careplan = datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan"));
  230. if(careplan == "") {
  231. careplan = datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  232. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan")) = careplan;
  233. } else {
  234. careplan = careplan + ", " + datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  235. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan")) = careplan;
  236. }
  237. }
  238. }
  239. datagrid2.resizeCells();
  240. datagrid1.refresh();
  241. ]]>
  242. </script>
  243. </datagrid>
  244. </group>
  245. </xhtml:body>
  246. </xhtml:html>