123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[
- /*function list
- * fInitialize_SMMMO19000 : 최초 화면초기화 함수
- * fInitialize_SMMMO19000_L : 좌측 처방리스트 초기화 함수
- * fInitialize_SMMMO19000_R : 우측 처방별 정보 초기화 함수
- * fRightDisabled : PK값이 들어가있는 오브젝트 활성여부 체크 함수
- * fPrcpSearch : 처방검색화면(SPMMB21700.xrw) 제어를 위한 함수
- * fPrinfoEmptyCheck : 처방별 정보중 비어있는 내용 체크 함수
- * fSavePrcpinfo : 처방별 메세지 정보 저장 함수
- * fGetPrcpinfoDetail : 처방별 메세지 정보를 호출하는 함수
- * fGetPrcpinfolist : 처방리스트를 호출하는 함수
- * fGridInputData : 처방별 예외정보 추가를 위한 함수
- * fExceptionDuplicateeCheck : 처방별 예외정보 추가시 중복검사 함수
- * fGridDeptInputData : 예외 부서 그리드에 입력하는 함수
- * fGridUserInputData : 예외 사용자 그리드에 입력하는 함수
- * fGridPatInputData : 예외 환자 그리드에 입력하는 함수
- */
- var sWarnCls = ""; // 주의요망분류(C:처방코드, P:환자번호)
- function fInitialize_SMMMO19000(){
- sWarnCls = ds_send_searchinfo.getColumn(0,"warncls"); // 주의요망분류(C:처방코드, P:환자번호)
- lf_mmbfGetDeptCodeComboList(ds_init_orddept, "A"); //진료과 콤보
- var oParam = {};
- oParam.id = "TRMMO19002";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetWarnAuthDept";
- oParam.inds = "req=ds_send_searchinfo";
- oParam.outds = "ds_init_authdept=result";
- oParam.async = false;
- oParam.callback = "cf_TRMMO19002";
- tranf_submit(oParam); // 관리부서 /root/init/authdept 설정
-
- ds_send_searchinfo.setColumn(0,"authdeptcd",sysf_getUserInfo("dutplcecd"));
-
- fInitialize_SMMMO19000_L();
- fInitialize_SMMMO19000_R();
- fGetPrcpinfolist();
- fRightDisabled(true);
-
- var sWarnCd = "";
- var sWarnNm = "";
- if(sWarnCls == "P") { // 대상자 리스트에서 화면 팝업시
- sWarnCd = opener.frmf_getParameter("SMMMO19100_warncd");
- sWarnNm = opener.frmf_getParameter("SMMMO19100_warnnm");
- if(!utlf_isNull(sWarnCd) && !utlf_isNull(sWarnNm)) {
- ds_apply_prcpinfo.setColumn(0,"warncd", sWarnCd);
- ds_apply_prcpinfo.setColumn(0,"warnnm", sWarnNm);
- fRightDisabled(false);
- }
- }
- }
- function cf_TRMMO19002(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function fInitialize_SMMMO19000_L(){
- fRightDisabled(true);
- //model.removeNodeset("/root/main/prcpinfo/prcplist");
- ds_prcpinfo_prcplist.clearData();
- ds_send_searchinfo.setColumn(0,"fromdd", utlf_getCurrentDate());
- ds_send_searchinfo.setColumn(0,"warncd", "");
- ds_send_searchinfo.setColumn(0,"warnnm", "");
- ds_send_searchinfo.setColumn(0,"useynflag","");
- }
- function fInitialize_SMMMO19000_R(){
- fRightDisabled(true);
- grd_righr_bottom.btn_save.enable = true;
- ds_apply_prcpinfo.setColumn(0,"warndd", utlf_getCurrentDate());
- ds_apply_prcpinfo.setColumn(0,"warnno", "0");
- ds_apply_prcpinfo.setColumn(0,"fromdd", utlf_getCurrentDate());
- ds_apply_prcpinfo.setColumn(0,"todd", "99991231");
- ds_apply_prcpinfo.setColumn(0,"useyn", "Y");
- ds_apply_prcpinfo.setColumn(0,"warncls", sWarnCls); // 주의요망분류(C:처방코드, P:환자번호)
- ds_apply_prcpinfo.setColumn(0,"warncd", "");
- ds_apply_prcpinfo.setColumn(0,"warnnm", "");
- ds_apply_prcpinfo.setColumn(0,"errmsg", "");
- ds_apply_prcpinfo.setColumn(0,"rmk", "");
- ds_apply_prcpinfo.setColumn(0,"authdeptcd", "");
- ds_apply_prcpinfo.setColumn(0,"authdeptnm", "");
- ds_apply_prcpinfo.setColumn(0,"telno", "");
- ds_apply_prcpinfo.setColumn(0,"appcls", "I"); // 디폴트 제외(I)로 설정 처리구분(E:오류 I:정보)
- ds_apply_prcpinfo.setColumn(0,"apptype", "E"); // 디폴트 제외(E)로 설정 적용구분(E:제외 I:적용)
- ds_apply_prcpinfo.setColumn(0,"appioflag", "A"); // 디폴트 전체(A)로 설정 적용 외래/입원 구분 A:전체, O:외래, I:입원(병동/응급/DSC)
- ds_apply_prcpinfo.setColumn(0,"apppayflag", "A"); // 디폴트 전체(A)로 설정 적용 급비구분 A:전체, B:급여처방만
- ds_apply_prcpinfo.setColumn(0,"appterm", "0"); // 적용기간 WARNTYPE이 관련처방 체크일경우 체크 일수
- if(sWarnCls == "C") {
- ds_apply_prcpinfo.setColumn(0,"warntype","B"); // 주의요망타입(A:환자선택, B:처방입력, C:관련처방체크)
- } else {
- ds_apply_prcpinfo.setColumn(0,"warntype","A"); // 주의요망타입(A:환자선택, B:처방입력, C:관련처방체크)
- }
- ds_apply_excode_codelist.clearData();
- ds_apply_exdeptlist.clearData();
- ds_apply_exuserlist.clearData();
- if(sWarnCls == "C") {
- ds_apply_expatlist.clearData();
- }
-
- // grd_right_top.ipt_warnnm.tooltiptext = "";
- // grd_right_top.ipt_warncd.tooltiptext = "";
-
- }
- function fRightDisabled(flag){
- if(flag){
- grd_right_top.btn_search_R.enable = false;
- }else{
- grd_right_top.btn_search_R.enable = true;
- }
- }
- function fPrcpSearch(sFlag){
-
- var recive_prcpnm = "";
- var recive_prcpdd = "";
- var recive_srchflag = "";
- var choose_prcpnm = "";
- var choose_prcpcd = "";
-
- if(sFlag == "L"){
- choose_prcpcd = ds_send_searchinfo.getColumn(0,"warncd");
- choose_prcpnm = ds_send_searchinfo.getColumn(0,"warnnm");
- recive_prcpdd = ds_send_searchinfo.getColumn(0,"fromdd");
- }else if(sFlag == "R"){
- choose_prcpcd = ds_apply_prcpinfo.getColumn(0,"warncd");
- choose_prcpnm = ds_apply_prcpinfo.getColumn(0,"warnnm");
- recive_prcpdd = ds_apply_prcpinfo.getColumn(0,"fromdd");
- }else {
- choose_prcpcd = "";
- choose_prcpnm = "";
- recive_prcpdd = utlf_getCurrentDate();
- }
-
- if(!utlf_isNull(choose_prcpcd)){
- recive_prcpnm = choose_prcpcd;
- recive_srchflag = "prcpcd";
- }else{
- recive_prcpnm = choose_prcpnm;
- recive_srchflag = "prcpnm";
- }
-
-
- frmf_setParameter("SPMMB21700_recive_prcpnm", recive_prcpnm);
- frmf_setParameter("SPMMB21700_recive_prcpdd", recive_prcpdd);
- frmf_setParameter("SPMMB21700_recive_srchflag",recive_srchflag);
-
- frmf_modal("SPMMB21700","SPMMB21700","","","","","","","","","","","M");
-
- var prcpcd = frmf_getParameter("SPMMB21700_prcpcd");
- var prcpnm = frmf_getParameter("SPMMB21700_prcpnm");
-
- if(sFlag == "L"){
- ds_send_searchinfo.setColumn(0,"warncd", prcpcd);
- ds_send_searchinfo.setColumn(0,"warnnm", prcpnm);
- fGetPrcpinfolist();
- }else if(sFlag == "R"){
- ds_apply_prcpinfo.setColumn(0,"warncd", prcpcd);
- ds_apply_prcpinfo.setColumn(0,"warnnm", prcpnm);
- // grd_right_top.ipt_warnnm.tooltiptext = prcpnm;
- // grd_right_top.ipt_warncd.tooltiptext = prcpcd;
- }else {
- ds_codeinfolist.setColumn(0,"prcpcd", prcpcd);
- ds_codeinfolist.setColumn(0,"prcpnm", prcpnm);
- }
-
- frmf_setParameter("SPMMB21700_prcpcd","");
- frmf_setParameter("SPMMB21700_prcpnm","");
- }
- function fPatSearch(sFlag){
- frmf_modal("SPPMC02500","SPPMC02500","","","","","","","","","","","M");
- var sPid = ds_patinfolist.getColumn(0,"pid");
- var sHngNm = ds_patinfolist.getColumn(0,"hngnm");
-
- if(sFlag == "L") {
- ds_send_searchinfo.setColumn(0,"warncd", sPid);
- ds_send_searchinfo.setColumn(0,"warnnm", sHngNm);
- fGetPrcpinfolist();
- } else if(sFlag == "R") {
- ds_apply_prcpinfo.setColumn(0,"warncd", sPid);
- ds_apply_prcpinfo.setColumn(0,"warnnm", sHngNm);
- // grd_right_top.ipt_warnnm.tooltiptext = sPid;
- // grd_right_top.ipt_warncd.tooltiptext = sHngNm;
- }
- }
- function fPrinfoEmptyCheck(){
- if(utlf_isNull(ds_apply_prcpinfo.getColumn(0,"authdeptcd"))){
- ds_apply_prcpinfo.setColumn(0,"authdeptcd",sysf_getUserInfo("dutplcecd"));
- }
-
- if(utlf_isNull(ds_apply_prcpinfo.getColumn(0,"warncd"))){
- if(sWarnCls == "C") {
- sysf_messageBox("처방코드을","C001");
- } else {
- sysf_messageBox("환자번호을","C001");
- }
- return false;
- }
-
- if(utlf_isNull(ds_apply_prcpinfo.getColumn(0,"telno"))){
- sysf_messageBox("문의전화을","C001");
- return false;
- }
-
- if(utlf_isNull(ds_apply_prcpinfo.getColumn(0,"errmsg"))){
- sysf_messageBox("메세지내용을","C001");
- return false;
- }
- return true;
- }
- function fSavePrcpinfo(){
- if(!fPrinfoEmptyCheck()) {
- return;
- }
- dsf_createDs("ds_send_excodeinfo");
- var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_notapply_code);
- grdf_setStatusColumn(oDsUpdate, "state");
- ds_send_excodeinfo.copyData(oDsUpdate, true);
-
- dsf_createDs("ds_send_exdeptinfo");
- var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_notapply_dept);
- grdf_setStatusColumn(oDsUpdate, "state");
- ds_send_exdeptinfo.copyData(oDsUpdate, true);
-
- dsf_createDs("ds_send_exuserinfo");
- var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_notapply_user);
- grdf_setStatusColumn(oDsUpdate, "state");
- ds_send_exuserinfo.copyData(oDsUpdate, true);
-
- dsf_createDs("ds_send_expatinfo");
- if(sWarnCls == "C") {
- var oDsUpdate = grdf_getGridUpdateData(grd_right_top.grd_notapply_pat);
- grdf_setStatusColumn(oDsUpdate, "state");
- ds_send_expatinfo.copyData(oDsUpdate, true);
- }
- dsf_createDs("ds_result");
-
- var oParam = {};
- oParam.id = "TXMMO19000";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqExeWarnPrcp";
- oParam.inds = "warninfo=ds_apply_prcpinfo excodeinfo=ds_send_excodeinfo exdeptinfo=ds_send_exdeptinfo exuserinfo=ds_send_exuserinfo expatinfo=ds_send_expatinfo";
- oParam.outds = "ds_result=result";
- oParam.async = false;
- oParam.callback = "cf_TXMMO19000";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TXMMO19000") > -1){
- fInitialize_SMMMO19000_R();
- fGetPrcpinfolist();
- sysf_messageBox("저장 되었습니다.","I999");
- } else {
- sysf_messageBox("저장에","I009");
- }
- }
- function cf_TXMMO19000(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- function fGetPrcpinfoDetail(){
- var currow = ds_prcpinfo_prcplist.rowposition;
-
- ds_send_reqdata.clear();
-
- dsf_copyColInfo(ds_send_reqdata,ds_prcpinfo_prcplist);
-
- var newrow = ds_send_reqdata.addRow();
- ds_send_reqdata.copyRow(newrow,ds_prcpinfo_prcplist,currow);
- ds_send_reqdata.addColumn("flag","string");
- ds_send_reqdata.setColumn(0,"flag","detail");
- //sysf_trace(ds_send_reqdata.saveXML());
-
- ds_apply_prcpinfo.clearData();
- ds_apply_excode_codelist.clearData();
- ds_apply_exdeptlist.clearData();
- ds_apply_exuserlist.clearData();
- ds_apply_expatlist.clearData();
-
- var oParam = {};
- oParam.id = "TRMMO19001";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetWarnPrcpinfo";
- oParam.inds = "req=ds_send_reqdata";
- oParam.outds = "ds_apply_prcpinfo=result ds_apply_excode_codelist=excodeinfo ds_apply_exdeptlist=exdeptinfo ds_apply_exuserlist=exuserinfo ds_apply_expatlist=expatinfo";
- oParam.async = false;
- oParam.callback = "cf_TRMMO19001";
- tranf_submit(oParam);
-
-
- if(arErrorCode.pop("TRMMO19001") > -1){
-
- var sAuthDeptCd = ds_apply_prcpinfo.getColumn(0,"authdeptcd");
-
- if(sysf_getUserInfo("dutplcecd") != sAuthDeptCd && sysf_getUserInfo("userid") != "EMR"){
- grd_righr_bottom.btn_save.enable = false;
- }else{
- grd_righr_bottom.btn_save.enable = true;
- }
-
- fRightDisabled(true);
- }
- }
- function cf_TRMMO19001(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- function fGetPrcpinfolist(){
- ds_send_searchinfo.setColumn(0,"flag","list");
- var oParam = {};
- oParam.id = "TRMMO19000";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetWarnPrcpinfo";
- oParam.inds = "req=ds_send_searchinfo";
- oParam.outds = "ds_prcpinfo_prcplist=result";
- oParam.async = false;
- oParam.callback = "cf_TRMMO19000";
- tranf_submit(oParam);
- if(arErrorCode.pop("TRMMO19000") > -1){
- ds_objectinfo_user.setColumn(0,"orddrid","");
- ds_objectinfo_user.setColumn(0,"orddept","");
- ds_objectinfo_dept.setColumn(0,"orddept","");
- }
- }
- function cf_TRMMO19000(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /*
- * param = D -> 부서 U -> 사용자 P -> 환자 C -> 관련코드
- */
- function fGridAdd(datagrid:Dataset, sFlag){
- var sExId = "";
- var sExIdNm = "";
- var msg = "";
-
- if(sFlag == "D"){
- sExId = ds_objectinfo_dept.getColumn(0,"orddept");
- sExIdNm = ds_init_orddept.lookup("deptcd", sExId, "depthngnm");
- } else if(sFlag == "U"){
- sExId = ds_objectinfo_user.getColumn(0,"orddrid");
- sExIdNm = ds_init_userlist.lookup("userid", sExId ,"usernm");
- } else if(sFlag == "P"){
- frmf_modal("SPPMC02500","SPPMC02500","","","","","","","","","","","M");
- sExId = ds_patinfolist.getColumn(0,"pid");
- sExIdNm = ds_patinfolist.getColumn(0,"hngnm");
- } else if (sFlag == "C") {
- fPrcpSearch("C");
- sExId = ds_codeinfolist.getColumn(0,"prcpcd");
- sExIdNm = ds_codeinfolist.getColumn(0,"prcpnm");
- }else{
- return;
- }
- if(!utlf_isNull(sExId)){
- if(fCheckDup(sExId, datagrid)){
- if(sFlag == "D"){
- msg = "해당 부서는";
- }else if(sFlag == "U"){
- msg = "해당 사용자는";
- }else if(sFlag == "P"){
- msg = "해당 환자는";
- }else{}
-
- sysf_messageBox(msg,"E006");
- return;
- }
- var nRow = datagrid.addRow();
- //datagrid.addRow();
- datagrid.setColumn(nRow,"warndd", ds_apply_prcpinfo.getColumn(0,"warndd"));
- datagrid.setColumn(nRow,"warnno", ds_apply_prcpinfo.getColumn(0,"warnno"));
- datagrid.setColumn(nRow,"exno", "0");
- datagrid.setColumn(nRow,"extype", sFlag);
- datagrid.setColumn(nRow,"exid", sExId);
- datagrid.setColumn(nRow,"exidnm", sExIdNm);
-
- ds_objectinfo_dept.setColumn(0,"orddept","");
- ds_objectinfo_user.setColumn(0,"orddrid","");
- }else{
- sysf_messageBox("추가 할 항목을 아래에서 선택 하세요.", "I999");
- return;
- }
- }
- function fGridDel(datagrid:Dataset){
- var sNodeSet = "";
- var nRow = datagrid.rowposition;
- var nStatus = null;
- if( nRow < 0 ){
- alert("삭제할 항목을 선택해주십시오.");
- return;
- }
-
- nStatus = datagrid.getRowType(nRow);
- // if(nStatus == 0) { // 기존데이터
- // datagrid.rowstatus(nRow) = 4;
- // } else if (nStatus == 1) { // 신규데이터
- // datagrid.deleteRow(nRow);
- // } else if (nStatus == 4) { // 삭제데이터
- // datagrid.rowstatus(nRow) = 0;
- // }
-
- datagrid.updatecontrol = false;
-
- if(nStatus == 1) { // 기존데이터
- datagrid.setRowType(nRow, 8);
- } else if (nStatus == 2) { // 신규데이터
- datagrid.deleteRow(nRow);
- } else if (nStatus == 8) { // 삭제데이터
- datagrid.setRowType(nRow,1);
- }
-
- datagrid.updatecontrol = true;
- }
- function fCheckDup(sValue, objds:Dataset){
- var nCnt = objds.rowcount;
- var bExist = false;
- for(i=0; i< nCnt; i++){
- if(sValue == objds.getColumn(i,"exid")){
- bExist = true;
- }
- }
- return bExist;
- }
- function fCompareDate(){
- var fromdd = ds_apply_prcpinfo.getColumn(0,"fromdd");
- var todd = ds_apply_prcpinfo.getColumn(0,"todd");
-
- if(!utlf_isNull(fromdd) && !utlf_isNull(todd)){
- if(todd < fromdd){
- sysf_messageBox("시작일자가 종료일자보다 빠를 수","I004");
- return;
- }
- }
- }
- function fCopyExPrcpList() {
- fWarnExCopy("C");
- }
- function fCopyExDeptList() {
- fWarnExCopy("D");
- }
- function fCopyExDridList() {
- fWarnExCopy("U");
- }
- function fCopyExPatList() {
- fWarnExCopy("P");
- }
- function fWarnExCopy(sFlag) {
- var datagrid:Dataset;
- var sExId = "";
- var sExIdNm = "";
- var currow = ds_prcpinfo_prcplist.rowposition;
-
- ds_send_reqdata.clear();
- dsf_copyColInfo(ds_send_reqdata,ds_prcpinfo_prcplist);
- var newrow = ds_send_reqdata.addRow();
- ds_send_reqdata.copyRow(newrow,ds_prcpinfo_prcplist,currow);
-
- dsf_makeValue(ds_send_reqdata,"extype", "string", sFlag);
-
- var oParam = {};
- oParam.id = "TRMMO19003";
- oParam.service = "prcpmngtapp.EtcPrcpMngt";
- oParam.method = "reqGetWarnExCopy";
- oParam.inds = "req=ds_send_reqdata";
- oParam.outds = "ds_hidden_copylist=result";
- oParam.async = false;
- oParam.callback = "cf_TRMMO19003";
- tranf_submit(oParam);
- if(arErrorCode.pop("TRMMO19003") > -1){
- if (sFlag == "C") {
- datagrid = ds_apply_excode_codelist;
- } else if(sFlag == "D"){
- datagrid = ds_apply_exdeptlist;
-
- } else if(sFlag == "U"){
- datagrid = ds_apply_exuserlist;
-
- } else if(sFlag == "P"){
- datagrid = ds_apply_expatlist;
-
- } else {
- return;
- }
-
- //var copyNodes = instance1.selectNodes("/root/hidden/copylist");
- for ( var i = 0; i < ds_hidden_copylist.rowcount ; i++){
- sExId = ds_hidden_copylist.getColumn(i,"exid");
- sExIdNm = ds_hidden_copylist.getColumn(i,"exidnm");
-
- if(!utlf_isNull(sExId)){
- if(fCheckDup(sExId, datagrid)){
- sysf_messageBox(sExIdNm + "은 중복으로 추가하지 않습니다." ,"I999");
- continue;
- }
- }
-
- var nRow = datagrid.addRow();
- datagrid.setColumn(nRow,"warndd", ds_apply_prcpinfo.getColumn(0,"warndd"));
- datagrid.setColumn(nRow,"warnno", ds_apply_prcpinfo.getColumn(0,"warnno"));
- datagrid.setColumn(nRow,"exno", "0");
- datagrid.setColumn(nRow,"extype", sFlag);
- datagrid.setColumn(nRow,"exid", sExId);
- datagrid.setColumn(nRow,"exidnm", sExIdNm);
- }
-
- }
- }
- function cf_TRMMO19003(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }]]></Script>
|