SPMRJ00200.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  1. /* ---------------------------------------------------------------------
  2. 다학제간환자교육정보통합조회 (SMMRJ00200_다학제간환자교육정보통합조회.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By taebum
  6. : 2009-12-07 오전 10:05:51
  7. ---------------------------------------------------------------------- */
  8. /* --------------------------------------------------*/
  9. /* type : function */
  10. /* access : public */
  11. /* desc : xforms-ready시 수행한다 */
  12. /* return : */
  13. /* --------------------------------------------------*/
  14. function fInit() {
  15. var vPid ="";
  16. var vOrddd ="";
  17. var vCretno ="";
  18. var vEducd ="";
  19. var vEducnts ="";
  20. var vWorkPart ="";
  21. if (isPopup()) {
  22. vPid = opener.javascript.getParameter("SPMRJ00200_pid");
  23. vOrddd = opener.javascript.getParameter("SPMRJ00200_orddd");
  24. vCretno = opener.javascript.getParameter("SPMRJ00200_cretno");
  25. vEducd = opener.javascript.getParameter("SPMRJ00200_educd");
  26. vEducnts = opener.javascript.getParameter("SPMRJ00200_educnts");
  27. vWorkPart = opener.javascript.getParameter("SPMRJ00200_workpart");
  28. }else
  29. {
  30. vPid = getParameter("SPMRJ00200_pid");
  31. vOrddd = getParameter("SPMRJ00200_orddd");
  32. vCretno = getParameter("SPMRJ00200_cretno");
  33. vEducd = getParameter("SPMRJ00200_educd");
  34. vEducnts = getParameter("SPMRJ00200_educnts");
  35. vWorkPart = getParameter("SPMRJ00200_workpart");
  36. }
  37. if((vPid== "")||(vOrddd=="")||(vCretno=="")){
  38. messageBox("전달 인자값이 누락되었습니다.","I007"); //*I007=확인하십시오.
  39. return;
  40. }
  41. model.makeValue("/root/init/pinfo/pid", vPid);
  42. model.makeValue("/root/init/pinfo/orddd", vOrddd);
  43. model.makeValue("/root/init/pinfo/cretno",vCretno);
  44. model.makeValue("/root/init/pinfo/workpart",vWorkPart);
  45. fSelectCodeList();
  46. ipt_edudd.value = getCurrentDate().substr(0, 8);
  47. ipt_edutm.value = getCurrentTime().substr(0, 4);
  48. fSelectEducCntsList();
  49. if ((vEducd!="")||(vEducnts!="")){
  50. fOpenRowAdd(vEducd,vEducnts,vPid,vOrddd,vCretno);
  51. }
  52. }
  53. /**
  54. * 그리드 행추가 버튼을 클릭하였을 경우 이벤트
  55. *
  56. */
  57. function fOpenRowAdd(param1,param2,param3,param4,param5){
  58. datagrid06.addRow(); // 입력할 행 추가.
  59. var cur_row = datagrid06.row; // 추가된 행 번호 가져오기
  60. datagrid06.valueMatrix(cur_row,1) = param1;
  61. datagrid06.valueMatrix(cur_row,2) = param2;
  62. datagrid06.valueMatrix(cur_row,10) = param3;
  63. datagrid06.valueMatrix(cur_row,11) = param4;
  64. datagrid06.valueMatrix(cur_row,12) = param5;
  65. }
  66. function fSelectCodeList(){
  67. emrfGetCodeList(new Array("J000000006","J000000007","J000000008","J000000009","J000000010","J000000011","J000000012","J000000013","J000000014"), new Array("/root/init/J000000006","/root/init/J000000007","/root/init/J000000008","/root/init/J000000009","/root/init/J000000010","/root/init/J000000011","/root/init/J000000012","/root/init/J000000013","/root/init/J000000014"));
  68. emrfGetCodeList(new Array("J000000014"), new Array("/root/init/list14"),"Y");
  69. model.refresh();
  70. }
  71. function fSelectEducCntsList(){
  72. model.makeValue("/root/send/pid", model.getValue("/root/init/pinfo/pid"));
  73. model.makeValue("/root/send/orddd", model.getValue("/root/init/pinfo/orddd"));
  74. model.makeValue("/root/send/cretno",model.getValue("/root/init/pinfo/cretno"));
  75. submit("TRMRJ00202"); // 입력화면으로 입력만 가능 하도록 처리 주석 풀면 조회하여 기존 데어터도 처리 가능
  76. }
  77. function fCheckGrid14(){
  78. var selectedRow = datagrid14.row;
  79. if(0 == selectedRow){return;}
  80. var selectValue = datagrid14.valueMatrix(selectedRow,0);
  81. if (selectValue=="true")
  82. {
  83. var refcdid1Value = datagrid14.valueMatrix(selectedRow,5);
  84. if(!(refcdid1Value=="-"))
  85. {
  86. document.controls("button"+refcdid1Value).dispatch("onclick");
  87. }
  88. }
  89. }
  90. function fSelectedAdd(){
  91. var datagrid1Rows = datagrid14.rows;
  92. if(0 == datagrid1Rows){return;}
  93. var vSpace = " ";
  94. var vComma = ",";
  95. var vPid = model.getValue("/root/init/pinfo/pid");
  96. var vOrddd = model.getValue("/root/init/pinfo/orddd");
  97. var vCretno = model.getValue("/root/init/pinfo/cretno");
  98. for(i=1; i< datagrid1Rows;i++)
  99. {
  100. var selectValue = datagrid14.valueMatrix(i,0);
  101. var vAdverb = "";
  102. if(selectValue=="true")
  103. {
  104. var vCdidJ0000000014 = datagrid14.valueMatrix(i,4);
  105. var vMemo = datagrid14.valueMatrix(i,2);
  106. var vRefcdid1Value = datagrid14.valueMatrix(i,5);
  107. if(!(vRefcdid1Value == "-"))
  108. {
  109. var subDatagridSize = document.controls("datagrid"+vRefcdid1Value).rows
  110. var vSubTotalMomo = "";
  111. for(k=1; k< subDatagridSize;k++)
  112. {
  113. var subSelectValue = document.controls("datagrid"+vRefcdid1Value).valueMatrix(k,0);
  114. if(subSelectValue=="true")
  115. {
  116. vAdverb = " ";
  117. var vSubMomo = document.controls("datagrid"+vRefcdid1Value).valueMatrix(k,1);
  118. if (vSubTotalMomo =="")
  119. {
  120. vSubTotalMomo = vSubMomo;
  121. }else
  122. {
  123. vSubTotalMomo = vSubTotalMomo+vComma+vSpace+vSubMomo;
  124. }
  125. }
  126. }
  127. vMemo = vSubTotalMomo+vAdverb+vMemo;
  128. }
  129. datagrid06.addRow();
  130. var vAddRow = datagrid06.rows - 1;
  131. datagrid06.valueMatrix(vAddRow,1) = vCdidJ0000000014;
  132. datagrid06.valueMatrix(vAddRow,2) = vMemo;
  133. datagrid06.valueMatrix(vAddRow,10) = vPid;
  134. datagrid06.valueMatrix(vAddRow,11) = vOrddd;
  135. datagrid06.valueMatrix(vAddRow,12) = vCretno;
  136. datagrid06.refresh();
  137. }
  138. }
  139. ClearDataGridCheck(datagrid14);
  140. ClearDataGridCheck(datagridJ000000006);
  141. ClearDataGridCheck(datagridJ000000007);
  142. ClearDataGridCheck(datagridJ000000008);
  143. ClearDataGridCheck(datagridJ000000009);
  144. }
  145. function ClearDataGridCheck(grid){
  146. var gridRows = grid.rows;
  147. for(i=1; i< gridRows;i++){
  148. grid.valueMatrix(i,0) = "false";
  149. }
  150. }
  151. /**
  152. * 그리드 행추가 버튼을 클릭하였을 경우 이벤트
  153. *
  154. */
  155. function fClickRowAddBtn(){
  156. var vPid = model.getValue("/root/init/pinfo/pid");
  157. var vOrddd = model.getValue("/root/init/pinfo/orddd");
  158. var vCretno = model.getValue("/root/init/pinfo/cretno");
  159. datagrid06.addRow(); // 입력할 행 추가.
  160. var cur_row = datagrid06.row; // 추가된 행 번호 가져오기
  161. datagrid06.valueMatrix(cur_row,10) = vPid;
  162. datagrid06.valueMatrix(cur_row,11) = vOrddd;
  163. datagrid06.valueMatrix(cur_row,12) = vCretno;
  164. }
  165. /**
  166. * 삭제 버튼을 클릭하였을 경우 이벤트
  167. *
  168. */
  169. function fClickDeleteBtn(){
  170. var cur_row = datagrid06.row; // 행 번호 가져오기
  171. var iStatus = datagrid06.rowstatus(cur_row);
  172. if(cur_row <= 0 || cur_row =="undefined") {
  173. messageBox("삭제할 행을 선택하시기 바랍니다.","C002"); // *C002=선택하십시오 !
  174. return;
  175. }
  176. if (iStatus == 1 || iStatus == 3){ // 새로 삽입된 행이면
  177. datagrid06.deleteitem(cur_row);
  178. }else if (iStatus == 4){ // 삭제로 표시된 행이면
  179. datagrid06.removestatus(cur_row, "delete");
  180. }else{
  181. datagrid06.addStatus(cur_row, "delete");
  182. }
  183. }
  184. function fCheckedGrd(grid){
  185. var currRow = grid.row
  186. var checkedYn = grid.valueMatrix(currRow,0);
  187. var checkedRowValue = grid.valueMatrix(currRow,2);
  188. var colDisabledCol = "";
  189. var colDisabledYN = "";
  190. var rowDefaultValue = "";
  191. if(checkedYn=="true"){
  192. colDisabledYN = "false";
  193. colDisabledCol = "#DDDDDD";
  194. rowDefaultValue = "";
  195. }else{
  196. colDisabledYN = "true";
  197. colDisabledCol = "#FFFFFF";
  198. rowDefaultValue = "직접입력(free text)";
  199. }
  200. if(checkedRowValue=="999"){
  201. grid.cellAttribute("disabled", currRow, 1 ) = colDisabledYN;
  202. grid.cellstyle("background-color", currRow, 1) = colDisabledCol;
  203. if (colDisabledYN=="true"){
  204. grid.valueMatrix(currRow, 1) = rowDefaultValue;
  205. }
  206. }
  207. }
  208. function fAddOtherGrid(){
  209. var vGridRows06 = datagrid06.rows;
  210. var vGridRows10 = datagrid10.rows;
  211. var vGridRows11 = datagrid11.rows;
  212. var vGridRows12 = datagrid12.rows;
  213. var vGridRows13 = datagrid13.rows;
  214. var vGridCheckValue10 = "";
  215. var vGridCheckValue11 = "";
  216. var vGridCheckValue12 = "";
  217. var vGridCheckValue13 = "";
  218. var vGridCheckCnt10 = 0;
  219. var vGridCheckCnt11 = 0;
  220. var vGridCheckCnt12 = 0;
  221. var vGridCheckCnt13 = 0;
  222. for(i10=1; i10<vGridRows10; i10++)
  223. {
  224. if(datagrid10.valueMatrix(i10,0) =="true")
  225. {
  226. vGridCheckCnt10 = vGridCheckCnt10 + 1;
  227. vGridCheckValue10 = vGridCheckValue10+datagrid10.valueMatrix(i10,1);
  228. }
  229. }
  230. if(vGridCheckCnt10==0){
  231. messageBox("선택된 학습준비도 항목이 없습니다. ","I007");//I007=확인하십시오.
  232. return false;
  233. }
  234. for(i11=1; i11<vGridRows11; i11++)
  235. {
  236. if(datagrid11.valueMatrix(i11,0) =="true")
  237. {
  238. vGridCheckCnt11 = vGridCheckCnt11 + 1;
  239. if(vGridCheckValue11=="")
  240. {
  241. vGridCheckValue11 = vGridCheckValue11+datagrid11.valueMatrix(i11,1);
  242. }else
  243. {
  244. vGridCheckValue11 = vGridCheckValue11+", "+datagrid11.valueMatrix(i11,1);
  245. }
  246. }
  247. }
  248. if(vGridCheckCnt11==0){
  249. messageBox("선택된 교육대상자 항목이 없습니다. ","I007");//I007=확인하십시오.
  250. return false;
  251. }
  252. for(i12=1; i12<vGridRows12; i12++)
  253. {
  254. if(datagrid12.valueMatrix(i12,0) =="true")
  255. {
  256. vGridCheckCnt12 = vGridCheckCnt12 + 1;
  257. if(vGridCheckValue12=="")
  258. {
  259. vGridCheckValue12 = vGridCheckValue12+datagrid12.valueMatrix(i12,1);
  260. }else
  261. {
  262. vGridCheckValue12 = vGridCheckValue12+", "+datagrid12.valueMatrix(i12,1);
  263. }
  264. }
  265. }
  266. if(vGridCheckCnt12==0){
  267. messageBox("선택된 교육방법 항목이 없습니다. ","I007");//I007=확인하십시오.
  268. return false;
  269. }
  270. for(i13=1; i13<vGridRows13; i13++)
  271. {
  272. if(datagrid13.valueMatrix(i13,0) =="true")
  273. {
  274. vGridCheckCnt13 = vGridCheckCnt13 + 1;
  275. vGridCheckValue13 = vGridCheckValue13+datagrid13.valueMatrix(i13,1);
  276. }
  277. }
  278. if(vGridCheckCnt13==0){
  279. messageBox("선택된 교육결과 항목이 없습니다. ","I007");//I007=확인하십시오.
  280. return false;
  281. }
  282. for(i06=1; i06<vGridRows06; i06++)
  283. {
  284. datagrid06.valueMatrix(i06,3) = vGridCheckValue10;
  285. datagrid06.valueMatrix(i06,4) = vGridCheckValue11;
  286. datagrid06.valueMatrix(i06,5) = vGridCheckValue12;
  287. datagrid06.valueMatrix(i06,6) = vGridCheckValue13;
  288. datagrid06.valueMatrix(i06,7) = ipt_edudd.value;
  289. datagrid06.valueMatrix(i06,8) = ipt_edutm.value;
  290. }
  291. return true;
  292. }
  293. /*
  294. * 저장 버튼을 클릭하였을 경우 이벤트
  295. *
  296. */
  297. function fOnClickSaveBtn(){
  298. if(!checkGridUpdate(datagrid06)){
  299. messageBox("저장할 자료가 존재하지 않습니다. ","I007");//I007=확인하십시오.
  300. return;
  301. }
  302. if(getUserInfo("jobkindcd") ==""){
  303. messageBox("직종코드가 존재하지 않습니다. ","I007");//I007=확인하십시오.
  304. return;
  305. }
  306. if(!fAddOtherGrid()){
  307. return;
  308. }
  309. if(checkGridField(datagrid06,"educd▦educnts▦eduprepyn▦eduwho▦eduway▦edurslt▦edudd▦edutm▦pid▦orddd▦cretno")==false){
  310. messageBox("데이터중에 비어있는 필수필드가 있습니다. ","I007");//I007=확인하십시오.
  311. return;
  312. }
  313. model.makeValue("/root/send/listdata",datagrid06.getUpdateData());
  314. if ( submit("TXMRJ00201") ) {
  315. ClearDataGridCheck(datagrid10);
  316. ClearDataGridCheck(datagrid11);
  317. ClearDataGridCheck(datagrid12);
  318. ClearDataGridCheck(datagrid13);
  319. model.removeNodeset("/root/main/educcntslists");
  320. model.refresh();
  321. if( messageBox("다학제 간 환자 교육내용이 등록 되었습니다. ","Q008")!=6){//추가 하시겠습니까?
  322. fClose();
  323. }
  324. }
  325. }
  326. /**
  327. * @group :
  328. * @ver : 2006.12.20
  329. * @by :
  330. * @---------------------------------------------------
  331. * @type : function
  332. * @access : public
  333. * @desc :
  334. * @return : bool
  335. * @---------------------------------------------------
  336. */
  337. function checkGridUpdate(grid)
  338. {
  339. var iData = grid.getUpdateDataXml("insert");
  340. var uData = grid.getUpdateDataXml("update");
  341. var dData = grid.getUpdateDataXml("delete");
  342. if (iData=="" && uData=="" && dData=="") return false;
  343. else return true;
  344. }
  345. /**
  346. * @group :
  347. * @ver : 2006.12.20
  348. * @by :
  349. * @---------------------------------------------------
  350. * @type : function
  351. * @access : public
  352. * @desc :
  353. * @return : bool
  354. * @---------------------------------------------------
  355. */
  356. function checkGridField(grid, field){
  357. var nodeset = grid.nodeset;
  358. var iStatus;
  359. //var iData = grid.getUpdateDataXml("insert");
  360. for (i=grid.fixedRows; i<grid.rows; i++){
  361. iStatus = grid.rowstatus(i);
  362. if (iStatus == 1 || iStatus == 3){
  363. var fieldArr = field.split("▦");
  364. if(fieldArr.length < 1){
  365. return false;
  366. }
  367. for(var j = 0; j < fieldArr.length; j++){
  368. if(fieldArr[j] == null || fieldArr[j] == "" || fieldArr[j] == "undefined"){
  369. continue;
  370. }
  371. if(model.getValue(nodeset+"["+i+"]/"+fieldArr[j])=="") return false;
  372. }
  373. }
  374. }
  375. return true;
  376. }
  377. function fClose(){
  378. /*
  379. * 닫기 버튼 클릭시 저장 여부 체크 하여 저장 이전에 메세지 출력하고 RETURN 처리함
  380. */
  381. if(checkGridUpdate(datagrid06)&&model.getValue("/root/init/pinfo/workpart")=="inreq"){ // "inreq" 입원 의뢰의 경우 저장 필수 처리
  382. messageBox("저장 하지 않은 자료가 존재합니다. ","I007");//I007=확인하십시오.
  383. return;
  384. }
  385. window.close();
  386. }