SMMMR01001.xjs 33 KB

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