MMR00206.xjs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * MMR00206.js
  4. * SMMMR00206_외래초진JCI.xrw
  5. * 20141222 이윤주 추가
  6. */
  7. /**1400014991
  8. * @desc : [item코드목록]
  9. * "0000931001"//주호소
  10. * "0001173001"//현병력
  11. * "0000098001"//과거력
  12. * "0000969001"//통증
  13. * "0000079001"//계통문진
  14. * "0000570001"//신체검진
  15. * "0001019001"//추정진단
  16. * "0000080001"//계획
  17. * "0022826001"//careplan
  18. * [버튼목록]
  19. * "btn_imge_0001173001"
  20. * "btn_etcrec_0001173001"
  21. * "btn_imge_0000098001"
  22. * "btn_fmy_0000098001"
  23. * "btn_etcrec_0000098001"
  24. * "btn_imge_0000079001"
  25. * "btn_etcrec_0000079001"
  26. * "btn_imge_0000570001"
  27. * "btn_etcrec_0000570001"
  28. * "btn_etcrec_0001019001"
  29. * "btn_dsch_0013328001"
  30. * "btn_edu_0006747001"
  31. * "btn_prcp_0022826001"
  32. */
  33. var gItemCds = new Array(
  34. "0000931001"//주호소
  35. , "0001173001"//현병력
  36. , "0000098001"//과거력
  37. , "0000969001"//통증
  38. , "0000079001"//계통문진
  39. , "0000570001"//신체검진
  40. , "0001019001"//추정진단
  41. , "0022826001"//careplan
  42. );
  43. var gItemCdsTextArea = new Array(
  44. "0000931001"//주호소
  45. , "0001173001"//현병력
  46. , "0000098001"//과거력
  47. , "0000969001"//통증
  48. , "0000079001"//계통문진
  49. , "0000570001"//신체검진
  50. , "0001019001"//추정진단
  51. , "0022826001"//careplan
  52. );
  53. /**
  54. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  55. * @id :
  56. * @authur : 안치원
  57. * @history : 2009.09.09 신규 안치원 ACW_090909A
  58. */
  59. var gExtnBtnIds = new Array(
  60. "btn_imge_0001173001" //현병력 이미지버튼
  61. , "btn_etcrec_0001173001" //현병력 추가기록버튼
  62. , "btn_imge_0000098001" //과거력 이미지버튼
  63. , "btn_fmy_0000098001" //과거력 가계도버튼
  64. , "btn_etcrec_0000098001" //과거력 추가기록버튼
  65. , "btn_imge_0000079001" //계통문진 이미지버튼
  66. , "btn_etcrec_0000079001" //계통문진 추가기록버튼
  67. , "btn_imge_0000570001" //신체검진 이미지버튼
  68. , "btn_etcrec_0000570001" //신체검진 추가기록버튼
  69. , "btn_diag_0001019001" //추정진단 진단버튼
  70. , "btn_etcrec_0001019001" //추정진단 추가기록버튼
  71. , "btn_prcp_0022826001" //CarePlan 처방버튼
  72. );
  73. var gLoadFormCnts = 0;
  74. /*******************************************************************
  75. * Function : fFormReady
  76. * Description : 화면 로드시 초기화 작업을 수행
  77. *******************************************************************/
  78. function fFormReady()
  79. {
  80. this.ComnFormObj = this.grup_base;
  81. dsf_createDsRow("ds_temp_mainrecitem",
  82. [{col:"formxrw", val:""}]);
  83. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  84. ds_temp_mainrecitem.assign(ds_data_recitem);
  85. //섹션사이즈초기화
  86. lf_setSectionSize(gItemCds, "grup_base.tar_0000931001", "grup_base.tar_0022826001");
  87. //기본 첫번째 부분서식을 로딩해서 보여준다.
  88. // dispOnLoadComplete(COMN_FORM);//COMN_FORM : 1
  89. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  90. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로딩
  91. lf_setRecData(gItemCds);
  92. }
  93. /**
  94. * @desc : 기록데이터 조회
  95. * @id :
  96. * @event : xforms-ready
  97. * @return : void
  98. * @authur : 박종훈
  99. */
  100. function fLoadData()
  101. {
  102. lf_setRecData(gItemCds);
  103. // InitPgmFormData();
  104. // InitUnitFormData(gItemCds);
  105. }
  106. /**
  107. * @group :
  108. * @ver : 2008.06.13
  109. * @by : snoweye
  110. * @---------------------------------------------------
  111. * @type : function
  112. * @access : private
  113. * @desc : 부분서식 로딩
  114. * @param :
  115. * @return :
  116. * @---------------------------------------------------
  117. */
  118. function fLoadUnitForm()
  119. {
  120. initSection(gItemCds);
  121. }
  122. /**
  123. * @group :
  124. * @ver : 2009.12.03
  125. * @by : dhkim
  126. * @---------------------------------------------------
  127. * @type : function
  128. * @access : private
  129. * @desc : 부분서식 로딩후 후처리
  130. * @param :
  131. * @return :
  132. * @---------------------------------------------------
  133. */
  134. function fOnLoadComplete()
  135. {
  136. var curLoadFormCd = this.frmf_getParameter("loadformcd");
  137. var arrUnitformmast = objExt.findRows(ds_data_unitformmast, "formcd", curLoadFormCd);
  138. var fstLevlItemCd = "";
  139. for(var i = 0; i < arrUnitformmast.length; i++){
  140. var unitformload = ds_data_unitformmast.getColumn(arrUnitformmast[i], "loaded");
  141. if(unitformload != "true"){
  142. fstLevlItemCd = ds_data_unitformmast.getColumn(arrUnitformmast[i], "orgsupdegnitemcd");
  143. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  144. if(!utlf_isNull(ivwObj))
  145. {
  146. var idx = ds_data_unitformmast.findRow("orgsupdegnitemcd", fstLevlItemCd );
  147. ds_data_unitformmast.setColumn(idx, "loaded", "true");
  148. //setFstLevlItemCdOnUnitForm(ivwObj, ds_data_unitformmast.getColumn(arrUnitformmast[i], "orgsupdegnitemno"));//부분서식의 아이템에 부분서식 상위코드를 세팅
  149. break;
  150. }
  151. }
  152. }
  153. //주호소 부분서식 로딩후 처리
  154. if(fstLevlItemCd == '0000931001'
  155. || fstLevlItemCd == "0000931001" //주호소
  156. || fstLevlItemCd == "0022826001" //care plan
  157. ){
  158. fSetSizeFormCC(fstLevlItemCd);
  159. }
  160. gLoadFormCnts++;
  161. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  162. if(gItemCds.length == gLoadFormCnts)
  163. {
  164. dispOnLoadComplete(UNIT_FORM);
  165. //서식 로딩 후 포커스 처리 dhkim
  166. if (parent.fGetFormRec("status") == "C")
  167. {
  168. SetDefFocusMTX(gItemCds);
  169. }
  170. }
  171. }
  172. /**
  173. * @group :
  174. * @ver : 2008.11.28
  175. * @by : jonghun
  176. * @---------------------------------------------------
  177. * @type : function
  178. * @access : private
  179. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  180. * @param :
  181. * @return :
  182. * @---------------------------------------------------
  183. */
  184. function fGetDefData()
  185. {
  186. dispOnLoadComplete(UNIT_FORM);
  187. if (parent.fGetFormRec("status") == "C")
  188. {
  189. SetDefFocusMTX(gItemCds);//공통기록 디폴트 포커스처리(MTX)
  190. }
  191. }
  192. /**
  193. * @desc : 서식 주호소 화면 로딩 후 사이즈 조절
  194. * care plan 화면 로딩 후 사이즈 조절
  195. * @id :
  196. * @event : xforms-ready
  197. * @return : void
  198. * @authur : dhkim
  199. */
  200. function fSetSizeFormCC(gItemCd_MMR00201)
  201. {
  202. //서식 주호소 화면 로딩
  203. if(gItemCd_MMR00201 == "0000931001")
  204. grup_base.ivw_0000931001.fInitPage(false, parseInt(grup_base.ivw_0000931001.position.height), parseInt(grup_base.ivw_0000931001.position.width));
  205. //통증 화면 로딩
  206. else if(gItemCd_MMR00201 == "0000969001")
  207. grup_base.ivw_0000969001.fInitPage(true, parseInt(grup_base.ivw_0000969001.position.height), parseInt(grup_base.ivw_0000969001.position.width));
  208. //Care Plan 화면 로딩
  209. else if(gItemCd_MMR00201 == "0022826001")//상용구팝업 hidden
  210. grup_base.ivw_0022826001.fInitPage(true, parseInt(grup_base.ivw_0022826001.position.height), parseInt(grup_base.ivw_0022826001.position.width));
  211. }
  212. /**
  213. * @group :
  214. * @ver : 2009.12.04
  215. * @by : dhkim
  216. * @---------------------------------------------------
  217. * @type : function
  218. * @access : private
  219. * @desc : 부분서식 로딩
  220. * (0022826001) Care Plan,
  221. * @param : gItemCds
  222. * @return :
  223. * @---------------------------------------------------
  224. */
  225. function loadUnitForm_MMR00201(itemCds){
  226. var pageInfo = new PAGEINFO();
  227. copyNodeset("/root/main", "/root/main", "replace", model, parent.model);
  228. model.removeNodeset("/root/main/recinfo");
  229. makeRefByDegnitemno();
  230. for (var i = 0; i < itemCds.length; i++)
  231. {
  232. var formdegnseq = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formdegnseq");
  233. var unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formcd");
  234. var ivwObj = document.controls("ivw_" + itemCds[i]);
  235. var tarObj = document.controls("tar_" + itemCds[i]);
  236. if( itemCds[i] == "0022826001" //care plan
  237. ){
  238. ivwObj.visible = true;
  239. tarObj.visible = false;
  240. var unitformprogflag = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formprogflag");
  241. ivwObj.attribute("supdegnitemcd") = itemCds[i];
  242. ivwObj.attribute("unitformcd") = unitformcd;
  243. model.addLog(unitformcd + " Loading 시작 : " + getCurrentTime());
  244. loadUnitForm(ivwObj, itemCds[i]);
  245. model.addLog(unitformcd + " Loading 끝 : " + getCurrentTime());
  246. }
  247. }
  248. }
  249. /**
  250. * @desc : care plan ivw 확대
  251. * @
  252. * @param :
  253. * @return :
  254. * @authur : dhkim
  255. */
  256. function expandSection_MMR00201(obj, e){
  257. var ctrlID = e.name;
  258. var itemcd = ctrlID.replace("lbl_", "");
  259. var bFold = itemcd == gMaxSectionID ? true : false;
  260. var ctrl = null;
  261. var unitformcd = "";
  262. var itemCds = gItemCds;
  263. for (var i = 0; i < itemCds.length; i++)
  264. {
  265. var secCtrl = ComnFormObj.components["lbl_" + itemCds[i]];
  266. var nFindRow = ds_data_unitformmast.findRow("orgsupdegnitemcd", itemCds[i]);
  267. var formdegnseq = ds_data_unitformmast.getColumn(nFindRow, "formdegnseq");
  268. unitformcd = ds_data_unitformmast.getColumn(nFindRow, "formcd");
  269. if(utlf_isNull(formdegnseq))
  270. ctrl = ComnFormObj.components["tar_" + itemCds[i]];
  271. else
  272. ctrl = ComnFormObj.components["ivw_" + itemCds[i]];
  273. //20100106 dhkim ivw 축소/확장
  274. if(itemcd == itemCds[i]){
  275. if(bFold){
  276. ctrl.position.height = gMaxSectionHei;
  277. if (unitformcd == "0900006875")//care plan 상용구 hidden
  278. {
  279. ctrl.fInitPage(true, parseInt(gMaxSectionHei), parseInt(ctrl.position.width));
  280. }else{
  281. ctrl.fInitPage(false, parseInt(gMaxSectionHei), parseInt(ctrl.position.width));
  282. }
  283. }else{
  284. ctrl.position.height = ctrl.orgheight;
  285. if (unitformcd == "0900006875")//care plan 상용구 hidden
  286. {
  287. ctrl.fInitPage(true, parseInt(secCtrl.orgheight), parseInt(ctrl.position.width));
  288. }else{
  289. ctrl.fInitPage(false, parseInt(secCtrl.orgheight), parseInt(ctrl.position.width));
  290. }
  291. }
  292. }
  293. }
  294. }
  295. /**
  296. * @group :
  297. * @ver : 2009.10.09
  298. * @by :
  299. * @---------------------------------------------------
  300. * @type : function
  301. * @access : private
  302. * @desc :
  303. * @param :
  304. * @return :
  305. * @---------------------------------------------------
  306. */
  307. function setInterfaceData()
  308. {
  309. // alert("setInterfaceData");
  310. var ifItemCds = new Array(
  311. "0000931001"//주호소
  312. , "0001173001"//현병력
  313. , "0000098001"//과거력
  314. , "0000969001"//통증
  315. , "0000079001"//계통문진
  316. , "0000570001"//신체검진
  317. , "0001019001"//추정진단
  318. , "0022826001"//careplan
  319. );
  320. copyNodeset(gPageInfo.recItemRef2, "/root/main/recifinfo/recitem", "replace", model, parent.model);
  321. setSrchData(gPageInfo.recItemRef2 , window);
  322. InitUnitFormData(ifItemCds);
  323. setButtonToggleAllByRecYn(window, gExtnBtnIds);
  324. }
  325. /**
  326. * @desc : 서식 데이터 Clear
  327. * @id :
  328. * @event : xforms-ready
  329. * @return : void
  330. * @authur : 박종훈
  331. */
  332. function fClearComnFormData()
  333. {
  334. if (gMaxSectionID != "")
  335. {
  336. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  337. MaxObj.dispatch("onclick");
  338. }
  339. ClearComnFormData(gItemCds);
  340. clearData();
  341. //포커스 처리
  342. SetDefFocusMTX(gItemCds);
  343. // parent.window.javascript.fSetFormRec("extnflag", "careplan");
  344. }
  345. /**
  346. * @desc : 기록 인스턴스 연결
  347. * @id :
  348. * @event : xforms-ready
  349. * @return : void
  350. * @authur : 박종훈
  351. */
  352. function fSetRecItemValue(reciteminfo)
  353. {
  354. return SetCommMediFormValue(gItemCds, reciteminfo);
  355. }
  356. //0000969 제외
  357. /*******************************************************************
  358. * Function : fChkPreSave
  359. * Description : 저장전 필수입력내역을 체크한다.
  360. * History : 2010.01.06 dhkim - care plan 필수입력체크
  361. *******************************************************************/
  362. function fChkPreSave()
  363. {
  364. if (!utlf_isNull(grup_base.ivw_0000969001.url)) {
  365. if( typeof grup_base.ivw_0000969001.fChkPreSave == "function" ) {
  366. if (grup_base.ivw_0000969001.fChkPreSave("N") == false){
  367. return false;
  368. }
  369. }
  370. }
  371. }
  372. /**
  373. * @group :
  374. * @ver : 2008.09.02
  375. * @by : jonghun
  376. * @---------------------------------------------------
  377. * @type : function
  378. * @access : private
  379. * @desc : 추가기록창 팝업처리
  380. * @param :
  381. * @return :
  382. * @---------------------------------------------------
  383. */
  384. function fEtcRec()
  385. {
  386. //setParameter("etc_rec", "추가 기타기록 테스트입니다...");
  387. modal("SPMMR06100");
  388. var recrtn = getParameter("etcrec_rtn");
  389. if (recrtn != "")
  390. {
  391. model.setValue("/root/main/recinfo/recitem[degnitemlevlcd='0000098.0008458']/reccnts", recrtn);
  392. setParameter("etc_rec", recrtn);
  393. }
  394. //alert(recrtn);
  395. }
  396. /*******************************************************************
  397. * Function : getSubmitID_MMR01300I
  398. * Description : MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  399. *******************************************************************/
  400. function getSubmitID_MMR01300I() {
  401. parent.fSetFormRec("addexecflag", "careplan");
  402. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  403. parent.fSetFormRec("xsltflag", "JCI2");
  404. return TX_SUBMIT_EXTN_FORM;
  405. }
  406. /*******************************************************************
  407. * Function : initFormAtLast_MMR01100I
  408. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  409. *******************************************************************/
  410. function initFormAtLast_MMR01100I() {
  411. //섹션별 버튼초기화
  412. InitBtnImge(gItemCds);
  413. InitBtnFmy(gItemCds);
  414. InitBtnEtcRec(gItemCds);
  415. // InitBtnComn(gItemCds);
  416. //2010.01.18 dhkim - 섹션종류가 부분서식인 섹션에 붙어있는 버튼 hidden 처리(진단, 처방버튼)
  417. InitBtnDiag("0001019001", "Y");//0001019001: 추정진단
  418. InitBtnPrcp("0022826001", "Y");//2010.01.12 dhkim - 계획섹션에 처방가져오기 버튼 추가
  419. //2010.01.21
  420. // initCmbExtnList(gItemCds);
  421. }
  422. /**
  423. * 2010.01.18 dhkim 통증기록 validation 체크 추가
  424. */
  425. function fIsNullValue_MMR00201(degnitemlevlcd, field) {
  426. var itemval_vas = grup_base.ivw_0000969001.getFormItemValue(degnitemlevlcd);
  427. var val = "";
  428. if (field == "cd") {
  429. val = itemval_vas.rectermcd;
  430. } else if (field == "cnts") {
  431. val = itemval_vas.reccnts;
  432. }
  433. return isNull(val);
  434. }
  435. ]]></Script>