MMR00304.js 14 KB

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