SPANC00307_케어플랜내용입력.xrw 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  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>(COP) 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. </searchitem>
  22. </send>
  23. <init>
  24. <aebmbscddata>
  25. <codelist>
  26. <mbasecd/>
  27. <mbasecdcnts/>
  28. <mbasecdflagdesc/>
  29. <sbasecd/>
  30. <sbasecdcnts/>
  31. <sbasecdflagdesc/>
  32. </codelist>
  33. </aebmbscddata>
  34. </init>
  35. <hidden>
  36. <careplangridrow/>
  37. <careplangridcol/>
  38. <rgstdd/>
  39. <rgsttm/>
  40. </hidden>
  41. </root>
  42. </instance>
  43. <script type="javascript" ev:event="xforms-ready">
  44. <![CDATA[
  45. submit("TRANC00306");
  46. var globalData = getGlobalVariable("ANC00350eventtarget", "A"); // 이벤트가 발생한 그리드
  47. var target = "";
  48. var targetRow = ""; // 이벤트가 발생한 그리드 row 값
  49. if(opener.model.getValue("/root/temp/griddata/gridid") != "" &&
  50. opener.model.getValue("/root/temp/griddata/gridrow") != "") {
  51. target = opener.model.getValue("/root/temp/griddata/gridid");
  52. targetRow = opener.model.getValue("/root/temp/griddata/gridrow");
  53. }
  54. // 수행시간을 현재 시간으로 세팅
  55. var curDt = getCurrentDateTime().split(" ");
  56. // 영양관리이력 데이터 세팅
  57. if(target == "grd_nutrmngthist") {
  58. // 등록일자, 등록시간 세팅
  59. if(opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgstdd") == "" ||
  60. opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgsttm") == "" ||
  61. opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgstdd") == "99991231" ||
  62. opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgsttm") == "235959") {
  63. model.setValue("/root/hidden/rgstdd", curDt[0]);
  64. model.setValue("/root/hidden/rgsttm", curDt[1]);
  65. } else {
  66. model.setValue("/root/hidden/rgstdd", opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgstdd"));
  67. model.setValue("/root/hidden/rgsttm", opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgsttm"));
  68. }
  69. // Care Plan 의 problem, plan 데이터 세팅
  70. var carePlanData = opener.model.getValue("/root/main/maindata/nutrmngt["+targetRow+"]/problemcareplan");
  71. // 로우 데이터 별로 나누기
  72. carePlanData = carePlanData.split("§");
  73. for(var i = 1; i <= carePlanData.length; ++i) {
  74. var problemPlanData = carePlanData[i-1].split("▦");
  75. model.makeNode("/root/main/careplandata/list[" + i + "]");
  76. model.makeValue("/root/main/careplandata/list[" + i + "]/problem", problemPlanData[0]);
  77. model.makeValue("/root/main/careplandata/list[" + i + "]/careplan", problemPlanData[1]);
  78. }
  79. }
  80. // 영양검색결과이력 데이터 세팅
  81. else if(target == "grd_nutrsrchrslthist") {
  82. // 등록일자, 등록시간 세팅
  83. if(opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgstdd") == "" ||
  84. opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgsttm") == "" ||
  85. opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgstdd") == "99991231" ||
  86. opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgsttm") == "235959") {
  87. model.setValue("/root/hidden/rgstdd", curDt[0]);
  88. model.setValue("/root/hidden/rgsttm", curDt[1]);
  89. } else {
  90. model.setValue("/root/hidden/rgstdd", opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgstdd"));
  91. model.setValue("/root/hidden/rgsttm", opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgsttm"));
  92. }
  93. // Care Plan 의 problem, plan 데이터 세팅
  94. var carePlanData = opener.model.getValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/problemcareplan");
  95. // 로우 데이터 별로 나누기
  96. carePlanData = carePlanData.split("§");
  97. for(var i = 1; i <= carePlanData.length; ++i) {
  98. var problemPlanData = carePlanData[i-1].split("▦");
  99. model.makeNode("/root/main/careplandata/list[" + i + "]");
  100. model.makeValue("/root/main/careplandata/list[" + i + "]/problem", problemPlanData[0]);
  101. model.makeValue("/root/main/careplandata/list[" + i + "]/careplan", problemPlanData[1]);
  102. }
  103. } else {
  104. // 등록일자, 등록시간 세팅
  105. if(opener.model.getValue("/root/temp/senddata/rgstdd") == "" ||
  106. opener.model.getValue("/root/temp/senddata/rgsttm") == "" ||
  107. opener.model.getValue("/root/temp/senddata/rgstdd") == "99991231" ||
  108. opener.model.getValue("/root/temp/senddata/rgsttm") == "235959") {
  109. model.setValue("/root/hidden/rgstdd", curDt[0]);
  110. model.setValue("/root/hidden/rgsttm", curDt[1]);
  111. } else {
  112. model.setValue("/root/hidden/rgstdd", opener.model.getValue("/root/temp/senddata/rgstdd"));
  113. model.setValue("/root/hidden/rgsttm", opener.model.getValue("/root/temp/senddata/rgsttm"));
  114. }
  115. // Care Plan 의 problem, plan 데이터 세팅
  116. var carePlanData = opener.model.getValue("/root/temp/senddata/problemcareplan");
  117. // 로우 데이터 별로 나누기
  118. carePlanData = carePlanData.split("§");
  119. for(var i = 1; i <= carePlanData.length; ++i) {
  120. var problemPlanData = carePlanData[i-1].split("▦");
  121. model.makeNode("/root/main/careplandata/list[" + i + "]");
  122. model.makeValue("/root/main/careplandata/list[" + i + "]/problem", problemPlanData[0]);
  123. model.makeValue("/root/main/careplandata/list[" + i + "]/careplan", problemPlanData[1]);
  124. }
  125. }
  126. datagrid2.resizeCells(); // 우측 Care Plan 셀 내용의 길이에 따라 행의 높이를 자동으로 조절하도록 설정
  127. model.refresh();
  128. ]]>
  129. </script>
  130. <submission id="TRANC00306" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/searchitem" resultref="/root/init/aebmbscddata"/>
  131. </model>
  132. </xhtml:head>
  133. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  134. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  135. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  136. <script type="javascript" src="../../../ast/commonweb/js/AST.js"/>
  137. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  138. <script type="javascript" src="../../../ast/examcureweb/js/AEZ0001.js"/>
  139. <xhtml:body pagewidth="800" pageheight="400" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  140. <group id="group1" scroll="auto" style="left:320px; top:0px; width:310px; height:380px; ">
  141. <caption id="caption4" class="tit_2" style="left:5px; top:9px; width:125px; height:13px; ">Care Plan</caption>
  142. <line id="line3" class="line_1" style="x1:0px; y1:24px; x2:306px; y2:24px; "/>
  143. <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; ">
  144. <col ref="problem" type="input"/>
  145. <col ref="careplan" type="input"/>
  146. <script type="javascript" ev:event="onclick">
  147. <![CDATA[
  148. var mousRow = datagrid2.mouseRow; // 마우스로 선택된 현재 행의 번호
  149. var mousCol = datagrid2.mouseCol; // 마우스로 선택된 열의 번호
  150. var fixedRows = datagrid2.fixedRows; // 고정된 행의 갯수
  151. if( (fixedRows <= mousRow) && (datagrid2.colRef("problem") == mousCol) || (datagrid2.colRef("careplan") == mousCol) ) {
  152. model.setValue("/root/hidden/careplangridrow", datagrid2.mouseRow);
  153. model.setValue("/root/hidden/careplangridcol", datagrid2.mouseCol);
  154. }
  155. ]]>
  156. </script>
  157. </datagrid>
  158. <input id="ipt_rgstdd" ref="/root/hidden/rgstdd" inputtype="date" format="yyyy-mm-dd" style="left:215px; top:300px; width:90px; height:19px; "/>
  159. <caption id="caption11" style="left:125px; top:300px; width:85px; height:20px; font-weight:bold; ">* 등록일자 :</caption>
  160. <input id="ipt_rgsttm" ref="/root/hidden/rgsttm" format="hh:nn" type="input" style="left:215px; top:320px; width:65px; height:19px; "/>
  161. <caption id="caption12" style="left:125px; top:320px; width:85px; height:20px; font-weight:bold; ">* 등록시간 :</caption>
  162. <button id="button2" class="btn2_letter3" style="left:251px; top:4px; width:53px; height:19px; ">
  163. <caption>행삭제</caption>
  164. <script type="javascript" ev:event="DOMActivate">
  165. <![CDATA[
  166. datagrid2.deleteRow(datagrid2.row, true);
  167. ]]>
  168. </script>
  169. </button>
  170. <button id="button3" class="btn2_letter3" style="left:195px; top:4px; width:53px; height:19px; ">
  171. <caption>행추가</caption>
  172. <script type="javascript" ev:event="DOMActivate">
  173. <![CDATA[
  174. datagrid2.addRow();
  175. model.refresh();
  176. ]]>
  177. </script>
  178. </button>
  179. <button id="button4" class="btn4_letter2" style="left:250px; top:355px; width:56px; height:22px; ">
  180. <caption>확인</caption>
  181. <script type="javascript" ev:event="DOMActivate">
  182. <![CDATA[
  183. var sColSep = "▦";
  184. var sRowSep = "§";
  185. // 그리드 헤더값 생성
  186. var rCSV = "";
  187. var gridRow = datagrid2.rows; // 데이터 로우 종 갯수
  188. var fixedRows = datagrid2.fixedRows; // 고정 데이터 로우 갯수
  189. // 그리드 데이터가 없으면 메서드 종료
  190. if(gridRow <= fixedRows) {
  191. return;
  192. }
  193. if(model.getValue("/root/hidden/rgstdd") == "") {
  194. alert("'등록일자' 를 입력해주세요");
  195. return false;
  196. }
  197. if(model.getValue("/root/hidden/rgsttm") == "") {
  198. alert("'등록시간' 을 입력해주세요");
  199. return false;
  200. }
  201. // Care Plan 관련 데이터 생성
  202. for(var i = 1; i < gridRow; ++i) {
  203. // 필수 데이터 체크
  204. if(datagrid2.valueMatrix(i, datagrid2.colRef("problem")) == "" ||
  205. datagrid2.valueMatrix(i, datagrid2.colRef("careplan")) == "") {
  206. alert(i + "번째 데이터에 필수 항목인 'Problem' 및 'Plan'을 입력 해주세요");
  207. return;
  208. }
  209. if(i == 1) {
  210. rCSV +=
  211. datagrid2.valueMatrix(i, datagrid2.colRef("problem")) + sColSep +
  212. datagrid2.valueMatrix(i, datagrid2.colRef("careplan"));
  213. } else {
  214. rCSV +=
  215. sRowSep +
  216. datagrid2.valueMatrix(i, datagrid2.colRef("problem")) + sColSep +
  217. datagrid2.valueMatrix(i, datagrid2.colRef("careplan"));
  218. }
  219. }
  220. var globalData = getGlobalVariable("ANC00350eventtarget", "A"); // 이벤트가 발생한 그리드
  221. var target = "";
  222. var targetRow = ""; // 이벤트가 발생한 그리드 row 값
  223. if(opener.model.getValue("/root/temp/griddata/gridid") != "" &&
  224. opener.model.getValue("/root/temp/griddata/gridrow") != "") {
  225. target = opener.model.getValue("/root/temp/griddata/gridid");
  226. targetRow = opener.model.getValue("/root/temp/griddata/gridrow");
  227. }
  228. // 영양관리이력 데이터 세팅
  229. if(target == "grd_nutrmngthist") {
  230. // 그리드에 데이터가 없으면 종료
  231. if(opener.grd_nutrmngthist.rows > opener.grd_nutrmngthist.fixedRows) {
  232. opener.model.setValue("/root/main/maindata/nutrmngt["+targetRow+"]/workflag", "004"); // 작업구분(001:Treatment, 004:Nutrition Management, 003:Discharge, 002:Activity/Rehabilitation, 005:Nursing Care, 999:Other Care)
  233. opener.model.setValue("/root/main/maindata/nutrmngt["+targetRow+"]/problemcareplan", rCSV); // PLOBLEM CAREPLAN
  234. opener.model.setValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgstdd", model.getValue("/root/hidden/rgstdd")); // 등록일자
  235. opener.model.setValue("/root/main/maindata/nutrmngt["+targetRow+"]/rgsttm", model.getValue("/root/hidden/rgsttm")); // 등록시분초
  236. }
  237. }
  238. // 영양검색결과이력 데이터 세팅
  239. else if(target == "grd_nutrsrchrslthist") {
  240. // 그리드에 데이터가 없으면 종료
  241. if(opener.grd_nutrsrchrslthist.rows > opener.grd_nutrsrchrslthist.fixedRows) {
  242. opener.model.setValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/workflag", "004"); // 작업구분(001:Treatment, 004:Nutrition Management, 003:Discharge, 002:Activity/Rehabilitation, 005:Nursing Care, 999:Other Care)
  243. opener.model.setValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/problemcareplan", rCSV); // PLOBLEM CAREPLAN
  244. opener.model.setValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgstdd", model.getValue("/root/hidden/rgstdd")); // 등록일자
  245. opener.model.setValue("/root/main/maindata/nutrsrchrslt["+targetRow+"]/rgsttm", model.getValue("/root/hidden/rgsttm")); // 등록시분초
  246. }
  247. }
  248. else {
  249. opener.model.setValue("/root/temp/senddata/workflag", "004"); // 작업구분(001:Treatment, 004:Nutrition Management, 003:Discharge, 002:Activity/Rehabilitation, 005:Nursing Care, 999:Other Care)
  250. opener.model.setValue("/root/temp/senddata/problemcareplan", rCSV); // PLOBLEM CAREPLAN
  251. opener.model.setValue("/root/temp/senddata/rgstdd", model.getValue("/root/hidden/rgstdd")); // 등록일자
  252. opener.model.setValue("/root/temp/senddata/rgsttm", model.getValue("/root/hidden/rgsttm")); // 등록시분초
  253. }
  254. window.close();
  255. ]]>
  256. </script>
  257. </button>
  258. <button id="button5" class="btn4_letter3" style="left:180px; top:355px; width:68px; height:22px; ">
  259. <caption>초기화</caption>
  260. <script type="javascript" ev:event="DOMActivate">
  261. <![CDATA[
  262. if ( messageBox("초기화하시겠습니까?", "Q") == 6) {
  263. model.reset();
  264. }
  265. ]]>
  266. </script>
  267. </button>
  268. <line id="line1" class="line_3" style="x1:5px; y1:349px; x2:305px; y2:349px; "/>
  269. </group>
  270. <group id="group3" scroll="auto" style="left:0px; top:0px; width:310px; height:380px; ">
  271. <caption id="caption2" class="tit_2" style="left:5px; top:10px; width:125px; height:13px; ">대분류, 중분류 표</caption>
  272. <line id="line4" class="line_1" style="x1:0px; y1:26px; x2:304px; y2:25px; "/>
  273. <datagrid id="datagrid1" nodeset="/root/init/aebmbscddata/codelist" 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; ">
  274. <col ref="mbasecd" visibility="hidden"/>
  275. <col ref="mbasecdcnts" visibility="hidden"/>
  276. <col ref="mbasecdflagdesc" type="output"/>
  277. <col ref="sbasecd" visibility="hidden"/>
  278. <col ref="sbasecdcnts" visibility="hidden"/>
  279. <col ref="sbasecdflagdesc" type="output"/>
  280. <script type="javascript" ev:event="onaftersort">
  281. <![CDATA[
  282. // 정렬된 순서대로 인스턴스를 재정의 함
  283. // datagrid2.gridToInstance();
  284. ]]>
  285. </script>
  286. <script type="javascript" ev:event="onclick">
  287. <![CDATA[
  288. var mousRow = datagrid1.mouseRow; // 마우스로 선택된 현재 행의 번호
  289. var mousCol = datagrid1.mouseCol; // 마우스로 선택된 열의 번호
  290. var fixedRows = datagrid1.fixedRows; // 고정된 행의 갯수
  291. var fixedCols = datagrid1.fixedCols; // 고정된 열의 갯수
  292. var mousRow2 = model.getValue("/root/hidden/careplangridrow"); // 마우스로 선택된 현재 행의 번호
  293. var mousCol2 = model.getValue("/root/hidden/careplangridcol"); // 마우스로 선택된 열의 번호
  294. var fixedRows2 = datagrid2.fixedRows; // 고정된 행의 갯수
  295. if( (mousRow >= fixedRows) && (mousCol >= fixedCols) &&
  296. (datagrid1.colRef("sbasecdflagdesc") == mousCol) && event.target != "datagrid1.vscroll.thumb") {
  297. if((fixedRows2 <= mousRow2) && (datagrid2.colRef("problem") == mousCol2)) {
  298. var problem = datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem"));
  299. if(problem == "") {
  300. problem = datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  301. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem")) = problem;
  302. } else {
  303. problem = problem + ", " + datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  304. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("problem")) = problem;
  305. }
  306. } else if((fixedRows2 <= mousRow2) && (datagrid2.colRef("careplan") == mousCol2)) {
  307. var careplan = datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan"));
  308. if(careplan == "") {
  309. careplan = datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  310. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan")) = careplan;
  311. } else {
  312. careplan = careplan + ", " + datagrid1.valueMatrix(mousRow, datagrid1.colRef("sbasecdflagdesc"));
  313. datagrid2.valueMatrix(mousRow2, datagrid2.colRef("careplan")) = careplan;
  314. }
  315. }
  316. }
  317. datagrid1.refresh();
  318. datagrid2.resizeCells(); // 우측 Care Plan 셀 내용의 길이에 따라 행의 높이를 자동으로 조절하도록 설정
  319. ]]>
  320. </script>
  321. </datagrid>
  322. </group>
  323. </xhtml:body>
  324. </xhtml:html>