SMMMO04400.xjs 43 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[
  3. /*
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. 응급환자리스트 ( SMMMO04400_응급환자리스트.xfdl - JScript )
  6. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  7. */
  8. var arErrorCode = new HashArray();
  9. /**
  10. * @desc : 화면 초기화
  11. * @
  12. * @param :
  13. * @return :
  14. * @author : 오지훈
  15. * @---------------------------------------------------
  16. */
  17. function fInitialize_SMMMO04400(){
  18. ds_cond.setColumn(0, "srchdd", utlf_getCurrentDate());
  19. // var openflag = model.getValue(opener.root.list.erpatlistflag);
  20. // var reopenflag = model.getValue(opener.root.reopen.reopenflag); //진료대상자 리스트 open여부
  21. // var chngcolflag= model.getValue(opener.root.chngcol.chngcolflag); //컬럼변경 여부
  22. // 하드코드 테이블 한번에 조회하도록 프로그램 수정
  23. lf_gethardcdArrayList(new Array(
  24. "hardcdno|1" , //응급의학과 부서코드 조회
  25. "colorflag|113", //색깔변경 구분 Flag 조회
  26. "calltime|190", // 응급실 의사호출 관련 자동 호출 시간
  27. "bpcallyn|226", //응급실 BP호출 적용여부
  28. "hardcd|445",
  29. "hardcd|342"
  30. ),
  31. new Array(
  32. "ds_hardcdno",
  33. "ds_colorflag",
  34. "ds_calltime",
  35. "ds_bpcallyn",
  36. "ds_hardcd",
  37. "ds_hardcd342"
  38. )
  39. );
  40. appf_getCodeList([{dsNm: "ds_M0623", cdGrpId: "M0623"}], true); //공통코드 보험유형 조회
  41. fReqSectionInfo(); //기본구역 정보 조회
  42. var dutplcecd = "-";
  43. var medispclid = "-";
  44. var atdoctid = "-";
  45. var erorddeptcd = "-";
  46. var ermedispclid = "-";
  47. var reopenflag = reopenflag = parent.parent.ds_reopen.getColumn(0, "reopenflag"); //진료대상자 리스트 open여부
  48. if(reopenflag == "Y"){ //다시 열린 경우, main에 ordtab의 condlist(화면이 닫힐때 설정된 정보)를 그대로 재설정
  49. try {
  50. ds_cond.copyData(parent.parent.ds_reopen_condlist);
  51. dutplcecd = ds_cond.getColumn(0, "orddeptcd");
  52. medispclid = ds_cond.getColumn(0, "medispclid");
  53. atdoctid = ds_cond.getColumn(0, "atdoctid");
  54. erorddeptcd = ds_cond.getColumn(0, "erorddeptcd");
  55. ermedispclid = ds_cond.getColumn(0, "ermedispclid");
  56. } catch(E) {
  57. }
  58. parent.parent.ds_reopen.setColumn(0, "reopenflag", "N");
  59. }
  60. setDeptCodeList(dutplcecd);
  61. setUserList(dutplcecd, medispclid, atdoctid);
  62. Div00.cmb_erorddeptcd.value = erorddeptcd;
  63. setErUserList(erorddeptcd, ermedispclid);
  64. //if(chngcolflag == "Y"){ //컬럼설정을 통해 재설정 한 경우, 컬럼순서를 다시 조회 처리
  65. reqOrderInfoOfCol(ds_reqdata1, ds_gridseq, "SMMMO04400", grd_erpatlist); //응급환자리스트 컬럼 조회 및 설정
  66. // model.setValue(opener.root.chngcol.chngcolflag, "N");
  67. //}
  68. fReqERPatList();
  69. }
  70. function setDeptCodeList(sDeptcd, sOrddd){
  71. lf_mmbfGetDeptCodeComboList(ds_orddept, "D", sOrddd); //부서코드 콤보
  72. frmf_addComboItem("Div00.cmb_orddept"); //부서콤보 Item '전체'추가
  73. if(!utlf_isNull(sDeptcd)) {
  74. Div00.cmb_orddept.value = sDeptcd; //진료과
  75. }
  76. }
  77. function setUserList(sOrddeptcd, sMedispclid, sAtdoctid, sOrddd){
  78. ds_userlist.clearData();
  79. ds_userlist2.clearData();
  80. if(sOrddeptcd != "-") {
  81. lf_mmbfGetUserComboList(ds_userlist, sOrddeptcd, "0330", "", "M", sOrddd, "", "P");
  82. lf_mmbfGetUserComboList(ds_userlist2, sOrddeptcd, "0330", "", "A", sOrddd, "", "P");
  83. }
  84. frmf_addComboItem("Div00.cmb_medispclid"); //의사콤보 전체항목 추가
  85. frmf_addComboItem("Div00.cmb_atdoctid"); //의사콤보 전체항목 추가
  86. Div00.cmb_medispclid.value = sMedispclid; //담당교수
  87. Div00.cmb_atdoctid.value = sAtdoctid; //전공의
  88. }
  89. function setErUserList(sOrddeptcd, sErmedispclid, sOrddd){
  90. ds_eruserlist.clearData();
  91. if(sOrddeptcd != "-")
  92. lf_mmbfGetUserComboList(ds_eruserlist, sOrddeptcd, "0330", "", "", sOrddd);
  93. frmf_addComboItem("Div00.cmb_orddrid"); //의사콤보 전체항목 추가
  94. Div00.cmb_orddrid.value = sErmedispclid; //전공의
  95. }
  96. /**
  97. * @desc : 응급실Triage
  98. * @
  99. * @param :
  100. * @return :
  101. * @author : 오지훈
  102. * @---------------------------------------------------
  103. */
  104. function fOpenERTriage(){
  105. var iRow = ds_grd_erpatlist.rowposition;
  106. if(iRow < 0){
  107. return;
  108. }
  109. var sa = ds_grd_erpatlist.getColumn(iRow, "sa");
  110. var temp = sa.split("/");
  111. var paramstr = ds_grd_erpatlist.getColumn(iRow, "pid") + "▦" +
  112. ds_grd_erpatlist.getColumn(iRow, "indd") + "▦" +
  113. ds_grd_erpatlist.getColumn(iRow, "cretno") + "▦" +
  114. temp[0] + "▦" +
  115. temp[1] + "▦" +
  116. ""/*ds_grd_erpatlist.getColumn(iRow, "etctel1")*/+ "▦" +
  117. ds_grd_erpatlist.getColumn(iRow, "hngnm");
  118. frmf_setParameter("SPMNE04400_param", paramstr);
  119. frmf_modal("SPMNE04400", "SPMNE04400", null, null, null, null, null, null, null, null, null, null, "P");
  120. frmf_setParameter("SPMNE04400_param", "");
  121. fReqERPatList();
  122. }
  123. /**
  124. * @desc : 응급환자리스트 조회
  125. * @
  126. * @param :
  127. * @return :
  128. * @author : 오지훈
  129. * @---------------------------------------------------
  130. */
  131. function fReqERPatList(){
  132. parent.parent.ds_cond_erpatlist.copyData(ds_cond);
  133. ds_reqErPat.copyData(ds_cond);
  134. var compsrefcnts = ds_gridseq.getColumn(0, "compsrefcnts");
  135. var compssizecnts = ds_gridseq.getColumn(0, "compssizecnts");
  136. if(utlf_isNull(compsrefcnts)) compsrefcnts = "";
  137. if(utlf_isNull(compssizecnts)) compssizecnts = "";
  138. ds_reqErPat.addColumn("compsrefcnts", "string", 1024);
  139. ds_reqErPat.addColumn("compssizecnts", "string", 1024);
  140. ds_reqErPat.setColumn(0, "compsrefcnts", compsrefcnts);
  141. ds_reqErPat.setColumn(0, "compssizecnts", compssizecnts);
  142. var oParam = {};
  143. oParam.id = "TRMMO04401";
  144. oParam.service = "prcpmngtapp.ErMngt";
  145. oParam.method = "reqGetERPatList";
  146. oParam.inds = "req=" + "ds_reqErPat";
  147. oParam.outds = "ds_grd_erpatlist=erpatlist" + " ds_erpatcnt=erpatcnt";
  148. oParam.async = true;
  149. oParam.callback = "cf_TRMMO04401";
  150. tranf_submit(oParam);
  151. }
  152. function cf_TRMMO04401(sSvcId, nErrorCode, sErrorMsg) {
  153. if(nErrorCode > -1) {
  154. //model.copyNode(opener.root.temp.erpatlist, root.init);
  155. //model.copyNode(opener.root.cond.erpatlist, root.main.cond);
  156. ds_erpatcnt.setColumn(0, "ercurpatcnt", ds_grd_erpatlist.rowcount);
  157. }
  158. var orderby = ds_cond.getColumn(0, "orderby");
  159. var sortcol = ds_cond.getColumn(0, "sortcol");
  160. if(sortcol != "" && orderby != "")
  161. ds_grd_erpatlist.keystring.current = "S:" + orderby + sortcol;
  162. }
  163. /**
  164. * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
  165. * @
  166. * @param :
  167. * @return :
  168. * @author : 오지훈
  169. * @---------------------------------------------------
  170. */
  171. function fSelectERPat(){
  172. var currow = ds_grd_erpatlist.rowposition;
  173. if(currow < 0){
  174. return;
  175. }
  176. if( sysf_getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
  177. sysf_messageBox("현재 로그인한 '"+ sysf_getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
  178. return false;
  179. }
  180. if(fChkArrivalTime()== false) { //응급실 콜비짓 여부에 따라 처방/기록 인증저장 제한하기 위한 값 셋팅 20100526 LYJ
  181. ds_cond.setColumn(0, "callvisityn" , "N");
  182. parent.parent.frmf_setParameter("SMMMO04100_callvisityn", "N");
  183. sysf_messageBox("응급실 Visit Time을 등록 하지 않으면 기록과 처방은 임시저장만 가능 합니다.", "E");
  184. }else {
  185. ds_cond.setColumn(0, "callvisityn" , "Y");
  186. parent.parent.frmf_setParameter("SMMMO04100_callvisityn", "Y");
  187. }
  188. //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
  189. if(fChkScrnDisable()==false){
  190. return;
  191. }
  192. //변경요청(8106) : 응급간호에서 삭제처리한 환자 선택 시 blocking 메세지 처리 추가 (2009.10.09 JJE)
  193. //triage 기록지 여부 체크 전, 삭제환자 여부 체크하여 처방입력 blocking
  194. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  195. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  196. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  197. var visitno= ds_grd_erpatlist.getColumn(currow, "visitno");
  198. //lf_chkInCnclYN(pid, orddd, cretno, "C"); //return 없음, 진료기록창만 호출하므로 아래에서 컨트롤 함
  199. //응급실 의사 결정 관련 알림 팝업 엄영만 2012.07.25
  200. // 메세지 블러킹 처리 2012.08.10 추후 상황을 봐서 진행 하기로 함.
  201. var adflag = ds_grd_erpatlist.getColumn(currow, "adflag"); // 입원의사결정 상태(공통코드 M0720 A:병실입원, B:병실입원(EICU), C:병실입원(응급입원실), H:귀가, D:DNR, E:기타, X:삭제)
  202. var chosdd = ds_grd_erpatlist.getColumn(currow, "chosdd"); // 내원시간
  203. if(utlf_isValidDateTime(chosdd, "YYYYMMDDhhmm") && chosdd > '201208220800' && adflag != "A" && adflag != "B" && adflag != "C" && adflag != "H" && adflag != "D") {
  204. var inDateTime = chosdd.toDate("YYYYMMDDhhmm");
  205. var checkDateTime = chosdd.toDate("YYYYMMDDhhmm").getAddDate(24, "h"); // 입원시간 기준 24시간 이후
  206. var currentDateTime = new Date();
  207. var nDifferenceSeconde = currentDateTime.getTime() - inDateTime.getTime(); // 초 간격
  208. var nDifferenceHour = Math.floor(nDifferenceSeconde/1000/60/60); // 시간 차이
  209. var nCheckSeconde = 0;
  210. var nCheckHour = 0;
  211. var nCheckMinute = 0;
  212. if ( nDifferenceHour > 11 && nDifferenceHour < 24 && adflag != "E") { // 12 ~ 24시간 이내 일경우
  213. nCheckSeconde = checkDateTime.getTime() - currentDateTime.getTime();
  214. nCheckHour = Math.floor(nCheckSeconde/1000/60/60); // 시간 차이
  215. nCheckMinute = Math.floor((nCheckSeconde/1000/60) % 60); // 분 차이
  216. if(sysf_messageBox("응급실 환자에 대해 내원시간 기준 24시간이내에 입/퇴원 의사결정을 하셔야 합니다.\n입/퇴원 의사결정까지 " + nCheckHour + "시간 " + nCheckMinute + "분 남았습니다.\n\n입/퇴원 의사결정 하시겠습니까?", "Q999") == "6") {
  217. fIntensionDecision(); // 의사결정 화면 팝업후 종료 처리
  218. return;
  219. }
  220. }
  221. if ( nDifferenceHour >= 24 ) {
  222. nCheckSeconde = currentDateTime.getTime() - checkDateTime.getTime();
  223. nCheckHour = Math.floor(nCheckSeconde/1000/60/60); // 시간 차이
  224. nCheckMinute = Math.floor((nCheckSeconde/1000/60) % 60); // 분 차이
  225. if(ds_hardcd.findRow("hardcd", "Y") != -1) { // 342 입퇴원 의사 결정에 따른 처방 블러킹 여부(본원만 블러킹) : 블러킹 처리 2012.12.03 엄영만
  226. sysf_messageBox("응급실 환자에 대해 내원시간 기준 24시간이내에 입/퇴원 의사결정을 하셔야 합니다.\n\n의사결정이 되지 않을경우 처방 입력이 불가하니 업무에 차질 없도록 협조 부탁 드립니다. -진료처장-\n\n정확한 입/퇴원 의사결정 시간이 " + nCheckHour +"시간 " + nCheckMinute + "분 초과 하였습니다.\n의사결정을 '기타'로 하신경우는 다른항목으로 변경 하셔야 합니다.", "I999");
  227. fIntensionDecision(); // 의사결정 화면 팝업후 종료 처리
  228. return;
  229. } else {
  230. if(sysf_messageBox("응급실 환자에 대해 내원시간 기준 24시간이내에 입/퇴원 의사결정을 하셔야 합니다.\n정확한 입/퇴원 의사결정 시간이 " + nCheckHour +"시간 " + nCheckMinute + "분 초과 하였습니다.\n의사결정을 '기타'로 하신경우는 다른항목으로 변경 하셔야 합니다.\n\n입/퇴원 의사결정 하시겠습니까?", "Q999") == "6") {
  231. fIntensionDecision(); // 의사결정 화면 팝업후 종료 처리
  232. return;
  233. }
  234. }
  235. }
  236. }
  237. //CP환자 여부 확인
  238. if(fChkCPPatValid(currow)==false){
  239. return;
  240. }
  241. // 응급환자에 대한 중증체류시간 팝업 띄우는 부분 시작
  242. // 작성일 2010.03.09
  243. // 작성자 김광성(kskim)
  244. // 관련 xrw : SPMMO21300_중증체류시간
  245. var wndobj = frmf_findPopup("SPMMO21300");
  246. var sysMessageobj = frmf_getViewer("sysMessage");
  247. if(utlf_isNull(wndobj)){
  248. if( !utlf_isNull( ds_grd_erpatlist.getColumn(currow, "recovwardnm") ) ){
  249. var SPMMO21300_param = pid+ "▦" + orddd + "▦" + cretno + "▦" + visitno;
  250. sysMessageobj.frmf_setParameter("SPMMO21300_param", SPMMO21300_param);
  251. sysMessageobj.frmf_open("SPMMO21300", "SPMMO21300", null, false, 1, null, null, 1280 - 300, 100, null, null, null, "M");
  252. //sysMessageobj.frmf_findPopup("SPMMO21300"); // SPMMO21300 윈도우를 열고나서 윈도우 객체를 가져옴
  253. }
  254. } else {
  255. if( !utlf_isNull( ds_grd_erpatlist.getColumn(currow, "recovwardnm") ) ){
  256. var SPMMO21300_param = pid+ "▦" + orddd + "▦" + cretno + "▦" + visitno;
  257. sysMessageobj.frmf_setParameter("SPMMO21300_param", SPMMO21300_param);
  258. wndobj.fStartWnd(); // SPMMO21300팝업 화면 데이터 reflash기능을 담당
  259. } else{
  260. wndobj.fCloseWnd();
  261. }
  262. }
  263. // 응급환자에 대한 중증체류시간 팝업 띄우는 부분 끝. kskim
  264. // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
  265. var mainobj = frmf_getMainViewer();
  266. var mainscrnid = mainobj.frmf_getScreenID(); //메인화면의 기록지 ID
  267. if(mainscrnid == "SMMMR00100"){
  268. var prvIntRecPamInfRtn = mainobj.fPrevInitRecPamInfo();
  269. if(prvIntRecPamInfRtn == false){
  270. return;
  271. }// 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
  272. }
  273. //상단정보 설정 및 진료기록 처방화면 연동
  274. //var mainObj = getMainViewer();
  275. //var mainObj = getViewer("sysMessage");
  276. if(fReqERPatPamInfo()==true){
  277. var cpflag = parent.parent.SMMMO04100_getDSRoot("cpflag");
  278. var ordrecflag = parent.parent.SMMMO04100_getDSMainCond("ordrecflag");
  279. var recflag = parent.parent.SMMMO04100_getDSMainCond("recflag");
  280. var chngflag = parent.parent.SMMMO04100_getDSMainCond("chngflag");
  281. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  282. var inCnclYN = "N";//ds_erincnclinfo.getColumn(0, "incnclyn"); //응급간호 삭제 여부
  283. frmf_setParameter("SMMMO00100_callvisityn", ds_cond.getColumn(0, "callvisityn")); // 응급실 콜비짓 여부 20100526 LYJ
  284. if (recflag == "Y" || inCnclYN == "Y") { //inCnclYN 조건 추가 (2009.10.26 by JJE)
  285. curEmrRecObj = frmf_findPopup("SMMRI00400"); //활성화된 진료기록 화면 object loading
  286. curExamRsltObj = frmf_findPopup("SMAER00800"); //활성화된 검사결과 화면 object loading
  287. curNurTprObj = frmf_findPopup("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  288. curNurBSEMRObj = frmf_findPopup("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
  289. curGrphObj = frmf_findPopup("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
  290. curCunsultObj = frmf_findPopup("SMMMR05000"); //활성화된 Consult 화면 object loading
  291. curExamRsltNewObj = frmf_findPopup("SMMMI00100"); //활성화된 검사결과 화면 object loading
  292. //if(curEmrRecObj != null){curEmrRecObj.javascript.fClose();} //진료기록 화면 close
  293. var wndobj = frmf_findPopup("SMMRI00400");
  294. if(!utlf_isNull(wndobj))
  295. {
  296. frmf_setParameter("SMMRI00400_param_pid" , parent.parent.SMMMO04100_getPid());
  297. frmf_setParameter("SMMRI00400_param_chosflag", "");//model.getValue("/root/main/paminfo/list/ordtype")); 어디에 있는 노드지?
  298. wndobj.fInitalize();
  299. frmf_setFocusPop("SMMRI00400");
  300. }
  301. if(!utlf_isNull(curExamRsltObj)){
  302. curExamRsltObj.ds_singdata.setColumn(0, "srchpid", pid );
  303. curExamRsltObj.btn_srch.onclick.fireEvent(curExamRsltObj.btn_srch, new ClickEventInfo);
  304. } //검사결과 화면 refresh;
  305. if(!utlf_isNull(curNurTprObj)){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
  306. curNurTprObj.fInitialize("init");
  307. } //간호 TPR 화면 refresh;
  308. if(!utlf_isNull(curNurBSEMRObj)){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
  309. curNurBSEMRObj.fInitialize("init");
  310. } //혈당간호기록 refresh;
  311. if(!utlf_isNull(curGrphObj)){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
  312. curGrphObj.fInitialize();
  313. } //그래프 서식 refresh;
  314. // if(curCunsultObj != null && consulyn !="T"){
  315. if(!utlf_isNull(curCunsultObj)){
  316. curCunsultObj.fInitalize();
  317. } //그래프 서식 refresh;
  318. if(!utlf_isNull(curExamRsltNewObj)){
  319. curExamRsltNewObj.ds_singdata.setColumn(0, "srchpid", pid );
  320. curExamRsltNewObj.btn_srch.onclick.fireEvent(curExamRsltNewObj.btn_srch, new ClickEventInfo);
  321. } //검사결과 화면 NEW refresh;
  322. curCpObj = mainobj.frmf_findPopup("SMMMP00800"); //활성화된 CP Main 화면 object loading
  323. curPrcpObj = mainobj.frmf_findPopup("SMMMO00100"); //활성화된 처방Main 화면 object loading
  324. curCpSrchObj = mainobj.frmf_findPopup("SPMMP01200"); //활성화된 CP 검색 화면 object loading
  325. if(!utlf_isNull(curPrcpObj)) {curPrcpObj.fPrcpWndClose(); } ////활성화된 처방Main 화면이 있는 경우 close
  326. if(!utlf_isNull(curCpObj)){curCpObj.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
  327. if(!utlf_isNull(curCpSrchObj)){curCpSrchObj.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
  328. frmf_clearParameter("SMMMO04100_ANSWCNT");
  329. parent.parent.fChngEMRScrn();// 진료기록 Open
  330. } else {
  331. parent.parent.fOpenPrcpMainWnd();
  332. //mainObj.window.javascript.openEmrScrn("SMMMO00100"); //처방화면 open
  333. }
  334. //fChkErTriagePatList(); // 트라이제 기록지 작성이 안되어 있으면 트리아제를 열어준다.
  335. }
  336. }
  337. /**
  338. * @desc : 응급환자 상단정보 호출
  339. * @
  340. * @param :
  341. * @return :
  342. * @author : 오지훈
  343. * @---------------------------------------------------
  344. */
  345. function fReqERPatPamInfo(){
  346. var iRow = ds_grd_erpatlist.rowposition;
  347. var pid = ds_grd_erpatlist.getColumn(iRow, "pid");
  348. var indd = ds_grd_erpatlist.getColumn(iRow, "indd");
  349. var cretno = ds_grd_erpatlist.getColumn(iRow, "cretno");
  350. var instcd = ds_grd_erpatlist.getColumn(iRow, "instcd");
  351. var srchdd = ds_cond.getColumn(0, "srchdd");
  352. var callvisityn = ds_cond.getColumn(0, "callvisityn"); // 응급실 콜비짓 여부 추가 20100526 LYJ
  353. var param = "E" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd + "▦" + callvisityn ;// 응급실 콜비짓 여부 추가 20100526 LYJ
  354. return appf_initPatientInfo(param);
  355. }
  356. /**
  357. * @desc : 응급실 인턴의사관리
  358. * @
  359. * @param :
  360. * @return :
  361. * @author : 오지훈
  362. * @---------------------------------------------------
  363. */
  364. function fOpenErInternMngt(){
  365. var iRow = ds_grd_erpatlist.rowposition;
  366. if(iRow < 0){
  367. return;
  368. }
  369. var pid = ds_grd_erpatlist.getColumn(iRow, "pid");
  370. var orddd = ds_grd_erpatlist.getColumn(iRow, "indd");
  371. var cretno = ds_grd_erpatlist.getColumn(iRow, "cretno");
  372. var orddeptcd = ds_grd_erpatlist.getColumn(iRow, "orddeptcd");
  373. var param = pid + "▦" + orddd + "▦" + cretno + "▦" + orddeptcd;
  374. frmf_setParameter("SPMMO06300_param", param);
  375. frmf_modal("SPMMO06300", "SPMMO06300", null, null, null, null, null, null, null, null, null, null, "P");
  376. fReqERPatList();
  377. }
  378. /**
  379. * @desc : 그리드 data 엑셀화일로 저장
  380. * @
  381. * @param :
  382. * @return :
  383. * @author : 오지훈
  384. * @---------------------------------------------------
  385. */
  386. function fSaveGridToExcel(){
  387. grdf_exportExcel(grd_erpatlist, "응급환자리스트", "응급");
  388. }
  389. /**
  390. * @desc : 응급실호출 등록 화면 Open
  391. * @
  392. * @param :
  393. * @return :
  394. * @author : 오지훈
  395. * @---------------------------------------------------
  396. */
  397. function fOpenERCallDr(){
  398. var currow = ds_grd_erpatlist.rowposition;
  399. if(currow < 0){
  400. return;
  401. }
  402. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  403. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  404. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  405. var visitno = ds_grd_erpatlist.getColumn(currow, "visitno");
  406. var param = pid + "▦" + orddd + "▦" + cretno + "▦" + visitno;
  407. if(ds_calltime.getColumn(0, "hardcd") == "-"){
  408. frmf_setParameter("SPMMO06700_param", param);
  409. frmf_modal("SPMMO06700", "SPMMO06700", null, null, null, null, null, null, null, null, null, null, "M");
  410. }else{
  411. setParameter("SPMMO32000_param", param);
  412. frmf_modal("SPMMO32000", "SPMMO32000", null, null, null, null, null, null, null, null, null, null, "M");
  413. }
  414. fReqERPatList();
  415. }
  416. /**
  417. * @desc : 권역외상센터호출 등록 화면 Open 2013.04.03
  418. * @
  419. * @param :
  420. * @return :
  421. * @author : 김지선
  422. * @---------------------------------------------------
  423. */
  424. function fOpenTRCallDr(){
  425. var currow = ds_grd_erpatlist.rowposition;
  426. if(currow < 0){
  427. return;
  428. }
  429. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  430. var nm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  431. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  432. var intm = ds_grd_erpatlist.getColumn(currow, "intm");
  433. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  434. var visitno = ds_grd_erpatlist.getColumn(currow, "visitno");
  435. var param = pid + "▦" + nm + "▦" + orddd + "▦" + intm + "▦" + cretno + "▦" + visitno;
  436. frmf_setParameter("SPMMO08000_param", param);
  437. frmf_modal("SPMMO08000", "SPMMO08000", null, null, null, null, null, null, null, null, null, null, "P");
  438. fReqERPatList();
  439. }
  440. /**
  441. * @desc : 기본구역 조회
  442. * @
  443. * @param :
  444. * @return :
  445. * @author : 오지훈
  446. * @---------------------------------------------------
  447. */
  448. function fReqSectionInfo(){
  449. ds_reqdata.clearData();
  450. ds_reqdata.addRow();
  451. ds_reqdata.setColumn(0, "baseclsflag" , "B");
  452. ds_reqdata.setColumn(0, "supbasetypecd", "BD");
  453. var oParam = {};
  454. oParam.id = "TRMMO04402";
  455. oParam.service = "prcpmngtapp.ErMngt";
  456. oParam.method = "reqGetSectionInfo";
  457. oParam.inds = "req=" + "ds_reqdata";
  458. oParam.outds = "ds_section=section";
  459. oParam.async = true;
  460. oParam.callback = "cf_TRMMO04402";
  461. tranf_submit(oParam);
  462. }
  463. function cf_TRMMO04402(sSvcId, nErrorCode, sErrorMsg) {
  464. if(nErrorCode < 0) return;
  465. frmf_addComboItem("Div00.cmb_section"); //기본구역 전체항목 추가
  466. }
  467. /**
  468. * @desc : 응급환자 정보에 따라 그리드의 row와 cell font color변경
  469. * @
  470. * @param :
  471. * @return :
  472. * @author : 오지훈
  473. * @---------------------------------------------------
  474. */
  475. function fChngColorERPatList_Serdiagflag(serdiagflag) {
  476. var color = "#000000";
  477. if(!utlf_isNull(serdiagflag) && serdiagflag != "-"){
  478. var serdiagval = parseInt(serdiagflag);
  479. switch(serdiagval){
  480. case 1:
  481. color = "#ff0000";
  482. break;
  483. case 2:
  484. color = "#ff6600";
  485. break;
  486. case 3:
  487. color = "#0000ff";
  488. break;
  489. case 4:
  490. color = "#000000";
  491. break;
  492. case 5:
  493. color = "#000000";
  494. break;
  495. }
  496. }
  497. return color;
  498. }
  499. function fChngColorERPatList_Recovwardnm(recovwardnm) {
  500. return (utlf_isNull(recovwardnm)) ? "#000000" : "#ff0000";
  501. }
  502. function fChngColorERPatList_Adrvflag(currow, adrvcolor) {
  503. return (utlf_isNull(adrvcolor)) ? "#000000" : "#ff0000";
  504. }
  505. function fChngGrdCellColor(color){
  506. if(color == undefined || color == "" || color == "ffffff")
  507. color = "default";
  508. else
  509. color = "#" + color;
  510. return color;
  511. }
  512. /**
  513. * @desc : (응급)관심환자등록창 호출
  514. * @
  515. * @param :
  516. * @return :
  517. * @author : 오지훈
  518. * @---------------------------------------------------
  519. */
  520. function fCallWndConcPatRgst(){
  521. var currow = ds_grd_erpatlist.rowposition;
  522. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  523. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  524. var indd = ds_grd_erpatlist.getColumn(currow, "indd");
  525. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  526. var instcd = ds_grd_erpatlist.getColumn(currow, "instcd");
  527. var seqno = "";
  528. var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  529. frmf_setParameter("param", param);
  530. frmf_modal("SPMMO08200", "SPMMO08200", null, null, null, null, null, null, null, null, null, null, "M");
  531. fReqERPatList();
  532. }
  533. /**
  534. * @desc : (응급)주의요망환자창 호출
  535. * @
  536. * @param :
  537. * @return :
  538. * @author : 엄영만
  539. * @---------------------------------------------------
  540. */
  541. function fCallWndWarnPat(){
  542. var nCurRow = ds_grd_erpatlist.rowposition;
  543. var sPid = ds_grd_erpatlist.setColumn(nCurRow, "pid");
  544. var sHngnm = ds_grd_erpatlist.setColumn(nCurRow, "hngnm");
  545. frmf_setParameter("SMMMO19100_warncd" , sPid);
  546. frmf_setParameter("SMMMO19100_warnnm" , sHngnm);
  547. frmf_modal("SMMMO19100", "SMMMO19100", null, null, null, null, null, null, null, null, null, null, "M");
  548. frmf_clearParameter("SMMMO19100_warncd");
  549. frmf_clearParameter("SMMMO19100_warnnm");
  550. }
  551. /**
  552. * @desc : CP환자 여부 검사
  553. * @
  554. * @param :
  555. * @return :
  556. * @author : 오지훈
  557. * @---------------------------------------------------
  558. */
  559. function fChkCPPatValid(currow){
  560. fChkErTriagePatList();
  561. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  562. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  563. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  564. var cpyn = "";//ds_grd_erpatlist.getColumn(currow, "cpyn"); // 현재 사용안하는 듯(2014.09.03)
  565. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  566. var orddeptcd = ds_grd_erpatlist.getColumn(currow, "orddeptcd");
  567. var ioflag = "";//ds_grd_erpatlist.getColumn(currow, "ioflag"); // 현재 사용안하는 듯(2014.09.03)
  568. if(utlf_isNull(orddeptcd)) orddeptcd = ds_cond.getColumn(0, "orddeptcd");
  569. if(utlf_isNull(ioflag)) ioflag = "E";
  570. ds_reqPatValid.clearData();
  571. ds_reqPatValid.addRow();
  572. ds_reqPatValid.setColumn(0, "pid" , pid);
  573. ds_reqPatValid.setColumn(0, "orddd" , orddd);
  574. ds_reqPatValid.setColumn(0, "cretno" , cretno);
  575. ds_reqPatValid.setColumn(0, "hngnm" , hngnm);
  576. ds_reqPatValid.setColumn(0, "prcpgenrflag", ioflag);
  577. ds_reqPatValid.setColumn(0, "srchtabflag" , "E"); //대상자리스트탭 구분
  578. var oParam = {};
  579. oParam.id = "TRMMO04303";
  580. oParam.service = "prcpbaseapp.CpMngt";
  581. oParam.method = "reqGePattValidity";
  582. oParam.inds = "req=" + "ds_reqPatValid";
  583. oParam.outds = "ds_rsltgetdata=getdata";
  584. oParam.async = false;
  585. oParam.callback = "cf_TRMMO04303";
  586. tranf_submit(oParam);
  587. if(arErrorCode.pop("TRMMO04303") >= 0){
  588. if(ds_rsltgetdata.rowcount < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
  589. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  590. return true;
  591. } else { //CP적용환자 tbl에 유효한 데이터가 있는 경우
  592. dsf_setDefaultVal(ds_rsltgetdata, "appyn:Y");
  593. var appstat = ds_rsltgetdata.getColumn(0, "appstat");
  594. var cpgnm = ds_rsltgetdata.getColumn(0, "cpgnm");
  595. var cpgappno = ds_rsltgetdata.getColumn(0, "cpgappno");
  596. var msgcnts = ds_rsltgetdata.getColumn(0, "msgcnts");
  597. var msgflag = ds_rsltgetdata.getColumn(0, "msgflag");
  598. var prtlflagcd = ds_rsltgetdata.getColumn(0, "prtlflagcd"); //01:CP,02:CPG
  599. if(appstat == 52){
  600. //case52: 입원장 CP
  601. var rtnval = sysf_messageBox(msgcnts, msgflag);
  602. if(rtnval == 6){
  603. parent.parent.SMMMO04100_setDSRoot("cpflag", "X"); // CP Main open
  604. return true;
  605. } else {
  606. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  607. // if(fUpdtCPPatAppStatVal(41) != false && !utlf_isNull(ds_grd_erpatlist.getColumn(currow, "cpyn"))){ //41 : CP 취소
  608. // ds_grd_erpatlist.setColumn(currow, "cpyn", "N");
  609. // return;
  610. // } else {
  611. return false;
  612. // }
  613. }
  614. } else {
  615. if( prtlflagcd == "02" && utlf_isNull(appstat) && msgflag == "P" ){ //모니터링구분:대상자탐색 Case. CPG & 호출flag:Popup(appyn:평가용여부)
  616. //CPG적용대상자 알림 팝업 호출 (2009.05.04)
  617. frmf_setParameter("SMMMO041_hngnm" , hngnm);
  618. frmf_setParameter("SMMMO041_pid" , pid);
  619. frmf_setParameter("SMMMO041_cretno" , cretno);
  620. frmf_setParameter("SMMMO041_orddd" , orddd);
  621. frmf_setParameter("SMMMO041_ordtype" , ioflag);
  622. frmf_setParameter("SMMMO041_orddeptcd" , orddeptcd);
  623. frmf_setParameter("SMMMO041_slipnm" , msgcnts); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
  624. frmf_setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
  625. frmf_setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
  626. frmf_setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
  627. frmf_modal("SPMMP03200", "SPMMP03200", null, null, null, null, null, null, null, null, null, null, "P"); //CP대상자 알람 팝업
  628. // if( cpgappno > 0 && cpgappno != frmf_getParameter("SPMMP032_cpgappno") && !utlf_isNull(ds_grd_erpatlist.getColumn(currow, "cpyn"))){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
  629. // ds_grd_erpatlist.setColumn(currow, "cpyn", "N");
  630. // }
  631. if( !utlf_isNull(frmf_getParameter("SPMMP032_cpgappno")) && frmf_getParameter("SPMMP032_cpgappno") > 0 ){
  632. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y"); //CPG적용한 경우, MGPS 호출
  633. } else {
  634. parent.parent.SMMMO04100_setDSRoot("cpflag", "N"); //미적용 시 처방 화면 호출
  635. }
  636. frmf_clearParameter("SPMMP032_cpgappno");
  637. frmf_clearParameter("SMMMO041_hngnm");
  638. frmf_clearParameter("SMMMO041_pid");
  639. frmf_clearParameter("SMMMO041_cretno");
  640. frmf_clearParameter("SMMMO041_orddd");
  641. frmf_clearParameter("SMMMO041_ordtype");
  642. frmf_clearParameter("SMMMO041_orddeptcd");
  643. frmf_clearParameter("SMMMO041_slipnm");
  644. frmf_clearParameter("SMMMO041_cpgmntrflag");
  645. frmf_clearParameter("SMMMO041_cpgappno");
  646. frmf_clearParameter("SMMMO041_cpgnm");
  647. return true;
  648. } else {
  649. //case 12 : D0 ~ D1 CP
  650. //그외 case : (10 : 진행중...)
  651. if( !utlf_isNull(msgcnts) && !utlf_isNull(msgflag) ){
  652. //12: D0 처방일과 == 입원일 -> Drop 유도
  653. //그외: 오늘날짜 > CP퇴원예정일 -> Drop 유도
  654. sysf_messageBox(msgcnts, msgflag);
  655. frmf_setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
  656. frmf_setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
  657. frmf_modal("SPMMP02300", "SPMMP02300", null, null, null, null, null, null, null, null, null, null, "M");
  658. parent.parent.SMMMO04100_setDSRoot("cpflag", "N");
  659. if( frmf_getParameter("SMMMO043_drop") == "Y" ){
  660. //ds_grd_erpatlist.setColumn(currow, "cpyn", "N");
  661. }else{
  662. return false;
  663. }
  664. frmf_clearParameter("SMMMO043_cpgappno");
  665. frmf_clearParameter("SMMMO043_drop");
  666. return true;
  667. }
  668. parent.parent.SMMMO04100_setDSRoot("cpflag", "Y");
  669. return true;
  670. }
  671. }
  672. }
  673. }
  674. }
  675. function cf_TRMMO04303(sSvcId, nErrorCode, sErrorMsg) {
  676. arErrorCode.push(sSvcId, nErrorCode);
  677. }
  678. /**
  679. * @desc : 응급실의사 호출내역
  680. * @
  681. * @param :
  682. * @return :
  683. * @author :
  684. * @---------------------------------------------------
  685. */
  686. function fOpenErCallDrHist(){
  687. var currow = ds_grd_erpatlist.rowposition;
  688. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  689. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  690. frmf_setParameter("SPMMO06800_pid", pid);
  691. frmf_setParameter("SPMMO06800_hngnm", hngnm);
  692. frmf_open("SPMMO06800", "SPMMO06800", null, null, null, null, null, null, null, null, null, null, "M");
  693. }
  694. /**
  695. * @desc : Visit Time 체크하여 처방창 오픈 유무 결정
  696. * @ 타과나 call time이 없을 경우는 처방창이 열리지만 같은과나 해당의사의 경우
  697. * @ Visit Time이 없을 경우는 처방창이 열리지 않도록 함
  698. * @param :
  699. * @return :
  700. * @author : 김영학
  701. * @---------------------------------------------------
  702. */
  703. function fChkArrivalTime() {
  704. var userdeptcd = sysf_getUserInfo("dutplcecd");
  705. var userid = sysf_getUserId();
  706. var currow = ds_grd_erpatlist.rowposition;
  707. var orddoctid = ds_grd_erpatlist.getColumn(currow, "orddoctid");
  708. var orddeptcd = ds_grd_erpatlist.getColumn(currow, "erorddeptcd");
  709. var erorddeptcd = ds_hardcdno.getColumn(0, "hardcd");
  710. if (userdeptcd != erorddeptcd) { // 응급의학과가 아니면 도착시간이 없으면 처방창을 열지 못하도록 함.
  711. if (userid == orddoctid || userdeptcd == orddeptcd) { // 담당의 아이디 조건에서 과 포함함 : 2009. 07. 04)
  712. var visttm = ds_grd_erpatlist.getColumn(currow, "visttm");
  713. if (visttm =="------") {
  714. return false;
  715. }
  716. }
  717. }
  718. }
  719. /**
  720. * @desc : 진료대상자 리스트 출력
  721. * @param :
  722. * @return :
  723. * @author : 김영학
  724. * @---------------------------------------------------
  725. */
  726. function fPrtPatList() {
  727. if(utlf_isNull(ds_cond.getColumnInfo("orddeptnm"))) ds_cond.addColumn("orddeptnm", "string");
  728. if(utlf_isNull(ds_cond.getColumnInfo("orddrnm"))) ds_cond.addColumn("orddrnm", "string");
  729. if(utlf_isNull(ds_cond.getColumnInfo("sectionnm"))) ds_cond.addColumn("sectionnm", "string");
  730. ds_cond.setColumn(0, "orddeptnm", Div00.cmb_orddept.text);
  731. ds_cond.setColumn(0, "orddrnm", Div00.cmb_atdoctid.text);
  732. ds_cond.setColumn(0, "sectionnm", Div00.cmb_section.text);
  733. var objDOM = rptf_createDOM(); // DOM 객체 설정
  734. rptf_setNodeListToDOM(objDOM, "/root/main/erpatinfo/erpatlist", ds_grd_erpatlist); // 데이터셋 1
  735. rptf_setNodeListToDOM(objDOM, "/root/main/cond", ds_cond); // 데이터셋 2
  736. //sysf_trace(objDOM.documentElement.source); // XML 내용출력
  737. var objParam = new Object();
  738. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  739. var option = "open=1;save=1;directprint=0;print=1;zoom=0;callback=cbf_rpt_onFinishPrintXML";
  740. rptf_exeReportPreview30(["RPMMO04104"],[objParam], option);
  741. }
  742. /**
  743. * @desc : 중증응급 (마우스 오른쪽 버튼 이벤트 )
  744. * @param :
  745. * @return :
  746. * @author : 김영학
  747. * @---------------------------------------------------
  748. */
  749. function fErRecoverWardRgst() {
  750. var currow = ds_grd_erpatlist.rowposition;
  751. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  752. var indd = ds_grd_erpatlist.getColumn(currow, "indd");
  753. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  754. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  755. var recovwardcd = ds_grd_erpatlist.getColumn(currow, "recovwardcd");
  756. frmf_setParameter("SPMNE04600_pid" , pid);
  757. frmf_setParameter("SPMNE04600_indd" , indd);
  758. frmf_setParameter("SPMNE04600_cretno" , cretno);
  759. frmf_setParameter("SPMNE04600_hngnm" , hngnm);
  760. frmf_setParameter("SPMNE04600_recovwardcd" , recovwardcd);
  761. frmf_modal("SPMNE04600", "SPMNE04600", null, null, null, null, null, null, null, null, null, null, "M"); // 중증응급등록
  762. fReqERPatList(); // 응급대상자 리스트 재조회
  763. }
  764. /**
  765. * @desc : Triage기록 작성유무
  766. * @param :
  767. * @return :
  768. * @author : 김영학
  769. * @---------------------------------------------------
  770. */
  771. function fChkErTriagePatList() {
  772. var currow = ds_grd_erpatlist.rowposition;
  773. var messageobj = frmf_getViewer("sysMessage");
  774. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  775. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  776. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno")
  777. var sa = ds_grd_erpatlist.getColumn(currow, "sa");
  778. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  779. var condparam = sa.split("/");
  780. var sex = condparam[0];
  781. var age = condparam[1];
  782. ds_reqTriage.clearData();
  783. ds_reqTriage.addRow();
  784. ds_reqTriage.setColumn(0, "pid" , pid);
  785. ds_reqTriage.setColumn(0, "orddd" , orddd);
  786. ds_reqTriage.setColumn(0, "cretno" , cretno);
  787. var oParam = {};
  788. oParam.id = "TRMMO04403";
  789. oParam.service = "prcpmngtapp.ErMngt";
  790. oParam.method = "reqGetChkErTriageList";
  791. oParam.inds = "req=" + "ds_reqTriage";
  792. oParam.outds = "ds_pattriagelist=erpatlist";
  793. oParam.async = false;
  794. oParam.callback = "cf_TRMMO04403";
  795. tranf_submit(oParam);
  796. if(arErrorCode.pop("TRMMO04403") >= 0){
  797. var cnts = ds_pattriagelist.getColumn(0, "pid");
  798. if (utlf_isNull(cnts)) {
  799. if (sysf_messageBox ( "Triage 기록이 작성되지 않았습니다. \n 작성하시겠습니까?", "Q" ) == "6" ) {
  800. var param = pid + "▦" + orddd + "▦" + cretno + "▦" + sex + "▦" + age + "▦▦" + hngnm;
  801. messageobj.frmf_setParameter("SPMNE04400_param", param); //parameter
  802. curErTriageObj = frmf_findPopup("SPMNE04400"); //활성화된 진료기록 화면 object loading
  803. if (!utlf_isNull(curErTriageObj)) {
  804. curErTriageObj.fInitialize_SPMNE04400();
  805. curErTriageObj.activate();
  806. } else {
  807. messageobj.frmf_open("SPMNE04400", "SPMNE04400", null, false, 2, null, null, 1025, 590, null, null, null, "M");
  808. curErTriageObj = frmf_findPopup("SPMNE04400"); //활성화된 진료기록 화면 object loading
  809. curErTriageObj.activate();
  810. }
  811. } else {
  812. curErTriageObj = frmf_findPopup("SPMNE04400"); //활성화된 진료기록 화면 object loading
  813. if (!utlf_isNull(curErTriageObj)) {
  814. curErTriageObj.button2.onclick.fireEvent(button2, new ClickEventInfo());
  815. }
  816. }
  817. } else {
  818. curErTriageObj = frmf_findPopup("SPMNE04400"); //활성화된 진료기록 화면 object loading
  819. if (!utlf_isNull(curErTriageObj)) {
  820. curErTriageObj.button2.onclick.fireEvent(button2, new ClickEventInfo());
  821. }
  822. }
  823. }
  824. }
  825. function cf_TRMMO04403(sSvcId, nErrorCode, sErrorMsg) {
  826. arErrorCode.push(sSvcId, nErrorCode);
  827. }
  828. /**
  829. * @desc : 간호 TPR 조회
  830. * @
  831. * @param :
  832. * @return :
  833. * @author :박유진 20091102
  834. * @---------------------------------------------------
  835. */
  836. function fCallCareTPRInfo(){
  837. var currow = ds_grd_erpatlist.rowposition;
  838. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  839. var indd = ds_grd_erpatlist.getColumn(currow, "indd");
  840. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  841. var instcd = sysf_getUserInfo("dutplceinstcd");
  842. frmf_setParameter("SMMNR00900_Param", "pid▦indd▦cretno▦instcd▦gbn▩" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd +"▦dr▩");
  843. var curNurTprObj = frmf_findPopup("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
  844. if(!utlf_isNull(curNurTprObj)){ //간호 TPR 화면 refresh
  845. curNurTprObj.fInitViewer();
  846. curNurTprObj.fInitialize("init");
  847. } else {
  848. frmf_open("SMMNR00900", "SMMNR00900", null, null, null, null, null, null, null, null, null, null, "M");
  849. }
  850. }
  851. /**
  852. * @desc : 전공의 등록
  853. * @
  854. * @param :
  855. * @event : 팝업창 내 환자 적용 EVENT
  856. * @return :
  857. * @author : 오지훈
  858. * @---------------------------------------------------
  859. */
  860. function fRgstCnclAtDoct(){
  861. var mypatinfo = "";
  862. var currow = ds_grd_erpatlist.rowposition;
  863. var orddeptcd = ds_grd_erpatlist.getColumn(currow, "orddeptcd");
  864. var userdeptcd = sysf_getUserInfo("dutplcecd");
  865. if (orddeptcd != userdeptcd) {
  866. sysf_messageBox("환자의 진료과가 다르면 담당의 적용을 할 수 없습니다.", "I");
  867. return;
  868. }
  869. var totrow = ds_grd_erpatlist.rowcount;
  870. for(var currow = 0; currow < totrow ; currow++){
  871. if(ds_grd_erpatlist.getSelect(currow)){
  872. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  873. var indd = ds_grd_erpatlist.getColumn(currow, "indd");
  874. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  875. var seqno = "";//ds_grd_erpatlist.getColumn(currow, "seqno");
  876. var tmpstr = "▦" + pid +
  877. "▦" + indd +
  878. "▦" + cretno +
  879. "▦" + seqno +
  880. "▦" + orddeptcd +
  881. "▩";
  882. mypatinfo += tmpstr;
  883. }
  884. }
  885. frmf_setParameter("apntflag" , "atdoct"); //화면 적용 구분을 전공의 등록으로 적용
  886. frmf_setParameter("mypatinfo", mypatinfo);
  887. frmf_modal("SPMMO16200", "SPMMO16200", null, null, null, null, null, null, null, null, null, null, "P");
  888. fReqERPatList();
  889. }
  890. /**
  891. * @desc : 응급환자 의사결정
  892. * @
  893. * @param :
  894. * @return :
  895. * @author :
  896. * @---------------------------------------------------
  897. */
  898. function fIntensionDecision(){
  899. var currow = ds_grd_erpatlist.rowposition;
  900. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  901. var hngnm = ds_grd_erpatlist.getColumn(currow, "hngnm");
  902. var indd = ds_grd_erpatlist.getColumn(currow, "indd");
  903. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  904. var instcd = sysf_getUserInfo("dutplceinstcd");
  905. frmf_setParameter("SSPMMO26000_Param", pid + "▦" + hngnm + "▦" + indd + "▦" + cretno + "▦" + instcd);
  906. frmf_modal("SPMMO26000", "SPMMO26000", null, null, null, null, null, null, null, null, null, null, "P");
  907. if(!utlf_isNull(frmf_getParameter("adflag"))){
  908. ds_grd_erpatlist.setColumn(currow, "adflag", frmf_getParameter("adflag"));
  909. frmf_clearParameter("adflag");
  910. }
  911. }
  912. /**
  913. * @desc : 빈병상 현황
  914. * @
  915. * @param :
  916. * @return :
  917. * @author :
  918. * @---------------------------------------------------
  919. */
  920. function fEmptyBedCheck(){
  921. frmf_setParameter("SMPMI00100_MENUPARAM", "A");
  922. frmf_modal("SPPMI02001", "SPPMI02001", null, null, null, null, null, null, null, null, null, null, "M");
  923. }
  924. /**
  925. * @desc : 입원의뢰서
  926. * @
  927. * @param :
  928. * @return :
  929. * @author :
  930. * @---------------------------------------------------
  931. */
  932. function fEnterHosReq(){
  933. var currow = ds_grd_erpatlist.rowposition;
  934. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  935. frmf_setParameter("SPMMO00100_pid", pid);
  936. frmf_modal("SPMMO00100", "SPMMO00100", null, null, null, null, null, null, null, null, null, null, "M");
  937. if(!utlf_isNull(this.objects["ds_temp"])) {
  938. var rtn = ds_temp.getColumn(0, "SPMMO00100_rtn");
  939. if(rtn=="true"){ //입원결정서가 성공적으로 저장됐을시 리스트의 내용을 갱신해준다.
  940. Div00.btn_req.onclick.fireEvent(Div00.btn_req, new ClickEventInfo());
  941. }
  942. }
  943. }
  944. /**
  945. * @desc : 안전사고 보고
  946. * @param :
  947. * @return :
  948. * @author : 엄영만
  949. * @---------------------------------------------------
  950. */
  951. function fPatQi(){
  952. var currow = ds_grd_erpatlist.rowposition;
  953. var pid = ds_grd_erpatlist.getColumn(currow, "pid");
  954. var orddd = ds_grd_erpatlist.getColumn(currow, "indd");
  955. var cretno = ds_grd_erpatlist.getColumn(currow, "cretno");
  956. var ordtype = "E";
  957. var oprsrvno = "";
  958. frmf_setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
  959. frmf_modal("SMMQR00100", "SMMQR00100", null, null, null, null, null, null, null, null, null, null, "M");
  960. }]]></Script>