123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760 |
- //===================================================================
- // 공통으로 사용하는 함수
- //===================================================================
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fInitialize_SMMMO02900(){
- var cur_day = getCurrentDate();
- var idate = new Date();
- var peveDate = idate.getAddDate(-1, "D");
-
- model.setValue("/root/main/cond/orddd", cur_day);
- model.setValue("/root/main/cond/userid", getUserId());
-
- fGrdInit() ;
-
- mainObj = getMainViewer();
- curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
- curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
-
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", getUserInfo("dutplcecd"), "0330");
- addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
-
- if(opener.root.prcppatlist.childNodes.length > 0) { // 최초 오픈이 아니면
- model.copyNode(root.main.cond, opener.root.prcppatlist);
- } else { // 최초 오픈일때
- model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd"));
- model.setValue("/root/main/cond/orddrid" , getUserInfo("userid"));
-
- var sUserEnv057 = mmbfGetUserEnvQuestValue("057"); // 진료대상자 외래탭 지연환자 표시여부
- if(sUserEnv057 == "001") { // 지연환자 표시일경우
- var sUserEnv058 = mmbfGetUserEnvQuestValue("058"); // 진료대상자 외래탭 지연환자 지연시간
- var sUserEnv059 = mmbfGetUserEnvQuestValue("059"); // 진료대상자 외래탭 지연환자 지연 제외시간
-
- if(sUserEnv058 == "001") { model.setValue("/root/main/cond/delaytime", "10");
- } else if(sUserEnv058 == "002") { model.setValue("/root/main/cond/delaytime", "20");
- } else if(sUserEnv058 == "003") { model.setValue("/root/main/cond/delaytime", "30");
- } else if(sUserEnv058 == "004") { model.setValue("/root/main/cond/delaytime", "40");
- } else if(sUserEnv058 == "005") { model.setValue("/root/main/cond/delaytime", "50");
- } else if(sUserEnv058 == "006") { model.setValue("/root/main/cond/delaytime", "60");
- } else { model.setValue("/root/main/cond/delaytime", "30");
- }
-
- if(sUserEnv059 == "001") { model.setValue("/root/main/cond/delayexpt", "0");
- } else if(sUserEnv059 == "002") { model.setValue("/root/main/cond/delayexpt", "10");
- } else if(sUserEnv059 == "003") { model.setValue("/root/main/cond/delayexpt", "20");
- } else if(sUserEnv059 == "004") { model.setValue("/root/main/cond/delayexpt", "30");
- } else { model.setValue("/root/main/cond/delayexpt", "10");
- }
-
- model.setValue("/root/main/cond/delayflag" , "Y");
- } else {
- model.setValue("/root/main/cond/delayflag" , "N");
- }
- }
-
- fChkGetData() ;
- }
- /**
- * @desc : 환자 수술여부 및 수술처방 확인
- * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkMiniPatOpPrcp(pid, stnddd){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/stnddd", stnddd);
- if(submit("TRMMO04109")){
- var opprcpflag = model.getValue("/root/main/opprcpinfo/opprcpinfo/opprcpflag");
- if(opprcpflag == "N"){
- return false;
- }
- }
- return true;
- }
- /**
- * @desc : 처방화면, CP화면에 modal로 뜬 화면이 있는지 여부를 검사한다.
- * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkScrnModal(){
- var cpflag = model.getValue(root.cpflag); //cpflag여부
- if(cpflag == "N"){
- var wndobj = getOpenWindow("SMMMO00100");
-
- }else if(cpflag == "Y"){
- var wndobj = getOpenWindow("SMMMP00800");
- }
- if(wndobj != null){
- var status = wndobj.javascript.getScreenDisabled();
- if(status == true){
- return false;
- }
- }
- }
- /**
- * @desc : 처방Main 화면 Open, CP환자인 경우 CP Main 화면 Open 또는 CP검색화면 Open (CP업무 추가 2007.09.27)
- * @
- * @param :
- * @return :
- * @---------------------------------------------------
- */
- function fOpenPrcpMainWnd(){
- var cpflag = model.getValue("/root/cpflag");
-
- var iRow = "";
- var pid = "";
- var ordtype = model.getValue("/root/main/cond/ordtype");
- if(ordtype == "O") {
- iRow = grd_outpatlist.row;
- pid = model.getValue("/root/main/outpatinfo/outpatlist[" + iRow + "]/pid");
- } else {
- iRow = grd_inpatlist.row;
- pid = model.getValue("/root/main/inpatinfo/inpatlist[" + iRow + "]/pid");
- }
-
- var mainObj = getMainViewer();
- var monitorNumber = app.monitorNumber;
- var monitorResolutions = app.monitorResolution;
- var monitorResolutionsArr = monitorResolutions.split('|');
-
- var resolution = monitorResolutionsArr[monitorNumber-1];
- var resolution_width = resolution.split(',')[0];
- var resolution_height = resolution.split(',')[1];
-
- //alert(monitorNumber);
- curEmrRecObj = getOpenWindow("SMMRI00400"); //활성화된 진료기록 화면 object loading
- curExamRsltObj = getOpenWindow("SMAER00800"); //활성화된 검사결과 화면 object loading
- curNurTprObj = getOpenWindow("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
- curNurBSEMRObj = getOpenWindow("SMMNR02500"); //활성화된 간호 TPR 화면 object loading
- curGrphObj = getOpenWindow("SPMRF05200"); //활성화된 그래프 서식 화면 object loading
- curCunsultObj = getOpenWindow("SMMMR05000"); //활성화된 Consult 화면 object loading
- curExamRsltNewObj = getOpenWindow("SMMMI00100"); //활성화된 검사결과 화면 object loading
- var wndobj = getOpenWindow("SMMRI00400");
- if(wndobj != null){
- wndobj.javascript.fClose(); //진료기록 화면 close
- //wndobj.javascript.fInitalize(); // 초기화함수 호출
- //activateChild("SMMRI00400");
- }
-
- if(curExamRsltObj != null){ //검사결과 화면 refresh;
- curExamRsltObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
- curExamRsltObj.javascript.btn_srch.dispatch("DOMActivate");
- } //검사결과 화면 refresh;
- if(curNurTprObj != null){ //간호 TPR 화면 refresh : 2008-11-28 : 김영학 ;
- curNurTprObj.javascript.fInitViewer();
- curNurTprObj.javascript.fInitialize("init");
- } //간호 TPR 화면 refresh;
-
- if(curNurBSEMRObj != null){ //혈당간호기록 refresh : 2008-12-24 : 김영학 ;
- curNurBSEMRObj.javascript.fInitialize("init");
- } //혈당간호기록 refresh;
- if(curGrphObj != null){ //그래프 서식 refresh : 2009-01-02 : 박민규 SW 요청 : 김영학 ;
- curGrphObj.javascript.fInitialize();
- } //그래프 서식 refresh;
-
- if(curCunsultObj != null && consulyn !="T"){ // Consult refresh : 2009-02-17 : 이상현 D/L 요청 : 김영학 ;
- curCunsultObj.javascript.fInitalize();
- } // Consult refresh
-
- if(curExamRsltNewObj != null){ //검사결과 화면 NEW refresh;
- curExamRsltNewObj.model.setvalue("/root/send/data/singdata/srchpid", pid );
- curExamRsltNewObj.javascript.btn_srch.dispatch("DOMActivate");
- }
-
- curCpObj = mainObj.javascript.getOpenWindow("SMMMP00800"); //활성화된 CP Main 화면 object loading
- curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
- curCpSrchObj = mainObj.javascript.getOpenWindow("SPMMP01200"); //활성화된 CP 검색 화면 object loading
-
- if(cpflag == "N"){ //처방 Main Open
- if(curCpObj != null){curCpObj.javascript.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
- if(curCpSrchObj != null){curCpSrchObj.javascript.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
-
- if(curPrcpObj == null){ //활성화된 처방화면이 없는 경우, 신규화면을 오픈
- var xpt = (resolution_width - 1210)/2;
- var ypt = (resolution_height- 784)/2;
- mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
- mainObj.javascript.open("SMMMO00100", monitorNumber, xpt, ypt, "SMMMO00100", "", "", "", false);
- fChngMainEMRScrn();
-
- }else{
- if(curPrcpObj.javascript.fPrcpSavePatList()){}
- curPrcpObj.model.setValue("/root/init/bfprcpload" , "N"); //전처방을 초기화한다.
-
- //curPrcpObj.javascript.fInitializeConDone();
- //curPrcpObj.javascript.fInitializeReady();
- curPrcpObj.javascript.fXReReady();
-
- curPrcpObj.model.setValue("/root/init/fstopenflag", "Y"); //처방최초 open여부를 재설정, 진료기록을 열기위해
- //curPrcpObj.javascript.fChngMainScrn();
- fChngMainEMRScrn();
- }
- } else if(cpflag =="Y"){ //CP Main Open
- if(curPrcpObj != null){curPrcpObj.javascript.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
- if(curCpSrchObj != null){curCpSrchObj.javascript.fCpSrchWndClose();} //활성화된 CP검색화면이 있는 경우 close
-
- if(curCpObj == null){ //활성화된 CP화면이 없는 경우, 신규화면을 오픈
- var xpt = (resolution_width - 1236)/2;
- var ypt = (resolution_height- 985)/2;
- mainObj.javascript.setParameter("SMMMO00100_ordrecflag", model.getValue("/root/main/cond/ordrecflag"));
- mainObj.javascript.open("SMMMP00800", monitorNumber, xpt, ypt, "SMMMP00800", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
-
- //JJE- 삭제
- //fChngMainEMRScrn();
-
- } else{
- curCpObj.javascript.fReconstruct();
- }
-
-
- }else if(cpflag =="X"){ //CP 검색 Open
- if(curCpObj != null){curCpObj.javascript.fCloseGPS();} //활성화된 CP Main화면이 있는 경우 close
- if(curPrcpObj != null){curPrcpObj.javascript.fPrcpWndClose();} //활성화된 처방Main화면이 있는 경우 close
-
- if(curCpSrchObj == null){
- mainObj.javascript.open("SPMMP01200", monitorNumber, xpt, ypt, "SPMMP01200", "", "", "", false);
- }
- }
- }
- function fChngMainEMRScrn() {
- var mainobj = getMainViewer();
- var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
- var cpflag = model.getValue("/root/cpflag");
-
- if (cpflag =="Y"){
- var curPrcpObj= getOpenWindow("SMMMP00800");
- } else {
- var curPrcpObj= getOpenWindow("SMMMO00100");
- }
- var fstopenflag = curPrcpObj.model.getValue("/root/init/fstopenflag"); //처방화면이 최초 생성 여부
- var bfprcpload = curPrcpObj.model.getValue("/root/init/bfprcpload"); //전처방화면 최초 생성 여부
- var cpflag = curPrcpObj.model.getValue("/root/cp"); //CP화면여부
-
- var ordrecflag = model.getValue("/root/main/cond/ordrecflag"); //OCS 체크여부
- var chngflag = model.getValue("/root/main/cond/chngflag"); //OCS 체크여부
-
- if(mainobj != null){
- var dutplcecd = getUserInfo("dutplcecd"); //사용자부서
- var operation = getGlobalVariable("operation"); //수술정보
-
- var wndid = "SMMMR00100"; //진료기록화면이 default
-
- if(fstopenflag !="N" || chngflag == "Y"){ //처방화면이 최초로 열린 경우, 진료대상자의 ocs체크값이 변경된 경우에는 메인화면 변경
-
- if(bfprcpload != "Y"){ //전처방화면이 로딩된 여부,(단순히 tab변경인 경우에는 메인화면 변경 로직을 처리하지 않음
-
- /*
- if(cpflag == "Y"){ //CP화면인 경우, CP초기화 후, 메인화면 변경 수행
- var cpendflag = curPrcpObj.javascript.fReconstruct();
- if(cpendflag == "True"){
- }
- }
- */
-
- //if(cpendflag == "True"){ //CPMain의 fReconstruct()가 완료된 이후 진료기록 변경로직을 수행
-
- if(dutplcecd == "2090000000" || dutplcecd == "2090300000"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
-
- if(operation.length > 0){ //수술환자리스트에서 환자 선택된 경우, 메인화면은 '마취환자기록' loading
- wndid = "SMMMR03700";
-
- }else{
- if(ordrecflag == "Y"){
- wndid = "SMMMR00100";
- }
- }
-
- }else{
- if(ordrecflag == "Y"){
- wndid = "SMMMR00100";
-
- }
- }
-
- curPrcpObj.model.setValue("/root/init/bfprcpload" , "Y");
- curPrcpObj.model.setValue("/root/init/fstopenflag", "N");
-
- if(mainscrnid == wndid){
- if(wndid == "SMMMR03700"){
- mainobj.javascript.fFormInit();
-
- }else{
- mainobj.javascript.fInitRecPamInfo();
-
- }
- }else{
- //if(cpflag != "Y"){
- mainobj.javascript.navigate(wndid);
- //}
- }
-
- //}
-
- }else{ //전처방화면이 최초 생성된 경우, bfprcpload를 Y로 변경, 추후 tab변경시 메인화면 변경이 되지 않게함
- curPrcpObj.model.setValue("/root/init/bfprcpload", "Y");
- }
- }
- }
- }
- //===================================================================
- // 입원에서 사용하는 함수들
- //===================================================================
- /**
- * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
- * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
- * @
- * @param :
- * @return :
- * @author : 김영학
- * @---------------------------------------------------
- */
- function fMiniInPat(){
- var ordrecflag = "Y";
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
-
- //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
- if(fChkScrnModal()==false){
- return;
- }
-
- var pid = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/pid");
- var hngnm = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/hngnm");
- var reqptype = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/reqptype");
- var stnddd = model.getValue("/root/main/cond/orddd");
- setParameter("SPMMO04200_openflag", "SPMMO04200");
-
- //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
- if(fChkMiniPatOpPrcp(pid, stnddd)==false){
- var opcnfmdd = model.getValue("/root/main/opprcpinfo/opprcpinfo/opcnfmdd");
- opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(4, 6) + "-" + opcnfmdd.substring(6, 8);
- messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
- }
- //CP환자 여부 확인
- if(fChkCPMiniPatValid(currow)==false){
- return;
- }
- //상단정보 설정 및 진료기록 처방화면 연동
- var mainObj = getMainViewer();
- /*
- if(fReqInPatPamInfo()==true){
- opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
- var cpflag = opener.model.getValue("/root/cpflag");
- var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
- var mainObj = getMainViewer();
- if(cpflag == "Y"){
- mainObj.window.javascript.openEmrScrn("SMMMP00800"); //CP처방 화면
-
- }else if(cpflag == "X"){
- mainObj.window.javascript.openEmrScrn("SPMMP01200"); //CP검색 화면
-
- }else{
- opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
- opener.javascript.fOpenPrcpMainWnd();
- }
-
- if(cpflag == "Y" || cpflag == "X"){
- if(ordrecflag == "Y"){
- mainObj.window.javascript.openEmrScrn("SMMMB08100"); //empty
-
- }else{
- mainObj.window.javascript.openEmrScrn("SMMMR00100"); //진료기록
-
- }
- }
- }
- */
- //상단정보 설정
- if(fReqMiniInPatPamInfo()==true){
- setParameter("SMMMO04100_reqptype", reqptype);
- fOpenPrcpMainWnd();
- }
- }
- /**
- * @desc : 입원환자 환자 기본정보설정
- * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqMiniInPatPamInfo(){
- var iRow = grd_inpatlist.row;
- var pid = model.getValue("/root/main/inpatinfo/inpatlist[" + iRow + "]/pid");
- var indd = model.getValue("/root/main/inpatinfo/inpatlist[" + iRow + "]/indd");
- var cretno = model.getValue("/root/main/inpatinfo/inpatlist[" + iRow + "]/cretno");
- var instcd = model.getValue("/root/main/inpatinfo/inpatlist[" + iRow + "]/instcd");
- var srchdd = model.getValue("/root/main/cond/indd"); //조회일자
- var param;
-
- param = "I" + "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
-
- setParameter("condparam", param);
- modal("SPMMO08900", 1, "", "", "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
-
- var useyn = getParameter("SPMMO08900_rtn_useyn");
- if(useyn == "Y"){
- setParameter("SPMMO08900_rtn_useyn", "");
- return true;
- }else{
- return false;
- }
- }
- /**
- * @desc : CP환자 여부 검사
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkCPMiniPatValid(currow){
- var pid = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/pid");
- var orddd = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/indd");
- var cretno = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/cretno");
- var cpyn = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/cpyn");
- var hngnm = model.getValue("/root/main/inpatinfo/inpatlist[" + currow + "]/hngnm");
- //입원환자이나 외래CP가 진행중인 경우, 경고 메시지를 띄운다. (박유미요청)
- //2008. 07. 25 오지훈
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddd", orddd);
- if(submit("TRMMO04303")==true){
- var outcppatnode = model.instance1.selectNodes("/root/init/getdata/getdata");
- if(outcppatnode.length > 0){
- messageBox("외래 cp적용중인 환자입니다. 외래 CP Drop을", "C003");
- model.setValue(opener.root.cpflag, "N");
- return false;
- }
- }
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddd" , orddd);
- model.makeValue("/root/send/reqdata/cretno" , cretno);
- model.makeValue("/root/send/reqdata/prcpgenrflag", "I");
- if(submit("TRMMO04303")==true){
- var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
- if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
- model.setValue(root.cpflag, "N");
- return true;
-
- }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
- var appstat = model.getValue("/root/init/rsltgetdata/getdata/appstat");
- var cpgnm = model.getValue("/root/init/rsltgetdata/getdata/cpgnm");
-
- if(appstat == 12){ //CP적용상태가 12인 경우, 무조건 CP(M-GPS)창을 띄운다
- model.setValue(root.cpflag, "Y");
- return true;
-
- }else if(appstat == 52){
- var rtnval = messageBox("[" + hngnm + "]환자에게 CP를", "Q003");
- if(rtnval == 6){ //예, CP Main open, CP적용환자 tbl에 appstat 10 진행중
- model.setValue(root.cpflag, "X");
- return true;
- }else{
- model.setValue(root.cpflag, "N");
- return fUpdtCPPatAppStatVal(41); //41 : CP취소
- }
-
- }else{ //CP적용상태가 12가 아닌 경우, CP Main창 open
- model.setValue(root.cpflag, "Y");
- return true;
-
- }
- }
- }
- }
- //===================================================================
- // 외래에서 사용하는 함수들
- //===================================================================
- /**
- * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fMiniOutPat(){
- var ordrecflag = "Y";
- var currow = grd_outpatlist.row;
- if(currow < 1){
- return;
- }
-
- //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
- if(fChkScrnModal()==false){
- return;
- }
-
- var pid = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/pid");
- var stnddd = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/orddd");
- var hngnm = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/hngnm");
- var reqptype = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/reqptype");
- setParameter("SPMMO04200_openflag", "SPMMO04200");
-
- //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
- if(fChkPatOpPrcp(pid, stnddd)==false){
- var opcnfmdd = model.getValue("/root/main/opprcpinfo/opprcpinfo/opcnfmdd");
- opcnfmdd = opcnfmdd.substring(0, 4) + "-" + opcnfmdd.substring(5, 6) + "-" + opcnfmdd.substring(7, 8);
- messageBox("[" + hngnm + "]환자의 [" + opcnfmdd + "]일자 수술 처방을", "C001");
- }
-
- //CP환자 여부 확인, update시 에러나면 변경 불가
- if(fChkCPMiniOutPatValid(currow)==false){
- return;
- }
- //상단정보 설정 및 진료기록, 처방화면 연동
- var mainObj = getMainViewer();
-
- //2011.09.07 엄영만 환자 클릭시 환자정보 체크 SMMMO04100.js 파일 함수 호출 ioflag, pid 인자
- if(!fCheckSelectPatInfo("O", pid)){ return false; }
-
- //상단정보 설정
- if(fReqMiniOutPatPamInfo()==true){
- setParameter("SMMMO04100_reqptype", reqptype);
- fOpenPrcpMainWnd();
- }
-
- }
- /**
- * @desc : CP환자 여부 검사
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkCPMiniOutPatValid(currow){
- var pid = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/pid");
- var orddd = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/orddd");
- var cretno = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/cretno");
- var cpyn = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/cpyn");
- var hngnm = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/hngnm");
-
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddd" , orddd);
- model.makeValue("/root/send/reqdata/cretno" , cretno);
- model.makeValue("/root/send/reqdata/prcpgenrflag", "O");
- if(submit("TRMMO04303")==true){
- var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
- if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
- model.setValue(root.cpflag, "N"); //처방open
- return true;
-
- }else{ //CP적용환자 tbl에 유효한 데이터가 있는 경우
- var appstat = model.getValue("/root/init/rsltgetdata/getdata/appstat");
- var cpgnm = model.getValue("/root/init/rsltgetdata/getdata/cpgnm");
-
- if(appstat == 11){ //CP적용상태가 11인 경우
- var rtnval = messageBox("[" + hngnm + "]환자의 [" + cpgnm + "] CP를", "Q003");
- if(rtnval == 6){ //예 선택, CP Main open, CP적용환자 tbl에 appstat 10 진행중
- model.setValue(root.cpflag, "N");
- return fUpdtCPPatAppStatVal(51);
-
- }else{ //아니오 선택, 처방 Main open, CP적용환자 tbl에 appstat 51 drop out
- model.setValue(root.cpflag, "Y");
- return fUpdtCPPatAppStatVal(10);
- }
- }else if(appstat == 53){
- model.setValue(root.cpflag, "X");
- return true;
-
- }else{ //CP적용상태가 11가 아닌 경우, CP Main창 open
- model.setValue(root.cpflag, "Y");
- return true;
- }
- }
- }
- }
- /**
- * @desc : 외래환자 환자 기본정보설정
- * @ 수정 : 미니진료대상자에 맞게끔 내용 수정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqMiniOutPatPamInfo(){
- var iRow = grd_outpatlist.row;
- var pid = model.getValue("/root/main/outpatinfo/outpatlist[" + iRow + "]/pid");
- var orddd = model.getValue("/root/main/outpatinfo/outpatlist[" + iRow + "]/orddd");
- var cretno = model.getValue("/root/main/outpatinfo/outpatlist[" + iRow + "]/cretno");
- var instcd = model.getValue("/root/main/outpatinfo/outpatlist[" + iRow + "]/instcd");
-
- var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
- setParameter("condparam", param);
- modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
- var useyn = getParameter("SPMMO08900_rtn_useyn");
- if(useyn == "Y"){
- setParameter("SPMMO08900_rtn_useyn", "");
- return true;
- }else{
- return false;
- }
- }
-
-
- /*===============================================================================
- @desc : 검색구분에 대한 항목 선택시 각 화면 선택
- ===============================================================================*/
- function fGrdInit() {
- var sOrdType = model.getValue("/root/main/cond/ordtype");
-
- if (sOrdType =='O'){
- model.setValue("/root/main/cond/orddd" , getCurrentDate());
- rdo_patflag.visible = true;
- rdo_patflagstat.visible = false;
- caption4.visible = true;
- model.toggle("case1");
- } else if (sOrdType =='I') {
- model.setValue("/root/main/cond/orddd" , getCurrentDate());
- rdo_patflag.visible = false;
- rdo_patflagstat.visible = true;
- model.toggle("case2");
- }
-
- model.refresh();
- }
- /*===============================================================================
- @desc : 입원시 조회
- ===============================================================================*/
- function fInPatList() {
- model.removeNodeset("/root/main/inpatinfo/inpatlist");
- model.removeNodeset("/root/main/outpatinfo/outpatlist");
-
- model.resetInstanceNode("/root/send/reqdata");
-
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- submit("TRMMO04205");
- window.modelesstopmost = true;
- }
- /*===============================================================================
- @desc : 외래시 조회
- ===============================================================================*/
- function fOutPatList() {
- model.removeNodeset("/root/main/inpatinfo/inpatlist");
- model.removeNodeset("/root/main/outpatinfo/outpatlist");
-
- model.resetInstanceNode("/root/send/reqdata");
-
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- if(submit("TRMMO02901")){
- model.copyNode(opener.root.prcppatlist, root.main.cond); // 현재 조회 조건을 처방화면에 인스턴스에 복사 한다. 대상자 화면 다시 열때 참조
- }
-
- window.modelesstopmost = true;
- }
- function fInitialize() {
-
- //관심슬립콤보 아이템추가
- if (model.getValue ("/root/main/cond/clsflag") == "P" ){
- model.setValue("/root/main/cond/userid", getUserInfo("userid"));
- } else if ( model.getValue ("/root/main/cond/clsflag") == "G" ) {
- model.setValue("/root/main/cond/userid", getUserInfo("dutplcecd"));
- }
-
- model.copyNode("/root/send/reqdata", "/root/main/cond");
-
- submit("TRMMB00101");
-
- addComboItem("cmb_concslip","","","above");
-
- }
-
-
- function fChkGetData() {
- var sOrdType = model.getValue("/root/main/cond/ordtype");
- if(sOrdType =="O") {
- fOutPatList();
- } else if (sOrdType == "I") {
- fInPatList() ;
- }
-
- fChngGrdCellColor(sOrdType);
- }
- /**
- * @desc : 대기환자 색상 설정
- * : 내환자적용 환자는 color instance에 ffffff이외의 값이 들어옴
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChngGrdCellColor(sOrdType){
- var sColor = "";
- if(sOrdType == "O") {
- for(var currow = 1; currow < grd_outpatlist.rows; currow++){
- sColor = model.getValue("/root/main/outpatinfo/outpatlist[" + currow + "]/color");
- if(sColor == ""){
- sColor = "ffffff";
- }
- grd_outpatlist.rowStyle(currow, "data", "background-color") = "#" + sColor;
-
- }
- grd_outpatlist.refresh();
- }
- }
|