123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- 수술예약장부등록 ( SMMMO05700_수술예약장부등록.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- var sOPSCHERECINFO_PATH = "/root/main/opscherecinfo/opscherecinfo";
- var sOPSCHERECLIST_PATH = "/root/main/opschereclist/opschereclist";
- var sPATORDINFOLIST_PATH= "/root/patordinfo/patordinfolist";
- var gButtonID = "";
- //2012/06/26 Start
- // 수술 예방적 항생제 관련
- var nodecnt ="";
- //2012/06/26 End
- /**
- * @desc : 수술 예약 장부 등록 화면 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fInitialize_SMMMO05700(){
- model.removeNodeset(sOPSCHERECLIST_PATH);
-
- fClkBtnInit();
-
- //강남성모는 외래 disable
- //2008.08.25 LWS 수술예약정부에서는 외래 활성화
- //if(getUserInfo("dutplceinstcd") == "012") rdo_out.disabled = true;
- //login 집도의, 집도과 mapping
- if( !isNull(getUserInfo("dutplcecd"))) model.setValue("/root/main/opscherecinfo/opscherecinfo/perfdeptcd", getUserInfo("dutplcecd"));
- if( !isNull(getUserId())) model.setValue("/root/main/opscherecinfo/opscherecinfo/perfdrid", getUserId());
-
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "O");
- addComboInstance("/root/init/orddept", "deptcd^depthngnm", "-^전체", "dept"); //부서콤보 전체항목 추가
-
- mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept2", "O");
- var deptcd = model.getValue("/root/init/orddept/dept[deptcd = '" + getUserInfo("dutplcecd") + "']");
- if(deptcd == ""){
- model.setValue("/root/main/cond/orddeptcd", "-");
- }
-
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", getUserInfo("dutplcecd"), "0330");
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist2", getUserInfo("dutplcecd"), "0330");
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist3", getUserInfo("dutplcecd"), "0330");
-
- addComboInstance("/root/init/userlist2", "userid^usernm", "-^전체", "usercombo"); //부서콤보 전체항목 추가
- addComboInstance("/root/init/userlist3", "userid^usernm", "^전체", "usercombo"); //부서콤보 전체항목 추가
- model.setValue("/root/main/cond/perfdrid", "-");
- model.setValue("/root/main/cond/scheperfdrid", "");
-
- zbcfGetCodeList(new Array("M0014", "M0017", "M0020"), new Array("/root/init/M0014", "/root/init/M0017", "/root/init/M0020"));
-
- reqOpRoomList(getCurrentDate(), "/root/init/oproomlist" , "total"); //수술실 조회
-
- reqOpRoomList(getCurrentDate(), "/root/init/oproomlist2", "total"); //수술실 조회 (일별 가능한 수술실 조회가 아닌 수술실 전체 조회)
- addComboInstance("/root/init/oproomlist2", "oproomcd^oproomnm", "-^전체", "oproomlist"); //수술실콤보 전체항목 추가
-
- mmbfGetHardCodeInfoNm("/root/send/reqdata", "/root/init/oppatflag", 84); //수술환자구분
-
- fChkPatTopInfoParam();
-
- model.setValue("/root/main/cond/fromdd", getCurrentDate());//시작일자
- var todd = (getCurrentDate().toDate()).getAddDate(3);
- todd = todd.getDateFormat();
- model.setValue("/root/main/cond/todd" , todd); //종료일자
- model.setValue("/root/main/cond/oproomcd" , "-"); //수술실
- model.setValue("/root/main/cond/perfdeptcd", getUserInfo("dutplcecd"));
-
- model.setValue("/root/main/cond/year" , getCurrentDate().substr(0, 4)); //year
- model.setValue("/root/main/cond/month", getCurrentDate().substr(4, 2)); //month
-
- gButtonID = "btn_".concat(model.getValue("/root/main/cond/month")); //select된 button의 color를 변경해 준다.
- var btnobj = document.controls.item(gButtonID);
- btnobj.attribute("class") = "btn5_letter2";
-
- grd_calendar.dataheight = 58;
- fReqOpScheRecCalendar();
-
- //2012/06/25 Start
- //수술 예방적 항생제 관련
- mmbfGetHardCodeInfo("/root/send/reqdata", "/root/temp/opcd", 5606);
- nodecnt = instance1.selectNodes("/root/temp/opcd/hardcd");
- //2012/06/25 End
- //fReqDiagList();
- reqOrderInfoOfCol("SMMMO05700", "grd_opschelist");
- }
- /**
- * @desc : 수술 예약 장부 등록값 초기화
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkBtnInit(){
- model.resetInstanceNode(sOPSCHERECINFO_PATH);
- model.setValue(sOPSCHERECINFO_PATH + "/opschedd", getCurrentDate());
- model.setValue(sOPSCHERECINFO_PATH + "/status" , "i");
- ipt_opcd.attribute("editable") = "true";
- ipt_opnm.attribute("editable") = "true";
- ipt_diagcd.attribute("editable") = "true";
- ipt_diagnm.attribute("editable") = "true";
- model.refresh();
-
- }
- /**
- * @desc : 수술명 검색 팝업 open
- * @
- * @param : pFlag 처리구분 (code : 코드검색, term : 수술명)
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenOpSearch(pFlag){
- if(pFlag == "code"){
- var param = "1▦" +
- "1▦E▦" +
- getCurrentDate() + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/dispopcd");
- setParameter("SPMMO05200_param", param);
-
- }else if(pFlag == "term"){
- var opnm = model.getValue("/root/main/opscherecinfo/opscherecinfo/opnm");
- var param = "2▦4▦" +
- fIsHangul(opnm) + "▦" +
- getCurrentDate() + "▦" +
- opnm;
- setParameter("SPMMO05200_param", param);
-
- }
- modal("SPMMO05200");
-
- var useyn = getParameter("SPMMO05200_rtn_useyn");
- if(useyn == "Y"){
- setParameter("SPMMO05200_rtn_useyn", "N");
- var rtnparam = getParameter("SPMMO05200_rtn_param");
- rtnparam = rtnparam.split("▩");
-
- var tmpstr = rtnparam[0];
- tmpstr = tmpstr.split("▦");
- model.setValue(sOPSCHERECINFO_PATH + "/dispopcd" , tmpstr[0]);
- model.setValue(sOPSCHERECINFO_PATH + "/opcd" , tmpstr[1]);
- model.setValue(sOPSCHERECINFO_PATH + "/opnm" , tmpstr[2]);
- ipt_opcd.attribute("editable") = "false";
- ipt_opnm.attribute("editable") = "false";
- model.setFocus("ipt_diagcd");
- model.refresh();
-
- }else{
- model.setValue(sOPSCHERECINFO_PATH + "/dispopcd", "");
- model.setValue(sOPSCHERECINFO_PATH + "/opcd" , "");
- model.setValue(sOPSCHERECINFO_PATH + "/opnm" , "");
- model.refresh();
-
- }
- }
- /**
- * @desc : 진단명 검색 팝업 open
- * @
- * @param : pFlag 처리구분 (code : 코드검색, term : 수술명)
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenDiagSearch(pFlag){
- if(pFlag == "code"){
- setParameter("SPMMO00800_cond1", 1);
- setParameter("SPMMO00800_cond2", 1);
- setParameter("SPMMO00800_cond3", "E");
- setParameter("SPMMO00800_cond4", getCurrentDate());
- setParameter("SPMMO00800_cond5", model.getValue(sOPSCHERECINFO_PATH + "/dispdiagcd"));
-
- }else if(pFlag =="term"){
- var diagnm = model.getValue(sOPSCHERECINFO_PATH + "/diagnm");
- setParameter("SPMMO00800_cond1", 2);
- setParameter("SPMMO00800_cond2", 4);
- setParameter("SPMMO00800_cond3", fIsHangul(diagnm));
- setParameter("SPMMO00800_cond4", getCurrentDate());
- setParameter("SPMMO00800_cond5", diagnm);
-
- }
- modal("SPMMO00800");
-
- var useyn = getParameter("SPMMO00800_rtn_useyn");
- if(useyn == "Y"){
- setParameter("SPMMO00800_rtn_useyn", "N");
- var rtnparam = getParameter("SPMMO00800_rtn");
- rtnparam = rtnparam.split("▩");
- var tmpstr = rtnparam[1];
-
- tmpstr = tmpstr.split("▦");
- model.setValue(sOPSCHERECINFO_PATH + "/dispdiagcd", tmpstr[1]);
- model.setValue(sOPSCHERECINFO_PATH + "/diagcd" , tmpstr[9]);
- model.setValue(sOPSCHERECINFO_PATH + "/diagnm" , tmpstr[2]);
- ipt_diagcd.attribute("editable") = "false";
- ipt_diagnm.attribute("editable") = "false";
- model.setFocus("ipt_opregstremfact");
- model.refresh();
-
- }else{
- model.setValue(sOPSCHERECINFO_PATH + "/dispdiagcd", "");
- model.setValue(sOPSCHERECINFO_PATH + "/diagcd" , "");
- model.setValue(sOPSCHERECINFO_PATH + "/diagnm" , "");
- model.refresh();
- }
- }
- /**
- * @desc : 수술예약 리스트 그리드 클릭
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkGrdOpScheList(){
- if(grd_opschelist.isCell(event.target) && grd_opschelist.row >= grd_opschelist.fixedRows){
- var orddeptcd = model.getValue(sOPSCHERECLIST_PATH + "[" + grd_opschelist.row + "]/perfdeptcd");
- //zsufGetUserInfoCombo(orddeptcd, "/root/init/userlist", "_D"); //의사 콤보조회
- mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", orddeptcd, "0330");
-
- model.copyNode(sOPSCHERECINFO_PATH, sOPSCHERECLIST_PATH + "[" + grd_opschelist.row + "]");
- model.copyNode("/root/cmpopschelist", sOPSCHERECLIST_PATH + "[" + grd_opschelist.row + "]");
- model.setValue("/root/cmpopschelist/status", "u");
- model.setValue(sOPSCHERECINFO_PATH + "/status", "u");
- }
- if(ipt_opcd.value != null) {
- ipt_opcd.attribute("editable") = "false";
- ipt_opnm.attribute("editable") = "false";
- }
- if(ipt_diagcd.value != null) {
- ipt_diagcd.attribute("editable") = "false";
- ipt_diagnm.attribute("editable") = "false";
- }
- model.refresh();
- }
- /**
- * @desc : 수술예약장부 달력정보 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqOpScheRecCalendar(){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/year" , model.getValue("/root/main/cond/year"));
- model.makeValue("/root/send/reqdata/month" , model.getValue("/root/main/cond/month"));
- model.makeValue("/root/send/reqdata/perfdeptcd" , model.getValue("/root/main/cond/perfdeptcd"));
- model.makeValue("/root/send/reqdata/perfdrid" , model.getValue("/root/main/cond/scheperfdrid"));
- var rtnval = submit("TRMMO05702");
- if(rtnval == true){
- fMakeCalendar();
- }
- }
- /**
- * @desc : 달력값 설정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fMakeCalendar(){
- model.removeNodeset("/root/main/week/week");
- model.refresh();
-
- grd_calendar.addRow(false, true);
- var row = 0;
- var col = 0;
- var patsum = 0;
- var totcnt = getNodeSetCnt("/root/main/opschecal/opschecal");
- for(var i = 1; i <= totcnt ; i++){
- row = model.getValue("/root/main/opschecal/opschecal[" + i + "]/week");
- col = model.getValue("/root/main/opschecal/opschecal[" + i + "]/day") - 1;
- patsum = model.getValue("/root/main/opschecal/opschecal[" + i + "]/patsum");
- dutflag = model.getValue("/root/main/opschecal/opschecal[" + i + "]/dutflag");
- if(dutflag == 4){ //토
- grd_calendar.cellstyle("color", row, col) = "#0000FF";
- }else if(dutflag == 8){ //일
- grd_calendar.cellstyle("color", row, col) = "#FF0000";
- }else{ //휴일
- grd_calendar.cellstyle("color", row, col) = "#000000";
- }
- grd_calendar.valueMatrix(row, col) = i + "\n(" + patsum + ")";
- if(col == 6){
- grd_calendar.addRow(false, true);
- }
- }
- grd_calendar.rebuild();
- }
- /**
- * @desc : 달력 선택시 수술예약 리스트 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSelectCalendar(){
- if(grd_calendar.isCell(event.target) && grd_calendar.row >= grd_calendar.fixedRows){
- var week = grd_calendar.row;
- var day = grd_calendar.col + 1;
- var basedd = model.getValue("/root/main/opschecal/opschecal[week = '" + week + "' and day = '" + day + "']/basedd");
- model.setValue("/root/main/opscherecinfo/opscherecinfo/opschedd", basedd);
- model.setValue("/root/main/cond/queryflag", "cal");
- model.setValue("/root/main/cond/basedd" , basedd);
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- model.setValue("/root/send/reqdata/perfdrid", model.getValue("/root/main/cond/scheperfdrid"));
- var rtnval = submit("TRMMO05701");
- if(rtnval == true){
- fSetOpTimeToHourMin();
- }
- }
-
- var openflag = model.getValue("/root/main/cond/openflag"); //수술실일정 보기가 check된 경우 수술실일정 열기
- if(openflag == "Y"){
- var param = "r" + "▦" + //status : r조회 전용화면
- "" + "▦" + //oproomcd
- "" + "▦" + //opregstno
- "" + "▦" + //opregsthistno
- "" + "▦" + //pid
- basedd + "▦" + //opschedd
- model.getValue("/root/main/cond/perfdeptcd") + "▦" + //perfdeptcd
- "" + "▦" + //opfromtmcd
- "" + "▦" + //opendtmcd
- "opsche" + "▦" + //queryflag
- ""; //perfdrid
- setParameter("SPMMO08800_param", param);
- modal("SPMMO08800");
- }
- }
- /**
- * @desc : 조회버튼 클릭시, 조회조건으로 검색
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkBtnReq(){
- model.setValue("/root/main/cond/queryflag", "");
- model.copyNode("/root/send/reqdata", "/root/main/cond");
- var rtnval = submit("TRMMO05701");
- if(rtnval == true){
- fSetOpTimeToHourMin();
- }
- }
- /**
- * @desc : 수술예약시간 설정
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenSetOpScheTime(){
- var param = model.getValue(sOPSCHERECINFO_PATH + "/status") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/oproomcd") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/opregstno") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/opregsthistno")+ "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/pid") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/opschedd") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/perfdeptcd") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/opfromtmcd") + "▦" +
- model.getValue(sOPSCHERECINFO_PATH + "/opendtmcd") + "▦" +
- //"opsche" + "▦" +
- "oprsrv" + "▦" + //마취과에서 등록해 놓은 방으로 보기를 요청(2008.03.18)
- model.getValue(sOPSCHERECINFO_PATH + "/perfdrid");
-
- setParameter("SPMMO08800_param", param);
- modal("SPMMO08800");
- var rtnuseyn = getParameter("SPMMO08800_rtn_useyn");
- if(rtnuseyn == "Y"){
- setParameter("SPMMO08800_rtn_useyn", "N");
- var rtnparam = getParameter("SPMMO08800_rtn_param");
- rtnparam = rtnparam.split("▦");
- if(rtnparam[1] != "" || rtnparam[2] != ""){
- var difftime = getTimeInterval(rtnparam[1], rtnparam[2]);
- model.setValue(sOPSCHERECINFO_PATH + "/oproomcd" , rtnparam[0]);
- model.setValue(sOPSCHERECINFO_PATH + "/opfromtmcd", rtnparam[1]);
- model.setValue(sOPSCHERECINFO_PATH + "/opendtmcd" , rtnparam[2]);
- model.setValue(sOPSCHERECINFO_PATH + "/opusetm" , fTransSecToHourMin(difftime));
- clearParameter("SPMMO08800_rtn_param");
- }else{
- // 마취의뢰 화면으로 연동될때 문제 - 정규로 의뢰했을때 수술방은 선택됐는데 수술시간이 비어버림
- model.setValue(sOPSCHERECINFO_PATH + "/oproomcd" , rtnparam[0]);
- }
- }
- model.refresh();
- }
- /**
- * @desc : 초를 시분초로 전환
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fTransSecToHourMin(sec){
- var hr = 3600;
- var min = 60;
- hour = parseInt(sec/hr);
- min = parseInt(sec%hr/min);
- var rtnstr = hour + "h " + min + "m ";
- return rtnstr;
- }
- /**
- * @desc : 수술시간 시분초로 변경
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fSetOpTimeToHourMin(){
- for(var i = 1; i < grd_opschelist.rows; i++){
- var opfromtmcd = model.getValue(sOPSCHERECLIST_PATH + "[" + i + "]/opfromtmcd");
- var opendtmcd = model.getValue(sOPSCHERECLIST_PATH + "[" + i + "]/opendtmcd");
- if(opfromtmcd == "" || opendtmcd == ""){
- var difftime = 0;
- }else{
- var difftime = getTimeInterval(opfromtmcd, opendtmcd);
- }
- model.setValue(sOPSCHERECLIST_PATH + "[" + i + "]/opusetm", fTransSecToHourMin(difftime));
- }
- grd_opschelist.refresh();
- }
- /**
- * @desc : parameter 점검 및 상단정보 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkPatTopInfoParam(){
- if(checkOpener()){
- var param = opener.javascript.getParameter("SMMMO05700_param");
- if(param.length > 0){ //parameter정보가 있는 경우
- param = param.split("▦");
- var pid = param[0];
- var hngnm = param[1];
- var sex = param[2];
- var age = param[3];
- var orddd = param[6];
- var orddeptcd = param[7];
- var ioflag = param[8];
-
- }else{ //parameter정보가 없는 경우, 상단정보 검사
- var paminfo = getGlobalVariable("paminfo");
- var patflag = getGlobalVariable("patflag");
-
- if(paminfo.length > 0){ //상단정보가 있는 경우
- model.removeNodeset("/root/paminfo/list");
- model.removeNodeset("/root/patflag/list");
-
- setCSVToNode("/root/paminfo", paminfo);
- setCSVToNode("/root/patflag", patflag);
- var ioflag = model.getValue("/root/patflag/list/prcpgenrflag");
- if(ioflag == "I"){
- var orddd = model.getValue("/root/paminfo/list/indd");
- }else{
- var orddd = model.getValue("/root/paminfo/list/orddd");
- }
- var pid = model.getValue("/root/paminfo/list/pid");
- var hngnm = model.getValue("/root/paminfo/list/hngnm");
- var sex = model.getValue("/root/paminfo/list/sex");
- var age = model.getValue("/root/paminfo/list/age");
- var orddeptcd = model.getValue("/root/paminfo/list/orddeptcd");
- var insukind = model.getValue("/root/paminfo/list/insukind");
- var suppkind = model.getValue("/root/paminfo/list/suppkind");
-
- }else{ //상단정보가 없는 경우
- return;
-
- }
- }
- model.setValue(sOPSCHERECINFO_PATH + "/pid" , pid);
- model.setValue(sOPSCHERECINFO_PATH + "/hngnm" , hngnm);
- model.setValue(sOPSCHERECINFO_PATH + "/sex" , sex);
- model.setValue(sOPSCHERECINFO_PATH + "/age" , age);
- model.setValue(sOPSCHERECINFO_PATH + "/insukind" , insukind);
- model.setValue(sOPSCHERECINFO_PATH + "/suppkind" , suppkind);
- }
-
- fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag); //현재 환자 진단 조회
- model.refresh();
- }
- /**
- * @desc : 저장버튼 클릭
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fClkBtnSave(){
- var status = model.getValue(sOPSCHERECINFO_PATH + "/status");
- if(status == "u"){
- if(!compareNodeVal("/root/cmpopschelist", sOPSCHERECINFO_PATH)){
- messageBox("변경된 사항이", "I004");
- return;
- }
- }
-
- if(fChkValidOpScheInfo()== true){ //저장유효성 검사
- //2012/06/26 Start
- //수술 예방적 항생제 관련
- var dispopcd=model.getValue("/root/main/opscherecinfo/opscherecinfo/dispopcd");
- var t_pname = model.getValue("/root/main/opscherecinfo/opscherecinfo/hngnm");
- var t_opnm = model.getValue("/root/main/opscherecinfo/opscherecinfo/opnm");
- if(model.getValue("/root/main/opscherecinfo/opscherecinfo/age")>17){
- for(var i=1; i<=parseInt(nodecnt.length); i++){
- var cdseqno=model.getValue("/root/temp/opcd/hardcd["+ i +"]/cdseqno");
- var trgtcd=model.getValue("/root/temp/opcd/hardcd["+ i +"]/hardcd");
- if(cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,3)){
- messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
- "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
- break;
- }else if(cdseqno==dispopcd.length && dispopcd==trgtcd.substr(0,4)){
- messageBox("("+t_pname+")"+" 환자는 " +"("+t_opnm+")" + " 수술로 수술예방적 항생제 적정성 평가 대상입니다.\n" +
- "1,2세대 세파계 항생제를 단독으로 투여하시면 평가를 잘 받을 수 있습니다.", "I");
- break;
- }
- }
- }
- //2012/06/26 End
-
- model.copyNode("/root/send/savedata", "/root/main/opscherecinfo/opscherecinfo");
- var rtnval = submit("TXMMO05701");
- if(rtnval == true){
- fSetOpTimeToHourMin();
- var pid = model.getValue("/root/main/opscherecinfo/opscherecinfo/pid");
- model.copyNode(sOPSCHERECINFO_PATH, sOPSCHERECLIST_PATH + "[pid= '" + pid + "']");
- model.setValue(sOPSCHERECINFO_PATH + "/status", "u");
- model.refresh();
-
- fReqOpScheRecCalendar();
- }
- }
- }
- /**
- * @desc : 환자 현재 진단 조회 (진단구분코드:M)
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqPatCurrentDiagList(pid, orddd, orddeptcd, ioflag){
- 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);
- model.makeValue("/root/send/reqdata/ioflag" , ioflag);
- model.makeValue("/root/send/reqdata/diagkindcdflag", "M");
- if(submit("TRMMO00114")==true){
-
- }
- model.refresh();
- }
- /**
- * @desc : 환자 수진정보 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqPatOrdInfo(){
- var pid = model.getValue(sOPSCHERECINFO_PATH + "/pid");
- if(pid == ""){
- messageBox("환자의 등록번호를", "C001");
- return;
- }
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/cond1", "1"); //1은 등록번호, 2는 환자명
- model.makeValue("/root/send/reqdata/cond2", pid); //등록번호
- model.makeValue("/root/send/reqdata/cond3", getUserInfo("dutplceinstcd"));
- model.makeValue("/root/send/reqdata/cond4", "N"); //원무키 기준여부
- model.makeValue("/root/send/reqdata/cond5", "N"); //당일기준 조회여부
- model.makeValue("/root/send/reqdata/cond6", "-"); //외래,입원테이블 기준
- if(submit("TRMMO00200")==true){
- /*var nodecnt = getNodeSetCnt(sPATORDINFOLIST_PATH)
- if(nodecnt > 1){
- var xpt = window.screenleft + 50;
- var ypt = window.screenTop + 80;
- var coord = getRelativeCoordinate(xpt, ypt);
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal("SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
-
- param = getParameter("SPMMO09100_rtn_param");
- if(param.length > 0){
- model.removeNodeset(sPATORDINFOLIST_PATH);
- setCSVToNode("/root/patordinfo", param, "patordinfolist");
- }
- }
- var ioflag = model.getValue(sPATORDINFOLIST_PATH + "/ioflag");
- var pid = model.getValue(sPATORDINFOLIST_PATH + "/pid");
- var orddd = model.getValue(sPATORDINFOLIST_PATH + "/orddd");
- var cretno = model.getValue(sPATORDINFOLIST_PATH + "/cretno");
- var instcd = model.getValue(sPATORDINFOLIST_PATH + "/instcd");
- var srchdd = model.getValue(sPATORDINFOLIST_PATH + "/orddd");*/
-
- // 2008.11.18 로그인 의사 진료과의 최근 수진 이력을 선택한 상태
- sortNodeList("/root/patordinfo/patordinfolist", "orddd", "desc");
- var patlist = model.instance1.selectNodes("/root/patordinfo/patordinfolist[orddeptcd = " + getUserInfo("dutplcecd") + "and orddd <="+ getCurrentDate() +"]");
- if(patlist.length > 0) {
- var ioflag = patlist.item(0).selectSingleNode("ioflag").text;
- var pid = patlist.item(0).selectSingleNode("pid").text;
- var orddd = patlist.item(0).selectSingleNode("orddd").text;
- var cretno = patlist.item(0).selectSingleNode("cretno").text;
- var instcd = patlist.item(0).selectSingleNode("instcd").text;
- }else{
- var cretno = "";
- }
- // (e)
-
- 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);
-
- // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
- if(submit("TRMMO00210")) {
- var srchdd = model.getValue("/root/main/topinfo/topinfo/fromdd");
- }
- // (e)
-
- if(ioflag == "I" || ioflag == "D"){
- var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
-
- } else if(ioflag == "E") {
- var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
-
- }else{
- var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
- }
-
- 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", "");
- fChkPatTopInfoParam();
-
- }else{
- return;
-
- }
- }
- }
- /**
- * @desc : 수술예약장부 저장시 무결성 검사
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fChkValidOpScheInfo(){
- var pid = model.getValue(sOPSCHERECINFO_PATH + "/pid");
- var perfdeptcd = model.getValue(sOPSCHERECINFO_PATH + "/perfdeptcd");
- var perfdrid = model.getValue(sOPSCHERECINFO_PATH + "/perfdrid");
- var oproomcd = model.getValue(sOPSCHERECINFO_PATH + "/oproomcd");
- var opcd = model.getValue(sOPSCHERECINFO_PATH + "/opcd");
- var diagcd = model.getValue(sOPSCHERECINFO_PATH + "/diagcd");
- var opfromtmcd = model.getValue(sOPSCHERECINFO_PATH + "/opfromtmcd");
- var opendtmcd = model.getValue(sOPSCHERECINFO_PATH + "/opendtmcd");
- var oppatflagcd= model.getValue(sOPSCHERECINFO_PATH + "/oppatflagcd");
-
- if(pid == ""){
- messageBox("환자의 등록번호를", "C001");
- return false;
- }
-
- if(perfdeptcd == ""){
- messageBox("집도부서를", "C001");
- return false;
- }
-
- if(perfdrid == ""){
- messageBox("집도의를", "C001");
- return false;
- }
-
- /*
- if(opcd == ""){
- messageBox("수술코드를", "C001");
- return false;
- }
- */
-
- if(diagcd == ""){
- messageBox("진단코드를", "C001");
- return false;
- }
-
- if(oppatflagcd == ""){
- messageBox("수술환자구분을", "C002");
- return false;
- }
- /*
- if(opfromtmcd == "" || opendtmcd == ""){
- messageBox("수술예약시간을", "C002");
- return false;
- }*/
- return true;
- }
- /**
- * @desc : 환자의 진단 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fReqDiagList(){
- var paminfocsv = getGlobalVariable("paminfo");
- var patflagcsv = getGlobalVariable("patflag");
-
- model.setValue("/root/main/cond/orddeptcd" , getUserInfo("dutplcecd")); //진료과
- model.setValue("/root/main/cond/perfdrid" , getUserInfo("userid")); //의사
- model.refresh();
-
- if(paminfocsv.length > 1){
- model.removeNodeSet ( "/root/paminfo/list"); //상단화면 정보 초기화
- setCSVToNode ("/root/paminfo", paminfocsv);
- }else{
- return;
- }
- if(patflagcsv.length > 1){
- model.removeNodeSet ( "/root/patflag/list"); //환자구분 정보 초기화
- setCSVToNode ("/root/patflag", patflagcsv);
- }else{
- return;
- }
-
- var ioflag = model.getValue("/root/patflag/list/prcpgenrflag");
- var pid = model.getValue("/root/paminfo/list/pid");
- var orddeptcd = model.getValue("/root/paminfo/list/orddeptcd");
- if(ioflag == "O" || ioflag == "S"){
- var orddd = model.getValue("/root/paminfo/list/orddd");
-
- }else{
- var orddd = model.getValue("/root/paminfo/list/indd");
- }
-
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/pid" , pid);
- model.makeValue("/root/send/reqdata/orddeptcd", orddeptcd);
- model.makeValue("/root/send/reqdata/orddd" , orddd);
- model.makeValue("/root/send/reqdata/ioflag" , ioflag);
- if(submit("TRMMO00114")==true){
- var diagcd = model.getValue("/root/main/diaginfo/diagcdlist[1]/diagcd");
- var dispdiagcd = model.getValue("/root/main/diaginfo/diagcdlist[1]/icd10cd");
- var diagengnm = model.getValue("/root/main/diaginfo/diagcdlist[1]/diagengnm");
-
- model.setValue(sOPSCHERECINFO_PATH + "/diagcd" , diagcd);
- model.setValue(sOPSCHERECINFO_PATH + "/dispdiagcd", dispdiagcd);
- model.setValue(sOPSCHERECINFO_PATH + "/diagnm" , diagengnm);
- model.refresh();
- }
-
- model.refresh();
- fOpenDiagLnkOpList(); //환자의 진단연계수술 조회
- }
- /**
- * @desc : 환자의 진단연계수술 조회
- * @
- * @param :
- * @return :
- * @author : 오지훈
- * @---------------------------------------------------
- */
- function fOpenDiagLnkOpList(){
- var diagcd = model.getValue(sOPSCHERECINFO_PATH + "/diagcd");
-
- clearParameter("SPMMO04000_dispopcd");
- clearParameter("SPMMO04000_orgopcd");
- clearParameter("SPMMO04000_opengnm");
-
- if(diagcd != ""){
- setParameter("SPMMO04000_userid" , getUserInfo("userid"));
- setParameter("SPMMO04000_orddeptcd", getUserInfo("dutplcecd"));
- setParameter("SPMMO04000_diagcd" , diagcd);
- modal("SPMMO04000");
-
- var useyn = getParameter("SPMMO04000_useyn");
- if(useyn == "Y"){
- var dispopcd = getParameter("SPMMO04000_dispopcd");
- var opcd = getParameter("SPMMO04000_orgopcd");
- var opengnm = getParameter("SPMMO04000_opengnm");
-
- model.setValue(sOPSCHERECINFO_PATH + "/dispopcd", dispopcd);
- model.setValue(sOPSCHERECINFO_PATH + "/opcd" , opcd);
- model.setValue(sOPSCHERECINFO_PATH + "/opnm" , opengnm);
- model.refresh();
- }
- setParameter("SPMMO04000_useryn", "");
- }
- }
- /**
- * @desc : 환자진료정보 list 조회
- * @
- * @param :
- * @return :
- * @author : 박유미
- * @---------------------------------------------------
- */
- function fOpenPatInfo(){
- var pid = model.getValue(sOPSCHERECINFO_PATH + "/pid");
- if(pid == ""){
- messageBox("환자의 등록번호를", "C001");
- return;
- }
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/cond1", "1"); //1은 등록번호, 2는 환자명
- model.makeValue("/root/send/reqdata/cond2", pid); //등록번호
- model.makeValue("/root/send/reqdata/cond3", getUserInfo("dutplceinstcd"));
- model.makeValue("/root/send/reqdata/cond4", "N"); //원무키 기준여부
- model.makeValue("/root/send/reqdata/cond5", "N"); //당일기준 조회여부
- model.makeValue("/root/send/reqdata/cond6", "-"); //외래,입원테이블 기준
- if(submit("TRMMO00200")==true){
- var nodecnt = getNodeSetCnt(sPATORDINFOLIST_PATH)
- if(nodecnt > 1){
- var xpt = window.screenleft + 50;
- var ypt = window.screenTop + 80;
- var coord = getRelativeCoordinate(xpt, ypt);
- var mon = coord[0];
- xpt = coord[1];
- ypt = coord[2];
- modal("SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
-
- param = getParameter("SPMMO09100_rtn_param");
- if(param.length > 0){
- model.removeNodeset(sPATORDINFOLIST_PATH);
- setCSVToNode("/root/patordinfo", param, "patordinfolist");
- }
- }
- var ioflag = model.getValue(sPATORDINFOLIST_PATH + "/ioflag");
- var pid = model.getValue(sPATORDINFOLIST_PATH + "/pid");
- var orddd = model.getValue(sPATORDINFOLIST_PATH + "/orddd");
- var cretno = model.getValue(sPATORDINFOLIST_PATH + "/cretno");
- var instcd = model.getValue(sPATORDINFOLIST_PATH + "/instcd");
- var srchdd = model.getValue(sPATORDINFOLIST_PATH + "/orddd");
-
- 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);
-
- // 2008.10.31 등록번호 검색으로 의뢰시 상단 UP 조건 icdr.fromdd
- if(submit("TRMMO00210")) {
- var srchdd = model.getValue("/root/main/topinfo/topinfo/fromdd");
- }
- // (e)
-
- if(ioflag == "I" || ioflag == "D"){
- var param = "I" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
-
- } else if(ioflag == "E") {
- var param = "E" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd + "▦" + srchdd;
-
- }else{
- var param = "O" + "▦" + pid + "▦" + orddd + "▦" + cretno + "▦" + instcd;
- }
-
- 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", "");
- fChkPatTopInfoParam();
-
- }else{
- return;
-
- }
- }
- }
-
-
- function fChoJinRecSrch(){
- var signno = 0;
- var ckcnt = 0;
- var formcd = "";
- var signstr = "";
- model.removeNode("/root/send/chojindata");
- model.makeNode("/root/send/chojindata");
-
- model.makeValue("/root/send/chojindata/instcd" , getUserInfo("dutplceinstcd") );
- model.makeValue("/root/send/chojindata/pid" , model.getValue("/root/main/opschereclist/opschereclist[" + grd_opschelist.row + "]/pid") );
- model.makeValue("/root/send/chojindata/perfdeptcd" , model.getValue("/root/main/opschereclist/opschereclist[" + grd_opschelist.row + "]/perfdeptcd") );
- if( submit("TRMMO05707") ){
- var nodecnt = getNodesetCount("/root/main/chojin/chojinlist");
- for (var k = 1; k <= nodecnt; k++){
- signno = model.getValue("/root/main/chojin/chojinlist[" + k + "]/signno");
- formcd = model.getValue("/root/main/chojin/chojinlist[" + k + "]/formcd");
- signstr += "E▦";
- signstr += signno+"▦";
- signstr += formcd+"▩";
- }
- }
- if ( signstr != "" ) {
- setParameter("SPMRI02400_prtyn" , "N");
- setParameter("SPMRI02400_prtrecinfo", signstr);
- var xpt = 50;
- var ypt = 50;
- aezfTopMost("SPMRI02400",2,xpt,ypt,"SPMRI02400");
- }else {
- alert("출력할 서식 디자인이 존재하지 않습니다.");
- return;
- }
- }
|