MMR00800.xjs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var gItemCds = new Array("0001013001" //진단명
  3. , "0000933001" //수술및처치명
  4. , "0000931001" //주호소
  5. , "0001173001" //현병력
  6. , "0000098001" //과거력
  7. , "0001052001" //치료과정
  8. , "0000053001" //검사결과
  9. , "0001106001" //퇴원처방
  10. , "0000080001" //추후계획
  11. );
  12. var gItemCdsTextArea = new Array("0001173001", "0000098001", "0001052001", "0000053001", "0001106001", "0000080001");
  13. var gItemImgCds = new Array("0001173001", "0001052001", "0000053001");
  14. var arrItemCds = new Array("0001013001"
  15. , "0000933001"
  16. , "0000931001"
  17. , "0001173001"
  18. , "0000098001"
  19. , "0001052001"
  20. , "0000053001"
  21. , "0001106001"
  22. , "0000080001"
  23. , "0000146001"
  24. , "0001048001" //치료결과
  25. , "0001107001" //퇴원형태
  26. , "0008331001" //생검여부
  27. , "0000735001" //선행사인
  28. );
  29. var rSang = grup_base.group1.rdo_sang.degnitemno;
  30. var cOtype = grup_base.group1.cbo_outtype.degnitemno;
  31. var cCrslt = grup_base.group1.cbo_carerslt.degnitemno;
  32. var g_hidden_dschordcnts = "";
  33. /**
  34. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  35. * @id :
  36. * @authur : 안치원
  37. * @history : 2009.09.09 신규 안치원 ACW_090909A
  38. : 2010-03-31 오전 9:46:59 강지훈 수정 : 최종진단명 버튼 추가
  39. */
  40. var gExtnBtnIds = new Array("btn_imge_0001173001", "btn_imge_0001052001", "btn_imge_0000053001", "btn_lastdiag_0001013001");
  41. /**
  42. * @desc : 기록데이터 조회
  43. * @id :
  44. * @event : xforms-ready
  45. * @return : void
  46. * @authur : 박종훈
  47. */
  48. function fLoadData()
  49. {
  50. lf_setRecData(arrItemCds);
  51. var sStatus = fGetFormRec("status");
  52. fSetBasicInfo(sStatus);
  53. // InitPgmFormData();
  54. // InitUnitFormData(gItemCds);
  55. }
  56. /**
  57. * @desc : 서식 데이터 Clear
  58. * @
  59. * @param :
  60. * @return :
  61. * @authur : 박종훈
  62. */
  63. function fClearComnFormData()
  64. {
  65. if (gMaxSectionID != "")
  66. {
  67. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  68. MaxObj.dispatch("onclick");
  69. }
  70. ClearComnFormData(gItemCds);
  71. clearData();
  72. //초기화 후 기본내용 조회
  73. //fExtnInitFormRec();//2010.03.17 dhkim initFormAtLast_MMR01100I로 이동(initAtLast이후에 퇴원처방 데이터가 로딩되어야함)
  74. //포커스 처리
  75. SetDefFocusMTX(gItemCds);
  76. }
  77. function fSetRecItemValue(reciteminfo)
  78. {
  79. return SetCommMediFormValue(gItemCds, reciteminfo);
  80. }
  81. /****************************************************************************************
  82. * Components : Radio
  83. * Components ID : Common Radio
  84. * Event : onitemchange
  85. * Argument : 01.obj : Object Event has occurred
  86. * : 02.e : Event Object
  87. * Description : 라디오버튼(콤보박스) 선택에 따른 reccnts셋팅
  88. ****************************************************************************************/
  89. function fRadioYN(obj, e:ItemChangeEventInfo)
  90. {
  91. var sDegnitemlevlcd = obj.degnitemlevlcd;
  92. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  93. //var sDegnitemno = obj.degnitemno;
  94. //var nFindRow = ds_data_recitem.findRow("degnitemno", sDegnitemno);
  95. if(nFindRow == -1)
  96. {
  97. nFindRow = ds_data_recitem.addRow();
  98. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  99. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  100. }
  101. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  102. ds_data_recitem.setColumn(nFindRow, "rectermnm", e.posttext);
  103. // var ditemno = eval(cType);
  104. // var sRdoCd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermcd");
  105. // var sRdoNm = model.getValue("/root/main/forminfo/vallist[valcd='" + sRdoCd + "']/valitemnm");
  106. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermnm", sRdoNm);
  107. }
  108. /****************************************************************************************
  109. * Components : Radio
  110. * Components ID : Common Radio
  111. * Event : onrbuttondown
  112. * Argument : 01.obj : Object Event has occurred
  113. * : 02.e : Event Object
  114. * Description : 라디오버튼(콤보박스) 선택 초기화
  115. ****************************************************************************************/
  116. function fCnclMicroTest(obj:Radio, e:MouseEventInfo)
  117. {
  118. //var sDegnitemlevlcd = obj.degnitemlevlcd;
  119. //var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  120. var sDegnitemno = obj.degnitemno;
  121. var nFindRow = ds_data_recitem.findRow("degnitemno", sDegnitemno);
  122. ds_data_recitem.setColumn(nFindRow, "rectermcd", "");
  123. ds_data_recitem.setColumn(nFindRow, "rectermnm", "");
  124. obj.value = "";
  125. return true;
  126. // var ditemno = eval(cType);
  127. // model.setValue("/root/main/recinfo/recitem[degnitemno='" + ditemno + "']/rectermcd", "");
  128. }
  129. /****************************************************************************************
  130. * Function : fChkPreSave
  131. * Description : 기록 인스턴스 연결
  132. * retrun type :
  133. * Creator :
  134. ****************************************************************************************/
  135. function fChkPreSave(signedYn)
  136. {
  137. var rtnVal = true;
  138. var itemNm = "";
  139. if( signedYn == "N" )
  140. return true;
  141. rtnVal = refreshDschOrd_MMR00800("CHK_PRE_SAVE");
  142. if(rtnVal == false){
  143. return false;
  144. }else{
  145. if( grup_base.ivw_0001013001.fChkGrdPreSave_MMR00800(true, itemNm) == false ){
  146. return false;
  147. }
  148. return grup_base.ivw_0000931001.fChkGrdPreSave(true, itemNm);//주호소
  149. }
  150. }
  151. /****************************************************************************************
  152. * Function : fExtnInitFormRec
  153. * Description : 확장서식 기록 초기 설정
  154. * retrun type :
  155. * Creator :
  156. ****************************************************************************************/
  157. function fExtnInitFormRec()
  158. {
  159. if (parent.fGetFormRec("status") == "C")
  160. {
  161. //debugger;
  162. // grup_base.ivw_0001013001.fGetDiagNm(parent.ds_data_formrec); //환자정보로 진단명 조회
  163. // grup_base.ivw_0000933001.fSrchOprlist(parent.ds_data_formrec); //환자정보로 수술명 조회
  164. var sSendDsNm = dsf_createDsRow("ds_send_reqinfstrec", [{col:"pid", type:"string", size:256, val:parent.fGetFormRec("pid")}
  165. , {col:"orddd", type:"string", size:256, val:parent.fGetFormRec("orddd")}
  166. , {col:"cretno", type:"INT" , size:256, val:parent.fGetFormRec("cretno")}]);
  167. var objSandDS:Dataset = new Dataset;
  168. objSendDS = this.objects[sSendDsNm];
  169. var sRtnDsNm = dsf_createDs("ds_data_infstrec", [{col:"instcd", type:"STRING", size:256}
  170. , {col:"rechistseq", type:"BIGDECIMAL", size:256}
  171. , {col:"recitemno", type:"INT", size:256}
  172. , {col:"fstlevlitemcd", type:"STRING", size:256}
  173. , {col:"formcd", type:"STRING", size:256}
  174. , {col:"formdegnseq", type:"BIGDECIMAL", size:256}
  175. , {col:"degnitemno", type:"INT", size:256}
  176. , {col:"degnitemcd", type:"STRING", size:256}
  177. , {col:"degnitemkind", type:"STRING", size:256}
  178. , {col:"degnitemlevlno", type:"INT", size:256}
  179. , {col:"degnitemnm", type:"STRING", size:256}
  180. , {col:"degnitemlevlcd", type:"STRING", size:256}
  181. , {col:"rectermcd", type:"STRING", size:256}
  182. , {col:"rectermnm", type:"STRING", size:256}
  183. , {col:"recrefcd", type:"STRING", size:256}
  184. , {col:"recitemnm", type:"STRING", size:256}
  185. , {col:"reccnts", type:"STRING", size:256}
  186. , {col:"unitnm", type:"STRING", size:256}
  187. , {col:"recimge", type:"BLOB", size:0}
  188. , {col:"srcimge", type:"BLOB", size:0}
  189. , {col:"rowno", type:"STRING", size:256}
  190. , {col:"colno", type:"STRING", size:256}
  191. , {col:"supdegnitemno", type:"STRING", size:256}
  192. , {col:"extdegnitemlevlcd", type:"STRING", size:256}
  193. , {col:"rectermflag", type:"STRING", size:256}
  194. , {col:"degnunitcd", type:"STRING", size:256}], true);
  195. var objRtnDS:Dataset = new Dataset;
  196. objRtnDS = this.objects[sRtnDsNm];
  197. var oParam = {};
  198. oParam.id = "TRMMR00801";
  199. oParam.service = "formmngtapp.FormIfMngt";
  200. oParam.method = "reqGetDschSmmIf";
  201. oParam.inds = "req="+sSendDsNm;
  202. oParam.outds = sRtnDsNm+"=recitem";
  203. oParam.async = false;
  204. oParam.callback = "cf_TRMMR00801";
  205. tranf_submit(oParam);
  206. if(arErrorCode.pop("TRMMR00801") > -1)
  207. {
  208. // sysf_trace(objRtnDS.saveXML());
  209. /* SSMRF04100_서식주호소 유입
  210. var filterStr = "fstlevlitemcd=='0000931001' && formcd == '0000000901'";
  211. if( objRtnDS.getCaseCount(filterStr) > 0 ){
  212. objRtnDS.filter(filterStr);
  213. grup_base.ivw_0000931001.fSetCCInfo(objRtnDS);
  214. grup_base.ivw_0000931001.fAddrow();
  215. objRtnDS.filter("");
  216. }
  217. */
  218. //현병력
  219. var nFindRow = objRtnDS.findRow("degnitemlevlcd", "0001173");
  220. var fstlevlitemcd = objRtnDS.getColumn(nFindRow, "fstlevlitemcd");
  221. var tarObj = ComnFormObj.components["tar_" + fstlevlitemcd];
  222. if( !utlf_isNull(tarObj) ){
  223. var sValue = objRtnDS.getColumn(nFindRow, "reccnts");
  224. var nRow = ds_data_recitem.findRow("degnitemno", "4");
  225. ds_data_recitem.setColumn(nRow, "reccnts", sValue);
  226. tarObj.value = sValue;
  227. }
  228. //과거력
  229. var arrAnstnodeList = objExt.findRows(objRtnDS, "fstlevlitemcd", "0000098001");
  230. var degnitemlevlcd = "";
  231. var rectermcd = "";
  232. var rectermnm = "";
  233. var reccnts = "";
  234. var degnitemnm = "";
  235. var degnitemkind = "";
  236. var recrslt = "";
  237. for(var i = 0; i < arrAnstnodeList.length; i++)
  238. {
  239. degnitemlevlcd = objRtnDS.getColumn(arrAnstnodeList[i], "degnitemlevlcd");
  240. rectermcd = objRtnDS.getColumn(arrAnstnodeList[i], "rectermcd");
  241. rectermnm = objRtnDS.getColumn(arrAnstnodeList[i], "rectermnm");
  242. reccnts = objRtnDS.getColumn(arrAnstnodeList[i], "reccnts");
  243. degnitemnm = objRtnDS.getColumn(arrAnstnodeList[i], "degnitemnm");
  244. degnitemkind = objRtnDS.getColumn(arrAnstnodeList[i], "degnitemkind");
  245. if(degnitemkind == "IMG" || degnitemkind == "FDG")
  246. continue;
  247. degnitemlevlcd = degnitemlevlcd.split(".");
  248. if (degnitemlevlcd.length > 1){
  249. if (!utlf_isNull(rectermnm) && !utlf_isNull(reccnts)){
  250. recrslt += degnitemnm + rectermnm + " ※ " + reccnts + "\n";
  251. }else if (!utlf_isNull(rectermnm)){
  252. recrslt += degnitemnm + rectermnm + "\n";
  253. }else if (!utlf_isNull(reccnts)){
  254. recrslt += degnitemnm + " ※ " + reccnts + "\n";
  255. }
  256. }else{
  257. recrslt = reccnts + "\n";
  258. }
  259. }
  260. var tarObj = ComnFormObj.components["tar_0000098001"];
  261. if( !utlf_isNull(tarObj) ){
  262. var nRow = ds_data_recitem.findRow("degnitemno", "5");
  263. ds_data_recitem.setColumn(nRow, "reccnts", recrslt);
  264. tarObj.value = recrslt;
  265. }
  266. }
  267. }
  268. var dschdd = parent.fGetPamInfo("dschdd");
  269. var indschacptstat = parent.fGetPamInfo("indschacptstat");
  270. //sysf_trace(" dschdd : " + dschdd + " || indschacptstat : " + indschacptstat + " || indschacptstat : " + indschacptstat );
  271. if (dschdd == "99991231" && indschacptstat != "D" && indschacptstat != "T")
  272. {
  273. if (grup_base.btn_outprcp_0001106001.enable && grup_base.btn_resv_0000080001.enable)
  274. {
  275. //퇴원처방, 예약버튼 비활성화
  276. grup_base.btn_outprcp_0001106001.enable = false;
  277. grup_base.ivw_0001106001.enable = false;
  278. grup_base.tar_0001106001.enable = false;
  279. }
  280. }
  281. else
  282. {
  283. if (!grup_base.btn_outprcp_0001106001.enable && !grup_base.btn_resv_0000080001.enable)
  284. {
  285. //퇴원처방, 예약버튼 활성화
  286. grup_base.btn_outprcp_0001106001.enable = true;
  287. grup_base.ivw_0001106001.enable = true;
  288. grup_base.tar_0001106001.enable = true;
  289. }
  290. fGetAutoPatOutPrcpList("0001106001");
  291. }
  292. }
  293. function cf_TRMMR00801(sSvcId, nErrorCode, sErrorMsg) {
  294. arErrorCode.push(sSvcId, nErrorCode);
  295. }
  296. /****************************************************************************************
  297. * Function : fGetAutoPatOutPrcpList
  298. * Description : 환자퇴원처방정보 가져오기
  299. * 2010.04.14 dhkim 퇴원처방자동저장 플래그추가
  300. * Argument : 01. itemCd
  301. * 02. autoSaveYn
  302. * retrun type :
  303. * Creator :
  304. ****************************************************************************************/
  305. function fGetAutoPatOutPrcpList(itemCd, autoSaveYn)
  306. {
  307. var prcpdd = "";
  308. var bfflag = "bfprcp";
  309. var flag = "-";
  310. var todd = "";
  311. var nRow = parent.ds_data_formrec.rowposition;
  312. var pid = parent.ds_data_formrec.getColumn(nRow, "pid");
  313. var orddd = parent.ds_data_formrec.getColumn(nRow, "orddd");
  314. var cretno = parent.ds_data_formrec.getColumn(nRow, "cretno");
  315. var orddrid = "";
  316. var orddeptcd = parent.ds_data_formrec.getColumn(nRow, "orddeptcd");
  317. var prcpgenrflag = parent.ds_data_formrec.getColumn(nRow, "chosflag");
  318. //2010.03.17 dhkim 퇴원처방 구분자 변경됨
  319. prcpdd = "recbfsrch"; // 입퇴원 요약지의 퇴원처방 날짜조건 변경을 위한 구분자
  320. sysf_trace("==fGetAutoPatOutPrcpList 입퇴원요약 처음로딩시 : prcpdd ::" + prcpdd);
  321. //처방정보 가져오기(퇴원처방 prcpkindcd = 60)
  322. //if(fBfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", true))
  323. var prcplistCnt = 0;
  324. var expr = "prcpkindcd == 60 && prcphistcd != 'C' && prcphistcd != 'L' && prcphistcd != 'E'";
  325. if(lf_bfPrcpSrchCom(pid, orddd, prcpdd, bfflag, flag, orddrid, todd, prcpgenrflag, orddeptcd, cretno, "TRMMO00100", "", "", ""))
  326. {
  327. //var nodelistPrcpinfo = model.instances(0).selectNodes("/root/prcpsrch/prcplist[prcpkindcd = 60 and prcphistcd != 'C' and prcphistcd != 'L' and prcphistcd != 'E']");
  328. prcplistCnt = ds_prcpsrch_prcplist.getCaseCount(expr);
  329. }
  330. var prcpkind = ""; //처방종류
  331. var orgprcpnm = ""; //처방명
  332. var drugmthdspccdnm = ""; //용법
  333. var prcpdelivefact = ""; //전달사항
  334. var prcplist = "";
  335. var prcpclscd = "";
  336. var tmpdrugmthdspccdnm = "";
  337. if(prcplistCnt >= 1){
  338. ds_prcpsrch_prcplist.filter(expr);
  339. for(var i = 0; i < prcplistCnt; i++)
  340. {
  341. tmpdrugmthdspccdnm = ds_prcpsrch_prcplist.getColumn(i, "drugmthdspccdnm");
  342. prcpkind = ds_prcpsrch_prcplist.getColumn(i, "tempcol13");
  343. orgprcpnm = ds_prcpsrch_prcplist.getColumn(i, "tempcol6");
  344. drugmthdspccdnm = utlf_transNullToEmpty(ds_prcpsrch_prcplist.getColumn(i, "tempcol7"));
  345. prcpclscd = ds_prcpsrch_prcplist.getColumn(i, "prcpclscd");
  346. drugmthdspccdnm = drugmthdspccdnm.replace(tmpdrugmthdspccdnm, "");
  347. drugmthdspccdnm = drugmthdspccdnm.replace("[급]", "");
  348. drugmthdspccdnm = drugmthdspccdnm.replace("[일]", "");
  349. drugmthdspccdnm = drugmthdspccdnm.replace("[본]", "");
  350. drugmthdspccdnm = drugmthdspccdnm.replace("(집)", "");
  351. drugmthdspccdnm = drugmthdspccdnm.replace("[home]", "");
  352. drugmthdspccdnm = drugmthdspccdnm.replace("[임상]", "");
  353. drugmthdspccdnm = drugmthdspccdnm.replace("[prn]", "");
  354. var prcpdelivefact = ds_prcpsrch_prcplist.getColumn(i, "prcpdelivefact");
  355. if (prcpclscd == "A2" || prcpclscd == "A4" || prcpclscd == "A6")
  356. {
  357. prcplist += orgprcpnm + " " + drugmthdspccdnm + "\n"
  358. }
  359. else
  360. {
  361. prcplist += orgprcpnm + "\n"
  362. }
  363. }
  364. ds_prcpsrch_prcplist.filter("");
  365. }
  366. else
  367. {
  368. prcplist = "No medication";
  369. }
  370. var nFindRow = ds_data_recitem.findRow("fstlevlitemcd", itemCd);
  371. var prerec = ds_data_recitem.getColumn(nFindRow, "reccnts");
  372. if (utlf_isNull(prerec))
  373. {
  374. prerec = prcplist + "\n";
  375. }
  376. //2010.04.14 dhkim 퇴원처방자동저장의 경우 기존의 값이 있어도 새로 세팅한다.
  377. if(autoSaveYn == "SET_DSCHORD"){
  378. prerec = prcplist + "\n";
  379. }
  380. if(!utlf_isNull(prerec))
  381. {
  382. var objTextArea = ComnFormObj.components["tar_" + itemCd];
  383. // var objDivArea = ComnFormObj.components["ivw_" + itemCd];
  384. if(nFindRow == -1)
  385. {
  386. var nTmpPrntRow = ds_temp_mainrecitem.findRowExpr("fstlevlitemcd == '" + itemCd + "' && degnitemlevlno == '1' && degnitemkind == 'MTX'");
  387. if(nTmpPrntRow != -1)
  388. {
  389. nFindRow = ds_data_recitem.addRow();
  390. ds_data_recitem.copyRow(ds_data_recitem.rowcount - 1, ds_temp_mainrecitem, nTmpPrntRow);
  391. }
  392. }
  393. ds_data_recitem.setColumn(nFindRow, "reccnts", prerec);
  394. objTextArea.value = prerec;
  395. }
  396. //model.setValue(pageInfo.recItemRef + "[fstlevlitemcd='" + itemCd + "']/reccnts", prerec);
  397. return prcplistCnt;
  398. }
  399. /****************************************************************************************
  400. * Function : fSetDataValItem
  401. * Description : Value List데이터 아이템 값 매핑
  402. * retrun type :
  403. * Creator :
  404. ****************************************************************************************/
  405. function fSetDataValItem()
  406. {
  407. //치료결과 Vallist Setting
  408. var carersltgpcd = ds_data_formdegn.lookup("degnitemno", cCrslt, "valgrupcd");
  409. ds_data_vallist.filter("grupcd=='"+carersltgpcd+"'");
  410. ds_init_cbo_carerslt.copyData(ds_data_vallist, true);
  411. //ds_data_vallist.filter("");
  412. //퇴원형태 Vallist Setting
  413. var dschtypegpcd = ds_data_formdegn.lookup("degnitemno", cOtype, "valgrupcd");
  414. ds_data_vallist.filter("grupcd=='"+dschtypegpcd+"'");
  415. ds_init_cbo_outtype.copyData(ds_data_vallist, true);
  416. //ds_data_vallist.filter("");
  417. //생검여부 Vallist Setting
  418. var sanggpcd = ds_data_formdegn.lookup("degnitemno", rSang, "valgrupcd");
  419. ds_data_vallist.filter("grupcd=='"+sanggpcd+"'");
  420. ds_init_rdo_sang.copyData(ds_data_vallist, true);
  421. ds_data_vallist.filter("");
  422. }
  423. /**
  424. * @desc : 서식 진단명 사이즈 조절
  425. * @
  426. * @param :
  427. * @return :
  428. * @---------------------------------------------------
  429. */
  430. function fSetSizeFormDiag()
  431. {
  432. grup_base.ivw_0001013001.fInitPage(false, parseInt(grup_base.ivw_0001013001.position.height), parseInt(grup_base.ivw_0001013001.position.width));
  433. }
  434. /**
  435. * @desc : 서식 수술명 사이즈 조절
  436. * @
  437. * @param :
  438. * @return :
  439. * @---------------------------------------------------
  440. */
  441. function fSetSizeFormOpr()
  442. {
  443. grup_base.ivw_0000933001.fInitPage(false, parseInt(grup_base.ivw_0000933001.position.height), parseInt(grup_base.ivw_0000933001.position.width));
  444. }
  445. /**
  446. * @desc : 서식 주호소 사이즈 조절
  447. * @
  448. * @param :
  449. * @return :
  450. * @---------------------------------------------------
  451. */
  452. function fSetSizeFormCC()
  453. {
  454. grup_base.ivw_0000931001.fInitPage(false, parseInt(grup_base.ivw_0000931001.position.height), parseInt(grup_base.ivw_0000931001.position.width));
  455. }
  456. /*****************************************************************************
  457. 튜닝
  458. ******************************************************************************/
  459. var gLoadFormCnts = 0;
  460. /*******************************************************************
  461. * Function : fFormReady
  462. * Description : 화면 로드시 초기화 작업을 수행
  463. *******************************************************************/
  464. function fFormReady()
  465. {
  466. this.ComnFormObj = this.grup_base;
  467. dsf_createDsRow("ds_temp_mainrecitem",
  468. [{col:"formxrw", val:""}]);
  469. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  470. ds_temp_mainrecitem.assign(ds_data_recitem);
  471. lf_setSectionSize(gItemCds, "grup_base.tar_0001013001", "grup_base.tar_0000080001", 606);
  472. // dispOnLoadComplete(COMN_FORM);
  473. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  474. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로딩
  475. InitBtnImge(gItemImgCds);
  476. // InitBtnComn(gItemCds);
  477. InitBtnOutPrcp("0001106001"); //환자퇴원처방정보
  478. InitBtnResv("0000080001"); //환자예약정보
  479. //2010-03-31 오전 9:47:21 강지훈 추가 : 최종진단명 요약지 추가
  480. InitBtnLastDiag("0001013001");
  481. //2010.01.21
  482. // initCmbExtnList(gItemCds);
  483. fSetDataValItem(); // combo, radio valuelist 맵핑
  484. lf_setRecData(arrItemCds);
  485. var sStatus = fGetFormRec("status");
  486. fSetBasicInfo(sStatus);
  487. // fOnLoadComplete
  488. if (parent.fGetFormRec("status") == "C")
  489. {
  490. //2010-03-11 오후 8:06:14 강지훈 수정 : 최종진단명 요약지 최초작성시 disable처리
  491. grup_base.btn_lastdiag_0001013001.enable = false;
  492. SetDefFocusMTX(gItemCds);
  493. }
  494. else if (parent.fGetFormRec("status") == "U" && parent.fGetFormRec("espiyn") == "Y")
  495. {
  496. //2010.04.20 dhkim Staff-Sign권한체크로직 펑션으로 분리
  497. fCosignCheck();
  498. }
  499. //2010.02.25 안치원 - 입퇴원요약기록 - 퇴원처방 입력방법 변경(팝업)
  500. refreshDschOrd_MMR00800("SET_DSCHORD");
  501. // ivw_loder onloadcomplete
  502. if(lf_getHardCDList("Y", 9926, 3) == "Y"){
  503. grup_base.btn_lastdiag_0001013001.visible = true;
  504. }
  505. else{
  506. grup_base.btn_lastdiag_0001013001.visible = false;
  507. }
  508. }
  509. /**
  510. * @group :
  511. * @ver : 2008.06.13
  512. * @by : snoweye
  513. * @---------------------------------------------------
  514. * @type : function
  515. * @access : private
  516. * @desc : 부분서식 로딩
  517. * @param :
  518. * @return :
  519. * @---------------------------------------------------
  520. */
  521. function fLoadUnitForm()
  522. {
  523. initSection(gItemCds);
  524. }
  525. /**
  526. * @group :
  527. * @ver : 2008.06.13
  528. * @by : snoweye
  529. * @---------------------------------------------------
  530. * @type : function
  531. * @access : private
  532. * @desc : 부분서식 로딩후 후처리
  533. * @param :
  534. * @return :
  535. * @---------------------------------------------------
  536. */
  537. function fOnLoadComplete()
  538. {
  539. var curLoadFormCd = frmf_getParameter("loadformcd");
  540. frmf_setParameter("loadformcd", "");
  541. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  542. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  543. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  544. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  545. if(!utlf_isNull(ivwObj) && unitformload != "true")
  546. {
  547. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  548. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  549. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  550. }
  551. //진단명 부분서식 로딩후 처리
  552. if(fstLevlItemCd == '0001013001')
  553. {
  554. fSetSizeFormDiag();
  555. }
  556. //수술명 부분서식 로딩후 처리
  557. if(fstLevlItemCd == '0000933001')
  558. {
  559. fSetSizeFormOpr();
  560. }
  561. //주호소 부분서식 로딩후 처리
  562. if(fstLevlItemCd == '0000931001')
  563. {
  564. fSetSizeFormCC();
  565. }
  566. gLoadFormCnts++;
  567. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  568. if(gItemCds.length == gLoadFormCnts)
  569. {
  570. //fExtnInitFormRec();//2010.03.17 dhkim initFormAtLast_MMR01100I() 로 이동(initAtLast이후에 퇴원처방데이터가 로딩되어야함)
  571. dispOnLoadComplete(UNIT_FORM);
  572. if (parent.fGetFormRec("status") == "C")
  573. {
  574. //2010-03-11 오후 8:06:14 강지훈 수정 : 최종진단명 요약지 최초작성시 disable처리
  575. grup_base.btn_lastdiag_0001013001.enable = false;
  576. SetDefFocusMTX(gItemCds);
  577. }
  578. else if (parent.fGetFormRec("status") == "U" && parent.fGetFormRec("espiyn") == "Y")
  579. {
  580. //2010.04.20 dhkim Staff-Sign권한체크로직 펑션으로 분리
  581. fCosignCheck();
  582. }
  583. //2010.02.25 안치원 - 입퇴원요약기록 - 퇴원처방 입력방법 변경(팝업)
  584. // doDschOrdCntsOfDCSN_MMRCom("LOAD_COMPLETE");
  585. refreshDschOrd_MMR00800("SET_DSCHORD");
  586. }
  587. }
  588. /**
  589. * @group :
  590. * @ver : 2008.11.28
  591. * @by : jonghun
  592. * @---------------------------------------------------
  593. * @type : function
  594. * @access : private
  595. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  596. * @param :
  597. * @return :
  598. * @---------------------------------------------------
  599. */
  600. function fGetDefData()
  601. {
  602. //fExtnInitFormRec();
  603. dispOnLoadComplete(UNIT_FORM);
  604. if (parent.fGetFormRec("status") == "C")
  605. {
  606. SetDefFocusMTX(gItemCds);
  607. }
  608. }
  609. function fSaveAfter()
  610. {
  611. // doDschOrdCntsOfDCSN_MMRCom("SAVE_AFTER");
  612. refreshDschOrd_MMR00800("SAVE_AFTER");
  613. }
  614. /****************************************************************************************
  615. * Function : refreshDschOrd_MMR00800
  616. * Description :
  617. * Argument : 01.flag - 구분
  618. ****************************************************************************************/
  619. function refreshDschOrd_MMR00800(flag)
  620. {
  621. sysf_trace(">> refreshDschOrd_MMR00800 "+flag);
  622. var enabled = false;
  623. if (parent.getInitInfo_MMR01100("openExtnFlag") == "DisChargeSummaryNote_ReDschOrd") {
  624. enabled = true;
  625. }
  626. sysf_trace(" enabled >>>>>>>>>>>>>>>> " + enabled );
  627. if (flag == "ENABLED") {
  628. //*****************************************************************
  629. //퇴원처방 자동저장 기능 수행여부
  630. //*****************************************************************
  631. return enabled;
  632. }
  633. else if (flag == "CHK_PRE_SAVE") {
  634. if (enabled) {
  635. //*****************************************************************
  636. //퇴원처방내역이 갱신되었는지를 검사하여, 변경되지 않으면 저장이 되지 않는다.
  637. //*****************************************************************
  638. var oldCnts = g_hidden_dschordcnts;
  639. var newCnts = ds_data_recitem.lookup("degnitemlevlcd", "0001106", "reccnts");
  640. if (oldCnts == newCnts) {
  641. return false;
  642. } else {
  643. return true;
  644. }
  645. }
  646. else {
  647. return true;
  648. }
  649. }
  650. else {
  651. if (enabled) {
  652. if (flag == "SET_DSCHORD") {
  653. //*****************************************************************
  654. //퇴원처방을 설정한다.
  655. //*****************************************************************
  656. var oldCnts = ds_data_recitem.lookup("degnitemlevlcd", "0001106", "reccnts");
  657. g_hidden_dschordcnts = oldCnts;
  658. fGetAutoPatOutPrcpList("0001106001", flag);
  659. if (parent.fClickSave("Y") == false) {
  660. refreshDschOrd_MMR00800("CLOSE_AUTOSAVE_FORM");
  661. }
  662. }
  663. else if (flag == "SAVE_AFTER") {
  664. //*****************************************************************
  665. //저장후에 진료기록메인이 있다면 갱신한다.
  666. //*****************************************************************
  667. var mainWnd = frmf_getMainViewer();
  668. if (!utlf_isNull(mainWnd) && mainWnd.frmf_getScreenID() == "SMMMR00100") {
  669. mainWnd.reload();
  670. }
  671. refreshDschOrd_MMR00800("CLOSE_AUTOSAVE_FORM");
  672. }
  673. else if (flag == "CLOSE_AUTOSAVE_FORM") {
  674. //*****************************************************************
  675. //서식자동저장 창을 닫는다.
  676. //*****************************************************************
  677. var wnd = frmf_findPopup("SPMMR07300");
  678. if (!utlf_isNull(wnd)) {
  679. wnd.close();
  680. }
  681. }
  682. }
  683. }
  684. }
  685. /**
  686. * 2010.03.17 dhkim 추가
  687. */
  688. function initFormAtLast_MMR01100I(){
  689. fExtnInitFormRec();//확장서식 기록 초기 설정(initFormAtLast이후에 퇴원처방로딩되어야함)
  690. }
  691. /**
  692. * @group :
  693. * @ver : 2010.04.20
  694. * @by : dhkim
  695. * @---------------------------------------------------
  696. * @type : function
  697. * @access : private
  698. * @desc : Staff-Sign관련 권한체크 로직 onloadcomplete함수에서 분리
  699. * 기존의 TRMMR00802 호출하던 submission을 TRMMR01302로 통합함.
  700. * @param :
  701. * @return :
  702. * @---------------------------------------------------
  703. */
  704. function fCosignCheck(){
  705. //코사인 권한 관련 처리
  706. ds_send_extninfo.clearData();
  707. var nRow = ds_send_extninfo.addRow();
  708. ds_send_extninfo.setColumn(nRow, "infoflag", "staffauth");
  709. ds_send_extninfo.setColumn(nRow, "formrecseq", parent.fGetFormRec("formrecseq"));
  710. dsf_setDefaultVal(ds_send_extninfo, "dschdd:99991231");
  711. var oParam = {};
  712. oParam.id = "TRMMR01302";
  713. oParam.service = "medirecapp.RecIf";
  714. oParam.method = "reqGetFormRecExtnInfo";
  715. oParam.inds = "req=ds_send_extninfo";
  716. oParam.outds = "ds_main_extninfo_resultinfo=resultinfo ds_main_extninfo_staffauthinfo=staffauthinfo ds_main_extninfo_oprinfo=oprinfo "
  717. + "ds_main_extninfo_oplistinfo=oplistinfo ds_main_extninfo_recitem=recitem ds_main_extninfo_drlistinfo=drlistinfo "
  718. + "ds_data_diagcdlist=diagcdlist ds_main_extninfo_selectoplist=selectoplist ds_main_extninfo_dscinoutinfo=dscinoutinfo "
  719. + "ds_main_extninfo_rectextinfo=rectextinfo ds_main_extninfo_anstdrlistinfo=anstdrlistinfo ds_main_extninfo_oproomlistinfo=oproomlistinfo "
  720. + "ds_main_extninfo_recseqinfo=recseqinfo ds_main_extninfo_etcinfo=etcinfo";
  721. oParam.async = false;
  722. oParam.callback = "cf_TRMMR01302";
  723. tranf_submit(oParam);
  724. if(arErrorCode.pop("TRMMR01302") > -1)
  725. {
  726. var nRow = ds_main_extninfo_staffauthinfo.rowposition;
  727. var authyn = ds_main_extninfo_staffauthinfo.getColumn(nRow, "authyn");
  728. if(authyn == "Y")
  729. {
  730. //인증저장버튼과 코사인버튼처리
  731. parent.grup_btn.btn_cosign.position.x = parent.grup_btn.btn_signsave.position.x;
  732. parent.grup_btn.btn_signsave.visible = false;
  733. parent.grup_btn.btn_cosign.visible = true;
  734. // parent.grup_btn.btn_cosign.enable = true;
  735. //임시저장버튼과 기록반려버튼처리
  736. parent.grup_btn.btn_resend.position.x = parent.grup_btn.btn_tmpsave.position.x;
  737. parent.grup_btn.btn_tmpsave.visible = false;
  738. parent.grup_btn.btn_resend.visible = true;
  739. //parent.grup_btn.btn_resend.enable = true;
  740. //기타버튼 disable처리
  741. parent.grup_btn.btn_init.enable = false;
  742. parent.grup_btn.btn_preview.enable = false;
  743. parent.grup_btn.btn_signsaveasnew.enable = false;
  744. parent.grup_btn.btn_del.enable = false;
  745. if (parent.fGetFormRec("cosign") == "Y")
  746. {
  747. parent.grup_btn.btn_cosign.enable = false;
  748. //2010-03-31 오전 9:49:07 강지훈 추가 : 최종진단명 요약지 버튼설정, Staffsign이 완료된이후에만 사용
  749. var childrenObj = grup_base.components;
  750. for(i=0; i< childrenObj.length; i++)
  751. {
  752. childObj = childrenObj[i];
  753. if(childObj.name == "btn_lastdiag_0001013001"){
  754. childObj.enable = true;
  755. }
  756. else{
  757. childObj.enable = false;
  758. childObj.orgEnable = "Y";
  759. }
  760. }
  761. }
  762. else
  763. {
  764. parent.grup_btn.btn_cosign.enable = true;
  765. grup_base.enable = true;
  766. }
  767. }
  768. else
  769. {
  770. //인증저장버튼과 코사인버튼처리
  771. parent.grup_btn.btn_signsave.visible = true;
  772. parent.grup_btn.btn_cosign.visible = false;
  773. //임시저장버튼과 기록반려버튼처리
  774. parent.grup_btn.btn_tmpsave.visible = true;
  775. parent.grup_btn.btn_resend.visible = false;
  776. //기타버튼 enable처리
  777. parent.grup_btn.btn_init.enable = true;
  778. parent.grup_btn.btn_preview.enable = true;
  779. parent.grup_btn.btn_signsaveasnew.enable = true;
  780. parent.grup_btn.btn_del.enable = true;
  781. }
  782. }
  783. }
  784. function cf_TRMMR01302(sSvcId, nErrorCode, sErrorMsg) {
  785. arErrorCode.push(sSvcId, nErrorCode);
  786. if(nErrorCode < 0) return;
  787. dsf_setDefaultVal(ds_main_extninfo_recitem, "recitemno:'',degnitemno:'',supdegnitemno:''");
  788. dsf_setTypeFormat(ds_main_extninfo_recitem, "recitemno:INT^degnitemno:INT^supdegnitemno:INT");
  789. }
  790. /****************************************************************************************
  791. * Function : fChngDoct
  792. * Description : 치료결과, 퇴원형태에 따른 reccnts셋팅
  793. ****************************************************************************************/
  794. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  795. {
  796. var sDrnm, sDrcd;
  797. var sDegnitemlevlcd = obj.degnitemlevlcd;
  798. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  799. if(nFindRow == -1)
  800. {
  801. nFindRow = ds_data_recitem.addRow();
  802. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  803. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  804. }
  805. sDrnm = e.posttext;
  806. sDrcd = e.postvalue;
  807. if( utlf_isNull(e.posttext) ){
  808. sDrnm = "";
  809. sDrcd = "";
  810. obj.value = "";
  811. }
  812. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  813. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  814. }]]></Script>