123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 입원환자리스트 ( SMMMO04300_입원환자리스트.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- var sINPATLIST_PATH = "/root/main/inpatinfo/inpatlist";
- var sDSCHDCLRT_PATH = "/root/main/dschdclrt/dschdclrt";
- var sORDERBY = "";
- /**
- * @desc : 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SMMMO04300(){
- model.removeNodeset(sINPATLIST_PATH);
- model.setValue(root.main.cond.indd, getCurrentDate());
- //의료협력 컬럼 추가 (성가 제외) 091019 kimsj
- // 하드코드 테이블 한번에 조회하도록 프로그램 수정
- fGethardcdArrayList(new Array(
- "reqphardcdno|138" , ///진료대상자 의료협력 컬럼 사용여부
- "npdeptcd|104", //정신과 과 코드 조회
- "hardcdno|63", // 응급의학과
- "opdrugresn|76" //수술예방적 항생제 사유 입력 부서코드 조회
- ),
- new Array(
- "root/init",
- "root/init",
- "root/init",
- "root/init"
- )
- );
- /*
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/reqphardcdno", 138); //진료대상자 의료협력 컬럼 사용여부
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/npdeptcd", 104); //정신과 과 코드 조회
- */
- if (model.getValue("/root/init/reqphardcdno/hardcd/hardcd") == "N") {
- grd_inpatlist.colHidden(grd_inpatlist.colRef("refer")) = true;
- grd_inpatlist.colHidden(grd_inpatlist.colRef("replstat")) = true;
- }
-
- var openflag = model.getValue(opener.root.list.inpatlistflag);
- var reopenflag = model.getValue(opener.root.reopen.reopenflag); //진료대상자 리스트 open여부
- var chngcolflag= model.getValue(opener.root.chngcol.chngcolflag); //컬럼변경 여부
- if(openflag == "N"){
- zbcfGetCodeList(new Array("P0008",
- "M0525",
- "M0623"),
- new Array("/root/init/P0008",
- "/root/init/M0525",
- "/root/init/M0623"));
-
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept2", "W"); //병동코드 콤보
-
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , getUserInfo("dutplcecd"), "0330", "", "M", "", "", "P");
- if(fContainsHardCD("515", getUserInfo("dutplcecd"))) { // 담당의 항목에 교수도 조회해야 하는 부서
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", getUserInfo("dutplcecd"), "0330", "", "T", "", "", "P"); // 담당의에 주치의도 포함 되도록 수정 -2015.11.06 엄영만 요청서:20151102005
- } else {
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", getUserInfo("dutplcecd"), "0330", "", "A", "", "", "P");
- }
- /*
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/hardcdno", 63); //응급의학과 부서코드 조회
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/opdrugresn", 76); //수술예방적 항생제 사유 입력 부서코드 조회
- */
- addComboInstance("/root/init/orddept" , "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 Item '전체'추가
-
- if (model.getValue(root.main.cond.orddeptcd) == "-") {
- model.makeValue("/root/init/userlist/usercombo/userid", "-");
- model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
- model.makeValue("/root/init/userlist2/usercombo/userid", "-");
- model.makeValue("/root/init/userlist2/usercombo/usernm", "전체");
- } else {
- addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
- addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
- }
- addComboInstance("/root/init/orddept2" , "deptcd^depthngnm", "-^전체", "dept"); //병동콤보 전체항목 추가
-
- model.copyNode(opener.root.temp.inpatlist , root.init);
- model.setValue(opener.root.list.inpatlistflag, "Y");
-
- if(reopenflag != "Y"){ //다시 열린 경우가 아니면, 기본 조회 조건 설정
- model.setValue(root.main.cond.orddeptcd , getUserInfo("dutplcecd")); //진료과
- model.setValue(root.main.cond.wardcd , "-"); //병동콤보
-
- var sMediSpclId = model.getValue("/root/init/userlist/usercombo[userid = '" + getUserInfo("userid") + "']/userid"); // 2015.12.03 엄영만 전문의 항목에 있는 사용자면 설정하는 것으로 변경
- var sAtdoctId = model.getValue("/root/init/userlist2/usercombo[userid = '" + getUserInfo("userid") + "']/userid"); // 2015.12.03 엄영만 담당의 항목에 있는 사용자면 설정하는 것으로 변경
-
- if(isNull(sMediSpclId)) {
- model.setValue(root.main.cond.medispclid, "-"); //전문의
- } else {
- model.setValue(root.main.cond.medispclid, sMediSpclId); //전문의
- }
-
- //if(isNull(sAtdoctId)) {
- model.setValue(root.main.cond.atdoctid, "-"); //담당의
- //} else {
- // model.setValue(root.main.cond.atdoctid, sAtdoctId); //담당의
- //}
-
- model.refresh();
- }else{ //다시 열린 경우, main에 ordtab의 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", "", "M", "", "", "P");
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", cmb_orddept.value, "0330", "", "A", "", "", "P");
-
- if (model.getValue(root.main.cond.orddeptcd) == "-") {
- model.makeValue("/root/init/userlist/usercombo/userid", "-");
- model.makeValue("/root/init/userlist/usercombo/usernm", "전체");
- model.makeValue("/root/init/userlist2/usercombo/userid", "-");
- model.makeValue("/root/init/userlist2/usercombo/usernm", "전체");
- } else {
- addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo"); //의사콤보 전체항목 추가
- addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo");//의사콤보 전체항목 추가
- }
- model.refresh();
- }
-
- model.copyNode(opener.root.cond.inpatlist , root.main.cond);
-
- reqOrderInfoOfCol("SMMMO04300", "grd_inpatlist"); //입원환자리스트 컬럼 조회 및 설정
-
- }else if(openflag == "Y"){
- model.copyNode(root.init , opener.root.temp.inpatlist);
- model.copyNode(root.main.cond, opener.root.cond.inpatlist);
-
- 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_inpatlist", refdata, sizedata, frozencol); //입원환자리스트 컬럼 설정, 기존에 조회한 내용으로 처리
- }
- }
-
- if(cmb_orddept.label == ""){cmb_orddept.select(1);} //선택된 진료과가 없는 경우 default로 첫번째 설정
- if(cmb_medispclid.label == ""){cmb_medispclid.select(1);} //선택된 담당교수가 없는 경우 default로 첫번째 설정
-
- if(chngcolflag == "Y"){ //컬럼설정을 통해 재설정 한 경우, 컬럼순서를 다시 조회 처리
- reqOrderInfoOfCol("SMMMO04300", "grd_inpatlist"); //외래환자리스트 컬럼 조회 및 설정
- model.setValue(opener.root.chngcol.chngcolflag, "N");
- }
-
- var orddeptcd = model.getValue(root.main.cond.orddeptcd);
- var medispclid = model.getValue(root.main.cond.medispclid);
- var atdoctid = model.getValue(root.main.cond.atdoctid);
- var wardcd = model.getValue(root.main.cond.wardcd);
- var rtorddeptcd = model.getValue("/root/init/hardcdno/hardcd/hardcd");
- if (orddeptcd == rtorddeptcd) { // 진료과가 방사선종양학과 일 경우 caption이 보여짐
- caption13.visible = true;
- } else {
- caption13.visible = false;
- }
- mmbfGetSubDeptComboList("/root/send/reqdata", "/root/init/subdeptinfo", orddeptcd);
- addComboInstance("/root/init/subdeptinfo", "subdeptnm^subdeptcd", "전체^-", "subdeptlist"); //의사콤보 전체항목 추가
- model.setValue("/root/main/cond/subdeptcd", "-");
-
- if (orddeptcd == "-" && medispclid == "-" && atdoctid == "-" && wardcd == "-" ) {
- messageBox("조회조건 전부가 전체가 될수는", "I004");
- return;
- } else {
- fReqInPatList();
- }
-
- opener.javascript.fCtrlBtnDisable(false); //외래환자 리스트 조회가 완료되기 전에는 다른 button을 disabled
- }
- /**
- * @desc : (입원)관심환자등록창 호출
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fCallWndConcPatRgst(){
- var iRow = grd_inpatlist.row;
- var pid = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/pid");
- var hngnm = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/hngnm");
- var indd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/cretno");
- var seqno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/seqno");
- var instcd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/instcd");
- var param = "I" + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
- setParameter("param", param);
-
- open("SPMMO08200");
- //modal("SPMMO08200");
- //fReqInPatList();
- }
- /**
- * @desc : (입원)주의요망환자창 호출
- * @
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fCallWndWarnPat(){
- var nCurRow = grd_inpatlist.row;
- var sPid = model.getValue(sINPATLIST_PATH + "[" + nCurRow + "]/pid");
- var sHngnm = model.getValue(sINPATLIST_PATH + "[" + nCurRow + "]/hngnm");
-
- setParameter("SMMMO19100_warncd" , sPid);
- setParameter("SMMMO19100_warnnm" , sHngnm);
-
- modal("SMMMO19100");
-
- clearParameter("SMMMO19100_warncd");
- clearParameter("SMMMO19100_warnnm");
- }
- /**
- * @desc : 입원환자 환자 기본정보설정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqInPatPamInfo(){
- var iRow = grd_inpatlist.row;
- var pid = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/pid");
- var indd = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + iRow + "]/cretno");
- var instcd = model.getValue(sINPATLIST_PATH + "[" + 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 : 내 환자 적용/해제
- * @
- * @param :
- * @event : 팝업창 내 환자 적용 EVENT
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fRgstCnclMyPat(){
- var mypatinfo = "";
- var totrow = grd_inpatlist.rows;
- for(var currow = 1 ; currow < totrow ; currow++){
- if(grd_inpatlist.isSelected(currow)){
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
- var deptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var tmpstr = "▦" + pid + "▦" + indd + "▦" + cretno + "▦" + seqno + "▦" + deptcd + "▩" ;
- mypatinfo += tmpstr;
- }
- }
-
- setParameter("apntflag", "mypat"); //화면 적용 구분을 내 환자 적용
- setParameter("mypatinfo", mypatinfo);
- modal("SPMMO10700");
-
- fReqInPatList();
- }
- /**
- * @desc : 입원환자 리스트 조회
- * @
- * @param :
- * @event : 조회버튼 EVENT
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqInPatList(){
- model.makeValue("/root/main/cond/srchdd", model.getValue(root.main.cond.indd));
- model.copyNode("/root/send/reqdata", "/root/main/cond");
-
- 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("TRMMO04301")){
- model.copyNode(parent.root.temp.inpatlist, root.init);
- model.copyNode(parent.root.cond.inpatlist, 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_inpatlist.nodeset, grd_inpatlist.colAttribute(sortcol, "ref"), sORDERBY);
- grd_inpatlist.colsort(sortcol) = sORDERBY
- grd_inpatlist.sort(1, 1, grd_inpatlist.rows -1, grd_inpatlist.cols -1) = "usersort";
- grd_inpatlist.gridToInstance();
- }
- model.setValue(root.main.cond.totcnt, grd_inpatlist.rows - 1);
- model.refresh();
-
- //내환자가 적용된 경우에만 색깔 표시
- fChngGrdCellColor();
- }
- /**
- * @desc : 환자 선택 후, 환자 정보 조회 및 기록지 화면 연동
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSelectInPat(){
- // 환자 선택 로그 시작
- var ordrecflag = opener.model.getValue("/root/main/cond/ordrecflag");
- fStartLogCheck("fSelectInPat");
- var step1Elapsed = 0; // 외래 환자선택 진행 가능여부 체크 시간
- var step2Elapsed = 0; // 입원 환자선택 상단정보 설정 시간
- var step3Elapsed = 0; // 처방+기록+그외 팝업창 처리
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
-
- // 진행가능 한지 여부 체크
- fStartLogTempCheck("fSelectInPat_Step1");
- //처방, CP화면에 modal 또는 modaless가 뜬 경우, 환자 선택 불가
- if(fChkScrnDisable() == false){
- return;
- }
-
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- setParameter("SPMMO016000_resnflag" , "P"); // 진료대상자에서 수술시 예방적 항생제를 띄울경우
- setParameter("SPMMO021100_resnflag" , "001"); // 진료대상자에서 정신과 차등수가제도 도입과 관련된 특정내역 팝업을 띄울경우
- setParameter("SPMMO016000_pid" , pid);
- setParameter("SPMMO016000_orddd" , orddd);
- setParameter("SPMMO016000_cretno" , cretno);
- setParameter("SPMMO016000_ordtype" , ordtype);
- setParameter("SPMMO016000_orddeptcd" , orddeptcd);
-
- var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
- var reqptype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/reqptype");
- var stnddd = model.getValue("/root/main/cond/indd");
-
-
- if( getGlobalVariable("able_sel_patlist", "M") == "N" ) { // 환자 선택 가능 여부 체크 2012.09.03 엄영만
- messageBox("현재 로그인한 '"+ getUserInfo("dutplcenm") +"' 부서는 기록저장 및 처방발행이 불가능한 부서 입니다.\n\n다시 로그인 후 진행 하십시오.","E");
- return false;
- }
-
- //환자수술 여부 및 수술처방 확인, 수술처방이 없는 경우 처방화면을 blocking
- if(fChkPatOpPrcp(pid, stnddd, cretno)==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");
- messageBox("수술 처방을 수술탭에서", "C001");
- }
-
- fChkPatDSCBook(pid, orddd, orddeptcd);
- var opstatcd = model.getValue("/root/main/opprcpinfo/opprcpinfo/opstatcd");
- if (opstatcd =="10") {
- messageBox("수술마취의뢰 내역에 환자 구분이 DSC로 되어 있습니다. \n\n 재원중인 경우 DSC 로 수술마취 확정이 불가합니다.\n\n 수술마취의뢰 정보를 확인하시기 바랍니다.", "");
- } else if (opstatcd =="20") {
- messageBox("수술마취의뢰 내역에 환자 구분이 DSC로 되어 있습니다. \n\n 수술 여부에 따라 변경 또는 취소 의뢰를 해야 합니다. \n\n 수술마취의뢰 정보를 확인하시기 바랍니다.", "");
- }
-
- //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("fSelectInPat_Step1");
-
- // 상단정보 설정
- fStartLogTempCheck("fSelectInPat_Step2");
- if(!fReqInPatPamInfo()) { return; }
- step2Elapsed = fEndLogTempCheck("fSelectInPat_Step2");
-
- if (fChkOpDrugResn() == false) {
- return;
- }
- if (fChkNpDiffCalcScorResn() == false) {
- return;
- }
-
- // 진료기록, 처방화면 연동
- fStartLogTempCheck("fSelectInPat_Step3");
- var recflag = opener.model.getValue("/root/main/cond/recflag");
- opener.javascript.setParameter("SMMMO04100_reqptype", reqptype);
- opener.javascript.fOpenPrcpMainWnd(recflag); //처방화면 open
- step3Elapsed = fEndLogTempCheck("fSelectInPat_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(sINPATLIST_PATH + "["+ currow +"]/instcd") + "|" // item03
- + "pid:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/pid") + "|" // item04
- + "orddd:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/indd") + "|" // item05
- + "cretno:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/cretno") + "|" // item06
- + "orddeptcd:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/orddeptcd") + "|" // item07
- + "orddrid:" + model.getValue(sINPATLIST_PATH + "["+ currow +"]/medispclid") + "|" // item08
- + step1Elapsed + "|" // 진행가능 한지 여부 체크 // item09
- + step2Elapsed + "|" // 상단정보 // item10
- + step3Elapsed // 처방+기록+그외 팝업창 처리 // item11
- ;
- fEndLogCheck("fSelectInPat", sLogParam);
- }
- }
- /**
- * @desc : 전공의 등록
- * @
- * @param :
- * @event : 팝업창 내 환자 적용 EVENT
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fRgstCnclAtDoct(){
- var mypatinfo = "";
- var deptcd = model.getValue("/root/main/cond/orddeptcd");
- var userdeptcd = getUserInfo("dutplcecd");
- if (deptcd != userdeptcd) {
- messageBox("환자의 진료과가 다르면 담당의 적용을 할 수 없습니다.", "I");
- return;
- }
- var totrow = grd_inpatlist.rows;
- for(var currow = 1 ; currow < totrow ; currow++){
- if(grd_inpatlist.isSelected(currow)){
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var tmpstr = "▦" + pid +
- "▦" + indd +
- "▦" + cretno +
- "▦" + seqno +
- "▦" + orddeptcd +
- "▩";
- mypatinfo += tmpstr;
- }
- }
-
- setParameter("apntflag" , "atdoct"); //화면 적용 구분을 전공의 등록으로 적용
- setParameter("mypatinfo", mypatinfo);
- modal("SPMMO16200");
- fReqInPatList();
- }
- /**
- * @desc : 협진관리 화면 open
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenCnstPat(){
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
- var sa = model.getValue(sINPATLIST_PATH + "[" + currow + "]/sa");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var medispclid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
- var medispclnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclnm");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var roomcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/roomcd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var patinfo = hngnm + "▦" + sa + "▦" + orddeptcd + "▦" + medispclid + "▦" + cretno + "▦" + medispclnm;
- setParameter("SPMMO03600_pid" , pid);
- setParameter("SPMMO03600_orddd" , indd);
- setParameter("SPMMO03600_roomcd" , roomcd);
- setParameter("SPMMO03600_patinfo", patinfo);
- setParameter("SPMMO03600_ioflag" , "I");
- modal("SPMMO03600");
- fReqInPatList();
- }
- /**
- * @desc : 간호 TPR 조회
- * @
- * @param :
- * @return :
- * @author :박유진 20091102
- * @---------------------------------------------------
- */
- function fCallCareTPRInfo(){
- var currow = grd_inpatlist.row;
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var instcd = getUserInfo("dutplceinstcd");
-
- setParameter("SMMNR00900_Param", "pid▦indd▦cretno▦instcd▦gbn▩" + pid + "▦" + indd + "▦" + cretno + "▦" + instcd +"▦dr▩");
-
- var curNurTprObj = getOpenWindow("SMMNR00900"); //활성화된 간호 TPR 화면 object loading
- if(curNurTprObj != null){ //간호 TPR 화면 refresh
- curNurTprObj.javascript.fInitViewer();
- curNurTprObj.javascript.fInitialize("init");
- } else {
- open("SMMNR00900");
- }
- }
- /**
- * @desc : 그리드 data 엑셀화일로 저장
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSaveGridToExcel(){
- saveGridToExcel(grd_inpatlist);
- }
- /**
- * @desc : CP환자 여부 검사
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkCPPatValid(currow){
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var cpyn = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cpyn");
- var hngnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
- if(isNull(orddeptcd)) orddeptcd = model.getValue("/root/main/cond/orddeptcd");
- if(isNull(ordtype)) ordtype = "I";
- 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", ordtype);
- model.makeValue("/root/send/reqdata/srchtabflag" , "I"); //대상자리스트탭(I/D):조회결과orddd,cretno는 외래이력의 수전정보임
-
- if(submit("TRMMO04303",false)==true){
- var cppatnode = model.instance1.selectNodes("/root/init/rsltgetdata/getdata");
- if(cppatnode.length < 1){ //cp적용환자 tbl에 유효한 데이터가 없는 경우
- model.setValue(opener.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);
- 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(sINPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //41 : CP 취소
- model.setValue(sINPATLIST_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" , ordtype);
- setParameter("SMMMO041_orddeptcd" , orddeptcd);
- 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(sINPATLIST_PATH + "[" + currow + "]/cpyn") != null){ //진행중인 CP가 있는데 팝업에서 Drop한 경우 CP여부 N으로..
- model.setValue(sINPATLIST_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;
- }
- }
- }
- } //end submit
- }
- /**
- * @desc : 입원환자 퇴원예고 여부 설정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqDschDclrtInfo(){
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var seqno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/seqno");
- var stnddd = model.getValue("/root/main/cond/indd");
- setParameter("SPMMO15200_pid" , pid);
- setParameter("SPMMO15200_indd" , indd);
- setParameter("SPMMO15200_cretno", cretno);
- setParameter("SPMMO15200_seqno" , seqno);
- setParameter("SPMMO15200_stnddd", stnddd);
- modal("SPMMO15200");
-
- fReqInPatList();
- }
- /**
- * @desc : 미수행처방관리 화면 Open
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenInFinPrcp(){
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
-
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var medispclid= model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
-
- setParameter("SMMMO02800_pid" , pid);
- setParameter("SMMMO02800_ioflag" , "I");
- setParameter("SMMMO02800_orddeptcd", orddeptcd);
- setParameter("SMMMO02800_orddrid" , medispclid);
- open("SMMMO02800");
- }
- /**
- * @desc : 입원환자리스트 색상설정
- * : 내환자적용 환자는 color instance에 ffffff이외의 값이 들어옴
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChngGrdCellColor(){
- for(var currow = 1; currow < grd_inpatlist.rows; currow++){
- var color = model.getValue(sINPATLIST_PATH + "[" + currow + "]/color");
- if(color == ""){
- color = "ffffff";
- }
- grd_inpatlist.rowStyle(currow, "data", "background-color") = "#" + color;
- }
- grd_inpatlist.refresh();
- }
- /**
- * @desc : 수술시 예방적 항생제 평가관련 사유를 입력
- * @param :
- * @return :
- * @author : 김영학
- * @---------------------------------------------------
- */
- function fChkOpDrugResn() {
- var currow = grd_inpatlist.row;
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
- var hardcd = model.getValue("/root/init/opdrugresn/hardcd[hardcd='" + orddeptcd + "']/hardcd");
- var cdseqno = model.getValue("/root/init/opdrugresn/hardcd[hardcd='" + orddeptcd + "']/cdseqno");
- setParameter("SPMMO016000_seqno" , cdseqno);
- if (!isNull(hardcd)) {
- var resnyn = getPatientInfoDetail("resnyn");
- if(ordtype =="I" && isNull(resnyn)) {
- modal("SPMMO16000", "", "510px", "427px", "SPMMO16000", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
- }
- }
- return true;
- }
- /**
- * @desc : 입원환자 선택시 입원일이후 DSC 수술의뢰 또는 확정이 되어 있는 경우 경고를 띄워줌
- * @param :
- * @return :
- * @author : 김영학
- * @---------------------------------------------------
- */
- function fChkPatDSCBook(pid, orddd, orddeptcd){
- model.removeNodeset("root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddd" , orddd);
- model.makeValue("/root/send/reqdata/orddeptcd" , orddeptcd);
- submit("TRMMO04309",false);
- }
- /**
- * @desc : ICU 입실 적정성
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenIcuINChk(){
- var currow = grd_inpatlist.row;
- if(currow < 1){
- return;
- }
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var medispclid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/medispclid");
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var indd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
-
- setParameter("openmode" , "newform"); //오픈모드
- setParameter("pid" , pid); //등록번호
- setParameter("orddd" , indd); //진료일
- setParameter("cretno" , cretno); //생성번호
- setParameter("ioflag" , "I"); //내원구분
- setParameter("orddeptcd" , orddeptcd); //진료과
- setParameter("orddrid" , medispclid); //주치의(진료의)
- setParameter("formcd" , "0800000532"); //서식코드
-
- modal("SSMMR01100", 1, 0, 0, "", "", "");
- }
- function fPrtPatList() {
- var rptid = "RPMMO04103";
- var desNode = "/root/main/inpatinfo/inpatlist";
- model.makeValue("/root/main/cond/orddeptnm", cmb_orddept.label);
- model.makeValue("/root/main/cond/medispclnm", cmb_medispclid.label);
- model.makeValue("/root/main/cond/atdocnm", combo4.label);
- exeReportPreview(rptid, "XMLSTR", desNode);
- }
- /**
- * @desc : 정신과 의료급여 환자 환자수진별 입/퇴원 유형 입력 - 정신과 의료급여환자 차등수가제 관련 추가. 요청번호 :
- * @param :
- * @return :
- * @author : 김영학
- * @---------------------------------------------------
- */
- function fChkNpDiffCalcScorResn() {
- var currow = grd_inpatlist.row;
- var orddeptcd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/orddeptcd");
- var ordtype = model.getValue(sINPATLIST_PATH + "[" + currow + "]/ordtype");
- var insukind = model.getValue(sINPATLIST_PATH + "[" + currow + "]/insukind");
- var patdeptcd = model.getValue("/root/init/npdeptcd/hardcd[hardcd='" + orddeptcd + "']/hardcd");
- var userdeptcd = model.getValue("/root/init/npdeptcd/hardcd[hardcd='" + getUserInfo("dutplcecd") + "']/hardcd");
- if (!isNull(patdeptcd) && !isNull(userdeptcd)) {
- var resnyn = getPatientInfoDetail("npresnyn");
-
- if(ordtype == "I" && resnyn == "000" && (insukind == "21" || insukind == "22")) {
- setParameter ( "SPMMO21100_title1" , "입원유형입력"); //정신과 의료급여 환자
- setParameter ( "SPMMO21100_title2" , "정신과 차등수가제도 특정내역"); //정신과 의료급여 환자
- setParameter ( "SPMMO21100_resnflag" , "001"); //입원유형사유입력
- setParameter ( "SPMMO21100_hardcdno" , "174"); //입원유형사유 HARDCODE 번호
- setParameter ( "SPMMO21100_pid" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid"));
- setParameter ( "SPMMO21100_orddd" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd"));
- setParameter ( "SPMMO21100_cretno" , model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno"));
- setParameter ( "SPMMO21100_orddeptcd" , orddeptcd);
- setParameter ( "SPMMO21100_ordtype" , ordtype);
- modal("SPMMO21100", "", "510px", "427px", "SPMMO21100", "", "", "sysmenu:hidden; min:visible; max:visible; icon:visible", false);
- }
- }
-
- return true;
- }
- /**
- * @desc : 안전사고 보고
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPatQi(){
- var currow = grd_inpatlist.row;
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var orddd = model.getValue(sINPATLIST_PATH + "[" + currow + "]/indd");
- var cretno = model.getValue(sINPATLIST_PATH + "[" + currow + "]/cretno");
- var ordtype = "I";
- var oprsrvno = "";
-
- setParameter("SMMQR00100_PARAM2", pid + "▦" + orddd + "▦" + cretno + "▦" + ordtype+"▦" + oprsrvno);
- modal("../../../emr/qiweb/xrw/SMMQR00100", "","", "", "SMMQR00100", "", "");
- }
- /**
- * @desc : 환자라벨출력
- * @param :
- * @return :
- * @author : 엄영만
- * @---------------------------------------------------
- */
- function fPrintPatLabel(){
- var currow = grd_inpatlist.row;
- var pid = model.getValue(sINPATLIST_PATH + "[" + currow + "]/pid");
- var patnm = model.getValue(sINPATLIST_PATH + "[" + currow + "]/hngnm");
- var sexage = model.getValue(sINPATLIST_PATH + "[" + currow + "]/sa");
-
- setParameter("SMMMB00100_scrnid", "SMMMO04100");
- setParameter("SMMMB00100_pid", pid);
- setParameter("SMMMB00100_patnm", patnm);
- setParameter("SMMMB00100_sexage", sexage);
-
- modal("SMMMB00100");
- }
|