123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 수술환자리스트 ( SMMMO04500_수술환자리스트.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- var sOPPATLIST_PATH = "/root/main/oppatinfo/oppatlist";
- var sORDERBY = "";
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SMMMO04500(){
- model.removeNodeset(sOPPATLIST_PATH);
- model.setValue("/root/main/cond/opcnfmdd", getCurrentDate());
-
- var openflag = model.getValue(opener.root.list.oppatlistflag);
- var reopenflag = model.getValue(opener.root.reopen.reopenflag); //진료대상자 리스트 open여부
- var chngcolflag= model.getValue(opener.root.chngcol.chngcolflag); //컬럼변경 여부
-
- if(openflag == "N"){ //수술환자리스트 최초open
-
- zbcfGetCodeList(new Array("M0014",
- "M0015",
- "M0017",
- "M0623"),
- new Array("/root/init/M0014",
- "/root/init/M0015",
- "/root/init/M0017",
- "/root/init/M0623"));
-
- reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcdno", 18); //마취통증의학과 부서코드 조회
- var anstdeptcd = model.getValue("/root/init/hardcdno/hardcd/hardcd");
-
- //2016.10.11 [수술탭] Popup Menu 서식코드(Formcd)
- reqHardCodeInfo("/root/send/reqdata", "/root/init/pmenu", 9969);
-
- // 2017.01.03 외상환자 전용 수술방 제어
- reqHardCodeInfo("/root/send/reqdata", "/root/init/hardcd9973", 9973);
-
- reqOpRoomList(model.getValue("/root/main/cond/opcnfmdd"), "/root/init/oproomlist", "total"); //수술방명 조회
- addComboInstance("/root/init/oproomlist", "oproomcd^oproomnm", "0000^방없음", "oproomlist"); //수술방콤보 Item '방없음'추가
-
- copyNodeType("/root/init/oproomlist2", "/root/init/oproomlist", "replace");
- addComboInstance("/root/init/oproomlist2", "oproomcd^oproomnm", "-^전체", "oproomlist"); //조회조건 수술방콤보 Item '전체'추가
- cmb_oproomcd.select(0); //수술방 콤보는 default '전체'설정
-
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서콤보 조회
- addComboInstance("/root/init/orddept", "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 Item '전체'추가
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330"); //의사콤보 조회
- addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 Item '전체'추가
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2" , anstdeptcd, "0330"); //마취통증의학과 의사콤보 조회
- model.copyNode(opener.root.temp.oppatlist , root.init); //진료대상자 main에 init복사
- model.setValue(opener.root.list.oppatlistflag, "Y"); //수술환자리스트 open여부 Y로 설정
-
- if(reopenflag != "Y"){ //수술환자리스트 처음 열린 경우, 기본 조회 조건 설정
- model.setValue("/root/main/cond/perfdeptcd" , getUserInfo("dutplcecd")); //진료과
- var jobposcd = getUserInfo("jobposcd");
- if (jobposcd == "1775" || jobposcd == "1800") {
- model.setValue("/root/main/cond/perfdrid" , "-"); //의사
- } else {
- model.setValue("/root/main/cond/perfdrid" , getUserInfo("userid")); //의사
- }
- model.refresh();
-
- }else{ //수술환자리스트 다시 열린 경우, 진료대상자 main에 ordtab의 condlist를 복사, condlist는 닫힐때 진료대상자의 정보를 저장함
- try {
- model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
- } catch(E) {
- model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd"));
- model.setValue("/root/main/cond/orddrid" , getUserInfo("userid"));
- model.refresh();
- }
- //model.copyNode(root.main.cond, opener.root.reopen.condlist.condlist);
- model.setValue(opener.root.reopen.reopenflag, "N");
-
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , cmb_orddept.value, "0330");//이전 수술환자리스트 화면의 진료과의 의사콤보 조회
- addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 Item '전체'항목 추가
- var jobposcd = getUserInfo("jobposcd");
- if (jobposcd == "1775" || jobposcd == "1800") {
- model.setValue("/root/main/cond/perfdrid" , "-"); //의사
- } else {
- model.setValue("/root/main/cond/perfdrid" , getUserInfo("userid")); //의사
- }
- model.refresh();
-
- }
- model.copyNode(opener.root.cond.oppatlist, root.main.cond);
- reqOrderInfoOfCol("SMMMO04500", "grd_oppatlist"); //수술환자리스트 컬럼 조회 및 설정
-
- }else if(openflag == "Y"){ //수술환자리스트 다시open
- model.copyNode(root.init, opener.root.temp.oppatlist);
- model.copyNode(root.main.cond, opener.root.cond.oppatlist);
-
- var xmlnode = model.instance1.selectSingleNode("/root/init/userscrnenvinfo/gridseq");
- if(xmlnode != null){
- var refdata = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
- var sizedata = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
- var frozencol = model.getValue("/root/init/userscrnenvinfo/gridseq/frozencol");
-
- setOrderInfoOfCol("grd_oppatlist", refdata, sizedata, frozencol); //수술환자리스트 컬럼 설정, 기존에 조회한 내용으로 처리
- }
- }
-
- if(cmb_orddept.label==""){cmb_orddept.select(1);}
- if(cmb_orddrid.label==""){cmb_orddrid.select(1);}
-
- if(chngcolflag == "Y"){ //컬럼설정을 통해 재설정 한 경우, 컬럼순서를 다시 조회 처리
- reqOrderInfoOfCol("SMMMO04500", "grd_oppatlist"); //외래환자리스트 컬럼 조회 및 설정
- model.setValue(opener.root.chngcol.chngcolflag, "N");
- }
-
- fReqOPPatList();
-
- opener.javascript.fCtrlBtnDisable(false);
- }
- /**
- * @desc : 수술환자 선택
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSelectOpPat(){
- // 환자 선택 로그 시작
- fStartLogCheck("fSelectOpPat");
- var step1Elapsed = 0; // 환자선택 진행 가능여부 체크 시간
- var step2Elapsed = 0; // 환자선택 상단정보 설정 시간
- var step3Elapsed = 0; // 처방+기록+그외 팝업창 처리
-
- var ordrecflag = model.getValue(opener.root.main.cond.ordrecflag);
- var currow = grd_oppatlist.row;
- var dutplcecd = getUserInfo("dutplcecd"); //사용자부서
- if(currow < 1){
- return;
- }
-
- // 진행가능 한지 여부 체크
- fStartLogTempCheck("fSelectOpPat_Step1");
- var instcd = getUserInfo("dutplceinstcd");
- var opstatcd = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/opstatcd");
- var painlessflag = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/painlessflag"); // 무통마취여부가 N일 경우는 수술마취 확정상태에 따라 Blocking : 2009.02.05 :김영학 (박유미선배 요청)
- var pid = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/pid");
- var hngnm = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/hngnm");
- var opcnfmdd = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/opcnfmdd");
- var perfdeptcd = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/perfdeptcd");
- var perfdrid = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/perfdrid");
- var ioflag = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/ioflag");
- var srchdd = model.getValue("/root/main/cond/opcnfmdd");
- if(isNull(perfdeptcd)) perfdeptcd = model.getValue("/root/main/cond/orddeptcd");
- if(isNull(ioflag)) ioflag = "T";
-
- if(painlessflag == "N") {
- if(opstatcd == "00" || opstatcd == "10"){
- messageBox("선택된 환자는 수술확정이 되지", "E007");
- return;
- }
- }
-
- if( getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
- messageBox("현재 로그인한 '"+ getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
- return false;
- }
-
- //2016.05.09 마취전평가 및 협진서 미작성 시 마취기록지 사용못하도록 제한
- if((getUserInfo("dutplcecd") == "2090000000" || getUserInfo("dutplcecd") == "2090300000")
- && opener.model.getValue("/root/main/cond/ordrecflag") != "Y"){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
-
- // 2017.01.03 외상환자 전용 수술방 제어
- var trpatyn = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/trpatyn");
- var oproomnm = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/oproomnm");
- var nTarRow = model.getValue("/root/init/hardcd9973/hardcd[hardcd='"+oproomnm+"']/hardcdnm");
- if( instance1.selectSingleNode(sOPPATLIST_PATH + "[" + currow + "]/trpatyn") != null
- && trpatyn != "Y" && nTarRow != "" ){
- var setDate = nTarRow.split("|")[0];
- if( !isNull(setDate) && setDate.length == 8 && setDate <= opcnfmdd ){
- messageBox("선택된 환자 수술방은 외상환자 수술방입니다. 수술방 변경 후 진행하십시오.", "E");
- //return false;
- }
- }
-
- if( lf_TRMMR03714() == false ){
- var rtn = messageBox("선택된 환자는 마취전평가 및 협진서 작성이 되지않았습니다. 기록 작성 후 진행하십시오.", "E");
- return false;
- }else if(fGetHardCDList("Y", 9970, 3) == "Y" && lf_OpAssemRecExist("STEP4") == false){
- var rtn = messageBox("선택된 환자는 마취유도직전평가서 작성이 되지않았습니다. 기록 작성 후 진행하십시오.", "E");
- return false;
- }
- }
-
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/ioflag" , "T"); //수술환자 ioflag는 T로 설정, 실제로 T는 없으나, 로직처리를 위해 임시로, 실제 ioflag는 patflag
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddd" , opcnfmdd);
- model.makeValue("/root/send/reqdata/orddeptcd", perfdeptcd);
- model.makeValue("/root/send/reqdata/orddrid" , perfdrid);
- model.makeValue("/root/send/reqdata/patflag" , ioflag); //실제 ioflag는 patflag로 설정
- model.makeValue("/root/send/reqdata/instcd" , instcd); //기관코드
- model.makeValue("/root/send/reqdata/srchdd" , srchdd); //기준일자
-
- if(submit("TRMMO04503")==true){ //수술환자의 원무키 조회
- var cnt=getNodesetCount("/root/init/pamkeyinfo/pamkeyinfo");
- if(cnt > 1){
- messageBox("환자의 원무 접수정보가 2건이상 존재 합니다.\n\n처방및 기록을 저장하실 원무 접수 정보를 선택", "I007");
- modal("SPMMO18300", "", "", "", "SPMMO18300", "/root/init/pamkeyinfo", "/root/main/patinfo");
- var cretno = getParameter("SPMMO18300_cretno");
- if(cretno == "0") {
- messageBox("환자의 원무 접수정보가 선택 되지", "E007");
- return;
- } else {
- model.setValue("/root/init/pamkeyinfo/pamkeyinfo/cretno", cretno);
- }
- }
- } else {
- messageBox("선택된 환자는 원무 접수 정보가", "E014");
- return;
- }
-
- //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
- if(fChkScrnDisable()==false){
- return;
- }
-
- //CP환자 여부 확인
- if(fChkCPPatValid(currow)==false){
- return;
- }
- // 진료기록에 수정된 사항이 있을 경우 저장할 것인지 묻는 함수 호출 : 2009. 07. 27 김영학
- var mainobj = getMainViewer();
- var mainscrnid = mainobj.javascript.getScreenID(); //메인화면의 기록지 ID
- if(mainscrnid == "SMMMR00100"){
- var prvIntRecPamInfRtn = mainobj.window.javascript.fPrevInitRecPamInfo();
- if(prvIntRecPamInfRtn == false){
- return;
- }// 기록지에 필수 입력사항을 입력하지 않았을 때 그냥 넘어가 버리는 오류 수정 20100305 LYJ
- }
- step1Elapsed = fEndLogTempCheck("fSelectOpPat_Step1");
-
- // 상단정보 설정
- fStartLogTempCheck("fSelectOpPat_Step2");
- if(!fReqOpPatPamInfo(currow)) { return; }
- step2Elapsed = fEndLogTempCheck("fSelectOpPat_Step2");
-
- // 진료기록, 처방화면 연동
- fStartLogTempCheck("fSelectOpPat_Step3");
- var recflag = opener.model.getValue("/root/main/cond/recflag");
- opener.javascript.fOpenPrcpMainWnd(recflag);
- step3Elapsed = fEndLogTempCheck("fSelectOpPat_Step3");
- var recnaviyn = opener.model.getValue("/root/main/cond/recnaviyn");
- var mainObj = getMainViewer();
- var curPrcpObj = mainObj.javascript.getOpenWindow("SMMMO00100"); //활성화된 처방Main 화면 object loading
- if (curPrcpObj != null && recnaviyn == "N") { // 처방창이 팝업 된경우만 체크
- var sLogParam = "userid:" + getUserInfo("userid") + "|" // item02
- + "instcd:" + model.getValue(sOPPATLIST_PATH + "["+ currow +"]/instcd") + "|" // item03
- + "pid:" + model.getValue(sOPPATLIST_PATH + "["+ currow +"]/pid") + "|" // item04
- + "opcnfmdd:" + model.getValue(sOPPATLIST_PATH + "["+ currow +"]/opcnfmdd") + "|" // item05
- + "perfdeptcd:" + model.getValue(sOPPATLIST_PATH + "["+ currow +"]/perfdeptcd")+ "|" // item06
- + "perfdrid:" + model.getValue(sOPPATLIST_PATH + "["+ currow +"]/perfdrid") + "|" // item07
- + step1Elapsed + "|" // 진행가능 한지 여부 체크 // item08
- + step2Elapsed + "|" // 상단정보 // item09
- + step3Elapsed // 처방+기록+그외 팝업창 처리 // item10
- ;
- fEndLogCheck("fSelectOpPat", sLogParam);
- }
- }
- /**
- * @desc : 수술환자 기본정보설정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqOpPatPamInfo(iRow){
- var ioflag = "T" // 수술일 경우 ioflag:T
- var pid = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/pid");
- var opcnfmdd = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/opcnfmdd");
- var cretno = model.getValue("/root/init/pamkeyinfo/pamkeyinfo/cretno");
- var instcd = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/instcd");
- var perfdeptcd = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/perfdeptcd");
- var perfdrid = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/perfdrid");
- var patflag = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/ioflag");
- var procflag = "F"; // 최초조회:F , 재조회:R
- var cnstopflag = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/cnstopflag");
- var oprsrvno = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/oprsrvno");
- var mainoprsrvno = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/mainoprsrvno");
- /* // 협진수술일때 부수술일 경우 주수술의 기록지가 뜨는 로직 삽입 : 2008. 08.27 (박유미 요청)
- if (cnstopflag == "Y") {
- if (mainoprsrvno != "-") {
- oprsrvno = mainoprsrvno;
- }
- }
- */
- var ophistno = model.getValue(sOPPATLIST_PATH + "[" + iRow + "]/ophistno");
- var srchdd = model.getValue("/root/main/cond/opcnfmdd"); //조회일자
-
- var param = ioflag + "▦" +
- pid + "▦" +
- opcnfmdd + "▦" +
- cretno + "▦" +
- instcd + "▦" +
- perfdeptcd + "▦" +
- perfdrid + "▦" +
- patflag + "▦" +
- procflag + "▦" +
- oprsrvno + "▦" +
- ophistno + "▦" +
- srchdd;
-
- setParameter("condparam", param);
- model.setValue("/root/init", 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 : 수술환자리스트 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqOPPatList(){
- //마취통증의학과와 조회진료과가 동일한 경우는 전체 조회 처리
- //서버로직으로의 처리는 속도영향이 있음으로 web에서 처리
- //2008. 07. 29. 오지훈
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- var anstpaindeptcd = model.getValue("/root/init/hardcdno/hardcd/hardcd");
- if(anstpaindeptcd == model.getValue("/root/main/cond/perfdeptcd")){
- model.setValue("/root/send/reqdata/perfdeptcd", "-"); //집도과 전체설정
- model.setValue("/root/send/reqdata/perfdrid" , "-"); //집도의 전체설정
- }
-
- var compsrefcnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compsrefcnts");
- var compssizecnts = model.getValue("/root/init/userscrnenvinfo/gridseq/compssizecnts");
-
- if(isNull(compsrefcnts)) compsrefcnts = "";
- if(isNull(compssizecnts)) compssizecnts = "";
-
- model.makeValue("/root/send/reqdata/compsrefcnts", compsrefcnts);
- model.makeValue("/root/send/reqdata/compssizecnts", compssizecnts);
-
- if(submit("TRMMO04501")){
- var totrow = grd_oppatlist.rows;
- model.setValue("/root/main/totcnt/totcnt", totrow-1);
- model.copyNode(opener.root.temp.oppatlist, root.init);
- model.copyNode(opener.root.cond.oppatlist, root.main.cond);
- }
- var orderby = model.getValue("/root/main/cond/orderby");
- var sortcol = model.getValue("/root/main/cond/sortcol");
- if(sortcol != "" && orderby != ""){
- sORDERBY = orderby;
- //nodeListSort(grd_oppatlist.nodeset, grd_oppatlist.colAttribute(sortcol, "ref"), sORDERBY);
- grd_oppatlist.colsort(sortcol) = sORDERBY
- grd_oppatlist.sort(1, 1, grd_oppatlist.rows -1, grd_oppatlist.cols -1) = "usersort";
- grd_oppatlist.gridToInstance();
- grd_oppatlist.refresh();
- }
- }
- /**
- * @desc : 그리드 data 엑셀화일로 저장
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSaveGridToExcel(){
- saveGridToExcel(grd_oppatlist);
- }
- /**
- * @desc : (입원)관심환자등록창 호출
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fCallWndConcPatRgst(){
- var currow = grd_oppatlist.row;
- var pid = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/pid");
- var hngnm = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/hngnm");
- var indd = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/opcnfmdd");
- var cretno = ""
- var seqno = ""
- var instcd = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/instcd");
- var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
- setParameter("param", param);
- //modal("SPMMO08200");
- open("SPMMO08200");
- }
- /**
- * @desc : (수술)주의요망환자창 호출
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fCallWndWarnPat(){
- var nCurRow = grd_oppatlist.row;
- var sPid = model.getValue(sOPPATLIST_PATH + "[" + nCurRow + "]/pid");
- var sHngnm = model.getValue(sOPPATLIST_PATH + "[" + nCurRow + "]/hngnm");
-
- setParameter("SMMMO19100_warncd" , sPid);
- setParameter("SMMMO19100_warnnm" , sHngnm);
-
- modal("SMMMO19100");
-
- clearParameter("SMMMO19100_warncd");
- clearParameter("SMMMO19100_warnnm");
- }
- /**
- * @desc : 수술부위확인 점검표 창 호출
- * @
- * @param : oprsrvno
- * @return :
- * @author : 손성훈
- * @---------------------------------------------------
- */
- function fOpchk(){
- /* 수술부위 확인점검표 칠곡 적용.2012.05.24_손성훈
- var dutplceinstcd = getUserInfo("dutplceinstcd");
- if (dutplceinstcd == "032"){
- //messagebox("준비중 입니다","I");
- return;
- }
- */
- var currow = grd_oppatlist.row;
- var oprsrvno = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/oprsrvno");
- setParameter("SMMNP00208_PARM_OPRSRVNO", oprsrvno);
- //setParameter("SMMNP00208_PARM_PID", model.getValue("/root/init/HideData/pid"));
- modal("SMMNP00208");
- }
- /**
- * @desc : 수술환자 CP적용여부 확인
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkCPPatValid(currow){
- var pid = model.getValue("/root/init/pamkeyinfo/pamkeyinfo/pid");
- var orddd = model.getValue("/root/init/pamkeyinfo/pamkeyinfo/orddd");
- var cretno= model.getValue("/root/init/pamkeyinfo/pamkeyinfo/cretno");
- var ioflag= model.getValue("/root/init/pamkeyinfo/pamkeyinfo/ioflag");
- var hngnm = model.getValue("/root/init/pamkeyinfo/pamkeyinfo/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/hngnm" , hngnm); //추가(2008.08.25)
- model.makeValue("/root/send/reqdata/prcpgenrflag", ioflag);
- model.makeValue("/root/send/reqdata/srchtabflag" , "D"); //대상자리스트탭(I/D):조회결과orddd,cretno는 외래이력의 수전정보임
-
- if(submit("TRMMO04303")==true){ //수술환자의 CP적용 여부 확인
- var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
- if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
- model.setValue(opener.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");
- var cpgappno = model.getValue("/root/init/rsltgetdata/getdata/cpgappno");
- var msgcnts = model.getValue("/root/init/rsltgetdata/getdata/msgcnts");
- var msgflag = model.getValue("/root/init/rsltgetdata/getdata/msgflag");
- var prtlflagcd = model.getValue("/root/init/rsltgetdata/getdata/prtlflagcd"); //01:CP,02:CPG
-
- if(appstat == 52){
- //case52: 입원장 CP
- var rtnval = messageBox(msgcnts, msgflag);
- if(rtnval == 6){
- model.setValue(opener.root.cpflag, "X"); // CP Main open
- return true;
- }else{
- model.setValue(opener.root.cpflag, "N");
- if(fUpdtCPPatAppStatVal(41) != false && instance1.selectSingleNode(sOPPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //41 : CP 취소
- model.setValue(sOPPATLIST_PATH + "[" + currow + "]/cpyn", "N");
- return;
- }else{
- return false;
- }
- }
-
- }else{
- if( prtlflagcd == "02" && isNull(appstat) && msgflag == "P" ){ //모니터링구분:대상자탐색 Case. CPG & 호출flag:Popup(appyn:평가용여부)
- //CPG적용대상자 알림 팝업 호출 (2009.05.04)
- setParameter("SMMMO041_hngnm" , hngnm);
- setParameter("SMMMO041_pid" , pid);
- setParameter("SMMMO041_cretno" , cretno);
- setParameter("SMMMO041_orddd" , orddd);
- setParameter("SMMMO041_ordtype" , ioflag);
- setParameter("SMMMO041_orddeptcd" , perfdeptcd);
- setParameter("SMMMO041_slipnm" , model.getValue(root.init.rsltgetdata.getdata.msgcnts)); //cpgno▦cpghistseq▦cpgnm▦slipno▦slipnm▦valusgeyn▦valunm▦guidedocucnts
- setParameter("SMMMO041_cpgmntrflag", appstat); //null, SPMMP03200화면에서 cpgmntrflag(M or S)으로 따짐
- setParameter("SMMMO041_cpgappno" , cpgappno); //적용중인 CP가 존재하면 값이 있음
- setParameter("SMMMO041_cpgnm" , cpgnm); //적용중인 CP가 존재하면 값이 있음
-
- modal("SPMMP03200"); //CP대상자 알람 팝업
-
- if( cpgappno > 0 && cpgappno != getParameter("SPMMP032_cpgappno") && instance1.selectSingleNode(sOPPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
- model.setValue(sOPPATLIST_PATH + "[" + currow + "]/cpyn", "N");
- }
- if( !isNull(getParameter("SPMMP032_cpgappno")) && getParameter("SPMMP032_cpgappno") > 0 ){
- model.setValue(opener.root.cpflag, "Y"); //CPG적용한 경우, MGPS 호출
- }else{
- model.setValue(opener.root.cpflag, "N"); //미적용 시 처방 화면 호출
- }
-
- clearParameter("SPMMP032_cpgappno");
- clearParameter("SMMMO041_hngnm");
- clearParameter("SMMMO041_pid");
- clearParameter("SMMMO041_cretno");
- clearParameter("SMMMO041_orddd");
- clearParameter("SMMMO041_ordtype");
- clearParameter("SMMMO041_orddeptcd");
- clearParameter("SMMMO041_slipnm");
- clearParameter("SMMMO041_cpgmntrflag");
- clearParameter("SMMMO041_cpgappno");
- clearParameter("SMMMO041_cpgnm");
-
- return true;
-
- }else{
- //case 12 : D0 ~ D1 CP
- //그외 case : (10 : 진행중...)
- if( !isNull(msgcnts) && !isNull(msgflag) ){
- //12: D0 처방일과 == 입원일 -> Drop 유도
- //그외: 오늘날짜 > CP퇴원예정일 -> Drop 유도
- messageBox(msgcnts, msgflag);
- setParameter("SMMMO043_cpgappno", cpgappno); //drop 팝업에서 인식할 수 있는 param
- setParameter("SMMMO043_drop" , "N"); //drop 팝업에서 인식할 수 있는 param
-
- modal("SPMMP02300"); //Drop 팝업 호출
-
- model.setValue(opener.root.cpflag, "N");
- if( getParameter("SMMMO043_drop") == "Y" ){
- model.setValue(sINPATLIST_PATH + "[" + currow + "]/cpyn", "N");
- }else{
- return false;
- }
- clearParameter("SMMMO043_cpgappno");
- clearParameter("SMMMO043_drop");
- return true;
- }
-
- model.setValue(opener.root.cpflag, "Y");
- return true;
- }
- }
- }
- }
- }
- /**
- * @desc : CP환자 적용상태값 변경
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fUpdtCPPatAppStatVal(appstat){
- var cpgappno = model.getValue("/root/init/rsltgetdata/getdata/cpgappno");
- model.removeNodeset("/root/send/savedata");
- model.makeValue("/root/send/savedata/cpgappno", cpgappno);
- model.makeValue("/root/send/savedata/appstat" , appstat);
- if(submit("TXMMO04301")==false){
- return false;
- }
- }
- function fPrtPatList() {
- var rptid = "RPMMO04105";
- var desNode = "/root/main/oppatinfo/oppatlist";
- model.makeValue("/root/main/cond/orddeptnm", cmb_orddept.label);
- model.makeValue("/root/main/cond/orddrnm", cmb_orddrid.label);
- model.makeValue("/root/main/cond/oproom", cmb_oproomcd.label);
- exeReportPreview(rptid, "XMLSTR", desNode);
- }
- /**
- * @desc : 안전사고 보고
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPatQi(){
- var currow = grd_oppatlist.row;
- var pid = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/pid");
- var orddd = "";
- var cretno = "";
- var ordtype = "";
- var oprsrvno = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/oprsrvno");
-
- setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
- modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
- }
- /****************************************************************************************
- * Function : lf_OpAssemRec
- * Description : 마취전평가및협진서 기록 작성
- * Argument : 01.Flag : 기록지 구분
- * retrun type :
- * Creator :
- ****************************************************************************************/
- function lf_OpAssemRec(Flag){
- var nRow = grd_oppatlist.row;
- var nOprsrvno = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/oprsrvno");
-
- // Step0. 작성 제한
- var painlessflag = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/painlessflag");
- var opstatcd = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/opstatcd");
- if(painlessflag == "N") {
- if(opstatcd == "00" || opstatcd == "10"){
- messageBox("선택된 환자는 수술확정이 되지", "E007");
- return;
- }
- }
-
-
- // 환자수술정보
- var sPid = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/pid"); // 환자번호
- var sPnm = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/hngnm"); // 환자명
- var sSex = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/sa").split("/")[0]; // 성별
- var sAge = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/sa").split("/")[1]; // 나이
- var sInstcd = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/instcd"); // 기관코드
- var sIOFlag = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/ioflag"); // 입원/외래 구분
- var sRoomCD = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/roomcd");
- var sOrdDeptCd = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/orddeptcd"); // 진료과코드
-
- var sOrdDeptNm = model.getValue("/root/init/orddept/dept[deptcd = '" + sOrdDeptCd + "']/depthngnm"); // 진료과
- var opcnfmdd = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/opcnfmdd");
- var sPerfDeptCd = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/perfdeptcd"); // 집도과코드
- var sPerfDrId = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/perfdrid"); // 집도의ID
-
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/ioflag" , "T"); //수술환자 ioflag는 T로 설정, 실제로 T는 없으나, 로직처리를 위해 임시로, 실제 ioflag는 patflag
- model.makeValue("/root/send/reqdata/pid" , sPid);
- model.makeValue("/root/send/reqdata/orddd" , opcnfmdd);
- model.makeValue("/root/send/reqdata/orddeptcd", sPerfDeptCd);
- model.makeValue("/root/send/reqdata/orddrid" , sPerfDrId);
- model.makeValue("/root/send/reqdata/patflag" , sIOFlag); //실제 ioflag는 patflag로 설정
- model.makeValue("/root/send/reqdata/instcd" , sInstcd); //기관코드
- model.makeValue("/root/send/reqdata/srchdd" , model.getValue("/root/main/cond/opcnfmdd")); //기준일자
-
- if(submit("TRMMO04503")==true){ //수술환자의 원무키 조회
- var cnt=getNodesetCount("/root/init/pamkeyinfo/pamkeyinfo");
- if(cnt > 1){
- messageBox("환자의 원무 접수정보가 2건이상 존재 합니다.\n\n처방및 기록을 저장하실 원무 접수 정보를 선택", "I007");
- modal("SPMMO18300", "", "", "", "SPMMO18300", "/root/init/pamkeyinfo", "/root/main/patinfo");
- var cretno = getParameter("SPMMO18300_cretno");
- if(cretno == "0") {
- messageBox("환자의 원무 접수정보가 선택 되지", "E007");
- return;
- } else {
- model.setValue("/root/init/pamkeyinfo/pamkeyinfo/cretno", cretno);
- }
- }
- } else {
- messageBox("선택된 환자는 원무 접수 정보가", "E014");
- return;
- }
-
- if( Flag == "STEP1" ){
- // Step1. 수술전평가서 정보가져오기
- lf_TRMMR03714();
-
- // Step2. 수술전평가서 formcd 조회
- mmbfGetHardCodeInfo("/root/send/reqdata/hardCodeInfo", "/root/init/hardcd", 9910);
- submit("TRMMO05503");
- }else if( Flag == "STEP2" || Flag == "STEP3" || Flag == "STEP4" ){
- // Step1. 회복기록지 정보가져오기
- lf_OpAssemRecExist(Flag);
- }
-
- var formrecseq = model.getValue("/root/main/opanstform/formseqno"); // 기록키
- var espiseq = model.getValue("/root/main/opanstform/espiseq"); //인증키
-
-
- var disparam = sPid +"▦" + sPnm +"▦" + sSex+ "/" + sAge+ "▦" + sOrdDeptNm +"▦" + sRoomCD + "▦";
- setParameter("disppatinfo", disparam); //등록번호▦환자명▦성별/나이▦진료과▦병실▦
- setParameter("oprsrvno", nOprsrvno);
- setParameter("opcnfmdd", opcnfmdd);
- setParameter("topyn", "N");
- setParameter("formrecseq", formrecseq);
- setParameter("callback", Flag);
-
- if (formrecseq == "" || formrecseq == "0")
- {
-
- setParameter("pid", sPid);
- // 2009.05.20. 입원인 경우는 입원일/진료과를.. 이외는 진료일/집도과를..
- if (sIOFlag == "I" || sIOFlag == "D" || sIOFlag == "E") {
- setParameter("orddd", model.getValue("/root/init/pamkeyinfo/pamkeyinfo/orddd"));
- setParameter("orddeptcd", sOrdDeptCd); //진료과
- } else {
- setParameter("orddd", model.getValue("/root/init/pamkeyinfo/pamkeyinfo/orddd"));
- setParameter("orddeptcd", sPerfDeptCd); //집도과
- }
- setParameter("cretno", model.getValue("/root/init/pamkeyinfo/pamkeyinfo/cretno"));
- setParameter("ioflag", sIOFlag);
- setParameter("orddrid", sPerfDrId); //집도의
- setParameter("openmode", "newform");
- setParameter("formcd", model.getValue("/root/init/formcd/hardcd/hardcd"));
- } else {
- setParameter("openmode", "recform");
- }
-
- setParameter("SSMMR01100_getTopYn", "N");
-
- if( Flag == "STEP4" ){
- // Step1. 수술전평가서 정보가져오기
- lf_TRMMR03714();
-
- // Step2. 수술전평가서 formcd 조회
- mmbfGetHardCodeInfo("/root/send/reqdata/hardCodeInfo", "/root/init/hardcd", 9910);
- submit("TRMMO05503");
-
- var oldflag = "E";
- var espiseq = model.getValue("/root/main/opanstform/espiseq");
- var formcd = model.getValue("/root/init/formcd/hardcd/hardcd"); //마취전 평가서
-
- clearParameter("SMMMO04500_espiseq");
- clearParameter("SMMMO04500_formcd");
-
- if(!isNull(espiseq)){
- setParameter("SMMMO04500_espiseq", espiseq);
- setParameter("SMMMO04500_formcd", formcd);
- }
- }
-
- modal("SSMMR06900", 1, 0, 0 ,"SSMMR06900", "", "","caption:hidden;");
-
-
-
- var param = getParameter("SSMMR01100_formrecseq");
- if (param == "") {
- return false;
- }
-
- return true;
- }
- /****************************************************************************************
- * Function : lf_TRMMR03714
- * Description : 마취전평가및협진서 정보가져오기
- * Argument :
- * retrun type :
- * Creator :
- ****************************************************************************************/
- function lf_TRMMR03714(){
-
- var nRow = grd_oppatlist.row;
- var nOprsrvno = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/oprsrvno");
-
- model.makeValue("/root/send/opanstform/oprsrvno" , nOprsrvno);
-
- if(submit("TRMMR03714", false)){
- if( model.getValue("/root/main/opanstform/formseqno") == "" || model.getValue("/root/main/opanstform/formseqno") == "0" )
- return false;
- }else{
- return false;
- }
-
- return true;
- }
- /****************************************************************************************
- * Function : fPreOpAssemRecClose
- * Description : 마취전평가및협진서 작성 완료 후 처리
- * Argument :
- * retrun type :
- * Creator :
- ****************************************************************************************/
- function fPreOpAssemRecClose(){
- var param = getParameter("SSMMR01100_formrecseq");
- if (param != "") {
- //fSelectOpPat();
- }
- }
- function lf_OpAssemRec_Step1(){
- lf_OpAssemRec("STEP1");
- }
- function lf_OpAssemRec_Step2(){
- lf_OpAssemRec("STEP2");
- }
- function lf_OpAssemRec_Step3(){
- lf_OpAssemRec("STEP3");
- }
- function lf_OpAssemRec_Step4(){
- if( getUserInfo("dutplceinstcd") == "032" ){
- lf_OpAssemRec("STEP4");
- }
- }
- function lf_OpAssemRecExist(Flag){
- var nRow = grd_oppatlist.row;
- var nOprsrvno = model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/oprsrvno");
-
- var nFormcd = model.getValue("/root/init/pmenu/hardcd[hardcd = '"+ Flag +"']/hardcdnm");
- if( isNull(nFormcd) ){
- messageBox("선택한 기록의 서식코드가", "E014");
- return false;
- }
-
- model.makeValue("/root/init/formcd/hardcd/hardcd", nFormcd);
-
- model.removeNodeset("/root/send/opanstform");
- model.makeValue("/root/send/opanstform/oprsrvno" , nOprsrvno);
- model.makeValue("/root/send/opanstform/formcd" , model.getValue("/root/init/formcd/hardcd/hardcd"));
- model.makeValue("/root/send/opanstform/instcd" , model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/instcd"));
- model.makeValue("/root/send/opanstform/pid" , model.getValue(sOPPATLIST_PATH + "[" + nRow + "]/pid"));
- model.makeValue("/root/send/opanstform/orddd" , model.getValue("/root/init/pamkeyinfo/pamkeyinfo/orddd"));
- model.makeValue("/root/send/opanstform/cretno" , model.getValue("/root/init/pamkeyinfo/pamkeyinfo/cretno"));
-
- if(submit("TRMMR03723", false)){
- if( model.getValue("/root/main/opanstform/formseqno") == "" || model.getValue("/root/main/opanstform/formseqno") == "0" )
- return false;
- }else{
- return false;
- }
-
- return true;
- }
- /**
- * @desc : 환자라벨출력
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPrintPatLabel(){
- var currow = grd_oppatlist.row;
- var pid = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/pid");
- var patnm = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/hngnm");
- var sexage = model.getValue(sOPPATLIST_PATH + "[" + currow + "]/sa");
-
- setParameter("SMMMB00100_scrnid", "SMMMO04100");
- setParameter("SMMMB00100_pid", pid);
- setParameter("SMMMB00100_patnm", patnm);
- setParameter("SMMMB00100_sexage", sexage);
-
- modal("SMMMB00100");
- }
|