123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : KNUH2.0
- * Job Name : EMR
- * Creator :
- * Make Date : 2015-02-09
- * Description :
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2015-02-09 Live Converter TF->XP
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- var xSortCol = -1;
- var xSortType = "";
- var arErrorCode = new HashArray();
- //=======================================================================================
- // Function
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Function : fInitOnCall
- * Description : On Call 신청화면 초기화
- * Argument : flag : 화면구분 flag(A:신청, R:도착, E:종료, P:결재/접수, S:집계)
- * return type :
- * Creator :
- ****************************************************************************************/
- function fInitOnCall(flag){
- ds_main_cond.setColumn(0,"condflag", flag);
-
- if( flag == "P" ){ //결재(접수) 화면
- ds_main_cond.setColumn(0,"condkind", "R");
- ds_main_cond.setColumn(0,"condacpt", "-");
- ds_main_cond.setColumn(0,"sortkind", "D");
-
- fInitMngtOnCall(flag);
- fGetAfterOnCallList();
-
- }else if( flag == "S" ){ //집계 화면
- fInitMngtOnCall(flag);
- fGetSumOnCallList();
-
- var DayOfWeek = ds_main_oncalllist_month.getColumn(0,"day");
- if(!utlf_isNull(DayOfWeek)){
- /*집계화면 개발시 수정*/
- // grd_oncalllist.caption = "구분^calldeptcd^진료과^성명^사번^01^02^03^04^05^06^07^08^09^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31|구분^calldeptcd^진료과^성명^사번^" + DayOfWeek;
- // grd_oncalllist.refresh();
- /*집계화면 개발시 수정*/
- }
- }else if( flag == "T" ){ //통계조회 화면
- fInitMngtOnCall(flag);
- fGetStatsOnCallList()
- }else if( flag == "V" ){ //통계조회 화면
- //fGetStatsOnCallList()
- //call 진료과 리스트를 조회;
- // mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D");
- lf_mmbfGetDeptCodeComboList(ds_init_orddept, "D");
- fInitMngtOnCall(flag);
- }else{ //신청-도착-완료 화면
- //call 진료과 리스트를 조회
- // mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D");
- lf_mmbfGetDeptCodeComboList(ds_init_orddept, "D");
-
- //각 화면의 초기화
- if( flag == "A" ){
- fInitAppOnCall();
- ds_main_oncallinfo.setColumn(0,"patflagcd",frmf_getMenuParam());
- }else{
- fInitMngtOnCall(flag);
- }
- //환자별 신청내역 조회
- fGetOnCallList();
- }
- }
- /****************************************************************************************
- * Function : fInitOnCall
- * Description : On Call 신청화면 초기화
- * Argument : flag : 화면구분 flag(A:신청, R:도착, E:종료, P:결재/접수, S:집계)
- * return type :
- * Creator :
- ****************************************************************************************/
- function fInitMngtOnCall(flag){
- var curDD = utlf_getCurrentDate();
-
- if( flag == "S" ){
- ds_main_cond.setColumn(0,"basemm" , curDD.substring(0,6)); //집계화면은 조회월 초기화
- }else if( flag == "T" ){
- ds_main_cond.setColumn(0,"fromdd" , getNewDate().getAddDate(-1, "M").getDateFormat("YYYYMMDD"));
- ds_main_cond.setColumn(0,"todd" , curDD);
- }else{
- ds_main_cond.setColumn(0,"fromdd" , curDD);
- ds_main_cond.setColumn(0,"todd" , curDD);
- }
-
- if( flag == "R" ){
- ds_main_cond.setColumn(0,"codnstat" , "A"); //도착화면은 신청내역 조회
- ds_main_oncallinfo.setColumn(0,"arvdd", curDD);
- }else if( flag == "E" ){
- ds_main_cond.setColumn(0,"codnstat" , "R"); //완료화면은 도착내역 조회
- ds_main_oncallinfo.setColumn(0,"enddd", curDD);
- }
- }
- /****************************************************************************************
- * Function : fGetAfterOnCallList
- * Description : 등록기간/시작시간 기준 OnCall 전체 리스트를 조회한다.
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetAfterOnCallList(){
- var oParam = {};
- oParam.id = "TRMMO33501";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetAfterOnCallList";
- oParam.inds = "req=ds_main_cond";
- oParam.outds = "ds_main_oncalllist_info=info";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : fGetSumOnCallList
- * Description : 월별 On Call 수당지급내역을 조회한다.
- * : fromdd:기간 시작일자, todd:기간 종료일자, condstat:환자상태 조건
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetSumOnCallList(){
- var oParam = {};
- oParam.id = "TRMMO33601";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetSumOnCallList";
- oParam.inds = "req=ds_main_cond";
- oParam.outds = "ds_main_oncalllist_month=month ds_main_oncalllist_info=info";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : fGetSumOnCallList
- * Description : 월별 직급별 On Call 통계를 조회한다.
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetStatsOnCallList(){
- var oParam = {};
- oParam.id = "TRMMO33701";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetOnCallStatsList";
- oParam.inds = "req=ds_main_cond";
- oParam.outds = "ds_main_oncalllist_info=info";
- oParam.async = false;
- oParam.callback = "cf_TRMMO33701";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : cf_TRMMO33701
- * Description : TRMMO33701 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TRMMO33701(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- for(var i = 0 ; i < ds_main_oncalllist_info.rowcount ; i++) {
- dsf_makeValue(ds_main_oncalllist_info,"cnt3" ,"string",ds_main_oncalllist_info.getColumn(i,"cnt2"));
- dsf_makeValue(ds_main_oncalllist_info,"rate3","string",ds_main_oncalllist_info.getColumn(i,"rate2"));
- }
- }
- /****************************************************************************************
- * Function : fInitAppOnCall
- * Description : 신청화면 초기화
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fInitAppOnCall(){
- //로그인한 사용자 정보
- var userid = sysf_getUserInfo("userid");
- var dutplcecd = sysf_getUserInfo("dutplcecd");
- ds_main_userinfo.setColumn(0,"orddrid" , userid);
- ds_main_userinfo.setColumn(0,"orddeptcd", dutplcecd);
- ds_main_userinfo.setColumn(0,"orddrnm" , sysf_getUserInfo("usernm"));
- ds_main_userinfo.setColumn(0,"orddeptnm", sysf_getUserInfo("dutplcenm"));
- ds_main_userinfo.setColumn(0,"mpphonno" , sysf_getUserInfo("mpphonno"));
- ds_main_userinfo.setColumn(0,"pdano" , sysf_getUserInfo("pdano"));
-
- //신청자 정보
- ds_main_oncallinfo.setColumn(0,"apporddrid" , userid);
- ds_main_oncallinfo.setColumn(0,"appdeptcd" , dutplcecd);
- ds_main_oncallinfo.setColumn(0,"appmpphonno", ds_main_userinfo.getColumn(0,"mpphonno"));
-
- //상단 환자정보
- var pid = appf_getPatientInfo("pid");
- if( !utlf_isNull(pid) ){
- ds_main_oncallinfo.setColumn(0,"pid" , pid);
- ds_main_oncallinfo.setColumn(0,"hngnm" , appf_getPatientInfo("pname"));
- //model.setValue("/root/main/oncallinfo/rrgstno", getPatientInfoDetail("rrgstno1") + "-" + getPatientInfoDetail("rrgstno2"));
-
- ds_main_cond.setColumn(0,"condpid" , pid);
- }else{
- ds_main_cond.setColumn(0,"condpid" , "-");
- }
- }
- /****************************************************************************************
- * Function : fGetOnCallList
- * Description : 환자별 OnCall 리스트를 조회한다.
- * : fromdd:기간 시작일자, todd:기간 종료일자, condstat:환자상태 조건
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetOnCallList(){
- var oParam = {};
- oParam.id = "TRMMO33201";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetOnCallList";
- oParam.inds = "req=ds_main_cond";
- oParam.outds = "ds_main_oncalllist_info=info";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : fGetPatBaseInfo
- * Description : 환자기본정보 조회
- * Argument : pid : 등록번호
- * : stnddd : 기준일자
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetPatBaseInfo(){
- var pid = ipt_pid.text;
- ds_main_oncallinfo.setColumn(0,"pid", pid);
-
- var oParam = {};
- oParam.id = "TRMMO33202";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetPatBaseInfo";
- oParam.inds = "req=ds_main_oncallinfo";
- oParam.outds = "ds_temp_patinfo=info";
- oParam.async = false;
- oParam.callback = "cf_TRMMO33202";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO33202") > -1){
- if(!utlf_isNull(pid)){
- ds_main_oncallinfo.setColumn(0,"pid" , pid);
- ds_main_oncallinfo.setColumn(0,"hngnm" , ds_temp_patinfo.getColumn(0,"hngnm"));
- //model.setValue("/root/main/oncallinfo/rrgstno", model.getValue("/root/temp/patinfo/info/rrgstno"));
-
- ds_main_cond.setColumn(0,"condpid" , pid);
- fGetOnCallList();
-
- }else{
- ds_main_oncallinfo.setColumn(0,"pid" , "");
- ds_main_oncallinfo.setColumn(0,"hngnm" , "");
- //model.setValue("/root/main/oncallinfo/rrgstno", "");
- }
- }
- }
- /****************************************************************************************
- * Function : cf_TRMMO33202
- * Description : TRMMO33202 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TRMMO33202(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /****************************************************************************************
- * Function : fGetOrdDrList
- * Description : 진료과 선택 시 해당과 진료의 리스트를 조회한다.
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetOrdDrList(){
- // mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist" , cmb_orddept.value, "0330", "", "M");
- lf_mmbfGetUserComboList(ds_init_userlist, cmb_orddept.value, "0330", "", "", "", "", "", "", "M");
- }
- /****************************************************************************************
- * Function : fGetUserCallInfo
- * Description : 진료의 선택시 oncall 정보 조회
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetUserCallInfo(){
- var oParam = {};
- oParam.id = "TRMMO33203";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetUserMpphonNo";
- oParam.inds = "req=ds_main_oncallinfo";
- oParam.outds = "ds_temp_callinfo=info";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : fGetOnCallInfo
- * Description : On Call 리스트 중 선택한 정보를 화면에 display한다.
- * Argument : flag : 화면구분 flag(A:신청, R:도착, E:종료, P:결재/접수, S:집계)
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetOnCallInfo(flag){
- var iRow = ds_main_oncalllist_info.rowposition;
- if(iRow < 0 ) return;
- ds_main_oncallinfo.copyRow(0,ds_main_oncalllist_info,iRow);
- fGetOrdDrList();
- // if(flag == "R"){
- // }else
- if(flag == "R"){
- var curDD = utlf_getCurrentDate();
- var curTM = utlf_getCurrentTime();
-
- if( ds_main_oncallinfo.getColumn(0,"arvdd") == "00000000" ){
- ds_main_oncallinfo.setColumn(0,"arvdd", curDD);
- }
- if( ds_main_oncallinfo.getColumn(0,"arvtm") == "000000" || ds_main_oncallinfo.getColumn(0,"arvtm") == "0000" ){
- ds_main_oncallinfo.setColumn(0,"arvtm", curTM);
- }
- }else if(flag == "E"){
- var curDD = utlf_getCurrentDate();
- var curTM = utlf_getCurrentTime();
- if( ds_main_oncallinfo.getColumn(0,"enddd") == "00000000" ){
- ds_main_oncallinfo.setColumn(0,"enddd", curDD);
- }
- if( ds_main_oncallinfo.getColumn(0,"endtm") == "000000" || ds_main_oncallinfo.getColumn(0,"endtm") == "0000" ){
- ds_main_oncallinfo.setColumn(0,"endtm", curTM);
- }
- }
- }
- /****************************************************************************************
- * Function : fSaveOnCallInfo
- * Description : On Call 정보를 저장한다.
- * Argument : flag : 화면구분 flag(A:신청, R:도착, E:종료, P:결재/접수, S:집계)
- * return type :
- * Creator :
- ****************************************************************************************/
- function fSaveOnCallInfo(flag){
- if( flag == "P" ){
- // copyNodeType("/root/send/savedata", "/root/main/oncalllist", "replace");
- ds_send_savedata.copyData(ds_main_oncalllist_info);
- }else{
- var appSeq = ds_main_oncallinfo.getColumn(0,"appseq");
- var statCd = ds_main_oncallinfo.getColumn(0,"statcd");
- var acptYn = ds_main_oncallinfo.getColumn(0,"acptyn");
-
- if(acptYn == "Y"){
- sysf_messageBox("결재가 완료되어 수정할 수 없습니다","I");
- return;
- }
-
- if( flag == "A" ){ //필수값 체크 (신청 화면)
- if ( ! frmf_chkMdt(["ipt_pid", "ipt_hngnm", "ipt_appmpphonno", "rdo_patflagcd", "cmb_orddept", "cmb_orddr"]
- ,["환자번호","성명","신청 전화번호","환자구분","진료과","진료의사"]) ) return false;
- ds_main_oncallinfo.setColumn(0,"statcd" , "A");
- if( utlf_isNull(appSeq) ){
- ds_main_oncallinfo.setColumn(0,"saveflag", "I");
- }else{
- ds_main_oncallinfo.setColumn(0,"saveflag", "U");
- }
- //alert(ds_main_oncallinfo.getColumn(0,"saveflag"));
- } else if( flag == "R" ){ //필수값 체크 (도착 화면)
- if(utlf_isNull(ds_main_oncallinfo.getColumn(0,"appseq"))){
- sysf_messageBox("신청내역을 선택하십시오.","I");
- return;
- }
-
- if ( ! frmf_chkMdt(["ipt_arvdd", "ipt_arvtm"]
- ,["도착일자","도착시간"]) ) return false;
-
- var arvdd = ds_main_oncallinfo.getColumn(0,"arvdd");
- var arvtm = ds_main_oncallinfo.getColumn(0,"arvtm");
- if(arvdd == "00000000"){
- sysf_messageBox("도착일자를 정확히 입력하십시오.","I");
- return;
- }
- if( arvtm.getByteLength() < 4 ){
- sysf_messageBox("도착시간을 4자리 이상 입력하십시오.","I");
- return;
- }else{
- arvtm = arvtm.getRightPad(6, "0");
- }
-
- if( utlf_isNull(statCd) || statCd == "E" ){
- sysf_messageBox("수정할 수 없는 상태입니다.","I");
- return;
- }
-
- //도착시간에 대한 수정하는 경우, 권한과 시간 체크
- if( ds_main_oncallinfo.getColumn(0,"endrgstdt") != "00000000000000" && sysf_getUserInfo("dutplcecd") != "3310000000" && sysf_getUserInfo("userid") != ds_main_oncallinfo.getColumn(0,"calldrid")){ //진료행정팀이나 진료의가 아닌 경우
- sysf_messageBox("해당 진료의가 아니면 수정 불가능합니다.","I");
- return;
- }
-
- ds_main_oncallinfo.setColumn(0,"arvdt" , arvdd + arvtm);
- ds_main_oncallinfo.setColumn(0,"saveflag", "U");
- ds_main_oncallinfo.setColumn(0,"statcd" , "R");
- } else if( flag == "E" ){ //필수값 체크 (종료 화면)
- if(utlf_isNull(ds_main_oncallinfo.getColumn(0,"appseq"))){
- sysf_messageBox("신청내역을 선택하십시오.","I");
- return;
- }
-
- if ( ! frmf_chkMdt(["ipt_arvdd", "ipt_arvtm", "ipt_enddd", "ipt_endtm"]
- ,["도착일자","도착시간","완료일자","완료시간"])) return false;
-
- var arvdd = ds_main_oncallinfo.getColumn(0,"arvdd");
- var arvtm = ds_main_oncallinfo.getColumn(0,"arvtm");
- var enddd = ds_main_oncallinfo.getColumn(0,"enddd");
- var endtm = ds_main_oncallinfo.getColumn(0,"endtm");
-
- if( arvdd.getByteLength() < 6){
- sysf_messageBox("도착시간을 6자리 이상 입력하십시오.","I");
- return;
- }
-
- if( arvtm.getByteLength() < 4 ){
- sysf_messageBox("도착시간을 4자리 이상 입력하십시오.","I");
- return;
- }else{
- arvtm = arvtm.getRightPad(6, "0");
- }
-
- if(enddd == "00000000"){
- sysf_messageBox("완료일자를 정확히 입력하십시오.","I");
- return;
- }
-
- if( endtm.getByteLength() < 4 ){
- sysf_messageBox("완료시간을 4자리 이상 입력하십시오.","I");
- return;
- }else{
- endtm = endtm.getRightPad(6, "0");
- }
-
- if( utlf_isNull(statCd) || statCd == "A" ){
- sysf_messageBox("완료할 수 없는 상태입니다.","I");
- return;
- }
- //완료시간에 대한 수정하는 경우, 권한과 시간 체크
- if( ds_main_oncallinfo.getColumn(0,"endrgstdt") != "00000000000000" && sysf_getUserInfo("dutplcecd") != "3310000000" && sysf_getUserInfo("userid") != ds_main_oncallinfo.getColumn(0,"calldrid")){ //진료행정팀이나 진료의가 아닌 경우
- sysf_messageBox("해당 진료의가 아니면 수정 불가능합니다.","I");
- return;
- }
- ds_main_oncallinfo.setColumn(0,"arvdt" , arvdd + arvtm);
- ds_main_oncallinfo.setColumn(0,"enddt" , enddd + endtm);
- ds_main_oncallinfo.setColumn(0,"saveflag", "U");
- ds_main_oncallinfo.setColumn(0,"statcd" , "E");
- }
- // model.copyNode("/root/send/savedata", "/root/main/oncallinfo");
- ds_send_savedata.copyData(ds_main_oncallinfo);
- } //end else
-
- // model.removeNode("/root/send/reqdata");
- // model.makeNode("/root/send/reqdata");
- // model.copyNode("/root/send/reqdata", "/root/main/cond");
- ds_send_reqdata.clear();
- ds_send_reqdata.copyData(ds_main_cond);
- //저장
- var oParam = {};
- oParam.id = "TXMMO33201";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqExeOnCallInfo";
- oParam.inds = "req=ds_send_reqdata oncallinfo=ds_send_savedata";
- oParam.outds = "ds_main_oncalllist_info=info";
- oParam.async = false;
- oParam.callback = "cf_TXMMO33201";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TXMMO33201") > -1){
- //신청 후에 메세지 보여줌
- if( flag == "A" ){
- mpphonno = ds_temp_callinfo.getColumn(0,"mpphonno");
- sysf_messageBox( mpphonno + " 번호로 SMS 전송되었습니다." ,"I");
- }
- }else{
- ds_main_oncallinfo.setColumn(0,"saveflag","I");
- }
- }
- /****************************************************************************************
- * Function : cf_TXMMO33201
- * Description : TXMMO33201 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TXMMO33201(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /****************************************************************************************
- * Function : fGetOrdDrList1
- * Description : 진료과별 진료의 조회
- * Argument : retValue : 과코드
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetOrdDrList1(retValue){
- lf_mmbfGetUserComboList(ds_init_userlist, retValue, "0330", "", "", "", "", "", "", "M");
- }]]></Script>
|