SSMRF05700.js 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499
  1. var instance = document.models(0).instances(0);
  2. var pageInfo = new PAGEINFO();
  3. var nodelistMain = null;
  4. var nodelistTemp = null;
  5. /**
  6. * @group :
  7. * @ver : 2009.12.04
  8. * @by : dhkim
  9. * @---------------------------------------------------
  10. * @type : function
  11. * @access : public
  12. * @desc : 서식 로드 초기화
  13. * @param :
  14. * @return :
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize() {
  18. model.removeNodeset("/root/main/selectdiaglist");
  19. grd_diaglist.col = 2;
  20. grd_diaglist.row = grd_diaglist.rows - 1;
  21. // fAddrow();
  22. //dispOnLoadComplete("", model.getValue(pageInfo.formmastRef + "/formcd"));
  23. //dispOnLoadComplete("", "0900006875");//0900006875 : Care Plan 부분서식코드
  24. dispOnLoadComplete("", "0900006866");//0900006866 : Care Plan 부분서식코드
  25. //parent.window.javascript.setParameter("loadformcd", model.getValue(pageInfo.formmastRef + "/formcd"));
  26. //parent.body.dispatch("onloadcomplete");
  27. //model.refresh();
  28. }
  29. /**
  30. * @group :
  31. * @ver : 2009.12.04
  32. * @by : dhkim
  33. * @---------------------------------------------------
  34. * @type : function
  35. * @access : public
  36. * @desc : 부분서식 사이즈값 초기화
  37. * @param :
  38. * @return :
  39. * @---------------------------------------------------
  40. */
  41. function fInitPage(colhide, heig, wid, ivwID)
  42. {
  43. body.attribute("height") = heig;
  44. body.attribute("width") = wid;
  45. grd_diaglist.attribute("height") = heig - 2;
  46. grd_diaglist.attribute("width") = wid - 4;
  47. grd_diaglist.extendLastCol = "scroll";
  48. if(colhide)
  49. {
  50. grd_diaglist.colhidden(0) = colhide;
  51. btn_pop.attribute("visibility") = "hidden";
  52. }
  53. if (ivwID != null && ivwID != "")
  54. gSendParentCallID = ivwID;
  55. body.refresh();
  56. }
  57. /**
  58. * @group :
  59. * @ver : 2009.12.07
  60. * @by : dhkim
  61. * @---------------------------------------------------
  62. * @type : function
  63. * @access : public
  64. * @desc : 그리드 행삭제
  65. * @param :
  66. * @return :
  67. * @---------------------------------------------------
  68. */
  69. function fGrdDelRow(){
  70. var iRow = grd_diaglist.row;
  71. var path = "/root/main/recinfo/grid";
  72. var nodelistJuh = instance.selectNodes(path);
  73. var nodelength = nodelistJuh.length;
  74. var smmcnts = model.getValue("/root/main/recinfo/grid[" + iRow + "]/recitem[colno='0']/reccnts");
  75. if(nodelength > 0 && (smmcnts != "")){
  76. model.removeNode("/root/main/recinfo/grid[" + iRow + "]");
  77. model.removeNode("/root/tmpcc/selectdiaglist[" + iRow + "]");
  78. //2010.01.20 dhkim - 젤첫번째 노드일 경우 default 1row를 생성시켜줌.
  79. if(iRow == 1)
  80. fAddrow();
  81. }
  82. var nodelist = model.instance1.selectNodes("/root/main/recinfo/grid");
  83. var totrow = nodelist.length;
  84. var irowcnt = 0;
  85. //var degnitemlevlcd = model.getValue(path + "/degnitemlevlcd");
  86. //2010.01.14 dhkim - forminfo에서 degnitemlevlcd를 가져옴.
  87. var fstlevlitemcd = model.getValue(path + "/recitem[degnitemkind='GRD']/fstlevlitemcd");
  88. var supdegnitemlevlcd = parent.model.instances(0).selectSingleNode(pageInfo.formdegnRef +"[degnitemcd=" + fstlevlitemcd + "]/degnitemlevlcd").text;
  89. //2010.01.14 dhkim - problem과 plan의 degnitemlevlcd
  90. var headDegnitemlevlcd = supdegnitemlevlcd + "." + model.getValue(pageInfo.formdegnRef+"[degnitemkind='GRD' and degnitemno = '1']/degnitemlevlcd");
  91. var probDegnitemlevlcd = supdegnitemlevlcd + "." + model.getValue(pageInfo.formdegnRef+"[degnitemkind='GSU' and degnitemno = '2']/degnitemlevlcd");
  92. var planDegnitemlevlcd = supdegnitemlevlcd + "." + model.getValue(pageInfo.formdegnRef+"[degnitemkind='GSU' and degnitemno = '4']/degnitemlevlcd");
  93. model.addLog("fstlevlitemcd222 : " + fstlevlitemcd);
  94. model.addLog("supdegnitemlevlcd2222 : " + supdegnitemlevlcd);
  95. model.addLog("headDegnitemlevlcd2222 : " + headDegnitemlevlcd);
  96. model.addLog("probDegnitemlevlcd2222 : " + probDegnitemlevlcd);
  97. model.addLog("planDegnitemlevlcd2222 : " + planDegnitemlevlcd);
  98. for(var i = 0; i < totrow; i++){
  99. var node = nodelist.item(i);
  100. //2010.01.14 dhkim
  101. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='" + headDegnitemlevlcd + "']/rowno"); //Care Plan header
  102. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='" + probDegnitemlevlcd + "']/rowno"); //problem
  103. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='" + planDegnitemlevlcd + "']/rowno"); //Plan and Goal
  104. /*
  105. //20100106 dhkim
  106. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='" + degnitemlevlcd + "']/rowno"); //Care Plan header
  107. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='" + degnitemlevlcd + ".0000280']/rowno"); //problem
  108. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='" + degnitemlevlcd + ".0022825']/rowno"); //Plan and Goal
  109. */
  110. /*
  111. var path1 = node.selectSingleNode("recitem[degnitemlevlcd='0022826.0022826']/rowno"); //Care Plan header
  112. var path2 = node.selectSingleNode("recitem[degnitemlevlcd='0022826.0022826.0000280']/rowno"); //problem
  113. var path3 = node.selectSingleNode("recitem[degnitemlevlcd='0022826.0022826.0022825']/rowno"); //Plan and Goal
  114. */
  115. path1.text = irowcnt;
  116. path2.text = irowcnt;
  117. path3.text = irowcnt;
  118. irowcnt++;
  119. }
  120. grd_diaglist.rebuild();
  121. //model.refresh();
  122. }
  123. /**
  124. * @group :
  125. * @ver : 2009.12.09
  126. * @by : dhkim
  127. * @---------------------------------------------------
  128. * @type : function
  129. * @access : public
  130. * @desc : care plan 상용구 팝업을 호출한다
  131. * @param :
  132. * @return :
  133. * @---------------------------------------------------
  134. */
  135. function fClickPopUp()
  136. {
  137. setParameter("SPMRJ09900_workflag", "002");
  138. modal("SPMRJ09900", 1, 0, 0, "", "", "");
  139. var getData = getParameter("SPMRJ09900_careplan");
  140. var clickBtn = getParameter("SPMRJ09900_clickbtn");
  141. if(clickBtn == "ok"){
  142. //root.tempcc.selectdiaglist 노드를 생성해 리턴값을 세팅
  143. model.removenode("/root/tmpcc/selectdiaglist");
  144. model.makeNode("/root/tmpcc/selectdiaglist");
  145. var rowsArr = getData.split("▩");//row별로 split
  146. var colsArr = null;
  147. var smmcnts;
  148. var iRow = grd_diaglist.row;
  149. var path = "/root/main/recinfo/grid";
  150. var nodelistCarePlan = instance.selectNodes(path);
  151. var nodelength = nodelistCarePlan.length;
  152. var smmcnts = model.getValue(path + "/grid[" + nodelength + "]/recitem/reccnts");
  153. //리턴받은 값을 tempcc 노드에 임시 생성 후 recinfo 인스턴스 구조 변경
  154. var idx = 1;
  155. for(var i = 0; i < rowsArr.length; i++){
  156. colsArr = rowsArr[i].split("▦");//col별로 split
  157. for(var j = 0; j < colsArr.length; j++){
  158. model.makeValue("/root/tmpcc/selectdiaglist["+idx+"]/reccnts" + (j+1), colsArr[j]);
  159. }
  160. idx++;
  161. if(smmcnts == ""){
  162. model.removeNodeset("/root/main/recinfo/grid[" + nodelength + "]");
  163. model.removeNodeset("/root/main/selectdiaglist[" + nodelength + "]");
  164. grd_diaglist.refresh();
  165. }
  166. // fReMakeInst();//인스턴스 구조 변경
  167. }
  168. fReMakeInst();//인스턴스 구조 변경
  169. grd_diaglist.refresh();
  170. }else{
  171. return;//취소버튼
  172. }
  173. }
  174. /**
  175. * @desc : 인스턴스 구조 변경
  176. * @
  177. * @param :
  178. * @return :
  179. * @---------------------------------------------------
  180. */
  181. function fReMakeInst()
  182. {
  183. var instance = document.models(0).instances(0);
  184. var iLeng = 0;
  185. var sTmpProblem = "";
  186. var sTmpPlanGoal = "";
  187. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  188. nodelistTemp = instance.selectNodes("/root/tmpcc/selectdiaglist");
  189. var iMainleng = nodelistMain.length;
  190. // alert("[tmp]"+instance.selectNodesXml('/root/tmpcc/selectdiaglist'));
  191. // alert("iMainleng:" + iMainleng);
  192. // alert('ins1 templen ; '+instance.selectNodes("/root/tmpcc/selectdiaglist").length);
  193. if(nodelistTemp.length >= 1){
  194. for(var i = 1; i <= nodelistTemp.length; i++)
  195. {
  196. //debugger;
  197. sTmpProblem = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/reccnts1");
  198. sTmpPlanGoal = model.getValue("/root/tmpcc/selectdiaglist[" + i + "]/reccnts2");
  199. var iFndRow = getNodesetCnt(model, "/root/main/recinfo/grid/recitem[reccnts ='" + sTmpProblem + "' or rectermnm ='" + sTmpProblem + "']");
  200. //alert("iFndRow:" + iFndRow);
  201. //alert("sTmpProblem:" + sTmpProblem);
  202. //alert("sTmpPlanGoal:" + sTmpPlanGoal);
  203. if(iFndRow > 0){
  204. iMainleng = iMainleng - 1;
  205. }else if(iFndRow <= 0){
  206. iLeng = i + iMainleng;
  207. // alert(sTmpProblem);
  208. // iLeng = i;
  209. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/rectermcd", "");
  210. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/reccnts", sTmpProblem);
  211. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/cntsyn", "Y");
  212. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/comp", "true");
  213. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/colno", "0");
  214. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/rectermcd", "");
  215. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/reccnts", sTmpPlanGoal);
  216. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/cntsyn", "Y");
  217. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/comp", "true");
  218. model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/colno", "1");
  219. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 1 + "]/ccflag", "");
  220. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/rectermcd", "");
  221. // model.makeValue("/root/main/selectdiaglist[" + iLeng + "]/col["+ 2 + "]/comp", "false");
  222. }
  223. }
  224. }
  225. // alert("[main]"+instance.selectNodesXml('/root/main/selectdiaglist'));
  226. // alert("main len:"+nodelistMain.length);
  227. // return;
  228. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  229. makeProgInstance(pageInfo, instance, nodelistMain);
  230. fAddrow();
  231. }
  232. /**
  233. * @desc : 줄추가
  234. * @
  235. * @param :
  236. * @return :
  237. * @---------------------------------------------------
  238. */
  239. function fAddrow()
  240. {
  241. var path1 = "/root/main/recinfo/grid[degnitemno = '1']";
  242. var nodelistJuh = instance.selectNodes(path1);
  243. var nodelength = nodelistJuh.length;
  244. var path2 = "/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]";
  245. copyNodeset("/root/tmp", path2, "replace", model, model);
  246. var smmcnts = model.getValue("/root/tmp/recitem[colno='1']/reccnts");
  247. //alert("MRF04100.js::: smmcnts::::"+smmcnts);
  248. if(smmcnts != "" || nodelength == 0)
  249. {
  250. // model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/rectermcd", "");
  251. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/reccnts", "-");
  252. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/cntsyn", "Y");
  253. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/comp", "true");
  254. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 1 + "]/colno", "0");
  255. // model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/rectermcd", "");
  256. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/reccnts", "");
  257. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/cntsyn", "Y");
  258. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/comp", "true");
  259. model.makeValue("/root/main/selectdiaglist[" + 1 + "]/col["+ 2 + "]/colno", "1");
  260. nodelistMain = instance.selectNodes("/root/main/selectdiaglist");
  261. makeProgInstance(pageInfo, instance, nodelistMain);
  262. grd_diaglist.refresh();
  263. }
  264. //20091208 dhkim 마지막 row추가후 focus를 마지막 row로
  265. if(grd_diaglist.rows > 1){
  266. //포커스이동
  267. if(grd_diaglist.row != 1){
  268. grd_diaglist.row = grd_diaglist.rows-1;
  269. }
  270. if(grd_diaglist.col == 1){
  271. grd_diaglist.col = 2;
  272. }else{
  273. grd_diaglist.col = 1;
  274. // alert(grd_diaglist.col);
  275. }
  276. //2010.01.06 dhkim
  277. // grd_diaglist.editCell();
  278. }
  279. }
  280. /**
  281. * @desc : 편집 후 termcd가 없는 경우 '-'를 넣어줌(저장문제)
  282. * @
  283. * @param :
  284. * @return :
  285. * @---------------------------------------------------
  286. */
  287. function fEndEdit()
  288. {
  289. /*
  290. //debugger;
  291. var path1 = "/root/main/recinfo/grid[degnitemno = '1']";
  292. var nodelistJuh = instance.selectNodes(path1);
  293. var nodelength = nodelistJuh.length;
  294. var smmcnts = model.getValue("/root/main/recinfo/grid[degnitemno = '1'][" + nodelength + "]/recitem[colno='1']/reccnts");
  295. // alert('/root/main/recinfo/grid[degnitemno = "1"][' + nodelength + ']/recitem[colno="1"]/reccnts"=' +smmcnts);
  296. if (smmcnts == "")
  297. {
  298. fGrdDelRow();
  299. }
  300. */
  301. }
  302. /**
  303. * @desc : 저장전 검사
  304. * : 2010.01.06 dhkim - itemNm 추가
  305. * @
  306. * @param : itemNm 부분서식명칭
  307. * @return :
  308. * @---------------------------------------------------
  309. */
  310. function fChkGrdPreSave(itemNm)
  311. {
  312. if(itemNm == null || itemNm == ""){
  313. var pageInfo = new PAGEINFO();
  314. itemNm = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemkind = 'GRD']").getXPathString("itemnm");
  315. }
  316. var path = "/root/main/recinfo/grid";
  317. var nodelist = instance.selectNodes(path);
  318. var nodelength = (nodelist.length);
  319. var pbmVal = "", pbmNm = "";
  320. var pngVal = "", pngNm = "";
  321. var sMsg = "";
  322. var rtn = true;
  323. for(var i = 1; i <= nodelength; i++){
  324. pbmVal = model.getValue(path + "[" + i + "]/recitem[colno='0']/reccnts");
  325. pngVal = model.getValue(path + "[" + i + "]/recitem[colno='1']/reccnts");
  326. pbmNm = model.getValue(path + "[" + i + "]/recitem[colno='0']/degnitemnm");
  327. pngNm = model.getValue(path + "[" + i + "]/recitem[colno='1']/degnitemnm");
  328. if((pbmVal == null || pbmVal == "") && (pngVal == null || pngVal == "")){
  329. break;
  330. }
  331. if(pbmVal == null || pbmVal == ""){
  332. messageBox(itemNm + "부분서식의 " + i + "행에 " + pbmNm + "이 입력되지 않았습니다. " + pbmNm + "은", "I003");
  333. return false;
  334. }
  335. if(pngVal == null || pngVal == ""){
  336. messageBox(itemNm + "부분서식의 " + i + "행에 " + pngNm + "이 입력되지 않았습니다. " + pngNm + "은", "I003");
  337. return false;
  338. }
  339. }
  340. return true;
  341. }
  342. /**
  343. * @desc : 상용구 팝업
  344. * @id :
  345. * @event : DOMActivate
  346. * @return : void
  347. * @authur : 박종훈
  348. */
  349. function fPopCommUse()
  350. {
  351. /*
  352. setParameter("comn_chosflag", "C") // C : 상용구
  353. setParameter("comn_formprogflag", "B") // A: Summary, B : 주호소
  354. setParameter("openmode", "select");
  355. // 새로운 상용구 관리 Param 추가
  356. setParameter("deptflag", "U");
  357. //modal("SPMRF04700");
  358. var pageInfo = new PAGEINFO();
  359. //var grdNodeList = findNodeset(model, "/root/main/recinfo/grid[degnitemlevlcd = '0000931']");
  360. //var fstlevlitemcd = model.getValue(pageInfo.recItemRef + "[degnitemno='" + degnitemno + "']/fstlevlitemcd");
  361. setParameter("comn_degnitemcd", "0000931");
  362. setParameter("comn_srcformcd", "0000000901");
  363. modal("SPMRF04900",1 ,50, 50);
  364. var rtn = getParameter("comncnts"); //내용
  365. setParameter("comncnts", "");
  366. var grdNodeList = findNodeset(model, "/root/main/recinfo/grid[degnitemno = '1']");
  367. var rowno = grd_diaglist.row -1;
  368. var grdNode = "";
  369. var recitemNodelist = "";
  370. var recitemNode = "";
  371. var reccnts = "";
  372. var subnode = "";
  373. grdNode = grdNodeList.item(rowno);
  374. recitemNodelist = grdNode.selectSingleNode("recitem[colno='0']");
  375. if(recitemNodelist != null)
  376. {
  377. reccnts = recitemNodelist.selectSingleNode("rectermnm").text;
  378. }
  379. if (rtn == "")
  380. {
  381. return;
  382. }
  383. if (reccnts == "")
  384. {
  385. recitemNodelist.selectSingleNode("rectermnm'").text = rtn;
  386. fEndEdit();
  387. fAddrow();
  388. }
  389. else
  390. {
  391. recitemNodelist.selectSingleNode("rectermnm").text = reccnts + " " + rtn;
  392. }
  393. model.refresh();
  394. */
  395. }