SPASI09200_질병관리본부병원체검사결과신고.xfdl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMD99200" position="absolute 0 0 1150 793" titletext="질병관리본부 병원체검사결과 신고" oninit="SPMMD99200_oninit" scrollbars="none" onload="SPMMD99200_onload">
  5. <Layouts>
  6. <Layout>
  7. <WebBrowser id="WebBrowser00" text="WebBrowser00" position="absolute 0 0 1150 785" anchor="default" taborder="2" useautobitmapcache="1" onloadcompleted="WebBrowser00_onloadcompleted"/>
  8. </Layout>
  9. </Layouts>
  10. <Objects>
  11. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  12. <ColumnInfo>
  13. <Column id="opentype" type="STRING" size="256"/>
  14. <Column id="pid" type="STRING" size="256"/>
  15. <Column id="wrtedt" type="STRING" size="256"/>
  16. <Column id="seqno" type="STRING" size="256"/>
  17. <Column id="orddd" type="STRING" size="256"/>
  18. <Column id="cretno" type="STRING" size="256"/>
  19. <Column id="ordtype" type="STRING" size="256"/>
  20. <Column id="lglydiscd" type="STRING" size="256"/>
  21. </ColumnInfo>
  22. <Rows>
  23. <Row/>
  24. </Rows>
  25. </Dataset>
  26. <Dataset id="ds_cdcpathogeninfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  27. <ColumnInfo>
  28. <Column id="state" type="STRING" size="256"/>
  29. <Column id="instcd" type="STRING" size="256"/>
  30. <Column id="ioeflag" type="STRING" size="256"/>
  31. <Column id="pid" type="STRING" size="256"/>
  32. <Column id="orddd" type="STRING" size="256"/>
  33. <Column id="cretno" type="STRING" size="256"/>
  34. <Column id="bcno" type="STRING" size="256"/>
  35. <Column id="tclscd" type="STRING" size="256"/>
  36. <Column id="spccd" type="STRING" size="256"/>
  37. <Column id="testcd" type="STRING" size="256"/>
  38. <Column id="rsltseq" type="STRING" size="256"/>
  39. <Column id="ogcr" type="STRING" size="256"/>
  40. <Column id="patnt_nm" type="STRING" size="256"/>
  41. <Column id="patnt_sexdstn_cd" type="STRING" size="256"/>
  42. <Column id="patnt_lifyea_md" type="STRING" size="256"/>
  43. <Column id="patnt_regist_no" type="STRING" size="256"/>
  44. <Column id="kwa_ward_nm" type="STRING" size="256"/>
  45. <Column id="spm_ty_list" type="STRING" size="256"/>
  46. <Column id="spm_ty_etc" type="STRING" size="256"/>
  47. <Column id="inspct_mth_ty_list" type="STRING" size="256"/>
  48. <Column id="inspct_mth_ty_etc" type="STRING" size="256"/>
  49. <Column id="icdgrp_cd" type="STRING" size="256"/>
  50. <Column id="icd_cd" type="STRING" size="256"/>
  51. <Column id="pthgogan_cd" type="STRING" size="256"/>
  52. <Column id="reqest_de" type="STRING" size="256"/>
  53. <Column id="dgnss_de" type="STRING" size="256"/>
  54. <Column id="rm_info" type="STRING" size="256"/>
  55. <Column id="reqestinstt_charger_nm" type="STRING" size="256"/>
  56. <Column id="inspctinstt_charger_nm" type="STRING" size="256"/>
  57. <Column id="hsptl_swbser" type="STRING" size="256"/>
  58. <Column id="hsptl_swknd" type="STRING" size="256"/>
  59. <Column id="dplct_at" type="STRING" size="256"/>
  60. <Column id="rspns_mssage_ty" type="STRING" size="256"/>
  61. </ColumnInfo>
  62. <Rows>
  63. <Row/>
  64. </Rows>
  65. </Dataset>
  66. <Dataset id="ds_main_paminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  67. </Objects>
  68. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  69. * System Name :
  70. * Job Name :
  71. * Creator :
  72. * Make Date : 2017-01-19
  73. * Description :
  74. *---------------------------------------------------------------------------------------
  75. * Modify Date Modifier Modify Description
  76. *---------------------------------------------------------------------------------------
  77. * 2015-05-01 Live Converter TF->XP
  78. *
  79. *---------------------------------------------------------------------------------------
  80. ****************************************************************************************/
  81. include "com_commonxp::comm_main.xjs";
  82. include "com_commodulexp::SSZFM00901.xjs";
  83. function SPMMD99200_oninit(obj:Form, e:InitEventInfo)
  84. {
  85. frmf_initForm(obj); // 화면공통
  86. }
  87. function SPMMD99200_onload(obj:Form, e:LoadEventInfo)
  88. {
  89. var navUrl = "https://is.cdc.go.kr/tids/anids/pthgogan/reportAutoForm.vp?"; // 2017.08.14 병원체검사결과 신고 링크 주소
  90. trace("navUrl(병원체) :" + navUrl);
  91. ds_cdcpathogeninfo.setColumn(0, "state", opener.frmf_getParameter("state")); // 상태(R:신고, S:저장)
  92. ds_cdcpathogeninfo.setColumn(0, "instcd", opener.frmf_getParameter("instcd")); // 기관기호
  93. ds_cdcpathogeninfo.setColumn(0, "ioeflag", opener.frmf_getParameter("ioeflag")); // 입원/외래
  94. ds_cdcpathogeninfo.setColumn(0, "pid", opener.frmf_getParameter("pid")); // 환자번호
  95. ds_cdcpathogeninfo.setColumn(0, "orddd", opener.frmf_getParameter("orddd")); // 진료일자
  96. ds_cdcpathogeninfo.setColumn(0, "cretno", opener.frmf_getParameter("cretno")); // 접수번호
  97. ds_cdcpathogeninfo.setColumn(0, "bcno", opener.frmf_getParameter("bcno")); // 바코드번호
  98. ds_cdcpathogeninfo.setColumn(0, "tclscd", opener.frmf_getParameter("tclscd")); // 바코드번호
  99. ds_cdcpathogeninfo.setColumn(0, "spccd", opener.frmf_getParameter("spccd")); // 바코드번호
  100. ds_cdcpathogeninfo.setColumn(0, "testcd", opener.frmf_getParameter("testcd")); // 바코드번호
  101. ds_cdcpathogeninfo.setColumn(0, "rsltseq", opener.frmf_getParameter("rsltseq")); // 바코드번호
  102. ds_cdcpathogeninfo.setColumn(0, "ogcr", opener.frmf_getParameter("ogcr")); // 인증서
  103. ds_cdcpathogeninfo.setColumn(0, "patnt_nm", opener.frmf_getParameter("patnt_nm")); // 환자명
  104. ds_cdcpathogeninfo.setColumn(0, "patnt_sexdstn_cd", opener.frmf_getParameter("patnt_sexdstn_cd")); // 성별
  105. ds_cdcpathogeninfo.setColumn(0, "patnt_lifyea_md", opener.frmf_getParameter("patnt_lifyea_md")); // 환자_생년_월일
  106. ds_cdcpathogeninfo.setColumn(0, "patnt_regist_no", opener.frmf_getParameter("patnt_regist_no")); // 환자_등록_번호
  107. ds_cdcpathogeninfo.setColumn(0, "kwa_ward_nm", opener.frmf_getParameter("kwa_ward_nm")); // 과_병동_명
  108. ds_cdcpathogeninfo.setColumn(0, "spm_ty_list", opener.frmf_getParameter("spm_ty_list")); // 검체_유형_리스트
  109. ds_cdcpathogeninfo.setColumn(0, "spm_ty_etc", opener.frmf_getParameter("spm_ty_etc")); // 검체_유형_기타
  110. ds_cdcpathogeninfo.setColumn(0, "inspct_mth_ty_list", opener.frmf_getParameter("inspct_mth_ty_list")); // 검사_방법_유형_리스트
  111. ds_cdcpathogeninfo.setColumn(0, "inspct_mth_ty_etc", opener.frmf_getParameter("inspct_mth_ty_etc")); // 검사방법기타
  112. ds_cdcpathogeninfo.setColumn(0, "icdgrp_cd", opener.frmf_getParameter("icdgrp_cd")); // 감염군코드
  113. ds_cdcpathogeninfo.setColumn(0, "icd_cd", opener.frmf_getParameter("icd_cd")); // 감염병코드
  114. ds_cdcpathogeninfo.setColumn(0, "pthgogan_cd", opener.frmf_getParameter("pthgogan_cd")); // 병원체코드
  115. ds_cdcpathogeninfo.setColumn(0, "reqest_de", opener.frmf_getParameter("reqest_de")); // 병원체검사요청의뢰일자 (YYYYMMDD)
  116. ds_cdcpathogeninfo.setColumn(0, "dgnss_de", opener.frmf_getParameter("dgnss_de")); // 병원체검사결과진단일자 (YYYYMMDD)
  117. ds_cdcpathogeninfo.setColumn(0, "rm_info", opener.frmf_getParameter("rm_info")); // 특이사항 기술
  118. ds_cdcpathogeninfo.setColumn(0, "reqestinstt_charger_nm", opener.frmf_getParameter("reqestinstt_charger_nm")); // 담당자 또는 주치의성명 20자리이내)
  119. ds_cdcpathogeninfo.setColumn(0, "inspctinstt_charger_nm", opener.frmf_getParameter("inspctinstt_charger_nm")); // 진단의or검사자성명 20자리이내
  120. ds_cdcpathogeninfo.setColumn(0, "hsptl_swbser", opener.frmf_getParameter("hsptl_swbser")); // 병원_소프트웨어개발사(사업자)
  121. ds_cdcpathogeninfo.setColumn(0, "hsptl_swknd", opener.frmf_getParameter("hsptl_swknd")); // 병원_소프트웨어종류(버전)
  122. ds_cdcpathogeninfo.setColumn(0, "dplct_at", opener.frmf_getParameter("dplct_at")); // 중복_여부
  123. ds_cdcpathogeninfo.setColumn(0, "rspns_mssage_ty", opener.frmf_getParameter("rspns_mssage_ty")); // 응답_메시지_유형
  124. if(utlf_isNull(ds_cdcpathogeninfo.getColumn(0, "patnt_regist_no")) ) {
  125. sysf_messageBox( "정상적인 화면 호출이 아닙니다. 전산실에 문의 하세요.", "E001");
  126. return;
  127. }
  128. if ( ds_cdcpathogeninfo.rowcount > 0 ) {
  129. navUrl = navUrl + "&ogcr=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"ogcr"))); // 사용자(기관) 인증정보
  130. navUrl = navUrl + "&patnt_nm=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"patnt_nm"))); // 환자성명
  131. navUrl = navUrl + "&patnt_sexdstn_cd=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"patnt_sexdstn_cd"))); // 성별
  132. navUrl = navUrl + "&patnt_lifyea_md=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"patnt_lifyea_md"))); // 환자_생년_월일
  133. navUrl = navUrl + "&patnt_regist_no=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"patnt_regist_no"))); // 환자_등록_번호
  134. navUrl = navUrl + "&kwa_ward_nm=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"kwa_ward_nm"))); // 과_병동_명
  135. navUrl = navUrl + "&spm_ty_list=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"spm_ty_list"))); // 검체_유형_리스트
  136. navUrl = navUrl + "&spm_ty_etc=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"spm_ty_etc"))); // 검체_유형_기타
  137. navUrl = navUrl + "&inspct_mth_ty_list=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"inspct_mth_ty_list"))); // 검사_방법_유형_리스트
  138. navUrl = navUrl + "&inspct_mth_ty_etc=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"inspct_mth_ty_etc"))); // 검사방법기타
  139. navUrl = navUrl + "&icdgrp_cd=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"icdgrp_cd"))); // 감염군코드
  140. navUrl = navUrl + "&icd_cd=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"icd_cd"))); // 감염병코드
  141. navUrl = navUrl + "&pthgogan_cd=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"pthgogan_cd"))); // 병원체코드
  142. navUrl = navUrl + "&reqest_de=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"reqest_de"))); // 병원체검사요청의뢰일자 (YYYYMMDD)
  143. navUrl = navUrl + "&dgnss_de=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"dgnss_de"))); // 병원체검사결과진단일자 (YYYYMMDD)
  144. navUrl = navUrl + "&rm_info=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"rm_info"))); // 특이사항 기술
  145. navUrl = navUrl + "&reqestinstt_charger_nm=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"reqestinstt_charger_nm"))); // 담당자or주치의성명(20자리이내)
  146. navUrl = navUrl + "&inspctinstt_charger_nm=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"inspctinstt_charger_nm"))); // 진단의or검사자성명(20자리이내)
  147. navUrl = navUrl + "&hsptl_swbser=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"hsptl_swbser"))); // 병원소프트웨어개발사(사업자)
  148. navUrl = navUrl + "&hsptl_swknd=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"hsptl_swknd"))); // 병원소프트웨어종류(버전)
  149. navUrl = navUrl + "&dplct_at=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"dplct_at"))); // 중복여부
  150. navUrl = navUrl + "&rspns_mssage_ty=" + encodeURI(utlf_transNullToEmpty(ds_cdcpathogeninfo.getColumn(0,"rspns_mssage_ty"))); // 응답메시지유형
  151. } else {
  152. sysf_messageBox( "병원체 검사결과 신고서 정보를 조회 할수 없습니다. 전산실에 문의 하세요.", "E001");
  153. return;
  154. }
  155. //trace(navUrl);
  156. WebBrowser00.url = navUrl;
  157. }
  158. function WebBrowser00_onloadcompleted(obj:WebBrowser, e:WebLoadCompEventInfo)
  159. {
  160. if(e.id != "onloadcompleted") return; // onloadcompleted 일 때만 동작
  161. trace("e.url(병원체) :" + e.url);
  162. var sUrl = e.url.substr(0, e.url.indexOf("?", 1));
  163. trace("sUrl(병원체) :" + sUrl);
  164. var nIndex = e.url.indexOf("/indigo/PthgnRgstr");
  165. trace("nIndex(병원체) :" + nIndex);
  166. if(nIndex > 0) { // 등록후 결과 화면
  167. trace("(병원체)등록후 결과");
  168. WebBrowser00.visible = false;
  169. var sPreState = ds_cdcpathogeninfo.getColumn(0, "state"); // 이전 상태(R:신고, S:저장)
  170. var sPreDplctAt = ds_cdcpathogeninfo.getColumn(0, "dplct_at"); // 이전 중복_여부(0: 중복여부 테스트, 1: 신고정보 POST 요청 미 입력시 신고정보 POST 요청(1)처리)
  171. if(sPreState == "R" && sPreDplctAt == "0") { // 이미 신고된 항목을 중복테스트 로 요청 할경우 메세지 팝업 요청서:20170911005 2017.11.14 엄영만
  172. sysf_messageBox( "이미 신고된 내역 입니다. 수정 필요시 감염관리실로 연락 주세요.", "E999");
  173. this.close();
  174. }
  175. var objDom = obj.document.body;
  176. var sXml = objDom.innerText;
  177. sXml = sXml.replace("- <", " <");
  178. sXml = sXml.substr(sXml.indexOf("<root>", 1));
  179. //trace("sXml : " + sXml);
  180. var sParamObj = new Object();
  181. sParamObj.pathYN = 'N'; //dsvaluepath 컬럼 사용여부
  182. sParamObj.nullColumnYN = 'Y'; //xml 노드가 빈값일 경우 dataset 컬럼 생성 여부
  183. var succYn = lf_convertXmlToDs(sXml, sParamObj);
  184. if(succYn != "success") {
  185. sysf_messageBox( "신고후 처리중 오류가 발생했습니다. 전산실에 문의 하세요.", "E999");
  186. return;
  187. }
  188. var sCode = ds_data_result.getColumn(0, "code"); // 결과코드
  189. var sDplct_At = ds_data_parameters.getColumn(0, "dplct_at"); // 중복_여부(0: 중복여부 테스트, 1: 신고정보 POST 요청 미 입력시 신고정보 POST 요청(1)처리)
  190. var sStats = "";
  191. if( sDplct_At == "1") { // Post요청
  192. if (sCode == "201") { // 등록 성공이면
  193. sStats = "R"; // 등록 상태
  194. } else {
  195. var sCode_Dt = ds_data_result.getColumn(0, "code_dt"); // 결과세부코드
  196. var sMessage = ds_data_result.getColumn(0, "message"); // 결과메세지
  197. sysf_messageBox( "질병관리본부 저장오류 [" +sCode_Dt + "] " + sMessage, "E999");
  198. return;
  199. }
  200. } else {
  201. sStats = "S"; // 저장 상태
  202. }
  203. ds_data_parameters.addColumn("state", "string");
  204. ds_data_parameters.addColumn("instcd", "string");
  205. ds_data_parameters.addColumn("ordtype", "string");
  206. ds_data_parameters.addColumn("pid", "string");
  207. ds_data_parameters.addColumn("orddd", "string");
  208. ds_data_parameters.addColumn("cretno", "string");
  209. ds_data_parameters.addColumn("bcno", "string");
  210. ds_data_parameters.addColumn("tclscd", "string");
  211. ds_data_parameters.addColumn("spccd", "string");
  212. ds_data_parameters.addColumn("testcd", "string");
  213. ds_data_parameters.addColumn("rsltseq", "string");
  214. ds_data_parameters.addColumn("rslt_cdc_yn", "string");
  215. ds_data_parameters.addColumn("rslt_code", "string");
  216. ds_data_parameters.addColumn("rslt_code_dt", "string");
  217. ds_data_parameters.addColumn("rslt_stat", "string");
  218. ds_data_parameters.addColumn("rslt_message", "string");
  219. ds_data_parameters.setColumn(0, "state", sStats);
  220. ds_data_parameters.setColumn(0, "instcd", ds_cdcpathogeninfo.getColumn(0, "instcd"));
  221. ds_data_parameters.setColumn(0, "ordtype", ds_cdcpathogeninfo.getColumn(0, "ioeflag"));
  222. ds_data_parameters.setColumn(0, "pid", ds_cdcpathogeninfo.getColumn(0, "pid"));
  223. ds_data_parameters.setColumn(0, "orddd", ds_cdcpathogeninfo.getColumn(0, "orddd"));
  224. ds_data_parameters.setColumn(0, "cretno", ds_cdcpathogeninfo.getColumn(0, "cretno"));
  225. ds_data_parameters.setColumn(0, "bcno", ds_cdcpathogeninfo.getColumn(0, "bcno"));
  226. ds_data_parameters.setColumn(0, "tclscd", ds_cdcpathogeninfo.getColumn(0, "tclscd"));
  227. ds_data_parameters.setColumn(0, "spccd", ds_cdcpathogeninfo.getColumn(0, "spccd"));
  228. ds_data_parameters.setColumn(0, "testcd", ds_cdcpathogeninfo.getColumn(0, "testcd"));
  229. ds_data_parameters.setColumn(0, "rsltseq", ds_cdcpathogeninfo.getColumn(0, "rsltseq"));
  230. ds_data_parameters.setColumn(0, "rslt_cdc_yn", ds_data_result.getColumn(0, "cdc_yn"));
  231. ds_data_parameters.setColumn(0, "rslt_code", ds_data_result.getColumn(0, "code"));
  232. ds_data_parameters.setColumn(0, "rslt_code_dt", ds_data_result.getColumn(0, "code_dt"));
  233. ds_data_parameters.setColumn(0, "rslt_stat", ds_data_result.getColumn(0, "stat"));
  234. ds_data_parameters.setColumn(0, "rslt_message", ds_data_result.getColumn(0, "message"));
  235. trace("(병원체)서브밋 전");
  236. var oParam = {};
  237. oParam.id = "TXASI09201";
  238. oParam.service = "infcmngtapp.LglyDisMngt";
  239. oParam.method = "reqExeCdcPathogenInfo";
  240. oParam.inds = "req=ds_data_parameters";
  241. oParam.async = false;
  242. oParam.callback = "cf_TXASI09201";
  243. tranf_submit(oParam);
  244. trace("(병원체)서브밋 후");
  245. } else {
  246. nIndex = e.url.indexOf("/tids/anids/pthgogan/reportAutoForm");
  247. if(nIndex > 0) { // 등록 초기화면
  248. //trace("초기");
  249. return;
  250. } else {
  251. sysf_messageBox( "병원체 검사결과 신고서 작성에 실패(알수없는 화면 호출) 하였습니다. 전산실에 문의 하세요.", "E001");
  252. return;
  253. }
  254. }
  255. }
  256. function cf_TXASI09201(sSvcId, nErrorCode, sErrorMsg) {
  257. if(nErrorCode != 0) {
  258. sysf_messageBox("병원체검사결과 신고서 저장에 실패 하였습니다.", "E");
  259. } else {
  260. sysf_messageBox( "저장 되었습니다.", "I999");
  261. this.close();
  262. }
  263. }]]></Script>
  264. </Form>
  265. </FDL>