SMMMO04500.xjs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 수술환자리스트 ( SMMMO04500_수술환자리스트.xfdl - JScript )
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. */
  7. var arErrorCode = new HashArray();
  8. /**
  9. * @desc : 화면 초기화
  10. * @
  11. * @param :
  12. * @return :
  13. * @author : 오지훈
  14. * @---------------------------------------------------
  15. */
  16. function fInitialize_SMMMO04500(){
  17. ds_cond.setColumn(0, "opcnfmdd", utlf_getCurrentDate());
  18. lf_gethardcdArrayList(new Array(
  19. "hardcd|445"
  20. ),
  21. new Array(
  22. "ds_hardcd"
  23. )
  24. );
  25. appf_getCodeList([{dsNm: "ds_M0014", cdGrpId: "M0014"}
  26. , {dsNm: "ds_M0015", cdGrpId: "M0015"}
  27. , {dsNm: "ds_M0017", cdGrpId: "M0017"}
  28. , {dsNm: "ds_M0623", cdGrpId: "M0623"}], true);
  29. lf_getHardCDList("N", 18, 0, ds_hardcdno); //마취통증의학과 부서코드 조회
  30. lf_reqOpRoomList(ds_cond.getColumn(0, "opcnfmdd"), ds_oproomlist, ds_alloproomlist, "total");
  31. var nRow = ds_oproomlist.insertRow(0);
  32. ds_oproomlist.setColumn(nRow, "oproomcd", "0000"); //수술방명 조회
  33. ds_oproomlist.setColumn(nRow, "oproomnm", "방없음"); //수술방콤보 Item '방없음'추가
  34. ds_oproomlist2.copyData(ds_oproomlist);
  35. frmf_addComboItem("Div00.cmb_oproomcd"); //조회조건 수술방콤보 Item '전체'추가
  36. Div00.cmb_oproomcd.index = 0; //수술방 콤보는 default '전체'설정
  37. var dutplcecd = sysf_getUserInfo("dutplcecd");
  38. var perfdrid = "-";
  39. var reopenflag = parent.parent.ds_reopen.getColumn(0, "reopenflag"); //진료대상자 리스트 open여부
  40. if(reopenflag == "Y"){ //수술환자리스트 다시 열린 경우, 진료대상자 main에 ordtab의 condlist를 복사, condlist는 닫힐때 진료대상자의 정보를 저장함
  41. try {
  42. ds_cond.copyData(parent.parent.ds_reopen_condlist);
  43. dutplcecd = ds_cond.getColumn(0, "perfdeptcd");
  44. perfdrid = ds_cond.getColumn(0, "perfdrid");
  45. } catch(E) {
  46. }
  47. parent.parent.ds_reopen.setColumn(0, "reopenflag", "N");
  48. }
  49. var jobposcd = sysf_getUserInfo("jobposcd");
  50. if (jobposcd == "1775" || jobposcd == "1800") {
  51. perfdrid = "-"; //의사
  52. } else {
  53. perfdrid = sysf_getUserInfo("userid"); //의사
  54. }
  55. setDeptCodeList(dutplcecd);
  56. setUserList(dutplcecd, perfdrid);
  57. reqOrderInfoOfCol(ds_reqdata1, ds_gridseq, "SMMMO04500", grd_oppatlist); //수술환자리스트 컬럼 조회 및 설정
  58. if(Div00.cmb_orddept.value == ""){Div00.cmb_orddept.index = 1;}
  59. if(Div00.cmb_orddrid.value == ""){Div00.cmb_orddrid.index = 1;}
  60. fReqOPPatList();
  61. }
  62. function setDeptCodeList(sDeptcd, sOrddd){
  63. lf_mmbfGetDeptCodeComboList(ds_orddept, "D", sOrddd); //부서콤보 조회
  64. frmf_addComboItem("Div00.cmb_orddept"); //부서콤보 Item '전체'추가
  65. if(!utlf_isNull(sDeptcd)) {
  66. Div00.cmb_orddept.value = sDeptcd; //진료과
  67. }
  68. }
  69. function setUserList(sOrddeptcd, sPerfdrid, sOrddd){
  70. lf_mmbfGetUserComboList(ds_userlist, sOrddeptcd, "0330", "", "M", sOrddd, "", "P"); //이전 수술환자리스트 화면의 진료과의 의사콤보 조회
  71. frmf_addComboItem("Div00.cmb_orddrid"); //의사콤보 전체항목 추가
  72. if(utlf_isNull(sPerfdrid))
  73. Div00.cmb_orddrid.index = 1;
  74. else
  75. Div00.cmb_orddrid.value = sPerfdrid; //의사
  76. }
  77. /**
  78. * @desc : 수술환자 선택
  79. * @
  80. * @param :
  81. * @return :
  82. * @author : 오지훈
  83. * @---------------------------------------------------
  84. */
  85. function fSelectOpPat(){
  86. var currow = ds_grd_oppatlist.rowposition;
  87. if(currow < 0){
  88. return;
  89. }
  90. var dutplcecd = sysf_getUserInfo("dutplcecd"); //사용자부서
  91. var instcd = sysf_getUserInfo("dutplceinstcd");
  92. var opstatcd = ds_grd_oppatlist.getColumn(currow, "opstatcd");
  93. var painlessflag = ds_grd_oppatlist.getColumn(currow, "painlessflag"); // 무통마취여부가 N일 경우는 수술마취 확정상태에 따라 Blocking : 2009.02.05 :김영학 (박유미선배 요청)
  94. var pid = ds_grd_oppatlist.getColumn(currow, "pid");
  95. var hngnm = ds_grd_oppatlist.getColumn(currow, "hngnm");
  96. var opcnfmdd = ds_grd_oppatlist.getColumn(currow, "opcnfmdd");
  97. var perfdeptcd = ds_grd_oppatlist.getColumn(currow, "perfdeptcd");
  98. var perfdrid = ds_grd_oppatlist.getColumn(currow, "perfdrid");
  99. var ioflag = ds_grd_oppatlist.getColumn(currow, "ioflag");
  100. var srchdd = ds_cond.getColumn(0, "opcnfmdd");
  101. if(utlf_isNull(perfdeptcd)) perfdeptcd = ds_cond.getColumn(0, "perfdeptcd");
  102. if(utlf_isNull(ioflag)) ioflag = "T";
  103. if(painlessflag == "N") {
  104. if(opstatcd == "00" || opstatcd == "10"){
  105. sysf_messageBox("선택된 환자는 수술확정이 되지", "E007");
  106. return;
  107. }
  108. }
  109. if( sysf_getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
  110. sysf_messageBox("현재 로그인한 '"+ sysf_getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
  111. return false;
  112. }
  113. ds_reqdata.clearData();
  114. ds_reqdata.addRow();
  115. ds_reqdata.setColumn(0, "ioflag" , "T"); //수술환자 ioflag는 T로 설정, 실제로 T는 없으나, 로직처리를 위해 임시로, 실제 ioflag는 patflag
  116. ds_reqdata.setColumn(0, "pid" , pid);
  117. ds_reqdata.setColumn(0, "orddd" , opcnfmdd);
  118. ds_reqdata.setColumn(0, "orddeptcd", perfdeptcd);
  119. ds_reqdata.setColumn(0, "orddrid" , perfdrid);
  120. ds_reqdata.setColumn(0, "patflag" , ioflag); //실제 ioflag는 patflag로 설정
  121. ds_reqdata.setColumn(0, "instcd" , instcd); //기관코드
  122. ds_reqdata.setColumn(0, "srchdd" , srchdd); //기준일자
  123. var oParam = {};
  124. oParam.id = "TRMMO04503";
  125. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  126. oParam.method = "reqGetPamKeyInfo";
  127. oParam.inds = "req=" + "ds_reqdata";
  128. oParam.outds = "ds_pamkeyinfo=pamkeyinfo";
  129. oParam.async = false;
  130. oParam.callback = "cf_TRMMO04503"; //수술환자의 원무키 조회
  131. tranf_submit(oParam);
  132. if(arErrorCode.pop("TRMMO04503") >= 0){
  133. var cnt = ds_pamkeyinfo.rowcount;
  134. if(cnt > 1){
  135. sysf_messageBox("환자의 원무 접수정보가 2건이상 존재 합니다.\n\n처방및 기록을 저장하실 원무 접수 정보를 선택", "I007");
  136. var objArg = new Object();
  137. var ds_param = new Dataset();
  138. ds_param.copyData(ds_pamkeyinfo);
  139. objArg.arg_ds_pamkeyinfo = ds_param;
  140. frmf_modal("SPMMO18300", "SPMMO18300", objArg, "", "", "", "", "", "", "", "", "", "P");
  141. var cretno = frmf_getParameter("SPMMO18300_cretno");
  142. if(cretno == "0") {
  143. sysf_messageBox("환자의 원무 접수정보가 선택 되지", "E007");
  144. return;
  145. } else {
  146. ds_pamkeyinfo.setColumn(0, "cretno", cretno);
  147. }
  148. }
  149. } else {
  150. sysf_messageBox("선택된 환자는 원무 접수 정보가", "E014");
  151. return;
  152. }
  153. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  154. if(fChkScrnDisable()==false){
  155. return;
  156. }
  157. //CP환자 여부 확인
  158. if(fChkCPPatValid(currow)==false){
  159. return;
  160. }
  161. /*
  162. if(fReqOpPatPamInfo(currow)==true){
  163. opener.javascript.fOpenPrcpMainWnd();
  164. }
  165. */
  166. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  167. var mainobj = frmf_getMainViewer();
  168. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  169. if(mainscrnid == "SMMMR00100"){
  170. var prvIntRecPamInfRtn = mainobj.fPrevInitRecPamInfo();
  171. if(prvIntRecPamInfRtn == false){
  172. return;
  173. }// 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  174. }
  175. //상단정보 설정 및 진료기록 처방화면 연동
  176. //var mainObj = getViewer("sysMessage");
  177. if(fReqOpPatPamInfo(currow)==true){
  178. var cpflag = parent.parent.SMMMO04100_getDSRoot("cpflag");
  179. var ordrecflag = parent.parent.SMMMO04100_getDSMainCond("ordrecflag");
  180. var recflag = parent.parent.SMMMO04100_getDSMainCond("recflag");
  181. var chngflag = parent.parent.SMMMO04100_getDSMainCond("chngflag");
  182. if (recflag == "Y") {
  183. curEmrRecObj = frmf_findPopup("SMMRI00400"); //활성화된 진료기록 화면 object loading
  184. curExamRsltObj = frmf_findPopup("SMAER00800"); //활성화된 검사결과 화면 object loading
  185. curNurTprObj = frmf_findPopup("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  186. curNurBSEMRObj = frmf_findPopup("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
  187. curGrphObj = frmf_findPopup("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
  188. curCunsultObj = frmf_findPopup("SMMMR05000"); //활성화된 Consult 화면 object loading
  189. curExamRsltNewObj = frmf_findPopup("SMMMI00100"); //활성화된 검사결과 화면 object loading
  190. //if(curEmrRecObj != null){curEmrRecObj.javascript.fClose();} //진료기록 화면 close
  191. var wndobj = frmf_findPopup("SMMRI00400");
  192. if(!utlf_isNull(wndobj))
  193. {
  194. frmf_setParameter("SMMRI00400_param_pid" , parent.parent.SMMMO04100_getPid());
  195. frmf_setParameter("SMMRI00400_param_chosflag", "");//model.getValue("/root/main/paminfo/list/ordtype")); 어디에 있는 노드지?
  196. wndobj.fInitalize();
  197. frmf_setFocusPop("SMMRI00400");
  198. }
  199. if(!utlf_isNull(curExamRsltObj)){
  200. curExamRsltObj.ds_singdata.setColumn(0, "srchpid", pid);
  201. curExamRsltObj.btn_srch.onclick.fireEvent(curExamRsltObj.btn_srch, new ClickEventInfo);
  202. } //검사결과 화면 refresh;
  203. if(!utlf_isNull(curNurTprObj)){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
  204. curNurTprObj.fInitialize("init");
  205. } //간호 TPR 화면 refresh;
  206. if(!utlf_isNull(curNurBSEMRObj)){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
  207. curNurBSEMRObj.fInitialize("init");
  208. } //혈당간호기록 refresh;
  209. if(!utlf_isNull(curGrphObj)){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
  210. curGrphObj.fInitialize();
  211. } //그래프 서식 refresh;
  212. //if(curCunsultObj != null && consulyn !="T"){
  213. if(!utlf_isNull(curCunsultObj)){
  214. curCunsultObj.fInitalize();
  215. } //그래프 서식 refresh;
  216. if(!utlf_isNull(curExamRsltNewObj)){
  217. curExamRsltNewObj.ds_singdata.setColumn(0, "srchpid", pid );
  218. curExamRsltNewObj.btn_srch.onclick.fireEvent(curExamRsltNewObj.btn_srch, new ClickEventInfo);
  219. } //검사결과 화면 NEW refresh;
  220. curCpObj = mainobj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  221. curPrcpObj = mainobj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  222. curCpSrchObj = mainobj.frmf_findPopup("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  223. if(!utlf_isNull(curPrcpObj)) {curPrcpObj.fPrcpWndClose(); } ////활성화된 처방Main 화면이 있는 경우 close
  224. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  225. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  226. frmf_clearParameter("SMMMO04100_ANSWCNT");
  227. parent.parent.fChngEMRScrn();// 진료기록 Open
  228. } else {
  229. parent.parent.fOpenPrcpMainWnd();
  230. //mainObj.window.javascript.openEmrScrn("SMMMO00100"); //처방화면 open
  231. }
  232. }
  233. /*
  234. model.setValue(opener.root.cpflag, "N"); //처방open
  235. if(fReqOpPatPamInfo(currow)== true){
  236. if(ordrecflag == "N"){
  237. fOpenOrdRecMainWnd();
  238. }else{
  239. fOpenEmptyWnd(); //기록지연결 여부 N인 경우, main화면 빈화면 교체, 화면상단정보 설정 및 처방화면 OPEN
  240. }
  241. }
  242. if(getUserInfo("dutplcecd") == "13200"){ //로그인한 의사가 마취통증의학과인 경우
  243. open("SMMMR03700"); //수술환자리스트의 경우 메인화면에 마취수술기록지가 떠야함
  244. }*/
  245. }
  246. function cf_TRMMO04503(sSvcId, nErrorCode, sErrorMsg) {
  247. arErrorCode.push(sSvcId, nErrorCode);
  248. }
  249. /**
  250. * @desc : 수술환자 기본정보설정
  251. * @
  252. * @param :
  253. * @return :
  254. * @author : 오지훈
  255. * @---------------------------------------------------
  256. */
  257. function fReqOpPatPamInfo(iRow){
  258. var ioflag = "T" // 수술일 경우 ioflag:T
  259. var pid = ds_grd_oppatlist.getColumn(iRow, "pid");
  260. var opcnfmdd = ds_grd_oppatlist.getColumn(iRow, "opcnfmdd");
  261. var cretno = ds_pamkeyinfo.getColumn(0, "cretno");
  262. var instcd = ds_grd_oppatlist.getColumn(iRow, "instcd");
  263. var perfdeptcd = ds_grd_oppatlist.getColumn(iRow, "perfdeptcd");
  264. var perfdrid = ds_grd_oppatlist.getColumn(iRow, "perfdrid");
  265. var patflag = ds_grd_oppatlist.getColumn(iRow, "ioflag");
  266. var procflag = "F"; // 최초조회:F , 재조회:R
  267. var cnstopflag = ds_grd_oppatlist.getColumn(iRow, "cnstopflag");
  268. var oprsrvno = ds_grd_oppatlist.getColumn(iRow, "oprsrvno");
  269. var mainoprsrvno = ds_grd_oppatlist.getColumn(iRow, "mainoprsrvno");
  270. /* // 협진수술일때 부수술일 경우 주수술의 기록지가 뜨는 로직 삽입 : 2008. 08.27 (박유미 요청)
  271. if (cnstopflag == "Y") {
  272. if (mainoprsrvno != "-") {
  273. oprsrvno = mainoprsrvno;
  274. }
  275. }
  276. */
  277. var ophistno = ds_grd_oppatlist.getColumn(iRow, "ophistno");
  278. var srchdd = ds_cond.getColumn(0, "opcnfmdd"); //조회일자
  279. var param = ioflag + "▦" +
  280. pid + "▦" +
  281. opcnfmdd + "▦" +
  282. cretno + "▦" +
  283. instcd + "▦" +
  284. perfdeptcd + "▦" +
  285. perfdrid + "▦" +
  286. patflag + "▦" +
  287. procflag + "▦" +
  288. oprsrvno + "▦" +
  289. ophistno + "▦" +
  290. srchdd;
  291. return appf_initPatientInfo(param);
  292. }
  293. /**
  294. * @desc : 수술환자리스트 조회
  295. * @
  296. * @param :
  297. * @return :
  298. * @author : 오지훈
  299. * @---------------------------------------------------
  300. */
  301. function fReqOPPatList() {
  302. parent.parent.ds_cond_oppatlist.copyData(ds_cond);
  303. //마취통증의학과와 조회진료과가 동일한 경우는 전체 조회 처리
  304. //서버로직으로의 처리는 속도영향이 있음으로 web에서 처리
  305. //2008. 07. 29. 오지훈
  306. ds_reqOpPat.copyData(ds_cond);
  307. var anstpaindeptcd = ds_hardcdno.getColumn(0, "hardcd");
  308. if(anstpaindeptcd == ds_cond.getColumn(0, "perfdeptcd")){
  309. ds_reqOpPat.setColumn(0, "perfdeptcd", "-"); //집도과 전체설정
  310. ds_reqOpPat.setColumn(0, "perfdrid" , "-"); //집도의 전체설정
  311. }
  312. var compsrefcnts = ds_gridseq.getColumn(0, "compsrefcnts");
  313. var compssizecnts = ds_gridseq.getColumn(0, "compssizecnts");
  314. if(utlf_isNull(compsrefcnts)) compsrefcnts = "";
  315. if(utlf_isNull(compssizecnts)) compssizecnts = "";
  316. ds_reqOpPat.addColumn("compsrefcnts", "string", 1024);
  317. ds_reqOpPat.addColumn("compssizecnts", "string", 1024);
  318. ds_reqOpPat.setColumn(0, "compsrefcnts", compsrefcnts);
  319. ds_reqOpPat.setColumn(0, "compssizecnts", compssizecnts);
  320. var oParam = {};
  321. oParam.id = "TRMMO04501";
  322. oParam.service = "prcpmngtapp.EtcPrcpMngt";
  323. oParam.method = "reqGetOPPatList";
  324. oParam.inds = "req=" + "ds_reqOpPat";
  325. oParam.outds = "ds_grd_oppatlist=oppatlist";
  326. oParam.async = true;
  327. oParam.callback = "cf_TRMMO04501";
  328. tranf_submit(oParam);
  329. }
  330. function cf_TRMMO04501(sSvcId, nErrorCode, sErrorMsg) {
  331. if(nErrorCode > -1)
  332. ds_totcnt.setColumn(0, "totcnt", ds_grd_oppatlist.rowcount);
  333. var orderby = ds_cond.getColumn(0, "orderby");
  334. var sortcol = ds_cond.getColumn(0, "sortcol");
  335. if(sortcol != "" && orderby != "")
  336. ds_grd_oppatlist.keystring.current = "S:" + orderby + sortcol;
  337. }
  338. /**
  339. * @desc : 그리드 data 엑셀화일로 저장
  340. * @
  341. * @param :
  342. * @return :
  343. * @author : 오지훈
  344. * @---------------------------------------------------
  345. */
  346. function fSaveGridToExcel(){
  347. grdf_exportExcel(grd_oppatlist, "수술환자리스트", "수술");
  348. }
  349. /**
  350. * @desc : (수술)관심환자등록창 호출
  351. * @
  352. * @param :
  353. * @return :
  354. * @author : 오지훈
  355. * @---------------------------------------------------
  356. */
  357. function fCallWndConcPatRgst(){
  358. var currow = ds_grd_oppatlist.rowposition;
  359. var pid = ds_grd_oppatlist.getColumn(currow, "pid");
  360. var hngnm = ds_grd_oppatlist.getColumn(currow, "hngnm");
  361. var indd = ds_grd_oppatlist.getColumn(currow, "opcnfmdd");
  362. var cretno = ""
  363. var seqno = ""
  364. var instcd = ds_grd_oppatlist.getColumn(currow, "instcd");
  365. var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  366. frmf_setParameter("param", param);
  367. frmf_modal("SPMMO08200", "SPMMO08200", null, null, null, null, null, null, null, null, null, null, "M");
  368. fReqOPPatList();
  369. }
  370. /**
  371. * @desc : (수술)주의요망환자창 호출
  372. * @
  373. * @param :
  374. * @return :
  375. * @author : 엄영만
  376. * @---------------------------------------------------
  377. */
  378. function fCallWndWarnPat(){
  379. var nCurRow = ds_grd_oppatlist.rowposition;
  380. var sPid = ds_grd_oppatlist.setColumn(nCurRow, "pid");
  381. var sHngnm = ds_grd_oppatlist.setColumn(nCurRow, "hngnm");
  382. frmf_setParameter("SMMMO19100_warncd" , sPid);
  383. frmf_setParameter("SMMMO19100_warnnm" , sHngnm);
  384. frmf_modal("SMMMO19100", "SMMMO19100", null, null, null, null, null, null, null, null, null, null, "M");
  385. frmf_clearParameter("SMMMO19100_warncd");
  386. frmf_clearParameter("SMMMO19100_warnnm");
  387. }
  388. /**
  389. * @desc : 수술부위확인 점검표 창 호출
  390. * @
  391. * @param : oprsrvno
  392. * @return :
  393. * @author : 손성훈
  394. * @---------------------------------------------------
  395. */
  396. function fOpchk(){
  397. /* 수술부위 확인점검표 칠곡 적용.2012.05.24_손성훈
  398. var dutplceinstcd = getUserInfo("dutplceinstcd");
  399. if (dutplceinstcd == "032"){
  400. //messagebox("준비중 입니다","I");
  401. return;
  402. }
  403. */
  404. var currow = ds_grd_oppatlist.rowposition;
  405. var oprsrvno = ds_grd_oppatlist.getColumn(currow, "oprsrvno");
  406. frmf_setParameter("SMMNP00208_PARM_OPRSRVNO", oprsrvno);
  407. //setParameter("SMMNP00208_PARM_PID", model.getValue("/root/init/HideData/pid"));
  408. frmf_modal("SMMNP00208", "SMMNP00208", null, null, null, null, null, null, null, null, null, null, "M");
  409. }
  410. /**
  411. * @desc : 수술환자 CP적용여부 확인
  412. * @
  413. * @param :
  414. * @return :
  415. * @author : 오지훈
  416. * @---------------------------------------------------
  417. */
  418. function fChkCPPatValid(currow){
  419. var pid = ds_pamkeyinfo.getColumn(0, "pid");
  420. var orddd = ds_pamkeyinfo.getColumn(0, "orddd");
  421. var cretno= ds_pamkeyinfo.getColumn(0, "cretno");
  422. var ioflag= ds_pamkeyinfo.getColumn(0, "ioflag");
  423. var hngnm = "";//ds_pamkeyinfo.getColumn(0, "hngnm");
  424. ds_reqPatValid.clearData();
  425. ds_reqPatValid.addRow();
  426. ds_reqPatValid.setColumn(0, "pid" , pid);
  427. ds_reqPatValid.setColumn(0, "orddd" , orddd);
  428. ds_reqPatValid.setColumn(0, "cretno" , cretno);
  429. ds_reqPatValid.setColumn(0, "hngnm" , hngnm); //추가(2008.08.25)
  430. ds_reqPatValid.setColumn(0, "prcpgenrflag", ioflag);
  431. ds_reqPatValid.setColumn(0, "srchtabflag" , "D"); //대상자리스트탭(I/D):조회결과orddd,cretno는 외래이력의 수전정보임
  432. var oParam = {};
  433. oParam.id = "TRMMO04303";
  434. oParam.service = "prcpbaseapp.CpMngt";
  435. oParam.method = "reqGePattValidity";
  436. oParam.inds = "req=" + "ds_reqPatValid";
  437. oParam.outds = "ds_rsltgetdata=getdata";
  438. oParam.async = false;
  439. oParam.callback = "cf_TRMMO04303"; //수술환자의 CP적용 여부 확인
  440. tranf_submit(oParam);
  441. if(arErrorCode.pop("TRMMO04303") >= 0){
  442. if(ds_rsltgetdata.rowcount < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  443. parent.parent.SMMMO04100_setDSRoot("cpflag", "N"); //처방open
  444. return true;
  445. } else { //CP적용환자 tbl에 유효한 데이터가 있는 경우
  446. dsf_setDefaultVal(ds_rsltgetdata, "appyn:Y");
  447. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  448. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  449. var cpgappno = ds_rsltgetdata.getColumn(0, "cpgappno");
  450. var msgcnts = ds_rsltgetdata.getColumn(0, "msgcnts");
  451. var msgflag = ds_rsltgetdata.getColumn(0, "msgflag");
  452. var prtlflagcd = ds_rsltgetdata.getColumn(0, "prtlflagcd"); //01:CP,02:CPG
  453. if(appstat == 52){
  454. //case52: 입원장 CP
  455. var rtnval = sysf_messageBox(msgcnts, msgflag);
  456. if(rtnval == 6){
  457. parent.parent.SMMMO04100_setDSRoot("cpflag", "X"); // CP Main open
  458. return true;
  459. } else {
  460. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  461. // if(fUpdtCPPatAppStatVal(41) != false && !utlf_isNull(ds_grd_oppatlist.getColumn(currow, "cpyn"))){ //41 : CP 취소
  462. // ds_grd_oppatlist.setColumn(currow, "cpyn", "N");
  463. // return;
  464. // } else {
  465. return false;
  466. // }
  467. }
  468. } else {
  469. if( prtlflagcd == "02" && utlf_isNull(appstat) && msgflag == "P" ){ //모니터링구분:대상자탐색 Case. CPG & 호출flag:Popup(appyn:평가용여부)
  470. //CPG적용대상자 알림 팝업 호출 (2009.05.04)
  471. frmf_setParameter("SMMMO041_hngnm" , hngnm);
  472. frmf_setParameter("SMMMO041_pid" , pid);
  473. frmf_setParameter("SMMMO041_cretno" , cretno);
  474. frmf_setParameter("SMMMO041_orddd" , orddd);
  475. frmf_setParameter("SMMMO041_ordtype" , ioflag);
  476. frmf_setParameter("SMMMO041_orddeptcd" , perfdeptcd);
  477. frmf_setParameter("SMMMO041_slipnm" , msgcnts); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
  478. frmf_setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
  479. frmf_setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
  480. frmf_setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
  481. frmf_modal("SPMMP03200", "SPMMP03200", null, null, null, null, null, null, null, null, null, null, "P"); //CP대상자 알람 팝업
  482. // if( cpgappno > 0 && cpgappno != frmf_getParameter("SPMMP032_cpgappno") && !utlf_isNull(ds_grd_oppatlist.getColumn(currow, "cpyn"))){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
  483. // ds_grd_oppatlist.setColumn(currow, "cpyn", "N");
  484. // }
  485. if( !utlf_isNull(frmf_getParameter("SPMMP032_cpgappno")) && frmf_getParameter("SPMMP032_cpgappno") > 0 ){
  486. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y"); //CPG적용한 경우, MGPS 호출
  487. } else {
  488. parent.parent.SMMMO04100_setDSRoot("cpflag", "N"); //미적용 시 처방 화면 호출
  489. }
  490. frmf_clearParameter("SPMMP032_cpgappno");
  491. frmf_clearParameter("SMMMO041_hngnm");
  492. frmf_clearParameter("SMMMO041_pid");
  493. frmf_clearParameter("SMMMO041_cretno");
  494. frmf_clearParameter("SMMMO041_orddd");
  495. frmf_clearParameter("SMMMO041_ordtype");
  496. frmf_clearParameter("SMMMO041_orddeptcd");
  497. frmf_clearParameter("SMMMO041_slipnm");
  498. frmf_clearParameter("SMMMO041_cpgmntrflag");
  499. frmf_clearParameter("SMMMO041_cpgappno");
  500. frmf_clearParameter("SMMMO041_cpgnm");
  501. return true;
  502. } else {
  503. //case 12 : D0 ~ D1 CP
  504. //그외 case : (10 : 진행중...)
  505. if( !utlf_isNull(msgcnts) && !utlf_isNull(msgflag) ){
  506. //12: D0 처방일과 == 입원일 -> Drop 유도
  507. //그외: 오늘날짜 > CP퇴원예정일 -> Drop 유도
  508. sysf_messageBox(msgcnts, msgflag);
  509. frmf_setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
  510. frmf_setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
  511. frmf_modal("SPMMP02300", "SPMMP02300", null, null, null, null, null, null, null, null, null, null, "M"); //Drop 팝업 호출
  512. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  513. if( frmf_getParameter("SMMMO043_drop") == "Y" ){
  514. //ds_grd_erpatlist.setColumn(currow, "cpyn", "N");
  515. }else{
  516. return false;
  517. }
  518. frmf_clearParameter("SMMMO043_cpgappno");
  519. frmf_clearParameter("SMMMO043_drop");
  520. return true;
  521. }
  522. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y");
  523. return true;
  524. }
  525. }
  526. }
  527. }
  528. }
  529. function cf_TRMMO04303(sSvcId, nErrorCode, sErrorMsg) {
  530. arErrorCode.push(sSvcId, nErrorCode);
  531. }
  532. function fPrtPatList() {
  533. if(utlf_isNull(ds_cond.getColumnInfo("orddeptnm"))) ds_cond.addColumn("orddeptnm", "string");
  534. if(utlf_isNull(ds_cond.getColumnInfo("orddrnm"))) ds_cond.addColumn("orddrnm", "string");
  535. if(utlf_isNull(ds_cond.getColumnInfo("oproom"))) ds_cond.addColumn("oproom", "string");
  536. ds_cond.setColumn(0, "orddeptnm", Div00.cmb_orddept.text);
  537. ds_cond.setColumn(0, "orddrnm", Div00.cmb_orddept.text);
  538. ds_cond.setColumn(0, "oproom", Div00.cmb_oproomcd.text);
  539. var objDOM = rptf_createDOM(); // DOM 객체 설정
  540. rptf_setNodeListToDOM(objDOM, "/root/main/oppatinfo/oppatlist", ds_grd_oppatlist); // 데이터셋 1
  541. rptf_setNodeListToDOM(objDOM, "/root/main/cond", ds_cond); // 데이터셋 2
  542. //sysf_trace(objDOM.documentElement.source); // XML 내용출력
  543. var objParam = new Object();
  544. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  545. var option = "open=1;save=1;directprint=0;print=1;zoom=0;callback=cbf_rpt_onFinishPrintXML";
  546. rptf_exeReportPreview30(["RPMMO04105"],[objParam], option);
  547. }
  548. /**
  549. * @desc : 안전사고 보고
  550. * @param :
  551. * @return :
  552. * @author : 엄영만
  553. * @---------------------------------------------------
  554. */
  555. function fPatQi(){
  556. var currow = ds_grd_oppatlist.rowposition
  557. var pid = ds_grd_oppatlist.getColumn(currow, "pid");
  558. var orddd = "";
  559. var cretno = "";
  560. var ordtype = "";
  561. var oprsrvno = ds_grd_oppatlist.getColumn(currow, "oprsrvno");
  562. frmf_setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
  563. frmf_modal("SMMQR00100", "SMMQR00100", null, null, null, null, null, null, null, null, null, null, "M");
  564. }]]></Script>