SMPIH99900_TEST.xfdl 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMPIH99900_TEST" classname="Form1" inheritanceid="" position="absolute 0 0 1024 768" titletext="심평원참고자료보고 샘플" onload="SMPIH99900_TEST_onload">
  5. <Layouts>
  6. <Layout width="1024" height="768">
  7. <Div id="div_sea_doclist" taborder="0" position="absolute 0 0 1020 117" class="div_SA" anchor="left top right">
  8. <Layouts>
  9. <Layout>
  10. <Button id="btn_search" taborder="1" text="조회" class="btn1" position="absolute 943 47 999 69" anchor="top right" onclick="div_sea_doclist_btn_search_onclick"/>
  11. </Layout>
  12. </Layouts>
  13. </Div>
  14. <Grid id="grd_list" taborder="1" useinputpanel="false" position="absolute 0 144 1020 756" binddataset="ds_doclist" autofittype="none" onlbuttonup="grd_list_onlbuttonup" selecttype="multirow" anchor="all">
  15. <Formats>
  16. <Format id="default">
  17. <Columns>
  18. <Column size="22"/>
  19. <Column size="64"/>
  20. <Column size="67"/>
  21. <Column size="64"/>
  22. <Column size="67"/>
  23. <Column size="110"/>
  24. <Column size="75"/>
  25. <Column size="75"/>
  26. <Column size="80"/>
  27. <Column size="80"/>
  28. <Column size="80"/>
  29. <Column size="80"/>
  30. <Column size="103"/>
  31. <Column size="95"/>
  32. <Column size="92"/>
  33. <Column size="80"/>
  34. <Column size="59"/>
  35. <Column size="164"/>
  36. <Column size="54"/>
  37. <Column size="486"/>
  38. <Column size="68"/>
  39. <Column size="111"/>
  40. </Columns>
  41. <Rows>
  42. <Row size="24" band="head"/>
  43. <Row size="24"/>
  44. </Rows>
  45. <Band id="head">
  46. <Cell displaytype="checkbox" edittype="checkbox"/>
  47. <Cell col="1" text="청구년월"/>
  48. <Cell col="2" text="청구차수"/>
  49. <Cell col="3" text="등록번호"/>
  50. <Cell col="4" text="환자명"/>
  51. <Cell col="5" text="기록번호"/>
  52. <Cell col="6" text="처방일자"/>
  53. <Cell col="7" text="처방키"/>
  54. <Cell col="8" displaytype="normal" text="서식종류"/>
  55. <Cell col="9" displaytype="normal" text="청구번호"/>
  56. <Cell col="10" displaytype="normal" text="접수번호"/>
  57. <Cell col="11" displaytype="normal" text="접수년도"/>
  58. <Cell col="12" displaytype="normal" text="청구서일련번호"/>
  59. <Cell col="13" displaytype="normal" text="명세서일련번호"/>
  60. <Cell col="14" displaytype="normal" text="보험구분"/>
  61. <Cell col="15" displaytype="normal" text="업무구분"/>
  62. <Cell col="16" text="문서상태"/>
  63. <Cell col="17" text="문서번호"/>
  64. <Cell col="18" text="전송상태"/>
  65. <Cell col="19" text="에러메시지"/>
  66. <Cell col="20" text="전송자"/>
  67. <Cell col="21" text="전송일시"/>
  68. </Band>
  69. <Band id="body">
  70. <Cell displaytype="checkbox" edittype="checkbox" text="bind:chk"/>
  71. <Cell col="1" text="bind:clamym"/>
  72. <Cell col="2" text="bind:clamdg"/>
  73. <Cell col="3" text="bind:pid"/>
  74. <Cell col="4" text="bind:pat_nm"/>
  75. <Cell col="5" displaytype="text" text="bind:signno"/>
  76. <Cell col="6" text="bind:prcpdd"/>
  77. <Cell col="7" text="bind:execprcpuniqno"/>
  78. <Cell col="8" displaytype="normal" text="bind:supl_data_fom_cd"/>
  79. <Cell col="9" displaytype="normal" text="bind:dmd_no"/>
  80. <Cell col="10" displaytype="normal" text="bind:rcv_no"/>
  81. <Cell col="11" displaytype="normal" text="bind:rcv_yr"/>
  82. <Cell col="12" displaytype="normal" text="bind:bill_sno"/>
  83. <Cell col="13" displaytype="normal" text="bind:sp_sno"/>
  84. <Cell col="14" displaytype="normal" text="bind:insup_tp_cd"/>
  85. <Cell col="15" displaytype="normal" text="bind:fom_ref_biz_tp_cd"/>
  86. <Cell col="16" text="bind:doc_status"/>
  87. <Cell col="17" text="bind:doc_no"/>
  88. <Cell col="18" text="bind:result"/>
  89. <Cell col="19" text="bind:errmessage"/>
  90. <Cell col="20" text="bind:resultid"/>
  91. <Cell col="21" text="bind:resultdt"/>
  92. </Band>
  93. </Format>
  94. </Formats>
  95. </Grid>
  96. <Static id="caption1" text="서식 리스트" onclick="caption1_onclick" class="tit_2" position="absolute 0 122 102 141" anchor="left top"/>
  97. <Button id="btn_trans" taborder="2" text="전송" position="absolute 818 120 878 140" class="btn4" onclick="btn_trans_onclick" anchor="top right"/>
  98. <Button id="btn_tempsave" taborder="3" text="임시저장" class="btn4" position="absolute 882 120 956 140" anchor="top right" onclick="btn_tempsave_onclick"/>
  99. <Button id="btn_tempdel" taborder="4" text="삭제" class="btn4" position="absolute 959 120 1017 140" anchor="top right" onclick="btn_tempdel_onclick"/>
  100. </Layout>
  101. </Layouts>
  102. <Objects>
  103. <Dataset id="ds_attachfile" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  104. <ColumnInfo>
  105. <Column id="LOCAL_FILE_PTH" type="STRING" size="256"/>
  106. </ColumnInfo>
  107. <Rows>
  108. <Row>
  109. <Col id="LOCAL_FILE_PTH">C:/HIRA/HIRAIEA/basic_ICON.ico</Col>
  110. </Row>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_doclist" firefirstcount="0" firenextcount="0" useclientlayout="true" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="chk" type="STRING" size="256"/>
  116. <Column id="instcd" type="STRING" size="256"/>
  117. <Column id="clamym" type="STRING" size="256"/>
  118. <Column id="clamdg" type="STRING" size="256"/>
  119. <Column id="pid" type="STRING" size="256"/>
  120. <Column id="pidsn" type="STRING" size="256"/>
  121. <Column id="signno" type="STRING" size="256"/>
  122. <Column id="prcpdd" type="STRING" size="256"/>
  123. <Column id="execprcpuniqno" type="STRING" size="256"/>
  124. <Column id="supl_data_fom_cd" type="STRING" size="256"/>
  125. <Column id="fom_ver" type="STRING" size="256"/>
  126. <Column id="dmd_no" type="STRING" size="256"/>
  127. <Column id="rcv_no" type="STRING" size="256"/>
  128. <Column id="rcv_yr" type="STRING" size="256"/>
  129. <Column id="bill_sno" type="STRING" size="256"/>
  130. <Column id="sp_sno" type="STRING" size="256"/>
  131. <Column id="insup_tp_cd" type="STRING" size="256"/>
  132. <Column id="fom_ref_biz_tp_cd" type="STRING" size="256"/>
  133. <Column id="hosp_rno" type="STRING" size="256"/>
  134. <Column id="pat_nm" type="STRING" size="256"/>
  135. <Column id="doc_no" type="STRING" size="256"/>
  136. <Column id="doc_status" type="STRING" size="256"/>
  137. <Column id="result" type="STRING" size="256"/>
  138. <Column id="errmessage" type="STRING" size="256"/>
  139. <Column id="resultid" type="STRING" size="256"/>
  140. <Column id="resultdt" type="STRING" size="256"/>
  141. </ColumnInfo>
  142. </Dataset>
  143. <Dataset id="ds_send_docinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  144. <Dataset id="ds_send_doclist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  145. <ColumnInfo>
  146. <Column id="supl_data_fom_cd" type="STRING" size="256"/>
  147. </ColumnInfo>
  148. <Rows>
  149. <Row/>
  150. </Rows>
  151. </Dataset>
  152. <Dataset id="ds_COM_M" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  153. <ColumnInfo>
  154. <Column id="supl_data_fom_cd" type="STRING" size="256"/>
  155. <Column id="fom_ver" type="STRING" size="256"/>
  156. <Column id="ykiho" type="STRING" size="256"/>
  157. <Column id="dmd_no" type="STRING" size="256"/>
  158. <Column id="rcv_no" type="STRING" size="256"/>
  159. <Column id="rcv_yr" type="STRING" size="256"/>
  160. <Column id="bill_sno" type="STRING" size="256"/>
  161. <Column id="sp_sno" type="STRING" size="256"/>
  162. <Column id="insup_tp_cd" type="STRING" size="256"/>
  163. <Column id="fom_ref_biz_tp_cd" type="STRING" size="256"/>
  164. <Column id="hosp_rno" type="STRING" size="256"/>
  165. <Column id="pat_nm" type="STRING" size="256"/>
  166. <Column id="pat_jno" type="STRING" size="256"/>
  167. </ColumnInfo>
  168. </Dataset>
  169. <Dataset id="ds_gridlist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  170. <Dataset id="ds_COM_E" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  171. <Dataset id="ds_COM_RESULT" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  172. <ColumnInfo>
  173. <Column id="result" type="STRING" size="256"/>
  174. <Column id="errmessage" type="STRING" size="256"/>
  175. <Column id="injson" type="STRING" size="256"/>
  176. <Column id="outjson" type="STRING" size="256"/>
  177. <Column id="doc_no" type="STRING" size="256"/>
  178. <Column id="doc_status" type="STRING" size="256"/>
  179. </ColumnInfo>
  180. <Rows>
  181. <Row/>
  182. </Rows>
  183. </Dataset>
  184. </Objects>
  185. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs"; // 전체공통 스크립트
  186. include "pam_hiraefxp::HIRAEF.xjs"; // 심평원 자료전송 스크립트
  187. //var GUID = "{B377BB36-6EF3-4C24-943B-74D8F3FC7FA5}";
  188. //var strYkiho = "37100017";
  189. //var strFomVer = "001";
  190. //var actDocument = new ActiveX("HIRA.EformEntry.Model.Document");
  191. //actDocument.progid = GUID;
  192. //var time = new Date();
  193. function SMPIH99900_TEST_onload(obj:Form, e:LoadEventInfo)
  194. {
  195. frmf_initForm(obj);
  196. // 그리드 초기화
  197. grdf_initGrid(grd_list);
  198. // 그리드 툴팁
  199. grdf_setToolTipBind(grd_list);
  200. // 초기화
  201. fInit();
  202. }
  203. function fInit()
  204. {
  205. // 공통코드 가져올 부분
  206. /*
  207. var arrParam = [
  208. { dsNm: "ds_init_hospgrade_A0429", cdGrpId: "A0429" },
  209. { dsNm: "ds_init_replflag_A0636", cdGrpId: "A0636" },
  210. {dsNm: "ds_init_rsrvflag_P0341", cdGrpId: "P0341", sortField: "dispseq", sortMehotd: "asc", showValue:false}
  211. ];
  212. appf_getCodeList(arrParam, true);
  213. */
  214. // 전송할 서식 데이터를 가져옴
  215. dsf_copyColInfo(ds_send_docinfo, ds_doclist, false);
  216. ds_send_docinfo.addColumn("doc_no", "string");
  217. ds_send_docinfo.addColumn("doc_status", "string");
  218. ds_send_docinfo.addColumn("result", "string");
  219. ds_send_docinfo.addColumn("errmessage", "string");
  220. }
  221. // 그리드 멀티 선택 시 해당 체크박스 체크 또는 반전토록 함
  222. function fSetGrdMultiSelect(obj:Grid, colName) {
  223. var oDs = this.objects[obj.binddataset];
  224. var selectedRows = grdf_getSelectedRows(obj);
  225. for(var i = 0; i < selectedRows.length; i++) {
  226. var chk = oDs.getColumn(selectedRows[i], "chk");
  227. if(chk == 1 || chk == true)
  228. oDs.setColumn(selectedRows[i], "chk", 0);
  229. else
  230. oDs.setColumn(selectedRows[i], "chk", 1);
  231. }
  232. }
  233. // 그리드 버튼 클릭 시 처리
  234. function grd_list_onlbuttonup(obj:Grid, e:GridMouseEventInfo)
  235. {
  236. if(e.row < 0 || e.col == 0 ) return;
  237. fSetGrdMultiSelect(obj, "chk");
  238. }
  239. // 전송버튼 누를 시 처리
  240. function btn_trans_onclick(obj:Button, e:ClickEventInfo)
  241. {
  242. var chkcnt = ds_doclist.getCaseCount("chk=='1'");
  243. if(chkcnt == 0){
  244. sysf_messageBox("전송할 서식이 선택되지 않았습니다.", "C");
  245. return;
  246. }
  247. fTrans("E");
  248. fSearchDocList();
  249. }
  250. // 전송
  251. // gubun ("E": 전송완료, "T": 임시저장, "D": 임시문서삭제)
  252. function fTrans(gubun)
  253. {
  254. // 전체 서식에 대한 데이터가 10000개가 넘을 수도 있기 때문에
  255. // 한번에 보내서 처리하지 않고 for문으로 submit 처리함
  256. var cnt = 0;
  257. for(var i=0; i<ds_doclist.rowcount; i++){
  258. var chk = ds_doclist.getColumn(i, "chk");
  259. if(chk == "1"){
  260. cnt++;
  261. var signno = ds_doclist.getColumn(i, "signno");
  262. var uniqno = ds_doclist.getColumn(i, "execprcpuniqno");
  263. var doc_no = ds_doclist.getColumn(i, "doc_no");
  264. var doc_status = ds_doclist.getColumn(i, "doc_status");
  265. // 전송완료 상태인데 다시 전송 안되도록 한다.
  266. if(doc_status == "E"){
  267. sysf_messageBox("전송완료 상태인 문서는 처리할 수 없습니다.","E");
  268. return;
  269. }
  270. ds_send_docinfo.clearData();
  271. ds_send_docinfo.addRow();
  272. ds_send_docinfo.copyRow(0,ds_doclist,i);
  273. var supl_data_fom_cd = ds_send_docinfo.getColumn(0, "supl_data_fom_cd");
  274. var oParam = {};
  275. oParam.id = "TRPHI99902";
  276. oParam.service = "hiraefapp.HiraEfMngt";
  277. oParam.method = "reqGetGridList";
  278. oParam.inds = "req=ds_send_docinfo";
  279. oParam.outds = "ds_gridlist=gridlist";
  280. oParam.async = false;
  281. //oParam.callback = "cf_TRPHI99902";
  282. tranf_submit(oParam);
  283. // 그리드 리스트에 해당하는 dataset을 만든다.
  284. // 또한, 받을 outds에 해당하는 문자를 동적 생성한다.
  285. // 또한, 전송용으로 쓸 gridds에 해당하는 문자를 동적 생성한다.
  286. var addoutds = "";
  287. var gridds = "";
  288. for(var j=0; j<ds_gridlist.rowcount; j++){
  289. var gridcd = ds_gridlist.getColumn(j, "gridcd");
  290. var nm = supl_data_fom_cd + "_" + gridcd;
  291. dsf_createDs("ds_" + nm);
  292. addoutds += " ds_" + nm + "=" + nm;
  293. gridds += gridcd + ":ds_" + nm + " ";
  294. }
  295. var oParam = {};
  296. oParam.id = "TRPHI99903";
  297. oParam.service = "hiraefapp.HiraEfMngt";
  298. oParam.method = "reqGetDocInfo";
  299. oParam.inds = "req=ds_send_docinfo";
  300. oParam.outds = "ds_COM_M=COM_M ds_COM_E=COM_E" + addoutds;
  301. oParam.async = false;
  302. //oParam.callback = "cf_TRPHI99903";
  303. tranf_submit(oParam);
  304. var oParam = {};
  305. oParam.metaDs = "ds_COM_M"; // Meta정보 데이타셋
  306. oParam.elementDs = "ds_COM_E"; // Element정보 데이타셋
  307. oParam.gridDs = gridds; // Grid정보 데이타셋
  308. oParam.resultDs = "ds_COM_RESULT"; // 전송결과 데이타셋
  309. eff_trans(oParam, gubun, doc_no, doc_status);
  310. // 전송결과 결과값을 저장한다.
  311. var objResultDs = eval(oParam.resultDs);
  312. var result = objResultDs.getColumn(0, "result");
  313. var doc_no = objResultDs.getColumn(0, "doc_no");
  314. var doc_status = objResultDs.getColumn(0, "doc_status");
  315. var errmessage = objResultDs.getColumn(0, "errmessage");
  316. ds_send_docinfo.setColumn(0, "doc_no", doc_no);
  317. ds_send_docinfo.setColumn(0, "result", result);
  318. ds_send_docinfo.setColumn(0, "doc_status", doc_status);
  319. ds_send_docinfo.setColumn(0, "errmessage", errmessage);
  320. var oParam = {};
  321. oParam.id = "TRPHI99904";
  322. oParam.service = "hiraefapp.HiraEfMngt";
  323. oParam.method = "reqSetDocResult";
  324. oParam.inds = "req=ds_send_docinfo";
  325. oParam.async = false;
  326. //oParam.callback = "cf_TRPHI99903";
  327. tranf_submit(oParam);
  328. }
  329. }
  330. }
  331. // 조회버튼 클릭
  332. function div_sea_doclist_btn_search_onclick(obj:Button, e:ClickEventInfo)
  333. {
  334. fSearchDocList();
  335. }
  336. function fSearchDocList()
  337. {
  338. var oParam = {};
  339. oParam.id = "TRPHI99901";
  340. oParam.service = "hiraefapp.HiraEfMngt";
  341. oParam.method = "reqGetDocList";
  342. oParam.inds = "req=ds_send_doclist";
  343. oParam.outds = "ds_doclist=doclist";
  344. oParam.async = true;
  345. //oParam.callback = "cf_TRARC00105";
  346. tranf_submit(oParam);
  347. }
  348. function btn_tempsave_onclick(obj:Button, e:ClickEventInfo)
  349. {
  350. var chkcnt = ds_doclist.getCaseCount("chk=='1'");
  351. if(chkcnt == 0){
  352. sysf_messageBox("전송할 서식이 선택되지 않았습니다.", "C");
  353. return;
  354. }
  355. fTrans("T");
  356. fSearchDocList();
  357. }
  358. function btn_tempdel_onclick(obj:Button, e:ClickEventInfo)
  359. {
  360. var chkcnt = ds_doclist.getCaseCount("chk=='1'");
  361. if(chkcnt == 0){
  362. sysf_messageBox("전송할 서식이 선택되지 않았습니다.", "C");
  363. return;
  364. }
  365. fTrans("D");
  366. fSearchDocList();
  367. }
  368. ]]></Script>
  369. </Form>
  370. </FDL>