SPMMO15600_HLA공여자등록.xfdl 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO15600" position="absolute 0 0 1100 662" titletext="HLA검사의뢰서" oninit="SPMMO15600_oninit" onload="SPMMO15600_onload" onclose="SPMMO15600_onclose">
  5. <Layouts>
  6. <Layout>
  7. <Static text="HLA검사 공여자 등록" position="absolute 0 0 152 31" align="align:center middle;" id="caption3" class="tit_2"/>
  8. <Shape position="absolute 8 26 1088 32" linetype="vertical" id="line1" class="line_1"/>
  9. <Grid position="absolute 0 31 1096 236" id="grd_dnorinfo" visible="true" binddataset="ds_main_dnorinfo" oncellclick="grd_dnorinfo_oncellclick" autofittype="col">
  10. <Formats>
  11. <Format id="default">
  12. <Columns>
  13. <Column size="37"/>
  14. <Column size="59"/>
  15. <Column size="0"/>
  16. <Column size="0"/>
  17. <Column size="111"/>
  18. <Column size="59"/>
  19. <Column size="49"/>
  20. <Column size="66"/>
  21. <Column size="407"/>
  22. </Columns>
  23. <Rows>
  24. <Row size="24" band="head"/>
  25. <Row size="24"/>
  26. </Rows>
  27. <Band id="head">
  28. <Cell displaytype="normal"/>
  29. <Cell col="1" displaytype="normal" text="처방여부"/>
  30. <Cell col="2" displaytype="normal" text="공여자번호"/>
  31. <Cell col="3" displaytype="normal" text="기관코드"/>
  32. <Cell col="4" displaytype="normal" text="이름"/>
  33. <Cell col="5" displaytype="normal" text="성별"/>
  34. <Cell col="6" displaytype="normal" text="나이"/>
  35. <Cell col="7" displaytype="normal" text="관계"/>
  36. <Cell col="8" displaytype="normal" text="전달사항"/>
  37. </Band>
  38. <Band id="body">
  39. <Cell displaytype="combo" edittype="combo" text="bind:status"/>
  40. <Cell col="1" displaytype="checkbox" edittype="checkbox" style="align:center;" text="bind:selectyn"/>
  41. <Cell col="2" displaytype="normal" text="bind:dnorid"/>
  42. <Cell col="3" displaytype="normal" text="bind:instcd"/>
  43. <Cell col="4" displaytype="text" edittype="text" text="bind:dnornm"/>
  44. <Cell col="5" displaytype="combo" edittype="combo" text="bind:dnorsex"/>
  45. <Cell col="6" displaytype="text" edittype="text" text="bind:dnorage" mask="###"/>
  46. <Cell col="7" displaytype="combo" edittype="combo" text="bind:dnorrela"/>
  47. <Cell col="8" displaytype="text" edittype="text" text="bind:remfact"/>
  48. </Band>
  49. </Format>
  50. </Formats>
  51. </Grid>
  52. <Button position="absolute 966 9 1008 28" id="btn_new" class="btn2_letter2" text="신규" onclick="btn_new_onclick"/>
  53. <Button position="absolute 921 9 963 28" id="btn_delete" class="btn2_letter2" text="삭제" onclick="btn_delete_onclick"/>
  54. <Button position="absolute 1011 9 1053 28" id="btn_save" class="btn2_letter2" text="저장" onclick="btn_save_onclick"/>
  55. <Button position="absolute 1055 9 1097 28" id="btn_cancel" class="btn5" text="취소" onclick="btn_cancel_onclick"/>
  56. <Div id="iviewer1" taborder="1" position="absolute 0 250 1096 649" url="lis_refprintmngtxp::SPLLP90200_HLA결과조회.xfdl"/>
  57. </Layout>
  58. </Layouts>
  59. <Objects>
  60. <Dataset id="ds_main_dnorinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" reversesubsum="false" oncolumnchanged="ds_main_dnorinfo_oncolumnchanged">
  61. <ColumnInfo>
  62. <Column id="status" type="STRING"/>
  63. <Column id="selectyn" type="STRING"/>
  64. <Column id="dnorid" type="STRING"/>
  65. <Column id="instcd" type="STRING"/>
  66. <Column id="dnornm" type="STRING"/>
  67. <Column id="dnorsex" type="STRING"/>
  68. <Column id="dnornm" type="STRING"/>
  69. <Column id="dnorsex" type="STRING"/>
  70. <Column id="dnorage" type="STRING"/>
  71. <Column id="dnorrela" type="STRING"/>
  72. <Column id="remfact" type="STRING"/>
  73. <Column id="pid" type="STRING"/>
  74. <Column id="orddd" type="STRING"/>
  75. <Column id="cretno" type="STRING"/>
  76. <Column id="fstrgstrid" type="STRING"/>
  77. <Column id="fstrgstdt" type="STRING"/>
  78. <Column id="lastupdtrid" type="STRING"/>
  79. <Column id="lastupdtdt" type="STRING"/>
  80. </ColumnInfo>
  81. </Dataset>
  82. <Dataset id="ds_P0313" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  83. <Dataset id="ds_A0163" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  84. <Dataset id="ds_paminfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  85. <Dataset id="ds_send_reqdata" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  86. <ColumnInfo>
  87. <Column id="pid" type="STRING" size="256"/>
  88. <Column id="orddd" type="STRING" size="256"/>
  89. <Column id="cretno" type="STRING" size="256"/>
  90. </ColumnInfo>
  91. <Rows>
  92. <Row/>
  93. </Rows>
  94. </Dataset>
  95. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  96. <ColumnInfo>
  97. <Column id="dnorsex" type="STRING" size="256"/>
  98. <Column id="dnorrela" type="STRING" size="256"/>
  99. <Column id="paminfo" type="STRING" size="256"/>
  100. <Column id="rcnt" type="STRING" size="256"/>
  101. <Column id="closestat" type="STRING" size="256"/>
  102. </ColumnInfo>
  103. <Rows>
  104. <Row>
  105. <Col id="dnorsex"/>
  106. <Col id="dnorrela"/>
  107. <Col id="paminfo"/>
  108. <Col id="rcnt"/>
  109. <Col id="closestat">N</Col>
  110. </Row>
  111. </Rows>
  112. </Dataset>
  113. <Dataset id="ds_reset_dnorinfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  114. </Objects>
  115. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  116. * System Name :
  117. * Job Name :
  118. * Creator :
  119. * Make Date : 2014-12-10
  120. * Description :
  121. *---------------------------------------------------------------------------------------
  122. * Modify Date Modifier Modify Description
  123. *---------------------------------------------------------------------------------------
  124. * 2014-12-10 Live Converter TF->XP
  125. *
  126. *---------------------------------------------------------------------------------------
  127. ****************************************************************************************/
  128. include "com_commonxp::comm_main.xjs";
  129. include "emr_prcpmngtxp::MMO001.xjs";
  130. function SPMMO15600_oninit(obj:Form, e:InitEventInfo)
  131. {
  132. frmf_initForm(obj);
  133. var arrParam = [{dsNm: "ds_P0313", cdGrpId: "P0313"}
  134. ,{dsNm: "ds_A0163", cdGrpId: "A0163"}]
  135. appf_getCodeList(arrParam);
  136. dsf_setCSVToDs("ds_paminfo", sysf_getGlobalVariable("paminfo")); // setCSVToNode ( "/root/init/paminfo", getGlobalVariable("paminfo") );
  137. // iviewer1.ds_hidden_refparam.setColumn(0, "pid", opener.ds_paminfo.getColumn(0, "pid"));
  138. }
  139. function SPMMO15600_onload(obj:Form, e:LoadEventInfo)
  140. {
  141. var hlaselfprcpcd = "1|2|3|4|5"; //opener.frmf_getParameter("SPMMO15600_hlaselfprcpcd");
  142. var hlaselfprcpcdsplit = hlaselfprcpcd.split("|");
  143. var hlaselfprcpcd1 = hlaselfprcpcdsplit[0];
  144. var hlaselfprcpcd2 = hlaselfprcpcdsplit[1];
  145. var hlaselfprcpcd3 = hlaselfprcpcdsplit[2];
  146. ds_send_reqdata.setColumn(0, "pid", ds_paminfo.getColumn(0, "pid"));
  147. if (ds_paminfo.getColumn(0, "ioflag") == "O" ) {
  148. ds_send_reqdata.setColumn(0, "orddd", ds_paminfo.getColumn(0, "orddd"));
  149. } else {
  150. ds_send_reqdata.setColumn(0, "orddd", ds_paminfo.getColumn(0, "indd"));
  151. }
  152. ds_send_reqdata.setColumn(0, "cretno", ds_paminfo.getColumn(0, "cretno"));
  153. var oParam = {};
  154. oParam.id = "TRMMO15601";
  155. oParam.service = "prcpmngtapp.PrcpMngt";
  156. oParam.method = "reqGetDnorInfo";
  157. oParam.inds = "reqdata=ds_send_reqdata";
  158. oParam.outds = "ds_main_dnorinfo=dnorinfo";
  159. oParam.async = false;
  160. oParam.callback = "cf_TRMMO15601";
  161. tranf_submit(oParam);
  162. }
  163. function cf_TRMMO15601(sSvcId, nErrorCode, sErrorMsg) {
  164. if(nErrorCode < 0) return;
  165. }
  166. function SPMMO15600_onclose(obj:Form, e:CloseEventInfo)
  167. {
  168. if ( ds_init.getColumn(0, "rcnt") == "" || ds_init.getColumn(0, "closestat") != "Y") {
  169. opener.frmf_setParameter("SPMMO15600_addcnt", parseInt(opener.frmf_getParameter("SPMMO15600_srchRow")) );
  170. } else {
  171. opener.frmf_setParameter("SPMMO15600_addcnt", parseInt(opener.frmf_getParameter("SPMMO15600_srchRow")) );
  172. opener.javascript.setParameter("SPMMO15600_addcnt", parseInt(ds_init.getColumn(0, "rcnt")) + parseInt(opener.frmf_getParameter("SPMMO15600_srchRow")) - 1);
  173. }
  174. }
  175. // 사용하는 메서드인지 확인 필요
  176. function fDeleteSelectedRows(grd, markonly) {
  177. alert(" fDeleteSelectedRows 사용하는 메서드인지 확인 필요 ");
  178. /*
  179. var rowIdx;
  180. var selectedRows = grdf_getSelectedRows(grd);
  181. if (selectedRows.length > 0) {
  182. // var selectedRows = Array(grd.selectedRows);
  183. // for(i = 0; i < selectedRows.length; i++) {
  184. // selectedRows[i] = grd.selectedRow(i);
  185. // }
  186. if (markonly != null && markonly == true) { // mark delete
  187. for( i = selectedRows.length - 1; i >= 0; i-- ) {
  188. rowIdx = selectedRows[i];
  189. if( grd.rowstatus(rowIdx) == 1 ) { // grd.rowstatus(rowIdx) == 1 just inserted row 11일 여기부터
  190. grd.deleterow(rowIdx,false);
  191. } else {
  192. grd.addStatus(rowIdx,"delete");
  193. }
  194. }
  195. } else {
  196. for(i=selectedRows.length-1;i>=0;i--) {
  197. rowIdx = selectedRows[i];
  198. grd.deleterow(rowIdx,false);
  199. }
  200. }
  201. }*/
  202. }
  203. function ds_main_dnorinfo_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  204. {
  205. // onendedit start
  206. if ( ds_main_dnorinfo.getColumn(ds_main_dnorinfo.rowposition, "status") != "I" ) {
  207. ds_main_dnorinfo.setColumn(ds_main_dnorinfo.rowposition, "status", "U");
  208. }
  209. // onendedit end
  210. }
  211. function grd_dnorinfo_oncellclick(obj:Grid, e:GridClickEventInfo)
  212. {
  213. if( e.row > -1 && e.col > -1 ) {
  214. if ( obj.getCellPos() == obj.getBindCellIndex("body", "selectyn") ) {
  215. if ( ds_main_dnorinfo.getColumn(ds_main_dnorinfo.rowposition, "status") == "D" ) {
  216. ds_main_dnorinfo.setColumn(ds_main_dnorinfo.rowposition, "selectyn", "false");
  217. //model.setValue("/root/main/dnorinfo/dnorinfo["+grd_dnorinfo.row+"]/selectyn", "false" );
  218. }
  219. ds_init.setColumn(0, "rcnt", ds_main_dnorinfo.getCaseCount("selectyn == 'true'"));
  220. //model.setValue("/root/init/rcnt", model.instances(0).selectNodes ( "/root/main/dnorinfo/dnorinfo[selectyn='true']" ).length );
  221. }
  222. }
  223. }
  224. function btn_new_onclick(obj:Button, e:ClickEventInfo)
  225. {
  226. lf_appendChildPrcp ( "ds_reset_dnorinfo", "ds_main_dnorinfo", "main", "I" ); //appendChildPrcp ( "/root/reset/dnorinfo", "/root/main/dnorinfo", "main" , "I");
  227. }
  228. function btn_delete_onclick(obj:Button, e:ClickEventInfo)
  229. {
  230. if ( ds_main_dnorinfo.getColumn(ds_main_dnorinfo.rowposition, "status") == "I" )
  231. ds_main_dnorinfo.deleteRow(ds_main_dnorinfo.rowposition); //model.removenode("/root/main/dnorinfo/dnorinfo["+grd_dnorinfo.row+"]");
  232. else{
  233. if ( ds_main_dnorinfo.getColumn(ds_main_dnorinfo.rowposition, "existyn") == "Y" ) { // model.getValue("/root/main/dnorinfo/dnorinfo["+grd_dnorinfo.row+"]/existyn") == "Y"
  234. sysf_messageBox("삭제하려는 공여자에게 발행된 전처방이 있어 삭제할 수 없습니다.", "I");
  235. // opener.model.instances(0).selectNodes ( "/root/main/prcp/prcplist[dnorreqlnkno='"+model.getValue("/root/main/dnorinfo/dnorinfo["+grd_dnorinfo.row+"]/dnorid")+"']" ).length > 0
  236. } else if ( opener.ds_main_prcplist.getCaseCount("dnorreqlnkno == '" + ds_main_dnorinfo.getColumn(ds_main_dnorinfo.rowposition, "dnorid") + "'") > 0 ) {
  237. sysf_messageBox("현재 처방리스트에 삭제하려는 공여자에게 발행될 처방이 있어 삭제할 수 없습니다.", "I");
  238. } else {
  239. ds_main_dnorinfo.setColumn(ds_main_dnorinfo.rowposition, "status", "D");
  240. }
  241. ds_main_dnorinfo.setColumn(ds_main_dnorinfo.rowposition, "selectyn", "false"); //model.setValue("/root/main/dnorinfo/dnorinfo[" + grd_dnorinfo.row + "]/selectyn", "false");
  242. }
  243. ds_init.setColumn(0, "rcnt", ds_main_dnorinfo.getCaseCount("selectyn == 'true'")); //model.setValue("/root/init/rcnt", model.instances(0).selectNodes ( "/root/main/dnorinfo/dnorinfo[selectyn='true']" ).length );
  244. //grd_dnorinfo.refresh();
  245. }
  246. function btn_save_onclick(obj:Button, e:ClickEventInfo)
  247. {
  248. var rows = ds_main_dnorinfo.rowcount; //grd_dnorinfo.rows;
  249. if (rows == 1 ) {
  250. close();
  251. }
  252. var spid = ds_send_reqdata.getColumn(0, "pid");
  253. var sorddd = ds_send_reqdata.getColumn(0, "orddd");
  254. var scretno = ds_send_reqdata.getColumn(0, "cretno");
  255. var selstr = "";
  256. var sdnorid = "";
  257. for(var i = 0; i < rows; i++){
  258. ds_main_dnorinfo.setColumn(i, "pid", pid);
  259. ds_main_dnorinfo.setColumn(i, "orddd", sorddd);
  260. ds_main_dnorinfo.setColumn(i, "cretno", scretno);
  261. if ( ds_main_dnorinfo.getColumn(i, "selectyn") == "true" ) { // model.getValue("/root/main/dnorinfo/dnorinfo[" + i + "]/selectyn") == "true"
  262. selstr = selstr + ds_main_dnorinfo.getColumn(i, "dnornm") + "|"; //model.getValue("/root/main/dnorinfo/dnorinfo[" + i + "]/dnornm") + "|";
  263. }
  264. }
  265. //model.instances(0).selectNodes( "/root/main/dnorinfo/dnorinfo" );
  266. //model.setValue("/root/send/savedata", getNodeListCSV(saveNodeList) );
  267. dsf_createDs("ds_send_savedata");
  268. ds_send_savedata.copyData(ds_main_dnorinfo);
  269. var oParam = {};
  270. oParam.id = "TXMMO15601";
  271. oParam.service = "prcpmngtapp.PrcpMngt";
  272. oParam.method = "reqExeSaveDnorInfo";
  273. oParam.inds = "savedata=ds_send_savedata";
  274. oParam.outds = "ds_main_dnorinfo=dnorinfo";
  275. oParam.async = false;
  276. oParam.callback = "cf_TXMMO15601";
  277. tranf_submit(oParam);
  278. for(i = 0; i < rows; i++){
  279. // model.getValue("/root/main/dnorinfo/dnorinfo["+i+"]/dnornm") != "" && selstr.indexOf(model.getValue("/root/main/dnorinfo/dnorinfo["+i+"]/dnornm")) >= 0
  280. if ( ds_main_dnorinfo.getColumn(i, "dnornm") != "" && selstr.indexOf(ds_main_dnorinfo.getColumn(i, "dnornm")) >= 0 ) {
  281. if (sdnorid == "" ) {
  282. sdnorid = ds_main_dnorinfo.getColumn(i, "dnorid"); //model.getValue("/root/main/dnorinfo/dnorinfo[" + i + "]/dnorid");
  283. }
  284. else {
  285. sdnorid = sdnorid + '|' + ds_main_dnorinfo.getColumn(i, "dnorid"); //sdnorid + '|' + model.getValue("/root/main/dnorinfo/dnorinfo[" + i + "]/dnorid");
  286. }
  287. ds_main_dnorinfo.setColumn(i, "selectyn", "true"); //model.setValue("/root/main/dnorinfo/dnorinfo[" + i + "]/selectyn", "true");
  288. }
  289. }
  290. // grd_dnorinfo.refresh();
  291. // opener.grd_prcplist.refresh();
  292. var currow = parseInt(opener.frmf_getParameter("SPMMO15600_srchRow"));
  293. var prcpcd = opener.ds_main_prcplist.getColumn(currow, "prcpcd"); // model.getValue( "/root/main/prcp/prcplist[" + currow + "]/prcpcd" );
  294. //var destNode;
  295. if ( sdnorid != "" ) {
  296. var sepDnorid = sdnorid.split("|");
  297. for ( i = 0; i < sepDnorid.length; i++ ){
  298. if (i == 0 ) {
  299. opener.ds_main_prcplist.setColumn(currow, "dnorreqlnkno", sepDnorid[i]); //opener.model.setValue( "/root/main/prcp/prcplist[" + currow+ "]/dnorreqlnkno", sepDnorid[i]);
  300. opener.ds_main_prcplist.setColumn(currow, "payflagcd", "1"); //opener.model.setValue( "/root/main/prcp/prcplist[" + currow+ "]/payflagcd", "1");
  301. } else {
  302. //destNode = opener.model.instances(0).selectSingleNode( "/root/main/prcp" )
  303. lf_prcpSrchCom(prcpcd, opener.ds_init.getColumn(0, "prcpdd"), opener.ds_paminfo.getColumn(0, "insukind"), "TRMMO00100", "", false, "getPrcpCdSrchInfo");
  304. ds_prcpsrch_prcplist.setColumn(0, "status", "I");
  305. lf_addPrcpDetl("child", "ds_prcpsrch_prcplist", "ds_main_prcplist", 0, currow, "00" );
  306. opener.ds_main_prcplist.setColumn(currow, "dnorreqlnkno", sepDnorid[i]);
  307. opener.ds_main_prcplist.setColumn(currow, "payflagcd", "1");
  308. }
  309. currow = currow + 1;
  310. }
  311. }
  312. //opener.grd_prcplist.refresh();
  313. ds_init.setColumn(0, "closestat", "Y");
  314. close();
  315. }
  316. function cf_TXMMO15601(sSvcId, nErrorCode, sErrorMsg) {
  317. if(nErrorCode < 0) return;
  318. }
  319. function btn_cancel_onclick(obj:Button, e:ClickEventInfo)
  320. {
  321. ds_init.setColumn(0, "closestat", "N"); //model.setValue("/root/init/closestat", "N");
  322. close();
  323. }
  324. ]]></Script>
  325. </Form>
  326. </FDL>