SMMMR00903.xjs 44 KB

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