SMADB01030_항암프로토콜스케쥴변경.xfdl 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SMADB01030" classname="SMADB01030_항암프로토콜스케쥴변경" inheritanceid="" position="absolute 0 0 234 232" titletext="항암 프로토콜 스케줄 변경" oninit="SMADB01030_oninit" onload="SMADB01030_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static id="stt_titleText" text="항암 프로토콜 스케줄 변경" class="tit_2" position="absolute 1 3 197 23"/>
  8. <Grid id="Grid00" taborder="2" useinputpanel="false" position="absolute 1 21 232 193" binddataset="ds_schedule">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="28"/>
  13. <Column size="90"/>
  14. <Column size="90"/>
  15. </Columns>
  16. <Rows>
  17. <Row size="24" band="head"/>
  18. <Row size="24"/>
  19. </Rows>
  20. <Band id="head">
  21. <Cell/>
  22. <Cell col="1" displaytype="normal" text="변경전"/>
  23. <Cell col="2" displaytype="normal" text="변경 후"/>
  24. </Band>
  25. <Band id="body">
  26. <Cell text="expr:currow+1"/>
  27. <Cell col="1" displaytype="date" style="background:EXPR((currow,'changeyn')==&quot;Y&quot;?&quot;#8EFDFF&quot;);background2:EXPR((currow,'changeyn')==&quot;Y&quot;?&quot;#8EFDFF&quot;);" text="bind:bef_prcpdd" editautoselect="false"/>
  28. <Cell col="2" displaytype="date" edittype="date" style="background:EXPR((currow,'changeyn')==&quot;Y&quot;?&quot;#8EFDFF&quot;);background2:EXPR((currow,'changeyn')==&quot;Y&quot;?&quot;#8EFDFF&quot;);" text="bind:aft_prcpdd" editautoselect="true" calendardisplaynulltype="none"/>
  29. </Band>
  30. </Format>
  31. </Formats>
  32. </Grid>
  33. <Button id="btn_save" taborder="3" text="저장" position="absolute 109 198 169 224" class="btn4" onclick="btn_save_onclick"/>
  34. <Button id="btn_exit" taborder="4" text="종료" class="btn4" position="absolute 171 198 231 224" onclick="btn_exit_onclick"/>
  35. </Layout>
  36. </Layouts>
  37. <Objects>
  38. <Dataset id="ds_schedule" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  39. <ColumnInfo>
  40. <Column id="bef_prcpdd" type="STRING" size="256"/>
  41. <Column id="aft_prcpdd" type="STRING" size="256"/>
  42. <Column id="lastupdtdt" type="STRING" size="256"/>
  43. <Column id="changeyn" type="STRING" size="256"/>
  44. </ColumnInfo>
  45. </Dataset>
  46. <Dataset id="ds_result" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  47. <ColumnInfo>
  48. <Column id="cnt" type="STRING" size="256"/>
  49. </ColumnInfo>
  50. <Rows>
  51. <Row/>
  52. </Rows>
  53. </Dataset>
  54. </Objects>
  55. <Script type="xscript4.0"><![CDATA[include "com_commonxp::comm_main.xjs";
  56. var chk=true;
  57. var cpgappno;
  58. function cf_TRADB01040(sSvcId, nErrorCode, sErrorMsg) {
  59. if(nErrorCode < 0) return;
  60. }
  61. /**
  62. * @desc : 화면 초기화
  63. * @
  64. * @param :
  65. * @return :
  66. * @author :
  67. * @---------------------------------------------------
  68. */
  69. function fInitialize_SMADB01030(){
  70. sysf_trace("opener = " + opener.name);
  71. cpgappno=opener.ds_grid_grd_prtlhislist.getColumn(opener.ds_grid_grd_prtlhislist.rowposition,"cpgappno");
  72. if(utlf_isNull(cpgappno)){
  73. susf_messageBox("잘못된 데이터가 ", "E005");
  74. this.close();
  75. }
  76. else{
  77. dsf_createDsRow("ds_send_reqdata", [{col:"cpgappno", type:"string", val:cpgappno}]);
  78. var oParam = {};
  79. oParam.id = "TRADB01040";
  80. oParam.service = "pharmacyprotocolapp.AnticancerProtocol";
  81. oParam.method = "reqGetScheduleInfo";
  82. oParam.inds = "req=ds_send_reqdata";
  83. oParam.outds = "ds_schedule=item";
  84. oParam.async = false;
  85. oParam.callback = "cf_TRADB01040";
  86. tranf_submit(oParam);
  87. }
  88. var cnt=ds_schedule.rowcount;
  89. if(cnt <= 0){
  90. sysf_messageBox("스케줄 변경은 2012년 9월 13일 이후 등록 된 처방에서만 ", "I006");
  91. this.close();
  92. }
  93. for(var i=0; i<ds_schedule.rowcount; i++){
  94. var changeyn=ds_schedule.getColumn(i,"changeyn");
  95. if(changeyn=="N"){
  96. ds_schedule.setColumn(i,"aft_prcpdd", ds_schedule.getColumn(i,"bef_prcpdd"));
  97. }
  98. }
  99. }
  100. /**
  101. * @desc : 일짜 변경 중 날짜 확인
  102. * @
  103. * @param :
  104. * @return :
  105. * @author :
  106. * @---------------------------------------------------
  107. */
  108. function fCheckDate(){
  109. var irow=ds_schedule.rowposition;
  110. var bef_prcpdd=ds_schedule.getColumn(irow,"bef_prcpdd");
  111. var aft_prcpdd=ds_schedule.getColumn(irow,"aft_prcpdd");
  112. if(!utlf_isNull(aft_prcpdd) && bef_prcpdd > aft_prcpdd){
  113. sysf_messageBox("잘못된 일자를 지정하셨습니다.", "I", "");
  114. ds_schedule.setColumn(irow,"aft_prcpdd", bef_prcpdd);
  115. return;
  116. }
  117. }
  118. /**
  119. * @desc : 스케줄변경 저장 전 정보확인
  120. * @
  121. * @param :
  122. * @return :
  123. * @author :
  124. * @---------------------------------------------------
  125. */
  126. function fChangeSchedule(){
  127. var sdate=ds_schedule.getColumn(0,"currentday");
  128. for(var i=0; i<ds_schedule.rowcount; i++){
  129. var idate=ds_schedule.getColumn(i,"aft_prcpdd");
  130. var chageyn=ds_schedule.getColumn(i,"changeyn");
  131. if(!utlf_isNull(idate) && chageyn=="Y"){
  132. for(var j=i+1; j<ds_schedule.rowcount; j++){
  133. var jdate=ds_schedule.getColumn(j,"aft_prcpdd");
  134. if(sdate > idate || idate >= jdate){
  135. sysf_messageBox("변경 후 일자가 잘못 등록되었습니다. 확인 후 진행하시기 바랍니다.\n- 현재일보다 과거 일자로 스케쥴 변경 불가 \n- 처방 적용일 순서 변경 불가", "I", "");
  136. chk=false;
  137. return;
  138. }
  139. }
  140. }
  141. }
  142. }
  143. /**
  144. * @desc : 스케줄변경 저장
  145. * @
  146. * @param :
  147. * @return :
  148. * @author :
  149. * @---------------------------------------------------
  150. */
  151. function fSaveSchedule(){
  152. chk=true;
  153. dsf_createDs("ds_send_savedata");
  154. ds_send_savedata.addColumn("cpgappno","string");
  155. ds_send_savedata.addColumn("bef_prcpdd","string");
  156. ds_send_savedata.addColumn("aft_prcpdd","string");
  157. ds_send_savedata.addColumn("lastupdtdt","string");
  158. fChangeSchedule();
  159. if(chk==true){
  160. for(var i=0; i<=ds_schedule.rowcount; i++){
  161. var bef_prcpdd=ds_schedule.getColumn(i,"bef_prcpdd");
  162. var aft_prcpdd=ds_schedule.getColumn(i,"aft_prcpdd");
  163. var lastupdtdt=ds_schedule.getColumn(i,"lastupdtdt");
  164. if(!utlf_isNull(aft_prcpdd)){
  165. var newrow = ds_send_savedata.addRow();
  166. ds_send_savedata.setColumn(newrow,"cpgappno",cpgappno);
  167. ds_send_savedata.setColumn(newrow,"bef_prcpdd",bef_prcpdd);
  168. ds_send_savedata.setColumn(newrow,"aft_prcpdd",aft_prcpdd);
  169. ds_send_savedata.setColumn(newrow,"lastupdtdt",lastupdtdt);
  170. }
  171. }
  172. if(ds_send_savedata.rowcount > 0)
  173. {
  174. var oParam = {};
  175. oParam.id = "TXADB01040";
  176. oParam.service = "pharmacyprotocolapp.AnticancerProtocol";
  177. oParam.method = "reqSetScheduleInfo";
  178. oParam.inds = "req=ds_send_savedata";
  179. oParam.outds = "ds_result=item";
  180. oParam.async = false;
  181. oParam.callback = "cf_TXADB01040";
  182. tranf_submit(oParam);
  183. }
  184. }else{
  185. return;
  186. }
  187. }
  188. function cf_TXADB01040(sSvcId, nErrorCode, sErrorMsg) {
  189. if(nErrorCode < 0) return;
  190. sysf_messageBox("변경되었습니다.", "I");
  191. this.close();
  192. }
  193. function SMADB01030_oninit(obj:Form, e:InitEventInfo)
  194. {
  195. frmf_initForm(obj);
  196. }
  197. function SMADB01030_onload(obj:Form, e:LoadEventInfo)
  198. {
  199. fInitialize_SMADB01030();
  200. }
  201. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  202. {
  203. fSaveSchedule();
  204. }
  205. function btn_exit_onclick(obj:Button, e:ClickEventInfo)
  206. {
  207. this.close();
  208. }
  209. function btn_close_onclick(obj:Button, e:ClickEventInfo)
  210. {
  211. this.close();
  212. }
  213. ]]></Script>
  214. </Form>
  215. </FDL>