SPADC02700_CarePlan내용입력.xfdl 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPADC02700" position="absolute 0 0 626 380" titletext="Care Plan 내용 입력" oninit="SPADC02700_oninit" onload="SPADC02700_onload">
  5. <Layouts>
  6. <Layout>
  7. <Shape id="line4" class="line_10" position="absolute 0 29 305 33"/>
  8. <Grid id="datagrid1" taborder="1" binddataset="ds_init_aebmbscddata_codelist" useinputpanel="false" autofittype="col" oncellclick="datagrid1_oncellclick" position="absolute 0 33 305 350">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="0"/>
  13. <Column size="0"/>
  14. <Column size="95"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="127"/>
  18. </Columns>
  19. <Rows>
  20. <Row size="24" band="head"/>
  21. <Row size="24"/>
  22. </Rows>
  23. <Band id="head">
  24. <Cell/>
  25. <Cell col="1"/>
  26. <Cell col="2" text="대분류"/>
  27. <Cell col="3"/>
  28. <Cell col="4"/>
  29. <Cell col="5" text="소분류"/>
  30. </Band>
  31. <Band id="body">
  32. <Cell text="bind:mbasecd"/>
  33. <Cell col="1" text="bind:mbasecdcnts"/>
  34. <Cell col="2" displaytype="text" edittype="none" text="bind:mbasecdflagdesc" wordwrap="word"/>
  35. <Cell col="3" text="bind:sbasecd"/>
  36. <Cell col="4" text="bind:sbasecdcnts"/>
  37. <Cell col="5" displaytype="text" edittype="none" text="bind:sbasecdflagdesc"/>
  38. </Band>
  39. </Format>
  40. </Formats>
  41. </Grid>
  42. <Static id="caption2" text="대분류, 중분류 표" class="tit_2" position="absolute 0 12 139 30"/>
  43. <Shape id="line3" class="line_10" position="absolute 312 29 617 33"/>
  44. <Grid id="datagrid2" taborder="2" binddataset="ds_main_careplandata_list" useinputpanel="false" autofittype="col" oncellclick="datagrid2_oncellclick" position="absolute 312 33 617 295">
  45. <Formats>
  46. <Format id="default">
  47. <Columns>
  48. <Column size="146"/>
  49. <Column size="136"/>
  50. </Columns>
  51. <Rows>
  52. <Row size="24" band="head"/>
  53. <Row size="24"/>
  54. </Rows>
  55. <Band id="head">
  56. <Cell text="Problem"/>
  57. <Cell col="1" text="Plan"/>
  58. </Band>
  59. <Band id="body">
  60. <Cell text="bind:problem" edittype="text" displaytype="text"/>
  61. <Cell col="1" text="bind:careplan" edittype="text" displaytype="text"/>
  62. </Band>
  63. </Format>
  64. </Formats>
  65. </Grid>
  66. <Calendar id="ipt_rgstdd" taborder="3" autoselect="true" dateformat="yyyy-MM-dd" position="absolute 527 300 617 319" mask="yyyy-mm-dd"/>
  67. <Static id="caption11" text="* 등록일자 :" position="absolute 437 300 522 320" style="font:Dotum,9,bold;"/>
  68. <MaskEdit id="ipt_rgsttm" taborder="4" displaynulltext=" " type="string" mask="##:##" autoselect="true" position="absolute 527 320 592 339" style="align:center middle;"/>
  69. <Static id="caption12" text="* 등록시간 :" position="absolute 437 320 522 340" style="font:Dotum,9,bold;"/>
  70. <Button id="button4" taborder="5" text="확인" class="btn4" position="absolute 562 354 618 376" onclick="button4_onclick"/>
  71. <Button id="button5" taborder="6" text="초기화" onclick="button5_onclick" class="btn4" position="absolute 492 354 560 376"/>
  72. <Shape id="line1" class="line_3" position="absolute 310 346 617 352"/>
  73. <Static id="caption4" text="Care Plan" class="tit_2" position="absolute 313 12 438 30"/>
  74. <Button id="button3" taborder="7" text="행추가" class="btn2" position="absolute 508 6 561 28" onclick="button3_onclick"/>
  75. <Button id="button2" taborder="8" text="행삭제" class="btn2" position="absolute 564 6 617 28" onclick="button2_onclick"/>
  76. </Layout>
  77. </Layouts>
  78. <Objects>
  79. <Dataset id="ds_main_careplandata_list" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  80. <ColumnInfo>
  81. <Column id="problem" type="STRING" size="256"/>
  82. <Column id="careplan" type="STRING" size="256"/>
  83. </ColumnInfo>
  84. <Rows>
  85. <Row>
  86. <Col id="problem"/>
  87. <Col id="careplan"/>
  88. </Row>
  89. </Rows>
  90. </Dataset>
  91. <Dataset id="ds_send_searchitem" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  92. <ColumnInfo>
  93. <Column id="basecdcnts" type="STRING" size="256"/>
  94. <Column id="basesuppdeptcd" type="STRING" size="256"/>
  95. <Column id="cdgrupid" type="STRING" size="256"/>
  96. </ColumnInfo>
  97. <Rows>
  98. <Row>
  99. <Col id="basecdcnts"/>
  100. <Col id="basesuppdeptcd"/>
  101. <Col id="cdgrupid"/>
  102. </Row>
  103. </Rows>
  104. </Dataset>
  105. <Dataset id="ds_init_aebmbscddata_codelist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  106. <ColumnInfo>
  107. <Column id="mbasecd" type="STRING" size="256"/>
  108. <Column id="mbasecdcnts" type="STRING" size="256"/>
  109. <Column id="mbasecdflagdesc" type="STRING" size="256"/>
  110. <Column id="sbasecd" type="STRING" size="256"/>
  111. <Column id="sbasecdcnts" type="STRING" size="256"/>
  112. <Column id="sbasecdflagdesc" type="STRING" size="256"/>
  113. </ColumnInfo>
  114. <Rows>
  115. <Row>
  116. <Col id="mbasecd"/>
  117. <Col id="mbasecdcnts"/>
  118. <Col id="mbasecdflagdesc"/>
  119. <Col id="sbasecd"/>
  120. <Col id="sbasecdcnts"/>
  121. <Col id="sbasecdflagdesc"/>
  122. </Row>
  123. </Rows>
  124. </Dataset>
  125. <Dataset id="ds_init_opnerdatanstinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  126. <ColumnInfo>
  127. <Column id="nstflag" type="STRING" size="256"/>
  128. <Column id="nodepath" type="STRING" size="256"/>
  129. </ColumnInfo>
  130. <Rows>
  131. <Row>
  132. <Col id="nstflag"/>
  133. <Col id="nodepath"/>
  134. </Row>
  135. </Rows>
  136. </Dataset>
  137. <Dataset id="ds_hidden" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  138. <ColumnInfo>
  139. <Column id="careplangridrow" type="STRING" size="256"/>
  140. <Column id="careplangridcol" type="STRING" size="256"/>
  141. <Column id="rgstdd" type="STRING" size="256"/>
  142. <Column id="rgsttm" type="STRING" size="256"/>
  143. </ColumnInfo>
  144. <Rows>
  145. <Row>
  146. <Col id="careplangridrow"/>
  147. <Col id="careplangridcol"/>
  148. </Row>
  149. </Rows>
  150. </Dataset>
  151. </Objects>
  152. <Bind>
  153. <BindItem id="item0" compid="ipt_rgstdd" propid="value" datasetid="ds_hidden" columnid="rgstdd"/>
  154. <BindItem id="item1" compid="ipt_rgsttm" propid="value" datasetid="ds_hidden" columnid="rgsttm"/>
  155. </Bind>
  156. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  157. * System Name :
  158. * Job Name :
  159. * Creator :
  160. * Make Date : 2015-11-13
  161. * Description :
  162. *---------------------------------------------------------------------------------------
  163. * Modify Date Modifier Modify Description
  164. *---------------------------------------------------------------------------------------
  165. * 2015-11-13 Live Converter TF->XP
  166. *
  167. *---------------------------------------------------------------------------------------
  168. ****************************************************************************************/
  169. include "com_commonxp::comm_main.xjs";
  170. include "ast_examcurexp::AEZ0001.xjs";
  171. include "ast_commonxp::AST.xjs";
  172. /******************************************************************
  173. * Argument :
  174. * Description : 초기화
  175. ******************************************************************/
  176. function SPADC02700_oninit(obj:Form, e:InitEventInfo)
  177. {
  178. frmf_initForm(obj);
  179. }
  180. function SPADC02700_onload(obj:Form, e:LoadEventInfo)
  181. {
  182. try{
  183. ds_init_opnerdatanstinfo.copyData(arg_ds_init_opnerdatanstinfo);
  184. }catch(e){
  185. }
  186. ds_send_searchitem.setColumn(0, "cdgrupid", "PN02");
  187. // CarePlan 기준 코드 조회하기 (영양팀과 동일방법으로 조회)
  188. var oParam = {};
  189. oParam.id = "TRADC02613";
  190. oParam.service = "pharmacybaseapp.ComCode";
  191. oParam.method = "reqGetCareplanCodeInfo";
  192. oParam.inds = "req=ds_send_searchitem";
  193. oParam.outds = "ds_init_aebmbscddata=codelist";
  194. oParam.async = false;
  195. //oParam.callback = "cf_TRADC02613";
  196. tranf_submit(oParam);
  197. var nstflag = ds_init_opnerdatanstinfo.getColumn(0, "nstflag"); // 의뢰구분
  198. var NstNodepathMain = ds_init_opnerdatanstinfo.getColumn(0, "nodepath"); //opner Node Path - root/main/ennstinfo/
  199. var NstNodepathMainDS = opener.objects[NstNodepathMain+"_careplaninfo"];
  200. // 수행시간을 현재 시간으로 세팅
  201. var curDt = utlf_getCurrentDateTime().split(" ");
  202. var getRgstdd = NstNodepathMainDS.getColumn(0, "rgstdd");
  203. var getRgsttm = NstNodepathMainDS.getColumn(0, "rgsttm");
  204. // 등록일자, 등록시간 세팅
  205. if( utlf_isNull(getRgstdd) || utlf_isNull(getRgsttm) || getRgstdd == "99991231" || getRgsttm == "235959"){
  206. ds_hidden.setColumn(0, "rgstdd", curDt[0]);
  207. ds_hidden.setColumn(0, "rgsttm", curDt[1]);
  208. } else {
  209. ds_hidden.setColumn(0, "rgstdd", getRgstdd);
  210. ds_hidden.setColumn(0, "rgsttm", getRgsttm);
  211. }
  212. // Care Plan 의 problem, plan 데이터 세팅
  213. var carePlanData = NstNodepathMainDS.getColumn(0, "problemcareplan");
  214. // 로우 데이터 별로 나누기
  215. carePlanData = carePlanData.split("§");
  216. for( var i = 0; i < carePlanData.length; i++ ){
  217. var problemPlanData = new Array();
  218. problemPlanData = String(carePlanData).split("▦");
  219. var addRow = ds_main_careplandata_list.addRow();
  220. ds_main_careplandata_list.setColumn(addRow, "problem", problemPlanData[0]);
  221. ds_main_careplandata_list.setColumn(addRow, "careplan", problemPlanData[1]);
  222. }
  223. }
  224. /******************************************************************
  225. * Argument :
  226. * Description : 행추가 Button Event
  227. ******************************************************************/
  228. function button3_onclick(obj:Button, e:ClickEventInfo)
  229. {
  230. ds_main_careplandata_list.addRow();
  231. }
  232. /******************************************************************
  233. * Argument :
  234. * Description : 행삭제 Button Event
  235. ******************************************************************/
  236. function button2_onclick(obj:Button, e:ClickEventInfo)
  237. {
  238. ds_main_careplandata_list.deleteRow(ds_main_careplandata_list.rowposition);
  239. }
  240. /******************************************************************
  241. * Argument :
  242. * Description : 초기화 Button Event
  243. ******************************************************************/
  244. function button5_onclick(obj:Button, e:ClickEventInfo)
  245. {
  246. if( sysf_messageBox("초기화하시겠습니까?", "Q") == 6 ){
  247. SPADC02700_onload();
  248. }
  249. }
  250. /******************************************************************
  251. * Argument :
  252. * Description :
  253. ******************************************************************/
  254. function datagrid1_oncellclick(obj:Grid, e:GridClickEventInfo)
  255. {
  256. var mousRow = e.row; // 마우스로 선택된 현재 행의 번호
  257. var mousCol = e.col; // 마우스로 선택된 열의 번호
  258. // var fixedRows = datagrid1.fixedRows; // 고정된 행의 갯수
  259. // var fixedCols = datagrid1.fixedCols; // 고정된 열의 갯수
  260. var mousRow2 = ds_hidden.getColumn(0,"careplangridrow");
  261. var mousCol2 = ds_hidden.getColumn(0,"careplangridcol");
  262. // var fixedRows2 = datagrid2.fixedRows; // 고정된 행의 갯수
  263. if( (mousRow > -1) && (datagrid1.getBindCellIndex("body","sbasecdflagdesc") == mousCol) ) { // && event.target != "datagrid1.vscroll.thumb") {
  264. if( (mousRow2 > -1) && (datagrid2.getBindCellIndex("body","problem") == mousCol2) ) {
  265. var problem = utlf_transNullToEmpty(ds_main_careplandata_list.getColumn(mousRow2, "problem"));
  266. if(problem == "") {
  267. problem = utlf_transNullToEmpty(ds_init_aebmbscddata_codelist.getColumn(mousRow, "sbasecdflagdesc"));
  268. ds_main_careplandata_list.setColumn(mousRow2, "problem", problem);
  269. } else {
  270. problem = problem + ", " + utlf_transNullToEmpty(ds_init_aebmbscddata_codelist.getColumn(mousRow, "sbasecdflagdesc"));
  271. ds_main_careplandata_list.setColumn(mousRow2, "problem", problem);
  272. }
  273. } else if( (mousRow2 > -1) && (datagrid2.getBindCellIndex("body","careplan") == mousCol2) ) {
  274. var careplan = utlf_transNullToEmpty(ds_main_careplandata_list.getColumn(mousRow2, "careplan"));
  275. if(careplan == "") {
  276. careplan = utlf_transNullToEmpty(ds_init_aebmbscddata_codelist.getColumn(mousRow, "sbasecdflagdesc"));
  277. ds_main_careplandata_list.setColumn(mousRow2, "careplan", careplan);
  278. } else {
  279. careplan = careplan + ", " + utlf_transNullToEmpty(ds_init_aebmbscddata_codelist.getColumn(mousRow, "sbasecdflagdesc"));
  280. ds_main_careplandata_list.setColumn(mousRow2, "careplan", careplan);
  281. }
  282. }
  283. }
  284. // datagrid2.resizeCells();
  285. // datagrid1.refresh();
  286. }
  287. function datagrid2_oncellclick(obj:Grid, e:GridClickEventInfo)
  288. {
  289. var mousRow = e.row; // 마우스로 선택된 현재 행의 번호
  290. var mousCol = e.col; // 마우스로 선택된 열의 번호
  291. // var fixedRows = datagrid2.fixedRows; // 고정된 행의 갯수
  292. if( (mousRow > -1) && (datagrid2.getBindCellIndex("body","problem") == mousCol || datagrid2.getBindCellIndex("body","careplan") == mousCol) ) {
  293. ds_hidden.setColumn(0,"careplangridrow", mouseRow);
  294. ds_hidden.setColumn(0,"careplangridcol", mouseCol);
  295. }
  296. }
  297. function button4_onclick(obj:Button, e:ClickEventInfo)
  298. {
  299. var NstNodepathMain = ds_init_opnerdatanstinfo.getColumn(0, "nodepath"); //opner Node Path - root/main/ennstinfo/
  300. var sColSep = "▦";
  301. var sRowSep = "§";
  302. // 그리드 헤더값 생성
  303. var rCSV = "";
  304. var gridRow = ds_main_careplandata.rowcount; // 데이터 로우 종 갯수
  305. var NstNodepathMainDS = this.objects[NstNodepathMain + "_careplaninfo"];
  306. // 그리드 데이터가 없으면 메서드 종료
  307. if( gridRow < 1) {
  308. return;
  309. }
  310. if( utlf_isNull(ds_hidden.getColumn(0, "rgstdd")) ){
  311. alert("「등록일자」 를 입력해주세요");
  312. return false;
  313. }
  314. if( utlf_isNull(ds_hidden.getColumn(0, "rgsttm")) ) {
  315. alert("「등록시간」 을 입력해주세요");
  316. return false;
  317. }
  318. // Care Plan 관련 데이터 생성
  319. for( var i = 1; 0 < gridRow; ++i ){
  320. // 필수 데이터 체크
  321. if( utlf_isNull(ds_main_careplandata.getColumn(i, "problem")) ||
  322. utlf_isNull(ds_main_careplandata.getColumn(i, "careplan")) ) {
  323. alert(i + "번째 데이터에 필수 항목인 「Problem」 및 「Plan」을 입력 해주세요");
  324. return;
  325. }
  326. if( i == 0){
  327. rCSV +=
  328. ds_main_careplandata_list.getColumn(i, "problem") + sColSep + ds_main_careplandata_list.getColumn(i, "careplan");
  329. } else {
  330. rCSV +=
  331. sRowSep +
  332. ds_main_careplandata_list.getColumn(i, "problem") + sColSep +
  333. ds_main_careplandata_list.getColumn(i, "careplan");
  334. }
  335. }
  336. opener.NstNodepathMainDS.setColumn(0, "workflag" , "004"); // 작업구분(001:Treatment, 004:Nutrition Management, 003:Discharge, 002:Activity/Rehabilitation, 005:Nursing Care, 999:Other Care)
  337. opener.NstNodepathMainDS.setColumn(0, "problemcareplan" , rCSV); // PLOBLEM CAREPLAN
  338. opener.NstNodepathMainDS.setColumn(0, "rgstdd" , ds_hidden.getColumn(0, "rgstdd")); // 등록일자
  339. opener.NstNodepathMainDS.setColumn(0, "rgsttm" , ds_hidden.getColumn(0, "rgsttm")); // 등록시분초
  340. this.close();
  341. }
  342. ]]></Script>
  343. </Form>
  344. </FDL>