123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type ="xscript4.0"><![CDATA[// 초기화
- function fInit(){
- // 원무공통코드조회
- var arrParam = [ {dsNm: "ds_init_PAM_PK018list",
- cdGrpId: "PK018" } ];
- pamfGetCodeList(arrParam, );
- // 인스턴스 초기화
- ds_send.clearData(); ds_send.addRow();
- ds_main_uproomsignlist.clearData(); ds_main_uproomsignlist.addRow();
- ds_main_signinfo.clearData(); ds_main_signinfo.addRow();
- //model.refresh();
- // 신청인 서명여부 표시
- fsign_chk();
- // 관계 서명여부 표시
- fsign_Rely_chk();
- // 버튼제어
- btn_update.enable = false;
- btn_insert.enable = false;
- // 싸인패드 초기화
- fsignpad_init();
- // 포커스 설정
- model.setfocus("input1", true);
- // 개인정보이용동의서 출력을 위한 서식코드 취득
- reqHardCodeInfo("ds_send_reqdata", "ds_init_prncd", "5604");
- // 부모창에서 넘겨진 파라미터 검증
- if (frmf_checkOpener()) {
- var pid = opener.javascript.frmf_getParameter("SPZHA20101_PARM_PID");
- var indd = opener.javascript.frmf_getParameter("SPZHA20101_PARM_INDD");
- var autoflag = opener.javascript.frmf_getParameter("SPZHA20101_PARM_AUTOFLAG");
- ds_send.setColumn( 0, "pid", pid);
- ds_send.setColumn( 0, "indd", indd);
- //model.refresh();
- // 차트번호가 존재하는 경우에만 조회실시
- if (!utlf_isNull(pid)) {
- // 초기조회
- fGetUpRoomSignList();
- // 자동실시인 경우에만 처리
- if (autoflag == "Y") {
- // 검색결과가 1건 + 서명 N 인경우 자동으로 설정
- if (grd_signlist.rows == 2) {
- // 전자동의서 기본출력 처리 by 조중래 20151104
- if (ds_init_PAM_PK018list_PK018.lookupExpr("cdid == '" + app.clientIp + "'", "cdnm") == "Y"
- && sysf_messageBox("상급병실신청서", "Q017") == "6") {
- // 정보 설정
- fSetSignInfo();
- // 구분설정 S:전자동의서
- ds_main_signinfo.setColumn( 0, "ocrtype", "S");
- setOCRType();
- // 자동저장
- fSave("I");
- }
- }
- }
- }
- }
- }
- // 상급병실신청리스트 조회
- function fGetUpRoomSignList() {
- if (utlf_isNull(ds_send.getColumn(0, "pid"))
- || utlf_isNull(ds_send.getColumn(0, "indd"))) {
- sysf_messageBox("환자번호 및 입원일자는 필수입니다.", "E000");
- return;
- }
- // submit("TRPMI02801");
- var oParam = {};
- oParam.id = "TRPMI02801";
- oParam.service = "ipatmngtapp.InRgst";
- oParam.method = "reqGetUpRoomSignList";
- oParam.inds = "req=ds_";
- oParam.outds = "ds_=resultlist";
- oParam.async = false;
- oParam.callback = "cf_TRPMI02801";
- tranf_submit(oParam);
- /*
- function cf_TRPMI02801(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function cf_TRPMI02801(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- arErrorCode.pop("TRPMI02801") > -1
- arErrorCode.pop("TRPMI02801") < 0
- */
- btn_update.enable = false;
- btn_insert.enable = false;
- }
- // 상급병실신청 서명정보설정
- function fSetSignInfo() {
- var grdRow = grd_signlist.row;
- if (grdRow < 1) {
- grdRow = 1; // 초기값 설정용 - 전자동의서 자동출력 처리용
- }
- // 상세정보 설정
- model.copyNode("ds_main_signinfo" , "ds_main_uproomsignlist[" + grdRow +"]" );
- //model.refresh();
- // 신규저장 / 수정 버튼제어
- if (ds_main_signinfo.getColumn(0, "signyn") != "N") {
- dsf_makeValue( ds_main_signinfo, "updateflag", "string", "U");
- btn_update.enable = true;
- btn_insert.enable = false;
- } else {
- dsf_makeValue( ds_main_signinfo, "updateflag", "string", "I");
- btn_update.enable = false;
- btn_insert.enable = true;
- }
- // 사인표시부 초기화
- fsignpad_init();
- // 신청인 서명여부 표시
- fsign_chk();
- // 관계 서명여부 표시
- fsign_Rely_chk();
- // 구분 제어
- setOCRType();
- }
- //신청인 서명
- function fsign_req(){
- // 상급병실 신청정보가 있을 때만 처리
- if (utlf_isNull(ds_main_signinfo.getColumn(0, "pid"))) {
- sysf_messageBox("상급병실 신청정보가 선택되지 않았습니다. \r\n오른쪽 리스트에서 해당 정보를 선택한 후 진행하십시요.", "C000");
- return;
- }
- fsignpad_init();
- fsignpad_request(0);
- dsf_makeValue( ds_main_signinfo, "elctappsignyn1", "string", "Y");
- }
- //신청인 서명확인
- function fsign_confirm(){
- var flag = ds_main_signinfo.getColumn(0, "elctappsignyn1");
- if(flag == "Y"){
- // 전자서명 저장
- fsignpad_save();
- ds_main_signinfo.setColumn( 0, "elctsignkey1" , ds_result_sign.getColumn(0, "elctsignkey") , true);
- ds_main_signinfo.setColumn( 0, "elctsigncnts1", ds_result_sign.getColumn(0, "elctsigncnts") , true);
- // 전자서명 싸인패드에 표시
- fsignpad_view(ds_main_signinfo.getColumn(0, "elctsignkey1") , ds_main_signinfo.getColumn(0, "elctsigncnts1"));
- //서명유무 체크
- fsign_chk();
- return true;
- } else {
- sysf_messageBox("신청인 서명이 입력되지 않았습니다.", "C000");
- return false;
- }
- }
- //서명유무 체크
- function fsign_chk(){
- var appsigncnts = ds_main_signinfo.getColumn(0, "elctsignkey1");
- if (appsigncnts == "-" || appsigncnts == "") {
- caption12.attribute("style") = "background-color:#cce8ff;";
- }else{
- caption12.attribute("style") = "background-color:#ff0000;";
- }
- }
- //신청인관계 서명
- function fsign_Rely_req(){
- // 서명확인용 버튼기능 수행
- if (fsign_confirm() != true) {
- return;
- }
- // 신청인관계는 신청인 서명이 존재할 때만 서명가능함
- if (ds_main_signinfo.getColumn(0, "elctappsignyn1") != 'Y') {
- sysf_messageBox("신청인 서명이 입력되지 않았습니다.", "C000");
- return;
- }
- fsignpad_init();
- fsignpad_request(0);
- dsf_makeValue( ds_main_signinfo, "elctappsignyn2", "string", "Y");
- }
- //신청인관계 서명확인
- function fsign_Rely_confirm(){
- var flag = ds_main_signinfo.getColumn(0, "elctappsignyn2");
- if(flag == "Y"){
- // 전자서명 저장
- fsignpad_save();
- ds_main_signinfo.setColumn( 0, "elctsignkey2" , ds_result_sign.getColumn(0, "elctsignkey") , true);
- ds_main_signinfo.setColumn( 0, "elctsigncnts2", ds_result_sign.getColumn(0, "elctsigncnts") , true);
- // 전자서명 싸인패드에 표시
- fsignpad_view(ds_main_signinfo.getColumn(0, "elctsignkey2") , ds_main_signinfo.getColumn(0, "elctsigncnts2"));
- //서명유무 체크
- fsign_Rely_chk();
- return true;
- } else {
- sysf_messageBox("관계가 입력되지 않았습니다.", "C000");
- return false;
- }
- }
- //서명유무 체크
- function fsign_Rely_chk(){
- var apprelacnts = ds_main_signinfo.getColumn(0, "elctsignkey2");
- if (apprelacnts == "-" || apprelacnts == "") {
- caption14.attribute("style") = "background-color:#cce8ff;";
- } else {
- caption14.attribute("style") = "background-color:#ff0000;";
- }
- }
- // 신규저장
- function fSave(flag) {
- if (ds_main_signinfo.getColumn(0, "ocrtype") == "" || ds_main_signinfo.getColumn(0, "ocrtype") == null) {
- sysf_messageBox("서식구분은 필수입력입니다.", "C000");
- return;
- }
- // 관계서명확인용 버튼기능 수행(서면서명_전자동의서 작성의 경우 체크제외)
- if (ds_main_signinfo.getColumn(0, "ocrtype") == "E" && fsign_Rely_confirm() != true) {
- return;
- }
- // 신청인 및 관계데이터가 모두 존재할 경우에만 저장처리(서면서명_전자동의서 작성의 경우 체크제외)
- if (ds_main_signinfo.getColumn(0, "ocrtype") == "E") {
- if (utlf_isNull(ds_main_signinfo.getColumn(0, "elctsignkey1"))
- || utlf_isNull(ds_main_signinfo.getColumn(0, "elctsignkey2"))) {
- sysf_messageBox("신청인 또는 관계가 입력되지 않았습니다.", "C000");
- return;
- }
- }
- // 전자동의서 체크실시
- if (ds_main_signinfo.getColumn(0, "ocrtype") == "S") {
- // OCRTAG 등록
- // 1. 병동에서 OCR서식을 출력하여 내려온 경우에 수동입력
- // 2. 전자동의서를 통한 입력
- if (ds_main_signinfo.getColumn(0, "ocrtag") == ""
- || ds_main_signinfo.getColumn(0, "ocrtag") == null) {
- // 서식코드 취득
- dsf_makeValue( ds_main_signinfo, "formcd", "string", ds_init_prncd_hardcd.lookupExpr("cdseqno == '7'", "hardcd")); // 7:상급병실신청서 0000001801
- dsf_makeValue( ds_main_signinfo, "orddd", "string", ds_main_signinfo.getColumn(0, "indd"));
- dsf_makeValue( ds_main_signinfo, "ordtype", "string", "I");
- dsf_makeValue( ds_main_signinfo, "flag", "string", "U"); // 상급병실신청서
- // 전자동의서
- var ocrtag = fPrintOcrConsent("ds_main_signinfo");
- if (ocrtag == "" || ocrtag == null) {
- sysf_messageBox("전자동의서가 정상적으로 처리되지 않았습니다. ", "C000");
- return false;
- } else {
- ds_main_signinfo.setColumn( 0, "ocrtag", ocrtag);
- }
- }
- // 전자동의서 모듈 혹은 병동에서 내려온 서식등록의 유효성 체크
- if (ds_main_signinfo.getColumn(0, "ocrtag").length != 13) {
- sysf_messageBox("전자동의서 OCRTAG가 없거나 비정상입니다. \r\n전자동의서를 다시 저장하거나,병실에서 내려온 신청서의 OCRTAG를 정확히 입력해주십시요.", "C000");
- return false;
- }
- }
- /*
- if(sysf_messageBox("내역을 저장 하시겠습니까? ", "Q999") != "6"){
- return;
- }
- */
- // 신규저장
- if (flag == "I") {
- // if (submit("TXPMI02802")) {
- var oParam = {};
- oParam.id = "TXPMI02802";
- oParam.service = "ipatmngtapp.InRgst";
- oParam.method = "reqSetUpRoomSign";
- oParam.inds = "req=ds_";
- oParam.outds = "ds_=resultlist";
- oParam.async = false;
- oParam.callback = "cf_TXPMI02802";
- tranf_submit(oParam);
- /*
- function cf_TXPMI02802(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function cf_TXPMI02802(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- arErrorCode.pop("TXPMI02802") > -1
- arErrorCode.pop("TXPMI02802") < 0
- */
- sysf_messageBox("정상적으로 처리되었습니다.", "I000");
- }
- // 신규저장시 창닫기
- model.close();
- }
- // 수정
- if (flag == "U") {
- // if (submit("TXPMI02802")) {
- var oParam = {};
- oParam.id = "TXPMI02802";
- oParam.service = "ipatmngtapp.InRgst";
- oParam.method = "reqSetUpRoomSign";
- oParam.inds = "req=ds_";
- oParam.outds = "ds_=resultlist";
- oParam.async = false;
- oParam.callback = "cf_TXPMI02802";
- tranf_submit(oParam);
- /*
- function cf_TXPMI02802(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function cf_TXPMI02802(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- arErrorCode.pop("TXPMI02802") > -1
- arErrorCode.pop("TXPMI02802") < 0
- */
- sysf_messageBox("정상적으로 처리되었습니다.", "I000");
- }
- }
- // 이중등록방지 seqno가 변경되었음
- btn_insert.enable = false;
- btn_update.enable = false;
- /* 입퇴원결정서 재출력을 위해 정보는 초기화하지 않음
- // 서명상세정보 초기화
- ds_main_signinfo.clearData(); ds_main_signinfo.addRow();
- //model.refresh();
- fsignpad_init();
- */
- }
- // 입퇴원결정서 재출력
- function fPrint() {
- var inpt_pid = ds_main_signinfo.getColumn(0, "pid");
- // 상급병실 신청정보가 있을 때만 처리
- if (utlf_isNull(inpt_pid)) {
- sysf_messageBox("상급병실 신청정보가 선택되지 않았습니다. \r\n오른쪽 리스트에서 해당 정보를 선택한 후 진행하십시요.", "C000");
- return;
- }
- dsf_makeValue( ds_send_data41, "instcd", "string", ds_main_signinfo.getColumn(0, "instcd"));
- dsf_makeValue( ds_send_data41, "pid", "string", ds_main_signinfo.getColumn(0, "pid"));
- dsf_makeValue( ds_send_data41, "indd", "string", ds_main_signinfo.getColumn(0, "indd"));
- dsf_makeValue( ds_send_data41, "cretno", "string", ds_main_signinfo.getColumn(0, "cretno"));
- dsf_makeValue( ds_send_data41, "orddeptcd", "string", ds_main_signinfo.getColumn(0, "orddeptcd"));
- // 병동병실 정보 추가. 2011.11.18. 노회식
- dsf_makeValue( ds_send_data41, "wardcd", "string", ds_main_signinfo.getColumn(0, "wardcd"));
- dsf_makeValue( ds_send_data41, "roomcd", "string", ds_main_signinfo.getColumn(0, "roomcd"));
- dsf_makeValue( ds_send_data41, "roomgrdecd", "string", ds_main_signinfo.getColumn(0, "roomgrdecd"));
- dsf_makeValue( ds_send_data41, "fromdd", "string", ds_main_signinfo.getColumn(0, "fromdd"));
- // submit("TRPMI01202");
- var oParam = {};
- oParam.id = "TRPMI01202";
- oParam.service = "ipatmngtapp.InRgst";
- oParam.method = "reqGetInDeciPrint";
- oParam.inds = "req=ds_";
- oParam.outds = "ds_=indeciprint ds_=patappinfo1";
- oParam.async = false;
- oParam.callback = "cf_TRPMI01202";
- tranf_submit(oParam);
- /*
- function cf_TRPMI01202(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function cf_TRPMI01202(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- arErrorCode.pop("TRPMI01202") > -1
- arErrorCode.pop("TRPMI01202") < 0
- */
- // 상급병실 신청내역 있을경우 기존 병실정보에 엎어서 출력.
- ds_hidden_rsltflag_indeciprint.setColumn( 0, "wardnm", ds_hidden_rsltflag_patappinfo1.getColumn(0, "wardnm"));
- ds_hidden_rsltflag_indeciprint.setColumn( 0, "roomcd", ds_hidden_rsltflag_patappinfo1.getColumn(0, "roomcd"));
- ds_hidden_rsltflag_indeciprint.setColumn( 0, "bedcnt", ds_hidden_rsltflag_patappinfo1.getColumn(0, "bedcnt"));
- ds_hidden_rsltflag_indeciprint.setColumn( 0, "diffamt", ds_hidden_rsltflag_patappinfo1.getColumn(0, "extrapay"));
- dsf_makeValue( ds_hidden_rsltflag_patappinfo1, "signimgsign", "string", ds_hidden_rsltflag_patappinfo1.getColumn(0, "elctappsigncnts"));
- dsf_makeValue( ds_hidden_rsltflag_patappinfo1, "signimgrela", "string", ds_hidden_rsltflag_patappinfo1.getColumn(0, "elctapprelacnts"));
- // 전과전실 선택진료 사인 추가 2011.11.18 노회식
- dsf_makeValue( ds_hidden_rsltflag_patappinfo1, "signimgsign1", "string", ds_hidden_rsltflag_patappinfo1.getColumn(0, "elctsigncnts1"));
- dsf_makeValue( ds_hidden_rsltflag_patappinfo1, "signimgrela1", "string", ds_hidden_rsltflag_patappinfo1.getColumn(0, "elctsigncnts2"));
- sysf_setGlobalVariable("SPPAO00100_강제출력여부", "Y" ,"p");
- ds_hidden_rsltflag_indeciprint_diagnm.clearData();
- dsf_makeValue( ds_hidden_rsltflag_indeciprint, "diagnm", "string", "" );
- ds_hidden_rsltflag_indeciprint.setColumn( 0, "diagnm", ds_temp.getColumn(0, "diagnm"));
- //공통코드 P0045에서 프린터 명칭과 트레이 호출 - 입퇴원결정서
- fGetPrintName();
- var print_name = sysf_getGlobalVariable("SPPAO00100_P0045_6_nm","p");
- var print_tray = sysf_getGlobalVariable("SPPAO00100_P0045_6_tray","p");
- //입퇴원결정서 프린터
- if(print_name != "false"){
- exeReportPreview("RPPMI01201", "XMLSTR", "", "", print_name, "", "", "", "", "true", "", "", print_tray, "", "", "", "", "", "", "", "");
- }
- // 자보환자안내문 출력
- if(ds_hidden_rsltflag_indeciprint.getColumn(0, "insukindcd") == "31" || ds_main_ptin.getColumn(0, "ptin_insukind") == "31") {
- //공통코드 P0045에서 프린터 명칭과 트레이 호출 - 자보환자안내문
- // submit("TRPMI01203");
- var oParam = {};
- oParam.id = "TRPMI01203";
- oParam.service = "ipatmngtapp.InRgst";
- oParam.method = "reqGetAutInsuInfo";
- oParam.inds = "";
- oParam.outds = "ds_=autinsuinfo";
- oParam.async = false;
- oParam.callback = "cf_TRPMI01203";
- tranf_submit(oParam);
- /*
- function cf_TRPMI01203(sSvcId, nErrorCode, sErrorMsg) {
- if(nErrorCode < 0) return;
- }
- function cf_TRPMI01203(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- arErrorCode.pop("TRPMI01203") > -1
- arErrorCode.pop("TRPMI01203") < 0
- */
- var print_name = sysf_getGlobalVariable("SPPAO00100_P0045_100_nm","p");
- var print_tray = sysf_getGlobalVariable("SPPAO00100_P0045_100_tray","p");
- //디폴트 프린터
- if(print_name != "false"){
- exeReportPreview("RPPMI01203", "XMLSTR", "", "", print_name, "", "", "", "", "true", "", "", print_tray, "", "", "2", "", "", "", "", "");
- }
- }
- sysf_setGlobalVariable("SPPAO00100_강제출력여부", "" ,"p");
- }
- // 서면서명체크 제어
- function setOCRType() {
- var ocrtype = ds_main_signinfo.getColumn(0, "ocrtype");
- // 전자서명 이외의 경우 버튼제어
- if (ocrtype != "E") {
- button1.enable = false;
- //button5.enable = false;
- button4.enable = false;
- //button6.enable = false;
- dsf_makeValue( ds_main_signinfo, "elctappsignyn1", "string", "");
- dsf_makeValue( ds_main_signinfo, "elctsignkey1", "string", "");
- dsf_makeValue( ds_main_signinfo, "elctsigncnts1", "string", "");
- dsf_makeValue( ds_main_signinfo, "elctappsignyn2", "string", "");
- dsf_makeValue( ds_main_signinfo, "elctsignkey2", "string", "");
- dsf_makeValue( ds_main_signinfo, "elctsigncnts2", "string", "");
- fsign_chk();
- fsign_Rely_chk();
- } else {
- button1.enable = true;
- button4.enable = true;
- }
- //model.refresh();
- }
- // 상급병실신청서OCR서식 재출력
- function fPrintRmsn() {
- var pid = ds_main_signinfo.getColumn(0, "pid");
- if (pid == null || pid == "") {
- sysf_messageBox("환자정보가 선택되지 않았습니다.", "E000");
- return;
- }
- // 구분에 맞춰 폼코드 처리(7:상급병실신청서)
- var formcd = ds_init_prncd_hardcd.lookupExpr("cdseqno == '7'", "hardcd");
- var orddd = ds_main_signinfo.getColumn(0, "indd");
- var cretno = ds_main_signinfo.getColumn(0, "cretno");
- var ordtype = ds_main_signinfo.getColumn(0, "ordtype");
- fPerPrintOCR(formcd, pid, orddd, cretno, ordtype, "");
- }
- ]]></Script>
|