SMAEA00300_개인별예약현황조회.xfdl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMAEA00300" position="absolute 0 0 1256 805" titletext="개인별 예약현황 조회" oninit="model1_oninit" onload="SMAEA00300_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="caption6" class="tit_1" position="absolute 0 3 172 28" anchor="default" positiontype="position" text="개인별 예약현황 조회"/>
  8. <Grid id="grd_rsrvprescond" position="absolute 0 97 938 782" anchor="default" positiontype="position" binddataset="ds_grd_rsrvprescond" extendsizetype="none" cellsizingtype="col">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="20"/>
  13. <Column size="111"/>
  14. <Column size="89"/>
  15. <Column size="249"/>
  16. <Column size="70"/>
  17. <Column size="85"/>
  18. <Column size="107"/>
  19. <Column size="85"/>
  20. <Column size="63"/>
  21. <Column size="123"/>
  22. <Column size="84"/>
  23. <Column size="77"/>
  24. <Column size="0"/>
  25. </Columns>
  26. <Rows>
  27. <Row size="22" band="head"/>
  28. <Row size="24"/>
  29. </Rows>
  30. <Band id="head">
  31. <Cell/>
  32. <Cell col="1" text="예약일시"/>
  33. <Cell col="2" text="처방코드"/>
  34. <Cell col="3" text="처방명"/>
  35. <Cell col="4" text="처방상태"/>
  36. <Cell col="5" text="처방일자"/>
  37. <Cell col="6" text="실시일시"/>
  38. <Cell col="7" text="진료과"/>
  39. <Cell col="8" text="진료의사"/>
  40. <Cell col="9" text="검사/치료실"/>
  41. <Cell col="10" text="검사/실시자"/>
  42. <Cell col="11" text="예약자"/>
  43. <Cell col="12" text="caption1"/>
  44. </Band>
  45. <Band id="body">
  46. <Cell celltype="head" expr="currow+1"/>
  47. <Cell col="1" style="align:center middle;" text="bind:rsrvdt" mask="####-##-## ##:##"/>
  48. <Cell col="2" style="align:left middle;" text="bind:prcpcd"/>
  49. <Cell col="3" style="align:left middle;" text="bind:prcpnm"/>
  50. <Cell col="4" displaytype="combo" edittype="combo" text="bind:prcpstatcd" combodataset="ds_init_Z_M0011" combocodecol="cdid" combodatacol="cdnm"/>
  51. <Cell col="5" style="align:center middle;" text="bind:prcpdd" mask="####-##-##"/>
  52. <Cell col="6" style="align:center middle;" text="bind:execdt" mask="expr:execdt == null ? '':'####-##-## ##:##'"/>
  53. <Cell col="7" style="align:left middle;" text="bind:orddeptnm"/>
  54. <Cell col="8" style="align:left middle;" text="bind:orddrnm"/>
  55. <Cell col="9" style="align:left middle;" text="bind:excuroomnm"/>
  56. <Cell col="10" text="bind:execrid"/>
  57. <Cell col="11" style="align:left middle;" text="bind:usernm"/>
  58. <Cell col="12" text="bind:hngnm"/>
  59. <Cell col="13"/>
  60. </Band>
  61. </Format>
  62. </Formats>
  63. </Grid>
  64. <Button id="button3" class="btn7" position="absolute 1180 74 1256 94" anchor="default" positiontype="position" text="엑셀저장" onlbuttonup="button3_onlbuttonup" onclick="button3_onclick"/>
  65. <Grid id="grd_ordprescond" position="absolute 948 97 1256 782" anchor="default" positiontype="position" binddataset="ds_grd_ordprescond" autofittype="col" cellsizingtype="col">
  66. <Formats>
  67. <Format id="default">
  68. <Columns>
  69. <Column size="20"/>
  70. <Column size="110"/>
  71. <Column size="80"/>
  72. <Column size="80"/>
  73. </Columns>
  74. <Rows>
  75. <Row size="22" band="head"/>
  76. <Row size="20"/>
  77. </Rows>
  78. <Band id="head">
  79. <Cell/>
  80. <Cell col="1" text="진료일자"/>
  81. <Cell col="2" text="진료과"/>
  82. <Cell col="3" text="진료의"/>
  83. </Band>
  84. <Band id="body">
  85. <Cell celltype="head" expr="currow+1"/>
  86. <Cell col="1" style="align:left middle;" text="bind:rsrvdt" mask="####-##-## ##:##"/>
  87. <Cell col="2" style="align:left middle;" text="bind:orddepthngnm"/>
  88. <Cell col="3" style="align:left middle;" text="bind:orddrnm"/>
  89. </Band>
  90. </Format>
  91. </Formats>
  92. </Grid>
  93. <Static id="caption2" class="tit_2" position="absolute 0 77 97 97" anchor="default" positiontype="position" text="예약현황"/>
  94. <Static id="caption3" class="tit_2" position="absolute 948 77 1045 97" anchor="default" positiontype="position" text="진료현황"/>
  95. <Button id="btn_cls" class="btn4" position="absolute 1200 785 1256 805" anchor="default" positiontype="position" text="닫기" onclick="btn_cls_onclick"/>
  96. <Div id="grp_sea" anchor="left top right" taborder="6" style="align:center top;" class="div_SA" position="absolute 0 29 1256 68" align="align:center top;" positiontype="position" onmouseenter="grp_sea_onmouseenter">
  97. <Layouts>
  98. <Layout>
  99. <Static id="caption1" text="적용일자" class="search_name" position="absolute 332 10 406 30" anchor="default" positiontype="position"/>
  100. <Button id="btn_sea" taborder="20" text="조회" onlbuttonup="btn_sea_onlbuttonup" class="btn1" position="absolute 1189 10 1245 30" anchor="top right" onclick="btn_sea_onclick" positiontype="position"/>
  101. <Calendar id="ipt_endrsrvdd" taborder="22" class="input_default" position="absolute 495 10 581 30" anchor="default" align="align:center middle;" positiontype="position"/>
  102. <Calendar id="ipt_startrsrvdd" taborder="25" class="input_default" position="absolute 406 10 492 30" onmouseenter="ipt_startrsrvdd_onmouseenter" anchor="default" align="align:center middle;" positiontype="position"/>
  103. <Edit id="opt_pathngnm" taborder="28" readonly="true" position="absolute 213 10 313 30" anchor="default" onkeydown="grp_sea_opt_pathngnm_onkeydown" positiontype="position"/>
  104. <Static id="caption13" text="등록번호 :" class="search_name" position="absolute 20 11 106 28" anchor="default"/>
  105. <Edit id="ipt_pid" taborder="29" position="absolute 109 10 189 29" anchor="default" onkeydown="grp_sea_ipt_pid_onkeydown"/>
  106. <Button id="btn_ptbs_search" taborder="30" class="icon_search" position="absolute 192 11 208 27" anchor="default" onclick="grp_sea_btn_ptbs_search_onclick"/>
  107. </Layout>
  108. </Layouts>
  109. </Div>
  110. </Layout>
  111. </Layouts>
  112. <Objects>
  113. <Dataset id="ds_grd_rsrvprescond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  114. <ColumnInfo>
  115. <Column id="rsrvdt" type="STRING"/>
  116. <Column id="prcpcd" type="STRING"/>
  117. <Column id="prcpnm" type="STRING"/>
  118. <Column id="prcpstatcd" type="STRING"/>
  119. <Column id="prcpdd" type="STRING"/>
  120. <Column id="execdt" type="STRING"/>
  121. <Column id="orddeptnm" type="STRING"/>
  122. <Column id="orddrnm" type="STRING"/>
  123. <Column id="excuroomnm" type="STRING"/>
  124. <Column id="execrid" type="STRING"/>
  125. <Column id="usernm" type="STRING"/>
  126. <Column id="hngnm" type="STRING"/>
  127. </ColumnInfo>
  128. </Dataset>
  129. <Dataset id="ds_grd_ordprescond" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false">
  130. <ColumnInfo>
  131. <Column id="rsrvdt"/>
  132. <Column id="orddepthngnm"/>
  133. <Column id="orddrnm"/>
  134. </ColumnInfo>
  135. </Dataset>
  136. <Dataset id="ds_init_Z_M0011" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  137. <ColumnInfo>
  138. <Column id="cdnm" type="STRING" size="255"/>
  139. <Column id="cdval" type="STRING" size="255"/>
  140. <Column id="minopercd" type="STRING" size="255"/>
  141. <Column id="cdgrupid" type="STRING" size="255"/>
  142. <Column id="valitodd" type="STRING" size="255"/>
  143. <Column id="detldesc" type="STRING" size="255"/>
  144. <Column id="lastupdtrid" type="STRING" size="255"/>
  145. <Column id="fstrgstdt" type="STRING" size="255"/>
  146. <Column id="cdsid" type="STRING" size="255"/>
  147. <Column id="cdengabbrnm" type="STRING" size="255"/>
  148. <Column id="minval" type="STRING" size="255"/>
  149. <Column id="fstrgstrid" type="STRING" size="255"/>
  150. <Column id="lastupdtdt" type="STRING" size="255"/>
  151. <Column id="valifromdd" type="STRING" size="255"/>
  152. <Column id="maxopercd" type="STRING" size="255"/>
  153. <Column id="cdid" type="STRING" size="255"/>
  154. <Column id="dispseq" type="BIGDECIMAL" size="255"/>
  155. <Column id="maxval" type="STRING" size="255"/>
  156. <Column id="bizflag" type="STRING" size="255"/>
  157. </ColumnInfo>
  158. </Dataset>
  159. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  160. <ColumnInfo>
  161. <Column id="srchpid"/>
  162. <Column id="basesuppdeptcd"/>
  163. <Column id="frdt"/>
  164. <Column id="todt"/>
  165. <Column id="instcd"/>
  166. </ColumnInfo>
  167. <Rows>
  168. <Row>
  169. <Col id="srchpid"/>
  170. <Col id="basesuppdeptcd"/>
  171. <Col id="frdt"/>
  172. <Col id="todt"/>
  173. <Col id="instcd"/>
  174. </Row>
  175. </Rows>
  176. </Dataset>
  177. <Dataset id="ds_temp_paminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  178. <Dataset id="ds_patinfolist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  179. </Objects>
  180. <Bind>
  181. <BindItem id="item4" compid="grp_sea.ipt_pid" propid="value" datasetid="ds_send" columnid="srchpid"/>
  182. </Bind>
  183. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  184. * System Name :
  185. * Job Name :
  186. * File Name : SMAEA00300_개인별예약현황조회.xfdl
  187. * Creator :
  188. *
  189. * Description :
  190. *---------------------------------------------------------------------------------------
  191. * Modify Date Modifier Modify Description
  192. *---------------------------------------------------------------------------------------
  193. *
  194. *---------------------------------------------------------------------------------------
  195. ****************************************************************************************/
  196. //=======================================================================================
  197. // xjs Include
  198. //---------------------------------------------------------------------------------------
  199. include "com_commonxp::comm_main.xjs";
  200. include "ast_examcurexp::AEZ0001.xjs";
  201. include "com_basiccodexp::ZBC001.xjs";
  202. //=======================================================================================
  203. // Function
  204. //---------------------------------------------------------------------------------------
  205. function fInit()
  206. {
  207. lf_aezfSetSuppDeptcd();
  208. ds_send.setColumn(0, "basesuppdeptcd", suppdeptcd);
  209. // 공통 코드 셋팅
  210. appf_getCodeList([{dsNm: "ds_init_Z_M0011", cdGrpId: "M0011"}], true);
  211. // 조회기간 셋팅
  212. var cDate = utlf_getCurrentDate();
  213. grp_sea.ipt_endrsrvdd.value = cDate;
  214. grp_sea.ipt_startrsrvdd.value = utlf_addMonth(cDate, -12);
  215. grdf_initGrid(grd_rsrvprescond);
  216. grp_sea.ipt_pid.setFocus();
  217. // 통합 예약에서 전달받은 pid 확인
  218. var pid = opener.frmf_getParameter("SMPEA00100_pid");
  219. if (!utlf_isNull(pid)) {
  220. ds_send.setColumn(0, "srchpid", pid);
  221. } else if(!utlf_isNull(getOwnerFrame().sArg01)&& getOwnerFrame().sArg01!=""){
  222. ds_send.setColumn(0,"srchpid",sArg01);
  223. grp_sea.ipt_pid.value = sArg01;
  224. grp_sea.opt_pathngnm.value = sArg02;
  225. }
  226. var srchpid = grp_sea.ipt_pid.value
  227. if( !utlf_isNull(srchpid) && srchpid != "000000000" )
  228. {
  229. fSearch();
  230. }
  231. else
  232. {
  233. var paminfo = sysf_getGlobalVariable("paminfo"); //프로그램에 따라 원무정보(paminfo), 환자기본정보(patflag) get
  234. var gv_pid = sysf_getGlobalVariable("gv_pid", "A");
  235. if( !utlf_isNull(paminfo) ) //원무 정보(기본 정보)가 있는 경우
  236. {
  237. dsf_setCSVToDs("ds_temp_paminfo",paminfo);
  238. var pid = ds_temp_paminfo.getColumn(0, "pid");
  239. ds_send.setColumn(0, "srchpid", pid);
  240. grp_sea.ipt_pid.value = pid;
  241. fSearch();
  242. }
  243. else if( !utlf_isNull(gv_pid) ) //글로벌변수(등록번호)가 있는경우
  244. {
  245. ds_send.setColumn(0, "srchpid", gv_pid);
  246. grp_sea.ipt_pid.value = gv_pid;
  247. fSearch();
  248. }
  249. }
  250. }
  251. function fSearch()
  252. {
  253. var pid = ds_send.getColumn(0, "srchpid");
  254. var frdt = grp_sea.ipt_startrsrvdd.value;
  255. var todt = grp_sea.ipt_endrsrvdd.value;
  256. ds_send.setColumn(0, "srchpid", pid);
  257. ds_send.setColumn(0, "frdt", frdt);
  258. ds_send.setColumn(0, "todt", todt);
  259. if( utlf_isNull(grp_sea.ipt_pid.value) )
  260. {
  261. sysf_messageBox("필수입력사항인 등록번호를 입력해 주십시오.", "I999");
  262. grp_sea.ipt_pid.setFocus();
  263. }
  264. else if( utlf_isNull(frdt) && !utlf_isNull(todt) )
  265. {
  266. sysf_messageBox("검색하실 날짜 범위의 시작일자를 입력해 주십시오." , "I999");
  267. grp_sea.ipt_startrsrvdd.setFocus();
  268. }
  269. else if( !utlf_isNull(frdt) && utlf_isNull(todt) )
  270. {
  271. sysf_messageBox("검색하실 날짜 범위의 마지막 일자를 입력해 주십시오." , "I999");
  272. grp_sea.ipt_endrsrvdd.setFocus();
  273. }
  274. else if ( utlf_getDateInterval(frdt, todt) < 0 )
  275. {
  276. sysf_messageBox("입력하신 날짜 범위로는 검색할 수 없습니다. 입력하신 날짜를 확인해 주십시오." , "I999");
  277. grp_sea.ipt_startrsrvdd.setFocus();
  278. }
  279. else
  280. {
  281. submit_TRAEA00301();
  282. submit_TRAEA00302();
  283. if( ds_grd_rsrvprescond.rowcount == 0 && ds_grd_ordprescond.rowcount == 0 )
  284. {
  285. sysf_messageBox("입력하신 등록번호/일자에 해당하는 환자의 예약 및 진료 정보가 DB에 존재하지 않습니다.", "I999");
  286. }
  287. else
  288. {
  289. var _dt = "";
  290. var hngnm = ds_grd_rsrvprescond.getColumn(0, "hngnm");
  291. grp_sea.opt_pathngnm.value = hngnm;
  292. }
  293. }
  294. }
  295. function submit_TRAEA00301()
  296. {
  297. var objParam = new Object();
  298. objParam.id = "TRAEA00301";
  299. objParam.service = "examcureacptexecapp.ExamCurePrcs";
  300. objParam.method = "reqGetPidRsrvPresCondList";
  301. objParam.inds = "req=ds_send";
  302. objParam.outds ="ds_grd_rsrvprescond=rsrvlist";
  303. tranf_submit(objParam);
  304. }
  305. function submit_TRAEA00302()
  306. {
  307. var objParam = new Object();
  308. objParam.id = "TRAEA00302";
  309. objParam.service = "examcureacptexecapp.ExamCurePrcs";
  310. objParam.method = "reqGetPidOrdPresCondList";
  311. objParam.inds = "req=ds_send";
  312. objParam.outds ="ds_grd_ordprescond=ordlist";
  313. tranf_submit(objParam);
  314. }
  315. function temp(obj:Edit, e:KeyEventInfo)
  316. {
  317. if( e.keycode == 13 )
  318. {
  319. fSearch();
  320. }
  321. }
  322. function pid_keyDown(obj:Edit, e:KeyEventInfo)
  323. {
  324. if( e.keycode == 13 )
  325. {
  326. if( utlf_isNull(grp_sea.ipt_pid.value) )
  327. {
  328. grp_sea.opt_pathngnm.value = "";
  329. }
  330. else
  331. {
  332. fSearch();
  333. }
  334. }
  335. }
  336. function pid_text(obj:Edit, e:TextChangedEventInfo)
  337. {
  338. if( obj.value == "" )
  339. {
  340. grp_sea.opt_pathngnm.value = "";
  341. grp_sea.ipt_pid.value = "";
  342. }
  343. }
  344. //=======================================================================================
  345. // Event
  346. //---------------------------------------------------------------------------------------
  347. /****************************************************************************************
  348. * Components :
  349. * Components ID : SMAEA00300
  350. * Event : onload
  351. * Argument : 01.obj : Object Event has occurred
  352. * : 02.e : Event Object
  353. * Description :
  354. ****************************************************************************************/
  355. function SMAEA00300_onload(obj:Form, e:LoadEventInfo)
  356. {
  357. frmf_initForm(obj); // 화면공통
  358. fInit();
  359. //grp_sea.ipt_pid.onkeyup.addHandler(temp);
  360. }
  361. /****************************************************************************************
  362. * Components :
  363. * Components ID : btn_sea
  364. * Event : onclick
  365. * Argument : 01.obj : Object Event has occurred
  366. * : 02.e : Event Object
  367. * Description : 조회버튼
  368. ****************************************************************************************/
  369. function btn_sea_onclick(obj:Button, e:ClickEventInfo)
  370. {
  371. fSearch();
  372. }
  373. /****************************************************************************************
  374. * Components :
  375. * Components ID : button3
  376. * Event : onclick
  377. * Argument : 01.obj : Object Event has occurred
  378. * : 02.e : Event Object
  379. * Description : 엑셀저장
  380. ****************************************************************************************/
  381. function button3_onclick(obj:Button, e:ClickEventInfo)
  382. {
  383. if( ds_grd_rsrvprescond.rowcount <= 0 && ds_grd_ordprescond.rowcount <= 0 )
  384. {
  385. sysf_messageBox("엑셀파일로 저장할 리스트 내역이", "I004");
  386. return;
  387. }
  388. else
  389. {
  390. grdf_exportExcel(grd_rsrvprescond, "예약현황", "Sheet");
  391. grdf_exportExcel(grd_ordprescond, "진료현황", "Sheet");
  392. }
  393. }
  394. // 닫기 버튼
  395. function btn_cls_onclick(obj:Button, e:ClickEventInfo)
  396. {
  397. this.close();
  398. }
  399. function grp_sea_btn_ptbs_search_onclick(obj:Button, e:ClickEventInfo)
  400. {
  401. dsf_createDsRow("ds_send_srchpid", [{col: "srchpid", val:utlf_transNullToEmpty(grp_sea.ipt_pid.value)}
  402. ]);
  403. var objArg = new Object();
  404. objArg.arg_ds_send = ds_send_srchpid;
  405. // 환자조회화면 호출
  406. frmf_modal("SPPMC02500", "SPPMC02500", objArg, "", "", "", "", "", "", "", "", "", "M");
  407. grp_sea.ipt_pid.value = ds_patinfolist.getColumn(0,"pid");
  408. grp_sea.opt_pathngnm.value = ds_patinfolist.getColumn(0,"hngnm");
  409. }
  410. function grp_sea_ipt_pid_onkeydown(obj:Edit, e:KeyEventInfo)
  411. {
  412. if(e.keycode == 13)
  413. {
  414. obj.updateToDataset();
  415. grp_sea.btn_sea.click();
  416. }
  417. }
  418. function grp_sea_opt_pathngnm_onkeydown(obj:Edit, e:KeyEventInfo)
  419. {
  420. if(e.keycode == 13)
  421. {
  422. obj.updateToDataset();
  423. dsf_createDsRow("ds_send_srchpid", [{col: "srchpid", val:utlf_transNullToEmpty(grp_sea.ipt_pid.value)}
  424. ]);
  425. var objArg = new Object();
  426. objArg.arg_ds_send = ds_send_srchpid;
  427. // 환자조회화면 호출
  428. frmf_modal("SPPMC02500", "SPPMC02500", objArg, "", "", "", "", "", "", "", "", "", "M");
  429. grp_sea.ipt_pid.value = ds_patinfolist.getColumn(0,"pid");
  430. grp_sea.ipt_patnm.value = ds_patinfolist.getColumn(0,"hngnm");
  431. }
  432. }
  433. ]]></Script>
  434. </Form>
  435. </FDL>