SMMMO04800.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. CONSULT ( SMMMO04800_CONSULT.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sCNSTPATLIST_PATH = "/root/main/cnstpatinfo/cnstpatlist";
  7. var sORDERBY = "";
  8. /**
  9. * @desc : 화면 초기화
  10. * @
  11. * @param :
  12. * @return :
  13. * @author : 오지훈
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize_SMMMO04800(){
  17. model.removeNodeset(sCNSTPATLIST_PATH);
  18. model.setValue("/root/main/cond/fromdd" ,((getCurrentDate().toDate()).getAddDate(-3)).getDateFormat()); //시작일자는 3일 전
  19. model.setValue("/root/main/cond/todd" , getCurrentDate()); // 종료일자
  20. var openflag = model.getValue(opener.root.list.cnstpatlistflag);
  21. var reopenflag = model.getValue(opener.root.reopen.reopenflag); //진료대상자 리스트 open여부
  22. var chngcolflag = model.getValue(opener.root.chngcol.chngcolflag); //컬럼변경 여부
  23. if(openflag == "N"){
  24. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "A"); //부서코드 콤보
  25. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330");
  26. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  27. model.copyNode(opener.root.temp.cnstpatlist, root.init);
  28. model.setValue(opener.root.list.cnstpatlistflag, "Y");
  29. if(reopenflag !="Y"){ //다시 열린 경우가 아니면, 기본 조회 조건 설정
  30. model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd")); //진료과
  31. model.setValue("/root/main/cond/orddrid" , getUserInfo("userid")); //진료의
  32. model.setValue("/root/main/cond/reqflag" , "-"); //의뢰구분
  33. model.setValue("/root/main/cond/replyn" , "-"); //회신구분
  34. model.refresh();
  35. }else{ //다시 열린 경우, main에 ordtab의 condlist(화면이 닫힐때 설정된 정보)를 그대로 재설정
  36. try {
  37. model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
  38. } catch(E) {
  39. model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd"));
  40. model.setValue("/root/main/cond/orddrid" , getUserInfo("userid"));
  41. model.refresh();
  42. }
  43. //model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
  44. model.setValue(opener.root.reopen.reopenflag, "N");
  45. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , cmb_orddept.value, "0330");
  46. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
  47. }
  48. model.copyNode(opener.root.cond.cnstpatlist, root.main.cond);
  49. //reqOrderInfoOfCol("SMMMO04800", "grd_cnstpatlist"); //외래환자리스트 컬럼 조회 및 설정
  50. }else{ //다시 열린 경우, main에 ordtab의 condlist(화면이 닫힐때 설정된 정보)를 그대로 재설정
  51. model.copyNode(root.init, opener.root.temp.cnstpatlist);
  52. model.copyNode(root.main.cond, opener.root.cond.cnstpatlist);
  53. var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
  54. if(xmlnode != null){
  55. var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  56. var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  57. var frozencol = model.getValue("/root/init/userscrnenvinfo/gridseq/frozencol");
  58. setOrderInfoOfCol("grd_cnstpatlist", refdata, sizedata, frozencol); //수술환자리스트 컬럼 설정, 기존에 조회한 내용으로 처리
  59. }
  60. }
  61. if(chngcolflag == "Y"){ //컬럼설정을 통해 재설정 한 경우, 컬럼순서를 다시 조회 처리
  62. reqOrderInfoOfCol("SMMMO04800", "grd_cnstpatlist"); //외래환자리스트 컬럼 조회 및 설정
  63. model.setValue(opener.root.chngcol.chngcolflag, "N");
  64. }
  65. fReqCnstPatList(model.getValue("/root/main/cond/queryflag"));
  66. opener.javascript.fCtrlBtnDisable(false);
  67. }
  68. /**
  69. * @desc : 의뢰(CONSULT)환자 조회
  70. * @
  71. * @param : queryflag - 쿼리구분
  72. * orgin 조회버튼 클릭
  73. * recv 과별받은 건
  74. * req 과별보낸 건
  75. * pid 환자별 보낸 건
  76. * @return :
  77. * @author : 오지훈
  78. * @---------------------------------------------------
  79. */
  80. function fReqCnstPatList(queryflag){
  81. model.setValue("/root/main/cond/queryflag", queryflag);
  82. model.copyNode("/root/send/reqdata", "/root/main/cond");
  83. var compsrefcnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
  84. var compssizecnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
  85. if(isNull(compsrefcnts)) compsrefcnts = "";
  86. if(isNull(compssizecnts)) compssizecnts = "";
  87. model.makeValue("/root/send/reqdata/compsrefcnts", compsrefcnts);
  88. model.makeValue("/root/send/reqdata/compssizecnts", compssizecnts);
  89. if(submit("TRMMO04801")){
  90. var totrow = grd_cnstpatlist.rows;
  91. model.setValue("/root/main/totcnt/totcnt", totrow-1);
  92. model.copyNode(opener.root.cond.cnstpatlist, root.main.cond);
  93. model.copyNode(opener.root.temp.cnstpatlist, root.init);
  94. }
  95. var orderby = model.getValue("/root/main/cond/orderby");
  96. var sortcol = model.getValue("/root/main/cond/sortcol");
  97. if(sortcol != "" && orderby != ""){
  98. sORDERBY = orderby;
  99. //nodeListSort(grd_oppatlist.nodeset, grd_oppatlist.colAttribute(sortcol, "ref"), sORDERBY);
  100. grd_cnstpatlist.colsort(sortcol) = sORDERBY
  101. grd_cnstpatlist.sort(1, 1, grd_cnstpatlist.rows -1, grd_cnstpatlist.cols -1) = "usersort";
  102. grd_cnstpatlist.gridToInstance();
  103. grd_cnstpatlist.refresh();
  104. }
  105. fChngGrdCellColor();
  106. model.refresh();
  107. }
  108. /**
  109. * @desc : 의뢰(consult)환자 환자기본정보설정
  110. * @
  111. * @param :
  112. * @return :
  113. * @author : 오지훈
  114. * @---------------------------------------------------
  115. */
  116. function fReqCnstPatPamInfo(){
  117. var currow = grd_cnstpatlist.row;
  118. var ioflag = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/ioflag");
  119. var pid = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/pid");
  120. var instcd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/instcd");
  121. var formrecseq = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/formrecseq");
  122. if(ioflag == "O" || ioflag == "S"){
  123. var orddd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/acptorddd");
  124. var cretno= model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/acptcretno");
  125. return; //외래는 현재 협의 중
  126. }else{
  127. var orddd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/orddd");
  128. var cretno= model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/cretno");
  129. }
  130. var param = "C" + "▦" + ioflag + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + formrecseq;
  131. setParameter("condparam", param);
  132. modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  133. var useyn = getParameter("SPMMO08900_rtn_useyn");
  134. if(useyn == "Y"){
  135. setParameter("SPMMO08900_rtn_useyn", "");
  136. return true;
  137. }else{
  138. return false;
  139. }
  140. }
  141. /**
  142. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  143. * @
  144. * @param :
  145. * @return :
  146. * @author : 오지훈
  147. * @---------------------------------------------------
  148. */
  149. function fSelectCnstPat(){
  150. var ordrecflag = model.getValue(opener.root.main.cond.ordrecflag); //기록지연결 여부
  151. var currow = grd_cnstpatlist.row;
  152. if(currow < 1){
  153. return;
  154. }
  155. var ioflag = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/ioflag");
  156. var reqptype = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/reqptype");
  157. var pid = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/pid");
  158. var hngnm = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/hngnm");
  159. if( getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
  160. messageBox("현재 로그인한 '"+ getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
  161. return false;
  162. }
  163. if(ioflag == "O"){
  164. messageBox("의뢰환자리스트에서 외래환자의 처방 및 진료기록을 작성", "E001");
  165. return;
  166. }
  167. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  168. if(fChkScrnDisable()==false){
  169. return;
  170. }
  171. //CP환자 여부 확인
  172. if(fChkCPPatValid(currow)==false){
  173. return;
  174. }
  175. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  176. var mainobj = getMainViewer();
  177. var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
  178. if(mainscrnid == "SMMMR00100"){
  179. var prvIntRecPamInfRtn = mainobj.window.javascript.fPrevInitRecPamInfo();
  180. if(prvIntRecPamInfRtn == false){
  181. return;
  182. }// 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  183. }
  184. //상단정보 설정
  185. var mainObj = getMainViewer();
  186. //var mainObj = getViewer("sysMessage");
  187. if(fReqCnstPatPamInfo()==true){
  188. opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
  189. var cpflag = opener.model.getValue("/root/cpflag");
  190. var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
  191. var recflag = opener.model.getValue("/root/main/cond/recflag");
  192. var chngflag = opener.model.getValue("/root/main/cond/chngflag");
  193. var mainObj = getMainViewer();
  194. if (recflag == "Y") {
  195. var mainObj = getMainViewer();
  196. curEmrRecObj = getOpenWindow("SMMRI00400"); //활성화된 진료기록 화면 object loading
  197. curExamRsltObj = getOpenWindow("SMAER00800"); //활성화된 검사결과 화면 object loading
  198. curNurTprObj = getOpenWindow("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  199. curNurBSEMRObj = getOpenWindow("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
  200. curGrphObj = getOpenWindow("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
  201. curCunsultObj = getOpenWindow("SMMMR05000"); //활성화된 Consult 화면 object loading
  202. curExamRsltNewObj = getOpenWindow("SMMMI00100"); //활성화된 검사결과 화면 object loading
  203. //if(curEmrRecObj != null){curEmrRecObj.javascript.fClose();} //진료기록 화면 close
  204. var wndobj = getOpenWindow("SMMRI00400");
  205. if(wndobj != null)
  206. {
  207. setParameter("SMMRI00400_param_pid" , model.getValue("/root/source/pid"));
  208. setParameter("SMMRI00400_param_chosflag", model.getValue("/root/main/paminfo/list/ordtype"));
  209. wndobj.javascript.fInitalize();
  210. activateChild("SMMRI00400");
  211. }
  212. if(curExamRsltObj != null){
  213. curExamRsltObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
  214. curExamRsltObj.javascript.btn_srch.dispatch("DOMActivate");
  215. } //검사결과 화면 refresh;
  216. if(curNurTprObj != null){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
  217. curNurTprObj.javascript.fInitialize("init");
  218. } //간호 TPR 화면 refresh;
  219. if(curNurBSEMRObj != null){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
  220. curNurBSEMRObj.javascript.fInitialize("init");
  221. } //혈당간호기록 refresh;
  222. if(curGrphObj != null){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
  223. curGrphObj.javascript.fInitialize();
  224. } //그래프 서식 refresh;
  225. // if(curCunsultObj != null && consulyn !="T"){
  226. if(curCunsultObj != null && consulyn !="T"){
  227. curCunsultObj.javascript.fInitalize();
  228. } //그래프 서식 refresh;
  229. if(curExamRsltNewObj != null){
  230. curExamRsltNewObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
  231. curExamRsltNewObj.javascript.btn_srch.dispatch("DOMActivate");
  232. } //검사결과 화면 NEW refresh;
  233. curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
  234. curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
  235. curCpSrchObj = mainObj.javascript.getOpenWindow("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  236. if(curPrcpObj != null) {curPrcpObj.javascript.fPrcpWndClose(); } ////활성화된 처방Main 화면이 있는 경우 close
  237. if(curCpObj != null){curCpObj.javascript.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  238. if(curCpSrchObj != null){curCpSrchObj.javascript.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  239. clearParameter("SMMMO04100_ANSWCNT");
  240. opener.javascript.fChngEMRScrn();// 진료기록 Open
  241. } else {
  242. opener.javascript.fOpenPrcpMainWnd();
  243. //mainObj.window.javascript.openEmrScrn("SMMMO00100"); //처방화면 open
  244. }
  245. }
  246. /*
  247. if(fReqCnstPatPamInfo(currow)==true){
  248. opener.javascript.fOpenPrcpMainWnd();
  249. }
  250. */
  251. /*
  252. if(fReqCnstPatPamInfo()== true){
  253. if(ordrecflag == "N"){ //기록지연결 여부 Y인 경우, main화면 진료기록지 교체, 화면상단정보 설정 및 처방화면 OPEN
  254. fOpenOrdRecMainWnd();
  255. }else{
  256. fOpenEmptyWnd(); //기록지연결 여부 N인 경우, main화면 빈화면 교체, 화면상단정보 설정 및 처방화면 OPEN
  257. }
  258. }*/
  259. }
  260. /**
  261. * @desc : 그리드 data 엑셀화일로 저장
  262. * @
  263. * @param :
  264. * @return :
  265. * @author : 오지훈
  266. * @---------------------------------------------------
  267. */
  268. function fSaveGridToExcel(){
  269. saveGridToExcel(grd_cnstpatlist);
  270. }
  271. /**
  272. * @desc : CP환자 여부 검사
  273. * @
  274. * @param :
  275. * @return :
  276. * @author : 오지훈
  277. * @---------------------------------------------------
  278. */
  279. function fChkCPPatValid(currow){
  280. var pid = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/pid");
  281. var orddd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/orddd");
  282. var cretno = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/cretno");
  283. var ioflag = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/ioflag");
  284. var hngnm = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/hngnm");
  285. var orddeptcd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/orddeptcd");
  286. var acptorddd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/acptorddd");
  287. var acptcretno = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/acptcretno");
  288. if(ioflag == "O"){ //외래인 경우, 외래접수, 외래생성번호 있는지 확인 후에 처방화면을 open
  289. if(acptorddd != "" && acptcretno != ""){
  290. model.setValue(opener.root.cpflag, "N");
  291. return true;
  292. }else{
  293. messageBox("[" + hngnm + "]환자는 외래접수가 되지", "E007");
  294. return false;
  295. }
  296. }
  297. model.removeNodeset("/root/send/reqdata");
  298. model.makeValue("/root/send/reqdata/pid" , pid);
  299. model.makeValue("/root/send/reqdata/orddd" , orddd);
  300. model.makeValue("/root/send/reqdata/cretno" , cretno);
  301. model.makeValue("/root/send/reqdata/hngnm" , hngnm); //추가(2008.08.25)
  302. model.makeValue("/root/send/reqdata/prcpgenrflag", ioflag);
  303. model.makeValue("/root/send/reqdata/srchtabflag" , "D"); //대상자리스트탭(I/D):조회결과orddd,cretno는 외래이력의 수전정보임
  304. if(submit("TRMMO04303")==true){ //CP적용 여부 확인
  305. var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
  306. if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  307. model.setValue(opener.root.cpflag, "N"); //처방open
  308. return true;
  309. }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
  310. var appstat = model.getValue("/root/init/rsltgetdata/getdata/appstat");
  311. var cpgnm = model.getValue("/root/init/rsltgetdata/getdata/cpgnm");
  312. var cpgappno = model.getValue("/root/init/rsltgetdata/getdata/cpgappno");
  313. var msgcnts = model.getValue("/root/init/rsltgetdata/getdata/msgcnts");
  314. var msgflag = model.getValue("/root/init/rsltgetdata/getdata/msgflag");
  315. var prtlflagcd = model.getValue("/root/init/rsltgetdata/getdata/prtlflagcd"); //01:CP,02:CPG
  316. if(appstat == 52){
  317. //case52: 입원장 CP
  318. var rtnval = messageBox(msgcnts, msgflag);
  319. if(rtnval == 6){
  320. model.setValue(opener.root.cpflag, "X"); // CP Main open
  321. return true;
  322. }else{
  323. model.setValue(opener.root.cpflag, "N");
  324. if(fUpdtCPPatAppStatVal(41) != false && instance1.selectSingleNode(sCNSTPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //41 : CP 취소
  325. model.setValue(sCNSTPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  326. return;
  327. }else{
  328. return false;
  329. }
  330. }
  331. }else{
  332. if( prtlflagcd == "02" && isNull(appstat) && msgflag == "P" ){ //모니터링구분:대상자탐색 Case. CPG & 호출flag:Popup(appyn:평가용여부)
  333. //CPG적용대상자 알림 팝업 호출 (2009.05.04)
  334. setParameter("SMMMO041_hngnm" , hngnm);
  335. setParameter("SMMMO041_pid" , pid);
  336. setParameter("SMMMO041_cretno" , cretno);
  337. setParameter("SMMMO041_orddd" , orddd);
  338. setParameter("SMMMO041_ordtype" , ioflag);
  339. setParameter("SMMMO041_orddeptcd" , orddeptcd);
  340. setParameter("SMMMO041_slipnm" , model.getValue(root.init.rsltgetdata.getdata.msgcnts)); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
  341. setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
  342. setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
  343. setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
  344. modal("SPMMP03200"); //CP대상자 알람 팝업
  345. if( cpgappno > 0 && cpgappno != getParameter("SPMMP032_cpgappno") && instance1.selectSingleNode(sCNSTPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
  346. model.setValue(sCNSTPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  347. }
  348. if( !isNull(getParameter("SPMMP032_cpgappno")) && getParameter("SPMMP032_cpgappno") > 0 ){
  349. model.setValue(opener.root.cpflag, "Y"); //CPG적용한 경우, MGPS 호출
  350. }else{
  351. model.setValue(opener.root.cpflag, "N"); //미적용 시 처방 화면 호출
  352. }
  353. clearParameter("SPMMP032_cpgappno");
  354. clearParameter("SMMMO041_hngnm");
  355. clearParameter("SMMMO041_pid");
  356. clearParameter("SMMMO041_cretno");
  357. clearParameter("SMMMO041_orddd");
  358. clearParameter("SMMMO041_ordtype");
  359. clearParameter("SMMMO041_orddeptcd");
  360. clearParameter("SMMMO041_slipnm");
  361. clearParameter("SMMMO041_cpgmntrflag");
  362. clearParameter("SMMMO041_cpgappno");
  363. clearParameter("SMMMO041_cpgnm");
  364. return true;
  365. }else{
  366. //case 12 : D0 ~ D1 CP
  367. //그외 case : (10 : 진행중...)
  368. if( !isNull(msgcnts) && !isNull(msgflag) ){
  369. //12: D0 처방일과 == 입원일 -> Drop 유도
  370. //그외: 오늘날짜 > CP퇴원예정일 -> Drop 유도
  371. messageBox(msgcnts, msgflag);
  372. setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
  373. setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
  374. modal("SPMMP02300"); //Drop 팝업 호출
  375. model.setValue(opener.root.cpflag, "N");
  376. if( getParameter("SMMMO043_drop") == "Y" ){
  377. model.setValue(sINPATLIST_PATH + "[" + currow + "]/cpyn", "N");
  378. }else{
  379. return false;
  380. }
  381. clearParameter("SMMMO043_cpgappno");
  382. clearParameter("SMMMO043_drop");
  383. return true;
  384. }
  385. model.setValue(opener.root.cpflag, "Y");
  386. return true;
  387. }
  388. }
  389. }
  390. }
  391. }
  392. /**
  393. * @desc : 미수행처방관리 화면 Open
  394. * @
  395. * @param :
  396. * @return :
  397. * @author : 오지훈
  398. * @---------------------------------------------------
  399. */
  400. function fOpenInFinPrcp(){
  401. var currow = grd_cnstpatlist.row;
  402. if(currow < 1){
  403. return;
  404. }
  405. var pid = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/pid");
  406. var orddeptcd = model.getValue("/root/main/cond/orddeptcd");
  407. var orddrid = model.getValue("/root/main/cond/orddrid");
  408. setParameter("SMMMO02800_pid" , pid);
  409. setParameter("SMMMO02800_ioflag" , "I");
  410. setParameter("SMMMO02800_orddeptcd", orddeptcd);
  411. setParameter("SMMMO02800_orddrid" , orddrid);
  412. open("SMMMO02800");
  413. }
  414. /**
  415. * @desc : (입원)관심환자등록창 호출
  416. * @
  417. * @param :
  418. * @return :
  419. * @author : 오지훈
  420. * @---------------------------------------------------
  421. */
  422. function fCallWndConcPatRgst(){
  423. var currow = grd_cnstpatlist.row;
  424. var pid = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/pid");
  425. var hngnm = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/hngnm");
  426. var orddd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/orddd");
  427. var cretno = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/cretno");
  428. var seqno = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/seqno");
  429. var instcd = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/instcd");
  430. var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + orddd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  431. setParameter("param", param);
  432. open("SPMMO08200");
  433. //modal("SPMMO08200");
  434. //fReqCnstPatList(model.getValue("/root/main/cond/queryflag"));
  435. }
  436. /**
  437. * @desc : (수술)주의요망환자창 호출
  438. * @
  439. * @param :
  440. * @return :
  441. * @author : 엄영만
  442. * @---------------------------------------------------
  443. */
  444. function fCallWndWarnPat(){
  445. var nCurRow = grd_cnstpatlist.row;
  446. var sPid = model.getValue(sCNSTPATLIST_PATH + "[" + nCurRow + "]/pid");
  447. var sHngnm = model.getValue(sCNSTPATLIST_PATH + "[" + nCurRow + "]/hngnm");
  448. setParameter("SMMMO19100_warncd" , sPid);
  449. setParameter("SMMMO19100_warnnm" , sHngnm);
  450. modal("SMMMO19100");
  451. clearParameter("SMMMO19100_warncd");
  452. clearParameter("SMMMO19100_warnnm");
  453. }
  454. function fPrtPatList() {
  455. var rptid = "RPMMO04108";
  456. var desNode = "/root/main/cnstpatinfo/cnstpatlist";
  457. model.makeValue("/root/main/cond/orddeptnm", cmb_orddept.label);
  458. model.makeValue("/root/main/cond/reqflagnm", cmb_reqflag.label);
  459. model.makeValue("/root/main/cond/replynnm", cmb_replyn.label);
  460. model.makeValue("/root/main/cond/ioflagnm", combo1.label);
  461. model.makeValue("/root/main/cond/orddrnm", cmb_orddrid.label);
  462. exeReportPreview(rptid, "XMLSTR", desNode);
  463. }
  464. /**
  465. * @desc : 대기환자 색상 설정
  466. * : 내환자적용 환자는 color instance에 ffffff이외의 값이 들어옴
  467. * @param :
  468. * @return :
  469. * @author : 오지훈
  470. * @---------------------------------------------------
  471. */
  472. function fChngGrdCellColor(){
  473. for(var currow = 1; currow < grd_cnstpatlist.rows; currow++){
  474. var eryn = model.getValue(sCNSTPATLIST_PATH + "[" + currow + "]/eryn");
  475. if(!isNull(eryn) && eryn == "Y") { // 응급의뢰이면 글자색 붉은색으로 변경
  476. grd_cnstpatlist.cellstyle("color", currow, grd_cnstpatlist.colRef("eryn")) = "#ff0000";
  477. }
  478. }
  479. grd_cnstpatlist.refresh();
  480. }