MMR00800.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866
  1. var gItemCds = new Array("0001013001", "0000933001", "0000931001", "0001173001", "0000098001", "0001052001", "0000053001", "0001106001", "0000080001");
  2. var gItemCdsTextArea = new Array("0001173001", "0000098001", "0001052001", "0000053001", "0001106001", "0000080001");
  3. var gItemImgCds = new Array("0001173001", "0001052001", "0000053001");
  4. var rSang = rdo_sang.attribute("degnitemno");
  5. var cOtype = cbo_outtype.attribute("degnitemno");
  6. var cCrslt = cbo_carerslt.attribute("degnitemno");
  7. /**
  8. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  9. * @id :
  10. * @authur : 안치원
  11. * @history : 2009.09.09 신규 안치원 ACW_090909A
  12. : 2010-03-31 오전 9:46:59 강지훈 수정 : 최종진단명 버튼 추가
  13. */
  14. var gExtnBtnIds = new Array("btn_imge_0001173001", "btn_imge_0001052001", "btn_imge_0000053001", "btn_lastdiag_0001013001");
  15. //var gExtnBtnIds = new Array("btn_imge_0001173001", "btn_imge_0001052001", "btn_imge_0000053001");
  16. /**
  17. * @desc : 초기 화면 설정
  18. * @id :
  19. * @event : xforms-ready
  20. * @return : void
  21. * @authur : 박종훈
  22. */
  23. function fFormReady_old()
  24. {
  25. grup_base.attribute("border-style") = "none";
  26. InitSetMaxSizeSection(gItemCds, 0, 683);
  27. //InitBtnImge(gItemImgCds);
  28. InitBtnComn(gItemCds);
  29. InitBtnOutPrcp("0001106001");
  30. InitBtnResv("0000080001");
  31. }
  32. /**
  33. * @desc : 서식 불러오기, 부분 그리드서식 사이즈 초기화
  34. * @id :
  35. * @event : xforms-ready
  36. * @return : void
  37. * @authur : 박종훈
  38. */
  39. function fLoadForm_old()
  40. {
  41. var cboObj;
  42. for (var i = 0; i < gItemCds.length; i++)
  43. {
  44. cboObj = document.controls("cbo_" + gItemCds[i]);
  45. if (cboObj != null)
  46. SetUnitFormList(cboObj, gItemCds[i])
  47. }
  48. InitLoadSection(gItemCdsTextArea);
  49. InitSetUnitForm(new Array("0001013001", "0000933001", "0000931001"), false);
  50. }
  51. /**
  52. * @desc : 기록데이터 조회
  53. * @id :
  54. * @event : xforms-ready
  55. * @return : void
  56. * @authur : 박종훈
  57. */
  58. function fLoadData()
  59. {
  60. InitPgmFormData();
  61. InitUnitFormData(gItemCds);
  62. }
  63. /**
  64. * @desc : 서식 데이터 Clear
  65. * @
  66. * @param :
  67. * @return :
  68. * @authur : 박종훈
  69. */
  70. function fClearComnFormData()
  71. {
  72. if (gMaxSectionID != "")
  73. {
  74. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  75. MaxObj.dispatch("onclick");
  76. }
  77. ClearComnFormData(gItemCds);
  78. clearData();
  79. //초기화 후 기본내용 조회
  80. //fExtnInitFormRec();//2010.03.17 dhkim initFormAtLast_MMR01100I로 이동(initAtLast이후에 퇴원처방 데이터가 로딩되어야함)
  81. //포커스 처리
  82. SetDefFocusMTX(gItemCds);
  83. }
  84. function fSetRecItemValue(reciteminfo)
  85. {
  86. return SetCommMediFormValue(gItemCds, reciteminfo);
  87. }
  88. /**
  89. * @desc : 라디오버튼(콤보박스) 선택에 따른 reccnts셋팅 ==> 사용안함
  90. * @
  91. * @param :
  92. * @return :
  93. * @---------------------------------------------------
  94. */
  95. function fRadioYN(cType)
  96. {
  97. var ditemno = eval(cType);
  98. var sRdoCd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermcd");
  99. var sRdoNm = model.getValue("/root/main/forminfo/vallist[valcd='" + sRdoCd + "']/valitemnm");
  100. model.setValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermnm", sRdoNm);
  101. }
  102. /**
  103. * @desc : 라디오버튼(콤보박스) 선택 초기화
  104. * @
  105. * @param :
  106. * @return :
  107. * @---------------------------------------------------
  108. */
  109. function fCnclMicroTest(cType)
  110. {
  111. var ditemno = eval(cType);
  112. model.setValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermcd", "");
  113. model.refresh();
  114. }
  115. /**
  116. * @desc : 기록 인스턴스 연결
  117. * @
  118. * @param :
  119. * @return :
  120. * @authur : 박종훈
  121. */
  122. function fChkPreSave()
  123. {
  124. var rtnVal = true;
  125. //2010.02.18 dhkim 서울성모가 아닐경우 부진단 check 리턴
  126. //if(getUserInfo("dutplceinstcd") == "012" && doDschOrdCntsOfDCSN_MMRCom("ENABLED") == false){
  127. //2010.05.04 김달현 - staff-sign의 경우는 부진단 체크 메세지를 띄우지 않음.
  128. var cosignyn = parent.window.javascript.fGetFormRec("cosignyn");
  129. if( getUserInfo("dutplceinstcd") == "012"
  130. && model.getValue("/root/staffcoyn/authyn") != "Y"
  131. && refreshDschOrd_MMR00800("ENABLED") == false
  132. && cosignyn != "Y"
  133. ){
  134. //2010.02.08 dhkim 교육서버 반영확인
  135. var pageInfo = new PAGEINFO();
  136. var itemNm = model.instances(0).selectSingleNode(pageInfo.formdegnRef + "[degnitemcd = '0001013001']").getXPathString("itemnm");
  137. rtnVal = ivw_0001013001.window.javascript.fChkGrdPreSave_MMR00800(true, itemNm);//진단명
  138. }else{
  139. //2010.02.25 안치원 - 입퇴원요약기록 - 퇴원처방 입력방법 변경(팝업)
  140. // rtnVal = true;
  141. // rtnVal = doDschOrdCntsOfDCSN_MMRCom("IS_CHANGED");
  142. rtnVal = refreshDschOrd_MMR00800("CHK_PRE_SAVE");
  143. }
  144. if(rtnVal == false){
  145. return false;
  146. }else{
  147. return ivw_0000931001.window.javascript.fChkGrdPreSave(true, itemNm);//주호소
  148. }
  149. }
  150. /**
  151. * @desc : 확장서식 기록 초기 설정
  152. * @
  153. * @param :
  154. * @return :
  155. * @authur : 박종훈
  156. */
  157. function fExtnInitFormRec()
  158. {
  159. if (parent.window.javascript.fGetFormRec("status") == "C")
  160. {
  161. //debugger;
  162. ivw_0001013001.window.javascript.fGetDiagNm(parent.instance1.selectSingleNode("/root/main/recinfo/formrec")); //환자정보로 진단명 조회
  163. ivw_0000933001.window.javascript.fSrchOprlist(parent.instance1.selectSingleNode("/root/main/recinfo/formrec")); //환자정보로 수술명 조회
  164. model.setValue("/root/send/reqinfstrec/pid", parent.window.javascript.fGetFormRec("pid"));
  165. model.setValue("/root/send/reqinfstrec/orddd", parent.window.javascript.fGetFormRec("orddd"));
  166. model.setValue("/root/send/reqinfstrec/cretno", parent.window.javascript.fGetFormRec("cretno"));
  167. if (submit("TRMMR00801"))
  168. {
  169. var pageInfo = new PAGEINFO();
  170. var nodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000931001' and formcd = '0000000901']");
  171. if (nodeList.length > 0)
  172. {
  173. //주호소
  174. setSrchData("/root/main/infstrec/recitem[fstlevlitemcd='0000931001' and formcd = '0000000901']", ivw_0000931001);
  175. ivw_0000931001.window.javascript.fAddrow();
  176. }
  177. //현병력
  178. model.setValue(pageInfo.recItemRef + "[degnitemno=4]/reccnts",
  179. model.getValue("/root/main/infstrec/recitem[degnitemlevlcd='0001173']/reccnts"));
  180. var anstnodeList = model.instances(0).selectNodes("/root/main/infstrec/recitem[fstlevlitemcd='0000098001']");
  181. var degnitemlevlcd = "";
  182. var rectermcd = "";
  183. var rectermnm = "";
  184. var reccnts = "";
  185. var degnitemnm = "";
  186. var degnitemkind = "";
  187. var recrslt = "";
  188. for(var i = 0; i < anstnodeList.length; i++)
  189. {
  190. degnitemlevlcd = anstnodeList.item(i).selectSingleNode("degnitemlevlcd").text;
  191. rectermcd = anstnodeList.item(i).selectSingleNode("rectermcd").text;
  192. rectermnm = anstnodeList.item(i).selectSingleNode("rectermnm").text;
  193. reccnts = anstnodeList.item(i).selectSingleNode("reccnts").text;
  194. degnitemnm = anstnodeList.item(i).selectSingleNode("degnitemnm").text;
  195. degnitemkind = anstnodeList.item(i).selectSingleNode("degnitemkind").text;
  196. if(degnitemkind == "IMG" || degnitemkind == "FDG")
  197. continue;
  198. degnitemlevlcd = degnitemlevlcd.split(".");
  199. if (degnitemlevlcd.length > 1){
  200. /* 20111209 과거력의 내용이 더블되는걸 수정 LJT
  201. if (degnitemlevlcd.length == 2){
  202. recrslt += degnitemnm + "\n";
  203. }
  204. */
  205. if (rectermnm != "" && reccnts != ""){
  206. recrslt += degnitemnm + rectermnm + " ※ " + reccnts + "\n";
  207. }else if (rectermnm != ""){
  208. recrslt += degnitemnm + rectermnm + "\n";
  209. }else if (reccnts != ""){
  210. recrslt += degnitemnm + " ※ " + reccnts + "\n";
  211. }
  212. }else{
  213. recrslt = reccnts + "\n";
  214. }
  215. }
  216. //과거력 ?
  217. model.setValue(pageInfo.recItemRef + "[degnitemno=5]/reccnts", recrslt);
  218. //model.getValue("/root/main/infstrec/recitem[degnitemlevlcd='0000098']/reccnts"));
  219. model.refresh();
  220. }
  221. }
  222. fSetDataValItem(); // combo, radio valuelist 맵핑
  223. var dschdd = parent.window.javascript.fGetPamInfo("dschdd");
  224. var indschacptstat = parent.window.javascript.fGetPamInfo("indschacptstat");
  225. if (dschdd == "99991231" && indschacptstat != "D" && indschacptstat != "T")
  226. {
  227. if (!btn_outprcp_0001106001.disabled && !btn_resv_0000080001.disabled)
  228. {
  229. //퇴원처방, 예약버튼 비활성화
  230. btn_outprcp_0001106001.disabled = true;
  231. //2009-12-02 오후 2:57:00 강지훈 수정 : 요청번호 9406, Task번호 : 39023, 우선순위 : SV 입퇴원요약기록 작성시 항상 활성화
  232. //btn_resv_0000080001.disabled = true;
  233. ivw_0001106001.disabled = true;
  234. tar_0001106001.disabled = true;
  235. }
  236. }
  237. else
  238. {
  239. if (btn_outprcp_0001106001.disabled && btn_resv_0000080001.disabled)
  240. {
  241. //퇴원처방, 예약버튼 활성화
  242. btn_outprcp_0001106001.disabled = false;
  243. //2009-12-02 오후 2:57:00 강지훈 수정 : 요청번호 9406, Task번호 : 39023, 우선순위 : SV 입퇴원요약기록 작성시 항상 활성화
  244. //btn_resv_0000080001.disabled = false;
  245. ivw_0001106001.disabled = false;
  246. tar_0001106001.disabled = false;
  247. }
  248. fGetAutoPatOutPrcpList("0001106001");
  249. }
  250. }
  251. /**
  252. * @desc :환자퇴원처방정보 가져오기
  253. * 2010.04.14 dhkim 퇴원처방자동저장 플래그추가
  254. * @id :
  255. * @event : onclick
  256. * @return : void
  257. * @authur : 박종훈
  258. */
  259. function fGetAutoPatOutPrcpList(itemCd, autoSaveYn)
  260. {
  261. var pageInfo = new PAGEINFO();
  262. var prcpdd = "";
  263. var bfflag = "bfprcp";
  264. var flag = "-";
  265. var todd = "";
  266. var pid = parent.model.getValue(pageInfo.recMastRef + "/pid");
  267. var orddd = parent.model.getValue(pageInfo.recMastRef + "/orddd");
  268. //var orddd = getCurrentDate();
  269. var cretno = parent.model.getValue(pageInfo.recMastRef + "/cretno");
  270. //var orddrid = parent.model.getValue(pageInfo.recMastRef + "/orddrid");
  271. var orddrid = "";
  272. var orddeptcd = parent.model.getValue(pageInfo.recMastRef + "/orddeptcd");
  273. var prcpgenrflag = parent.model.getValue(pageInfo.recMastRef + "/chosflag");
  274. // if (prcpgenrflag == "I")
  275. // {
  276. // prcpdd = getCurrentDate();
  277. // }
  278. // else
  279. // {
  280. // prcpdd = getCurrentDate();
  281. // }
  282. //2010.03.17 dhkim 퇴원처방 구분자 변경됨
  283. prcpdd = "recbfsrch"; // 입퇴원 요약지의 퇴원처방 날짜조건 변경을 위한 구분자
  284. model.addLog("==fGetAutoPatOutPrcpList 입퇴원요약 처음로딩시 : prcpdd ::" + prcpdd);
  285. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  286. if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  287. {
  288. var nodelistPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[prcpkindcd = 60 and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E']");
  289. }
  290. var prcpkind = ""; //처방종류
  291. var orgprcpnm = ""; //처방명
  292. var drugmthdspccdnm = ""; //용법
  293. var prcpdelivefact = ""; //전달사항
  294. var prcplist = "";
  295. var prcpclscd = "";
  296. var tmpdrugmthdspccdnm = "";
  297. if(nodelistPrcpinfo.length >= 1){
  298. for(var i = 1; i <= nodelistPrcpinfo.length; i++)
  299. {
  300. var subNode = nodelistPrcpinfo.item(i - 1);
  301. //orgprcpnm = subNode.selectSingleNode("orgprcpnm").text;
  302. tmpdrugmthdspccdnm = subNode.selectSingleNode("drugmthdspccdnm").text;
  303. prcpkind = subNode.selectSingleNode("tempcol13").text;
  304. orgprcpnm = subNode.selectSingleNode("tempcol6").text;
  305. drugmthdspccdnm = subNode.selectSingleNode("tempcol7").text;
  306. prcpclscd = subNode.selectSingleNode("prcpclscd").text;
  307. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  308. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  309. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  310. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  311. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  312. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  313. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  314. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  315. var prcpdelivefact = subNode.selectSingleNode("prcpdelivefact").text;
  316. //prcplist += prcpkind + " " +orgprcpnm + " " + drugmthdspccdnm + " " + prcpdelivefact + "\n"
  317. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  318. {
  319. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  320. }
  321. else
  322. {
  323. prcplist += orgprcpnm + "\n"
  324. }
  325. }
  326. }
  327. else
  328. {
  329. prcplist = "No medication";
  330. }
  331. var prerec = model.getValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts");
  332. if (prerec == "")
  333. {
  334. prerec = prcplist + "\n";
  335. }
  336. //2010.04.14 dhkim 퇴원처방자동저장의 경우 기존의 값이 있어도 새로 세팅한다.
  337. if(autoSaveYn == "SET_DSCHORD"){
  338. prerec = prcplist + "\n";
  339. }
  340. model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  341. model.refresh();
  342. return nodelistPrcpinfo.length;
  343. }
  344. /**
  345. * @desc : Value List데이터 아이템 값 매핑
  346. * @
  347. * @param :
  348. * @return :
  349. * @authur : 박종훈
  350. */
  351. function fSetDataValItem()
  352. {
  353. var pageInfo = new PAGEINFO();
  354. //치료결과 Vallist Setting
  355. var carersltgpcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '"+cCrslt+"']/valgrupcd");
  356. cbo_carerslt.choices.itemset.attribute("nodeset") = pageInfo.forminfoRef + "/vallist[grupcd = '"+carersltgpcd+"']";
  357. cbo_carerslt.refresh();
  358. //퇴원형태 Vallist Setting
  359. var dschtypegpcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '"+cOtype+"']/valgrupcd");
  360. cbo_outtype.choices.itemset.attribute("nodeset") = pageInfo.forminfoRef + "/vallist[grupcd = '"+dschtypegpcd+"']";
  361. cbo_outtype.refresh();
  362. //생검여부 Vallist Setting
  363. var sanggpcd = model.getValue(pageInfo.formdegnRef + "[degnitemno = '"+rSang+"']/valgrupcd");
  364. rdo_sang.choices.itemset.attribute("nodeset") = pageInfo.forminfoRef + "/vallist[grupcd = '"+sanggpcd+"']";
  365. rdo_sang.refresh();
  366. }
  367. /**
  368. * @desc : 서식 진단명 사이즈 조절
  369. * @
  370. * @param :
  371. * @return :
  372. * @---------------------------------------------------
  373. */
  374. function fSetSizeFormDiag()
  375. {
  376. ivw_0001013001.window.javascript.fInitPage(false, parseInt(ivw_0001013001.attribute("height")), parseInt(ivw_0001013001.attribute("width")));
  377. }
  378. /**
  379. * @desc : 서식 수술명 사이즈 조절
  380. * @
  381. * @param :
  382. * @return :
  383. * @---------------------------------------------------
  384. */
  385. function fSetSizeFormOpr()
  386. {
  387. ivw_0000933001.window.javascript.fInitPage(false, parseInt(ivw_0000933001.attribute("height")), parseInt(ivw_0000933001.attribute("width")));
  388. }
  389. /**
  390. * @desc : 서식 주호소 사이즈 조절
  391. * @
  392. * @param :
  393. * @return :
  394. * @---------------------------------------------------
  395. */
  396. function fSetSizeFormCC()
  397. {
  398. ivw_0000931001.window.javascript.fInitPage(false, parseInt(ivw_0000931001.attribute("height")), parseInt(ivw_0000931001.attribute("width")));
  399. }
  400. /*****************************************************************************
  401. 튜닝
  402. ******************************************************************************/
  403. var gLoadFormCnts = 0;
  404. /**
  405. * @group :
  406. * @ver : 2008.06.13
  407. * @by : snoweye
  408. * @---------------------------------------------------
  409. * @type : function
  410. * @access : private
  411. * @desc : 화면 로딩후 초기화 작업 수행
  412. * @param :
  413. * @return :
  414. * @---------------------------------------------------
  415. */
  416. function fFormReady()
  417. {
  418. grup_base.attribute("border-style") = "none";
  419. setSectionSize(gItemCds, 0, 606);
  420. dispOnLoadComplete(COMN_FORM);
  421. InitBtnImge(gItemImgCds);
  422. InitBtnComn(gItemCds);
  423. InitBtnOutPrcp("0001106001");
  424. InitBtnResv("0000080001");
  425. //2010-03-31 오전 9:47:21 강지훈 추가 : 최종진단명 요약지 추가
  426. InitBtnLastDiag("0001013001");
  427. //2010.01.21
  428. initCmbExtnList(gItemCds);
  429. }
  430. /**
  431. * @group :
  432. * @ver : 2008.06.13
  433. * @by : snoweye
  434. * @---------------------------------------------------
  435. * @type : function
  436. * @access : private
  437. * @desc : 부분서식 로딩
  438. * @param :
  439. * @return :
  440. * @---------------------------------------------------
  441. */
  442. function fLoadUnitForm()
  443. {
  444. initSection(gItemCds);
  445. }
  446. /**
  447. * @group :
  448. * @ver : 2008.06.13
  449. * @by : snoweye
  450. * @---------------------------------------------------
  451. * @type : function
  452. * @access : private
  453. * @desc : 부분서식 로딩후 후처리
  454. * @param :
  455. * @return :
  456. * @---------------------------------------------------
  457. */
  458. function fOnLoadComplete()
  459. {
  460. var curLoadFormCd = getParameter("loadformcd");
  461. setParameter("loadformcd", "");
  462. var fstLevlItemCd = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/orgsupdegnitemcd");
  463. var ivwObj = document.controls("ivw_" + fstLevlItemCd);
  464. var unitformload = model.getValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "' and loaded != 'true']/loaded");
  465. if(ivwObj != null && unitformload != "true")
  466. {
  467. //ivwObj.window.javascript.setFstLevlItemCd(fstLevlItemCd);
  468. setFstLevlItemCd(ivwObj, curLoadFormCd);
  469. model.setValue(gPageInfo.forminfoRef + "/unitformmast[formcd='" + curLoadFormCd + "']/loaded", "true");
  470. }
  471. //진단명 부분서식 로딩후 처리
  472. if(fstLevlItemCd == '0001013001')
  473. {
  474. fSetSizeFormDiag();
  475. }
  476. //수술명 부분서식 로딩후 처리
  477. if(fstLevlItemCd == '0000933001')
  478. {
  479. fSetSizeFormOpr();
  480. }
  481. //주호소 부분서식 로딩후 처리
  482. if(fstLevlItemCd == '0000931001')
  483. {
  484. fSetSizeFormCC();
  485. }
  486. gLoadFormCnts++;
  487. if(gItemCds.length == gLoadFormCnts)
  488. {
  489. //fExtnInitFormRec();//2010.03.17 dhkim initFormAtLast_MMR01100I() 로 이동(initAtLast이후에 퇴원처방데이터가 로딩되어야함)
  490. dispOnLoadComplete(UNIT_FORM);
  491. if (parent.window.javascript.fGetFormRec("status") == "C")
  492. {
  493. //2010-03-11 오후 8:06:14 강지훈 수정 : 최종진단명 요약지 최초작성시 disable처리
  494. btn_lastdiag_0001013001.disabled = true;
  495. SetDefFocusMTX(gItemCds);
  496. }
  497. else if (parent.window.javascript.fGetFormRec("status") == "U" && parent.window.javascript.fGetFormRec("espiyn") == "Y")
  498. {
  499. //2010.04.20 dhkim Staff-Sign권한체크로직 펑션으로 분리
  500. fCosignCheck();
  501. }
  502. //2010.02.25 안치원 - 입퇴원요약기록 - 퇴원처방 입력방법 변경(팝업)
  503. // doDschOrdCntsOfDCSN_MMRCom("LOAD_COMPLETE");
  504. refreshDschOrd_MMR00800("SET_DSCHORD");
  505. }
  506. }
  507. /**
  508. * @group :
  509. * @ver : 2008.11.28
  510. * @by : jonghun
  511. * @---------------------------------------------------
  512. * @type : function
  513. * @access : private
  514. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  515. * @param :
  516. * @return :
  517. * @---------------------------------------------------
  518. */
  519. function fGetDefData()
  520. {
  521. //fExtnInitFormRec();
  522. dispOnLoadComplete(UNIT_FORM);
  523. if (parent.window.javascript.fGetFormRec("status") == "C")
  524. {
  525. SetDefFocusMTX(gItemCds);
  526. }
  527. }
  528. function fSaveAfter()
  529. {
  530. // doDschOrdCntsOfDCSN_MMRCom("SAVE_AFTER");
  531. refreshDschOrd_MMR00800("SAVE_AFTER");
  532. }
  533. function refreshDschOrd_MMR00800(flag)
  534. {
  535. model.addlog(">> refreshDschOrd_MMR00800 "+flag);
  536. var enabled = false;
  537. if (parent.window.javascript.getInitInfo_MMR01100("openExtnFlag") == "DisChargeSummaryNote_ReDschOrd") {
  538. enabled = true;
  539. }
  540. if (flag == "ENABLED") {
  541. //*****************************************************************
  542. //퇴원처방 자동저장 기능 수행여부
  543. //*****************************************************************
  544. return enabled;
  545. }
  546. else if (flag == "CHK_PRE_SAVE") {
  547. if (enabled) {
  548. //*****************************************************************
  549. //퇴원처방내역이 갱신되었는지를 검사하여, 변경되지 않으면 저장이 되지 않는다.
  550. //*****************************************************************
  551. var oldCnts = model.getValue("/root/hidden/dschordcnts");
  552. var newCnts = model.getValue("/root/main/recinfo/recitem[degnitemlevlcd = '0001106']/reccnts");
  553. if (oldCnts == newCnts) {
  554. return false;
  555. } else {
  556. return true;
  557. }
  558. }
  559. else {
  560. return true;
  561. }
  562. }
  563. else {
  564. if (enabled) {
  565. if (flag == "SET_DSCHORD") {
  566. //*****************************************************************
  567. //퇴원처방을 설정한다.
  568. //*****************************************************************
  569. var oldCnts = model.getValue("/root/hidden/recinfo/recitem[degnitemlevlcd = '0001106']/reccnts");
  570. model.makeValue("/root/hidden/dschordcnts", oldCnts);
  571. fGetAutoPatOutPrcpList("0001106001", flag);
  572. if (parent.window.javascript.fClickSave("Y") == false) {
  573. refreshDschOrd_MMR00800("CLOSE_AUTOSAVE_FORM");
  574. }
  575. }
  576. else if (flag == "SAVE_AFTER") {
  577. //*****************************************************************
  578. //저장후에 진료기록메인이 있다면 갱신한다.
  579. //*****************************************************************
  580. var mainWnd = getMainViewer();
  581. if (mainWnd != null && mainWnd.javascript.getScreenID() == "SMMMR00100") {
  582. mainWnd.window.reload();
  583. }
  584. refreshDschOrd_MMR00800("CLOSE_AUTOSAVE_FORM");
  585. }
  586. else if (flag == "CLOSE_AUTOSAVE_FORM") {
  587. //*****************************************************************
  588. //서식자동저장 창을 닫는다.
  589. //*****************************************************************
  590. var wnd = getOpenWindow("SPMMR07300");
  591. if (wnd != null) {
  592. wnd.window.close();
  593. }
  594. }
  595. }
  596. }
  597. }
  598. /**
  599. * 2010.03.17 dhkim 추가
  600. */
  601. function initFormAtLast_MMR01100I(){
  602. fExtnInitFormRec();//확장서식 기록 초기 설정(initFormAtLast이후에 퇴원처방로딩되어야함)
  603. }
  604. /**
  605. * @group :
  606. * @ver : 2010.04.20
  607. * @by : dhkim
  608. * @---------------------------------------------------
  609. * @type : function
  610. * @access : private
  611. * @desc : Staff-Sign관련 권한체크 로직 onloadcomplete함수에서 분리
  612. * 기존의 TRMMR00802 호출하던 submission을 TRMMR01302로 통합함.
  613. * @param :
  614. * @return :
  615. * @---------------------------------------------------
  616. */
  617. function fCosignCheck(){
  618. //코사인 권한 관련 처리
  619. model.removenode("/root/send/extninfo");
  620. model.makeValue("/root/send/extninfo/infoflag", "staffauth");
  621. model.makeValue("/root/send/extninfo/formrecseq", parent.window.javascript.fGetFormRec("formrecseq"));
  622. if(submit("TRMMR01302"))
  623. {
  624. var authyn = model.getValue("/root/main/extninfo/staffauthinfo/authyn");
  625. if(authyn == "Y")
  626. {
  627. //인증저장버튼과 코사인버튼처리
  628. parent.window.btn_cosign.attribute("left") = parent.window.btn_signsave.attribute("left");
  629. parent.window.btn_signsave.visible = false;
  630. parent.window.btn_cosign.visible = true;
  631. //임시저장버튼과 기록반려버튼처리
  632. parent.window.btn_resend.attribute("left") = parent.window.btn_tmpsave.attribute("left");
  633. parent.window.btn_tmpsave.visible = false;
  634. parent.window.btn_resend.visible = true;
  635. //기타버튼 disable처리
  636. parent.window.btn_init.disabled = true;
  637. parent.window.btn_preview.disabled = true;
  638. parent.window.btn_signsaveasnew.disabled = true;
  639. parent.window.btn_del.disabled = true;
  640. if (parent.window.javascript.fGetFormRec("cosign") == "Y")
  641. {
  642. parent.window.btn_cosign.disabled = true;
  643. //2010-03-31 오전 9:49:07 강지훈 추가 : 최종진단명 요약지 버튼설정, Staffsign이 완료된이후에만 사용
  644. //grup_base.disabled = true;
  645. var childrenObj = grup_base.children;
  646. for(i=0; i< childrenObj.length; i++)
  647. {
  648. childObj = childrenObj.item(i);
  649. if(childObj.attribute("id") == "btn_lastdiag_0001013001"){
  650. childObj.disabled = false;
  651. }
  652. else{
  653. childObj.disabled = true;
  654. }
  655. }
  656. }
  657. else
  658. {
  659. parent.window.btn_cosign.disabled = false;
  660. grup_base.disabled = false;
  661. }
  662. }
  663. else
  664. {
  665. //인증저장버튼과 코사인버튼처리
  666. parent.window.btn_signsave.visible = true;
  667. parent.window.btn_cosign.visible = false;
  668. //임시저장버튼과 기록반려버튼처리
  669. parent.window.btn_tmpsave.visible = true;
  670. parent.window.btn_resend.visible = false;
  671. //기타버튼 enable처리
  672. parent.window.btn_init.disabled = false;
  673. parent.window.btn_preview.disabled = false;
  674. parent.window.btn_signsaveasnew.disabled = false;
  675. parent.window.btn_del.disabled = false;
  676. }
  677. }
  678. //2010.04.20 dhkim - 기존에 호출하던 TRMMR00802를 주석처리 후 TRMMR01302로 변경함.
  679. /*
  680. //코사인 권한 관련 처리(2008-11-27 박종훈)
  681. model.makeValue("/root/authsend/pid" , parent.window.javascript.fGetFormRec("pid"));
  682. model.makeValue("/root/authsend/indd", parent.window.javascript.fGetFormRec("orddd"));
  683. model.makeValue("/root/authsend/cretno", parent.window.javascript.fGetFormRec("cretno"));
  684. model.makeValue("/root/authsend/formcd", parent.window.javascript.fGetFormRec("formcd"));
  685. model.makeValue("/root/authsend/srcformcd", parent.window.javascript.fGetFormRec("srcformcd"));
  686. model.makeValue("/root/authsend/formkind" , "-");
  687. if(submit("TRMMR00802"))
  688. {
  689. if(model.getValue("/root/staffcoyn/authyn") == "Y")
  690. {
  691. //인증저장버튼과 코사인버튼처리
  692. parent.window.btn_cosign.attribute("left") = parent.window.btn_signsave.attribute("left");
  693. parent.window.btn_signsave.visible = false;
  694. parent.window.btn_cosign.visible = true;
  695. //임시저장버튼과 기록반려버튼처리
  696. parent.window.btn_resend.attribute("left") = parent.window.btn_tmpsave.attribute("left");
  697. parent.window.btn_tmpsave.visible = false;
  698. parent.window.btn_resend.visible = true;
  699. //기타버튼 disable처리
  700. parent.window.btn_init.disabled = true;
  701. parent.window.btn_preview.disabled = true;
  702. parent.window.btn_signsaveasnew.disabled = true;
  703. parent.window.btn_del.disabled = true;
  704. if (parent.window.javascript.fGetFormRec("cosign") == "Y")
  705. {
  706. parent.window.btn_cosign.disabled = true;
  707. //2010-03-31 오전 9:49:07 강지훈 추가 : 최종진단명 요약지 버튼설정, Staffsign이 완료된이후에만 사용
  708. //grup_base.disabled = true;
  709. var childrenObj = grup_base.children;
  710. for(i=0; i< childrenObj.length; i++)
  711. {
  712. childObj = childrenObj.item(i);
  713. if(childObj.attribute("id") == "btn_lastdiag_0001013001"){
  714. childObj.disabled = false;
  715. }
  716. else{
  717. childObj.disabled = true;
  718. }
  719. }
  720. }
  721. else
  722. {
  723. parent.window.btn_cosign.disabled = false;
  724. grup_base.disabled = false;
  725. }
  726. }
  727. else
  728. {
  729. //인증저장버튼과 코사인버튼처리
  730. parent.window.btn_signsave.visible = true;
  731. parent.window.btn_cosign.visible = false;
  732. //임시저장버튼과 기록반려버튼처리
  733. parent.window.btn_tmpsave.visible = true;
  734. parent.window.btn_resend.visible = false;
  735. //기타버튼 enable처리
  736. parent.window.btn_init.disabled = false;
  737. parent.window.btn_preview.disabled = false;
  738. parent.window.btn_signsaveasnew.disabled = false;
  739. parent.window.btn_del.disabled = false;
  740. }
  741. }
  742. */
  743. }