SPANC00452_다학제간교육회신내용.xrw 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421
  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>다학제간 환자 교육정보 입력</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. </main>
  11. <init>
  12. <J000000010/>
  13. <J000000011/>
  14. <J000000012/>
  15. <J000000013/>
  16. </init>
  17. <hidden>
  18. <eduprepyn/>
  19. <eduwho/>
  20. <eduway/>
  21. <edurslt/>
  22. <edudd/>
  23. <edutm/>
  24. </hidden>
  25. </root>
  26. </instance>
  27. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  28. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  29. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  30. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  31. <script type="javascript" src="../../../emr/jcimngtweb/js/SMMRJ099.js"/>
  32. <script type="javascript" ev:event="xforms-ready">
  33. <![CDATA[
  34. fInit();
  35. ]]>
  36. </script>
  37. <submission id="TRMRJ09901" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/data" replace="instance" resultref="/root/hidden/temp"/>
  38. <submission id="TRMRJ00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main"/>
  39. <submission id="TXMRJ00201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/listdata" resultref="/root/hidden/temp/msglist"/>
  40. </model>
  41. <script type="javascript">
  42. <![CDATA[
  43. function fInit() {
  44. fSelectCodeList();
  45. var targetRow = model.property("SMANC00450_gridrow"); // 이벤트가 발생한 그리드 row 값
  46. targetRow = targetRow - 1; // 로우 값의 싱크를 맞추기 위해서 '-1' 해준다.
  47. var vGridRows10 = datagrid10.rows;
  48. var vGridRows11 = datagrid11.rows;
  49. var vGridRows12 = datagrid12.rows;
  50. var vGridRows13 = datagrid13.rows;
  51. var vGridCheckValue10 = "";
  52. var vGridCheckValue11 = "";
  53. var vGridCheckValue12 = "";
  54. var vGridCheckValue13 = "";
  55. var etcCheckNum12 = 0;
  56. var etcCheckNum13 = 0;
  57. var execdd = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/execdd");
  58. var edudd = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/edudd");
  59. var edutm = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/edutm");
  60. // 수행시간을 현재 시간으로 세팅
  61. var curDt = getCurrentDateTime().split(" ");
  62. if( edudd == "" || edutm == "" ) {
  63. model.setValue("/root/hidden/edudd", curDt[0]);
  64. model.setValue("/root/hidden/edutm", curDt[1]);
  65. } else {
  66. model.setValue("/root/hidden/edudd", edudd);
  67. model.setValue("/root/hidden/edutm", edutm);
  68. }
  69. if(execdd != "") {
  70. model.setValue("/root/hidden/edudd", execdd);
  71. }
  72. var eduprepyn = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/eduprepyn"); // 학습준비도
  73. var eduwho = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/eduwho"); // 교육대상자
  74. var eduway = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/eduway"); // 교육방법
  75. var edurslt = opener.model.getValue("/root/main/data/ipatmngt/grdlist["+targetRow+"]/edurslt"); // 교육결과
  76. // 학습준비도 그리드 데이터 세팅
  77. var initCheck10 = "Y";
  78. for(i10=1; i10<vGridRows10; i10++)
  79. {
  80. if(datagrid10.valueMatrix(i10,1) == eduprepyn)
  81. {
  82. datagrid10.valueMatrix(i10,0) = "true";
  83. initCheck10 = "N";
  84. }
  85. }
  86. // 학습준비도 초기 값 세팅
  87. if(initCheck10 == "Y") {
  88. datagrid10.valueMatrix(1,0) = "true";
  89. }
  90. // 교육대상자 그리드 데이터 세팅
  91. var etcCheckNum11 = 0;
  92. var initCheck11 = "Y";
  93. eduwho = eduwho.split(", ");
  94. for(i11=1; i11<vGridRows11; i11++)
  95. {
  96. for(var i = 0; i < eduwho.length; ++i) {
  97. if(datagrid11.valueMatrix(i11,1) == eduwho[i])
  98. {
  99. datagrid11.valueMatrix(i11,0) = "true";
  100. ++etcCheckNum11;
  101. initCheck11 = "N";
  102. }
  103. }
  104. // // 기타 항목 체크1( 값이 '기타' 일 경우 )
  105. // if(i11 == (vGridRows11-1) && datagrid11.valueMatrix(i11,1) == eduwho[eduwho.length-1]) {
  106. // datagrid11.cellAttribute("disabled", i11, 1 ) = "false";
  107. // datagrid11.cellstyle("background-color", i11, 1) = "#DDDDDD";
  108. // initCheck11 = "N";
  109. // }
  110. //
  111. // // 기타 항목 체크2( 값이 '기타' 가 아닐 경우 )
  112. // if(i11 == (vGridRows11-1) && etcCheckNum11 != eduwho.length) {
  113. // datagrid11.valueMatrix(i11,0) = "true";
  114. // datagrid11.valueMatrix(i11,1) = eduwho[eduwho.length-1];
  115. // datagrid11.cellAttribute("disabled", (vGridRows11-1), 1 ) = "false";
  116. // datagrid11.cellstyle("background-color", (vGridRows11-1), 1) = "#DDDDDD";
  117. // initCheck11 = "N";
  118. // }
  119. }
  120. // 교육대상자 초기 값 세팅
  121. if(initCheck11 == "Y") {
  122. datagrid11.valueMatrix(1,0) = "true";
  123. }
  124. // 교육방법 그리드 데이터 세팅
  125. var initCheck12 = "Y";
  126. eduway = eduway.split(", ");
  127. for(i12=1; i12<vGridRows12; i12++)
  128. {
  129. for(var i = 0; i < eduway.length; ++i) {
  130. if(datagrid12.valueMatrix(i12,1) == eduway[i])
  131. {
  132. datagrid12.valueMatrix(i12,0) = "true";
  133. ++etcCheckNum12;
  134. initCheck12 = "N";
  135. }
  136. }
  137. // 기타 항목 체크1( 값이 '기타' 일 경우 )
  138. if(i12 == (vGridRows12-1) && datagrid12.valueMatrix(i12,1) == eduway[eduway.length-1]) {
  139. datagrid12.cellAttribute("disabled", i12, 1 ) = "false";
  140. datagrid12.cellstyle("background-color", i12, 1) = "#DDDDDD";
  141. initCheck12 = "N";
  142. }
  143. // 기타 항목 체크2( 값이 '기타' 가 아닐 경우 )
  144. if(i12 == (vGridRows12-1) && etcCheckNum12 != eduway.length) {
  145. if(eduway[eduway.length-1] != "") {
  146. datagrid12.valueMatrix(i12,0) = "true";
  147. datagrid12.valueMatrix(i12,1) = eduway[eduway.length-1];
  148. datagrid12.cellAttribute("disabled", (vGridRows12-1), 1 ) = "false";
  149. datagrid12.cellstyle("background-color", (vGridRows12-1), 1) = "#DDDDDD";
  150. initCheck12 = "N";
  151. }
  152. }
  153. }
  154. // 교육방법 초기 값 세팅
  155. if(initCheck12 == "Y") {
  156. datagrid12.valueMatrix(1,0) = "true";
  157. }
  158. // 교육결과 그리드 데이터 세팅
  159. var initCheck13 = "Y";
  160. edurslt = edurslt.split(", ");
  161. for(i13=1; i13<vGridRows13; i13++)
  162. {
  163. for(var i = 0; i < edurslt.length; ++i) {
  164. if(datagrid13.valueMatrix(i13,1) == edurslt[i])
  165. {
  166. datagrid13.valueMatrix(i13,0) = "true";
  167. ++etcCheckNum13;
  168. initCheck13 = "N";
  169. }
  170. }
  171. // 기타 항목 체크1( 값이 '기타' 일 경우 )
  172. if(i13 == (vGridRows13-1) && datagrid13.valueMatrix(i13,1) == edurslt[edurslt.length-1]) {
  173. datagrid13.cellAttribute("disabled", i13, 1 ) = "false";
  174. datagrid13.cellstyle("background-color", i13, 1) = "#DDDDDD";
  175. initCheck13 = "N";
  176. }
  177. // 기타 항목 체크2( 값이 '기타' 가 아닐 경우 )
  178. if(i13 == (vGridRows13-1) && etcCheckNum13 != edurslt.length) {
  179. if(edurslt[edurslt.length-1] != "") {
  180. datagrid13.valueMatrix(i13,0) = "true";
  181. datagrid13.valueMatrix(i13,1) = edurslt[edurslt.length-1];
  182. datagrid13.cellAttribute("disabled", (vGridRows13-1), 1 ) = "false";
  183. datagrid13.cellstyle("background-color", (vGridRows13-1), 1) = "#DDDDDD";
  184. initCheck13 = "N";
  185. }
  186. }
  187. }
  188. // 교육결과 초기 값 세팅
  189. if(initCheck13 == "Y") {
  190. datagrid13.valueMatrix(2,0) = "true";
  191. }
  192. model.refresh();
  193. }
  194. function fSelectCodeList(){
  195. emrfGetCodeList(new Array("J000000010","J000000011","J000000012","J000000013"), new Array("/root/init/J000000010","/root/init/J000000011","/root/init/J000000012","/root/init/J000000013"));
  196. model.refresh();
  197. }
  198. function fCheckedGrd(grid){
  199. var currRow = grid.row
  200. var checkedYn = grid.valueMatrix(currRow,0);
  201. var checkedRowValue = grid.valueMatrix(currRow,2);
  202. var colDisabledCol = "";
  203. var colDisabledYN = "";
  204. var rowDefaultValue = "";
  205. if(checkedYn=="true"){
  206. colDisabledYN = "false";
  207. colDisabledCol = "#DDDDDD";
  208. rowDefaultValue = "";
  209. }else{
  210. colDisabledYN = "true";
  211. colDisabledCol = "#FFFFFF";
  212. rowDefaultValue = "직접입력(free text)";
  213. }
  214. if(checkedRowValue=="999"){
  215. grid.cellAttribute("disabled", currRow, 1 ) = colDisabledYN;
  216. grid.cellstyle("background-color", currRow, 1) = colDisabledCol;
  217. if (colDisabledYN=="true"){
  218. grid.valueMatrix(currRow, 1) = rowDefaultValue;
  219. }
  220. }
  221. }
  222. /*
  223. * 저장 버튼을 클릭하였을 경우 이벤트
  224. *
  225. */
  226. function fOnClickSaveBtn(){
  227. if(!fAddOtherGrid()){
  228. return;
  229. }
  230. fClose();
  231. }
  232. function fAddOtherGrid(){
  233. var vGridRows10 = datagrid10.rows;
  234. var vGridRows11 = datagrid11.rows;
  235. var vGridRows12 = datagrid12.rows;
  236. var vGridRows13 = datagrid13.rows;
  237. var vGridCheckValue10 = "";
  238. var vGridCheckValue11 = "";
  239. var vGridCheckValue12 = "";
  240. var vGridCheckValue13 = "";
  241. var vGridCheckCnt10 = 0;
  242. var vGridCheckCnt11 = 0;
  243. var vGridCheckCnt12 = 0;
  244. var vGridCheckCnt13 = 0;
  245. for(i10=1; i10<vGridRows10; i10++)
  246. {
  247. if(datagrid10.valueMatrix(i10,0) =="true")
  248. {
  249. vGridCheckCnt10 = vGridCheckCnt10 + 1;
  250. vGridCheckValue10 = vGridCheckValue10+datagrid10.valueMatrix(i10,1);
  251. }
  252. }
  253. if(vGridCheckCnt10==0){
  254. alert("'학습준비도' 항목을 선택 해주세요");
  255. return false;
  256. }
  257. for(i11=1; i11<vGridRows11; i11++)
  258. {
  259. if(datagrid11.valueMatrix(i11,0) =="true")
  260. {
  261. vGridCheckCnt11 = vGridCheckCnt11 + 1;
  262. if(vGridCheckValue11=="")
  263. {
  264. vGridCheckValue11 = vGridCheckValue11+datagrid11.valueMatrix(i11,1);
  265. }else
  266. {
  267. vGridCheckValue11 = vGridCheckValue11+", "+datagrid11.valueMatrix(i11,1);
  268. }
  269. }
  270. }
  271. if(vGridCheckCnt11==0){
  272. alert("'교육대상자' 항목을 1개 이상 선택 해주세요");
  273. return false;
  274. }
  275. for(i12=1; i12<vGridRows12; i12++)
  276. {
  277. if(datagrid12.valueMatrix(i12,0) =="true")
  278. {
  279. vGridCheckCnt12 = vGridCheckCnt12 + 1;
  280. if(vGridCheckValue12=="")
  281. {
  282. vGridCheckValue12 = vGridCheckValue12+datagrid12.valueMatrix(i12,1);
  283. }else
  284. {
  285. vGridCheckValue12 = vGridCheckValue12+", "+datagrid12.valueMatrix(i12,1);
  286. }
  287. }
  288. }
  289. if(vGridCheckCnt12==0){
  290. alert("'교육방법' 항목을 1개 이상 선택 해주세요");
  291. return false;
  292. }
  293. for(i13=1; i13<vGridRows13; i13++)
  294. {
  295. if(datagrid13.valueMatrix(i13,0) =="true")
  296. {
  297. vGridCheckCnt13 = vGridCheckCnt13 + 1;
  298. vGridCheckValue13 = vGridCheckValue13+datagrid13.valueMatrix(i13,1);
  299. }
  300. }
  301. if(vGridCheckCnt13==0){
  302. alert("'교육결과' 항목을 1개 이상 선택 해주세요");
  303. return false;
  304. }
  305. if(model.getValue("/root/hidden/edudd") == "") {
  306. alert("'교육일자' 를 입력해주세요");
  307. return false;
  308. }
  309. if(model.getValue("/root/hidden/edutm") == "") {
  310. alert("'교육시간' 을 입력해주세요");
  311. return false;
  312. }
  313. // 환자관리 => 입원환자관리 탭 그리드에 데이터 저장
  314. var curDt = getCurrentDateTime().split(" ");
  315. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("delyn")) = "N"; // 삭제유무(Y/N) - 'N' 으로 고정
  316. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("educd")) = "004"; // '004' 영양 - '004' 로 고정
  317. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("edudd")) = model.getValue("/root/hidden/edudd");
  318. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("edutm")) = model.getValue("/root/hidden/edutm");
  319. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("eduprepyn")) = vGridCheckValue10;
  320. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("eduwho")) = vGridCheckValue11;
  321. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("eduway")) = vGridCheckValue12;
  322. opener.grd_ipatmngt.valueMatrix(opener.grd_ipatmngt.row, opener.grd_ipatmngt.colRef("edurslt")) = vGridCheckValue13;
  323. opener.grd_ipatmngt.addStatus(opener.grd_ipatmngt.row, "update");
  324. return true;
  325. }
  326. function fClose(){
  327. window.close();
  328. }
  329. ]]>
  330. </script>
  331. </xhtml:head>
  332. <xhtml:body pagewidth="900" pageheight="220" guideline="1,1148;">
  333. <datagrid id="datagrid10" nodeset="/root/init/J000000010/J000000010" caption="선택^학습준비도" colsep="^" colwidth="40, 80" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:10px; top:30px; width:123px; height:75px; ">
  334. <col ref="selected" type="radio"/>
  335. <col ref="cdnm"/>
  336. </datagrid>
  337. <datagrid id="datagrid11" nodeset="/root/init/J000000011/J000000011" caption="선택^교육대상자" colsep="^" colwidth="40, 80, 0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:10px; top:105px; width:123px; height:100px; ">
  338. <col ref="selected" type="checkbox"/>
  339. <col disabled="true" ref="cdnm" type="input"/>
  340. <col ref="cdno" type="hidden"/>
  341. <script type="javascript" ev:event="xforms-value-changed">
  342. <![CDATA[
  343. ]]>
  344. </script>
  345. </datagrid>
  346. <datagrid id="datagrid12" nodeset="/root/init/J000000012/J000000012" caption="선택^교육방법" colsep="^" colwidth="40, 192, 0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:139px; top:29px; width:235px; height:176px; ">
  347. <col ref="selected" type="checkbox"/>
  348. <col disabled="true" ref="cdnm" type="input" style="left:40px; top:23px; width:150px; height:23px; "/>
  349. <col ref="cdno" type="hidden"/>
  350. <script type="javascript" ev:event="xforms-value-changed">
  351. <![CDATA[
  352. fCheckedGrd(datagrid12);
  353. ]]>
  354. </script>
  355. </datagrid>
  356. <datagrid id="datagrid13" nodeset="/root/init/J000000013/J000000013" caption="선택^교육결과" colsep="^" colwidth="40, 280, 0" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowsep="|" style="left:379px; top:29px; width:323px; height:176px; ">
  357. <col ref="selected" type="radio"/>
  358. <col disabled="true" ref="cdnm" type="input"/>
  359. <col ref="cdno" type="hidden"/>
  360. <script type="javascript" ev:event="xforms-value-changed">
  361. <![CDATA[
  362. fCheckedGrd(datagrid13);
  363. ]]>
  364. </script>
  365. </datagrid>
  366. <input id="ipt_edudd" ref="/root/hidden/edudd" inputtype="date" format="yyyy-mm-dd" style="left:790px; top:30px; width:90px; height:19px; "/>
  367. <caption id="caption2" style="left:705px; top:30px; width:85px; height:20px; font-weight:bold; ">* 교육일자 :</caption>
  368. <input id="ipt_edutm" ref="/root/hidden/edutm" format="hh:nn" type="input" style="left:790px; top:54px; width:65px; height:19px; "/>
  369. <caption id="caption3" style="left:705px; top:54px; width:85px; height:20px; font-weight:bold; ">* 교육시간 :</caption>
  370. <button id="btn_save" class="btn3_letter2" style="left:825px; top:185px; width:56px; height:22px; ">
  371. <caption>확인</caption>
  372. <script type="javascript" ev:event="DOMActivate">
  373. <![CDATA[
  374. fOnClickSaveBtn();
  375. ]]>
  376. </script>
  377. </button>
  378. <button id="button5" class="btn4_letter2" visibility="hidden" style="left:770px; top:160px; width:56px; height:22px; ">
  379. <caption>닫기</caption>
  380. <script type="javascript" ev:event="DOMActivate">
  381. <![CDATA[
  382. fClose();
  383. ]]>
  384. </script>
  385. </button>
  386. <caption id="caption17" ref="/root/main/patordinfo/patordinfo" class="tit_2" style="left:10px; top:5px; width:617px; height:14px; ">다학제간 환자 교육정보 입력</caption>
  387. <line id="line12" class="line_1" style="x1:10px; y1:20px; x2:702px; y2:20px; "/>
  388. <line id="line1" class="line_3" style="x1:10px; y1:210px; x2:702px; y2:210px; "/>
  389. </xhtml:body>
  390. </xhtml:html>