123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359 |
- function fInit() {
- model.resetInstanceNode("/root/send/cond");
- model.resetInstanceNode("/root/send/agmtdesc");
- model.resetInstanceNode("/root/main/agmtlist");
- model.resetInstanceNode("/root/main/printinfo");
- model.resetInstanceNode("/root/main/ininfo");
- model.resetInstanceNode("/root/main/agmtcount");
- model.resetInstanceNode("/root/init");
- model.resetInstanceNode("/root/hidden");
- model.resetInstanceNode("/root/tmp");
-
- model.setValue("/root/send/cond/agmttype", 0); // 구분:전체
-
- model.setValue("/root/send/agmtdesc/ocrtype", "S"); // O:OCR, S:전자서명
- model.setValue("/root/send/agmtdesc/agmttype", "1");
- model.setValue("/root/send/agmtdesc/fromdd", getCurrentDate());
-
- var todd = getNewDate();
- todd = todd.getAddDate(364, "D");
- todd = getDateTime(todd, "D");
- model.setValue("/root/send/agmtdesc/todd", todd);
-
- cmb_type.disabled = false;
- combo1.disabled = false;
-
- model.refresh();
- }
- // OCRNO입력
- function fSetBcode() {
-
- setInputNodeCurText();
-
- var sOcrTagNo = model.getValue("/root/send/cond/ocrtagno");
-
- if (isNull(sOcrTagNo) || sOcrTagNo.length < 13) {
-
- //messageBox("OCR코드가 정상적으로 입력되지 않았습니다.", "C000");
-
- return false;
- }
-
- // 검색 실시
- fSearch();
- }
- /*일괄등록(마감)방식을 채택함으로 인해 자동등록은 하지 않음
- function fAutoRgst() {
-
- var pid = model.getValue("/root/main/ininfo/pid");
- var indd = model.getValue("/root/main/ininfo/indd");
- var agmttype = model.getValue("/root/main/ininfo/agmttype");
-
- // 자동신청 확인용 메세지 - 입원결정서 있는 경우
- if (messageBox(model.getValue("/root/send/agmtdesc/hngnm")
- + "(" + pid + ")의 "
- + "입원일자 : " + indd + "건을 "
- + "약정서 (" + model.getValue("/root/send/cond/ocrtagno").substr(0, 13)
- + ")에 등록하시겠습니까?\r\n\r\n"
- + "시작일자는 " + indd + "로 설정됩니다. "
- , "Q000") == '6') {
-
- model.setValue("/root/send/agmtdesc/fromdd", indd);
-
- model.makeValue("/root/send/agmtdesc/updateflag", "U");
- model.makeValue("/root/send/agmtdesc/formcd", fGetFromCd(model.getValue("/root/send/agmtdesc/agmttype")));
-
- if (submit("TXPMI03202")) {
-
- // 의무기록 연동이 되어 있지 않은 경우 연동실시
- if (model.getValue("/root/send/agmtdesc/emrif") == "N") {
-
- if (fOCRSave()) {
-
- // 연동 성공시 자동 닫기
- model.close();
- }
- }
- }
- }
- }
- */
- /**
- * fPrintAgmt 입원약정서 신규출력
- *
- * @param pid : 환자번호
- * @param orddd : 진료일자
- * @param orddeptcd : 진료과
- * @param orddrid : 진료의
- * @param agmttype : 약정서구분(1:일반약정서, 2:기간약정서)
- * @param rsrvyn : 입원결정서유무
- * */
- function fPrintAgmt(pid, orddd, orddeptcd, orddrid, agmttype, rsrvyn, roomnm, roomcnt, insukind, todd, cretno) {
-
- model.makeValue("/root/send/printcond/pid", pid);
- model.makeValue("/root/send/printcond/orddd", orddd);
- model.makeValue("/root/send/printcond/orddeptcd", orddeptcd);
- model.makeValue("/root/send/printcond/orddrid", orddrid);
- // model.makeValue("/root/send/printcond/formcd", formcd);
- model.makeValue("/root/send/printcond/agmttype", agmttype);
- model.makeValue("/root/send/printcond/rsrvyn", rsrvyn);
- model.makeValue("/root/send/printcond/ocrtype", "O"); // 서식종류(O:OCR, S:전자서명)
- model.setValue("/root/send/agmtdesc/ocrtype", "O"); // 자동연동 시 디폴트 처리(O:OCR, S:전자서명)
-
- // 입원약정서 저장 및 OCR출력정보 취득
- if (submit("TXPMI03203")) {
-
- var usernm = getUserName();
- var curdate = getCurrentDate();
- var curtm = getCurrentTime();
-
- model.makeValue("/root/main/printinfo/usernm", usernm);
- model.makeValue("/root/main/printinfo/curdate", curdate);
- model.makeValue("/root/main/printinfo/curtm", curtm);
-
- model.makeValue("/root/main/printinfo/roomnm", roomnm);
- model.makeValue("/root/main/printinfo/roomcnt", roomcnt);
- model.makeValue("/root/main/printinfo/insukind", insukind);
- model.makeValue("/root/main/printinfo/orddd", orddd);
- model.makeValue("/root/main/printinfo/fromdd", orddd);
- model.makeValue("/root/main/printinfo/todd", todd);
- model.makeValue("/root/main/printinfo/rsrvyn", rsrvyn);
-
- // 일반약정서
- if (agmttype == "1") {
- exeReportPreview("RPPMI03401","XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
-
- // 기간약정서
- } else {
- exeReportPreview("RPPMI03402","XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
- }
-
- // 원무에서 출력하는 경우, 자동연동기능 추가(입원결정시에는 제외)
- if (rsrvyn == "N") {
-
- // 연동기능 구현을 위한 파라미터 설정
- model.setValue("/root/send/agmtdesc/pid", pid);
- model.setValue("/root/send/agmtdesc/ocrtagno", model.getValue("/root/main/printinfo/ocrtagno"));
- model.setValue("/root/send/agmtdesc/agmttype", agmttype);
- model.setValue("/root/send/agmtdesc/indd", orddd);
-
- model.makeValue("/root/send/agmtdesc/emrif", "N");
- model.makeValue("/root/send/agmtdesc/cretno", cretno);
- model.makeValue("/root/send/agmtdesc/orddeptcd", orddeptcd);
- model.makeValue("/root/send/agmtdesc/medispclid", orddrid);
- model.makeValue("/root/send/agmtdesc/ocrtype", "O"); // 원무 출력 시 자동연동 처리용 ocrtype
-
- fOCRSave();
- }
- }
- }
- function fOCRSave() {
-
- // 연동대상검증 : 대상이 선택되지 않았거나, 이미 연동이 완료된 데이터는 제외시킴
- if (isNull(model.getValue("/root/send/agmtdesc/pid"))) {
-
- messageBox("대상이 선택되지 않았습니다.", "C000");
-
- return;
- }
-
- if (model.getValue("/root/send/agmtdesc/emrif") == "Y") {
-
- messageBox("이미 연동이 완료된 데이터입니다.", "C000");
-
- return;
- }
-
- // 연동은 OCR 서식만 가능(전자서명 불가)
- if (model.getValue("/root/send/agmtdesc/ocrtype") != "O") {
-
- messageBox("전사서명서식은 연동 불가능합니다. (자동연동)", "C000");
-
- return ;
- }
-
- // formcd 설정
- model.makeValue("/root/send/agmtdesc/formcd", fGetFromCd(model.getValue("/root/send/agmtdesc/agmttype")));
-
- // 의무기록 연동위한 데이터 조회
- submit("TRPMI03205");
-
- // 파라미터 세팅
- var ocrtagno = model.getValue("/root/main/ocrinfo/ocrtagno");
- var pid = model.getValue("/root/main/ocrinfo/pid");
- var orddd = model.getValue("/root/main/ocrinfo/orddd");
- var cretno = model.getValue("/root/main/ocrinfo/cretno");
- var ordtype = model.getValue("/root/main/ocrinfo/ordtype");
- var orddeptcd = model.getValue("/root/main/ocrinfo/orddeptcd");
- var orddrid = model.getValue("/root/main/ocrinfo/orddrid");
- var formcd = model.getValue("/root/main/ocrinfo/formcd");
- var formfromdt = model.getValue("/root/main/ocrinfo/formfromdt");
- var pagecnt = model.getValue("/root/main/ocrinfo/pagecnt");
-
- if(!fSaveOCRIF(ocrtagno, pid, orddd, cretno, ordtype, orddeptcd, orddrid, formcd, formfromdt, "", "", pagecnt)){
-
- messageBox("통합기록 연동중 오류가 발생하였습니다. ","C999");
-
- return false;
- } else {
-
- // 입원약정서 관리화면에서 호출한 경우만 재조회(입원등록 IF에서는 호출 제외)
- if (cretno == null) {
-
- messageBox("정상적으로 등록되었습니다. ","I000");
-
- fSearch();
-
- // 다음데이터 입력을 위한 포커스 이동
- model.setFocus("ipt_ocrtagnoif");
- }
-
- return true;
- }
-
- }
- function fGetFromCd(agmttype) {
-
- var formcd;
- var nodeCnt = getNodesetCount("/root/init/prncd/hardcd");
-
- // 구분에 맞춰 폼코드 처리(1:일반약정서 / 2:기간약정서 / 3:개인정보이용동의서)
- for (i = 1; i <= nodeCnt; i++) {
- if (agmttype == model.getValue("/root/init/prncd/hardcd[" + i + "]/cdseqno")) {
-
- formcd = model.getValue("/root/init/prncd/hardcd[" + i + "]/hardcd");
- break;
- }
- }
-
- return formcd;
- }
- function fSearch() {
-
- // 조회
- if (submit("TRPMI03201")) {
-
- model.resetInstanceNode("/root/send/agmtdesc");
- model.refresh();
- }
- }
- // ivr용 - 입원일자에 유효한 입원약정서 유무 조회(자동출력의 기준으로 사용)
- function fReqGetInAgmtCount(pid, indd, agmttype) {
-
- model.setValue("/root/send/cond/pid", pid);
- model.setValue("/root/send/cond/fromdd", indd);
- model.setValue("/root/send/cond/agmttype", agmttype);
-
- // 조회
- if (submit("TRPMI03204")) {
-
- if (parseInt(model.getValue("/root/main/agmtcount/cnt")) > 0) {
-
- return true;
- } else {
- return false;
- }
- }
- }
- function fRePrintOcr() {
-
- if (isNull(model.getValue("/root/send/agmtdesc/ocrtagno"))) {
-
- messageBox("약정서 정보를 선택해주십시요.", "C000");
- return;
- }
-
- if (model.getValue("/root/send/agmtdesc/scanyn") != "Y") {
-
- model.makeValue("/root/main/printinfo/instcd", model.getValue("/root/send/agmtdesc/instcd"));
- model.makeValue("/root/main/printinfo/ocrtagno", model.getValue("/root/send/agmtdesc/ocrtagno"));
- model.makeValue("/root/main/printinfo/pid", model.getValue("/root/send/agmtdesc/pid"));
- model.makeValue("/root/main/printinfo/hngnm", model.getValue("/root/send/agmtdesc/hngnm"));
- model.makeValue("/root/main/printinfo/rrgstno1", model.getValue("/root/send/agmtdesc/rrgstno").substr(0,6));
- model.makeValue("/root/main/printinfo/rrgstno2", model.getValue("/root/send/agmtdesc/rrgstno").substr(6,13));
- model.makeValue("/root/main/printinfo/address", model.getValue("/root/send/agmtdesc/address"));
- model.makeValue("/root/main/printinfo/hometel", model.getValue("/root/send/agmtdesc/hometel"));
- model.makeValue("/root/main/printinfo/mpphontel", model.getValue("/root/send/agmtdesc/mpphontel"));
- model.makeValue("/root/main/printinfo/hospnm", model.getValue("/root/send/agmtdesc/hospnm"));
- model.makeValue("/root/main/printinfo/ordcentnm", model.getValue("/root/send/agmtdesc/ordcentnm"));
- model.makeValue("/root/main/printinfo/orddeptnm", model.getValue("/root/send/agmtdesc/orddeptnm"));
-
- model.makeValue("/root/main/printinfo/usernm", getUserName());
- model.makeValue("/root/main/printinfo/curdate", getCurrentDate());
- model.makeValue("/root/main/printinfo/curtm", getCurrentTime());
-
- model.makeValue("/root/main/printinfo/roomnm", model.getValue("/root/send/agmtdesc/roomnm"));
- model.makeValue("/root/main/printinfo/roomcnt", "");
- model.makeValue("/root/main/printinfo/insukind", model.getValue("/root/send/agmtdesc/insukind"));
- model.makeValue("/root/main/printinfo/orddd", model.getValue("/root/send/agmtdesc/indd"));
- model.makeValue("/root/main/printinfo/fromdd", model.getValue("/root/send/agmtdesc/fromdd"));
- model.makeValue("/root/main/printinfo/todd", model.getValue("/root/send/agmtdesc/todd"));
-
- // 일반약정서
- if (model.getValue("/root/send/agmtdesc/agmttype") == "1") {
- exeReportPreview("RPPMI03401","XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
-
- // 기간약정서
- } else {
- exeReportPreview("RPPMI03402","XMLSTR" , "" , "" , "true" , "", "", "", "", "true");
- }
-
- } else {
-
- messageBox("스캔이 완료되었습니다. 재출력은 OCR반납화면에서 하시기 바랍니다.", "C000");
-
- return;
-
- /*
- // 혹시 의무기록 스캔 이후의 약정서를 출력해야 할 경우 아래의 처리 태우면 됨
- model.resetInstanceNode("/root/send/iemr");
- model.makeValue("/root/send/iemr/ocrcode", model.getValue("/root/send/agmtdesc/ocrtagno"));
-
- if((window.children.item("imgemrviewer") == null)
- && (model.getValue("/root/send/iemr/ocrcode") != "")) {
- window.load("../../../emr/imgemrweb/xrw/SSMRC03100.xrw", "modeless", "imgemrviewer", "", "/root/send/iemr", "/root/hidden/temp");
- window.children.item("imgemrviewer").document.title = "Image EMR Viewer";
- }
- */
- }
- }
- // 입원약정서 재출력 - 입원등록화면에서 재출력할 경우 사용
- function rePrintAgmtPid(pid, indd) {
-
- // 초기화
- fInit();
-
- model.setValue("/root/send/cond/pid", pid);
- model.setValue("/root/send/cond/indd", indd);
- model.setValue("/root/send/cond/agmttype", "1"); // 일반약정서
-
- // 약정서 조회
- submit("TRPMI03201");
-
- // 약정서 데이터 설정
- model.copyNode("/root/send/agmtdesc", "/root/main/agmtlist[1]");
-
- // 약정서가 없는 경우 관리화면으로 유도
- if (isNull(model.getValue("/root/send/agmtdesc/ocrtagno"))) {
-
- messageBox("입원약정서가 재출력에 문제가 발생했습니다. 입원약정서관리화면에서 확인하세요.", "C000");
- return;
- }
-
- // 일반약정서 출력용
- model.setValue("/root/send/agmtdesc/agmttype", "1");
-
- // 약정서 재출력
- fRePrintOcr();
- }
|