SPPAO01200_외래환자상한액관리.xfdl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. <?xml version="1.0" encoding="utf-8" standalone="no"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPPAO01200" position="absolute 0 0 372 476" titletext="외래환자상한액관리" onload="SPPAO01200_onload" oninit="SPPAO01200_oninit">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" class="tit_1" position="absolute 0 0 160 25" style="" text="외래환자상한액관리"/>
  8. <Div id="group2" position="absolute 0 25 370 65" style="align: top;" class="div_SA">
  9. <Layouts>
  10. <Layout width="370" height="35">
  11. <Static id="caption2" class="search_name" position="absolute 12 12 98 29" style="" text="등록번호 :" anchor="default"/>
  12. <Edit id="ipt_pid" position="absolute 93 11 193 30" style="" anchor="default" onkeydown="group2_ipt_pid_onkeydown" autoselect="true"/>
  13. <Button id="button2" class="btn5" position="absolute 233 9 275 31" style="" text="검색" onclick="group2_button2_onclick" anchor="default"/>
  14. <Button id="btn_pid" class="icon_search" taborder="-1" position="absolute 198 13 214 27" style="" text="" onclick="group2_btn_pid_onclick" anchor="default"/>
  15. <Button id="button3" taborder="1" text="저장" onclick="button3_onclick" class="btn5" position="absolute 277 9 319 31" anchor="default"/>
  16. <Button id="button4" taborder="2" text="닫기" onclick="button4_onclick" class="btn5" position="absolute 321 9 363 31" anchor="default"/>
  17. </Layout>
  18. </Layouts>
  19. </Div>
  20. <Grid id="grd_info" binddataset="ds_main_moneyinfo" position="absolute 0 94 370 474" style="align:center ;" autofittype="col" autoenter="select" cellclickbound="cell">
  21. <Formats>
  22. <Format id="default">
  23. <Columns>
  24. <Column size="25"/>
  25. <Column size="27"/>
  26. <Column size="105"/>
  27. <Column size="100"/>
  28. <Column size="100"/>
  29. <Column size="0"/>
  30. </Columns>
  31. <Rows>
  32. <Row size="24" band="head"/>
  33. <Row size="24"/>
  34. </Rows>
  35. <Band id="head">
  36. <Cell/>
  37. <Cell col="1"/>
  38. <Cell col="2" text="환자번호"/>
  39. <Cell col="3" text="시작일자"/>
  40. <Cell col="4" text="종료일자"/>
  41. <Cell col="5" text="histcd"/>
  42. <Cell col="6" text="seqno"/>
  43. </Band>
  44. <Band id="body">
  45. <Cell celltype="head"/>
  46. <Cell col="1" displaytype="checkbox" edittype="checkbox" text="bind:chk" expr="expr:chk == 'true' || chk == '1' ? 1 : 0"/>
  47. <Cell col="2" displaytype="text" edittype="text" text="bind:pid"/>
  48. <Cell col="3" displaytype="date" edittype="date" style="align:left middle;" text="bind:fromdd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  49. <Cell col="4" displaytype="date" style="align:left middle;" text="bind:todd" mask="yyyy-MM-dd" calendardisplaynulltype="nulltext"/>
  50. <Cell col="5" text="bind:histstat"/>
  51. </Band>
  52. </Format>
  53. </Formats>
  54. </Grid>
  55. <Button id="button1" class="btn5" visible="false" position="absolute 95 67 137 89" style="" text="삭제" onclick="button1_onclick"/>
  56. <Button id="btn_add" class="btn5" position="absolute 317 67 370 89" style="" text="행추가" onclick="btn_add_onclick"/>
  57. <Button id="btn_del" class="btn5" visible="false" position="absolute 145 67 198 89" style="" text="행삭제" onclick="btn_del_onclick"/>
  58. <Shape id="line00" class="line_1" position="absolute 0 89 370 95" style="strokepen:3 solid #33bbbbff;"/>
  59. </Layout>
  60. </Layouts>
  61. <Objects>
  62. <Dataset id="ds_send_reqdata_srchdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  63. <ColumnInfo>
  64. <Column id="pid" type="STRING" size="256"/>
  65. </ColumnInfo>
  66. <Rows>
  67. <Row/>
  68. </Rows>
  69. </Dataset>
  70. <Dataset id="ds_main_moneyinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_main_moneyinfo_oncolumnchanged">
  71. <ColumnInfo>
  72. <Column id="chk" type="STRING" size="256" sumtext=""/>
  73. <Column id="pid" type="STRING" size="256" sumtext=""/>
  74. <Column id="fromdd" type="STRING" size="256" sumtext=""/>
  75. <Column id="todd" type="STRING" size="256" sumtext=""/>
  76. <Column id="histstat" type="STRING" size="256" sumtext=""/>
  77. </ColumnInfo>
  78. </Dataset>
  79. <Dataset id="ds_source" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  80. <Dataset id="ds_patinfolist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  81. <Dataset id="ds_main_pastmoneychk" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  82. <ColumnInfo>
  83. <Column id="payownbamt" type="INT" size="256" sumtext=""/>
  84. </ColumnInfo>
  85. </Dataset>
  86. <Dataset id="ds_send_moneyinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  87. <Dataset id="ds_init_pam_P0032list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  88. </Objects>
  89. <Bind>
  90. <BindItem id="item0" compid="group2.ipt_pid" propid="value" datasetid="ds_send_reqdata_srchdata" columnid="pid"/>
  91. </Bind>
  92. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  93. * System Name :
  94. * Job Name :
  95. * Creator :
  96. * Make Date : 2015-11-13
  97. * Description :
  98. *---------------------------------------------------------------------------------------
  99. * Modify Date Modifier Modify Description
  100. *---------------------------------------------------------------------------------------
  101. * 2015-11-13 Live Converter TF->XP
  102. *
  103. *---------------------------------------------------------------------------------------
  104. ****************************************************************************************/
  105. include "com_commonxp::comm_main.xjs";
  106. include "emr_prcpmngtxp::SMMMO04100.xjs";
  107. include "pam_pamcomnxp::PAM001.xjs";
  108. var arErrorCode = new HashArray();
  109. var year = "";
  110. function SPPAO01200_oninit(obj:Form, e:InitEventInfo)
  111. {
  112. frmf_initForm(obj);
  113. }
  114. function SPPAO01200_onload(obj: Form, e: LoadEventInfo)
  115. {
  116. grdf_initGrid(grd_info);
  117. grdf_setRowTypeIcon(grd_info, 0);
  118. year = String(utlf_getCurrentDate()).substr(0, 4);
  119. ds_main_moneyinfo.clearData();
  120. var arrParam = [{dsNm: "ds_init_pam_P0032list", cdGrpId: "P0032"}]; // 원무기준자료
  121. pamfGetCodeList(arrParam, false);
  122. }
  123. function group2_btn_pid_onclick(obj: Button, e: ClickEventInfo)
  124. {
  125. //조회건수가 1건일 경우 팝업창을 바로 닫는다..
  126. dsf_makeValue(ds_source, "autoflag", "string", "Y");
  127. var objArg = new Object();
  128. objArg.arg_ds_send = ds_source;
  129. frmf_modal("SPPMC02500", "SPPMC02500", objArg, "", "1", "150", "150", "", "", "", "", "", "M");
  130. dsf_makeValue(ds_send_reqdata_srchdata, "pid", "string", ds_patinfolist.getColumn(0, "pid"));
  131. }
  132. function group2_button2_onclick(obj: Button, e: ClickEventInfo)
  133. {
  134. var oParam = {};
  135. oParam.id = "TRPMO01200";
  136. oParam.service = "patinfomngtapp.PatBaseInfo";
  137. oParam.method = "reqGetPatMoneyInfo";
  138. oParam.inds = "req=ds_send_reqdata_srchdata";
  139. oParam.outds = "ds_main_moneyinfo=item";
  140. oParam.async = false;
  141. tranf_submit(oParam);
  142. ds_main_moneyinfo.addColumn("chk", "string");
  143. }
  144. function button3_onclick(obj: Button, e: ClickEventInfo)
  145. {
  146. var savedata = "status▦pid▦histstat▦fromdd▦todd▩";
  147. for (var i = 0; i < ds_main_moneyinfo.rowcount; i++)
  148. {
  149. if (ds_main_moneyinfo.getColumn(i, "chk") == "true")
  150. {
  151. if (utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "pid")) == "")
  152. {
  153. sysf_messageBox(parseInt(i+1) + "행에 환자번호가 입력되지 않았습니다.", "E");
  154. return;
  155. }
  156. else if (utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "fromdd")) == "")
  157. {
  158. sysf_messageBox(parseInt(i+1) + "행에 시작일자가 입력되지 않았습니다.", "E");
  159. return;
  160. }
  161. else if (utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "todd")) == "")
  162. {
  163. sysf_messageBox(parseInt(i+1) + "행에 종료일자가 입력되지 않았습니다.", "E");
  164. return;
  165. }
  166. var status = ds_main_moneyinfo.getRowType(i);
  167. dsf_makeValue(ds_send_moneyinfo, "pid", "string", ds_main_moneyinfo.getColumn(i, "pid"));
  168. dsf_makeValue(ds_send_moneyinfo, "fromdd", "string", ds_main_moneyinfo.getColumn(i, "fromdd"));
  169. // 저장 시 컬럼 변경됨. 2019-04-10 이아영
  170. dsf_makeValue(ds_send_moneyinfo, "orddd", "string", ds_main_moneyinfo.getColumn(i, "fromdd"));
  171. var oParam = {};
  172. oParam.id = "TRPMO01202";
  173. oParam.service = "patinfomngtapp.PatBaseInfo";
  174. oParam.method = "reqGetPastMoneyInfo";
  175. oParam.inds = "req=ds_send_moneyinfo";
  176. oParam.outds = "ds_main_pastmoneychk=item";
  177. oParam.async = false;
  178. tranf_submit(oParam);
  179. var totamt = parseInt(ds_main_pastmoneychk.getColumn(0, "payownbamt"));
  180. var rtn = "6"; // defalut를 [예]
  181. var max_payownbamt = ds_init_pam_P0032list.lookup("cdid", "280", "cdnm");
  182. if (parseInt(totamt) < max_payownbamt)
  183. {
  184. rtn = sysf_messageBox("환자번호 "+ utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "pid")) + "는 급여본인부담액이 "
  185. +utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "fromdd")).substr(0,4)+"-"
  186. +utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "fromdd")).substr(4,2)+ "-"
  187. +utlf_transNullToEmpty(ds_main_moneyinfo.getColumn(i, "fromdd")).substr(6,2)+"까지 " + max_payownbamt + "만원을\n넘지 않았습니다. 그래도 등록하시겠습니까?", "S001", ""); //예:6 아니오:7 취소:2
  188. }
  189. if (rtn == "7")
  190. {
  191. ds_main_moneyinfo.setColumn(i, "chk", "false");
  192. continue;
  193. }
  194. else if (rtn == "2")
  195. {
  196. return;
  197. }
  198. if (status == 2)
  199. { // insert // status == 1 || status == 3
  200. savedata += "i" + "▦";
  201. }
  202. else if (status == 4)
  203. { // update // status == 2
  204. savedata += "u" + "▦";
  205. }
  206. savedata += ds_main_moneyinfo.getColumn(i, "pid") + "▦";
  207. savedata += "Y" + "▦";
  208. savedata += ds_main_moneyinfo.getColumn(i, "fromdd") + "▦";
  209. savedata += ds_main_moneyinfo.getColumn(i, "todd") + "▩";
  210. }
  211. }
  212. trace(savedata)
  213. dsf_setCSVToDs("ds_send_reqdata", savedata);
  214. var oParam = {};
  215. oParam.id = "TXPMO01200";
  216. oParam.service = "patinfomngtapp.PatBaseInfo";
  217. oParam.method = "reqSetPatMoneyInfo";
  218. oParam.inds = "req=ds_send_reqdata";
  219. oParam.async = false;
  220. oParam.callback = "cf_TXPMO01200";
  221. tranf_submit(oParam);
  222. if (arErrorCode.pop("TXPMO01200") > -1)
  223. {
  224. sysf_messageBox("처리되었습니다.", "I");
  225. var oParam = {};
  226. oParam.id = "TRPMO01200";
  227. oParam.service = "patinfomngtapp.PatBaseInfo";
  228. oParam.method = "reqGetPatMoneyInfo";
  229. oParam.inds = "req=ds_send_reqdata_srchdata";
  230. oParam.outds = "ds_main_moneyinfo=item";
  231. oParam.async = false;
  232. tranf_submit(oParam);
  233. ds_main_moneyinfo.addColumn("chk", "string");
  234. savedata = "status▦pid▦histstat▦fromdd▦todd▩";
  235. }
  236. }
  237. function cf_TXPMO01200(sSvcId, nErrorCode, sErrorMsg)
  238. {
  239. arErrorCode.push(sSvcId, nErrorCode);
  240. }
  241. function button4_onclick(obj: Button, e: ClickEventInfo)
  242. {
  243. this.close();
  244. }
  245. function button1_onclick(obj: Button, e: ClickEventInfo)
  246. {
  247. var savedata = "status▦pid▦histstat▦fromdd▦todd▩";
  248. for (var i = 0; i < ds_main_moneyinfo.rowcount; i++)
  249. {
  250. if (ds_main_moneyinfo.getColumn(i, "chk") == "true")
  251. {
  252. if (utlf_isNull(ds_main_moneyinfo.getColumn(i, "pid")))
  253. {
  254. sysf_messageBox(parseInt(i+1) + "행에 환자번호가 입력되지 않았습니다.", "E");
  255. return;
  256. }
  257. else if (utlf_isNull(ds_main_moneyinfo.getColumn(i, "fromdd")))
  258. {
  259. sysf_messageBox(parseInt(i+1) + "행에 시작일자가 입력되지 않았습니다.", "E");
  260. return;
  261. }
  262. else if (utlf_isNull(ds_main_moneyinfo.getColumn(i, "todd")))
  263. {
  264. sysf_messageBox(parseInt(i+1) + "행에 종료일자가 입력되지 않았습니다.", "E");
  265. return;
  266. }
  267. savedata += "d" + "▦";
  268. savedata += ds_main_moneyinfo.getColumn(i, "pid") + "▦";
  269. savedata += "X" + "▦";
  270. savedata += ds_main_moneyinfo.getColumn(i, "fromdd") + "▦";
  271. savedata += ds_main_moneyinfo.getColumn(i, "todd") + "▩";
  272. }
  273. }
  274. dsf_setCSVToDs("ds_send_reqdata", savedata);
  275. var oParam = {};
  276. oParam.id = "TXPMO01200";
  277. oParam.service = "patinfomngtapp.PatBaseInfo";
  278. oParam.method = "reqSetPatMoneyInfo";
  279. oParam.inds = "req=ds_send_reqdata";
  280. oParam.async = false;
  281. oParam.callback = "cf_TXPMO01200";
  282. tranf_submit(oParam);
  283. if (arErrorCode.pop("TXPMO01200") > -1)
  284. {
  285. sysf_messageBox("저장되었습니다.", "I");
  286. var oParam = {};
  287. oParam.id = "TRPMO01200";
  288. oParam.service = "patinfomngtapp.PatBaseInfo";
  289. oParam.method = "reqGetPatMoneyInfo";
  290. oParam.inds = "req=ds_send_reqdata_srchdata";
  291. oParam.outds = "ds_main_moneyinfo=item";
  292. oParam.async = false;
  293. tranf_submit(oParam);
  294. }
  295. }
  296. function btn_add_onclick(obj: Button, e: ClickEventInfo)
  297. {
  298. var iRow = ds_main_moneyinfo.addRow();
  299. ds_main_moneyinfo.updatecontrol = false;
  300. ds_main_moneyinfo.setRowType(iRow, "i");
  301. ds_main_moneyinfo.setColumn(iRow, "chk", "true");
  302. ds_main_moneyinfo.setColumn(iRow, "todd", year + "1231");
  303. ds_main_moneyinfo.updatecontrol = true;
  304. }
  305. function btn_del_onclick(obj: Button, e: ClickEventInfo)
  306. {
  307. var iRow = ds_main_moneyinfo.rowposition;
  308. ds_main_moneyinfo.deleteRow(iRow);
  309. }
  310. function ds_main_moneyinfo_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  311. {
  312. if(e.columnid == "chk")
  313. {
  314. obj.setColumn(e.row, "chk", (e.newvalue == "true" || e.newvalue == 1) ? "true" : "false");
  315. }
  316. }
  317. ]]></Script>
  318. </Form>
  319. </FDL>