MMR07201.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. /**
  2. * MMR07201.js
  3. * SMMMR07201_전과기록JCI.xrw
  4. */
  5. /**
  6. * @desc : [item코드목록]
  7. * "0000960003" //진단명
  8. * "0000931001" //주호소 또는 입원사유
  9. * "0000062001" //경과 및 특이소견
  10. * "0000500001" //수술 및 시술
  11. * "0001113001" //투약내역
  12. * "0000792001" //전과사유
  13. * "0022830001" //전과시 환자상태
  14. * [버튼목록]
  15. * "btn_medprcp_0001113001"//투약처방조회
  16. */
  17. var gItemCds = new Array(
  18. "0000960003" //진단명
  19. , "0000931001" //주호소 또는 입원사유
  20. , "0000062001" //경과 및 특이소견
  21. , "0000500001" //수술 및 시술
  22. , "0001113001" //투약내역
  23. , "0000792001" //전과사유
  24. , "0022830001" //전과시 환자상태
  25. );
  26. var gItemCdsTextArea = new Array(
  27. "0000960003" //진단명
  28. , "0000931001" //주호소 또는 입원사유
  29. , "0000062001" //경과 및 특이소견
  30. , "0000500001" //수술 및 시술
  31. , "0001113001" //투약내역
  32. , "0000792001" //전과사유
  33. , "0022830001" //전과시 환자상태
  34. );
  35. /**
  36. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  37. * @id :
  38. * @authur : 안치원
  39. * @history : 2009.09.09 신규 안치원 ACW_090909A
  40. var gExtnBtnIds = new Array(
  41. "btn_imge_0008224001" //S&O 이미지버튼
  42. , "btn_fmy_0008224001" //S&O 가계도버튼
  43. , "btn_etcrec_0008224001" //S&O 추가기록버튼
  44. , "btn_diag_0001129001" //A 진단버튼
  45. , "btn_imge_0001129001" //A 이미지버튼
  46. , "btn_etcrec_0001129001" //A 추가기록버튼
  47. , "btn_prcp_0000080001" //P 처방버튼
  48. , "btn_imge_0000080001" //P 이미지버튼
  49. , "btn_etcrec_0000080001" //P 추가기록버튼
  50. );
  51. */
  52. var gExtnBtnIds = new Array(
  53. "btn_medprcp_0001113001"//투약처방조회
  54. );
  55. /**
  56. * @desc : 기록데이터 조회
  57. * @id :
  58. * @event : xforms-ready
  59. * @return : void
  60. * @authur : 박종훈
  61. */
  62. function fLoadData()
  63. {
  64. InitPgmFormData();
  65. InitUnitFormData(gItemCds);
  66. }
  67. /**
  68. * @desc : 서식 데이터 Clear
  69. * @id :
  70. * @event : xforms-ready
  71. * @return : void
  72. * @authur : 박종훈
  73. */
  74. function fClearComnFormData()
  75. {
  76. if (gMaxSectionID != "")
  77. {
  78. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  79. MaxObj.dispatch("onclick");
  80. }
  81. ClearComnFormData(gItemCds);
  82. clearData();
  83. //초기화 후 기본내용 조회
  84. fExtnInitFormRec();
  85. //포커스 처리
  86. SetDefFocusMTX(gItemCds);
  87. }
  88. /**
  89. * @desc : 기록 인스턴스 연결
  90. * @id :
  91. * @event : xforms-ready
  92. * @return : void
  93. * @authur : 박종훈
  94. */
  95. function fSetRecItemValue(reciteminfo)
  96. {
  97. return SetCommMediFormValue(gItemCds, reciteminfo);
  98. }
  99. /**
  100. * @desc : 확장서식 기록 초기 설정
  101. * @
  102. * @param :
  103. * @return :
  104. * @authur : 박종훈
  105. */
  106. function fExtnInitFormRec()
  107. {
  108. if (parent.window.javascript.fGetFormRec("status") == "C")
  109. {
  110. // alert("MMR07201.js:::fExtnInitFormRec::: fGetDiagNM::"+parent.instance1.selectSingleNode("/root/main/recinfo/formrec"));
  111. // ivw_0000960003.window.javascript.fGetDiagNm(parent.instance1.selectSingleNode("/root/main/recinfo/formrec")); //환자정보로 진단명 조회
  112. }
  113. }
  114. /**
  115. * @desc : 서식 진단명 사이즈 조절
  116. * @
  117. * @param :
  118. * @return :
  119. * @---------------------------------------------------
  120. */
  121. function fSetSizeFormDiag()
  122. {
  123. ivw_0000960003.window.javascript.fInitPage(false, parseInt(ivw_0000960003.attribute("height")), parseInt(ivw_0000960003.attribute("width")));
  124. }
  125. var gLoadFormCnts = 0;
  126. /**
  127. * @group :
  128. * @ver : 2008.06.13
  129. * @by : snoweye
  130. * @---------------------------------------------------
  131. * @type : function
  132. * @access : private
  133. * @desc : 화면 로드시 초기화 작업을 수행
  134. * @param :
  135. * @return :
  136. * @---------------------------------------------------
  137. */
  138. function fFormReady()
  139. {
  140. grup_base.attribute("border-style") = "none";
  141. //섹션사이즈초기화
  142. setSectionSize(gItemCds, 0, 683);
  143. /*
  144. //섹션별 버튼초기화
  145. InitBtnImge(gItemCds);
  146. InitBtnFmy(gItemCds);
  147. InitBtnComn(gItemCds);
  148. InitBtnDiag("0001129001");
  149. InitBtnPrcp("0000080001");
  150. InitBtnEtcRec(gItemCds);
  151. */
  152. //기본 첫번째 부분서식을 로딩해서 보여준다.
  153. dispOnLoadComplete(COMN_FORM);//COMN_FORM : 1
  154. }
  155. /**
  156. * @desc : 부분서식 불러오기
  157. * @id :
  158. * @event : onloadcomplete
  159. * @return : void
  160. * @authur : 박종훈
  161. */
  162. function fLoadUnitForm()
  163. {
  164. initSection(gItemCds);
  165. }
  166. /**
  167. * @desc : 부분서식이 로딩 완료 되었을때 발생하는 이벤트
  168. * @id :
  169. * @event : xforms-ready
  170. * @return : void
  171. * @authur : 박종훈
  172. */
  173. function fOnLoadComplete()
  174. {
  175. var curLoadFormCd = getParameter("loadformcd");
  176. var fstLevlItemCd = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/orgsupdegnitemcd");
  177. var ivwObj = document.controls("ivw_" + fstLevlItemCd);
  178. var unitformload = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/loaded");
  179. if(ivwObj != null && unitformload != "true")
  180. {
  181. setFstLevlItemCd(ivwObj, curLoadFormCd);
  182. model.setValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "']/loaded", "true");
  183. }
  184. //진단명 부분서식 로딩후 처리
  185. if(fstLevlItemCd == '0000960003')
  186. {
  187. fSetSizeFormDiag();
  188. }
  189. gLoadFormCnts++;
  190. if(gItemCds.length == gLoadFormCnts)
  191. {
  192. fExtnInitFormRec();
  193. dispOnLoadComplete(UNIT_FORM);
  194. // if (parent.window.javascript.fGetFormRec("status") == "C")
  195. // {
  196. // SetDefFocusMTX(gItemCds);
  197. // }
  198. }
  199. }
  200. /**
  201. * @group :
  202. * @ver : 2008.11.28
  203. * @by : jonghun
  204. * @---------------------------------------------------
  205. * @type : function
  206. * @access : private
  207. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  208. * @param :
  209. * @return :
  210. * @---------------------------------------------------
  211. */
  212. function fGetDefData()
  213. {
  214. dispOnLoadComplete(UNIT_FORM);
  215. // if (parent.window.javascript.fGetFormRec("status") == "C")
  216. // {
  217. // SetDefFocusMTX(gItemCds);
  218. // }
  219. }
  220. /**
  221. * @desc : 전과시 환자상태 화면 로딩 후 사이즈 조절
  222. * @id :
  223. * @event : xforms-ready
  224. * @return : void
  225. * @authur : dhkim
  226. */
  227. function fSetSizeFormCC(gItemCd_MMR07201)
  228. {
  229. //Care Plan 화면 로딩
  230. if(gItemCd_MMR07201 == "0022830001")
  231. ivw_0022830001.window.javascript.fInitPage(false, parseInt(ivw_0022830001.attribute("height")), parseInt(ivw_0022830001.attribute("width")));
  232. }
  233. /**
  234. * 20091231 dhkim 추가
  235. * MMR01100.js에서 서식load를 완료한 후에 호출한다.
  236. * @return
  237. */
  238. function initFormAtLast_MMR01100I() {
  239. var srcformcd = parent.window.javascript.fGetFormMast("srcformcd");
  240. // alert("srcformcd ::::" + srcformcd + " status:::"+parent.window.javascript.fGetFormRec("status"));
  241. if (srcformcd == "0000001595"){//전입기록의 기본서식코드 : 0000001595
  242. //신규서식로딩의 경우만 전출기록 -> 전입기록 연동
  243. if (parent.window.javascript.fGetFormRec("status") == "C"){
  244. model.makeValue("/root/send/extninfo/infoflag", "recdata");
  245. model.makeValue("/root/send/extninfo/recdataflag", "transferIn");
  246. model.makeValue("/root/send/extninfo/pid", parent.window.javascript.fGetFormRec("pid"));
  247. model.makeValue("/root/send/extninfo/orddd", parent.window.javascript.fGetFormRec("orddd"));
  248. model.makeValue("/root/send/extninfo/cretno", parent.window.javascript.fGetFormRec("cretno"));
  249. model.makeValue("/root/send/extninfo/fromsrcformcd", "0000001596"); //전출기록의 기본서식코드
  250. model.makeValue("/root/send/extninfo/toformcd", parent.window.javascript.fGetFormMast("formcd"));
  251. //2010.01.14 dhkim - srcformcd 파라미터 누락되어 추가
  252. model.makeValue("/root/send/extninfo/srcformcd", srcformcd);//전입기록
  253. //2010.03.08 dhkim formrecdd추가
  254. model.makeValue("/root/send/extninfo/formrecdd", parent.window.javascript.fGetFormRec("formrecdd"));
  255. model.removenode("/root/main/extninfo");
  256. model.makenode("/root/main/extninfo");
  257. if (submit("TRMMR01302")) {
  258. //copyNodeset(gPageInfo.recItemRef, "/root/main/extninfo/recitem", "replace", model, model);
  259. copyNodeset(gPageInfo.recItemRef2, "/root/main/extninfo/recitem", "replace", model, model);
  260. fLoadData();
  261. model.refresh();
  262. }
  263. }
  264. //전입기록시 투약처방버튼 hidden
  265. btn_medprcp_0001113001.visible = false;
  266. } else if (srcformcd == "0000001596"){//전출기록의 기본서식코드 : 0000001596
  267. //전출기록시 투약처방버튼 visible
  268. btn_medprcp_0001113001.visible = true;
  269. //2010.01.12 안치원 - 입원초진의 주호소 -> 전출기록의 주호소
  270. if (parent.window.javascript.fGetFormRec("status") == "C"){
  271. model.makeValue("/root/send/extninfo/infoflag", "rectext");
  272. model.makeValue("/root/send/extninfo/pid", parent.window.javascript.fGetFormRec("pid"));
  273. model.makeValue("/root/send/extninfo/orddd", parent.window.javascript.fGetFormRec("orddd"));
  274. model.makeValue("/root/send/extninfo/cretno", parent.window.javascript.fGetFormRec("cretno"));
  275. model.makeValue("/root/send/extninfo/srcformcd", "0000000003"); //입원초진기록의 기본서식코드(입원초진의 주호소를 default 연동위해)
  276. model.makeValue("/root/send/extninfo/fstlevlitembasecds", "0000931");
  277. model.removenode("/root/main/extninfo");
  278. model.makenode("/root/main/extninfo");
  279. if (submit("TRMMR01302")) {
  280. var itemVal = new ITEMVAL();
  281. itemVal.reccnts = model.getValue("/root/main/extninfo/rectextinfo[fstlevlitembasecd='0000931']/viewcnts");
  282. setFormItemValue("0000931", itemVal,false);
  283. model.refresh();
  284. }
  285. //투약처방내역이 없을때 default로 투약처방내역 연동
  286. var degnitemlevlcd = "0001113";
  287. var itemCd = "0001113001";
  288. var pageInfo = new PAGEINFO();
  289. var node = instance1.selectSingleNode(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts");
  290. var prcpList = "";
  291. if(node != null){
  292. prcpList = node.text;
  293. }
  294. if(prcpList == ""){
  295. GetPatDrugPrcpList_MMR07201(itemCd);//투약처방조회
  296. }
  297. }
  298. }
  299. //2010.01.19 dhkim - 통합기록조회용 JCI구분자추가
  300. //parent.window.javascript.fSetFormRec("xsltflag", "JCI");//fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동
  301. }
  302. /**
  303. * MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  304. * @return
  305. */
  306. function getSubmitID_MMR01300I() {
  307. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  308. parent.window.javascript.fSetFormRec("xsltflag", "JCI");
  309. return TX_SUBMIT_EXTN_FORM;
  310. }
  311. /**
  312. * 전출기록의 투약처방조회
  313. */
  314. function GetPatDrugPrcpList_MMR07201(itemCd)
  315. {
  316. var pageInfo = new PAGEINFO();
  317. var prcpdd = "";
  318. var bfflag = "bfprcp";
  319. var flag = "";
  320. var todd = "";
  321. var pid = parent.model.getValue(pageInfo.recMastRef + "/pid");
  322. var orddd = parent.model.getValue(pageInfo.recMastRef + "/orddd");
  323. var cretno = parent.model.getValue(pageInfo.recMastRef + "/cretno");
  324. var orddrid = parent.model.getValue(pageInfo.recMastRef + "/orddrid");
  325. var orddeptcd = parent.model.getValue(pageInfo.recMastRef + "/orddeptcd");
  326. var prcpgenrflag = parent.model.getValue(pageInfo.recMastRef + "/chosflag");
  327. if (prcpgenrflag == "I" || prcpgenrflag == "E" || prcpgenrflag == "D")
  328. {
  329. prcpdd = parent.model.getValue(pageInfo.recMastRef + "/formrecdd");//전출일 전날
  330. }
  331. else
  332. {
  333. prcpdd = orddd;
  334. }
  335. //JCI요청사항 (2010.03.04 dhkim ) - 조회할 처방일자는 전출일 전날
  336. prcpdd = prcpdd.toDate('YYYYMMDD').getAddDate(-1, "D").getDateFormat('YYYYMMDD');//하루전
  337. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  338. if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  339. {
  340. //투약
  341. //JCI요청사항 (2010.03.04 dhkim )
  342. //- 전출과의 약/주사에 한해 전일 정규처방
  343. //- 전일 기준설정 : 전출기록 미작성시, 해당환자의 전출처방(=전과신청) 차단 요청되어있음.
  344. //- 전출기록작성시점 전일 처방을 대상으로 연동처리
  345. model.addLog("dutplcecd:" + getUserInfo("dutplcecd"));
  346. var nodelistDrugPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[(prcpkindcd = '10' and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E') and (prcpclscd = 'A2' or prcpclscd = 'A4' or prcpclscd = 'A6') and (rgstdeptcd = '"+getUserInfo("dutplcecd")+"')]");
  347. }
  348. var prcpkind = ""; //처방종류
  349. var orgprcpnm = ""; //처방명
  350. var drugmthdspccdnm = ""; //용법
  351. var prcpdelivefact = ""; //전달사항
  352. var prcplist = "";
  353. var prcphistcd = ""; //임시,인증구분
  354. var prcpclscd = "";
  355. var tmpdrugmthdspccdnm = "";
  356. if(nodelistDrugPrcpinfo.length >= 1){
  357. for(var i = 1; i <= nodelistDrugPrcpinfo.length; i++)
  358. {
  359. var subNode = nodelistDrugPrcpinfo.item(i - 1);
  360. //orgprcpnm = subNode.selectSingleNode("orgprcpnm").text;
  361. tmpdrugmthdspccdnm = subNode.selectSingleNode("drugmthdspccdnm").text;
  362. prcpkind = subNode.selectSingleNode("tempcol13").text;
  363. orgprcpnm = subNode.selectSingleNode("tempcol6").text;
  364. drugmthdspccdnm = subNode.selectSingleNode("tempcol7").text;
  365. prcpclscd = subNode.selectSingleNode("prcpclscd").text;
  366. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  367. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  368. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  369. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  370. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  371. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  372. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  373. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  374. prcpdelivefact = subNode.selectSingleNode("prcpdelivefact").text;
  375. prcphistcd = subNode.selectSingleNode("prcphistcd").text;
  376. if(prcphistcd == "T")
  377. {
  378. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  379. {
  380. prcplist += "[임] " + orgprcpnm + " " + drugmthdspccdnm + "\n"
  381. }
  382. else
  383. {
  384. prcplist += "[임] " + orgprcpnm + "\n"
  385. }
  386. }
  387. else
  388. {
  389. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  390. {
  391. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  392. }
  393. else
  394. {
  395. prcplist += orgprcpnm + "\n"
  396. }
  397. }
  398. }
  399. }
  400. var prerec = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts");
  401. if (prerec != "")
  402. {
  403. prerec = prerec + "\n" + prcplist + "\n";
  404. }
  405. else
  406. {
  407. prerec = prcplist + "\n"
  408. }
  409. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  410. model.refresh();
  411. }