SPMMO90200_처방전사유리스트.xfdl 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO90200" position="absolute 0 0 843 531" titletext="처방사유 입력" oninit="SPMMO90200_oninit" onload="SPMMO90200_onload">
  5. <Layouts>
  6. <Layout>
  7. <Static text="처방 사유 입력" position="absolute 0 0 126 20" id="caption1" class="tit_2"/>
  8. <Grid position="absolute 0 18 843 273" id="grd_prcpmsglist" binddataset="ds_result_prcpmsglist" autofittype="col" oncellclick="grd_prcpmsglist_oncellclick" autosizingtype="row" cellsizingtype="col" extendsizetype="row" scrollpixel="all" oncelldblclick="grd_prcpmsglist_oncelldblclick">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="114"/>
  13. <Column size="70"/>
  14. <Column size="140"/>
  15. <Column size="55"/>
  16. <Column size="335"/>
  17. <Column size="30"/>
  18. <Column size="82"/>
  19. </Columns>
  20. <Rows>
  21. <Row size="24" band="head"/>
  22. <Row size="24"/>
  23. </Rows>
  24. <Band id="head">
  25. <Cell text="사유구분"/>
  26. <Cell col="1" text="처방코드"/>
  27. <Cell col="2" text="처방명"/>
  28. <Cell col="3" text="사유코드"/>
  29. <Cell col="4" text="내용"/>
  30. <Cell col="5" text="코드"/>
  31. <Cell col="6" text="상세사유"/>
  32. </Band>
  33. <Band id="body">
  34. <Cell displaytype="normal" edittype="none" style="align:left;padding:3 3 3 3;" text="bind:errdisc" wordwrap="word" autosizerow="limitmin"/>
  35. <Cell col="1" style="align:left;padding:3 3 3 3;" text="bind:prcpcd" wordwrap="char"/>
  36. <Cell col="2" style="align:left;padding:3 3 3 3;" text="bind:prcpnm" wordwrap="word"/>
  37. <Cell col="3" style="align:left;padding:3 3 3 3;" text="bind:errcd"/>
  38. <Cell col="4" displaytype="text" style="align:left;padding:3 3 3 3;background:EXPR(getBackgroundColor(errmsg));background2:EXPR(getBackgroundColor(errmsg));" text="bind:errmsg" wordwrap="char" autosizerow="limitmin"/>
  39. <Cell col="5" style="align:left;padding:3 3 3 3;" text="bind:cnfcd" wordwrap="char"/>
  40. <Cell col="6" style="align:left top;padding:3 3 3 3;" text="bind:cnfmsg" wordwrap="word" autosizerow="limitmax"/>
  41. </Band>
  42. </Format>
  43. </Formats>
  44. </Grid>
  45. <Static text="사유선택" position="absolute 0 278 75 298" id="caption6" class="tit_2"/>
  46. <Grid position="absolute 0 296 843 501" id="grd_resnlist" binddataset="ds_hardcd" autofittype="col" oncellclick="grd_resnlist_oncellclick" oncelldblclick="grd_resnlist_oncelldblclick" autosizingtype="row" extendsizetype="row" scrollpixel="all" cellsizingtype="col">
  47. <Formats>
  48. <Format id="default">
  49. <Columns>
  50. <Column size="35"/>
  51. <Column size="35"/>
  52. <Column size="807"/>
  53. </Columns>
  54. <Rows>
  55. <Row size="24" band="head"/>
  56. <Row size="24"/>
  57. </Rows>
  58. <Band id="head">
  59. <Cell text="선택"/>
  60. <Cell col="1" text="코드"/>
  61. <Cell col="2" text="상세사유"/>
  62. </Band>
  63. <Band id="body">
  64. <Cell displaytype="checkbox" edittype="checkbox" text="bind:status" expr="expr:(status == &quot;Y&quot; || status == 1) ? 1 : 0"/>
  65. <Cell col="1" text="bind:hardcd"/>
  66. <Cell col="2" displaytype="text" edittype="expr:(hardcd != &quot;T&quot;) ? &quot;none&quot; : &quot;text&quot;" text="bind:hardcdnm" wordwrap="word" editautoselect="true" autosizerow="limitmin"/>
  67. </Band>
  68. </Format>
  69. </Formats>
  70. </Grid>
  71. <Button position="absolute 778 275 842 295" id="button1" class="btn2" text="사유적용" onclick="button1_onclick"/>
  72. <CheckBox position="absolute 705 275 775 295" id="bool_cond1" text="일괄적용" falsevalue="N" truevalue="Y"/>
  73. <Button position="absolute 634 511 714 531" id="button3" class="btn4" text="계속저장" onclick="button3_onclick"/>
  74. <Button position="absolute 727 511 843 531" id="btn_cncl" class="btn4" text="처방변경(닫기)" onclick="btn_cncl_onclick"/>
  75. <Static text="아래의 처방은 사유를 선택 또는 입력 하셔야 발행이 가능 합니다. 처방을 선택하면 사유구분에 맞는 사유 항목이 조회 됩니다." position="absolute 130 0 840 18" id="caption4"/>
  76. <Static text="아래의 항목에서 사유를 선택 하세요. 일괄적용 체크 되면 동일한 사유구분은한번에 적용 됩니다." position="absolute 77 276 700 296" id="caption7"/>
  77. <Div position="absolute -5 504 235 531" id="group2" scrollbars="autoboth">
  78. <Layouts>
  79. <Layout>
  80. <Shape position="absolute 5 0 235 27" id="roundrect4" type="roundrectangle"/>
  81. <Static text="범 례" position="absolute 18 4 68 24" id="caption20" class="cell_2"/>
  82. <Static position="absolute 71 6 86 21" align="align:center middle;" id="caption5" class="color_7"/>
  83. <Static text="마약 또는 향정신성 의약품" position="absolute 88 8 238 21" id="caption8"/>
  84. </Layout>
  85. </Layouts>
  86. </Div>
  87. <Static id="caption10" text="(멀티선택가능)" position="absolute 279 276 363 296" style="color:blue;" visible="false"/>
  88. </Layout>
  89. </Layouts>
  90. <Objects>
  91. <Dataset id="ds_result_saveflaginfo" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  92. <Dataset id="ds_result_prcpmsglist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  93. <ColumnInfo>
  94. <Column id="instcd" type="STRING" size="256" sumtext="기관기호"/>
  95. <Column id="msgdd" type="STRING" size="256" sumtext="메세지일자"/>
  96. <Column id="msgno" type="STRING" size="256" sumtext="메세지번호"/>
  97. <Column id="histno" type="STRING" size="256" sumtext="메세지이력번호"/>
  98. <Column id="msgseq" type="STRING" size="256" sumtext="메세지상세번호"/>
  99. <Column id="msgcls" type="STRING" size="256" sumtext="메세지종류"/>
  100. <Column id="prcpcd" type="STRING" size="256" sumtext="처방코드"/>
  101. <Column id="prcpnm" type="STRING" size="256" sumtext="처방명"/>
  102. <Column id="errcd" type="STRING" size="256" sumtext="오류코드"/>
  103. <Column id="errmsg" type="STRING" size="256" sumtext="오류메세지"/>
  104. <Column id="errdisc" type="STRING" size="256" sumtext="오류설명"/>
  105. <Column id="cnfcd" type="STRING" size="256" sumtext="확인코드"/>
  106. <Column id="cnfmsg" type="STRING" size="256" sumtext="확인메세지"/>
  107. </ColumnInfo>
  108. </Dataset>
  109. <Dataset id="ds_send" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  110. <ColumnInfo>
  111. <Column id="hardcd" type="STRING" size="256" sumtext="하드코드"/>
  112. </ColumnInfo>
  113. <Rows>
  114. <Row/>
  115. </Rows>
  116. </Dataset>
  117. <Dataset id="ds_hardcd" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false" oncolumnchanged="ds_hardcd_oncolumnchanged">
  118. <ColumnInfo>
  119. <Column id="status" type="STRING" size="256" sumtext="상태값"/>
  120. <Column id="hardcd" type="STRING" size="256" sumtext="하드코드"/>
  121. <Column id="hardcdnm" type="STRING" size="256" sumtext="하드코드명"/>
  122. <Column id="resncmt" type="STRING" size="256" sumtext="상세사유"/>
  123. </ColumnInfo>
  124. <Rows>
  125. <Row/>
  126. </Rows>
  127. </Dataset>
  128. <Dataset id="ds_init" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false">
  129. <ColumnInfo>
  130. <Column id="cond1" type="STRING" size="256"/>
  131. </ColumnInfo>
  132. <Rows>
  133. <Row>
  134. <Col id="cond1">Y</Col>
  135. </Row>
  136. </Rows>
  137. </Dataset>
  138. </Objects>
  139. <Bind>
  140. <BindItem id="item0" compid="bool_cond1" propid="value" datasetid="ds_init" columnid="cond1"/>
  141. </Bind>
  142. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  143. * System Name :
  144. * Job Name :
  145. * Creator :
  146. * Make Date : 2014-12-10
  147. * Description :
  148. *---------------------------------------------------------------------------------------
  149. * Modify Date Modifier Modify Description
  150. *---------------------------------------------------------------------------------------
  151. * 2014-12-10 Live Converter TF->XP
  152. *
  153. *---------------------------------------------------------------------------------------
  154. ****************************************************************************************/
  155. include "com_commonxp::comm_main.xjs";
  156. function SPMMO90200_oninit(obj:Form, e:InitEventInfo)
  157. {
  158. frmf_initForm(obj);
  159. ds_result_saveflaginfo.copyData(arg_ds_result_saveflaginfo);
  160. }
  161. function SPMMO90200_onload(obj:Form, e:LoadEventInfo)
  162. {
  163. var msgno = ds_result_saveflaginfo.getColumn(0, "msgno");
  164. if(msgno == "0"){
  165. sysf_messageBox("메세지 정보가 정확하지 않습니다.", "E999");
  166. return;
  167. }
  168. dsf_makeValue(ds_result_saveflaginfo, "msgcls", "string", "R"); // 사유 조회(R) 로 설정
  169. dsf_setDefaultVal(ds_result_saveflaginfo,"cnfcd:-,cnfmsg:-,cnfrmk:-");
  170. var oParam = {};
  171. oParam.id = "TRMMO90101";
  172. oParam.service = "prcpmngtapp.PrcpMngt";
  173. oParam.method = "reqGetPrcpMsgList";
  174. oParam.inds = "req=ds_result_saveflaginfo";
  175. oParam.outds = "ds_result_prcpmsglist=prcpmsglist";
  176. oParam.async = true;
  177. oParam.callback = "cf_TRMMO90101";
  178. tranf_submit(oParam);
  179. // ds_send.setColumn(0, "hardcd", "320");
  180. //
  181. // var oParam = {};
  182. // oParam.id = "TRMMB16401";
  183. // oParam.service = "prcpbaseapp.EnvInfoMngt";
  184. // oParam.method = "reqGetHardCodeCD";
  185. // oParam.inds = "req=ds_send";
  186. // oParam.outds = "ds_hardcd=hardcd";
  187. // oParam.async = true;
  188. // oParam.callback = "cf_TRMMB16401";
  189. //
  190. // tranf_submit(oParam);
  191. }
  192. function getBackgroundColor(errmsg) {
  193. var background_color = "default";
  194. if (utlf_isSearchString(errmsg, "주의! 마약") || utlf_isSearchString(errmsg, "향정신성의약품")){
  195. background_color = "#f3e1bf";
  196. }
  197. return background_color;
  198. }
  199. function grd_prcpmsglist_oncellclick(obj:Grid, e:GridClickEventInfo)
  200. {
  201. // 15.05.15 현행화 start
  202. if(e.row < 0 || e.col < 0) return;
  203. var sResnListCd = ds_result_prcpmsglist.getColumn(ds_result_prcpmsglist.rowposition, "resnlistcd"); //model.getValue("/root/result/prcpmsglist[" +grd_prcpmsglist.row+ "]/resnlistcd"); // 사유입력시 사유리스트 하드코드
  204. var sMultiYn = ds_result_prcpmsglist.getColumn(ds_result_prcpmsglist.rowposition, "multiyn"); //model.getValue("/root/result/prcpmsglist[" +grd_prcpmsglist.row+ "]/multiyn"); // 멀티선택 가능여부
  205. if(sResnListCd == "0") {
  206. alert("관련된 사유 정보가 존재 하지 않습니다.\n전산실(6598)로 문의 하세요.");
  207. return;
  208. }
  209. if(sMultiYn == "N") { // 단일선택이면
  210. caption10.visible = false;
  211. } else {
  212. caption10.visible = true;
  213. }
  214. ds_send.setColumn(0, "hardcd", sResnListCd); //model.setValue ( "/root/send/cond1", sResnListCd );
  215. // 15.05.15 현행화 end
  216. /*
  217. var sErrCd = ds_result_prcpmsglist.getColumn(e.row, "errcd");
  218. if ( sErrCd == "R10001") { ds_send.setColumn(0, "hardcd", "320"); } //12세 이상 시럽제 처방 사유
  219. else if ( sErrCd == "R10002") { ds_send.setColumn(0, "hardcd", "329"); } //ADR(약품유해반응) 처방 사유
  220. else if ( sErrCd == "R10003") { ds_send.setColumn(0, "hardcd", "330"); } //수술예방적 항생제 처방사유(재원)
  221. else if ( sErrCd == "R10004") { ds_send.setColumn(0, "hardcd", "331"); } //수술예방적 항생제 처방사유(퇴원)
  222. else if ( sErrCd == "R10005") { ds_send.setColumn(0, "hardcd", "5609"); } //약제 및 진료재료 적정성 심의(칠곡)
  223. else if ( sErrCd == "R10006") { ds_send.setColumn(0, "hardcd", "303"); } //향정신성 의약품 30일 이상 처방 사유
  224. else if ( sErrCd == "R10007") { ds_send.setColumn(0, "hardcd", "311"); } // 급성심근경색 퇴원약 아스피린 미처방 사유
  225. else if ( sErrCd == "R10008") { ds_send.setColumn(0, "hardcd", "312"); } // 급성심근경색 퇴원약 베타차단체 미처방 사유
  226. else if ( sErrCd == "R10009") { ds_send.setColumn(0, "hardcd", "455"); } // PET/CT 처방 사유(칠곡)
  227. else if ( sErrCd == "R70000") { ds_send.setColumn(0, "hardcd", "411"); } // DUR 처방전내 병용금기 체크 사유
  228. else if ( sErrCd == "R70001") { ds_send.setColumn(0, "hardcd", "412"); } // DUR 처방전내 연령금기 체크 사유
  229. else if ( sErrCd == "R70002") { ds_send.setColumn(0, "hardcd", "405"); } // DUR 처방전내 급여중지 체크 사유
  230. else if ( sErrCd == "R70003") { ds_send.setColumn(0, "hardcd", "405"); } // DUR 처방전내 최대용량 체크 사유
  231. else if ( sErrCd == "R70004") { ds_send.setColumn(0, "hardcd", "405"); } // DUR 처방전내 최대기간 체크 사유
  232. else if ( sErrCd == "R70005") { ds_send.setColumn(0, "hardcd", "413"); } // DUR 처방전내 저함량 체크 사유
  233. else if ( sErrCd == "R70006") { ds_send.setColumn(0, "hardcd", "414"); } // DUR 처방전내 임부금기 체크 사유
  234. else if ( sErrCd == "R70007") { ds_send.setColumn(0, "hardcd", "406"); } // DUR 처방전간 병용금기 체크 사유
  235. else if ( sErrCd == "R70008") { ds_send.setColumn(0, "hardcd", "407"); } // DUR 처방전간 성분별 중복 체크 사유
  236. else if ( sErrCd == "R70040") { ds_send.setColumn(0, "hardcd", "406"); } // DUR 처방전간 치료중복 체크 사유
  237. else if ( sErrCd == "R70041") { ds_send.setColumn(0, "hardcd", "406"); } // DUR 처방전간 2주 병용금기 체크 사유
  238. else if ( sErrCd == "R70042") { ds_send.setColumn(0, "hardcd", "406"); } // DUR 처방전간 1성분 병용기간금기 체크 사유
  239. else if ( sErrCd == "R70043") { ds_send.setColumn(0, "hardcd", "406"); } // DUR 처방전간 병용연령성별제한 체크 사유
  240. else { alert("관련된 사유 정보가 존재 하지 않습니다.\n전산실(6598)로 문의 하세요."); return; }
  241. */
  242. var oParam = {};
  243. oParam.id = "TRMMB16401";
  244. oParam.service = "prcpbaseapp.EnvInfoMngt";
  245. oParam.method = "reqGetHardCodeCD";
  246. oParam.inds = "req=ds_send";
  247. oParam.outds = "ds_hardcd=hardcd";
  248. oParam.async = true;
  249. oParam.callback = "cf_TRMMB16401";
  250. tranf_submit(oParam);
  251. }
  252. function grd_resnlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  253. {
  254. if(e.row < 0 || e.col < 0) return;
  255. var currow = ds_hardcd.rowposition;
  256. if ( obj.getCellPos() == obj.getBindCellIndex("body", "hardcdnm") ) {
  257. if ( ds_hardcd.getColumn(e.row, "hardcdnm") == "(이곳에 사유입력을 하세요)"
  258. || ds_hardcd.getColumn(e.row, "hardcdnm") == "기타사유 (직접입력)" ) {
  259. obj.setCellPos(e.col);
  260. obj.setCellProperty("body", e.col, "edittype", "text");
  261. obj.showEditor(true);
  262. } else {
  263. obj.setCellProperty("body", e.col, "edittype", "none");
  264. }
  265. } else if( obj.getCellPos() == obj.getBindCellIndex("body", "status") ) {
  266. if( ds_hardcd.getColumn(e.row, "status") == "Y" ) { // model.getValue ( "/root/hardcd/hardcd[" + currow + "]/status") == "Y"
  267. ds_hardcd.setColumn(e.row, "status", "N"); //model.setValue ( "/root/hardcd/hardcd[" + currow + "]/status" , "N");
  268. } else {
  269. ds_hardcd.setColumn(e.row, "status", "Y"); //model.setValue ( "/root/hardcd/hardcd[" + currow + "]/status" , "Y");
  270. }
  271. fSelectResn();
  272. }
  273. }
  274. function grd_resnlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  275. {
  276. if(e.row < 0 || e.col < 0) return;
  277. fSelectResn();
  278. //
  279. // sysf_trace("dbclick");
  280. // if ( obj.getCellPos() == obj.getBindCellIndex("body", "hardcdnm") ) {
  281. // sysf_trace("db");
  282. // fSelectResn();
  283. // }
  284. //
  285. }
  286. function ds_hardcd_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
  287. {
  288. if(e.columnid == "status")
  289. obj.setColumn(e.row, e.columnid, (e.newvalue == "Y" || e.newvalue == 1) ? "Y" : "N");
  290. if(grd_resnlist.getEditText() != undefined && e.eventid == "hardcdnm") {
  291. var currow = e.row;
  292. if ( obj.getColumn(currow, "hardcdnm") != "(이곳에 사유입력을 하세요)"
  293. && obj.getColumn(currow, "hardcdnm") != "기타사유 (직접입력)" ) {
  294. fSelectResn();
  295. }
  296. }
  297. }
  298. function fSelectResn() {
  299. var resnRow = ds_hardcd.rowposition;
  300. var prcpRow = ds_result_prcpmsglist.rowposition;
  301. var sAllApply = ds_init.getColumn(0, "cond1");
  302. if (resnRow != -1 && prcpRow != -1) {
  303. var sStatus = ds_hardcd.getColumn(resnRow, "status");
  304. var sCnfCd = ds_hardcd.getColumn(resnRow, "hardcd");
  305. var sCnfMsg = ds_hardcd.getColumn(resnRow, "hardcdnm");
  306. if(sCnfMsg == "(이곳에 사유입력을 하세요)" || sCnfMsg == "기타사유 (직접입력)") {
  307. var col = grd_resnlist.getBindCellIndex("body", "hardcdnm");
  308. grd_resnlist.setCellPos(col);
  309. grd_resnlist.setCellProperty("body", col, "edittype", "text");
  310. grd_resnlist.showEditor(true);
  311. } else {
  312. var sMultiYn = ds_result_prcpmsglist.getColumn(prcpRow, "multiyn"); //model.getValue("/root/result/prcpmsglist[" +prcpRow+ "]/multiyn"); // 멀티선택 가능여부
  313. if(sMultiYn == "N") { // 단일 선택이면
  314. if(sStatus == "N") { // 현재 선택되지 않은 값이면 신규 선택
  315. var resnLength = ds_hardcd.rowcount; //model.instances(0).selectNodes( "/root/hardcd/hardcd" ).length;
  316. for ( var i = 0; i < resnLength; i++ ) { // 사유항목별 for // var i = 1; i<=resnLength; i++
  317. if( resnRow == i) {
  318. ds_hardcd.setColumn(i, "status", "Y"); //model.setValue("/root/hardcd/hardcd[" + i + "]/status", "Y"); // 선택 체크
  319. } else {
  320. ds_hardcd.setColumn(i, "status", "N"); //model.setValue("/root/hardcd/hardcd[" + i + "]/status", "N"); // 선택 해제
  321. }
  322. } // end of 사유항목별 for
  323. } else { // 현재 선택된 값이면 선택취소
  324. ds_hardcd.setColumn(resnRow, "status", "N"); //model.setValue("/root/hardcd/hardcd[" + resnRow + "]/status", "N"); // 선택 해제
  325. sCnfCd = "-"; // 선택코드 초기화
  326. sCnfMsg = "-"; // 선택사유 초기화
  327. }
  328. } else { // 멀티 선택이면
  329. if(sStatus == "N") { // 현재 선택되지 않은 값이면 신규 선택
  330. ds_hardcd.setColumn(resnRow, "status", "Y"); //model.setValue("/root/hardcd/hardcd[" + resnRow + "]/status", "Y"); // 선택 해제
  331. } else { // 현재 선택된 값이면 선택취소
  332. ds_hardcd.setColumn(resnRow, "status", "N"); //model.setValue("/root/hardcd/hardcd[" + resnRow + "]/status", "N"); // 선택 해제
  333. }
  334. sCnfCd = "-"; // 선택코드 초기화
  335. sCnfMsg = "-"; // 선택사유 초기화
  336. var resnLength = ds_hardcd.rowcount; //model.instances(0).selectNodes( "/root/hardcd/hardcd" ).length;
  337. for ( var i = 0; i < resnLength; i++ ) { // 사유항목별 for
  338. if( ds_hardcd.getColumn(i, "status") == "Y" ) { // 선택되었으면 model.getValue("/root/hardcd/hardcd[" + i + "]/status") == "Y"
  339. if(sCnfCd == "-") { // 첫번째 선택의 경우
  340. sCnfCd = ds_hardcd.getColumn(i, "hardcd"); //model.getValue("/root/hardcd/hardcd[" + i + "]/hardcd"); // 선택된 사유 코드
  341. sCnfMsg = ds_hardcd.getColumn(i, "hardcdnm"); //model.getValue("/root/hardcd/hardcd[" + i + "]/hardcdnm"); // 선택된 사유 상세
  342. } else { // 첫번째 선택이 아닌경우
  343. sCnfCd = sCnfCd + "|" + ds_hardcd.getColumn(i, "hardcd"); //model.getValue("/root/hardcd/hardcd[" + i + "]/hardcd"); // 선택된 사유 코드
  344. sCnfMsg = sCnfMsg + "|" + ds_hardcd.getColumn(i, "hardcdnm"); //model.getValue("/root/hardcd/hardcd[" + i + "]/hardcdnm"); // 선택된 사유 상세
  345. }
  346. }
  347. } // end of 사유항목별 for
  348. }
  349. if(sAllApply == "Y") { // 일괄 적용이면
  350. var checkLength = ds_result_prcpmsglist.rowcount; //model.instances(0).selectNodes( "/root/result/prcpmsglist" ).length;
  351. var sSelErrCd = ds_result_prcpmsglist.getColumn(prcpRow, "errcd"); //model.getValue("/root/result/prcpmsglist[" +prcpRow+ "]/errcd"); // 오류 코드
  352. var sChkErrCd = "";
  353. for ( var i = 0; i < checkLength; i++ ) { // var i= 1; i<=checkLength; i++
  354. sChkErrCd = ds_result_prcpmsglist.getColumn(i, "errcd"); //model.getValue ( "/root/result/prcpmsglist[" + i + "]/errcd" );
  355. if(sSelErrCd == sChkErrCd) {
  356. ds_result_prcpmsglist.setColumn(i, "cnfcd", sCnfCd); //model.setValue("/root/result/prcpmsglist[" + i + "]/cnfcd", sCnfCd);
  357. ds_result_prcpmsglist.setColumn(i, "cnfmsg", sCnfMsg); //model.setValue("/root/result/prcpmsglist[" + i + "]/cnfmsg", sCnfMsg);
  358. }
  359. }
  360. } else {
  361. ds_result_prcpmsglist.setColumn(prcpRow, "cnfcd", sCnfCd); //model.setValue("/root/result/prcpmsglist[" + prcpRow + "]/cnfcd", sCnfCd);
  362. ds_result_prcpmsglist.setColumn(prcpRow, "cnfmsg", sCnfMsg); //model.setValue("/root/result/prcpmsglist[" + prcpRow + "]/cnfmsg", sCnfMsg);
  363. }
  364. //model.refresh();
  365. }
  366. }
  367. /* 15.05.15 동기화 이전 소스
  368. var resnRow = ds_hardcd.rowposition;
  369. var prcpRow = ds_result_prcpmsglist.rowposition;
  370. if (resnRow != -1 && prcpRow != -1) {
  371. var sCnfCd = ds_hardcd.getColumn(resnRow, "hardcd") // 선택된 사유 코드
  372. var sCnfMsg = ds_hardcd.getColumn(resnRow, "hardcdnm") // 선택된 사유 상세
  373. if(sCnfMsg == "(이곳에 사유입력을 하세요)" || sCnfMsg == "기타사유 (직접입력)") {
  374. var col = grd_resnlist.getBindCellIndex("body", "hardcdnm");
  375. grd_resnlist.setCellPos(col);
  376. grd_resnlist.setCellProperty("body", col, "edittype", "text");
  377. grd_resnlist.showEditor(true);
  378. } else {
  379. if(ds_init.getColumn(0, "cond1") == "Y") { // 일괄 적용이면
  380. var checkLength = ds_result_prcpmsglist.rowcount;
  381. var sSelErrCd = ds_result_prcpmsglist.getColumn(prcpRow, "errcd"); // 오류 코드
  382. var sChkErrCd = "";
  383. for ( var i = 0; i < checkLength; i++ ) {
  384. sChkErrCd = ds_result_prcpmsglist.getColumn(i, "errcd");
  385. if(sSelErrCd == sChkErrCd) {
  386. ds_result_prcpmsglist.setColumn(i, "cnfcd", sCnfCd);
  387. ds_result_prcpmsglist.setColumn(i, "cnfmsg", sCnfMsg);
  388. }
  389. }
  390. } else {
  391. ds_result_prcpmsglist.setColumn(prcpRow, "cnfcd", sCnfCd);
  392. ds_result_prcpmsglist.setColumn(prcpRow, "cnfmsg", sCnfMsg);
  393. }
  394. }
  395. }
  396. */
  397. }
  398. function button1_onclick(obj:Button, e:ClickEventInfo)
  399. {
  400. if(ds_hardcd.rowposition > -1) {
  401. fSelectResn();
  402. }else{
  403. sysf_messageBox ( "선택된 사유가 없습니다." , "I" );
  404. }
  405. }
  406. function button3_onclick(obj:Button, e:ClickEventInfo)
  407. {
  408. var checkLength = ds_result_prcpmsglist.rowcount;
  409. var resnCnt = 0;
  410. var sUserId = "";
  411. if ( checkLength > 0 ) {
  412. sUserId = sysf_getUserInfo("userid");
  413. ds_result_prcpmsglist.addColumn("userid", "string");
  414. for ( var i = 0; i < checkLength; i++ ) {
  415. ds_result_prcpmsglist.setColumn(i, "userid", sUserId);
  416. if ( utlf_isNull(ds_result_prcpmsglist.getColumn(i, "cnfcd"))
  417. || utlf_isNull(ds_result_prcpmsglist.getColumn(i, "cnfmsg"))
  418. || "-" == ds_result_prcpmsglist.getColumn(i, "cnfcd")
  419. || "-" == ds_result_prcpmsglist.getColumn(i, "cnfmsg") ) {
  420. resnCnt++;
  421. }
  422. }
  423. if (resnCnt > 0) {
  424. sysf_messageBox ( "처방사유 선택되지 않은 처방이", "I010" );
  425. return;
  426. }
  427. dsf_makeValue(ds_result_saveflaginfo, "cnfcd", "string", "Y"); // 확인 코드를 'Y' 로 설정
  428. var oParam = {};
  429. oParam.id = "TXMMO90101";
  430. oParam.service = "prcpmngtapp.PrcpMngt";
  431. oParam.method = "reqExePrcpMsgList";
  432. oParam.inds = "req=ds_result_prcpmsglist";
  433. oParam.async = false;
  434. if(tranf_submit(oParam)) {
  435. opener.frmf_setParameter ( "SPMMO90200_rtn", "Y" );
  436. close();
  437. }
  438. }
  439. }
  440. function cf_TRMMO90101(sSvcId, nErrorCode, sErrorMsg) {
  441. if(nErrorCode < 0) return;
  442. ds_result_prcpmsglist.enableevent = false;
  443. for(var i=0; i< ds_result_prcpmsglist.rowcount; i++){
  444. var errmsg = ds_result_prcpmsglist.getColumn(i, "errmsg");
  445. if(!utlf_isNull(errmsg)){
  446. errmsg = errmsg.replace(/\r\n/g, "\n");
  447. errmsg = errmsg.replace(/\r/g, "\n");
  448. errmsg = errmsg.replace(/\n/g, "\r\n");
  449. ds_result_prcpmsglist.setColumn(i, "errmsg", errmsg);
  450. }
  451. }
  452. ds_result_prcpmsglist.enableevent = true;
  453. var sResnListCd = ds_result_prcpmsglist.getColumn(ds_result_prcpmsglist.rowposition, "resnlistcd"); //ds_send.setColumn(0, "hardcd", "320");
  454. ds_send.setColumn(0, "hardcd", sResnListCd);
  455. var oParam = {};
  456. oParam.id = "TRMMB16401";
  457. oParam.service = "prcpbaseapp.EnvInfoMngt";
  458. oParam.method = "reqGetHardCodeCD";
  459. oParam.inds = "req=ds_send";
  460. oParam.outds = "ds_hardcd=hardcd";
  461. oParam.async = true;
  462. oParam.callback = "cf_TRMMB16401";
  463. tranf_submit(oParam);
  464. }
  465. function cf_TRMMB16401(sSvcId, nErrorCode, sErrorMsg) {
  466. if(nErrorCode < 0) return;
  467. ds_hardcd.addColumn("status","string");
  468. dsf_setDefaultVal(ds_hardcd, "status:N");
  469. }
  470. function btn_cncl_onclick(obj:Button, e:ClickEventInfo)
  471. {
  472. opener.frmf_setParameter ( "SPMMO90200_rtn", "N" );
  473. close();
  474. }
  475. function grd_prcpmsglist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  476. {
  477. if(e.row < 0 || e.col < 0) return;
  478. if(obj.getCellPos() == obj.getBindCellIndex("body", "errmsg")) {
  479. var sPrscGrantNo = ds_result_saveflaginfo.getColumn(0, "prsc_grant_no");
  480. var sErrCd = ds_result_prcpmsglist.getColumn(e.row, "errcd");
  481. var sPrcpDd = ds_result_prcpmsglist.getColumn(e.row, "prcpdd");
  482. var sPrcpNo = ds_result_prcpmsglist.getColumn(e.row, "prcpno");
  483. if(sErrCd.length > 2) {
  484. sErrCd = sErrCd.substring(0, 2);
  485. }
  486. if(!utlf_isNull(sPrscGrantNo) && sErrCd == "R7") { // DUR관련 사유 이면
  487. var mon = sysf_getCurrentMonitorNumber();
  488. var xpt = this.getOwnerFrame().position.x + 50;
  489. var ypt = this.getOwnerFrame().position.y + 50;
  490. frmf_setParameter("SPMMO90700_prsc_grant_no", sPrscGrantNo);
  491. frmf_setParameter("SPMMO90700_prcpdd", sPrcpDd);
  492. frmf_setParameter("SPMMO90700_prcpno", sPrcpNo);
  493. frmf_modal("SPMMO90700", "SPMMO90700", null, false, mon, xpt, ypt, null, null, null, null, null, "M");
  494. }
  495. }
  496. }
  497. ]]></Script>
  498. </Form>
  499. </FDL>