MMR00304.xjs 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * MMR00304.js
  4. * SMMMR00304_외래경과JCI.xrw
  5. * 통증관련 처리(2주기 인증평가)
  6. * 이윤주 수정
  7. */
  8. /**
  9. * @desc : [item코드목록]
  10. * "0000969001"//통증
  11. * "0008224001"//S&O
  12. * "0001129001"//A
  13. * "0000080001"//P
  14. * "0022826001"//Careplan
  15. * [버튼목록]
  16. * "btn_imge_0008224001" //S&O 이미지버튼
  17. * "btn_fmy_0008224001" //S&O 가계도버튼
  18. * "btn_etcrec_0008224001" //S&O 추가기록버튼
  19. * "btn_diag_0001129001" //A 진단버튼
  20. * "btn_imge_0001129001" //A 이미지버튼
  21. * "btn_etcrec_0001129001" //A 추가기록버튼
  22. * "btn_prcp_0000080001" //P 처방버튼
  23. * "btn_imge_0000080001" //P 이미지버튼
  24. * "btn_etcrec_0000080001" //P 추가기록버튼
  25. */
  26. var gItemCds = new Array(
  27. "0022826001"//Careplan
  28. , "0000969001"//통증
  29. , "0008224001"//S&O
  30. , "0001129001"//A
  31. , "0000080001"//Careplan
  32. );
  33. var gItemCdsTextArea = new Array(
  34. "0000969001"//통증
  35. , "0008224001"//S&O
  36. , "0001129001"//A
  37. , "0000080001"//Careplan
  38. , "0022826001"//Careplan
  39. );
  40. /**
  41. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  42. * @id :
  43. * @authur : 안치원
  44. * @history : 2009.09.09 신규 안치원 ACW_090909A
  45. */
  46. var gExtnBtnIds = new Array(
  47. "btn_imge_0008224001" //S&O 이미지버튼
  48. , "btn_fmy_0008224001" //S&O 가계도버튼
  49. , "btn_etcrec_0008224001" //S&O 추가기록버튼
  50. , "btn_diag_0001129001" //A 진단버튼
  51. , "btn_imge_0001129001" //A 이미지버튼
  52. , "btn_etcrec_0001129001" //A 추가기록버튼
  53. , "btn_prcp_0000080001" //P 처방버튼
  54. , "btn_imge_0000080001" //P 이미지버튼
  55. , "btn_etcrec_0000080001" //P 추가기록버튼
  56. );
  57. var gLoadFormCnts = 0;
  58. /*******************************************************************
  59. * Function : fFormReady
  60. * Description : 화면 로드시 초기화 작업을 수행
  61. *******************************************************************/
  62. function fFormReady()
  63. {
  64. this.ComnFormObj = this.grup_base;
  65. dsf_createDsRow("ds_temp_mainrecitem",
  66. [{col:"formxrw", val:""}]);
  67. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  68. ds_temp_mainrecitem.assign(ds_data_recitem);
  69. //섹션사이즈초기화
  70. lf_setSectionSize(gItemCds, "grup_base.tar_0000969001", "grup_base.tar_0000080001");
  71. //기본 첫번째 부분서식을 로딩해서 보여준다.
  72. //dispOnLoadComplete(COMN_FORM);//COMN_FORM : 1
  73. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  74. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로딩
  75. //기존 Careplan hidden
  76. CarePlanInvisible();
  77. lf_setRecData(gItemCds);
  78. }
  79. /**
  80. * @desc : 기록데이터 조회
  81. * @id :
  82. * @event : xforms-ready
  83. * @return : void
  84. * @authur : 박종훈
  85. */
  86. function fLoadData()
  87. {
  88. lf_setRecData(gItemCds);
  89. // InitPgmFormData();
  90. // InitUnitFormData(gItemCds);
  91. }
  92. /**
  93. * @desc : 부분서식 불러오기
  94. * @id :
  95. * @event : onloadcomplete
  96. * @return : void
  97. * @authur : 박종훈
  98. */
  99. function fLoadUnitForm()
  100. {
  101. initSection(gItemCds);
  102. }
  103. /**
  104. * @desc : 부분서식이 로딩 완료 되었을때 발생하는 이벤트
  105. * @id :
  106. * @event : xforms-ready
  107. * @return : void
  108. * @authur : 박종훈
  109. */
  110. function fOnLoadComplete()
  111. {
  112. var curLoadFormCd = this.frmf_getParameter("loadformcd");
  113. var objExt = new ExtCommon();
  114. var arrUnitformmast = objExt.findRows(ds_data_unitformmast, "formcd", curLoadFormCd);
  115. var fstLevlItemCd = "";
  116. for (var i=0; i<arrUnitformmast.length; i++) {
  117. var unitformload = ds_data_unitformmast.getColumn(arrUnitformmast[i], "loaded");
  118. if (unitformload != "true") {
  119. fstLevlItemCd = ds_data_unitformmast.getColumn(arrUnitformmast[i], "orgsupdegnitemcd");
  120. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  121. if(!utlf_isNull(ivwObj))
  122. {
  123. var idx = ds_data_unitformmast.findRow("orgsupdegnitemcd", fstLevlItemCd );
  124. ds_data_unitformmast.setColumn(idx, "loaded", "true");
  125. // setFstLevlItemCdOnUnitForm(ivwObj, unitformmastDs.getColumn(i, "orgsupdegnitemno"));//부분서식의 아이템에 부분서식 상위코드를 세팅
  126. break;
  127. }
  128. }
  129. }
  130. if (fstLevlItemCd == "0022826001") {//care plan
  131. fSetSizeFormCC(fstLevlItemCd);
  132. }
  133. gLoadFormCnts++;
  134. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  135. if(gItemCds.length == gLoadFormCnts)
  136. {
  137. dispOnLoadComplete(UNIT_FORM);
  138. //서식 로딩 후 포커스 처리
  139. if (parent.fGetFormRec("status") == "C")
  140. {
  141. SetDefFocusMTX(gItemCds);
  142. }
  143. }
  144. }
  145. /**
  146. * @group :
  147. * @ver : 2008.11.28
  148. * @by : jonghun
  149. * @---------------------------------------------------
  150. * @type : function
  151. * @access : private
  152. * @desc : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  153. * @param :
  154. * @return :
  155. * @---------------------------------------------------
  156. */
  157. function fGetDefData()
  158. {
  159. dispOnLoadComplete(UNIT_FORM);
  160. if (parent.GetFormRec("status") == "C")
  161. {
  162. SetDefFocusMTX(gItemCds);
  163. }
  164. }
  165. /**
  166. * @desc : 서식 주호소 화면 로딩 후 사이즈 조절
  167. * care plan 화면 로딩 후 사이즈 조절
  168. * 퇴원계획화면 로딩 후 사이즈 조절
  169. * @id :
  170. * @event : xforms-ready
  171. * @return : void
  172. * @authur : dhkim
  173. */
  174. function fSetSizeFormCC(gItemCd_MMR00301)
  175. {
  176. //Care Plan 화면 로딩
  177. if(gItemCd_MMR00301 == "0022826001")//care plan 상용구 hidden
  178. grup_base.ivw_0022826001.fInitPage(true, parseInt(grup_base.ivw_0022826001.position.height), parseInt(grup_base.ivw_0022826001.position.width));
  179. }
  180. /**
  181. * @group :
  182. * @ver : 2009.12.04
  183. * @by : dhkim
  184. * @---------------------------------------------------
  185. * @type : function
  186. * @access : private
  187. * @desc : 부분서식 로딩
  188. * (0022826001) Care Plan
  189. * @param : gItemCds
  190. * @return :
  191. * @---------------------------------------------------
  192. */
  193. function loadUnitForm_MMR00301(itemCds){
  194. var pageInfo = new PAGEINFO();
  195. copyNodeset("/root/main", "/root/main", "replace", model, parent.model);
  196. model.removeNodeset("/root/main/recinfo");
  197. makeRefByDegnitemno();
  198. for (var i = 0; i < itemCds.length; i++)
  199. {
  200. var formdegnseq = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formdegnseq");
  201. var unitformcd = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formcd");
  202. var ivwObj = document.controls("ivw_" + itemCds[i]);
  203. var tarObj = document.controls("tar_" + itemCds[i]);
  204. if(itemCds[i] == "0022826001") //care plan
  205. {
  206. ivwObj.visible = true;
  207. tarObj.visible = false;
  208. var unitformprogflag = model.getValue(pageInfo.forminfoRef + "/unitformmast[orgsupdegnitemcd='"+itemCds[i]+"']/formprogflag");
  209. ivwObj.attribute("supdegnitemcd") = itemCds[i];
  210. ivwObj.attribute("unitformcd") = unitformcd;
  211. model.addLog(unitformcd + " Loading 시작 : " + getCurrentTime());
  212. loadUnitForm(ivwObj, itemCds[i]);
  213. model.addLog(unitformcd + " Loading 끝 : " + getCurrentTime());
  214. }
  215. }
  216. }
  217. /**
  218. * @desc : care plan ivw 확대
  219. * @
  220. * @param :
  221. * @return :
  222. * @authur : dhkim
  223. */
  224. function expandSection_MMR00301(obj){
  225. var ctrlID = obj.name;
  226. var itemcd = ctrlID.replace("lbl_", "");
  227. var bFold = itemcd == gMaxSectionID ? true : false;
  228. var ctrl = null;
  229. var unitformcd = "";
  230. var itemCds = gItemCds;
  231. for (var i = 0; i < itemCds.length; i++)
  232. {
  233. var secCtrl = ComnFormObj.components["lbl_" + itemCds[i]];
  234. var nFindRow = ds_data_unitformmast.findRow("orgsupdegnitemcd", itemCds[i]);
  235. var formdegnseq = ds_data_unitformmast.getColumn(nFindRow, "formdegnseq");
  236. unitformcd = ds_data_unitformmast.getColumn(nFindRow, "formcd");
  237. if(utlf_isNull(formdegnseq))
  238. ctrl = ComnFormObj.components["tar_" + itemCds[i]];
  239. else
  240. ctrl = ComnFormObj.components["ivw_" + itemCds[i]];
  241. //2010.01.14 dhkim ivw 축소/확장
  242. if(itemcd == itemCds[i]){
  243. if(bFold){
  244. ctrl.position.height = gMaxSectionHei;
  245. if (unitformcd == "0900006875")//care plan 상용구 hidden
  246. {
  247. ctrl.fInitPage(true, parseInt(gMaxSectionHei), parseInt(ctrl.position.width));
  248. }else{
  249. ctrl.fInitPage(false, parseInt(gMaxSectionHei), parseInt(ctrl.position.width));
  250. }
  251. }else{
  252. ctrl.position.height = ctrl.orgheight;
  253. if (unitformcd == "0900006875")//care plan 상용구 hidden
  254. {
  255. ctrl.fInitPage(true, parseInt(secCtrl.orgheight), parseInt(ctrl.position.width));
  256. }else{
  257. ctrl.fInitPage(false, parseInt(secCtrl.orgheight), parseInt(ctrl.position.width));
  258. }
  259. }
  260. }
  261. }
  262. }
  263. /**
  264. * @desc : 서식 데이터 Clear
  265. * @id :
  266. * @event : xforms-ready
  267. * @return : void
  268. * @authur : 박종훈
  269. */
  270. function fClearComnFormData()
  271. {
  272. if (gMaxSectionID != "")
  273. {
  274. var MaxObj = document.controls("lbl_" + gMaxSectionID);
  275. MaxObj.dispatch("onclick");
  276. }
  277. ClearComnFormData(gItemCds);
  278. clearData();
  279. //포커스 처리
  280. SetDefFocusMTX(gItemCds);
  281. }
  282. /**
  283. * @desc : 기록 인스턴스 연결
  284. * @id :
  285. * @event : xforms-ready
  286. * @return : void
  287. * @authur : 박종훈
  288. */
  289. function fSetRecItemValue(reciteminfo)
  290. {
  291. return SetCommMediFormValue(gItemCds, reciteminfo);
  292. }
  293. /*******************************************************************
  294. * Function : getSubmitID_MMR01300I
  295. * Description : MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  296. *******************************************************************/
  297. function getSubmitID_MMR01300I() {
  298. parent.fSetFormRec("addexecflag", "careplan");
  299. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  300. parent.fSetFormRec("xsltflag", "JCI2");
  301. return TX_SUBMIT_EXTN_FORM;
  302. }
  303. /*******************************************************************
  304. * Function : initFormAtLast_MMR01100I
  305. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  306. *******************************************************************/
  307. function initFormAtLast_MMR01100I() {
  308. //2010.01.15 dhkim - 섹션종류가 부분서식인 섹션에 붙어있는 버튼 hidden 처리
  309. //섹션별 버튼초기화
  310. InitBtnImge(gItemCds);
  311. InitBtnFmy(gItemCds);
  312. // InitBtnComn(gItemCds);
  313. InitBtnDiag("0001129001", "Y");
  314. InitBtnPrcp("0000080001", "Y");
  315. InitBtnEtcRec(gItemCds);
  316. //임시저장 기록을 불러올때 시분을 현재시간으로 세팅(20160411 이윤주)
  317. if ( parent.fGetFormRec("espiyn") == "N" ) {
  318. parent.fSetFormRec("formrechm" , utlf_getCurrentTime().substr(0,4));
  319. }
  320. // grup_base.ivw_0022826001.fAddrow();
  321. //2010.01.21, hkjoo
  322. // initCmbExtnList(gItemCds);
  323. }
  324. /*******************************************************************
  325. * Function : fChkPreSave
  326. * Description : 저장전 필수입력내역을 체크한다.
  327. * History : - (care plan)
  328. * - (통증)추가 2010.01.18
  329. *******************************************************************/
  330. function fChkPreSave(){
  331. var itemval_vas1 = new ITEMVAL();
  332. var itemval_vas2 = new ITEMVAL();
  333. var itemval_vas3 = new ITEMVAL();
  334. var itemval_ini = new ITEMVAL();
  335. itemval_vas1 = grup_base.ivw_0000969001.getFormItemValue("0012045.0013248"); //0000969.
  336. itemval_vas2 = grup_base.ivw_0000969001.getFormItemValue("0012045.0013249");
  337. itemval_vas3 = grup_base.ivw_0000969001.getFormItemValue("0012045.0013250");
  338. if(!utlf_isNull(itemval_vas1.rectermcd) && !utlf_isNull(itemval_vas2.rectermcd) ) {
  339. sysf_messageBox("NRS,FPRS사정도구를 동시에 입력할 수 없습니다.다시 작성해 주시기 바랍니다", "E");
  340. itemval_ini.rectermcd = "INI";
  341. grup_base.ivw_0000969001.setFormItemValue("0012045.0013248", itemval_ini);
  342. itemval_ini.rectermcd = "INI";
  343. grup_base.ivw_0000969001.setFormItemValue("0012045.0013249", itemval_ini);
  344. itemval_ini.rectermcd = "INI";
  345. grup_base.ivw_0000969001.setFormItemValue("0012045.0013250", itemval_ini);
  346. return false;
  347. }
  348. if( !utlf_isNull(itemval_vas1.rectermcd) && !utlf_isNull(itemval_vas3.rectermcd) ) {
  349. sysf_messageBox("NRS,FLACC사정도구를 동시에 입력할 수 없습니다.다시 작성해 주시기 바랍니다", "E");
  350. itemval_ini.rectermcd = "INI";
  351. grup_base.ivw_0000969001.setFormItemValue("0012045.0013248", itemval_ini);
  352. itemval_ini.rectermcd = "INI";
  353. grup_base.ivw_0000969001.setFormItemValue("0012045.0013249", itemval_ini);
  354. itemval_ini.rectermcd = "INI";
  355. grup_base.ivw_0000969001.setFormItemValue("0012045.0013250", itemval_ini);
  356. return false;
  357. }
  358. if( !utlf_isNull(itemval_vas2.rectermcd) && !utlf_isNull(itemval_vas3.rectermcd) ) {
  359. sysf_messageBox("FPRS,FLACC사정도구를 동시에 입력할 수 없습니다.다시 작성해 주시기 바랍니다", "E");
  360. itemval_ini.rectermcd = "INI";
  361. grup_base.ivw_0000969001.setFormItemValue("0012045.0013248", itemval_ini);
  362. itemval_ini.rectermcd = "INI";
  363. grup_base.ivw_0000969001.setFormItemValue("0012045.0013249", itemval_ini);
  364. itemval_ini.rectermcd = "INI";
  365. grup_base.ivw_0000969001.setFormItemValue("0012045.0013250", itemval_ini);
  366. return false;
  367. }
  368. //care plan
  369. var nRow = ds_data_formdegn.findRow("degnitemcd", "0022826001");
  370. var itemNm = ds_data_formdegn.getColumn(nRow, "itemnm");
  371. var rtnVal = grup_base.ivw_0022826001.fChkGrdPreSave(itemNm);
  372. if(rtnVal == false){
  373. return rtnVal;
  374. }
  375. }
  376. /*******************************************************************
  377. * Function : fIsNullValue_MMR00301
  378. * Description : 통증기록 validation 체크 추가
  379. *******************************************************************/
  380. function fIsNullValue_MMR00301(degnitemlevlcd, field) {
  381. var itemval_vas = grup_base.ivw_0000969001.getFormItemValue(degnitemlevlcd);
  382. var val = "";
  383. if (field == "cd") {
  384. val = itemval_vas.rectermcd;
  385. } else if (field == "cnts") {
  386. val = itemval_vas.reccnts;
  387. }
  388. return isNull(val);
  389. }
  390. /*******************************************************************
  391. * Function : fOpenTestTemplate
  392. * Description : 외래경과 검사결과 화면 호출
  393. *******************************************************************/
  394. function fOpenTestTemplate(degnitemlevlcd, degnitemcd){
  395. frmf_setParameter("SPMMR09001_degnitemlevlcd",degnitemlevlcd);
  396. frmf_setParameter("SPMMR09001_degnitemcd",degnitemcd);
  397. //modal("SPMMR09001");
  398. frmf_modal("SPMMR09001", "SPMMR09001", null, null, null, null, null, null, null, null, null, null, "M");
  399. }
  400. /*******************************************************************
  401. * Function : CarePlanInvisible
  402. * Description : 기존 CarePlan invisible 20140116 이윤주
  403. *******************************************************************/
  404. function CarePlanInvisible() {
  405. grup_base.ivw_0022826001.visible = false;
  406. }]]></Script>