SMMMR00901.xjs 43 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * MMR00901.js
  4. * SMMMR00901_DSC기록JCI.xrw
  5. */
  6. var arrItemCds = new Array( "0007983001" //수술전진단명
  7. , "0000521001" //수술후진단명
  8. , "0000515001" //수술일
  9. , "0000980001" //집도의
  10. , "0007992001" //마취의
  11. , "0016684001"
  12. // , "0007004001" //수술방 //0016684.0007004
  13. // , "0005330001" //수술부위피부준비 //0016684.0005330
  14. , "0000248001"
  15. , "0000509001" //수술명
  16. , "0000512001" //수술소견및절차
  17. , "0001113001" //투약정보
  18. , "0008539001" //처치정보
  19. , "0036148001" //특이사항(RDO)
  20. , "0001115001" //특이사항
  21. , "0018614003" //DSC도착시간
  22. , "0018615002" //OR 도착시간
  23. , "0018616002" //DSC회복시간
  24. , "0018617002" //DSC퇴실시간
  25. );
  26. //부분서식의 부모아이템 배열
  27. var gItemCds = new Array(
  28. "0007983001" //수술전진단명
  29. , "0000521001" //수술후진단명
  30. , "0000509001" //수술명
  31. , "0000512001" //수술소견및절차
  32. , "0001113001" //투약정보
  33. , "0008539001" //처치정보
  34. , "0001115001" //특이사항
  35. );
  36. var gItemCdsTextArea = new Array("0000512001");//수술소견및절차
  37. var gItemCdsXRWArea = new Array(
  38. "0007983001" //수술전진단명
  39. , "0000521001" //수술후진단명
  40. , "0000509001" //수술명
  41. );
  42. var gItemCdsExpand = new Array(
  43. "0000509001" //수술명
  44. , "0000512001" //수술소견및절차
  45. , "0001113001" //투약정보
  46. , "0008539001" //처치정보
  47. , "0001115001" //특이사항
  48. );
  49. //부분서식의 개수만큼 일단 '0'으로 채운다.
  50. var iOpdate = grup_base.ipt_opdate.degnitemno;
  51. var cOdt = grup_base.cmb_odt.degnitemno;
  52. var cSdt = grup_base.cmb_sdt.degnitemno;
  53. var cOproom = grup_base.cmb_oproom.degnitemno;
  54. var iMcdnm = grup_base.ipt_mcdnm.degnitemlevlcd;
  55. var iScdnm = grup_base.ipt_scdnm.degnitemlevlcd;
  56. var cOdt1 = grup_base.cmb_odt.degnitemlevlcd;
  57. var oprsrvno = "";
  58. //2010.01.25 dhkim 마취과코드추가
  59. var anstdeptcd = "";
  60. /**
  61. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  62. * @id :
  63. * @authur : 안치원
  64. * @history : 2009.09.09 신규 안치원 ACW_090909A
  65. */
  66. var gExtnBtnIds = new Array("btn_imge_0000512001" //수술소견및절차 이미지버튼
  67. , "btn_etcrec_0000512001" //수술소견및절차 추가기록버튼
  68. );
  69. var lodedYn = false;
  70. /****************************************************************************************
  71. * Function : fClearComnFormData
  72. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  73. * retrun type :
  74. ****************************************************************************************/
  75. function fClearComnFormData()
  76. {
  77. if (!utlf_isNull(gMaxSectionID))
  78. {
  79. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  80. }
  81. if( lodedYn == true )
  82. ClearComnFormData(gItemCds);
  83. fInitialize();
  84. //포커스 처리
  85. SetDefFocusIVW(gItemCdsTextArea);
  86. parent.fSetFormRec("extnflag", "opr");
  87. parent.fSetFormRec("oprsrvno", oprsrvno);
  88. }
  89. /****************************************************************************************
  90. * Function : fLoadData
  91. * Description : 기록데이터 조회
  92. * retrun type :
  93. ****************************************************************************************/
  94. function fLoadData()
  95. {
  96. fInitialize();
  97. lf_setRecData(arrItemCds);
  98. var sStatus = fGetFormRec("status");
  99. lf_setBasicInfo(sStatus);
  100. /*
  101. //Program 서식 데이터 조회반영
  102. InitPgmFormData();
  103. this.recRef2 = "/root/hidden/recinfo"
  104. //부분서식 데이터 조회 반영
  105. InitUnitFormData(gItemCds);
  106. */
  107. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  108. parent.fSetFormRec("extnflag", "opr");
  109. }
  110. /****************************************************************************************
  111. * Function : fInitialize
  112. * Description : 화면 초기화
  113. * retrun type :
  114. * History :
  115. ****************************************************************************************/
  116. function fInitialize()
  117. {
  118. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  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. gTermViewTopPos = 0;
  129. gTermViewHei = 266;
  130. gTermViewItems = gItemCdsXRWArea;
  131. }
  132. /**
  133. * @desc : 의사 조회에 따른 reccnts셋팅(tur)
  134. * @
  135. * @param :
  136. * @return :
  137. * @authur : 박종훈
  138. */
  139. function fChngDocts(degnitemno1, degnitemno2, degnitemno3)
  140. {
  141. //집도의
  142. var sDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd");
  143. var sDrnm = model.getValue("/root/init/drlist" + degnitemno1 + "/usercombo[userid='" + sDrid + "']/usernm");
  144. if (sDrnm == "")
  145. {
  146. sDrnm = "";
  147. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd", "");
  148. }
  149. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermnm", sDrnm);
  150. //마취의
  151. var sanstDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd");
  152. var sanstDrnm = model.getValue("/root/init/drlist" + degnitemno2 + "/usercombo[userid='" + sanstDrid + "']/usernm");
  153. if (sanstDrnm == "")
  154. {
  155. sanstDrnm = "";
  156. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd", "");
  157. }
  158. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermnm", sanstDrnm);
  159. //수술방
  160. var sRoomcd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd");
  161. var sRoomnm = model.getValue("/root/init/oproom/oproomlist[oproomcd='"+sRoomcd+"']/oproomnm");
  162. if (sRoomnm == "")
  163. {
  164. sRoomnm = "";
  165. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd", "");
  166. }
  167. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermnm", sRoomnm);
  168. model.refresh();
  169. }
  170. /****************************************************************************************
  171. * Function : fChngDoct
  172. * Description : 의사 선택에 따른 reccnts셋팅(tur)
  173. * retrun type :
  174. * History :
  175. ****************************************************************************************/
  176. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  177. {
  178. var sDrnm, sDrcd;
  179. var sDegnitemlevlcd = obj.degnitemlevlcd;
  180. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  181. if(nFindRow == -1)
  182. {
  183. nFindRow = ds_data_recitem.addRow();
  184. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  185. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  186. }
  187. sDrnm = e.posttext;
  188. sDrcd = e.postvalue;
  189. if( utlf_isNull(e.posttext) ){
  190. sDrnm = "";
  191. sDrcd = "";
  192. obj.value = "";
  193. }
  194. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  195. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  196. }
  197. /****************************************************************************************
  198. * Function : fChngOproom
  199. * Description : 수술실 선택에 따른 reccnts셋팅(tur)
  200. * retrun type :
  201. * History :
  202. ****************************************************************************************/
  203. function fChngOproom(obj:Combo, e:ItemChangeEventInfo)
  204. {
  205. var sRoomnm, sRoomcd;
  206. var sDegnitemlevlcd = obj.degnitemlevlcd;
  207. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  208. if(nFindRow == -1)
  209. {
  210. nFindRow = ds_data_recitem.addRow();
  211. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  212. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  213. }
  214. sRoomnm = e.posttext;
  215. sRoomcd = e.postvalue;
  216. if( utlf_isNull(e.posttext) ){
  217. sRoomnm = "";
  218. sRoomcd = "";
  219. obj.value = "";
  220. }
  221. ds_data_recitem.setColumn(nFindRow, "rectermcd", sRoomcd);
  222. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRoomnm);
  223. }
  224. /****************************************************************************************
  225. * Function : fRadioYN
  226. * Description : 라디오버튼 선택에 따른 reccnts셋팅
  227. ****************************************************************************************/
  228. function fRadioYN(obj:Radio, e:ItemChangeEventInfo)
  229. {
  230. var sDegnitemlevlcd = obj.degnitemlevlcd;
  231. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  232. if(nFindRow == -1)
  233. {
  234. nFindRow = ds_data_recitem.addRow();
  235. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  236. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  237. }
  238. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", e.postvalue), "valitemnm");
  239. if( utlf_isNull(sRectermnm) ) sRectermnm = e.posttext;
  240. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  241. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  242. }
  243. /**
  244. * @desc : 기록 인스턴스 연결
  245. * @
  246. * @param :
  247. * @return :
  248. * @authur : 박종훈
  249. */
  250. function fSetRecItemValue(reciteminfo)
  251. {
  252. return SetCommMediFormValue(gItemCds, reciteminfo);
  253. }
  254. /****************************************************************************************
  255. * Function : fSetSizeFormDiag
  256. * Description : 진단명 사이즈 조절(tur)
  257. * retrun type :
  258. ****************************************************************************************/
  259. function fSetSizeFormDiag()
  260. {
  261. grup_base.ivw_0007983001.fInitPage(false, parseInt(grup_base.ivw_0007983001.position.height), parseInt(grup_base.ivw_0007983001.position.width), "ivw_0007983001", "수술전 진단명");
  262. }
  263. /****************************************************************************************
  264. * Function : fSetSizeFormDiag1
  265. * Description : 수술후 진단명 사이즈 조절
  266. * retrun type :
  267. ****************************************************************************************/
  268. function fSetSizeFormDiag1()
  269. {
  270. grup_base.ivw_0000521001.fInitPage(false, parseInt(grup_base.ivw_0000521001.position.height), parseInt(grup_base.ivw_0000521001.position.width), "ivw_0000521001", "수술후 진단명(Free text)");
  271. }
  272. /****************************************************************************************
  273. * Function : fSetSizeFormOpr
  274. * Description : 서식 수술명 사이즈 조절(tur)
  275. * retrun type :
  276. ****************************************************************************************/
  277. function fSetSizeFormOpr()
  278. {
  279. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.position.height), parseInt(grup_base.ivw_0000509001.position.width), "ivw_0000509001");
  280. }
  281. /*****************************************************************************
  282. 튜닝
  283. ******************************************************************************/
  284. var gLoadFormCnts = 0;
  285. /****************************************************************************************
  286. * Function : fFormReady()
  287. * Description : 화면 로딩후 초기화 작업 수행
  288. * retrun type :
  289. ****************************************************************************************/
  290. function fFormReady()
  291. {
  292. this.ComnFormObj = this.grup_base;
  293. dsf_createDsRow("ds_temp_mainrecitem",
  294. [{col:"formxrw", val:""}]);
  295. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  296. ds_temp_mainrecitem.assign(ds_data_recitem);
  297. lf_setSectionSize(gItemCds, "grup_base.tar_0000509001", "grup_base.tar_0001115001", 431);
  298. //20080702 박종훈 추가
  299. InitBtnImge(gItemCdsTextArea);
  300. // InitBtnComn(gItemCds);
  301. InitBtnEtcRec(gItemCdsTextArea);
  302. // dispOnLoadComplete(COMN_FORM);
  303. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  304. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  305. fInitialize();
  306. lf_initForm(); //fOnLoadComplete
  307. if (parent.fGetFormRec("status") == "C")
  308. {
  309. fViewOPfindingsCaption_SMMMR00901("0000512001");
  310. }
  311. //2010.01.21, hkjoo
  312. // initCmbExtnList(gItemCds);
  313. lf_setRecData(arrItemCds);
  314. initFormAtLast_MMR01100I();
  315. }
  316. /****************************************************************************************
  317. * Function : fLoadUnitForm()
  318. * Description : 부분서식 로딩
  319. * retrun type :
  320. ****************************************************************************************/
  321. function fLoadUnitForm()
  322. {
  323. initSection(gItemCds);
  324. }
  325. var diagcnt = 0;
  326. /****************************************************************************************
  327. * Function : fOnLoadComplete()
  328. * Description : 부분서식 로딩후 후처리
  329. * retrun type :
  330. ****************************************************************************************/
  331. function fOnLoadComplete()
  332. {
  333. var rtn = false;
  334. var curLoadFormCd = frmf_getParameter("loadformcd");
  335. frmf_setParameter("loadformcd", "");
  336. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  337. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  338. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  339. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  340. if(!utlf_isNull(ivwObj) && unitformload != "true")
  341. {
  342. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  343. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  344. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  345. }
  346. //수술전진단명 부분서식 로딩후 처리
  347. if(fstLevlItemCd == '0007983001')
  348. {
  349. fSetSizeFormDiag();
  350. }
  351. //수술후진단명 부분서식 로딩후 처리
  352. if(fstLevlItemCd == '0000521001')
  353. {
  354. fSetSizeFormDiag1();
  355. if (parent.fGetFormRec("status") == "C")
  356. {
  357. }
  358. }
  359. //수술명 부분서식 로딩후 처리
  360. if(fstLevlItemCd == '0000509001')
  361. {
  362. fSetSizeFormOpr();
  363. if (parent.fGetFormRec("status") == "C")
  364. {
  365. fClearComnFormData();
  366. }
  367. }
  368. gLoadFormCnts++;
  369. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  370. if(gItemCds.length == gLoadFormCnts)
  371. {
  372. //fSetSizeFormOpr();
  373. if (parent.fGetFormRec("status") == "C")
  374. {
  375. var node = sysf_getGlobalVariable("paminfo");
  376. if(!utlf_isNull(node))
  377. {
  378. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  379. var objPamDs:Dataset = new Dataset;
  380. objPamDs = this.objects[sPamDsNm];
  381. dsf_setCSVToDs("ds_main_paminfo", node);
  382. var ordtype = objPamDs.getColumn(0, "ioflag");
  383. if(ordtype != "D")
  384. {
  385. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  386. grup_base.enable = false;
  387. fBtnDisEnable(true);
  388. return;
  389. }
  390. else
  391. {
  392. if(utlf_isNull(oprsrvno))
  393. {
  394. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  395. grup_base.enable = false;
  396. fBtnDisEnable(true);
  397. return;
  398. } else {
  399. fBtnDisEnable(false);
  400. }
  401. }
  402. }
  403. parent.fSetFormRec("extnflag", "opr");
  404. parent.fSetFormRec("oprsrvno", oprsrvno);
  405. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  406. SetDefFocusIVW(gItemCdsTextArea);
  407. }
  408. if(parent.fGetFormRec("status") == "U"){
  409. //jw.choe 주석처리
  410. /*
  411. //마취정보세팅
  412. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  413. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  414. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  415. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  416. var iptMObj = document.controls("ipt_mcdnm");
  417. var iptSObj = document.controls("ipt_scdnm");
  418. if (anstmthdcd != "" && mcdnm != "")
  419. {
  420. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  421. }
  422. else
  423. {
  424. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  425. }
  426. if (anstmthdcdsub != "" && scdnm != "")
  427. {
  428. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  429. }
  430. else
  431. {
  432. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  433. }
  434. iptMObj.refresh();
  435. iptSObj.refresh();
  436. */
  437. //버튼세팅
  438. if(parent.fCheckSaveDept()){
  439. grup_base.enable = true;
  440. fBtnDisEnable(false);
  441. }
  442. else{
  443. sysf_messageBox("타과에서 작성된 DSC기록은 수정", "E001");
  444. grup_base.enable = false;
  445. fBtnDisEnable(true);
  446. }
  447. }
  448. dispOnLoadComplete(UNIT_FORM);
  449. }
  450. if(!rtn)
  451. {
  452. return "oprfalse";
  453. } else {
  454. }
  455. }
  456. /****************************************************************************************
  457. * Function : fGetDefData()
  458. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  459. * retrun type :
  460. ****************************************************************************************/
  461. function fGetDefData()
  462. {
  463. fSetSizeFormOpr();
  464. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  465. if(!utlf_isNull(operation)){
  466. oprsrvno = operation.split("▦")[0];
  467. perfdeptcd = operation.split("▦")[10];
  468. }
  469. if (parent.fGetFormRec("status") == "C")
  470. {
  471. var node = sysf_getGlobalVariable("paminfo");
  472. if(!utlf_isNull(node))
  473. {
  474. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  475. var objPamDs:Dataset = new Dataset;
  476. objPamDs = this.objects[sPamDsNm];
  477. dsf_setCSVToDs("ds_main_paminfo", node);
  478. var ordtype = objPamDs.getColumn(0, "ioflag");
  479. if(ordtype != "D")
  480. {
  481. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  482. grup_base.enable = false;
  483. fBtnDisEnable(true);
  484. return;
  485. }
  486. else
  487. {
  488. if(utlf_isNull(oprsrvno))
  489. {
  490. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  491. grup_base.enable = false;
  492. fBtnDisEnable(true);
  493. return;
  494. } else {
  495. fBtnDisEnable(false);
  496. }
  497. }
  498. }
  499. parent.fSetFormRec("extnflag", "opr");
  500. parent.fSetFormRec("oprsrvno", oprsrvno);
  501. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  502. SetDefFocusIVW(gItemCdsTextArea);
  503. }
  504. dispOnLoadComplete(UNIT_FORM);
  505. }
  506. /****************************************************************************************
  507. * Function : fBtnDisEnable()
  508. * Description : 저장버튼 Disable
  509. * retrun type :
  510. ****************************************************************************************/
  511. function fBtnDisEnable(flag)
  512. {
  513. if(flag)
  514. {
  515. parent.fDisalbeSave(flag);
  516. }
  517. else
  518. {
  519. parent.fDisalbeSave(flag);
  520. }
  521. }
  522. /**
  523. * 20091211 dhkim
  524. * 수술소견 및 절차에 데이터가 없을때 캡션을 보여준다.
  525. */
  526. /****************************************************************************************
  527. * Function : fViewOPfindingsCaption_SMMMR00901()
  528. * Description : 20091211 dhkim
  529. * 수술소견 및 절차에 데이터가 없을때 캡션을 보여준다.
  530. * retrun type :
  531. ****************************************************************************************/
  532. function fViewOPfindingsCaption_SMMMR00901(itemcd){
  533. }
  534. /****************************************************************************************
  535. * Function : initFormAtLast_MMR01100I()
  536. * Description : MMR01100.js에서 서식load를 완료한 후에 호출한다.
  537. * retrun type :
  538. ****************************************************************************************/
  539. function initFormAtLast_MMR01100I() {
  540. //2010.01.25 dhkim 마취과코드 추가(간호공통기준자료테이블에서 가죠옴)
  541. var pCode = "'012'"; // 조회할 CdGrupID 코드정보(012:마취과)
  542. var pDate = utlf_getCurrentDate(); //조회기준일자
  543. fGetNursHardCdInfo_MMR00901(pCode, pDate);
  544. var nFindRow = ds_code_mmr00901.findRow("cdgrupid", "012");
  545. anstdeptcd = ds_code_mmr00901.getColumn(nFindRow, "cdid");
  546. var formcd = parent.fGetFormMast("formcd");
  547. //신규서식로딩의 경우만 수술기록정보 연동
  548. if (parent.fGetFormRec("status") == "C") {
  549. //2010.01.25 dhkim 집도의, 마취의 리스트 조회추가
  550. fGetRecIfData_MMR00901("opr;opnm;opdiag;dscinout;drlist;anstdrlist;oproomlist");
  551. } else {
  552. //2010.01.25 dhkim 집도의, 마취의, 수술방 리스트 조회추가
  553. fGetRecIfData_MMR00901("drlist;anstdrlist;oproomlist");
  554. }
  555. fInitAnstTypeCtrl_SMMMR00901();
  556. lodedYn = true; // 로드 시점 처리
  557. }
  558. /****************************************************************************************
  559. * Function : getSubmitID_MMR01300I
  560. * Description : MMR01300.js에서 submit직전에 submitID를 설정하기 위해서 호출한다.
  561. * retrun type :
  562. ****************************************************************************************/
  563. function getSubmitID_MMR01300I() {
  564. //2010.02.23 dhkim - 통합기록조회용 JCI구분자추가(fSetXsltFlag없애고 getSubmitID_MMR01300I로 이동)
  565. parent.fSetFormRec("xsltflag", "JCI");
  566. return TX_SUBMIT_EXTN_FORM;
  567. }
  568. /****************************************************************************************
  569. * Function : fGetRecIfData_MMR00901
  570. * Description : 수술기록의 Data를 설정한다.
  571. * retrun type :
  572. * History : TRMMR01302 submission 호출로 통합
  573. ****************************************************************************************/
  574. function fGetRecIfData_MMR00901(infoflag) {
  575. ds_send_extninfo.clearData();
  576. var nRow = ds_send_extninfo.addRow();
  577. ds_send_extninfo.setColumn(nRow, "infoflag", infoflag);
  578. ds_send_extninfo.setColumn(nRow, "pid", parent.fGetFormRec("pid"));
  579. ds_send_extninfo.setColumn(nRow, "oprsrvno", parent.fGetFormRec("oprsrvno"));
  580. //2010.01.11 dhkim - dsc 입퇴실정보 조회위해 orddd, cretno 추가
  581. ds_send_extninfo.setColumn(nRow, "orddd", parent.fGetFormRec("orddd"));//dsc는 orddd로 들어감
  582. ds_send_extninfo.setColumn(nRow, "cretno", parent.fGetFormRec("cretno"));
  583. //2010.01.25 dhkim - 집도의,마취의, 수술방 리스트조회 콤보에 필요한 파라미터 추가
  584. if(utlf_isSearchString(infoflag, "drlist"))
  585. ds_send_extninfo.setColumn(nRow, "deptcd", sysf_getUserInfo("dutplcecd"));
  586. if(utlf_isSearchString(infoflag, "anstdrlist"))
  587. ds_send_extninfo.setColumn(nRow, "anstdeptcd", anstdeptcd);
  588. if(utlf_isSearchString(infoflag, "oproomlist"))
  589. ds_send_extninfo.setColumn(nRow, "opdd", parent.fGetFormRec("orddd"));
  590. dsf_setDefaultVal(ds_send_extninfo, "dschdd:99991231");
  591. var oParam = {};
  592. oParam.id = "TRMMR01302";
  593. oParam.service = "medirecapp.RecIf";
  594. oParam.method = "reqGetFormRecExtnInfo";
  595. oParam.inds = "req=ds_send_extninfo";
  596. oParam.outds = "ds_main_extninfo_resultinfo=resultinfo ds_main_extninfo_staffauthinfo=staffauthinfo ds_main_extninfo_oprinfo=oprinfo "
  597. + "ds_main_extninfo_oplistinfo=oplistinfo ds_main_extninfo_recitem=recitem ds_main_extninfo_drlistinfo=drlistinfo "
  598. + "ds_data_diagcdlist=diagcdlist ds_main_extninfo_selectoplist=selectoplist ds_main_extninfo_dscinoutinfo=dscinoutinfo "
  599. + "ds_main_extninfo_rectextinfo=rectextinfo ds_main_extninfo_anstdrlistinfo=anstdrlistinfo ds_main_extninfo_oproomlistinfo=oproomlistinfo "
  600. + "ds_main_extninfo_recseqinfo=recseqinfo ds_main_extninfo_etcinfo=etcinfo";
  601. oParam.async = false;
  602. oParam.callback = "cf_TRMMR01302";
  603. tranf_submit(oParam);
  604. if(arErrorCode.pop("TRMMR01302") > -1)
  605. {
  606. var execInfoFlag = ds_main_extninfo_resultinfo.getColumn(0, "infoflag");
  607. //2010.01.25 dhkim - 집도의,마취의,수술방 콤보 리스트 추가
  608. if (execInfoFlag.indexOf("anstdrlist;") != -1) {
  609. //extninfo에 조회해온 마취의 노드리스트 콤보리스트에 copy
  610. ds_init_cmb_sdt.clearData();
  611. ds_init_cmb_sdt.copyData(ds_main_extninfo_anstdrlistinfo);
  612. }
  613. if (execInfoFlag.indexOf("drlist;") != -1) {
  614. //extninfo에 조회해온 집도의 노드리스트 콤보리스트에 copy
  615. ds_init_cmb_odt.clearData();
  616. ds_init_cmb_odt.copyData(ds_main_extninfo_drlistinfo);
  617. }
  618. if (execInfoFlag.indexOf("oproomlist;") != -1) {
  619. //extninfo에 조회해온 수술방 노드리스트 콤보리스에 copy
  620. ds_init_cmb_oproom.clearData();
  621. ds_init_cmb_oproom.copyData(ds_main_extninfo_oproomlistinfo);
  622. }
  623. //2010.01.11 dhkim - 집도의, 마취의 콤보 노드리스트에 조회한 의사정보 없을경우 노드추가
  624. //집도의
  625. var perfdrnm = makeDrNames_MMR00901(new Array("perfdrnm"));
  626. var perfdrid = makeDrNames_MMR00901(new Array("perfdrid"));
  627. //2010.01.25 dhkim - 수정모드일 경우는 recinfo에서 조회
  628. if(parent.fGetFormRec("status") == "U"){
  629. var sDegnitemlevlcd = grup_base.cmb_odt.degnitemlevlcd;
  630. var nFindRow = parent.ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  631. perfdrnm = parent.ds_data_recitem.getColumn(nFindRow, "rectermnm");
  632. perfdrid = parent.ds_data_recitem.getColumn(nFindRow, "rectermcd");
  633. //perfCnt = getNodesetCount("/root/main/extninfo/drlistinfo[userid='"+perfdrid+"']/userid");
  634. }
  635. var perfCnt = ds_main_extninfo_drlistinfo.getCaseCount("userid=='"+perfdrid+"'");
  636. if(perfCnt == 0){
  637. var nRow = ds_init_cmb_odt.addRow();
  638. ds_init_cmb_odt.setColumn(nRow, "userid", perfdrid);
  639. ds_init_cmb_odt.setColumn(nRow, "usernm", perfdrnm);
  640. }
  641. //마취의
  642. var anstdrnm = makeDrNames_MMR00901(new Array("anstdrnm"));
  643. var anstdrid = makeDrNames_MMR00901(new Array("anstdrid"));
  644. //2010.01.25 dhkim - 수정모드의 경우 recinfo에서 조회
  645. if(parent.fGetFormRec("status") == "U"){
  646. var sDegnitemlevlcd = grup_base.cmb_sdt.degnitemlevlcd;
  647. var nFindRow = parent.ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  648. anstdrnm = parent.ds_data_recitem.getColumn(nFindRow, "rectermnm");
  649. anstdrid = parent.ds_data_recitem.getColumn(nFindRow, "rectermcd");
  650. }
  651. var anstdrCnt = ds_main_extninfo_anstdrlistinfo.getCaseCount("userid=='"+anstdrid+"'");
  652. if(anstdrCnt == 0){
  653. var nRow = ds_init_cmb_sdt.addRow();
  654. ds_init_cmb_sdt.setColumn(nRow, "userid", anstdrid);
  655. ds_init_cmb_sdt.setColumn(nRow, "usernm", anstdrnm);
  656. }
  657. if (execInfoFlag.indexOf("opr;") != -1) {
  658. var nFindRow = "";
  659. var sDegnitemlevlcd = "";
  660. //수술정보 설정
  661. //수술일자,진료일자
  662. var opcnfmdd = ds_main_extninfo_oprinfo.getColumn(0, "opcnfmdd");
  663. var opcnfmhm = ds_main_extninfo_oprinfo.getColumn(0, "opcnfmhm");
  664. grup_base.ipt_opdate.value = opcnfmdd;
  665. sDegnitemlevlcd = grup_base.ipt_opdate.degnitemlevlcd; //0000515
  666. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  667. ds_data_recitem.setColumn(nFindRow, "reccnts", opcnfmdd);
  668. //2010.01.11 dhkim - 진료일자,진료시간 세팅
  669. parent.fSetFormRec("formrecdd", opcnfmdd);
  670. parent.fSetFormRec("formrechm", opcnfmhm);
  671. //집도의 설정
  672. grup_base.cmb_odt.value = perfdrid;
  673. sDegnitemlevlcd = grup_base.cmb_odt.degnitemlevlcd;
  674. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0000980
  675. ds_data_recitem.setColumn(nFindRow, "rectermcd", perfdrid);
  676. ds_data_recitem.setColumn(nFindRow, "rectermnm", perfdrnm);
  677. //마취의 설정
  678. grup_base.cmb_sdt.value = anstdrid;
  679. sDegnitemlevlcd = grup_base.cmb_sdt.degnitemlevlcd;
  680. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0007992
  681. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstdrid);
  682. ds_data_recitem.setColumn(nFindRow, "rectermnm", anstdrnm);
  683. //수술방 설정
  684. var oproomcd = ds_main_extninfo_oprinfo.getColumn(0, "oproomcd");
  685. // knuh_20110705_수정_최초로딩시 수술방명을 인스턴스에 셋팅을 못하여 저장시 빠짐
  686. nFindRow = ds_main_extninfo_oproomlistinfo.findRow("oproomcd", oproomcd);
  687. var oproomnm = ds_main_extninfo_oproomlistinfo.getColumn(nFindRow, "oproomnm");
  688. if(!utlf_isNull(oproomcd)){
  689. grup_base.cmb_oproom.value = oproomcd;
  690. sDegnitemlevlcd = grup_base.cmb_oproom.degnitemlevlcd;
  691. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0016684.0007004
  692. ds_data_recitem.setColumn(nFindRow, "rectermcd", oproomcd);
  693. ds_data_recitem.setColumn(nFindRow, "rectermnm", oproomnm);
  694. }
  695. //수술부위피부준비 설정
  696. var skinprepcc = ds_main_extninfo_oprinfo.getColumn(0, "skinprepcc");
  697. if(skinprepcc == "0001965001"){
  698. grup_base.radio1.value = skinprepcc;
  699. sDegnitemlevlcd = grup_base.radio1.degnitemlevlcd;
  700. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0016684.0005330
  701. ds_data_recitem.setColumn(nFindRow, "rectermnm", "Yes");
  702. ds_data_recitem.setColumn(nFindRow, "rectermcd", skinprepcc);
  703. }else if(skinprepcc == "0001347001"){
  704. grup_base.radio1.value = skinprepcc;
  705. sDegnitemlevlcd = grup_base.radio1.degnitemlevlcd;
  706. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0016684.0005330
  707. ds_data_recitem.setColumn(nFindRow, "rectermnm", "No");
  708. ds_data_recitem.setColumn(nFindRow, "rectermcd", skinprepcc);
  709. }
  710. //주마취 설정
  711. var sAnstmthdnm = ds_main_extninfo_oprinfo.getColumn(0, "anstmthdnm");
  712. var sAnstmthdcd = ds_main_extninfo_oprinfo.getColumn(0, "anstmthdcd");
  713. grup_base.ipt_mcdnm.value = sAnstmthdnm;
  714. sDegnitemlevlcd = grup_base.ipt_mcdnm.degnitemlevlcd;
  715. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0000248.0015528
  716. ds_data_recitem.setColumn(nFindRow, "rectermnm", sAnstmthdnm);
  717. ds_data_recitem.setColumn(nFindRow, "rectermcd", sAnstmthdcd);
  718. //부마취 설정
  719. var sAnstmthdcdsubnm = ds_main_extninfo_oprinfo.getColumn(0, "anstmthdcdsubnm");
  720. var sAnstmthdcdsub = ds_main_extninfo_oprinfo.getColumn(0, "anstmthdcdsub");
  721. grup_base.ipt_scdnm.value = sAnstmthdcdsubnm;
  722. sDegnitemlevlcd = grup_base.ipt_scdnm.degnitemlevlcd;
  723. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0000248.0008458
  724. ds_data_recitem.setColumn(nFindRow, "rectermnm", sAnstmthdcdsubnm);
  725. ds_data_recitem.setColumn(nFindRow, "rectermcd", sAnstmthdcdsub);
  726. }
  727. if (execInfoFlag.indexOf("opdiag;") != -1 && lodedYn == true) {
  728. //수술진단 설정
  729. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0007983001.model, model);
  730. // copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/extninfo/diagcdlist", "replace", ivw_0000521001.model, model);
  731. grup_base.ivw_0007983001.fSetDiagNmInstance();
  732. grup_base.ivw_0000521001.fSetDiagNmInstance();
  733. }
  734. if (execInfoFlag.indexOf("opnm;") != -1 && lodedYn == true) {
  735. //수술명설정
  736. if( !grup_base.ivw_0000509001.isValidObject("ds_tmpop_selectoplist") )
  737. grup_base.ivw_0000509001.dsf_createDs("ds_tmpop_selectoplist");
  738. grup_base.ivw_0000509001.ds_tmpop_selectoplist.copyData(ds_main_extninfo_selectoplist);
  739. grup_base.ivw_0000509001.fAfterSrch();
  740. }
  741. //2010.01.10 dhkim dsc 입퇴실시간 정보 추가
  742. if (execInfoFlag.indexOf("dscinout;") != -1) {
  743. //dsc입퇴실시간
  744. var nRow = ds_main_extninfo_dscinoutinfo.rowposition;
  745. var nurin = utlf_transEmptyToNull(ds_main_extninfo_dscinoutinfo.getColumn(nRow, "nurin"));
  746. var nurout = utlf_transEmptyToNull(ds_main_extninfo_dscinoutinfo.getColumn(nRow, "nurout"));
  747. //수술 입퇴실시간
  748. var oprin = utlf_transEmptyToNull(ds_main_extninfo_dscinoutinfo.getColumn(nRow, "oprin"));
  749. var oprout = utlf_transEmptyToNull(ds_main_extninfo_dscinoutinfo.getColumn(nRow, "oprout"));
  750. grup_base.textarea6.value = nurin;
  751. sDegnitemlevlcd = grup_base.textarea6.degnitemlevlcd;
  752. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018614
  753. ds_data_recitem.setColumn(nFindRow, "reccnts", nurin);//DSC 도착시간
  754. grup_base.textarea1.value = oprin;
  755. sDegnitemlevlcd = grup_base.textarea1.degnitemlevlcd;
  756. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018615
  757. ds_data_recitem.setColumn(nFindRow, "reccnts", oprin);//OR 도착시간
  758. grup_base.textarea2.value = oprout;
  759. sDegnitemlevlcd = grup_base.textarea2.degnitemlevlcd;
  760. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018616
  761. ds_data_recitem.setColumn(nFindRow, "reccnts", oprout);//DSC 회복시간
  762. grup_base.textarea3.value = nurout;
  763. sDegnitemlevlcd = grup_base.textarea3.degnitemlevlcd;
  764. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018617
  765. ds_data_recitem.setColumn(nFindRow, "reccnts", nurout);//DSC 퇴실시간
  766. }
  767. var sStatus = fGetFormRec("status");
  768. lf_setBasicInfo(sStatus); //시술 정보 기록데이터 세팅
  769. }
  770. }
  771. function cf_TRMMR01302(sSvcId, nErrorCode, sErrorMsg) {
  772. arErrorCode.push(sSvcId, nErrorCode);
  773. if(nErrorCode < 0) return;
  774. dsf_setDefaultVal(ds_main_extninfo_recitem, "recitemno:'',degnitemno:'',supdegnitemno:''");
  775. dsf_setTypeFormat(ds_main_extninfo_recitem, "recitemno:INT^degnitemno:INT^supdegnitemno:INT");
  776. }
  777. /****************************************************************************************
  778. * Function : makeDrNames_MMR00901
  779. * Description : 의사명 노드리스트 세팅
  780. * retrun type :
  781. ****************************************************************************************/
  782. function makeDrNames_MMR00901(arr) {
  783. var buf = "";
  784. for (var i=0; i<arr.length; i++) {
  785. var nm = ds_main_extninfo_oprinfo.getColumn(0, arr[i]);
  786. if (utlf_isNull(nm)) {
  787. break;
  788. } else {
  789. buf += nm;
  790. if (i<arr.length-1 && !utlf_isNull(ds_main_extninfo_oprinfo.getColumn(0, arr[i+1]))) {
  791. buf += ", ";
  792. }
  793. }
  794. }
  795. return buf;
  796. }
  797. /****************************************************************************************
  798. * Function : fInitAnstTypeCtrl_SMMMR00901
  799. * Description : 수술연동관련 컨트롤 바인딩 초기화
  800. * 마취종류(주/부) 바인딩
  801. * retrun type :
  802. ****************************************************************************************/
  803. function fInitAnstTypeCtrl_SMMMR00901() {
  804. var anstmthdcd = "";
  805. var mcdnm = "";
  806. var anstmthdcdsub = "";
  807. var scdnm = "";
  808. var node = "";
  809. //주마취
  810. var nRow = ds_main_extninfo_oprinfo.rowposition;
  811. anstmthdcd = ds_main_extninfo_oprinfo.getColumn(nRow, "anstmthdcd");
  812. mcdnm = ds_main_extninfo_oprinfo.getColumn(nRow, "anstmthdnm");
  813. if(parent.fGetFormRec("status") == "U"){
  814. //jw.choe U일 경우 상위 parent.ds_data_recitem 을 바라본다.
  815. /*
  816. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0015528']");
  817. if (node != null) {
  818. anstmthdcd = node.getXPathString("rectermcd");
  819. mcdnm = node.getXPathString("rectermnm");
  820. }
  821. */
  822. var sDegnitemlevlcd = grup_base.ipt_mcdnm.degnitemlevlcd; //0000248.0015528
  823. if( !utlf_isNull(parent.ds_data_recitem.lookup("degnitemlevlcd", sDegnitemlevlcd, "rectermcd")) ){
  824. var nFindRow = parent.ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  825. anstmthdcd = parent.ds_data_recitem.getColumn(nFindRow, "rectermcd");
  826. mcdnm = parent.ds_data_recitem.getColumn(nFindRow, "rectermnm");
  827. }
  828. }
  829. //부마취
  830. anstmthdcdsub = ds_main_extninfo_oprinfo.getColumn(nRow, "anstmthdcdsub");
  831. scdnm = ds_main_extninfo_oprinfo.getColumn(nRow, "anstmthdcdsubnm");
  832. if(parent.fGetFormRec("status") == "U"){
  833. //jw.choe U일 경우 상위 parent.ds_data_recitem 을 바라본다.
  834. /*
  835. node = model.instance1.selectSingleNode(gPageInfo.recItemRef2+"[degnitemlevlcd='0000248.0008458']");
  836. if (node != null) {
  837. anstmthdcdsub = node.getXPathString("rectermcd");
  838. scdnm = node.getXPathString("rectermnm");
  839. }
  840. */
  841. var sDegnitemlevlcd = grup_base.ipt_scdnm.degnitemlevlcd; //0000248.0008458
  842. if( !utlf_isNull(parent.ds_data_recitem.lookup("degnitemlevlcd", sDegnitemlevlcd, "rectermcd")) ){
  843. var nFindRow = parent.ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  844. anstmthdcdsub = parent.ds_data_recitem.getColumn(nFindRow, "rectermcd");
  845. scdnm = parent.ds_data_recitem.getColumn(nFindRow, "rectermnm");
  846. }
  847. }
  848. //2010.01.18 dhkim - 마취바인딩 무조건 rectermcd, rectermnm으로 변경
  849. if(utlf_isNull(anstmthdcd)){
  850. anstmthdcd = "-";
  851. }
  852. if(utlf_isNull(anstmthdcdsub)){
  853. anstmthdcdsub = "-";
  854. }
  855. //주마취
  856. grup_base.ipt_mcdnm.value = mcdnm;
  857. var sDegnitemlevlcd = grup_base.ipt_mcdnm.degnitemlevlcd;
  858. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  859. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcd);
  860. ds_data_recitem.setColumn(nFindRow, "rectermnm", mcdnm);
  861. //부마취
  862. grup_base.ipt_scdnm.value = scdnm;
  863. var sDegnitemlevlcd = grup_base.ipt_scdnm.degnitemlevlcd;
  864. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  865. ds_data_recitem.setColumn(nFindRow, "rectermcd", anstmthdcdsub);
  866. ds_data_recitem.setColumn(nFindRow, "rectermnm", scdnm);
  867. }
  868. /****************************************************************************************
  869. * Function : fGetNursHardCdInfo_MMR00901
  870. * Description : 마취과코드조회(간호공통테이블에서조회)
  871. * retrun type :
  872. ****************************************************************************************/
  873. function fGetNursHardCdInfo_MMR00901(pCode, pDate){
  874. var sSendDsNm = dsf_createDsRow("ds_send_mmr00901", [{col: "cdgrupid", type:"string", size:256, val:pCode}
  875. , {col: "srchdd", type:"string", size:256, val:pDate}]);
  876. var objSendDS:Dataset = new Dataset;
  877. objSendDS = this.objects[sSendDsNm];
  878. var sRtnDsNm = dsf_createDs("ds_code_mmr00901", [{col: "cdgrupid", type:"string", size:256}
  879. , {col: "cdid", type:"string", size:256}
  880. , {col: "cdnm", type:"string", size:256}
  881. , {col: "grupdetldesc", type:"string", size:256}
  882. , {col: "supcdid", type:"string", size:256}]);
  883. var objRtnDS:Dataset = new Dataset;
  884. objRtnDS = this.objects[sRtnDsNm];
  885. var oParam = {};
  886. oParam.id = "TRMMR00902";
  887. oParam.service = "wardcareapp.WardCareMngt";
  888. oParam.method = "reqGetNursHardCdInfo";
  889. oParam.inds = "req="+sSendDsNm;
  890. oParam.outds = sRtnDsNm+"=codelist";
  891. oParam.async = false;
  892. oParam.progress = false;
  893. oParam.callback = "cf_TRMMR00902";
  894. tranf_submit(oParam);
  895. }
  896. function cf_TRMMR00902(sSvcId, nErrorCode, sErrorMsg) {
  897. if(nErrorCode < 0) return;
  898. }
  899. /****************************************************************************************
  900. * Function : fChkPreSave
  901. * Description : 2010.01.25 dhkim - 추가) 저장전 체크 로직
  902. * retrun type :
  903. ****************************************************************************************/
  904. function fChkPreSave()
  905. {
  906. }
  907. /****************************************************************************************
  908. * Function : lf_initForm
  909. * Description : fOnLoadComplete 완료 시 실행되는 부분
  910. * retrun type :
  911. ****************************************************************************************/
  912. function lf_initForm(){
  913. if (parent.fGetFormRec("status") == "C")
  914. {
  915. fClearComnFormData();
  916. }
  917. if (parent.fGetFormRec("status") == "C")
  918. {
  919. var node = sysf_getGlobalVariable("paminfo");
  920. if(!utlf_isNull(node))
  921. {
  922. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  923. var objPamDs:Dataset = new Dataset;
  924. objPamDs = this.objects[sPamDsNm];
  925. dsf_setCSVToDs("ds_main_paminfo", node);
  926. var ordtype = objPamDs.getColumn(0, "ioflag");
  927. if(ordtype != "D")
  928. {
  929. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  930. grup_base.enable = false;
  931. fBtnDisEnable(true);
  932. return;
  933. }
  934. else
  935. {
  936. if(utlf_isNull(oprsrvno))
  937. {
  938. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  939. grup_base.enable = false;
  940. fBtnDisEnable(true);
  941. return;
  942. } else {
  943. fBtnDisEnable(false);
  944. }
  945. }
  946. }
  947. parent.fSetFormRec("extnflag", "opr");
  948. parent.fSetFormRec("oprsrvno", oprsrvno);
  949. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  950. SetDefFocusIVW(gItemCdsTextArea);
  951. }
  952. if(parent.fGetFormRec("status") == "U"){
  953. //jw.choe 주석처리
  954. /*
  955. //마취정보세팅
  956. var anstmthdcd = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermcd");
  957. var mcdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iMcdnm + "']/rectermnm");
  958. var anstmthdcdsub = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermcd");
  959. var scdnm = parent.model.getValue("/root/main/recinfo/recitem[degnitemlevlcd='" + iScdnm + "']/rectermnm");
  960. var iptMObj = document.controls("ipt_mcdnm");
  961. var iptSObj = document.controls("ipt_scdnm");
  962. if (anstmthdcd != "" && mcdnm != "")
  963. {
  964. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/rectermnm";
  965. }
  966. else
  967. {
  968. iptMObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iMcdnm + "']/reccnts";
  969. }
  970. if (anstmthdcdsub != "" && scdnm != "")
  971. {
  972. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/rectermnm";
  973. }
  974. else
  975. {
  976. iptSObj.attribute("ref") = pageInfo.recItemRef + "[degnitemlevlcd='" + iScdnm + "']/reccnts";
  977. }
  978. iptMObj.refresh();
  979. iptSObj.refresh();
  980. */
  981. //버튼세팅
  982. if(parent.fCheckSaveDept()){
  983. grup_base.enable = true;
  984. fBtnDisEnable(false);
  985. }
  986. else{
  987. sysf_messageBox("타과에서 작성된 DSC기록은 수정", "E001");
  988. grup_base.enable = false;
  989. fBtnDisEnable(true);
  990. }
  991. }
  992. }
  993. ]]></Script>