MMR00600.xjs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * MMR00600.js
  4. * SMMMR00600_수술기록.xrw
  5. * -> 수술기록 신규 로딩할때에 brief 기록이 있으면 디폴트로 brief기록을 조회해옴(asis는 수술간호정보를 로딩했음)
  6. */
  7. //부분서식의 부모아이템 배열
  8. var arrItemCds = new Array( "0000515001"//수술일자
  9. , "0007983001"//수술전진단명
  10. , "0000521001"//수술후진단명
  11. , "0000509001"//수술명
  12. , "0000248001"
  13. // , "0015528001"//마취종류(주)
  14. // , "0008458001"//마취종류(부)
  15. , "0000980001"
  16. // , "0001830001"//집도의1 0000980.0001830
  17. // , "0001831001"//집도의2
  18. // , "0001832001"//집도의3
  19. , "0000341001"
  20. // , "0001830001"//보조의1 0000341.0001830
  21. // , "0001831001"//보조의2
  22. // , "0001832001"//보조의3
  23. // , "0001833001"//보조의4
  24. , "0000512001"//수술소견
  25. , "0000507001"//수술과정
  26. , "0008331001"//조직표본검체
  27. , "0000323001"//배액
  28. , "0001115001"//특이사항
  29. );
  30. var gItemCds = new Array("0007983001", "0000521001", "0000509001", "0000512001", "0000507001");
  31. var gItemCdsTextArea = new Array("0000512001", "0000507001");
  32. var gItemCdsXRWArea = new Array("0007983001", "0000521001", "0000509001");
  33. //부분서식의 개수만큼 일단 '0'으로 채운다.
  34. var gPageIdx = new Array(0, 0);
  35. var iSurg = grup_base.ipt_surg.degnitemlevlcd;
  36. var iMcdnm = grup_base.ipt_mcdnm.degnitemlevlcd;
  37. var iScdnm = grup_base.ipt_scdnm.degnitemlevlcd;
  38. var cOdt1 = grup_base.cmb_odt1.degnitemlevlcd;
  39. var cSdt1 = grup_base.cmb_sdt1.degnitemlevlcd;
  40. var pageInfo = new PAGEINFO();
  41. var oprsrvno = ""; //수술예약번호
  42. var perfdeptcd = ""; //집도과
  43. var lodedYn = false;
  44. var gProcedures_itemcd = "";
  45. var gProcedures = "";
  46. var gFindings_itemcd = "";
  47. var gFindings = "";
  48. /**
  49. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  50. * @id :
  51. * @authur : 안치원
  52. * @history : 2009.09.09 신규 안치원 ACW_090909A
  53. */
  54. var gExtnBtnIds = new Array("btn_imge_0000512001", "btn_etcrec_0000512001",
  55. "btn_imge_0000507001", "btn_etcrec_0000507001");
  56. /****************************************************************************************
  57. * Function : fClearComnFormData
  58. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  59. * retrun type :
  60. ****************************************************************************************/
  61. function fClearComnFormData()
  62. {
  63. if (!utlf_isNull(gMaxSectionID))
  64. {
  65. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  66. }
  67. if( lodedYn == true )
  68. ClearComnFormData(gItemCds);
  69. fInitialize();
  70. if (parent.fGetFormRec("status") == "C")
  71. {
  72. var rtn = fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm); //수술예약번호로 진단명 조회
  73. fSrchOprPerfDrlist(oprsrvno, cOdt1); //환자정보로 수술명, 집도의 조회
  74. if(!rtn)
  75. {
  76. fBtnDisEnable(true);
  77. return "oprfalse";
  78. } else {
  79. }
  80. }
  81. //포커스 처리
  82. SetDefFocusIVW(gItemCdsTextArea);
  83. parent.fSetFormRec("extnflag", "opr");
  84. parent.fSetFormRec("oprsrvno", oprsrvno);
  85. }
  86. /****************************************************************************************
  87. * Function : fLoadData
  88. * Description : 기록데이터 조회
  89. * retrun type :
  90. ****************************************************************************************/
  91. function fLoadData()
  92. {
  93. fInitialize();
  94. lf_setRecData(arrItemCds);
  95. var sStatus = fGetFormRec("status");
  96. lf_setBasicInfo(sStatus);
  97. /*
  98. //Program 서식 데이터 조회반영
  99. InitPgmFormData();
  100. this.recRef2 = "/root/hidden/recinfo"
  101. //부분서식 데이터 조회 반영
  102. InitUnitFormData(gItemCds);
  103. */
  104. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  105. parent.fSetFormRec("extnflag", "opr");
  106. }
  107. /****************************************************************************************
  108. * Function : fInitialize
  109. * Description : 화면 초기화
  110. * retrun type :
  111. * History :
  112. ****************************************************************************************/
  113. function fInitialize()
  114. {
  115. var operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  116. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  117. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  118. }
  119. if(!utlf_isNull(operation)){
  120. oprsrvno = operation.split("▦")[0];
  121. perfdeptcd = operation.split("▦")[10];
  122. }
  123. if (parent.fGetFormRec("status") == "C")
  124. {
  125. parent.fSetFormRec("extnflag", "opr");
  126. parent.fSetFormRec("oprsrvno", oprsrvno);
  127. //수술예약번호 체크
  128. if(utlf_isNull(oprsrvno))
  129. {
  130. sysf_messageBox("수술예약이 되지 않은", "I005");
  131. grup_base.enable = false;
  132. fBtnDisEnable(true);
  133. return;
  134. } else {
  135. fBtnDisEnable(false);
  136. }
  137. //집도과 체크
  138. if (perfdeptcd != sysf_getUserInfo("dutplcecd"))
  139. {
  140. messageBox("작성 권한이", "I004");
  141. grup_base.enable = false;
  142. fBtnDisEnable(true);
  143. return;
  144. } else {
  145. fBtnDisEnable(false);
  146. }
  147. }
  148. var uInfo = sysf_getUserInfos();
  149. uInfo = uInfo.split("|");
  150. if (parent.fGetFormRec("status") == "C")
  151. {
  152. //초기조건 설정
  153. var opschedd = operation.split("▦")[7]; //수술예약일
  154. var opcnfmdd = operation.split("▦")[8]; //수술확정일
  155. var indxdd = utlf_getCurrentDate();
  156. if (!utlf_isNull(opcnfmdd))
  157. {
  158. indxdd = opcnfmdd;
  159. }
  160. else if (!utlf_isNull(opschedd))
  161. {
  162. indxdd = opschedd;
  163. }
  164. else
  165. {
  166. indxdd = utlf_getCurrentDate();
  167. }
  168. lf_mmbfGetUserComboList("ds_init_cmb_odt1", uInfo[8], "0330", "", "", indxdd);
  169. lf_mmbfGetUserComboList("ds_init_cmb_sdt1", uInfo[8], "0330", "", "", indxdd);
  170. }
  171. else
  172. {
  173. var recdept = parent.fGetFormRec("formrecdeptcd");
  174. var recdd = parent.fGetFormRec("formrecdd");
  175. lf_mmbfGetUserComboList("ds_init_cmb_odt1", recdept, "0330", "", "", recdd);
  176. lf_mmbfGetUserComboList("ds_init_cmb_sdt1", recdept, "0330", "", "", recdd);
  177. }
  178. gTermViewTopPos = 26;//29;
  179. gTermViewHei = 256;//152;
  180. gTermViewItems = gItemCdsXRWArea;
  181. grup_base.ipt_surg.enable = false;
  182. }
  183. /****************************************************************************************
  184. * Function : fChngDoct
  185. * Description : 의사 선택에 따른 reccnts셋팅
  186. ****************************************************************************************/
  187. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  188. {
  189. var sDrnm, sDrcd;
  190. var sDegnitemlevlcd = obj.degnitemlevlcd;
  191. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  192. if(nFindRow == -1)
  193. {
  194. nFindRow = ds_data_recitem.addRow();
  195. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  196. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  197. }
  198. sDrnm = e.posttext;
  199. sDrcd = e.postvalue;
  200. if( utlf_isNull(e.posttext) ){
  201. sDrnm = "";
  202. sDrcd = "";
  203. obj.value = "";
  204. }
  205. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  206. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  207. }
  208. /****************************************************************************************
  209. * Function : fRadioYN
  210. * Description : 라디오버튼 선택에 따른 reccnts셋팅
  211. ****************************************************************************************/
  212. function fRadioYN(obj:Radio, e:ItemChangeEventInfo)
  213. {
  214. var sDegnitemlevlcd = obj.degnitemlevlcd;
  215. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  216. if(nFindRow == -1)
  217. {
  218. nFindRow = ds_data_recitem.addRow();
  219. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  220. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  221. }
  222. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", e.postvalue), "valitemnm");
  223. if( utlf_isNull(sRectermnm) ) sRectermnm = e.posttext;
  224. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  225. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  226. }
  227. /****************************************************************************************
  228. * Function : fPatientHist
  229. * Description : 수술이력 팝업
  230. * retrun type :
  231. ****************************************************************************************/
  232. function fPatientHist()
  233. {
  234. frmf_modal("SMMMO02500", "SMMMO02500", null, null, null, null, null, null, null, null, null, null, "M");
  235. }
  236. /**
  237. * @desc : 기록 인스턴스 연결
  238. * @
  239. * @param :
  240. * @return :
  241. * @authur : 박종훈
  242. */
  243. function fSetRecItemValue(reciteminfo)
  244. {
  245. return SetCommMediFormValue(gItemCds, reciteminfo);
  246. }
  247. /****************************************************************************************
  248. * Function : fGetdiagFormOprsrvno
  249. * Description : 수술예약번호를 통한 진단명, 마취종류 조회
  250. * retrun type :
  251. ****************************************************************************************/
  252. function fGetdiagFormOprsrvno(oprsrvno, iMcdnm, iMcdnm, iScdnm, iScdnm)
  253. {
  254. if(!utlf_isNull(oprsrvno)){
  255. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"oprsrvno", type:"string", size:256, val:oprsrvno}]);
  256. var objSendDS:Dataset = new Dataset;
  257. objSendDS = this.objects[sSendDsNm];
  258. var sRtnDsNm = dsf_createDs("ds_data_anstlist", [{col:"anstmthdcd", type:"string", size:256}
  259. , {col:"mcdnm", type:"string", size:256}
  260. , {col:"anstmthdcdsub", type:"string", size:256}
  261. , {col:"scdnm", type:"string", size:256}]);
  262. var objRtnDS:Dataset = new Dataset;
  263. objRtnDS = this.objects[sRtnDsNm];
  264. var oParam = {};
  265. oParam.id = "TRMRF04001";
  266. oParam.service = "formmngtapp.FormIfMngt";
  267. oParam.method = "reqGetDiagByOprsrvno";
  268. oParam.inds = "req="+sSendDsNm;
  269. oParam.outds = "ds_data_diagcdlist=diagcdlist "+sRtnfDsNm+"=anstlist";
  270. oParam.async = false;
  271. oParam.progress = false;
  272. oParam.callback = "cf_TRMRF04001";
  273. tranf_submit(oParam);
  274. var anstmthdcd = objRtnDS.getColumn(0, "anstmthdcd");
  275. var mcdnm = objRtnDS.getColumn(0, "mcdnm");
  276. var anstmthdcdsub = objRtnDS.getColumn(0, "anstmthdcdsub");
  277. var scdnm = objRtnDS.getColumn(0, "scdnm");
  278. var pageInfo = new PAGEINFO();
  279. var iptMObj = document.controls("ipt_mcdnm");
  280. var iptSObj = document.controls("ipt_scdnm");
  281. if (!utlf_isNull(anstmthdcd) && !utlf_isNull(mcdnm))
  282. {
  283. //주마취
  284. grup_base.ipt_mcdnm.value = mcdnm;
  285. degnitemlevlcd = grup_base.ipt_mcdnm.degnitemlevlcd;
  286. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  287. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcd);
  288. ds_data_recitem.setColumn(nFindRow, "rectermnm", mcdnm);
  289. //iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  290. }
  291. else
  292. {
  293. //iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  294. }
  295. if (!utlf_isNull(anstmthdcdsub) && !utlf_isNull(scdnm))
  296. {
  297. //부마취
  298. grup_base.ipt_scdnm.value = scdnm;
  299. degnitemlevlcd = grup_base.ipt_scdnm.degnitemlevlcd;
  300. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  301. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcdsub);
  302. ds_data_recitem.setColumn(nFindRow, "rectermnm", scdnm);
  303. //iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  304. }
  305. else
  306. {
  307. //iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  308. }
  309. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0007983001.model, model);
  310. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000521001.model, model);
  311. grup_base.ivw_0007983001.fSetDiagNmInstance();
  312. grup_base.ivw_0000521001.fSetDiagNmInstance();
  313. return true;
  314. }else{
  315. return false;
  316. }
  317. }
  318. function cf_TRMRF04001(sSvcId, nErrorCode, sErrorMsg) {
  319. if(nErrorCode < 0) return;
  320. }
  321. /****************************************************************************************
  322. * Function : fSrchOprPerfDrlist
  323. * Description : 수술명, 집도의 조회
  324. * retrun type :
  325. ****************************************************************************************/
  326. function fSrchOprPerfDrlist(oprsrvno, cOdt1)
  327. {
  328. var node = utlf_transNullToEmpty(sysf_getGlobalVariable("paminfo"));
  329. if(!utlf_isNull(node)){
  330. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  331. var objPamDs:Dataset = new Dataset;
  332. objPamDs = this.objects[sPamDsNm];
  333. dsf_setCSVToDs("ds_main_paminfo", node);
  334. var orddd = "";
  335. if( objPamDs.getColumn(0, "ioflag") == "O" ){
  336. orddd = objPamDs.getColumn(0, "orddd");
  337. }else{
  338. orddd = objPamDs.getColumn(0, "indd");
  339. }
  340. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"pid", type:"string", size:256, val:objPamDs.getColumn(0, "pid")}
  341. , {col:"cretno", type:"INT", size:256, val:objPamDs.getColumn(0, "cretno")}
  342. , {col:"orddd", type:"string", size:256, val:orddd}
  343. , {col:"oprsrvno", type:"string", size:256, val:oprsrvno}
  344. , {col:"srchmode", type:"string", size:256, val:"dr"}]);
  345. var objSendDS:Dataset = new Dataset;
  346. objSendDS = this.objects[sSendDsNm];
  347. var oParam = {};
  348. oParam.id = "TRMRF04301";
  349. oParam.service = "formmngtapp.FormIfMngt";
  350. oParam.method = "reqGetOprList";
  351. oParam.inds = "req="+sSendDsNm;
  352. oParam.outds = "ds_tmpop_selectoplist=selectoplist";
  353. oParam.async = true;
  354. oParam.progress = false;
  355. oParam.callback = "cf_TRMRF04301";
  356. tranf_submit(oParam);
  357. var oParam = {};
  358. oParam.id = "TRMRF04302";
  359. oParam.service = "formmngtapp.FormIfMngt";
  360. oParam.method = "reqGetPerfDrid";
  361. oParam.inds = "req="+sSendDsNm;
  362. oParam.outds = "ds_tmp_perfdr=perfdr";
  363. oParam.async = true;
  364. oParam.progress = false;
  365. oParam.callback = "cf_TRMRF04302";
  366. tranf_submit(oParam);
  367. dsf_deleteDs(sPamDsNm);
  368. }
  369. }
  370. function cf_TRMRF04301(sSvcId, nErrorCode, sErrorMsg) {
  371. if(nErrorCode < 0) return;
  372. //수술명 설정
  373. if( !grup_base.ivw_0000509001.isValidObject("ds_tmpop_selectoplist") )
  374. grup_base.ivw_0000509001.dsf_createDs("ds_tmpop_selectoplist");
  375. grup_base.ivw_0000509001.ds_tmpop_selectoplist.copyData(ds_tmpop_selectoplist);
  376. grup_base.ivw_0000509001.fAfterSrch();
  377. }
  378. function cf_TRMRF04302(sSvcId, nErrorCode, sErrorMsg) {
  379. if(nErrorCode < 0) return;
  380. var nRow = ds_tmp_perfdr.rowposition;
  381. var perfdrid = ds_tmp_perfdr.getColumn(nRow, "perfdrid");
  382. var perfdrnm = ds_tmp_perfdr.getColumn(nRow, "perfdrnm");
  383. var opfromdt = utlf_transNullToEmpty(ds_tmp_perfdr.getColumn(nRow, "opfromdt"));
  384. var opstdd = opfromdt.substring(0, 8);
  385. var opsttm = opfromdt.substring(8, 12);
  386. if (utlf_isNull(opsttm) || opsttm.length < 4)
  387. {
  388. opsttm = utlf_getCurrentTime().substr(0, 4);
  389. }
  390. //2010.02.03 dhkim - 수술기록 있을때만 일자세팅
  391. if(!utlf_isNull(opstdd) && opstdd.length == 8){
  392. parent.fSetFormRec("formrecdd" , opstdd);
  393. parent.fSetFormRec("formrechm" , opsttm);
  394. }
  395. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", "0000515");
  396. ds_data_recitem.setColumn(nFindRow, "reccnts", opstdd); //수술일
  397. grup_base.ipt_surg.value = opstdd;
  398. grup_base.cmb_odt1.value = perfdrid;
  399. degnitemlevlcd = grup_base.cmb_odt1.degnitemlevlcd;
  400. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd);
  401. ds_data_recitem.setColumn(nFindRow, "rectermcd" , perfdrid);
  402. ds_data_recitem.setColumn(nFindRow, "rectermnm" , perfdrnm);
  403. //fChngDoct(cOdt1);
  404. }
  405. /****************************************************************************************
  406. * Function : fSetSizeFormDiag
  407. * Description : 수술전 진단명 사이즈 조절
  408. * retrun type :
  409. ****************************************************************************************/
  410. function fSetSizeFormDiag()
  411. {
  412. grup_base.ivw_0007983001.fInitPage(false, parseInt(grup_base.ivw_0007983001.position.height), parseInt(grup_base.ivw_0007983001.position.width), "ivw_0007983001", "수술전 진단명(Free text))");
  413. }
  414. /****************************************************************************************
  415. * Function : fSetSizeFormDiag1
  416. * Description : 수술후 진단명 사이즈 조절
  417. * retrun type :
  418. ****************************************************************************************/
  419. function fSetSizeFormDiag1()
  420. {
  421. grup_base.ivw_0000521001.fInitPage(false, parseInt(grup_base.ivw_0000521001.position.height), parseInt(grup_base.ivw_0000521001.position.width), "ivw_0000521001", "수술후 진단명(Free text)");
  422. }
  423. /****************************************************************************************
  424. * Function : fSetSizeFormOpr
  425. * Description : 서식 수술명 사이즈 조절
  426. * retrun type :
  427. ****************************************************************************************/
  428. function fSetSizeFormOpr()
  429. {
  430. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.position.height), parseInt(grup_base.ivw_0000509001.position.width), "ivw_0000509001");
  431. }
  432. /*****************************************************************************
  433. 튜닝
  434. ******************************************************************************/
  435. var gLoadFormCnts = 0;
  436. /****************************************************************************************
  437. * Function : fFormReady()
  438. * Description : 화면 로딩후 초기화 작업 수행
  439. * retrun type :
  440. ****************************************************************************************/
  441. function fFormReady()
  442. {
  443. this.ComnFormObj = this.grup_base;
  444. dsf_createDsRow("ds_temp_mainrecitem",
  445. [{col:"formxrw", val:""}]);
  446. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  447. ds_temp_mainrecitem.assign(ds_data_recitem);
  448. lf_setSectionSize(gItemCds, "grup_base.tar_0000512001", "grup_base.tar_0000507001", 350); //350
  449. //20080702 박종훈 추가
  450. //fInitialize();
  451. InitBtnImge(gItemCdsTextArea);
  452. InitBtnEtcRec(gItemCdsTextArea);
  453. // InitBtnComn(gItemCdsTextArea);
  454. // dispOnLoadComplete(COMN_FORM);
  455. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  456. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  457. //2010.01.21
  458. // initCmbExtnList(gItemCds);
  459. //fOnLoadComplete
  460. if (parent.fGetFormRec("status") == "C")
  461. {
  462. fClearComnFormData();
  463. }else{
  464. fInitialize();
  465. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  466. parent.fSetFormRec("extnflag", "opr");
  467. }
  468. lf_setRecData(arrItemCds);
  469. initFormAtLast_MMR01100I();
  470. }
  471. /****************************************************************************************
  472. * Function : fLoadUnitForm()
  473. * Description : 부분서식 로딩
  474. * retrun type :
  475. ****************************************************************************************/
  476. function fLoadUnitForm()
  477. {
  478. initSection(gItemCds);
  479. }
  480. var diagcnt = 0;
  481. /****************************************************************************************
  482. * Function : fOnLoadComplete()
  483. * Description : 부분서식 로딩후 후처리
  484. * retrun type :
  485. ****************************************************************************************/
  486. function fOnLoadComplete()
  487. {
  488. var rtn = false;
  489. var curLoadFormCd = frmf_getParameter("loadformcd");
  490. frmf_setParameter("loadformcd", "");
  491. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  492. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  493. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  494. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  495. if(!utlf_isNull(ivwObj) && unitformload != "true")
  496. {
  497. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  498. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  499. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  500. }
  501. //수술전진단명 부분서식 로딩후 처리
  502. if(fstLevlItemCd == '0007983001')
  503. {
  504. fSetSizeFormDiag();
  505. }
  506. //수술후진단명 부분서식 로딩후 처리
  507. if(fstLevlItemCd == '0000521001')
  508. {
  509. fSetSizeFormDiag1();
  510. if (parent.fGetFormRec("status") == "C")
  511. {
  512. }
  513. }
  514. //수술명 부분서식 로딩후 처리
  515. if(fstLevlItemCd == '0000509001')
  516. {
  517. fSetSizeFormOpr();
  518. if (parent.fGetFormRec("status") == "C")
  519. {
  520. fClearComnFormData();
  521. dispOnLoadComplete(UNIT_FORM);
  522. }
  523. else if (parent.fGetFormRec("status") == "U")
  524. {
  525. }
  526. }
  527. gLoadFormCnts++;
  528. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  529. if(gItemCds.length == gLoadFormCnts)
  530. {
  531. /* jw.choe 임시 주석
  532. if (parent.fGetFormRec("status") == "U")
  533. {
  534. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  535. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  536. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  537. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  538. var iptMObj = document.controls("ipt_mcdnm");
  539. var iptSObj = document.controls("ipt_scdnm");
  540. if (anstmthdcd != "" && mcdnm != "")
  541. {
  542. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  543. }
  544. else
  545. {
  546. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  547. }
  548. if (anstmthdcdsub != "" && scdnm != "")
  549. {
  550. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  551. }
  552. else
  553. {
  554. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  555. }
  556. iptMObj.refresh();
  557. iptSObj.refresh();
  558. }
  559. */
  560. dispOnLoadComplete(UNIT_FORM);
  561. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  562. SetDefFocusIVW(gItemCdsTextArea);
  563. }
  564. }
  565. /****************************************************************************************
  566. * Function : fGetDefData()
  567. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  568. * retrun type :
  569. ****************************************************************************************/
  570. function fGetDefData()
  571. {
  572. fSetSizeFormOpr();
  573. operation = utlf_transNullToEmpty(sysf_getGlobalVariable("operation")).split("▩")[1];
  574. if( dsf_getColumnNullToEmpty(parent.ds_temp_formdata, 0, "operation") != "" ){
  575. operation = parent.ds_temp_formdata.getColumn(0, "operation").split("▩")[1];
  576. }
  577. if(!utlf_isNull(operation)){
  578. oprsrvno = operation.split("▦")[0];
  579. perfdeptcd = operation.split("▦")[10];
  580. }
  581. dispOnLoadComplete(UNIT_FORM);
  582. }
  583. /****************************************************************************************
  584. * Function : fBtnDisEnable()
  585. * Description : 저장버튼 Disable
  586. * retrun type :
  587. ****************************************************************************************/
  588. function fBtnDisEnable(flag)
  589. {
  590. if(flag)
  591. {
  592. parent.fDisalbeSave(flag);
  593. }
  594. else
  595. {
  596. parent.fDisalbeSave(flag);
  597. }
  598. }
  599. /****************************************************************************************
  600. * Function : fCosignCheck()
  601. * Description : 코사인버튼처리
  602. * retrun type :
  603. * History :
  604. ****************************************************************************************/
  605. function fCosignCheck()
  606. {
  607. return;
  608. }
  609. /****************************************************************************************
  610. * Function : getSubmitID_MMR01300I
  611. * Description : MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  612. * retrun type :
  613. ****************************************************************************************/
  614. function getSubmitID_MMR01300I() {
  615. parent.fSetFormRec("extnflag", "opr");
  616. return TX_SUBMIT_EXTN_FORM;
  617. }
  618. /****************************************************************************************
  619. * Function : initFormAtLast_MMR01100I
  620. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  621. * retrun type :
  622. ****************************************************************************************/
  623. function initFormAtLast_MMR01100I() {
  624. var flag = false;
  625. ds_send_extninfo.clearData();
  626. var nRow = ds_send_extninfo.addRow();
  627. if (parent.fGetFormRec("status") == "C" ) {
  628. flag = true;
  629. ds_send_extninfo.setColumn(nRow, "infoflag", "opr");
  630. ds_send_extninfo.setColumn(nRow, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  631. } else if (parent.fGetFormRec("status") == "U" ) {
  632. if (parent.fGetFormRec("espiyn") == "Y") {
  633. flag = true;
  634. ds_send_extninfo.setColumn(nRow, "infoflag", "staffauth");
  635. ds_send_extninfo.setColumn(nRow, "pid", parent.fGetFormRec("pid"));
  636. ds_send_extninfo.setColumn(nRow, "formrecdd", parent.fGetFormRec("formrecdd"));
  637. ds_send_extninfo.setColumn(nRow, "srcformcd", parent.fGetFormRec("srcformcd"));
  638. ds_send_extninfo.setColumn(nRow, "formrecseq", parent.fGetFormRec("formrecseq"));
  639. }
  640. }
  641. if (flag) {
  642. dsf_setDefaultVal(ds_send_extninfo, "dschdd:99991231");
  643. var oParam = {};
  644. oParam.id = "TRMMR01302";
  645. oParam.service = "medirecapp.RecIf";
  646. oParam.method = "reqGetFormRecExtnInfo";
  647. oParam.inds = "req=ds_send_extninfo";
  648. oParam.outds = "ds_main_extninfo_resultinfo=resultinfo ds_main_extninfo_staffauthinfo=staffauthinfo ds_main_extninfo_oprinfo=oprinfo "
  649. + "ds_main_extninfo_oplistinfo=oplistinfo ds_main_extninfo_recitem=recitem ds_main_extninfo_drlistinfo=drlistinfo "
  650. + "ds_data_diagcdlist=diagcdlist ds_main_extninfo_selectoplist=selectoplist ds_main_extninfo_dscinoutinfo=dscinoutinfo "
  651. + "ds_main_extninfo_rectextinfo=rectextinfo ds_main_extninfo_anstdrlistinfo=anstdrlistinfo ds_main_extninfo_oproomlistinfo=oproomlistinfo "
  652. + "ds_main_extninfo_recseqinfo=recseqinfo ds_main_extninfo_etcinfo=etcinfo";
  653. oParam.async = true;
  654. oParam.callback = "cf_TRMMR01302";
  655. tranf_submit(oParam);
  656. }
  657. }
  658. function cf_TRMMR01302(sSvcId, nErrorCode, sErrorMsg) {
  659. arErrorCode.push(sSvcId, nErrorCode);
  660. if(nErrorCode < 0) return;
  661. dsf_setDefaultVal(ds_main_extninfo_recitem, "recitemno:'',degnitemno:'',supdegnitemno:''");
  662. dsf_setTypeFormat(ds_main_extninfo_recitem, "recitemno:INT^degnitemno:INT^supdegnitemno:INT");
  663. if (ds_send_extninfo.getColumn(0, "infoflag").indexOf("staffauth") > -1) {
  664. fCosignCheck_SMMMR00600();
  665. }
  666. if (ds_send_extninfo.getColumn(0, "infoflag").indexOf("opr") > -1) {
  667. fSetOpInfo_SMMMR00600();
  668. }
  669. }
  670. function fSetOpInfo_SMMMR00600() {
  671. }
  672. /****************************************************************************************
  673. * Function : fCosignCheck_SMMMR00600
  674. * Description : staff-sign 버튼을 설정한다.
  675. * retrun type :
  676. ****************************************************************************************/
  677. function fCosignCheck_SMMMR00600() {
  678. if (parent.fGetFormRec("formrecdeptcd") == sysf_getUserInfo("dutplcecd")) {
  679. if (parent.fGetFormRec("espiyn") == "Y") {
  680. var authyn = ds_main_extninfo_staffauthinfo.getColumn(0, "authyn");
  681. var cosign = parent.fGetFormRec("cosign");
  682. if (cosign == "Y") {
  683. if (parent.fGetFormRec("cosignid") == sysf_getUserId()) {
  684. if (parent.fGetFormRec("formrecuserid") == sysf_getUserId()) {
  685. //staff이 신규작성하여 sign된 경우 수정모드
  686. // [요청번호:20180712032] 입퇴원요약기록, 수술기록의 STAFF SIGN 관련건 수정모드 -> 싸인모드
  687. parent.initButtonLayer_MMR01100("staff_auth_y");
  688. } else {
  689. //전공의가 신규작성하여 staff이 sign한 경우 싸인모드
  690. parent.initButtonLayer_MMR01100("staff_auth_y");
  691. }
  692. } else {
  693. //staff sign이후이므로 staff이외에는 수정불가
  694. parent.initButtonLayer_MMR01100("no_auth");
  695. }
  696. } else {
  697. if (authyn == "Y") {
  698. //전공의 신규작성후에 staff이 수정모드로 열었으므로, 싸인모드
  699. parent.initButtonLayer_MMR01100("staff_auth_y");
  700. } else {
  701. //수정모드
  702. parent.initButtonLayer_MMR01100("staff_auth_n");
  703. }
  704. }
  705. } else {
  706. //수정모드
  707. parent.initButtonLayer_MMR01100("staff_auth_n");
  708. }
  709. } else {
  710. parent.initButtonLayer_MMR01100("no_auth");
  711. }
  712. }]]></Script>