MMRDegnForm.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. function initFormAtLast_MMRDegnForm()
  2. {
  3. var formCd = fGetFormMast("formcd");
  4. var srcFormCd = fGetFormMast("srcformcd");
  5. if(formCd == "0000000615") {//Delivery Note
  6. fSetIFData0000000615_MMRDegnForm();
  7. }
  8. else if(formCd == "0900005340") {//진료의뢰서
  9. //2012/05/11 Start 진료의뢰서의 사용구분을 사용자가 선택 할 수 있도록 주석처리
  10. // fSetIFData0900005340_MMRDegnForm();
  11. //2012/05/11 End
  12. }
  13. else if(srcFormCd == "0000000737") {//수술전평가서
  14. fSetIFData0000000737_MMRDegnForm();
  15. }
  16. else if(srcFormCd == "0800003416") {//Post Op Note
  17. fSetIFData0800003416_MMRDegnForm();
  18. }
  19. }
  20. /**
  21. * 술전평가서 Data연동
  22. * @return
  23. */
  24. function fSetIFData0000000737_MMRDegnForm()
  25. {
  26. if (fGetFormRec("status") == "C") {
  27. var pageInfo = new PAGEINFO();
  28. var degnlvcd = "0016650.0000960";
  29. var itemVal = new ITEMVAL();
  30. var opcnfmdd = opener.window.javascript.getParameter("opcnfmdd"); // 수술확정일자(수술전 평가서)
  31. model.makeValue("/root/opsend/pid", fGetFormRec("pid"));
  32. model.makeValue("/root/opsend/opcnfmdd", opcnfmdd);
  33. var oprsrvno = opener.window.javascript.getParameter("oprsrvno"); // 수술예약번호(수술전 평가서)
  34. model.makeValue("/root/opsend/oprsrvno", oprsrvno);
  35. var grdNode = instance1.selectSingleNode("/root/temp/recinfo/grid");
  36. if(submit("TRMMR01103")) {
  37. var opRecList = instance1.selectNodes("/root/optmp");
  38. if (opRecList.length > 0) {
  39. itemVal.reccnts = model.getValue("/root/optmp/recitem/hb");
  40. ivw_base.window.javascript.setFormItemValue("0005344.0001179", itemVal, false);
  41. itemVal.reccnts = model.getValue("/root/optmp/recitem/hct");
  42. ivw_base.window.javascript.setFormItemValue("0005344.0001276", itemVal, false);
  43. itemVal.reccnts = model.getValue("/root/optmp/recitem/platelet");
  44. ivw_base.window.javascript.setFormItemValue("0005344.0002551", itemVal, false);
  45. itemVal.reccnts = model.getValue("/root/optmp/recitem/bt");
  46. ivw_base.window.javascript.setFormItemValue("0005344.0005327", itemVal, false);
  47. itemVal.reccnts = model.getValue("/root/optmp/recitem/pt");
  48. ivw_base.window.javascript.setFormItemValue("0005344.0002243", itemVal, false);
  49. itemVal.reccnts = model.getValue("/root/optmp/recitem/ptinr");
  50. ivw_base.window.javascript.setFormItemValue("0005344.0008378", itemVal, false);
  51. itemVal.reccnts = model.getValue("/root/optmp/recitem/aptt");
  52. ivw_base.window.javascript.setFormItemValue("0005344.0006147", itemVal, false);
  53. itemVal.reccnts = model.getValue("/root/optmp/recitem/fbs");
  54. ivw_base.window.javascript.setFormItemValue("0005344.0001267", itemVal, false);
  55. itemVal.reccnts = model.getValue("/root/optmp/recitem/sgot");
  56. ivw_base.window.javascript.setFormItemValue("0005344.0002885", itemVal, false);
  57. itemVal.reccnts = model.getValue("/root/optmp/recitem/sgpt");
  58. ivw_base.window.javascript.setFormItemValue("0005344.0002886", itemVal, false);
  59. itemVal.reccnts = model.getValue("/root/optmp/recitem/na");
  60. ivw_base.window.javascript.setFormItemValue("0005344.0002901", itemVal, false);
  61. itemVal.reccnts = model.getValue("/root/optmp/recitem/k");
  62. ivw_base.window.javascript.setFormItemValue("0005344.0002902", itemVal, false);
  63. itemVal.reccnts = model.getValue("/root/optmp/recitem/bun");
  64. ivw_base.window.javascript.setFormItemValue("0005344.0002881", itemVal, false);
  65. itemVal.reccnts = model.getValue("/root/optmp/recitem/cr");
  66. ivw_base.window.javascript.setFormItemValue("0005344.0002882", itemVal, false);
  67. itemVal.reccnts = model.getValue("/root/optmp/recitem/ca");
  68. ivw_base.window.javascript.setFormItemValue("0005344.0002904", itemVal, false);
  69. itemVal.reccnts = model.getValue("/root/optmp/recitem/mg");
  70. ivw_base.window.javascript.setFormItemValue("0005344.0006138", itemVal, false);
  71. itemVal.reccnts = model.getValue("/root/optmp/recitem/hbsag");
  72. ivw_base.window.javascript.setFormItemValue("0005344.0003046", itemVal, false);
  73. itemVal.reccnts = model.getValue("/root/optmp/recitem/hiv");
  74. ivw_base.window.javascript.setFormItemValue("0005344.0000800", itemVal, false);
  75. itemVal.reccnts = model.getValue("/root/optmp/recitem/bilirubin");
  76. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0008021", itemVal, false);
  77. itemVal.reccnts = model.getValue("/root/optmp/recitem/ph");
  78. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0006334", itemVal, false);
  79. itemVal.reccnts = model.getValue("/root/optmp/recitem/glucose");
  80. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0006142", itemVal, false);
  81. itemVal.reccnts = model.getValue("/root/optmp/recitem/ketonebody");
  82. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0016878", itemVal, false);
  83. itemVal.reccnts = model.getValue("/root/optmp/recitem/protein");
  84. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0000184", itemVal, false);
  85. itemVal.reccnts = model.getValue("/root/optmp/recitem/color");
  86. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0002872", itemVal, false);
  87. itemVal.reccnts = model.getValue("/root/optmp/recitem/sg");
  88. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0005947", itemVal, false);
  89. itemVal.reccnts = model.getValue("/root/optmp/recitem/uro");
  90. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0016879", itemVal, false);
  91. itemVal.reccnts = model.getValue("/root/optmp/recitem/leuk");
  92. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0016880", itemVal, false);
  93. itemVal.reccnts = model.getValue("/root/optmp/recitem/ob");
  94. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0005976", itemVal, false);
  95. itemVal.reccnts = model.getValue("/root/optmp/recitem/nitrate");
  96. ivw_base.window.javascript.setFormItemValue("0005344.0000476.0016881", itemVal, false);
  97. itemVal.reccnts = model.getValue("/root/optmp/recitem/ph2");
  98. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0006334", itemVal, false);
  99. itemVal.reccnts = model.getValue("/root/optmp/recitem/pao");
  100. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0007043", itemVal, false);
  101. itemVal.reccnts = model.getValue("/root/optmp/recitem/paco");
  102. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0005958", itemVal, false);
  103. itemVal.reccnts = model.getValue("/root/optmp/recitem/hc");
  104. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0005959", itemVal, false);
  105. itemVal.reccnts = model.getValue("/root/optmp/recitem/be");
  106. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0002584", itemVal, false);
  107. itemVal.reccnts = model.getValue("/root/optmp/recitem/sao");
  108. ivw_base.window.javascript.setFormItemValue("0005344.0005956.0005957", itemVal, false);
  109. itemVal.reccnts = model.getValue("/root/optmp/recitem/blood");
  110. ivw_base.window.javascript.setFormItemValue("0005344.0001184", itemVal, false);
  111. itemVal.reccnts = model.getValue("/root/optmp/recitem/wt");
  112. ivw_base.window.javascript.setFormItemValue("0000570.0000268", itemVal, false);
  113. itemVal.reccnts = model.getValue("/root/optmp/recitem/ht");
  114. ivw_base.window.javascript.setFormItemValue("0000570.0000566", itemVal, false);
  115. itemVal.reccnts = model.getValue("/root/optmp/recitem/bp1");
  116. ivw_base.window.javascript.setFormItemValue("0000570.0001180.0000525", itemVal, false);
  117. itemVal.reccnts = model.getValue("/root/optmp/recitem/bp2");
  118. ivw_base.window.javascript.setFormItemValue("0000570.0001180.0000791", itemVal, false);
  119. itemVal.reccnts = model.getValue("/root/optmp/recitem/pr");
  120. ivw_base.window.javascript.setFormItemValue("0000570.0000258", itemVal, false);
  121. itemVal.reccnts = model.getValue("/root/optmp/recitem/opnm");
  122. ivw_base.window.javascript.setFormItemValue("0000665", itemVal, true);
  123. var nodeList = instance1.selectNodes("/root/optmp/recitem");
  124. for (var i = 0; i < nodeList.length; i++)
  125. {
  126. var diagcd = "";
  127. var diagnm = "";
  128. diagnm = nodeList.item(i).selectSingleNode("diagnm").text;
  129. diagcd = nodeList.item(i).selectSingleNode("diagcd").text;
  130. //var ro = nodeList.item(i).selectSingleNode("diagkindcd").text;
  131. //var mskind = nodeList.item(i).selectSingleNode("diagkindcdflag").text;
  132. //if (mskind == "M")
  133. //{
  134. // parent.window.javascript.setParameter("SSMRF04000_diagnm", diagnm);
  135. //}
  136. if(getNodesetCnt(model, pageInfo.RecinfoGridrecItemRef + "[contains(degnitemlevlcd, '" + degnlvcd + "') and contains(degnitemcd, '0000960')]/recitem[rectermcd='" + diagcd + "']") > 0)
  137. continue;
  138. copyNodeset("/root/main/recinfo/grid", "/root/temp/recinfo/grid", "replace", ivw_base.model, ivw_base.model);
  139. var grdNode = ivw_base.instance1.selectSingleNode("/root/main/recinfo/grid");
  140. //grdNode = grdNode.cloneNode(true);
  141. //grd rowno를 갱신한다.
  142. var rowno = getNodesetCnt(model, pageInfo.RecinfoGridrecItemRef + "[contains(degnitemlevlcd, '" + degnlvcd + "') and contains(degnitemcd, '0000960') and degnitemkind = 'GRD']");
  143. //grdNode.selectSingleNode("rowno").text = i;
  144. var recitemList = grdNode.selectNodes("recitem");
  145. for(var j = 0; j < recitemList.length; j++)
  146. {
  147. var recitemNode = recitemList.item(j);
  148. recitemNode.selectSingleNode("rowno").text = rowno;
  149. if(j == 3) //진단코드, 진단명
  150. {
  151. recitemNode.selectSingleNode("rectermcd").text = diagcd;
  152. recitemNode.selectSingleNode("rectermnm").text = diagnm;
  153. }
  154. }
  155. //copyNodeType("/root/temp/recinfo/grid/recitem", "/root/main/recinfo/grid/recitem", "replace", ivw_base.model, model);
  156. var recNode = instance1.selectSingleNode(pageInfo.recRef);
  157. if(recNode == null)
  158. {
  159. model.makeNode(pageInfo.recRef);
  160. recNode = instance1.selectSingleNode(pageInfo.recRef);
  161. }
  162. recNode.appendChild(grdNode);
  163. }// end of for (var i = 0; i < nodeList.length; i++)
  164. model.refresh();
  165. }//end of if (opRecList.length > 0)
  166. }//end of if(submit("TRMMR01103"))
  167. }//end of if (fGetFormRec("status") == "C")
  168. }
  169. /**
  170. * Post OP Note Data연동
  171. * @return
  172. */
  173. function fSetIFData0800003416_MMRDegnForm()
  174. {
  175. if (fGetFormRec("status") == "C") {
  176. //수술예약번호 가져오기
  177. var operation = getGlobalVariable("operation").split("▩")[1];
  178. var oprsrvno = "";
  179. model.addLog("fSetIFData0800003416_MMRDegnForm == post op 연동===operation:" + operation);
  180. if(operation != null && operation != ""){
  181. oprsrvno = operation.split("▦")[0];
  182. }
  183. fSetFormRec("oprsrvno", oprsrvno);
  184. model.addLog("fSetIFData0800003416_MMRDegnForm == post op 연동===oprsrvno:" + oprsrvno);
  185. //신규서식로딩의 경우만 Brief Op Note -> Post Op Note 연동
  186. model.makeValue("/root/send/extninfo/infoflag", "recdata");
  187. model.makeValue("/root/send/extninfo/recdataflag", "postopnote");
  188. model.makeValue("/root/send/extninfo/pid", fGetFormRec("pid"));
  189. model.makeValue("/root/send/extninfo/orddd", fGetFormRec("orddd"));
  190. model.makeValue("/root/send/extninfo/cretno", fGetFormRec("cretno"));
  191. model.makeValue("/root/send/extninfo/fromsrcformcd", "0000003169"); //Brief Op Note 의 기본서식코드
  192. model.makeValue("/root/send/extninfo/toformcd", fGetFormMast("formcd"));
  193. model.makeValue("/root/send/extninfo/srcformcd", "0800003416");//Post Op Note srcFormCd=0800003416
  194. model.makeValue("/root/send/extninfo/formrecdd", fGetFormRec("formrecdd"));
  195. model.removenode("/root/main/extninfo");
  196. model.makenode("/root/main/extninfo");
  197. if (submit("TRMMR01302")) {
  198. //수술전, 수술후 진단명, 수술명 연동
  199. var preOpDiag = "";
  200. var postOpDiag = "";
  201. var opTitle = "";
  202. if(getNodesetCount("/root/main/extninfo/recitem") > 0){
  203. var fstlevlitemcd = model.getValue("/root/main/extninfo/recitem[degnitemlevlcd='0007983' and degnitemkind = 'DGN']/fstlevlitemcd");
  204. preOpDiag = model.getValue("/root/main/extninfo/recitem[fstlevlitemcd='" + fstlevlitemcd + "' and degnitemkind = 'GSU' and colno=2]/rectermnm");
  205. fstlevlitemcd = model.getValue("/root/main/extninfo/recitem[degnitemlevlcd='0000521' and degnitemkind = 'DGN']/fstlevlitemcd");
  206. postOpDiag = model.getValue("/root/main/extninfo/recitem[fstlevlitemcd='" + fstlevlitemcd + "' and degnitemkind = 'GSU' and colno=2]/rectermnm");
  207. fstlevlitemcd = model.getValue("/root/main/extninfo/recitem[degnitemlevlcd='0000509' and degnitemkind = 'OPN']/fstlevlitemcd");
  208. opTitle = model.getValue("/root/main/extninfo/recitem[fstlevlitemcd='" + fstlevlitemcd + "' and degnitemkind = 'GSU' and colno=0]/rectermnm");
  209. }
  210. var pageInfo = new PAGEINFO();
  211. //수술전진단명
  212. var condition = "degnitemlevlcd='0007983' and degnitemkind='STX'";
  213. var destNode = ivw_base.model.instances(0).selectSingleNode(pageInfo.recItemRef + "[" + condition + "]");
  214. if(destNode != null)
  215. destNode.selectSingleNode("reccnts").text = preOpDiag;
  216. //수술후진단명
  217. condition = "degnitemlevlcd='0000521' and degnitemkind='STX'";
  218. destNode = ivw_base.model.instances(0).selectSingleNode(pageInfo.recItemRef + "[" + condition + "]");
  219. if(destNode != null)
  220. destNode.selectSingleNode("reccnts").text = postOpDiag;
  221. //수술명
  222. condition = "degnitemlevlcd='0000509' and degnitemkind='STX'";
  223. destNode = ivw_base.model.instances(0).selectSingleNode(pageInfo.recItemRef + "[" + condition + "]");
  224. if(destNode != null)
  225. destNode.selectSingleNode("reccnts").text = opTitle;
  226. model.refresh();
  227. ivw_base.model.refresh();
  228. }
  229. }
  230. }
  231. /**
  232. * 2010.03.11 안치원 - 진료 delivery Note(0000000615)에 분만간호의 데이터 연동 -요:3650
  233. * liveyn - Y:0028890001, N:0003918001
  234. * gndr - M:0003466001, F:0003399001
  235. * @return
  236. */
  237. function fSetIFData0000000615_MMRDegnForm()
  238. {
  239. if (fGetFormRec("status") != "C") return;
  240. model.makeValue("/root/send/extninfo/infoflag", "etc_deliverynote");
  241. model.makeValue("/root/send/extninfo/pid", fGetFormRec("pid"));
  242. model.makeValue("/root/send/extninfo/orddd", fGetFormRec("orddd"));
  243. model.makeValue("/root/send/extninfo/cretno", fGetFormRec("cretno"));
  244. if (submit("TRMMR01302")) {
  245. var cnt = getNodesetCnt(model, "/root/main/extninfo/etcinfo");
  246. if (cnt == 0) return;
  247. var pre_levlcd = "0000363.";
  248. var mid_levlcd = new Array("0000988", "0000218", "0000471", "0002692"); //1st,2nd,3rd,4th
  249. //"bthdd", "bthtm", "liveyn", "gndr", "weig", "apgarscore1", "apgarscore5"
  250. var post_levlcd = new Array(".0000160", ".0000538", ".0009800", ".0000458", ".0000268", ".0010920.0010922", ".0010920.0006010");
  251. var dest_path = "";
  252. var src_path = "";
  253. var buf = "";
  254. for (var i=0; i<cnt; i++) {
  255. for (var j=0; j<post_levlcd.length; j++) {
  256. dest_path = pre_levlcd + mid_levlcd[i] + post_levlcd[j];
  257. src_path = "/root/main/extninfo/etcinfo["+(i+1)+"]/col" + j;
  258. var itemVal = new ITEMVAL();
  259. if (post_levlcd[j] == ".0009800") {
  260. //liveyn - Y:0028890001, N:0003918001
  261. if (model.getValue(src_path) == "Y") {
  262. itemVal.rectermcd = "0028890001";
  263. itemVal.rectermnm = "Living";
  264. }
  265. else if (model.getValue(src_path) == "N") {
  266. itemVal.rectermcd = "0003918001";
  267. itemVal.rectermnm = "Dead";
  268. }
  269. else continue;
  270. }
  271. else if (post_levlcd[j] == ".0000458") {
  272. //gndr - M:0003466001, F:0003399001
  273. if (model.getValue(src_path) == "M") {
  274. itemVal.rectermcd = "0003466001";
  275. itemVal.rectermnm = "M";
  276. }
  277. else if (model.getValue(src_path) == "F") {
  278. itemVal.rectermcd = "0003399001";
  279. itemVal.rectermnm = "F";
  280. }
  281. else continue;
  282. }
  283. else {
  284. itemVal.reccnts = model.getValue(src_path);
  285. }
  286. ivw_base.window.javascript.setFormItemValue(dest_path, itemVal, false);
  287. }
  288. }
  289. ivw_base.window.model.refresh();
  290. }
  291. }
  292. /**
  293. * 진료의뢰서 컨트롤 상태변경
  294. * @return
  295. */
  296. function fSetIFData0900005340_MMRDegnForm()
  297. {
  298. var insukind = opener.model.getValue("/root/main/result/pathistlist/insukind");
  299. if(insukind == "11" || insukind == "81"){
  300. ivw_base.SSU_57.disabled = true;
  301. ivw_base.SSU_58.disabled = true;
  302. ivw_base.SSU_59.disabled = true;
  303. }else{
  304. ivw_base.SSU_57.disabled = false;
  305. ivw_base.SSU_58.disabled = false;
  306. ivw_base.SSU_59.disabled = false;
  307. }
  308. }