SMMMR00900.xjs 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[//부분서식의 부모아이템 배열
  3. var arrItemCds = new Array( "0000960003" //진단명
  4. , "0000515001" //수술일
  5. , "0000980001" //집도의
  6. , "0007992001" //마취의
  7. , "0016684001"
  8. // , "0007004001" //수술방 //0016684.0007004
  9. // , "0005330001" //수술부위피부준비 //0016684.0005330
  10. , "0000509001" //수술명
  11. , "0000512001" //수술소견및절차
  12. , "0000098001" //투약정보
  13. , "0001052001" //처치정보
  14. , "0000053001" //특이사항
  15. , "0018614003" //DSC도착시간
  16. , "0018615002" //OR 도착시간
  17. , "0018616002" //DSC회복시간
  18. , "0018617002" //DSC퇴실시간
  19. );
  20. var gItemCds = new Array("0000960003", "0000509001", "0000512001", "0000098001", "0001052001", "0000053001");
  21. var gItemCdsTextArea = new Array("0000512001");
  22. var gItemCdsXRWArea = new Array("0000960003", "0000509001");
  23. var gItemCdsExpand = new Array("0000509001", "0000512001", "0000098001", "0001052001", "0000053001");
  24. //부분서식의 개수만큼 일단 '0'으로 채운다.
  25. var iOpdate = grup_base.ipt_opdate.degnitemno;
  26. var cOdt = grup_base.cmb_odt.degnitemno;
  27. var cSdt = grup_base.cmb_sdt.degnitemno;
  28. var cOproom = grup_base.cmb_oproom.degnitemno;
  29. var oprsrvno = "";
  30. /**
  31. * @desc : 확장버튼(이미지,가계도,추가기록)을 기록여부에 따라 표시를 위한 버튼목록
  32. * @id :
  33. * @authur : 안치원
  34. * @history : 2009.09.09 신규 안치원 ACW_090909A
  35. */
  36. var gExtnBtnIds = new Array("btn_imge_0000512001", "btn_etcrec_0000512001");
  37. var lodedYn = false;
  38. /****************************************************************************************
  39. * Function : fClearComnFormData
  40. * Description : 서식 데이터 Clear, 인터페이스 입력값 조회 입력
  41. * retrun type :
  42. ****************************************************************************************/
  43. function fClearComnFormData()
  44. {
  45. if (!utlf_isNull(gMaxSectionID))
  46. {
  47. frmf_inputEnterKey( "ComnFormObj.lbl_"+gMaxSectionID, "onclick", new ClickEventInfo);
  48. }
  49. if( lodedYn == true )
  50. ClearComnFormData(gItemCds);
  51. fInitialize();
  52. var rtn = fGetdiagFormOprsrvno(oprsrvno); //수술예약번호로 진단명 조회
  53. fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  54. if(!rtn)
  55. {
  56. fBtnDisEnable(true);
  57. return "oprfalse";
  58. } else {
  59. }
  60. fGetIfCnts();
  61. //포커스 처리
  62. SetDefFocusIVW(gItemCdsTextArea);
  63. parent.fSetFormRec("extnflag", "opr");
  64. parent.fSetFormRec("oprsrvno", oprsrvno);
  65. }
  66. /****************************************************************************************
  67. * Function : fLoadData
  68. * Description : 기록데이터 조회
  69. * retrun type :
  70. ****************************************************************************************/
  71. function fLoadData()
  72. {
  73. fInitialize();
  74. lf_setRecData(arrItemCds);
  75. var sStatus = fGetFormRec("status");
  76. lf_setBasicInfo(sStatus);
  77. /*
  78. //Program 서식 데이터 조회반영
  79. InitPgmFormData();
  80. this.recRef2 = "/root/hidden/recinfo"
  81. //부분서식 데이터 조회 반영
  82. InitUnitFormData(gItemCds);
  83. */
  84. parent.gSubmitID = TX_SUBMIT_EXTN_FORM;
  85. parent.fSetFormRec("extnflag", "opr");
  86. }
  87. /****************************************************************************************
  88. * Function : fInitialize
  89. * Description : 화면 초기화
  90. * retrun type :
  91. * History :
  92. ****************************************************************************************/
  93. function fInitialize()
  94. {
  95. var operation = sysf_getGlobalVariable("operation").split("▩")[1];
  96. if(!utlf_isNull(operation)){
  97. oprsrvno = operation.split("▦")[0];
  98. perfdeptcd = operation.split("▦")[10];
  99. }
  100. if (parent.fGetFormRec("status") == "C")
  101. {
  102. parent.fSetFormRec("extnflag", "opr");
  103. parent.fSetFormRec("oprsrvno", oprsrvno);
  104. }
  105. var uInfo = sysf_getUserInfos();
  106. uInfo = uInfo.split("|");
  107. //초기조건 설정
  108. lf_mmbfGetUserComboList("ds_init_cmb_odt", uInfo[8], "0330", "", "", ""); //집도의과 의사 조회
  109. lf_mmbfGetUserComboList("ds_init_cmb_sdt", "2090000000", "0330", "", "", "");//마취통증의학과 의사 조회
  110. reqOpRoomList(utlf_getCurrentDate(), "ds_init_cmb_oproom", "total"); //수술실 조회
  111. gTermViewTopPos = 29;
  112. gTermViewHei = 152;
  113. gTermViewItems = gItemCdsXRWArea;
  114. }
  115. /**
  116. * @desc : 의사 조회에 따른 reccnts셋팅(tur)
  117. * @
  118. * @param :
  119. * @return :
  120. * @authur : 박종훈
  121. */
  122. function fChngDocts(degnitemno1, degnitemno2, degnitemno3)
  123. {
  124. //집도의
  125. var sDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd");
  126. var sDrnm = model.getValue("/root/init/drlist" + degnitemno1 + "/usercombo[userid='" + sDrid + "']/usernm");
  127. if (sDrnm == "")
  128. {
  129. sDrnm = "";
  130. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermcd", "");
  131. }
  132. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno1 + "']/rectermnm", sDrnm);
  133. //마취의
  134. var sanstDrid = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd");
  135. var sanstDrnm = model.getValue("/root/init/drlist" + degnitemno2 + "/usercombo[userid='" + sanstDrid + "']/usernm");
  136. if (sanstDrnm == "")
  137. {
  138. sanstDrnm = "";
  139. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermcd", "");
  140. }
  141. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno2 + "']/rectermnm", sanstDrnm);
  142. //수술방
  143. var sRoomcd = model.getValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd");
  144. var sRoomnm = model.getValue("/root/init/oproom/oproomlist[oproomcd='"+sRoomcd+"']/oproomnm");
  145. if (sRoomnm == "")
  146. {
  147. sRoomnm = "";
  148. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermcd", "");
  149. }
  150. model.setValue("/root/main/recinfo/recitem[degnitemno='" + degnitemno3 + "']/rectermnm", sRoomnm);
  151. model.refresh();
  152. }
  153. /****************************************************************************************
  154. * Function : fChngDoct
  155. * Description : 의사 선택에 따른 reccnts셋팅(tur)
  156. * retrun type :
  157. * History :
  158. ****************************************************************************************/
  159. function fChngDoct(obj:Combo, e:ItemChangeEventInfo)
  160. {
  161. var sDrnm, sDrcd;
  162. var sDegnitemlevlcd = obj.degnitemlevlcd;
  163. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  164. if(nFindRow == -1)
  165. {
  166. nFindRow = ds_data_recitem.addRow();
  167. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  168. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  169. }
  170. sDrnm = e.posttext;
  171. sDrcd = e.postvalue;
  172. if( utlf_isNull(e.posttext) ){
  173. sDrnm = "";
  174. sDrcd = "";
  175. obj.value = "";
  176. }
  177. ds_data_recitem.setColumn(nFindRow, "rectermcd", sDrcd);
  178. ds_data_recitem.setColumn(nFindRow, "rectermnm", sDrnm);
  179. }
  180. /****************************************************************************************
  181. * Function : fChngOproom
  182. * Description : 수술실 선택에 따른 reccnts셋팅(tur)
  183. * retrun type :
  184. * History :
  185. ****************************************************************************************/
  186. function fChngOproom(obj:Combo, e:ItemChangeEventInfo)
  187. {
  188. var sRoomnm, sRoomcd;
  189. var sDegnitemlevlcd = obj.degnitemlevlcd;
  190. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  191. if(nFindRow == -1)
  192. {
  193. nFindRow = ds_data_recitem.addRow();
  194. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  195. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  196. }
  197. sRoomnm = e.posttext;
  198. sRoomcd = e.postvalue;
  199. if( utlf_isNull(e.posttext) ){
  200. sRoomnm = "";
  201. sRoomcd = "";
  202. obj.value = "";
  203. }
  204. ds_data_recitem.setColumn(nFindRow, "rectermcd", sRoomcd);
  205. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRoomnm);
  206. }
  207. /****************************************************************************************
  208. * Function : fRadioYN
  209. * Description : 라디오버튼 선택에 따른 reccnts셋팅
  210. ****************************************************************************************/
  211. function fRadioYN(obj:Radio, e:ItemChangeEventInfo)
  212. {
  213. var sDegnitemlevlcd = obj.degnitemlevlcd;
  214. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  215. if(nFindRow == -1)
  216. {
  217. nFindRow = ds_data_recitem.addRow();
  218. var insRow = ds_temp_mainrecitem.findRow("degnitemlevlcd", sDegnitemlevlcd);
  219. ds_data_recitem.copyRow(nFindRow, ds_temp_mainrecitem, insRow);
  220. }
  221. var sRectermnm = parent.ds_data_vallist.getColumn(parent.ds_data_vallist.findRow("valcd", e.postvalue), "valitemnm");
  222. if( utlf_isNull(sRectermnm) ) sRectermnm = e.posttext;
  223. ds_data_recitem.setColumn(nFindRow, "rectermcd", e.postvalue);
  224. ds_data_recitem.setColumn(nFindRow, "rectermnm", sRectermnm);
  225. }
  226. /**
  227. * @desc : 기록 인스턴스 연결
  228. * @
  229. * @param :
  230. * @return :
  231. * @authur : 박종훈
  232. */
  233. function fSetRecItemValue(reciteminfo)
  234. {
  235. return SetCommMediFormValue(gItemCds, reciteminfo);
  236. }
  237. /****************************************************************************************
  238. * Function : fGetdiagFormOprsrvno
  239. * Description : 수술예약번호를 통한 진단명, 마취종류 조회(tur)
  240. ****************************************************************************************/
  241. function fGetdiagFormOprsrvno(oprsrvno)
  242. {
  243. if(!utlf_isNull(oprsrvno)){
  244. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"oprsrvno", type:"string", size:256, val:oprsrvno}]);
  245. var objSendDS:Dataset = new Dataset;
  246. objSendDS = this.objects[sSendDsNm];
  247. var sRtnDsNm = dsf_createDs("ds_data_anstlist", [{col:"anstmthdcd", type:"string", size:256}
  248. , {col:"mcdnm", type:"string", size:256}
  249. , {col:"anstmthdcdsub", type:"string", size:256}
  250. , {col:"scdnm", type:"string", size:256}]);
  251. var objRtnDS:Dataset = new Dataset;
  252. objRtnDS = this.objects[sRtnDsNm];
  253. var oParam = {};
  254. oParam.id = "TRMRF04001";
  255. oParam.service = "formmngtapp.FormIfMngt";
  256. oParam.method = "reqGetDiagByOprsrvno";
  257. oParam.inds = "req="+sSendDsNm;
  258. oParam.outds = "ds_data_diagcdlist=diagcdlist "+sRtnfDsNm+"=anstlist";
  259. oParam.async = false;
  260. oParam.progress = false;
  261. oParam.callback = "cf_TRMRF04001";
  262. tranf_submit(oParam);
  263. //copyNodeset("/root/main/diaginfo/diagcdlist", "/root/main/diaginfo/diagcdlist", "replace", ivw_0000960003.model, model);
  264. if( lodedYn == true )
  265. grup_base.ivw_0000960003.fSetDiagNmInstance();
  266. return true;
  267. }else{
  268. return false;
  269. }
  270. }
  271. function cf_TRMRF04001(sSvcId, nErrorCode, sErrorMsg) {
  272. if(nErrorCode < 0) return;
  273. }
  274. /****************************************************************************************
  275. * Function : fSrchOprPerfDrlist
  276. * Description : 수술명, 집도의 조회(tur)
  277. ****************************************************************************************/
  278. function fSrchOprPerfDrlist(oprsrvno)
  279. {
  280. var node = sysf_getGlobalVariable("paminfo");
  281. if(!utlf_isNull(node)){
  282. var sPamDsNm = dsf_createDs("ds_main_paminfo", [{col:"pid", type:"string", size:256}]);
  283. var objPamDs:Dataset = new Dataset;
  284. objPamDs = this.objects[sPamDsNm];
  285. dsf_setCSVToDs("ds_main_paminfo", node);
  286. var orddd = "";
  287. if( objPamDs.getColumn(0, "ioflag") == "O" ){
  288. orddd = objPamDs.getColumn(0, "orddd");
  289. }else{
  290. orddd = objPamDs.getColumn(0, "indd");
  291. }
  292. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"pid", type:"string", size:256, val:objPamDs.getColumn(0, "pid")}
  293. , {col:"cretno", type:"INT", size:256, val:objPamDs.getColumn(0, "cretno")}
  294. , {col:"orddd", type:"string", size:256, val:orddd}
  295. , {col:"oprsrvno", type:"string", size:256, val:oprsrvno}
  296. , {col:"srchmode", type:"string", size:256, val:"rec"}]);
  297. var objSendDS:Dataset = new Dataset;
  298. objSendDS = this.objects[sSendDsNm];
  299. //jw.choe 진단명 노드 초기화부분 삭제
  300. //model.removeNodeset("/root/main/recinfo/recitem[degnitemno = '1']");
  301. var oParam = {};
  302. oParam.id = "TRMRF04301";
  303. oParam.service = "formmngtapp.FormIfMngt";
  304. oParam.method = "reqGetOprList";
  305. oParam.inds = "req="+sSendDsNm;
  306. oParam.outds = "ds_tmpop_selectoplist=selectoplist";
  307. oParam.async = true;
  308. oParam.progress = false;
  309. oParam.callback = "cf_TRMRF04301";
  310. tranf_submit(oParam);
  311. var oParam = {};
  312. oParam.id = "TRMRF04302";
  313. oParam.service = "formmngtapp.FormIfMngt";
  314. oParam.method = "reqGetPerfDrid";
  315. oParam.inds = "req="+sSendDsNm;
  316. oParam.outds = "ds_tmp_perfdr=perfdr";
  317. oParam.async = true;
  318. oParam.progress = false;
  319. oParam.callback = "cf_TRMRF04302";
  320. tranf_submit(oParam);
  321. dsf_deleteDs(sPamDsNm);
  322. }
  323. }
  324. function cf_TRMRF04301(sSvcId, nErrorCode, sErrorMsg) {
  325. if(nErrorCode < 0) return;
  326. //수술명 설정
  327. if( !grup_base.ivw_0000509001.isValidObject("ds_tmpop_selectoplist") )
  328. grup_base.ivw_0000509001.dsf_createDs("ds_tmpop_selectoplist");
  329. grup_base.ivw_0000509001.ds_tmpop_selectoplist.copyData(ds_tmpop_selectoplist);
  330. grup_base.ivw_0000509001.fAfterSrch();
  331. }
  332. function cf_TRMRF04302(sSvcId, nErrorCode, sErrorMsg) {
  333. if(nErrorCode < 0) return;
  334. var nRow = ds_tmp_perfdr.rowposition;
  335. var perfdrid = ds_tmp_perfdr.getColumn(nRow, "perfdrid");
  336. var perfdrnm = ds_tmp_perfdr.getColumn(nRow, "perfdrnm");
  337. var anstdrid = ds_tmp_perfdr.getColumn(nRow, "anstdrid");
  338. var anstdrnm = ds_init_cmb_sdt.lookup("userid", anstdrid, "usernm");
  339. var oproomcd = ds_tmp_perfdr.getColumn(nRow, "oproomcd");
  340. var oproomnm = ds_init_cmb_oproom.lookup("oproomcd", oproomcd, "oproomnm");
  341. var opfromdt = ds_tmp_perfdr.getColumn(nRow, "opfromdt");
  342. var opstdd = opfromdt.substring(0, 8);
  343. var opsttm = opfromdt.substring(8, 12);
  344. if (utlf_isNull(opsttm) || opsttm.length < 4)
  345. {
  346. opsttm = utlf_getCurrentTime().substr(0, 4);
  347. }
  348. //2010.02.03 dhkim - 수술기록 있을때만 수술일자로 일자 세팅
  349. if(!utlf_isNull(opstdd) && opstdd.length == 8){
  350. parent.fSetFormRec("formrecdd" , opstdd);
  351. parent.fSetFormRec("formrechm" , opsttm);
  352. }
  353. grup_base.ipt_opdate.value = opstdd;
  354. var sDegnitemlevlcd = grup_base.ipt_opdate.degnitemlevlcd;
  355. var nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0000515
  356. ds_data_recitem.setColumn(nFindRow, "reccnts", opstdd); //수술일
  357. //집도의
  358. if( utlf_isNull(perfdrnm) ){
  359. perfdrid = "";
  360. perfdrnm = "";
  361. }
  362. grup_base.cmb_odt.value = perfdrid;
  363. sDegnitemlevlcd = grup_base.cmb_odt.degnitemlevlcd;
  364. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd); //0000980
  365. ds_data_recitem.setColumn(nFindRow, "rectermcd" , perfdrid);
  366. ds_data_recitem.setColumn(nFindRow, "rectermnm" , perfdrnm);
  367. //마취의
  368. if( utlf_isNull(anstdrnm) ){
  369. anstdrid = "";
  370. anstdrnm = "";
  371. }
  372. grup_base.cmb_sdt.value = anstdrid;
  373. sDegnitemlevlcd = grup_base.cmb_sdt.degnitemlevlcd;
  374. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd); //0007992
  375. ds_data_recitem.setColumn(nFindRow, "rectermcd" , anstdrid);
  376. ds_data_recitem.setColumn(nFindRow, "rectermnm" , anstdrnm);
  377. // 수술방
  378. if( utlf_isNull(oproomnm) ){
  379. oproomcd = "";
  380. oproomnm = "";
  381. }
  382. grup_base.cmb_oproom.value = oproomcd;
  383. sDegnitemlevlcd = grup_base.cmb_oproom.degnitemlevlcd;
  384. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", degnitemlevlcd); //0016684.0007004
  385. ds_data_recitem.setColumn(nFindRow, "rectermcd" , oproomcd);
  386. ds_data_recitem.setColumn(nFindRow, "rectermnm" , oproomnm);
  387. //fChngDocts(cOdt, cSdt, cOproom);
  388. }
  389. /****************************************************************************************
  390. * Function : fSetSizeFormDiag
  391. * Description : 진단명 사이즈 조절(tur)
  392. * retrun type :
  393. ****************************************************************************************/
  394. function fSetSizeFormDiag()
  395. {
  396. grup_base.ivw_0000960003.fInitPage(false, parseInt(grup_base.ivw_0000960003.position.height), parseInt(grup_base.ivw_0000960003.position.width), "ivw_0000960003", "수술전 진단명");
  397. }
  398. /****************************************************************************************
  399. * Function : fSetSizeFormOpr
  400. * Description : 서식 수술명 사이즈 조절(tur)
  401. * retrun type :
  402. ****************************************************************************************/
  403. function fSetSizeFormOpr()
  404. {
  405. grup_base.ivw_0000509001.fInitPage(false, parseInt(grup_base.ivw_0000509001.position.height), parseInt(grup_base.ivw_0000509001.position.width), "ivw_0000509001");
  406. }
  407. /*****************************************************************************
  408. 튜닝
  409. ******************************************************************************/
  410. var gLoadFormCnts = 0;
  411. /****************************************************************************************
  412. * Function : fFormReady()
  413. * Description : 화면 로딩후 초기화 작업 수행
  414. * retrun type :
  415. ****************************************************************************************/
  416. function fFormReady()
  417. {
  418. this.ComnFormObj = this.grup_base;
  419. dsf_createDsRow("ds_temp_mainrecitem",
  420. [{col:"formxrw", val:""}]);
  421. // 공통서식의 초기 recitem 정보. 기록 데이터 조합시 사용
  422. ds_temp_mainrecitem.assign(ds_data_recitem);
  423. lf_setSectionSize(gItemCds, "grup_base.tar_0000509001", "grup_base.tar_0000053001", 492);
  424. //20080702 박종훈 추가
  425. InitBtnImge(gItemCdsTextArea);
  426. // InitBtnComn(gItemCds);
  427. InitBtnEtcRec(gItemCdsTextArea);
  428. // dispOnLoadComplete(COMN_FORM);
  429. // lf_checkUnitForm(gItemCds); // 부분서식 로딩
  430. lf_AllLoadUnitFormExpand(gItemCds); // 전체 로드
  431. fInitialize();
  432. lf_initForm(); //fOnLoadComplete
  433. //2010.01.21
  434. // initCmbExtnList(gItemCds);
  435. lf_setRecData(arrItemCds);
  436. }
  437. /****************************************************************************************
  438. * Function : fLoadUnitForm()
  439. * Description : 부분서식 로딩
  440. * retrun type :
  441. ****************************************************************************************/
  442. function fLoadUnitForm()
  443. {
  444. initSection(gItemCds);
  445. }
  446. var diagcnt = 0;
  447. /****************************************************************************************
  448. * Function : fOnLoadComplete()
  449. * Description : 부분서식 로딩후 후처리
  450. * retrun type :
  451. ****************************************************************************************/
  452. function fOnLoadComplete()
  453. {
  454. var rtn = false;
  455. var curLoadFormCd = frmf_getParameter("loadformcd");
  456. frmf_setParameter("loadformcd", "");
  457. var nFindRow = ds_data_unitformmast.findRowExpr("formcd=='" + curLoadFormCd + "' && loaded != 'true'");
  458. var fstLevlItemCd = ds_data_unitformmast.getColumn(nFindRow, "orgsupdegnitemcd");
  459. var ivwObj = ComnFormObj.components["ivw_" + fstLevlItemCd];
  460. var unitformload = ds_data_unitformmast.getColumn(nFindRow, "loaded");
  461. if(!utlf_isNull(ivwObj) && unitformload != "true")
  462. {
  463. //setFstLevlItemCd(ivwObj, curLoadFormCd);
  464. var nRow = ds_data_unitformmast.findRow("formcd", curLoadFormCd);
  465. ds_data_unitformmast.setColumn(nRow, "loaded", "true");
  466. }
  467. //수술전진단명 부분서식 로딩후 처리
  468. if(fstLevlItemCd == '0000960003')
  469. {
  470. fSetSizeFormDiag();
  471. rtn = fGetdiagFormOprsrvno(oprsrvno); //수술예약번호로 진단명 조회
  472. }
  473. //수술명 부분서식 로딩후 처리
  474. if(fstLevlItemCd == '0000509001')
  475. {
  476. dispOnLoadComplete(UNIT_FORM);
  477. }
  478. gLoadFormCnts++;
  479. utlf_addLog("@@@@@ gItemCds.length : " + gItemCds.length + " gLoadFormCnts : " + gLoadFormCnts );
  480. if(gItemCds.length == gLoadFormCnts)
  481. {
  482. //fSetSizeFormOpr();
  483. if (parent.fGetFormRec("status") == "C")
  484. {
  485. var ordtype = ds_data_paminfo.getColumn(0, "ioflag");
  486. if(ordtype != "D")
  487. {
  488. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  489. grup_base.enable = false;
  490. fBtnDisEnable(true);
  491. return;
  492. }
  493. else
  494. {
  495. if(utlf_isNull(oprsrvno))
  496. {
  497. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  498. grup_base.enable = false;
  499. fBtnDisEnable(true);
  500. return;
  501. } else {
  502. fBtnDisEnable(false);
  503. }
  504. }
  505. fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  506. parent.fSetFormRec("extnflag", "opr");
  507. parent.fSetFormRec("oprsrvno", oprsrvno);
  508. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  509. SetDefFocusIVW(gItemCdsTextArea);
  510. fGetIfCnts(); //인터페이스 항목 조회
  511. }
  512. //2009-11-24 오후 3:34:41 강지훈 추가
  513. if(parent.fGetFormRec("status") == "U"){
  514. if(parent.fCheckSaveDept()){
  515. grup_base.enable = true;
  516. fBtnDisEnable(false);
  517. }
  518. else{
  519. sysf_messageBox("타과에서 작성된 DSC기록은 수정", "E001");
  520. grup_base.enable = false;
  521. fBtnDisEnable(true);
  522. }
  523. }
  524. dispOnLoadComplete(UNIT_FORM);
  525. }
  526. if(!rtn)
  527. {
  528. return "oprfalse";
  529. } else {
  530. }
  531. }
  532. /****************************************************************************************
  533. * Function : fGetDefData()
  534. * Description : 동일 서식이 떠있을 경우 내부 인스턴스 로딩 후 디폴트 조회내용 조회
  535. * retrun type :
  536. ****************************************************************************************/
  537. function fGetDefData()
  538. {
  539. fSetSizeFormOpr();
  540. operation = sysf_getGlobalVariable("operation").split("▩")[1];
  541. if(!utlf_isNull(operation)){
  542. oprsrvno = operation.split("▦")[0];
  543. perfdeptcd = operation.split("▦")[10];
  544. }
  545. if (parent.fGetFormRec("status") == "C")
  546. {
  547. var ordtype = ds_data_paminfo.getColumn(0, "ioflag");
  548. if(ordtype != "D")
  549. {
  550. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  551. grup_base.enable = false;
  552. fBtnDisEnable(true);
  553. return;
  554. }
  555. else
  556. {
  557. if(utlf_isNull(oprsrvno))
  558. {
  559. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  560. grup_base.enable = false;
  561. fBtnDisEnable(true);
  562. return;
  563. } else {
  564. fBtnDisEnable(false);
  565. }
  566. }
  567. fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  568. parent.fSetFormRec("extnflag", "opr");
  569. parent.fSetFormRec("oprsrvno", oprsrvno);
  570. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  571. SetDefFocusIVW(gItemCdsTextArea);
  572. fGetIfCnts(); //인터페이스 항목 조회
  573. }
  574. dispOnLoadComplete(UNIT_FORM);
  575. }
  576. /****************************************************************************************
  577. * Function : fBtnDisEnable()
  578. * Description : 저장버튼 Disable
  579. * retrun type :
  580. ****************************************************************************************/
  581. function fBtnDisEnable(flag)
  582. {
  583. if(flag)
  584. {
  585. parent.fDisalbeSave(flag);
  586. }
  587. else
  588. {
  589. parent.fDisalbeSave(flag);
  590. }
  591. }
  592. /****************************************************************************************
  593. * Function : fGetIfCnts
  594. * Description : 서식기록 인터페이스 항목 조회
  595. * retrun type :
  596. ****************************************************************************************/
  597. function fGetIfCnts()
  598. {
  599. var pid = ds_main_paminfo.getColumn(0, "pid");
  600. var ioflag = ds_main_paminfo.getColumn(0, "ioflag");
  601. var orddd = "";
  602. if (ioflag == "O" || ioflag == "S")
  603. {
  604. orddd = ds_main_paminfo.getColumn(0, "orddd");
  605. }
  606. else if (ioflag == "I" || ioflag == "E" || ioflag == "D")
  607. {
  608. orddd = ds_main_paminfo.getColumn(0, "indd");
  609. }
  610. var cretno= ds_main_paminfo.getColumn(0, "cretno");
  611. var sSendDsNm = dsf_createDsRow("ds_send", [{col:"pid", type:"string", size:256, val:pid}
  612. , {col:"orddd", type:"string", size:256, val:orddd}
  613. , {col:"cretno", type:"INT", size:256, val:cretno}
  614. , {col:"oprsrvno", type:"INT", size:256, val:oprsrvno}]);
  615. var objSendDS:Dataset = new Dataset;
  616. objSendDS = this.objects[sSendDsNm];
  617. var sRtnDsNm = dsf_createDs("ds_init_iflist", [{col:"opcmt", type:"string", size:256}
  618. , {col:"nurin", type:"string", size:256}
  619. , {col:"nurout", type:"string", size:256}
  620. , {col:"oprin", type:"string", size:256}
  621. , {col:"oprout", type:"string", size:256}
  622. , {col:"skinprep", type:"string", size:256}]);
  623. // var objRtnDS:Dataset = new Dataset;
  624. // objRtnDS = this.objects[sRtnDsNm];
  625. dsf_setTypeFormat(objSendDS, "cretno:INT^oprsrvno:INT");
  626. var oParam = {};
  627. oParam.id = "TRMMR00901";
  628. oParam.service = "medirecapp.ExtnMediRec";
  629. oParam.method = "reqGetDscRecIf";
  630. oParam.inds = "req="+sSendDsNm;
  631. oParam.outds = sRtnDsNm+"=iflist";
  632. oParam.async = false;
  633. oParam.progress = false;
  634. oParam.callback = "cf_TRMMR00901";
  635. tranf_submit(oParam);
  636. }
  637. function cf_TRMMR00901(sSvcId, nErrorCode, sErrorMsg) {
  638. if(nErrorCode < 0) return;
  639. var objRtnDS:Dataset = new Dataset;
  640. objRtnDS = this.objects["ds_init_iflist"];
  641. var opcmt = objRtnDS.getColumn(0, "opcmt");
  642. var nurin = utlf_transEmptyToNull(objRtnDS.getColumn(0, "nurin"));
  643. var nurout = utlf_transEmptyToNull(objRtnDS.getColumn(0, "nurout"));
  644. var oprin = utlf_transEmptyToNull(objRtnDS.getColumn(0, "oprin"));
  645. var oprout = utlf_transEmptyToNull(objRtnDS.getColumn(0, "oprout"));
  646. var skinprep = objRtnDS.getColumn(0, "skinprep");
  647. var skintermcd = "";
  648. var skintermnm = "";
  649. var sDegnitemlevlcd = "";
  650. var nFindRow = "";
  651. //수술부위 피부준비
  652. if (skinprep == "Y")
  653. {
  654. nFindRow = ds_data_vallist.findRow("valitemnm", "Yes");
  655. }
  656. else
  657. {
  658. nFindRow = ds_data_vallist.findRow("valitemnm", "No");
  659. }
  660. var skintermcd = ds_data_vallist.getColumn(nFindRow, "valcd");
  661. var skintermnm = ds_data_vallist.getColumn(nFindRow, "valitemnm");
  662. if(!utlf_isNull(skintermcd) && !utlf_isNull(skintermnm))
  663. {
  664. grup_base.radio1.value = skintermcd;
  665. sDegnitemlevlcd = grup_base.radio1.degnitemlevlcd;
  666. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0016684.0005330
  667. ds_data_recitem.setColumn(nFindRow, "rectermcd", skintermcd);
  668. ds_data_recitem.setColumn(nFindRow, "rectermnm", skintermnm);
  669. }
  670. //수술소견
  671. var nFindRow = grup_base.ivw_0000512001.ds_data_recitem.findRow("degnitemlevlcd", "0000146"); //0000512.0000146
  672. var degnitemkind = grup_base.ivw_0000512001.ds_data_recitem.getColumn(nFindRow, "degnitemkind");
  673. var degnitemno = grup_base.ivw_0000512001.ds_data_recitem.getColumn(nFindRow, "degnitemno");
  674. var objComp = grup_base.ivw_0000512001.components[degnitemkind + "_" + degnitemno];
  675. if( !utlf_isNull(objComp) ){
  676. objComp.value = opcmt;
  677. }
  678. grup_base.textarea6.value = nurin;
  679. sDegnitemlevlcd = grup_base.textarea6.degnitemlevlcd;
  680. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018614
  681. ds_data_recitem.setColumn(nFindRow, "reccnts", nurin);//DSC 도착시간
  682. grup_base.textarea1.value = oprin;
  683. sDegnitemlevlcd = grup_base.textarea1.degnitemlevlcd;
  684. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018615
  685. ds_data_recitem.setColumn(nFindRow, "reccnts", oprin);//OR 도착시간
  686. grup_base.textarea2.value = oprout;
  687. sDegnitemlevlcd = grup_base.textarea2.degnitemlevlcd;
  688. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018616
  689. ds_data_recitem.setColumn(nFindRow, "reccnts", oprout);//DSC 회복시간
  690. grup_base.textarea3.value = nurout;
  691. sDegnitemlevlcd = grup_base.textarea3.degnitemlevlcd;
  692. nFindRow = ds_data_recitem.findRow("degnitemlevlcd", sDegnitemlevlcd); //0018617
  693. ds_data_recitem.setColumn(nFindRow, "reccnts", nurout);//DSC 퇴실시간
  694. //투약, 처치정보 조회
  695. GetPatDrugPrcpList("0001113001", "0008539001");
  696. }
  697. /****************************************************************************************
  698. * Function : lf_initForm
  699. * Description : fOnLoadComplete 완료 시 실행되는 부분
  700. * retrun type :
  701. ****************************************************************************************/
  702. function lf_initForm(){
  703. fGetdiagFormOprsrvno(oprsrvno); //수술예약번호로 진단명 조회
  704. if (parent.fGetFormRec("status") == "C")
  705. {
  706. var ordtype = ds_data_paminfo.getColumn(0, "ioflag");
  707. if(ordtype != "D")
  708. {
  709. sysf_messageBox("해당환자는 DSC가 아닌", "I005");
  710. grup_base.enable = false;
  711. fBtnDisEnable(true);
  712. return;
  713. }
  714. else
  715. {
  716. if(utlf_isNull(oprsrvno))
  717. {
  718. sysf_messageBox("수술예약이 되지 않은 환자이거나 수술탭에서 선택하지 않은", "I005");
  719. grup_base.enable = false;
  720. fBtnDisEnable(true);
  721. return;
  722. } else {
  723. fBtnDisEnable(false);
  724. }
  725. }
  726. fSrchOprPerfDrlist(oprsrvno); //환자정보로 수술명, 집도의, 마취의 조회
  727. parent.fSetFormRec("extnflag", "opr");
  728. parent.fSetFormRec("oprsrvno", oprsrvno);
  729. //서식 로딩 후 포커스 처리(2008-11-18 박종훈)
  730. SetDefFocusIVW(gItemCdsTextArea);
  731. fGetIfCnts(); //인터페이스 항목 조회
  732. }
  733. //2009-11-24 오후 3:34:41 강지훈 추가
  734. if(parent.fGetFormRec("status") == "U"){
  735. if(parent.fCheckSaveDept()){
  736. grup_base.enable = true;
  737. fBtnDisEnable(false);
  738. }
  739. else{
  740. sysf_messageBox("타과에서 작성된 DSC기록은 수정", "E001");
  741. grup_base.enable = false;
  742. fBtnDisEnable(true);
  743. }
  744. }
  745. }]]></Script>