123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : K-u
- * Job Name :
- * File Name : HIRAEF.xjs
- * Creator : 손병은
- * Make Date : 2019-04-11
- *
- * Description :
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- *
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- var GUID = "{B377BB36-6EF3-4C24-943B-74D8F3FC7FA5}";
- var actDocument = new ActiveX("HIRA.EformEntry.Model.Document");
- actDocument.progid = GUID;
- /****************************************************************************************
- * Argument :
- * Description : Document 라이브러리를 생성한다.
- ****************************************************************************************/
- function eff_createDocLib()
- {
- var lib;
- // 심평원모듈 초기화
- try{
- lib = actDocument.createObject(GUID);
- }catch(e){
- sysf_messageBox("심평원 e-Form Agent 를 다운받아 설치 후 이용바랍니다.\n( https://ef.hira.or.kr/efweb/index.do )","E");
- trace(e.message);
- return ;
- }
-
- return lib;
- }
- /****************************************************************************************
- * Argument :
- * Description : Document를 최종제출한다.
- ****************************************************************************************/
- function eff_updateTempDocumentStatus(param, doc_no)
- {
- //Document 클래스 선언
- var doc = eff_createDocLib();
-
- var objMetaDs = eval(param.metaDs);
- var objResultDs = eval(param.resultDs);
-
- var ykiho = objMetaDs.getColumn(0, "ykiho");
-
- objResultDs.setColumn(0, "doc_no", doc_no);
-
- //임시 문서 상태변경
- var response = doc.updateTmpDocStat(ykiho, doc_no);
- if (response.Result == 1)
- {
- objResultDs.setColumn(0, "result","Y");
- objResultDs.setColumn(0, "doc_status","E");
- objResultDs.setColumn(0, "doc_no", response.GetDataResult("DOC_NO"));
- }
- else
- {
- objResultDs.setColumn(0, "result","N");
- objResultDs.setColumn(0, "errmessage",response.ErrorMessage);
- objResultDs.setColumn(0, "doc_status","T");
-
- }
-
- objResultDs.setColumn(0, "outjson", response.ToJson());
-
- }
- /****************************************************************************************
- * Argument :
- * Description : 임시Document를 삭제한다.
- ****************************************************************************************/
- function eff_deleteTempDocument(param, doc_no)
- {
- //Document 클래스 선언
- var doc = eff_createDocLib();
-
- var objMetaDs = eval(param.metaDs);
- var objResultDs = eval(param.resultDs);
-
- var ykiho = objMetaDs.getColumn(0, "ykiho");
-
- objResultDs.setColumn(0, "doc_no", doc_no);
-
- //임시 문서 상태변경
- var response = doc.deleteTmpDoc(ykiho, doc_no);
- if (response.Result == 1)
- {
- objResultDs.setColumn(0, "result","Y");
- objResultDs.setColumn(0, "doc_status","D");
- objResultDs.setColumn(0, "doc_no", response.GetDataResult("DOC_NO"));
- }
- else
- {
- objResultDs.setColumn(0, "result","N");
- objResultDs.setColumn(0, "errmessage",response.ErrorMessage);
- objResultDs.setColumn(0, "doc_status","T");
-
- }
-
- objResultDs.setColumn(0, "outjson", response.ToJson());
- }
- /****************************************************************************************
- * Argument :
- * Description : Document를 생성한다.
- ****************************************************************************************/
- function eff_createDocument(param, doc_no)
- {
- //Document 클래스 선언
- var doc = eff_createDocLib();
-
- var objMetaDs = eval(param.metaDs);
- var objElementDs = eval(param.elementDs);
- var strGridDs = param.gridDs;
- var objResultDs = eval(param.resultDs);
-
- for(var i=0; i<objMetaDs.getColCount(); i++){
- var colnm = objMetaDs.getColumnInfo(i).name;
- var colval = utlf_transNullToEmpty(objMetaDs.getColumn(0, colnm));
- doc.Metadata.Add(colnm.toUpperCase(), colval);
- //trace('doc.Metadata.Add("'+colnm.toUpperCase()+'", "'+colval+'");');
- }
-
- if(!utlf_isNull(doc_no)){
- doc.Metadata.Add("DOC_NO", doc_no);
- }
-
- for(var i=0; i<objElementDs.getColCount(); i++){
- var colnm = objElementDs.getColumnInfo(i).name;
- var colval = utlf_transNullToEmpty(objElementDs.getColumn(0, colnm));
- doc.Elements.Add(colnm.toUpperCase(), colval);
- //trace('doc.Elements.Add("'+colnm.toUpperCase()+'", "'+colval+'");');
- }
-
- if(strGridDs != null){
- var sInTableDsArr = strGridDs.split(" ");
- for(var i=0; i<sInTableDsArr.length; i++){
- var arr = sInTableDsArr[i].split(":");
- var key = arr[0];
- var objTableDs = eval(arr[1]);
-
- // 비어있으면 수행하지 않음
- if(objTableDs == undefined) continue;
-
- for(var j=0; j<objTableDs.getColCount(); j++){
- doc.Tables.AddColumn(key, objTableDs.getColumnInfo(j).name.toUpperCase());
- //trace('doc.Tables.AddColumn("'+key+'", "'+ objTableDs.getColumnInfo(j).name.toUpperCase() +'");');
- }
-
-
- for(var j=0; j<objTableDs.rowcount; j++){
- doc.Tables.AddRow(key);
- //trace('doc.Tables.AddRow("'+key+'");');
- for(var k=0; k<objTableDs.getColCount(); k++){
- var colNm = objTableDs.getColumnInfo(k).name;
- var colVal = utlf_transNullToEmpty(objTableDs.getColumn(j, colNm));
- doc.Tables.SetRowDataByColName(key, j, colNm.toUpperCase(), colVal);
- //trace('doc.Tables.SetRowDataByColName("'+key+'", '+j+', "'+colNm.toUpperCase()+'", "'+colVal+'");');
- }
-
- }
-
- }
- }
- //doc.checkDocs();
- //서식 추가
- doc.addDoc();
- //서식 기재형식 점검 및 Json파싱
- var jsonResponses = doc.ToJson();
-
- var strRequest = "";
- var strResponse = "";
- var strResponseJson = "";
-
- if (jsonResponses.Result == 1)
- {
- for (var i = 0; i < jsonResponses.Count; i++)
- {
- var jsonResponse = jsonResponses.GetJsonConvertResponse(i);
-
- strRequest = strRequest + jsonResponse.Json + "\r\n";
- }
-
- objResultDs.setColumn(0, "result","");
- objResultDs.setColumn(0, "injson",strRequest);
-
- //trace("입력:"+strRequest);
-
- }
- else
- {
-
- if (jsonResponses.Count < 1)
- {
- strResponse = jsonResponses.ErrorMessage;
- }
- else
- {
- for (var i = 0; i < jsonResponses.Count; i++)
- {
- var jsonResponse = jsonResponses.GetJsonConvertResponse(i);
-
- strResponse = jsonResponse.ErrorMessage;
- }
- }
-
- objResultDs.setColumn(0, "result","N");
- objResultDs.setColumn(0, "errmessage",strResponse);
-
- trace("[생성오류] 아래 기재형식 확인이 필요합니다.\n\n" + strResponse);
-
- return;
- }
-
- return doc;
- }
- /******************************************************************************************************
- * Argument : gubun ( E : 서식제출, T : 임시문서제출)
- * doc_no ( 문서번호 )
- * Result : 결과값. 서식하나씩만 처리하므로 결과값도 한 서식에 대한 결과만 저장됨.
- * Description : 전송요청을 처리한다.
- ******************************************************************************************************/
- function eff_trans(param, gubun, doc_no, doc_status)
- {
- if(doc_status == "E") return;
-
- var objResultDs = eval(param.resultDs);
- objResultDs.clearData();
- objResultDs.addRow();
- objResultDs.setColumn(0, "doc_status",gubun);
- objResultDs.setColumn(0, "doc_no",doc_no);
-
- // 임시저장된 문서 최종제출 시에는 상태변경 전송한다.
- if(gubun == "E" && doc_status == "T"){
-
- eff_updateTempDocumentStatus(param, doc_no);
- return;
- }
-
- // 임시저장된 문서 삭제 시
- if(gubun == "D" && doc_status == "T"){
- eff_deleteTempDocument(param, doc_no);
- return;
- }
-
- // document 생성
- var doc = eff_createDocument(param, doc_no);
- if(doc == null) return;
- //createDoc : 문서 제출, createTmpDoc : 임시 문서 제출
- var responses = null;
-
-
- for (var i = 0; i < doc.Metadata.Count; i++)
- {
- trace("###"+doc.Metadata.GetKeyByIndex(i) + " : " + doc.Metadata.GetValueByIndex(i));
- }
-
- if(gubun == "E"){
- responses = doc.createDoc();
-
- }else if(gubun == "T"){
-
- if(doc_status == "T" && !utlf_isNull(doc_no)){
- responses = doc.updateTmpDoc();
- }else{
- responses = doc.createTmpDoc();
- }
-
- }
-
- var strRequest = "";
- var strResponse = "";
- var strResponseJson = "";
- var strDocNo = "";
-
- if (responses.Result == 1)
- {
- for (var i = 0; i < responses.Count; i++)
- {
- var response = responses.GetMasterResponse(i);
-
- strResponse = strResponse + "DOC_NO : " + response.GetDataResult("DOC_NO") + "\r\n"
- + "SUPL_DATA_FOM_CD : " + response.GetDataResult("SUPL_DATA_FOM_CD") + "\r\n"
- + "RCV_NO : " + response.GetDataResult("RCV_NO") + "\r\n"
- + "SP_SNO : " + response.GetDataResult("SP_SNO") + "\r\n"
- + "HOSP_RNO : " + response.GetDataResult("HOSP_RNO") + "\r\n"
- + "PAT_NM : " + response.GetDataResult("PAT_NM") + "\r\n"
- + "INSUP_TP_CD : " + response.GetDataResult("INSUP_TP_CD") + "\r\n"
- + "DMD_NO : " + response.GetDataResult("DMD_NO") + "\r\n"
- + "DOC_NO : " + response.GetDataResult("DOC_NO") + "\r\n"
- ;
-
- strResponseJson = strResponseJson + response.ToJson();
- strDocNo = response.GetDataResult("DOC_NO")
-
- }
-
- objResultDs.setColumn(0, "result","Y");
- objResultDs.setColumn(0, "outjson",strResponseJson);
- objResultDs.setColumn(0, "doc_no",strDocNo);
- }
- else
- {
- if (responses.Count < 1)
- {
- strResponse = strResponse + responses.ErrorMessage;
- strResponseJson = strResponseJson + responses.ToJson();
- }
- else
- {
- for (var i = 0; i < responses.Count; i++)
- {
- var response = responses.GetMasterResponse(i);
-
- strResponse = strResponse + response.ErrorMessage;
- strResponseJson = strResponseJson + responses.ToJson();
- }
- }
-
- objResultDs.setColumn(0, "result","N");
- objResultDs.setColumn(0, "errmessage",strResponse);
- objResultDs.setColumn(0, "outjson",strResponseJson);
-
- trace("[전송오류] 아래 기재형식 확인이 필요합니다.\n\n" + strResponse);
- }
-
- trace("출력:"+strResponse);
- trace("출력(Json):"+strResponseJson);
-
-
-
- }
- ]]></Script>
|