123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 퇴원예고 ( SPMMO00400_퇴원예고.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- var sPAMINFOLIST = "/root/temp/paminfo/list";
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SPMMO00400(){
- var paminfo = getGlobalVariable("paminfo");
- setCSVToNode("/root/temp/paminfo", paminfo);
-
- model.setValue("/root/init/today", getCurrentDate());
- var dschdclrtyn = model.getValue(sPAMINFOLIST + "/dschdclrtyn");
- var dschdclrdt = model.getValue(sPAMINFOLIST + "/dschdclrdt");
- var dschdclrtrgstid = model.getValue(sPAMINFOLIST + "/dschdclrtrgstid");
- var dschdclrtrgstdt = model.getValue(sPAMINFOLIST + "/dschdclrtrgstdt");
- var dschdclrtrgstnm = model.getValue(sPAMINFOLIST + "/dschdclrtrgstnm");
- var indschacptstat = model.getValue(sPAMINFOLIST + "/indschacptstat");
- var hngnm = model.getValue(sPAMINFOLIST + "/hngnm");
- var dethdt = model.getValue(sPAMINFOLIST + "/dethdt");
-
- if(indschacptstat == "D" || indschacptstat == "T"){
- messageBox("이미 퇴원한 환자", "E008");
- window.close();
- return;
- }
-
- if(dschdclrtyn == "N"){ //퇴원예고가 안된경우
- model.setValue("/root/main/cond/dclrflag" , "N");
- //CP에서 퇴원일이 이정된 경우, 퇴원예고일을 설정 (2008.08.06 JJE)
- if (dethdt != "" && dethdt != "-") { // 사망등록 되었을경우 사망일자로 설정.
- model.setValue("/root/main/cond/dclrdd" , dethdt.substr(0, 8));
- } else {
- var SMMMP00800_dclrdd = opener.javascript.getParameter("SMMMP00800_dclrdd");
- if( SMMMP00800_dclrdd == null || SMMMP00800_dclrdd == "" ){
- model.setValue("/root/main/cond/dclrdd" , getCurrentDate());
- }else{
- model.setValue("/root/main/cond/dclrdd" , SMMMP00800_dclrdd);
- }
- }
-
- model.setValue("/root/main/cond/dclrtm" , getCurrentTime().substr(0,6));
- model.setValue("/root/main/cond/dclrtrgstnm", getUserName());
- btn_dschcncl.disabled = true; //예고취소 버튼 비활성화
- model.refresh();
- }else{ //퇴원예고가 된 경우
- model.setValue("/root/main/cond/dclrflag" , dschdclrtyn);
- model.setValue("/root/main/cond/dclrdd" , dschdclrdt.substr(0,8));
- model.setValue("/root/main/cond/dclrtm" , dschdclrdt.substr(8,6));
- model.setValue("/root/main/cond/dclrtrgstdt", dschdclrtrgstdt);
- model.setValue("/root/main/cond/dclrtrgstnm", dschdclrtrgstnm);
- btn_dschrgst.disabled = true; //예고등록 버튼 비활성화
- model.refresh();
- }
-
- model.setFocus("ipt_dclrtm");
- model.refresh();
- }
- /**
- * @desc : 예고일자 변경시
- * @ 현재일자 보다 예고일자가 작은 경우, 경고 메시지를 띄운다.
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChngDschDclrDD(){
- /*
- var dethdt = model.getValue(sPAMINFOLIST + "/dethdt"); // 사망일자
- var dclrdd = model.getValue("/root/main/cond/dclrdd");
- var curdd = model.getValue("/root/init/today");
-
- if (dethdt != "" && dethdt != "-") { // 사망등록 되었을경우 사망일자로 설정.
- messageBox("사망환자는 예고일자가 사망일자로 고정 됩니다.", "C999");
- model.setValue("/root/main/cond/dclrdd", dethdt.substr(0, 8));
- } else {
- if(curdd > dclrdd){ //현재 일자보다 예고일자가 작은 경우 error발생
- messageBox("예고일자는 현재일자 보다 앞선 날짜로", "C001");
- model.setValue("/root/main/cond/dclrdd", curdd);
- }else{
- model.setFocus("ipt_dclrtm");
- }
- }
- model.refresh();
- */
- }
- /**
- * @desc : 퇴원예고 등록 및 취소
- * @
- * @param : 퇴원예고 등록/취소 여부 sDschDclrtYN - Y / N
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSaveDschDclr(dschdclrtyn){
- if(fRequireRgst(dschdclrtyn) == false){
- //fInitialize_SPMMO00400(); // 화면을 초기화
- return;
- }
-
- model.removeNodeset("/root/send/savedata");
- var pid = model.getValue(sPAMINFOLIST + "/pid");
- var indd = model.getValue(sPAMINFOLIST + "/indd");
- var cretno = model.getValue(sPAMINFOLIST + "/cretno");
- var seqno = model.getValue(sPAMINFOLIST + "/seqno");
- var ordtype = model.getValue(sPAMINFOLIST + "/ioflag");
- var dschdclrdt = model.getValue("/root/main/cond/dclrdd") +
- model.getValue("/root/main/cond/dclrtm");
- var orddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
-
- if(dschdclrtyn == "Y"){ // 예고등록시
- // 퇴원예고일 이후 처방 여부를 체크한다. 20121213 엄영만
- if(!fCheckDschAfterPrcpExist()) return;
- // 퇴원예고 등록시 반환요청(E) 처방 여부를 체크한다. 20130803 엄영만 버튼 위치로 이동 처리(2013.08.05)
- //if(!fCheckReturnPrcpExist()) return;
-
- // 완료되지 않은 의뢰(Consult)를 체크한다. 20130205 엄영만
- if(!fCheckConsultExist()) return;
-
- // 제왕절개 안정성 평가 관련 기록 여부를 체크한다. 20120104 엄영만
- if(!fCheckChildbirthRec()) return;
- // 퇴원예고시 GOS 기록지 작성 여부 체크한다. 20130227 엄영만 심사실 요청
- if(!fCheckDschApoplexyRec()) return;
-
- // 퇴원예고시 DRG환자의 경우 DRG 질점검표 작성 여부를 체크한다. 2013/05/03
- if(!fCheckDrgRecExist()) return;
- }
-
- /*
- **퇴원예고 등록시 중증체크 추가. BY SONJY 2008-08-18
- **중증등록번호를 가진 환자가 응급실에서 진료 후 퇴원오더 시 암상병이 없으면 ALERT
- **by sonjy 2008-08-18
- */
- if( ordtype == "E" && dschdclrtyn == "Y" ) {
- messageBox("응급환자를 다른 병원에 전원하는 경우에\n 반드시 응급의료에 관한 법률에 위배되지 않도록\n 1339 정보센터에 연락하시고, 전원의뢰서를 작성해 주시기 바랍니다.", "I");
-
- model.makeValue("/root/send/req/pid" , pid);
- model.makeValue("/root/send/req/indd" , indd);
- model.makeValue("/root/send/req/cretno" , cretno);
- model.makeValue("/root/send/req/ordtype" , ordtype);
- model.makeValue("/root/send/req/instcd" , model.getValue(sPAMINFOLIST + "/instcd"));
-
- //by sonjy 20100202 진료과 추가
- model.makeValue("/root/send/req/orddeptcd", model.getValue(sPAMINFOLIST + "/orddeptcd"));
-
- if(submit("TRMMO00121")){
- if( model.getValue("/root/main/prcpetcinfo/savecncrhist/cncrhistyn") == "Y" ) {
- if( messageBox( model.getValue ( "/root/main/prcpetcinfo/savecncrhist/cncrhistmsg" ) + " 주상병을 변경하고 특례", "Q009") == 6 ) {
- btn_close.dispatch("DOMActivate");
- return ; //blocking
- }
- //return ; blocking하진 않음.
- } else if( model.getValue("/root/main/prcpetcinfo/serdiagermsg/serdiageryn") == "Y" ) {
- //20080102 마정민 수정: 중증응급 등록한자의 진단명 alert 변경요청번호 533
- messageBox( model.getValue ( "/root/main/prcpetcinfo/serdiagermsg/serdiagermsg" ), "I" ) ;
- //20080102 서소영 선생님 blocking처리 요청
- return;
- }
-
- if ( model.getValue("/root/main/prcpetcinfo/diagrcdchkmsg/diagrcdchkyn") == "Y" ) {
- //응급실 퇴원 예고 시 주상병이 R코드인 경우 퇴원예고 블러킹 [요청번호 10232]
- messageBox( model.getValue ( "/root/main/prcpetcinfo/diagrcdchkmsg/diagrcdchkmsg" ), "I" ) ;
- btn_close.dispatch("DOMActivate");
- return ;
- }
- } else {
- return;
- }
- }
- // CP 퇴원예정일보다 조기 퇴원 시 CP Drop 유도 (2008.10.28 JJE) (s)
- var cpObj = getOpenWindow("SMMMP00800");
- if( dschdclrtyn == "Y" && cpObj != null ){
- //입원 CP, 퇴원필요step의 퇴원예고일 < 퇴원예정일 => drop
- var cpflagcd = cpObj.model.getValue("/root/main/masterinfo/info/cpgflagcd");
- var ioflagcd = cpObj.model.getValue("/root/main/masterinfo/info/ioflagcd");
- var dschschedd = cpObj.instance1.selectSingleNode("/root/main/steppath/info[decirflag='D']/prcpdd");
- if( cpflagcd == "01" && ioflagcd == "I" && dschschedd != null ){
- if( model.getValue("/root/main/cond/dclrdd") < dschschedd.text ){
- if( messageBox("조기퇴원입니다. CP Drop을" , "Q004" ) == "6" ){
- setParameter("SMMMO043_cpgappno", cpObj.model.getValue("/root/temp1/getdata/cpgappno"));
- setParameter("SMMMO043_drop" , "N");
- modal("SPMMP02300"); //drop팝업
- if( getParameter("SMMMO043_drop") == "Y" ){
- cpObj.model.setValue("/root/temp1/getdata/appstat", "50");
- }else{
- messageBox("퇴원예고가 등록되지" , "E007" );
- return;
- }
- }else{
- messageBox("퇴원예고가 등록되지" , "E007" );
- return;
- }
- }
- /*
- else if( model.getValue("/root/main/cond/dclrdd") > dschschedd.text ){
- if( messageBox("퇴원지연입니다. CP Drop을" , "Q004" ) == "6" ){
- setParameter("SMMMO043_cpgappno", cpObj.model.getValue("/root/temp1/getdata/cpgappno"));
- setParameter("SMMMO043_drop" , "N");
- modal("SPMMP02300"); //drop팝업
- if( getParameter("SMMMO043_drop") == "Y" ){
- cpObj.model.setValue("/root/temp1/getdata/appstat", "50");
- }else{
- messageBox("퇴원예고가 등록되지" , "E007" );
- return;
- }
- }else{
- messageBox("퇴원예고가 등록되지" , "E007" );
- return;
- }
- }
- */
- }
- }
- //(e)
-
- model.makeValue("/root/send/savedata/pid" , pid);
- model.makeValue("/root/send/savedata/indd" , indd);
- model.makeValue("/root/send/savedata/cretno" , cretno);
- model.makeValue("/root/send/savedata/seqno" , seqno);
- model.makeValue("/root/send/savedata/ordtype" , ordtype);
- model.makeValue("/root/send/savedata/dschdclrdt" , dschdclrdt);
- model.makeValue("/root/send/savedata/dschdclrtyn", dschdclrtyn);
- model.makeValue("/root/send/savedata/orddeptcd", orddeptcd);
- if(submit("TXMMO00401") == true){
- //2012/07/30 Start
- if(ordtype=="E"){ // 응급실 환자 중 퇴원예고를 할 경우 귀가로 의사결정 되도록 로직 추가
- model.makeNode("/root/main/cnt");
- model.makeValue("/root/send/savedata/instcd", getUserInfo("dutplceinstcd"));
- model.makeValue("/root/send/savedata/orddd", indd);
- model.makeValue("/root/send/savedata/decisionkind", "H");
- submit("TXMMO26001");
- //if(submit("TXMMO26001")){
- // opener.opener.javascript.setParameter("adflag", "H");
- //}
- }
- //2012/07/30 End
-
- opener.javascript.setParameter("SPMMO00400_rtn_useyn", "Y");
-
- //CP (s)
- //2008.07.07 cp퇴원예고때문에 추가함
- opener.javascript.setParameter("SPMMO00400_dclrdd", model.getValue("/root/main/cond/dclrdd") );
- //2009.01.16 입퇴원기록지 미작성->작성후 퇴원예고 버튼 다시클릭한 경우 CP exclusion 사유 재조회
- fGetCpExclusionRsn("A");
- //CP (e)
-
- window.close();
- }else { // 2008.08.29 pym
- opener.javascript.setParameter("SPMMO00400_rtn_useyn", "N");
-
- //CP이면서 exception msg가 "입퇴원요약기록지를 기록해야 합니다." 일 경우, 입퇴원요약기록지 호출 (2008.11.10 JJE) (s)
- model.setValue("/root/init/trmmp00808endyn", "N"); //CP아닌 경우, 입퇴원요약기록지 작성 후 다시 exclusion 사유 조회하기 위해, 초기값 설정
- if( instance1.selectSingleNode("/root/properties/error/code") != null && cpObj != null ){ //CP인 경우, 입퇴원요약기록 자동 로딩
- if( model.getValue("/root/properties/error/code") == "emr.info.11007" && model.getValue("/root/properties/error/msg") == "입퇴원요약지를 기록해야 합니다.....!" ){
- var mainObj = getMainViewer();
- var scrnID = mainObj.javascript.getScreenID();
-
- if( scrnID == "SMMMR00100" && mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']") != null ){
- var formrecseq = mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']/formrecseq").text;
- var formrecdd = mainObj.instance1.selectSingleNode("/root/main/mainlist/medireclist[formcd='0000000680']/formrecdd").text;
- }else{
- var formrecseq = "";
- var formrecdd = model.getValue("/root/main/cond/dclrdd");
- }
-
- if(scrnID == "SMMMR00100"){
- mainObj.window.javascript.fOpenFormByOther("0000000680", formrecseq, "", formrecdd);
-
- }else{
- setGlobalVariable("linked_cpformcd", "0000000680", "emr");
- setGlobalVariable("linked_cpformrecseq", formrecseq, "emr");
- setGlobalVariable("linked_cpformrecdd", formrecdd, "emr");
-
- mainObj.javascript.navigate("SMMMR00100");
- }
- }
- } else if (model.getValue("/root/properties/error/code") =="emr.info.11007"){ // 입퇴원요약지를 작성하지 않은 경우 바로 입퇴원기록지를 열어줌
- fInOutBrifEMRScrn() ; // 입퇴원기록지는 진료기록메인 화면이 열린 경우만 열어주도록 함
- } else if (model.getValue("/root/properties/error/code") =="emr.info.11008"){ // 입원 경과기록지를 열어줌
- fInProgressEMRScrn() ;
- }
- //(e)
- }
- }
- /**
- * @desc : 퇴원예고 등록여부를 MessageBox를 띄움
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fRequireRgst(bflag){
- var dclrdd = model.getValue("/root/main/cond/dclrdd");
- var dclrtm = model.getValue("/root/main/cond/dclrtm");
- if(dclrtm.length < 4){
- messageBox("퇴원예고 시간을 정확하게", "C001");
- return false;
- }
- var hngnm = model.getValue(sPAMINFOLIST + "/hngnm");
- if(bflag == "Y"){
- var rtnval = messageBox("[" + hngnm + "] 환자를 퇴원예고 등록을 " , "Q004");
- }else if(bflag == "N"){
- var rtnval = messageBox("[" + hngnm + "] 환자를 퇴원예고 취소를 " , "Q004");
- }
-
- if(rtnval == 6){ // '예' 클릭
- return true;
- }else if(rtnval == 7){ // '아니오' 클릭
- return false;
- }
- }
- /**
- * @desc : 입원의뢰서 화면 open
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenInReq(){
- var param = model.getValue("/root/temp/paminfo/list/pid") + "▦" +
- model.getValue("/root/temp/paminfo/list/hngnm") + "▦" +
- model.getValue("/root/temp/paminfo/list/orddeptcd") + "▦" +
- model.getValue("/root/temp/paminfo/list/orddrid") + "▦" +
- model.getValue("/root/temp/paminfo/list/insukind") + "▦" +
- model.getValue("/root/temp/paminfo/list/suppkind") + "▦" +
- model.getValue("/root/temp/paminfo/list/indd") + "▦" +
- model.getValue("/root/temp/paminfo/list/cretno") + "▦" +
- "I";
- setParameter("SPMMO00100_param", param);
- fPrcpModal("SPMMO00100", 100, 40);
- }
- /**
- * @desc : 재진예약 화면 open
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenOrdRsrv(){
- setParameter("SMPMO00300_PARAM1", model.getValue("/root/temp/paminfo/list/orddeptcd")); //진료과코드
- setParameter("SMPMO00300_PARAM2", model.getValue("/root/temp/paminfo/list/orddrid")); //진료의ID
- setParameter("SMPMO00300_PARAM3", model.getValue("/root/temp/paminfo/list/pid")); //등록번호
- fPrcpModal("SMPMO00300", 0, 80);
- }
- /**
- * @desc : CP의 Exclusion 을 조회한다
- * @
- * @param :popFlag (A:평가팝업을 위해, 그외(E):exclusion을 위해)
- * @return :
- * @author : 전지은
- * @---------------------------------------------------
- */
- function fGetCpExclusionRsn( popFlag ){
- if( isNull(popFlag) ) popFlag = "E";
- if( popFlag == "E" && model.getValue("/root/init/trmmp00808endyn") == "Y" ){
- return; //이미 한번 exclusion 사유를 search했다면 return
- } else if( popFlag == "E" && opener.model.getValue("/root/main/masterinfo/info/cpgflagcd") == "02" ){
- return; //## CPG일 경우, exclusion 팝업 사용 안 함. 20100426 KHJ
- }
-
- var paminfoNode = opener.instance1.selectSingleNode("/root/paminfo/list");
- var patflagNode = opener.instance1.selectSingleNode("/root/patflag/list/prcpgenrflag");
- var prcpgenrflag = "";
- var orddd = "";
-
- if(paminfoNode == null ) return;
- if(patflagNode == null ) prcpgenrflag = opener.model.getValue("/root/paminfo/list/ioflag");
- else prcpgenrflag = opener.model.getValue( "/root/patflag/list/prcpgenrflag" );
-
- if ( prcpgenrflag == "O" ) {
- orddd = opener.model.getValue( "/root/paminfo/list/orddd" );
- } else {
- orddd = opener.model.getValue( "/root/paminfo/list/indd" );
- }
-
- model.makeNode("/root/send/cpdata");
- model.makeValue("/root/send/cpdata/orddd" , orddd);
- model.makeValue("/root/send/cpdata/pid" , opener.model.getValue("/root/paminfo/list/pid") );
- model.makeValue("/root/send/cpdata/cretno" , opener.model.getValue("/root/paminfo/list/cretno"));
- model.makeValue("/root/send/cpdata/orddeptcd" , opener.model.getValue("/root/paminfo/list/orddeptcd"));
- if( submit("TRMMP00808") ){
- if( instance1.selectSingleNode("/root/main/cpexclusionlist/info") != null ){
- var mon = getCurrentMonitorNumber();
- var cpObj = getOpenWindow("SMMMP00800");
- //CP 적용 전 퇴원예고 시 exclusion 제외..
- if( cpObj == null ){
- modal("SPMMP02400", mon, "55", "60", "SPMMP02400", "/root/main/cpexclusionlist", "/root/main/cpexclusionlist", "sysmenu:hidden; icon:visible", false);
- }
- }
-
- }
- model.setValue("/root/init/trmmp00808endyn", "Y"); //설정값 변경
- model.removeNode("/root/send/cpdata");
-
-
- //2008-02-11 손주연 추가
- //endstep 처방 발행 후 평가 입력 없이 퇴원예고를 할경우 평가 입력창을 띄워준다.
- //퇴원 예고시 평가 팝업은 잠시 막음 처리 해달라고 요청함 (2008.. 09. 11. 이혜승)
- if( popFlag == "E" ){
- if( instance1.selectSingleNode("/root/main/cpexclusionlist/valuinfo") != null ){
- modal("SPMMP02500", getCurrentMonitorNumber(), "55", "60", "SPMMP02500", "/root/main/cpexclusionlist/valuinfo", "/root/hidden"); // 퇴원예고시 평가 팝업잠시 막음
- }
- }
-
- }
- function fInOutBrifEMRScrn() {
- var mainobj = getMainViewer();
- var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
-
- curFormLoaderObj = getOpenWindow("SSMMR01100"); //활성화된 서식로더창 체크
- if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
- curFormLoaderObj.javascript.fClose();
- } //서식로더 close()
-
- if(mainobj != null){
- var wndid = "SMMMR00100"; //진료기록화면이 default
- if(mainscrnid == wndid){
- mainobj.javascript.fOpenNewForm("0000000680");
- }
- }
- }
- // 경과기록을 Open 한다.
- function fInProgressEMRScrn () {
- var mainobj = getMainViewer();
- var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
-
- curFormLoaderObj = getOpenWindow("SSMMR01100"); //활성화된 서식로더창 체크
- if(curFormLoaderObj != null){ //서식로더 Close : 2009-06-03 : 이상현 D/L 요청 : 김영학 ;
- curFormLoaderObj.javascript.fClose();
- } //서식로더 close()
-
- if(mainobj != null){
- var wndid = "SMMMR00100"; //진료기록화면이 default
- if(mainscrnid == wndid){
- mainobj.javascript.fOpenNewForm("0900006893");
- }
- }
- }
- /**
- * @desc : 제왕절개분만 적정성평가 위험도 보정요인 서식 기록 유무 확인(submit)
- * @param : prcpflag: 처방구분 0: ( 의사처방, CP, 항암프로토콜, 임시), 2:간호, 4:지원부서
- savekindflag: 0:인증저장, 1:임시저장
- saveNode: 저장노드
- 심사실 김현주(6127) 요청 2012.01.05일 정규 배포 본원만 적용하고 칠곡은 적용하지 않음.
- * @return : true, false
- * @authur : 엄영만 2011. 11. 01
- */
- function fCheckChildbirthRec(){
- var bRtn = true;
-
- // 제왕절개분만 적정성평가 관련 기록 여부를 체크한다. 2012.0103 엄영만
- var sChkChildbirthRecYn = fGetHardCDList("Y", 321, 3); // 321 제왕절개분만 적정성평가 관련 기록 체크여부 처방 제한 사용 여부
- var sOrddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
-
- fGetHardCDList("N", 322, 0 , "/root/hidden/childbirthdeptlist"); // 322 제왕절개분만 적정성평가 관련 기록 체크 주진료과
-
- if (sChkChildbirthRecYn == "Y"
- && !isNull(model.getValue("/root/hidden/childbirthdeptlist/hardcd[hardcd='"+sOrddeptcd+"']/hardcd" )) ) {
- var sCheckCode = "";
- var sCheckAlertMsg = "";
- var sCheckErrorMsg = "";
- var sCheckPrcpExist = "N"; // 제왕절개 관련 처방 존재 여부 디폴트 N 없음.
- var pid = model.getValue (sPAMINFOLIST + "/pid");
- var indd = model.getValue (sPAMINFOLIST + "/indd");
- var cretno = model.getValue (sPAMINFOLIST + "/cretno");
-
- model.makeValue("/root/childbirthchkrec/reqdata/pid", pid);
- model.makeValue("/root/childbirthchkrec/reqdata/indd", indd);
- model.makeValue("/root/childbirthchkrec/reqdata/cretno", cretno);
- model.makeValue("/root/childbirthchkrec/reqdata/prcpexist", sCheckPrcpExist);
-
- submit("TRMMO00138", false);
- var sChkRecList = model.instances(0).selectNodes( "/root/childbirthchkrec/rtndata" );
- for ( var i=1; i <= sChkRecList.length; i++ ) {
- var sCheckCode = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkcode" );
- if(sCheckCode == "ALERT"){
- if(sCheckAlertMsg == "")
- sCheckAlertMsg = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
- else
- sCheckAlertMsg = sCheckAlertMsg + "\n" + model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
- }
- else if (sCheckCode == "ERROR"){
- if(sCheckErrorMsg == "")
- sCheckErrorMsg = model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
- else
- sCheckErrorMsg = sCheckErrorMsg + "\n" + model.getValue ( "/root/childbirthchkrec/rtndata[" + i + "]/checkmsg");
- }
- }
- if (sCheckAlertMsg != ""){
- sCheckAlertMsg = "※ 제왕절개 분만 적정성 평가 관련 사항 ※\n\n분만수술 처방이 있는 산부인과 환자에 대해\n\n"
- + sCheckAlertMsg + "\n\n" + "해당 기록 작성 되지 않으면 퇴원 예고가 불가능 합니다."
-
- if(getUserInfo("dutplceinstcd") == "031")
- sCheckAlertMsg = sCheckAlertMsg + "\n" + "문의처: 심사실(6127)"
- else if(getUserInfo("dutplceinstcd") == "032")
- sCheckAlertMsg = sCheckAlertMsg + "\n" + "문의처: 심사실(2180)"
-
- sCheckAlertMsg = sCheckAlertMsg + "\n\n지금 작성"
- var selectedval = messageBox(sCheckAlertMsg, 'S001');
-
- if(selectedval == "6") { // 지금 작성 하면 서식을 팝업으로 뛰우고 "아니오" 선택 하면 그대로 처방 저장 진행
- var formcd = model.getValue("/root/childbirthchkrec/rtndata[1]/checkformcd"); // 첫 행의 서식 팝업
-
- var ioflag = model.getValue (sPAMINFOLIST + "/ioflag");
- var orddeptcd = model.getValue (sPAMINFOLIST + "/orddeptcd");
- var medispclid = model.getValue (sPAMINFOLIST + "/medispclid");
- var orddeptnm = model.getValue (sPAMINFOLIST + "/orddeptnm");
- var hngnm = model.getValue (sPAMINFOLIST + "/hngnm");
- var sa = model.getValue (sPAMINFOLIST + "/sex") +"/"+ model.getValue (sPAMINFOLIST + "/age");
- var roomcd = model.getValue (sPAMINFOLIST + "/roomcd");
- var disparam = pid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
-
- setParameter("pid", pid);
- setParameter("orddd", indd);
- setParameter("cretno", cretno);
- setParameter("ioflag", ioflag);
- setParameter("orddeptcd", orddeptcd);
- setParameter("orddrid", medispclid);
- setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
- setParameter("openmode", "newform"); //오픈모드는 “recform”
- setParameter("formcd", formcd);
-
- modal("SSMMR01100", 1, 0, 0 ,"", "", "");
- bRtn = false;
- }else if(selectedval == "2") { // 취소 선택
- bRtn = false;
- }else { // 아니오 선택
- bRtn = false;
- }
- } else {
- bRtn = true;
- }
- }
- return bRtn;
- }
- /**
- * @desc : 퇴원예고일자 이후의 처방 존재 유무 확인(submit)
- * @param :
- * @return : true, false
- * @authur : 엄영만 2012. 12. 13
- */
- function fCheckDschAfterPrcpExist(){
- var bRtn = true;
-
- var sCheckCode = "";
- var sCheckAlertMsg = "";
- var sCheckErrorMsg = "";
- var sCheckPrcpExist = "N"; // 퇴원예고일 이후 처방 존재 여부 디폴트 N 없음.
- var pid = model.getValue(sPAMINFOLIST + "/pid");
- var indd = model.getValue(sPAMINFOLIST + "/indd");
- var cretno = model.getValue(sPAMINFOLIST + "/cretno");
- var dclrdd = model.getValue("/root/main/cond/dclrdd"); // 퇴원 예고일
-
- model.makeValue("/root/dschafterprcp/reqdata/pid", pid);
- model.makeValue("/root/dschafterprcp/reqdata/indd", indd);
- model.makeValue("/root/dschafterprcp/reqdata/cretno", cretno);
- model.makeValue("/root/dschafterprcp/reqdata/dclrdd", dclrdd);
-
- if(submit("TRMMO00401", false)){
- var nCnt = model.getValue("/root/dschafterprcp/rtndata/cnt");
-
- if(nCnt > 0) {
- if( "6" == messageBox("퇴원예고일자보다 미래인 처방이 존재합니다.\n퇴원예고일자를 변경하시거나 미래 처방을 삭제하신 후 진행하여 주시기 바랍니다.\n\n계속 진행 하시겠습니까?", 'Q999')) {
- bRtn = true;
- } else {
- bRtn = false;
- }
- }
- }
-
- return bRtn;
- }
- /**
- * @desc : 반환요청(E) 처방 존재 유무 확인(submit)
- * @param :
- * @return : true, false
- * @authur : 엄영만 2012. 12. 13
- */
- function fCheckReturnPrcpExist(){
- var bRtn = true;
-
- var pid = model.getValue(sPAMINFOLIST + "/pid");
- var indd = model.getValue(sPAMINFOLIST + "/indd");
- var cretno = model.getValue(sPAMINFOLIST + "/cretno");
- var orddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
-
- model.makeValue("/root/checkreturnprcp/reqdata/pid", pid);
- model.makeValue("/root/checkreturnprcp/reqdata/indd", indd);
- model.makeValue("/root/checkreturnprcp/reqdata/cretno", cretno);
- //model.makeValue("/root/checkreturnprcp/reqdata/orddeptcd", orddeptcd);
-
- if(submit("TRMMO00404", false)){
- var nCnt = model.getValue("/root/checkreturnprcp/rtndata/cnt");
-
- if(nCnt > 0) {
- if ( "6" == messageBox("[반환요청] 상태의 처방이 존재 하여 퇴원예고를 진행할 수 없습니다.\n\n반환요청 처방 내역을 확인 하시겠습니까?", 'Q999')) {
- setParameter("SPMMO50400_pid", pid);
- setParameter("SPMMO50400_indd", indd);
- setParameter("SPMMO50400_cretno", cretno);
- //setParameter("SPMMO50400_orddeptcd", orddeptcd);
-
- modal("SPMMO50400");
- }
- bRtn = false;
- }
- }
-
- return bRtn;
- }
- /**
- * @desc : 완료되지 않은 의뢰(Consult) 유무 확인(submit)
- * @param :
- * @return : true, false
- * @authur : 엄영만 2013. 02. 05
- */
- function fCheckConsultExist(){
- var bRtn = true;
-
- if(fContainsHardCD("419", "Y")) { // 체크 사용 여부
- var pid = model.getValue(sPAMINFOLIST + "/pid");
- var orddd = model.getValue(sPAMINFOLIST + "/indd");
- var cretno = model.getValue(sPAMINFOLIST + "/cretno");
-
- model.removenode("/root/checkconsult");
- model.makeValue("/root/checkconsult/reqdata/pid", pid);
- model.makeValue("/root/checkconsult/reqdata/orddd", orddd);
- model.makeValue("/root/checkconsult/reqdata/cretno", cretno);
-
- if(submit("TRMMO00402", false)){
- var nCnt = model.getValue("/root/checkconsult/rtndata/cnt");
-
- if(nCnt > 0) {
- if( "6" == messageBox("회신되지 않은 의뢰내역이 존재합니다.\n의뢰내역을 삭제 하시거나, 회신완료 후 퇴원예고를 진행하여 주시기 바랍니다.\n\n의뢰내역을 확인 하시겠습니까?", 'Q999')) {
- var ioflag = model.getValue(sPAMINFOLIST + "/ioflag");
- var orddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
- var orddrid = model.getValue(sPAMINFOLIST + "/medispclid");
-
- var param = pid +"▦"+ orddd+ "▦" +cretno+ "▦" + ioflag +"▦"+ orddeptcd +"▦"+ orddrid +"▦"; //pid▦orddd▦cretno▦ioflag▦orddeptcd▦orddrid▦
- var screenid = "SPMMO00400";
-
- var wndobj = getOpenWindow("SMMMR05000");
- if(wndobj != null){
- setParameter("SMMMR05000_param_pinfo", param);
- setParameter("SMMMR05000_screenid", screenid);
- wndobj.javascript.fInitalize();
- wndobj.window.restore(); //최소화 시킨 창을 최대화 시킴
- wndobj.window.activate();
- }else{
- setParameter("SMMMR05000_param_pinfo", param);
- setParameter("SMMMR05000_screenid", screenid);
- open("SMMMR05000", 2, 0, 0);
- }
- }
- bRtn = false;
- }
- }
- }
-
- return bRtn;
- }
- /**
- * @desc : 급성 뇌졸중 평가관련 GOS 기재 유무 확인(submit)
- * @return : true, false
- * @authur : 엄영만 2013. 02. 27 심사실 김순애 파트장님 요청으로 2013년 3월 1일 이후 입원 환자 부터 퇴원 시 적용
- */
- function fCheckDschApoplexyRec(){
- var bRtn = true;
-
- var sIndd = model.getValue(sPAMINFOLIST + "/indd");
- var sOrddeptcd = model.getValue(sPAMINFOLIST + "/orddeptcd");
-
- if (sIndd >= "20130301" && fContainsHardCD("421", sOrddeptcd)) { // 퇴원예고시 뇌졸증 평가 관련 GOS 기록 체크 주진료과(신경외과)
- var sCheckErrorMsg = "";
- var sPid = model.getValue(sPAMINFOLIST + "/pid");
- var sCretNo = model.getValue(sPAMINFOLIST + "/cretno");
-
- model.makeValue("/root/dschapoplexyrec/reqdata/pid", sPid);
- model.makeValue("/root/dschapoplexyrec/reqdata/indd", sIndd);
- model.makeValue("/root/dschapoplexyrec/reqdata/cretno", sCretNo);
-
- submit("TRMMO00403", false);
- var sChkRecList = model.instances(0).selectNodes( "/root/dschapoplexyrec/rtndata" );
- for ( var i=1; i <= sChkRecList.length; i++ ) {
- sCheckErrorMsg = model.getValue ( "/root/dschapoplexyrec/rtndata[" + i + "]/checkmsg");
- }
- if (sCheckErrorMsg != ""){
- sCheckErrorMsg = "※ 급성 뇌졸중 평가 관련 GOS 기재 요청 ※\n\n주 진단코드가 I60-I63인 신경외과 2013년 03월 이후 입원 환자에 대해\n\n" + sCheckErrorMsg + "\n\n" + "해당 기록 작성 후 퇴원예고가 가능 합니다."
-
- if(getUserInfo("dutplceinstcd") == "031")
- sCheckErrorMsg = sCheckErrorMsg + "\n" + "문의처: 심사실(6131)"
- else if(getUserInfo("dutplceinstcd") == "032")
- sCheckErrorMsg = sCheckErrorMsg + "\n" + "문의처: 심사실(2180)"
-
- messageBox(sCheckErrorMsg, 'E000');
- var formcd = model.getValue("/root/dschapoplexyrec/rtndata[1]/checkformcd"); // 첫 행의 서식 팝업
-
- var ioflag = model.getValue (sPAMINFOLIST + "/ioflag");
- var medispclid = model.getValue (sPAMINFOLIST + "/medispclid");
- var orddeptnm = model.getValue (sPAMINFOLIST + "/orddeptnm");
- var hngnm = model.getValue (sPAMINFOLIST + "/hngnm");
- var sa = model.getValue (sPAMINFOLIST + "/sex") +"/"+ model.getValue (sPAMINFOLIST + "/age");
- var roomcd = model.getValue (sPAMINFOLIST + "/roomcd");
- var disparam = sPid +"▦" + hngnm +"▦" + sa+"▦" + orddeptnm +"▦" + roomcd + "▦";
- setParameter("pid", sPid);
- setParameter("orddd", sIndd);
- setParameter("cretno", sCretNo);
- setParameter("ioflag", ioflag);
- setParameter("orddeptcd", sOrddeptcd);
- setParameter("orddrid", medispclid);
- setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
- setParameter("openmode", "newform"); //오픈모드는 “recform”
- setParameter("formcd", formcd);
- modal("SSMMR01100", 1, 0, 0 ,"", "", "");
- bRtn = false;
- } else {
- bRtn = true;
- }
- }
- return bRtn;
- }
- /**
- * @desc : 퇴원예고시 DRG환자의 경우 DRG 질 점검표 작성 여부를 체크
- * @return : true, false
- * @authur : 이정택 2013. 05. 03
- */
- function fCheckDrgRecExist(){
-
- //var drgyn = getPatientInfoDetail("drgyn");
- var sIndd = model.getValue(sPAMINFOLIST + "/indd");
- var sPid = model.getValue(sPAMINFOLIST + "/pid");
- var sCretNo = model.getValue(sPAMINFOLIST + "/cretno");
-
- model.makeValue("/root/send/reqdata/pid", sPid);
- model.makeValue("/root/send/reqdata/indd", sIndd);
- model.makeValue("/root/send/reqdata/cretno", sCretNo);
- if(submit("TRMMO50002")){
-
- var existyn = model.getValue("/root/main/chkdrgrecexist/item/existyn");
- if(existyn=="Y"){ //작성 유
- return true;
- }else{ //작성 무
- var sCheckAlertMsg = "DRG 환자로 DRG 질 점검표를 작성하지 않으면 \n";
- sCheckAlertMsg += "퇴원 예고가 불가능 합니다.";
- sCheckAlertMsg = sCheckAlertMsg + "\n지금 작성"
- var selectedval = messageBox(sCheckAlertMsg, 'S001');
-
- if(selectedval == "6") {
- modal("SMMMR06900", 1, 0, 0 ,"", "", "");
- }
- return false;
- }
- }
- }
|