SMMMR00904.xjs 44 KB

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