SMMNS00800.js 45 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료대상자리스트 ( SMMMO04100_진료대상자리스트.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var curPrcpObj; // 처방 화면 window object
  7. var curCpObj; // CP화면 window object
  8. var curCpSrchObj; // CP검색 화면 window object
  9. var curExamRsltObj; // 검사결과 화면 window object
  10. var curEmrRecObj; // 진료기록 화면 window object
  11. /**
  12. * @desc : 진료대상자 리스트 화면 초기화
  13. * @
  14. * @param :
  15. * @return :
  16. * @author : 오지훈
  17. * @---------------------------------------------------
  18. */
  19. function fInitializeDone_SMMO04100(){
  20. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/main/interface", "006");
  21. fGetUserEnvOcsOrdAnsw("/root/send/reqdata", "/root/main/ordtab", "007");
  22. /*
  23. //20091201 HJS 미니진료대상자리스트가 뜰때는 진료대상자를 닫아버린다.
  24. var curPatListMiniWnd = getOpenWindow("SPMMO04200");
  25. if ( curPatListMiniWnd != null ) {
  26. curPatListMiniWnd.javascript.fPatListMiniClose();
  27. }
  28. */
  29. var sAbleSelPatlist = fCheckAbleSelPat(); // 환자선택시 진료 가능 부서 여부 체크시 사용
  30. setGlobalVariable("able_sel_patlist", sAbleSelPatlist, "M");
  31. fGethardcdArrayList(new Array(
  32. "dentdept|242"
  33. ),
  34. new Array(
  35. "/root/init"
  36. )
  37. );
  38. var ordtab = getGlobalVariable("ordtab");
  39. if(ordtab.length < 1){ //최초 open, 외래를 기본으로
  40. /*
  41. var jobposcd = getUserInfo("jobposcd");
  42. if (jobposcd == "1775" || jobposcd == "1800") {
  43. btn_in.selected = true;
  44. btn_in.dispatch("DOMActivate");
  45. } else {
  46. btn_out.selected = true;
  47. btn_out.dispatch("DOMActivate");
  48. }
  49. */
  50. var tabinfo = model.getValue("/root/main/ordtab/answcnt");
  51. if (tabinfo == "001") {
  52. var btnobj = document.controls.item("btn_out");
  53. } else if (tabinfo == "002") {
  54. var btnobj = document.controls.item("btn_in");
  55. } else if (tabinfo == "003") {
  56. var btnobj = document.controls.item("btn_er");
  57. } else if (tabinfo == "004") {
  58. var btnobj = document.controls.item("btn_op");
  59. } else if (tabinfo == "005") {
  60. var btnobj = document.controls.item("btn_srch");
  61. } else if (tabinfo == "006") {
  62. var btnobj = document.controls.item("btn_cnst");
  63. } else {
  64. var jobposcd = getUserInfo("jobposcd");
  65. if (jobposcd == "1775" || jobposcd == "1800") {
  66. var btnobj = document.controls.item("btn_in");
  67. } else {
  68. var btnobj = document.controls.item("btn_out");
  69. }
  70. }
  71. btnobj.selected = true;
  72. btnobj.dispatch("DOMActivate");
  73. }else{ //ordtab이 설정된 경우, close후 다시 열린 경우
  74. ordtabarr = ordtab.split("^");
  75. var caseid = ordtabarr[0]; //탭정보
  76. var condlist = ordtabarr[1]; //조회조건
  77. if (caseid =="") {
  78. var tabinfo = model.getValue("/root/main/ordtab/answcnt");
  79. if (tabinfo == "001") {
  80. var btnobj = document.controls.item("btn_out");
  81. } else if (tabinfo == "002") {
  82. var btnobj = document.controls.item("btn_in");
  83. } else if (tabinfo == "003") {
  84. var btnobj = document.controls.item("btn_er");
  85. } else if (tabinfo == "004") {
  86. var btnobj = document.controls.item("btn_op");
  87. } else if (tabinfo == "005") {
  88. var btnobj = document.controls.item("btn_srch");
  89. } else if (tabinfo == "006") {
  90. var btnobj = document.controls.item("btn_cnst");
  91. } else {
  92. var btnobj = document.controls.item("btn_out");
  93. }
  94. } else {
  95. var btnobj = document.controls.item("btn_" + caseid);
  96. }
  97. model.setValue("/root/reopen/reopenflag", "Y");
  98. setCSVToNode("/root/reopen/condlist", condlist, "condlist"); //cond설정
  99. btnobj.selected = true;
  100. btnobj.dispatch("DOMActivate");
  101. }
  102. }
  103. /**
  104. * @desc : 처방Main 화면 Open, CP환자인 경우 CP Main 화면 Open 또는 CP검색화면 Open (CP업무 추가 2007.09.27)
  105. * @
  106. * @param :
  107. * @return :
  108. * @---------------------------------------------------
  109. */
  110. function fOpenPrcpMainWnd(){
  111. var cpflag = model.getValue(root.cpflag);
  112. var pid = model.getValue(root.source.pid);
  113. var mainObj = getMainViewer();
  114. var monitorNumber = app.monitorNumber;
  115. var consulyn = model.getValue("/root/source/consulyn");
  116. /*
  117. //20091130 HJS - 수진키 다를 경우 블러킹
  118. var pamStr = chkEmrListPaminfo();
  119. var pamKey = pamStr.split("|");
  120. setParameter("SMMMR00100_PATINFO_PID", pamKey[0]);
  121. setParameter("SMMMR00100_PATINFO_ORDDD", pamKey[1]);
  122. setParameter("SMMMR00100_PATINFO_CRETNO", pamKey[2]);
  123. */
  124. /*
  125. var monitorResolutions = app.monitorResolution;
  126. var monitorResolutionsArr = monitorResolutions.split('|');
  127. var resolution = monitorResolutionsArr[monitorNumber-1];
  128. var resolution_width = resolution.split(',')[0];
  129. var resolution_height = resolution.split(',')[1];
  130. */
  131. //alert(monitorNumber);
  132. curEmrRecObj = getOpenWindow("SMMRI00400"); //활성화된 진료기록 화면 object loading
  133. curExamRsltObj = getOpenWindow("SMAER00800"); //활성화된 검사결과 화면 object loading
  134. curNurTprObj = getOpenWindow("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  135. curNurBSEMRObj = getOpenWindow("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
  136. curGrphObj = getOpenWindow("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
  137. curCunsultObj = getOpenWindow("SMMMR05000"); //활성화된 Consult 화면 object loading
  138. curExamRsltNewObj = getOpenWindow("SMMMI00100"); //활성화된 검사결과 화면 object loading
  139. //if(curEmrRecObj != null){curEmrRecObj.javascript.fClose();} //진료기록 화면 close
  140. var wndobj = getOpenWindow("SMMRI00400");
  141. if(wndobj != null)
  142. {
  143. setParameter("SMMRI00400_param_pid" , model.getValue("/root/source/pid"));
  144. setParameter("SMMRI00400_param_chosflag", model.getValue("/root/main/paminfo/list/ordtype"));
  145. // 초기화함수 호출
  146. wndobj.javascript.fInitalize();
  147. activateChild("SMMRI00400");
  148. }
  149. //if(curExamRsltObj != null){curExamRsltObj.javascript.fClose();} //검사결과 화면 close
  150. if(curExamRsltObj != null){
  151. //curExamRsltObj.javascript.model.dispatch("xforms-ready");
  152. curExamRsltObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
  153. curExamRsltObj.javascript.btn_srch.dispatch("DOMActivate");
  154. } //검사결과 화면 refresh;
  155. if(curNurTprObj != null){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
  156. curNurTprObj.javascript.fInitialize("init");
  157. } //간호 TPR 화면 refresh;
  158. if(curNurBSEMRObj != null){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
  159. curNurBSEMRObj.javascript.fInitialize("init");
  160. } //혈당간호기록 refresh;
  161. if(curGrphObj != null){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
  162. curGrphObj.javascript.fInitialize();
  163. } //그래프 서식 refresh;
  164. if(curCunsultObj != null && consulyn !="T"){
  165. //if(curCunsultObj != null){ // Consult refresh : 2009-02-17 : 이상현 D/L 요청 : 김영학 ;
  166. curCunsultObj.javascript.fInitalize();
  167. } //그래프 서식 refresh;
  168. if(curExamRsltNewObj != null){
  169. //curExamRsltObj.javascript.model.dispatch("xforms-ready");
  170. curExamRsltNewObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
  171. curExamRsltNewObj.javascript.btn_srch.dispatch("DOMActivate");
  172. } //검사결과 화면 NEW refresh;
  173. curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
  174. curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
  175. curCpSrchObj = mainObj.javascript.getOpenWindow("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  176. var answcnt = model.getValue("/root/main/interface/answcnt"); // 환경설정의 질문값을 가져온다.
  177. setParameter("SMMMO04100_ANSWCNT", answcnt);
  178. if(cpflag == "N"){ //처방 Main Open
  179. if(curCpObj != null){curCpObj.javascript.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  180. if(curCpSrchObj != null){curCpSrchObj.javascript.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  181. //setParameter("SMMMO04100_ANSWCNT", answcnt);
  182. if(curPrcpObj == null){ //활성화된 처방화면이 없는 경우, 신규화면을 오픈
  183. /*
  184. var xpt = (resolution_width - 1210)/2;
  185. var ypt = (resolution_height- 784)/2;
  186. mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
  187. mainObj.javascript.open("SMMMO00100", monitorNumber, xpt, ypt, "SMMMO00100", "", "", "", false);
  188. */
  189. mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
  190. //mainObj.javascript.open("SMMMO00100", monitorNumber, "", "", "SMMMO00100", "", "", "", false);
  191. /*
  192. model.addLog("EMR REC START LOG");
  193. fChngEMRScrn();// 진료기록 Open
  194. */
  195. mainObj.javascript.setParameter("SMMMO00100_callvisityn", getParameter("SMMMO04100_callvisityn"));// 응급실 콜비짓 여부
  196. var sysMessageobj = getViewer("sysMessage");
  197. if (answcnt == "004"|| answcnt =="") { // 처방창과 기록창 모두 오픈
  198. sysMessageobj.window.javascript.setParameter("SMMMO04100_ANSWCNT", answcnt);
  199. sysMessageobj.window.javascript.open("SMMMO00100", 2, null, null, "SMMMO00100", "", "", "", false);
  200. } else { // 기록창만 블라인드
  201. fChngMainEMRScrn();// 진료기록 Open
  202. var ordrecflag = model.getValue("/root/main/cond/ordrecflag");
  203. if (ordrecflag =="Y") {
  204. clearParameter("SMMMO04100_ANSWCNT");
  205. }
  206. sysMessageobj.window.javascript.open("SMMMO00100", 2, null, null, "SMMMO00100", "", "", "", false);
  207. }
  208. mainObj.activate();
  209. }else{
  210. //model.addlog(" SPEED CHECK START OF fPrcpSavePatList()");
  211. if(curPrcpObj.javascript.fPrcpSavePatList()){}
  212. //model.addlog(" SPEED CHECK END OF fPrcpSavePatList()");
  213. //curPrcpObj.model.setValue("root/init/fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
  214. model.addLog("EMR REC START LOG");
  215. // mainObj.javascript.navigate("SMMMO99900");
  216. curPrcpObj.model.setValue("root/init/bfprcpload" , "N"); //전처방을 초기화한다.
  217. //curPrcpObj.javascript.fInitializeConDone();
  218. //curPrcpObj.javascript.fInitializeReady();
  219. //model.addlog(" SPEED CHECK START OF fXReReady()");
  220. curPrcpObj.javascript.fXReReady(consulyn);
  221. //model.addlog(" SPEED CHECK END OF fXReReady()");
  222. // curPrcpObj.javascript.fXReReady();
  223. var ordrecflag = model.getValue("/root/main/cond/ordrecflag");
  224. if (consulyn=="T"){
  225. ordrecflag = "N"
  226. }
  227. if (ordrecflag =="Y") {
  228. clearParameter("SMMMO04100_ANSWCNT");
  229. }
  230. //model.addlog(" SPEED CHECK START OF fChngMainEMRScrn()");
  231. if (consulyn !="T"){
  232. fChngMainEMRScrn();
  233. }
  234. //model.addlog(" SPEED CHECK END OF fChngMainEMRScrn()");
  235. mainObj.window.activate();
  236. }
  237. } else if(cpflag =="Y"){ //CP Main Open
  238. if(curPrcpObj != null){curPrcpObj.javascript.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  239. if(curCpSrchObj != null){curCpSrchObj.javascript.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  240. if(curCpObj == null){ //활성화된 CP화면이 없는 경우, 신규화면을 오픈
  241. /*
  242. var xpt = (resolution_width - 1236)/2;
  243. var ypt = (resolution_height- 985)/2;
  244. mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
  245. mainObj.javascript.open("SMMMP00800", monitorNumber, xpt, ypt, "SMMMP00800", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
  246. */
  247. //JJE- 삭제
  248. //fChngMainEMRScrn();
  249. mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
  250. //mainObj.javascript.open("SMMMP00800", monitorNumber, "", "", "SMMMP00800", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
  251. var sysMessageobj = getViewer("sysMessage");
  252. mainObj.window.javascript.open("SMMMP00800", 2, null, null, "SMMMP00800", "", "", "", false);
  253. //mainObj.javascript.open("SMMMP00800", 2, null, null, "SMMMP00800", "", "", "", false);
  254. } else{
  255. curCpObj.javascript.fReconstruct();
  256. }
  257. }else if(cpflag =="X"){ //CP 검색 Open
  258. //clearParameter("SMMMO04100_ANSWCNT");
  259. if(curCpObj != null){curCpObj.javascript.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  260. if(curPrcpObj != null){curPrcpObj.javascript.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
  261. if(curCpSrchObj == null){
  262. //mainObj.javascript.open("SPMMP01200", monitorNumber, xpt, ypt, "SPMMP01200", "", "", "", false);
  263. mainObj.javascript.open("SPMMP01200", monitorNumber, null, null, "SPMMP01200", "", "", "", false);
  264. }
  265. }
  266. //kskim
  267. //중증체류시간 화면(SPMMO21300) 닫기
  268. if (consulyn !="T"){
  269. fCloseSPMMO21300Wnd();
  270. }
  271. }
  272. /**
  273. * @desc : 진료기록화면 Open
  274. * : 메인화면에 기록지가 없는 경우, 새 기록지 open
  275. * @
  276. * @param :
  277. * @return :
  278. * @---------------------------------------------------
  279. */
  280. function fOpenOrdRecMainWnd(param){
  281. var mainObj = getMainViewer();
  282. if(param == ""){
  283. var ordrecflag = model.getValue("/root/main/cond/ordrecflag");
  284. if(ordrecflag == "N"){
  285. var wndid = "SMMMR00100";
  286. }else{
  287. var wndid = "SMMMB08100";
  288. }
  289. }else{
  290. var wndid = "SMMMR03700";
  291. }
  292. var scrnID = mainObj.javascript.getScreenID();
  293. if(scrnID == wndid){
  294. mainObj.javascript.fInitPamInfo();
  295. }else{
  296. mainObj.javascript.navigate(wndid);
  297. }
  298. }
  299. /**
  300. * @desc : 빈xrw open
  301. * @ : 처방화면이 진료대상자에 종속되는 것을 막기위해 main화면에 empty화면을 navigate한다.
  302. * @param :
  303. * @return :
  304. * @---------------------------------------------------
  305. */
  306. function fOpenEmptyWnd(){
  307. var mainObj = getMainViewer();
  308. var scrnID = mainObj.javascript.getScreenID();
  309. if(scrnID == "SMMMB08100"){
  310. mainObj.javascript.fInitPamInfo();
  311. }else{
  312. mainObj.javascript.navigate("SMMMB08100"); //빈기록지 open
  313. }
  314. }
  315. /**
  316. * @desc : 처방에서 저장 후, 현 진료대상자 화면 재조회 처리(iviewer dispatch)
  317. * @
  318. * @param :
  319. * @return :
  320. * @---------------------------------------------------
  321. */
  322. function fPrcpCallPatList(){
  323. iviewer1.window.javascript.btn_req.dispatch("DOMActivate");
  324. }
  325. /**
  326. * @desc : 진료대상자리스트 button disabled control
  327. * @
  328. * @param :
  329. * @return :
  330. * @author : 오지훈
  331. * @---------------------------------------------------
  332. */
  333. function fCtrlBtnDisable(bflag){
  334. btn_out.disabled = bflag;
  335. btn_in.disabled = bflag;
  336. btn_er.disabled = bflag;
  337. btn_op.disabled = bflag;
  338. btn_srch.disabled = bflag;
  339. btn_cnst.disabled = bflag;
  340. model.refresh();
  341. }
  342. /**
  343. * @desc : 외래 tab button 클릭
  344. * @
  345. * @param :
  346. * @return :
  347. * @author : 오지훈
  348. * @---------------------------------------------------
  349. */
  350. function fClkBtnOut(){
  351. model.setValue("/root/main/cond/scrnid", "SMMMO04200");
  352. model.setValue("/root/main/cond/grdid", "grd_outpatlist");
  353. model.setValue("/root/main/cond/caseid", "out");
  354. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  355. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  356. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  357. iviewer1.src="SMMNS00900_외래환자리스트.xrw";
  358. }
  359. /**
  360. * @desc : 입원 tab button 클릭
  361. * @
  362. * @param :
  363. * @return :
  364. * @author : 오지훈
  365. * @---------------------------------------------------
  366. */
  367. function fClkBtnIn(){
  368. model.setValue("/root/main/cond/scrnid", "SMMMO04300");
  369. model.setValue("/root/main/cond/grdid", "grd_inpatlist");
  370. model.setValue("/root/main/cond/caseid", "in");
  371. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  372. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  373. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  374. iviewer1.src="SMMNS01000_입원환자리스트.xrw";
  375. }
  376. /**
  377. * @desc : 응급 tab button 클릭
  378. * @
  379. * @param :
  380. * @return :
  381. * @author : 오지훈
  382. * @---------------------------------------------------
  383. */
  384. function fClkBtnEr(){
  385. model.setValue("/root/main/cond/scrnid", "SMMMO04400");
  386. model.setValue("/root/main/cond/grdid", "grd_erpatlist");
  387. model.setValue("/root/main/cond/caseid", "er");
  388. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  389. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  390. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  391. iviewer1.src="SMMNS01100_응급환자리스트.xrw";
  392. }
  393. /**
  394. * @desc : 수술 tab button 클릭
  395. * @
  396. * @param :
  397. * @return :
  398. * @author : 오지훈
  399. * @---------------------------------------------------
  400. */
  401. function fClkBtnOp(){
  402. model.setValue("/root/main/cond/scrnid", "SMMMO04500");
  403. model.setValue("/root/main/cond/grdid", "grd_oppatlist");
  404. model.setValue("/root/main/cond/caseid", "op");
  405. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  406. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  407. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  408. iviewer1.src="SMMNS01200_수술환자리스트.xrw";
  409. }
  410. /**
  411. * @desc : 환자검색 tab button 클릭
  412. * @
  413. * @param :
  414. * @return :
  415. * @author : 오지훈
  416. * @---------------------------------------------------
  417. */
  418. function fClkBtnSrch(){
  419. model.setValue("/root/main/cond/scrnid", "SMMMO04700");
  420. model.setValue("/root/main/cond/grdid", "grd_srchpatlist");
  421. model.setValue("/root/main/cond/caseid", "srch");
  422. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  423. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  424. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  425. iviewer1.src="SMMNS01300_환자검색.xrw";
  426. }
  427. /**
  428. * @desc : 의뢰 tab button 클릭
  429. * @
  430. * @param :
  431. * @return :
  432. * @author : 오지훈
  433. * @---------------------------------------------------
  434. */
  435. function fClkBtnCnst(){
  436. model.setValue("/root/main/cond/scrnid", "SMMMO04800");
  437. model.setValue("/root/main/cond/grdid", "grd_cnstpatlist");
  438. model.setValue("/root/main/cond/caseid", "cnst");
  439. //진료기록 창에 현재 진료대상자의 Tab id를 넘겨준다. 안치원 대리님 요청사항
  440. setParameter("SMMMO04100_medirec_caseid", model.getValue("/root/main/cond/caseid"));
  441. fCtrlBtnDisable(true); //loading이 완료되기 전에 탭 이동을 막는다.
  442. iviewer1.src="SMMNS01400_의뢰환자리스트.xrw";
  443. }
  444. /**
  445. * @desc : OCS Check Box 클릭시 처리
  446. * : check 할 경우 처방화면만 열리고 진료기록 화면을 열지 않는다.
  447. * @
  448. * @param :
  449. * @return :
  450. * @author : 오지훈
  451. * @---------------------------------------------------
  452. */
  453. function fClkCheckBoxOCS(){
  454. var ordrecflag = model.getValue("/root/main/cond/ordrecflag");
  455. if(ordrecflag == "Y"){
  456. model.setValue("/root/main/cond/ordrecflag", "N");
  457. }else{
  458. model.setValue("/root/main/cond/ordrecflag", "Y");
  459. }
  460. model.setValue("/root/main/cond/chngflag", "Y");
  461. model.refresh();
  462. }
  463. /**
  464. * @desc : ordtab정보 설정
  465. * : 진료대상자 close후, 다시 열리는 경우 최종 정보로 setting할 수 있게 한다.
  466. *
  467. * : ordtab구성
  468. * : 1. 진료대상자 tab id
  469. * : 2. 진료대상자 tab 조회 cond instance
  470. * : 3. 진료대상자 column설정 정보
  471. * : 4. OCS check 여부
  472. * @
  473. * @param :
  474. * @return :
  475. * @author : 오지훈
  476. * @---------------------------------------------------
  477. */
  478. function fSetOrdTabInfo(){
  479. var caseid = model.getValue("/root/main/cond/caseid");
  480. var condlist = getNodeListCSV(model.instance1.selectNodes("/root/cond/" + caseid + "patlist"));
  481. var ordtab = caseid + "^" + condlist;
  482. setGlobalVariable("ordtab", ordtab);
  483. }
  484. /**
  485. * @desc : 화면ID의 grid의 column 순서 조회
  486. * @
  487. * @param :
  488. * @return :
  489. * @author : 오지훈
  490. * @---------------------------------------------------
  491. */
  492. function reqOrderInfoOfCol(scrnid, grdid, compscd){
  493. model.removeNodeset("/root/send/reqdata");
  494. model.makeValue("/root/send/reqdata/scrnid", scrnid);
  495. if (!isNull(compscd)) {
  496. model.makeValue("/root/send/reqdata/compscd", compscd);
  497. }
  498. if(submit("TRMMB01103")){
  499. var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
  500. if(xmlnode != null){
  501. var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  502. var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  503. setOrderInfoOfCol(grdid, refdata, sizedata); //외래환자리스트 컬럼 설정
  504. }
  505. }
  506. }
  507. /**
  508. * @desc : 컬럼 순서 정보 설정
  509. * @
  510. * @param : grid ID : 그리드ID
  511. * : refdata : 그리드 ref데이터 구분자 '^'
  512. * : sizedata : 그리드 size데이터 구분자 '^'
  513. * @return :
  514. * @author : 오지훈
  515. * @---------------------------------------------------
  516. */
  517. function setOrderInfoOfCol(grdid, refdata, sizedata){
  518. var grdobj = document.controls.item(grdid);
  519. var refarr = refdata.split("^");
  520. var sizearr = sizedata.split("^");
  521. grdobj.mergeCellsFixedRows = "never"
  522. for(var i = 0; i < refarr.length; i++){
  523. var colcnt = grdobj.colref("" + refarr[i] + "");
  524. grdobj.colMove(i, colcnt, "before", false);
  525. var size = sizearr[i];
  526. if(size == 0){ // size of column 0 -> hidden
  527. grdobj.colHidden(i) = true;
  528. }else{
  529. grdobj.colHidden(i) = false;
  530. }
  531. grdobj.colWidth(i) = eval(size);
  532. }
  533. grdobj.mergeCellsFixedRows = "bycolrec"
  534. grdobj.rebuild();
  535. }
  536. /**
  537. * @desc : 컬럼설정 버튼 클릭
  538. * @
  539. * @param :
  540. * @return :
  541. * @author : 오지훈
  542. * @---------------------------------------------------
  543. */
  544. function fClkBtnSetCol(){
  545. var scrnid = model.getValue("/root/main/cond/scrnid");
  546. var grdid = model.getValue("/root/main/cond/grdid");
  547. var caseid = model.getValue("/root/main/cond/caseid");
  548. setParameter("SMMMO04100_param_scrnid", scrnid);
  549. setParameter("SMMMO04100_param_grdid" , grdid);
  550. setParameter("SMMMO04100_param_caseid", caseid);
  551. modal("SPMNS01100");
  552. var useyn = getParameter("SPMMB01100_rtn_useyn");
  553. if(useyn == "Y"){
  554. model.setValue("/root/chngcol/chngcolflag", "Y");
  555. var btnObj = document.controls.item("btn_" + caseid);
  556. btnObj.dispatch("DOMActivate");
  557. }
  558. }
  559. /**
  560. * @desc : 처방화면, CP화면에 modal로 뜬 화면이 있는지 여부를 검사한다.
  561. * @
  562. * @param :
  563. * @return :
  564. * @author : 오지훈
  565. * @---------------------------------------------------
  566. */
  567. function fChkScrnDisable(){
  568. var cpflag = model.getValue(opener.root.cpflag); //cpflag여부
  569. if(cpflag == "N"){
  570. var wndobj = getOpenWindow("SMMMO00100");
  571. }else if(cpflag == "Y"){
  572. var wndobj = getOpenWindow("SMMMP00800");
  573. }
  574. if(wndobj != null){
  575. var varstatus = wndobj.window.javascript.getScreenDisabled();
  576. if(varstatus == true){
  577. return false;
  578. }
  579. }
  580. return true;
  581. }
  582. /**
  583. * @desc : 통합기록 조회 open
  584. * @
  585. * @param :
  586. * @return :
  587. * @author : 오지훈
  588. * @---------------------------------------------------
  589. */
  590. function fClkBtnTotRecSrch(){
  591. var pid = model.getValue("/root/source/pid");
  592. if(pid == ""){
  593. messageBox("통합기록조회를 검색할 환자를", "C002");
  594. return;
  595. }
  596. var mainobj = getMainViewer();
  597. var xpt = window.screenleft + eval(0);
  598. var ypt = window.screenTop + eval(0);
  599. var coord = getRelativeCoordinate ( xpt, ypt );
  600. var mon = coord[0];
  601. xpt = coord[1];
  602. ypt = coord[2];
  603. mainobj.javascript.open("SMAER00800", mon, xpt, ypt, "SMAER00800", "/root/source/pid", "/root/send/data/singdata/srchpid");
  604. }
  605. /**
  606. * @desc : 환자 수술여부 및 수술처방 확인
  607. * @
  608. * @param :
  609. * @return :
  610. * @author : 오지훈
  611. * @---------------------------------------------------
  612. */
  613. function fChkPatOpPrcp(pid, stnddd, cretno){
  614. model.removeNodeset("root/send/reqdata");
  615. model.makeValue("/root/send/reqdata/pid" , pid);
  616. model.makeValue("/root/send/reqdata/stnddd", stnddd);
  617. model.makeValue("/root/send/reqdata/cretno", cretno);
  618. if(submit("TRMMO04109",false)){
  619. var opprcpflag = model.getValue(root.main.opprcpinfo.opprcpinfo.opprcpflag);
  620. if(opprcpflag == "N"){
  621. return false;
  622. }
  623. }
  624. return true;
  625. }
  626. /**
  627. * @desc : 환자 등록번호를 통한 환자 이름 가져오기
  628. * @
  629. * @param :
  630. * @return :
  631. * @author : 김영학
  632. * @---------------------------------------------------
  633. */
  634. function fPatSrch(s_val, flag){
  635. if(flag == "1"){
  636. model.makeValue("/root/tmp/pid", s_val);
  637. } else if(flag == "2"){
  638. model.makeValue("/root/tmp/hngnm", s_val);
  639. }
  640. model.makeValue("/root/tmp/srchcond", flag);
  641. model.makeValue("/root/tmp/autoflag","Y"); // 1건인경우 자동으로닫힘
  642. model.resetInstanceNode("/root/main/patinfo/patinfolist");
  643. modal("SPPMC02500", 1,10, 10, "SPPMC02500", "/root/tmp", "/root/send");
  644. model.refresh();
  645. }
  646. /**
  647. * @desc : CP환자 적용상태값 변경
  648. * @
  649. * @param :
  650. * @return :
  651. * @author : 오지훈
  652. * @---------------------------------------------------
  653. */
  654. function fUpdtCPPatAppStatVal(appstat){
  655. var cpgappno = model.getValue("/root/init/rsltgetdata/getdata/cpgappno");
  656. model.removeNodeset("/root/send/savedata");
  657. model.makeValue("/root/send/savedata/cpgappno", cpgappno);
  658. model.makeValue("/root/send/savedata/appstat" , appstat);
  659. if(submit("TXMMO04301")==false){
  660. return false;
  661. }
  662. }
  663. function fChngEMRScrn(){
  664. model.addLog("EMR OPEN START");
  665. var mainobj = getMainViewer();
  666. var messageobj = getViewer("sysMessage");
  667. var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
  668. curFormLoaderObj = getOpenWindow("SSMMR01100"); //활성화된 서식로더창 체크
  669. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  670. curFormLoaderObj.javascript.fClose();
  671. } //서식로더 close()
  672. var cpflag = model.getValue("/root/cpflag");
  673. var ordrecflag = model.getValue("/root/main/cond/ordrecflag"); //OCS 체크여부
  674. var chngflag = model.getValue("/root/main/cond/chngflag"); //OCS 체크여부
  675. var dutplcecd = getUserInfo("dutplcecd"); //사용자부서
  676. var operation = getGlobalVariable("operation"); //수술정보
  677. var wndid = "SMMMR00100"; //진료기록화면이 default
  678. var dentdeptcd = model.getValue("/root/init/dentdept/hardcd[hardcd='" + getUserInfo("dutplcecd") + "']/hardcd");
  679. if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  680. if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
  681. wndid = "SMMMR03700";
  682. }
  683. }else{
  684. if(ordrecflag == "Y"){
  685. wndid = "SMMMB08100";
  686. }
  687. }
  688. var chngflag = model.setValue("/root/main/cond/chngflag", "N"); //OCS 체크여부
  689. /*
  690. //20091130 HJS - 수진키 다를 경우 블러킹
  691. var pamStr = chkEmrListPaminfo();
  692. var pamKey = pamStr.split("|");
  693. setParameter("SMMMR00100_PATINFO_PID", pamKey[0]);
  694. setParameter("SMMMR00100_PATINFO_ORDDD", pamKey[1]);
  695. setParameter("SMMMR00100_PATINFO_CRETNO", pamKey[2]);
  696. */
  697. if(mainscrnid == wndid){
  698. if(wndid == "SMMMR03700"){
  699. mainobj.javascript.fFormInit();
  700. }else{
  701. mainobj.javascript.fRecMainReady();
  702. }
  703. }else{
  704. mainobj.javascript.navigate(wndid); //진료기록
  705. }
  706. //kskim
  707. //중증체류시간 화면(SPMMO21300) 닫기
  708. fCloseSPMMO21300Wnd();
  709. }
  710. function fChngMainEMRScrn() {
  711. var mainobj = getMainViewer();
  712. var messageobj = getViewer("sysMessage");
  713. var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
  714. var cpflag = model.getValue(root.cpflag);
  715. var consulyn = model.getValue("/root/source/consulyn");
  716. curFormLoaderObj = getOpenWindow("SSMMR01100"); //활성화된 서식로더창 체크
  717. if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
  718. //knuh 20120104 최원돈 OCS 진료대상자 OCS 조회 시 환자메모를 자동으로 사라지게 설정 SMMMO04100.js, SPMMR05600.js, MMR00100.js
  719. var curMemoObj = getOpenWindow("SPMMR05600");
  720. if(curMemoObj != null){curMemoObj.javascript.window.close();} //환자메모 화면 close
  721. curFormLoaderObj.javascript.fClose();
  722. } //서식로더 close()
  723. if (cpflag =="Y"){
  724. var curPrcpObj= getOpenWindow("SMMMP00800");
  725. } else {
  726. var curPrcpObj= getOpenWindow("SMMMO00100");
  727. }
  728. var fstopenflag = "";
  729. try{fstopenflag =curPrcpObj.model.getValue("/root/init/fstopenflag");}catch(E){} //처방화면이 최초 생성 여부
  730. var bfprcpload = "";
  731. try{bfprcpload = curPrcpObj.model.getValue("/root/init/bfprcpload");}catch(E){} //전처방화면 최초 생성 여부
  732. var cpflag = ""
  733. try {cpflag = curPrcpObj.model.getValue("root/cp"); } catch(E) {} //CP화면여부
  734. var ordrecflag = model.getValue("/root/main/cond/ordrecflag"); //OCS 체크여부
  735. if (consulyn=="T"){
  736. ordrecflag = "N"
  737. }//LYJ
  738. var chngflag = model.getValue("/root/main/cond/chngflag"); //OCS 체크여부
  739. if(mainobj != null){
  740. var dutplcecd = getUserInfo("dutplcecd"); //사용자부서
  741. var operation = getGlobalVariable("operation"); //수술정보
  742. var wndid = "SMMMR00100"; //진료기록화면이 default
  743. var dentdeptcd = model.getValue("/root/init/dentdept/hardcd[hardcd='" + getUserInfo("dutplcecd") + "']/hardcd");
  744. // if(fstopenflag !="N" || chngflag == "Y"){ //처방화면이 최초로 열린 경우, 진료대상자의 ocs체크값이 변경된 경우에는 메인화면 변경
  745. // if(bfprcpload != "Y"){ //전처방화면이 로딩된 여부,(단순히 tab변경인 경우에는 메인화면 변경 로직을 처리하지 않음
  746. /*
  747. if(cpflag == "Y"){ //CP화면인 경우, CP초기화 후, 메인화면 변경 수행
  748. var cpendflag = curPrcpObj.javascript.fReconstruct();
  749. if(cpendflag == "True"){
  750. }
  751. }
  752. */
  753. //if(cpendflag == "True"){ //CPMain의 fReconstruct()가 완료된 이후 진료기록 변경로직을 수행
  754. if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  755. if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
  756. if ("O" != model.getValue("/root/main/cond/recinfo")) {
  757. wndid = "SMMMR03700";
  758. }
  759. }else{
  760. if(ordrecflag == "Y"){
  761. wndid = "SMMMB08100";
  762. }
  763. }
  764. }else{
  765. if(ordrecflag == "Y"){
  766. wndid = "SMMMB08100";
  767. }
  768. }
  769. if (curPrcpObj != null) {
  770. curPrcpObj.model.setValue("root/init/bfprcpload" , "Y");
  771. curPrcpObj.model.setValue("root/init/fstopenflag", "N");
  772. }
  773. model.setValue("/root/main/cond/chngflag", "N"); //OCS 체크여부
  774. /*
  775. //20091130 HJS - 수진키 다를 경우 블러킹
  776. var pamStr = chkEmrListPaminfo();
  777. var pamKey = pamStr.split("|");
  778. setParameter("SMMMR00100_PATINFO_PID", pamKey[0]);
  779. setParameter("SMMMR00100_PATINFO_ORDDD", pamKey[1]);
  780. setParameter("SMMMR00100_PATINFO_CRETNO", pamKey[2]);
  781. */
  782. if(mainscrnid == wndid){
  783. if(wndid == "SMMMR03700"){
  784. mainobj.javascript.fFormInit();
  785. }else{
  786. //mainobj.javascript.fInitRecPamInfo();
  787. mainobj.javascript.fRecMainReady();
  788. }
  789. }else{
  790. mainobj.window.javascript.navigate(wndid);
  791. }
  792. }else{ //전처방화면이 최초 생성된 경우, bfprcpload를 Y로 변경, 추후 tab변경시 메인화면 변경이 되지 않게함
  793. if (curPrcpObj != null) {
  794. curPrcpObj.model.setValue("root/init/bfprcpload", "Y");
  795. }
  796. }
  797. // }
  798. // }
  799. //자가보유처방 조회 (최초 처방창을 열때만 호출한다.) 20100210 by LYJ
  800. var mainObj = getMainViewer();
  801. var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100");
  802. if (opener.model.getValue("/root/hidden/selfhld/selfopenyn") != "Y" ){
  803. if ( curPrcpObj != null){
  804. curPrcpObj.javascript.fSelfHldPrcpModal();
  805. }
  806. }
  807. //kimsj 처방시 미비기록 유무 확인(message) -- SMMMO00100.js, SMMMO02100.js에서 submit 실행
  808. if (curPrcpObj != null){
  809. curPrcpObj.javascript.fValidRecInfoMsg();
  810. }
  811. }
  812. /**
  813. * @desc : 진료기록 오픈시 원무정보체크
  814. * @ : 진료대상자리스트와 상단(혹은 global variable)의 불일치여부 체크를 위해.
  815. * @param :
  816. * @return :
  817. * @---------------------------------------------------
  818. */
  819. function chkEmrListPaminfo(){
  820. if(getScreenID() == "SMMMO04100") {
  821. var pid = "";
  822. var orddd = "";
  823. var cretno = "";
  824. var gridObj = null;
  825. var INSTANCE_PATH = "";
  826. if(getScreenID(iviewer1.document.url) == "SMMMO04200") { // 외래
  827. gridObj = iviewer1.document.controls.item("grd_outpatlist");
  828. INSTANCE_PATH = "/root/main/outpatinfo/outpatlist";
  829. } else if(getScreenID(iviewer1.document.url) == "SMMMO04300") { // 입원
  830. gridObj = iviewer1.document.controls.item("grd_inpatlist");
  831. INSTANCE_PATH = "/root/main/inpatinfo/inpatlist";
  832. } else if(getScreenID(iviewer1.document.url) == "SMMMO04400") { // 응급
  833. gridObj = iviewer1.document.controls.item("grd_erpatlist");
  834. INSTANCE_PATH = "/root/main/erpatinfo/erpatlist";
  835. } else if(getScreenID(iviewer1.document.url) == "SMMMO04500") { // 수술
  836. gridObj = iviewer1.document.controls.item("grd_oppatlist");
  837. INSTANCE_PATH = "/root/main/oppatinfo/oppatlist";
  838. } else if(getScreenID(iviewer1.document.url) == "SMMMO04700") { // 검색
  839. gridObj = iviewer1.document.controls.item("grd_srchpatlist");
  840. INSTANCE_PATH = "/root/main/patsrchinfo/patsrchlist";
  841. } else if(getScreenID(iviewer1.document.url) == "SMMMO04800") { // 의뢰
  842. gridObj = iviewer1.document.controls.item("grd_cnstpatlist");
  843. INSTANCE_PATH = "/root/main/cnstpatinfo/cnstpatlist";
  844. }
  845. pid = iviewer1.model.getValue(INSTANCE_PATH + "[" + gridObj.row + "]/pid");
  846. if(getScreenID(iviewer1.document.url) == "SMMMO04500") { // 수술
  847. if (getPatientInfoDetail("indd") == "") {
  848. orddd = getPatientInfoDetail("orddd");
  849. } else {
  850. orddd = getPatientInfoDetail("indd");
  851. }
  852. cretno = getPatientInfoDetail("cretno");
  853. } else { // 나머지탭.
  854. if (iviewer1.model.getValue(INSTANCE_PATH + "[" + gridObj.row + "]/orddd") == "") {
  855. orddd = iviewer1.model.getValue(INSTANCE_PATH + "[" + gridObj.row + "]/indd");
  856. } else {
  857. orddd = iviewer1.model.getValue(INSTANCE_PATH + "[" + gridObj.row + "]/orddd");
  858. }
  859. cretno = iviewer1.model.getValue(INSTANCE_PATH + "[" + gridObj.row + "]/cretno");
  860. }
  861. return pid+"|"+orddd+"|"+cretno;
  862. } else {
  863. return "";
  864. }
  865. }
  866. /**
  867. * @desc : 화면타이틀을 설정한다
  868. * @ : 형식 : 화면명 + 로그인과 + 로그인한 사용자 + 로그인일시
  869. * @param :
  870. * @return :
  871. * @author : 김영학 2008-11-19
  872. * @---------------------------------------------------
  873. function initWndTitle() {
  874. if (getGlobalVariable("userinfos") != "") {
  875. var scrnTitle = document.title + " " ;
  876. scrnTitle += getUserInfo("dutplcenm") + " ";
  877. scrnTitle += getUserName() + " ";
  878. scrnTitle += getTitleLoginDate() + " ";
  879. document.title = scrnTitle;
  880. }
  881. }
  882. */
  883. /**
  884. * @desc : EMR Check Box 클릭시 처리
  885. * : check 할 경우 진료기록 화면만 연다.
  886. * @
  887. * @param :
  888. * @return :
  889. * @author : 김영학
  890. * @---------------------------------------------------
  891. */
  892. function fClkCheckBoxEMR(){
  893. var recflag = model.getValue("/root/main/cond/recflag");
  894. var consulyn = model.getValue("/root/source/consulyn");
  895. if (consulyn=="T"){
  896. recflag = "N"
  897. }//LYJ
  898. if(recflag == "Y"){
  899. model.setValue("/root/main/cond/recflag", "N");
  900. }else{
  901. model.setValue("/root/main/cond/recflag", "Y");
  902. }
  903. model.setValue("/root/main/cond/chngflag", "Y");
  904. model.refresh();
  905. }
  906. /**
  907. * @desc : 진료대상자 출력
  908. * @
  909. * @param :
  910. * @return :
  911. * @author : 김영학
  912. * @---------------------------------------------------
  913. */
  914. function fPrtPatList() {
  915. iviewer1.window.javascript.fPrtPatList();
  916. }
  917. /**
  918. * @desc : 사용자 답변 조회
  919. * @
  920. * @param :
  921. * @return :
  922. * @author : 김영학
  923. * @---------------------------------------------------
  924. */
  925. function fGetUserEnvOcsOrdAnsw(ref, rsltref, qestcd){
  926. /*
  927. var mmb_rsltref = "/root/hidden/interface";
  928. model.removeNode(mmb_rsltref);
  929. model.makeNode(mmb_rsltref);
  930. model.removeNode(ref);
  931. model.makeValue(ref + "/interqestcd", qestcd);
  932. if(submit("TRMMB01104", "false", ref, mmb_rsltref)==true){
  933. model.makeNode(rsltref);
  934. model.copyNode(rsltref, mmb_rsltref);
  935. model.removeNode(mmb_rsltref);
  936. }
  937. */
  938. model.removeNodeset(rsltref);
  939. model.makeNode(rsltref);
  940. var viewerObj = getViewer("sysMessage");
  941. //KNUH_20110208, 주희경, 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
  942. var srcNode = viewerObj.window.instance1.selectSingleNode(gvOrderBasicInfoPath +"/interface[qestcd='"+qestcd+"']");
  943. var targetNode = instance1.selectSingleNode(rsltref);
  944. var srcChildNodes = srcNode.childNodes;
  945. for(i=0; i<srcChildNodes.length; i++)
  946. {
  947. targetNode.appendChild(srcChildNodes.item(i));
  948. }
  949. model.refresh();
  950. }
  951. function fChkRecInCorrectPid(pid, hngnm) {
  952. model.removenode("/root/hidden/recinfo/");
  953. submit("TRMMO04129");
  954. var xmlnode = model.instance1.selectSingleNode("/root/hidden/recinfo/reclist");
  955. if(xmlnode != null){
  956. setParameter("SMMMO04100_pid", pid);
  957. setParameter("SMMMO04100_hngnm", hngnm);
  958. modal("SPMMO17800");
  959. clearParameter("SMMMO04100_pid");
  960. clearParameter("SMMMO04100_hngnm");
  961. }
  962. }
  963. /**
  964. * @desc : 진료대상자리스트 닫기.(미니진료대상자리스트 띄울때 닫아버린다.)
  965. * @
  966. * @param :
  967. * @return :
  968. * @author : 한재상
  969. * @---------------------------------------------------
  970. */
  971. function fPatListClose() {
  972. window.close();
  973. }
  974. /**
  975. * @desc : 중증체류시간 화면(SPMMO21300) 닫기
  976. *@author: 김광성(kskim)
  977. */
  978. function fCloseSPMMO21300Wnd(){
  979. var wndobj21300 = getOpenWindow("SPMMO21300");
  980. var viewerSrc = iviewer1.attribute("src");
  981. if( viewerSrc != "SMMMO04400_응급환자리스트.xrw" ){
  982. //alert("SMMMO04400");
  983. if( wndobj21300 != null ){
  984. wndobj21300.javascript.fCloseWnd();
  985. }
  986. }
  987. }
  988. /**
  989. * @desc : 진료대상자리스트에서 더블클릭시 각 탭에서 블러킹 및 체크 용도로 사용.
  990. 로직은 추가하되 submission은 각 대상자 화면에 추가해야함.
  991. * tabkind >>> O:외래, I:입원, E:응급, OP:수술, SRCH:환자검색
  992. * @author : 한재상(maxizm)
  993. */
  994. function fChkBfPrcpLoad(tabkind) {
  995. var sChkAfterPrcpYn = fGetHardCDList("Y", 221, 3); // 221 후인증 체크 사용여부
  996. if(sChkAfterPrcpYn == "Y") {
  997. // 1. 진료대상자에서 후인증관련 블러킹 처리. (전체탭에 대해서)
  998. model.makeValue("/root/send/aftcert/pid", "");
  999. model.makeValue("/root/send/aftcert/orddd", "");
  1000. model.makeValue("/root/send/aftcert/cretno", "");
  1001. model.makeValue("/root/send/aftcert/userdeptcd", getUserInfo("dutplcecd")); // 사용자 소속과
  1002. model.makeValue("/root/send/aftcert/userkind", "D"); // 의사 : "D", 그외 : "E"
  1003. model.makeValue("/root/send/aftcert/execkind", "patlist"); // 의사 : "D", 그외 : "E"
  1004. model.makeValue("/root/send/aftcert/orddrid", getUserInfo("userid"));
  1005. submit("TRMMO02705", false);
  1006. if ( parseInt(model.getValue("/root/hidden/aftcert/aftcertcnt")) > 0 ) {
  1007. messageBox("후인증 미비 내역이 존재합니다. 인증 후 진행하시기 바랍니다.", "C");
  1008. modal ( "SMMMO02700");
  1009. return false;
  1010. }
  1011. }
  1012. return true;
  1013. }
  1014. /**
  1015. * @desc : 진료대상자리스트에서 더블클릭시 환자의 정보 조회 및 체크
  1016. * @ 미수금 체크(patuncoinfo), 민원환자체크(complaininfo)
  1017. * @param : pid:환자번호
  1018. * @return : True:계속진행, False:진행 중단
  1019. * @author : 엄영만
  1020. * @---------------------------------------------------
  1021. */
  1022. function fCheckSelectPatInfo(ioflag, pid){
  1023. if (isNull(pid)) { return false; }
  1024. model.removeNodeset("/root/send/reqdata");
  1025. model.makeValue("/root/send/reqdata/pid", pid);
  1026. model.makeValue("/root/send/reqdata/ioflag", ioflag);
  1027. if(submit("TRMMO04114")){
  1028. // 미수금 안내 메세지창 팝업
  1029. var nodePatUnco = instance1.selectNodes("/root/hidden/selectpatinfo/patuncoinfo");
  1030. if( nodePatUnco != null && nodePatUnco.length > 0 ){
  1031. var nPatUncoAmt = model.getValue("/root/hidden/selectpatinfo/patuncoinfo/outuncoamt");
  1032. if (parseInt(nPatUncoAmt) > 0 ) {
  1033. messageBox("미수금("+ nPatUncoAmt +"원)이 있으니 수납 후 진료토록 안내바랍니다.\n\n문의사항:원무과", "I");
  1034. }
  1035. }
  1036. // 민원환자 안내 메세지창 팝업
  1037. var nodeComplain = instance1.selectNodes("/root/hidden/selectpatinfo/complaininfo");
  1038. if( nodeComplain != null && nodeComplain.length > 0 ){
  1039. var sPatName = model.getValue("/root/hidden/selectpatinfo/complaininfo/hngnm");
  1040. var sOrdDate = model.getValue("/root/hidden/selectpatinfo/complaininfo/orddate");
  1041. var sIoFlagNm = model.getValue("/root/hidden/selectpatinfo/complaininfo/ioflagnm");
  1042. var sOfidocAcptDate = model.getValue("/root/hidden/selectpatinfo/complaininfo/ofidocacptdate");
  1043. var sMsg = sPatName + "님은 "+ sIoFlagNm + "(" + sOrdDate + ") 진료받은 환자로 " + sOfidocAcptDate + " 건강보험심사평가원에\n진료비가 적정한지 여부를 요청한 민원제기 된 환자이오니 참조하여 주시기 바랍니다."
  1044. if(getUserInfo("dutplceinstcd") == "031") {
  1045. sMsg = sMsg + "\n\n문의사항:심사팀(6135)"
  1046. } else {
  1047. sMsg = sMsg + "\n\n문의사항:심사팀(2188)"
  1048. }
  1049. messageBox(sMsg , "I");
  1050. }
  1051. }
  1052. return true;
  1053. // modal ("SMPAM00100");
  1054. }
  1055. /**
  1056. * @desc : 진료대상자리스트에서 환자 선택 가능여부 조회
  1057. * @ 로그인 부서를 체크하여 진료가능한 부서 인지 체크 2012.09.03
  1058. * @param : pid:환자번호
  1059. * @return : True:계속진행, False:진행 중단
  1060. * @author : 엄영만
  1061. * @---------------------------------------------------
  1062. */
  1063. function fCheckAbleSelPat() {
  1064. var sRtn = "Y";
  1065. var sUserOrdDeptYn = fGetHardCDList("Y", 335, 3); // 진료부서 체크 사용 여부
  1066. if(sUserOrdDeptYn == "Y" ) { // 환자선택시 진료 가능 부서 여부 체크 추가 2012.09.03 엄영만
  1067. model.makeNode("/root/temp/checkselpatorddept");
  1068. model.makeNode("/root/temp/checkselpatexpdept");
  1069. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/temp/checkselpatorddept", "O"); // 진료부서 체크 외래 부서 기준으로 체크
  1070. fGetHardCDList("N", 336, 0 , "/root/temp/checkselpatexpdept"); // 336 진료부서 체크 제외 부서
  1071. var sUserDeptCD = getUserInfo("dutplcecd"); // 로그인 부서
  1072. var ordDeptNode = instance1.selectSingleNode("/root/temp/checkselpatorddept/dept[deptcd='"+ sUserDeptCD +"']"); // 진료가능부서
  1073. var expDeptNode = instance1.selectSingleNode("/root/temp/checkselpatexpdept/hardcd[hardcd='"+sUserDeptCD+"']"); // 진료가능부서 체크 제외 부서
  1074. if( ordDeptNode == null && expDeptNode == null) {
  1075. sRtn = "N";
  1076. }
  1077. model.removeNode("/root/temp/checkselpatorddept");
  1078. model.removeNode("/root/temp/checkselpatexpdept");
  1079. }
  1080. return sRtn;
  1081. }