SPMMO00500_그리드처방검색.xfdl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <FDL version="1.5">
  3. <TypeDefinition url="..\..\..\default_typedef.xml"/>
  4. <Form id="SPMMO00500" position="absolute 0 0 810 351" titletext="Untitle" oninit="SPMMO00500_oninit" onload="SPMMO00500_onload" style="background:white;" onkeydown="SPMMO00500_onkeydown" ontimer="SPMMO00500_ontimer">
  5. <Layouts>
  6. <Layout>
  7. <Button position="absolute 696 331 752 351" id="btn_copy" class="btn4" text="선택" anchor="right bottom" onclick="btn_copy_onclick"/>
  8. <Grid position="absolute 0 0 810 325" id="grd_prcpsrchlist" binddataset="ds_prcpsrch_prcplist" anchor="all" oncellclick="grd_prcpsrchlist_oncellclick" oncelldblclick="grd_prcpsrchlist_oncelldblclick" onkeydown="grd_prcpsrchlist_onkeydown" cellclickbound="cell">
  9. <Formats>
  10. <Format id="default">
  11. <Columns>
  12. <Column size="37"/>
  13. <Column size="65"/>
  14. <Column size="80"/>
  15. <Column size="100"/>
  16. <Column size="290"/>
  17. <Column size="0"/>
  18. <Column size="227"/>
  19. <Column size="0"/>
  20. </Columns>
  21. <Rows>
  22. <Row size="24" band="head"/>
  23. <Row size="24"/>
  24. </Rows>
  25. <Band id="head">
  26. <Cell text="선택"/>
  27. <Cell col="1" text="분류"/>
  28. <Cell col="2" text="검색코드"/>
  29. <Cell col="3" text="OCS처방분류"/>
  30. <Cell col="4" text="영문명"/>
  31. <Cell col="5" text="혼동주의"/>
  32. <Cell col="6" text="한글명"/>
  33. <Cell col="7" text="시행부서"/>
  34. </Band>
  35. <Band id="body">
  36. <Cell displaytype="checkbox" edittype="checkbox" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:status" expr="expr:(status == &quot;I&quot; || status == 1) ? 1 : 0"/>
  37. <Cell col="1" displaytype="combo" edittype="none" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:prcpclscd" combodataset="oOpener.ds_M0005" combocodecol="cdid" combodatacol="cdnm"/>
  38. <Cell col="2" displaytype="text" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:prcpcd"/>
  39. <Cell col="3" displaytype="text" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:prcpclassnm"/>
  40. <Cell col="4" displaytype="text" style="background:white;background2:white;color:#ff0000ff;color2:#ff0000ff;" text="bind:prcpnm2"/>
  41. <Cell col="5" displaytype="text" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:tempcol10"/>
  42. <Cell col="6" displaytype="text" style="background:white;background2:white;color:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);color2:EXPR((prcpclscd != &quot;-&quot;) ? &quot;&quot; : &quot;#ff0000&quot;);" text="bind:tempcol3"/>
  43. <Cell col="7" displaytype="combo" edittype="none" style="background:white;background2:white;" text="bind:prcpexecdeptcd" combodataset="ds_orddept" combocodecol="deptcd" combodatacol="depthngnm"/>
  44. </Band>
  45. </Format>
  46. </Formats>
  47. </Grid>
  48. <Button position="absolute 754 331 810 351" id="btn_cancel" class="btn3" text="취소" anchor="right bottom" onclick="btn_cancel_onclick"/>
  49. <Grid id="grd_temp_prcpsrchlist" taborder="1" useinputpanel="false" position="absolute 600 230 800 312" binddataset="ds_temp_prcpsrch_prcplist" visible="false">
  50. <Formats>
  51. <Format id="default">
  52. <Columns>
  53. <Column size="40"/>
  54. </Columns>
  55. <Rows>
  56. <Row size="24" band="head"/>
  57. <Row size="24"/>
  58. </Rows>
  59. <Band id="head">
  60. <Cell displaytype="normal" edittype="normal"/>
  61. </Band>
  62. <Band id="body">
  63. <Cell displaytype="checkbox" edittype="checkbox" text="bind:status" expr="expr:(status == &quot;I&quot; || status == 1) ? 1 : 0"/>
  64. </Band>
  65. </Format>
  66. </Formats>
  67. </Grid>
  68. </Layout>
  69. </Layouts>
  70. <Objects>
  71. <Dataset id="ds_temp_prcpsrch_prcplist" firefirstcount="0" firenextcount="0" useclientlayout="false" updatecontrol="true" enableevent="true" loadkeymode="keep" loadfiltermode="keep" reversesubsum="false"/>
  72. </Objects>
  73. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  74. * System Name :
  75. * Job Name :
  76. * Creator :
  77. * Make Date : 2014-08-29
  78. * Description :
  79. *---------------------------------------------------------------------------------------
  80. * Modify Date Modifier Modify Description
  81. *---------------------------------------------------------------------------------------
  82. * 2014-08-29 Live Converter TF->XP
  83. *
  84. *---------------------------------------------------------------------------------------
  85. ****************************************************************************************/
  86. include "com_commonxp::comm_main.xjs";
  87. include "emr_prcpmngtxp::MMO001.xjs";
  88. var oOpener;
  89. var curPrcpSrchRow = -1;
  90. var strSrchopt = "";
  91. function SPMMO00500_oninit(obj:Form, e:InitEventInfo)
  92. {
  93. frmf_initForm(obj);
  94. }
  95. function SPMMO00500_onload(obj:Form, e:LoadEventInfo)
  96. {
  97. oOpener = this.getOwnerFrame().form;
  98. try{
  99. var tmp_oOpener = frmf_getoOpener();
  100. if( tmp_oOpener.name == "SMMQP00600" || tmp_oOpener.frmf_getScreenID() == "SMMQP00600" ){
  101. oOpener = parent.parent;
  102. }
  103. }catch(e){
  104. sysf_catchTrace(e);
  105. }
  106. // 임상시험프로토콜에서 쓸 때는 이렇게 하도록 함
  107. if(!utlf_isNull(oOpener) && (oOpener.name == "SMMMB08300" ))
  108. {
  109. oOpener = parent.parent;
  110. }
  111. else if(!utlf_isNull(oOpener) && (oOpener.name == "SMMMB00600" ))
  112. {
  113. oOpener = parent.parent;
  114. }
  115. // 툴팁
  116. grdf_setToolTipBind(grd_prcpsrchlist);
  117. }
  118. function grd_prcpsrchlist_oncellclick(obj:Grid, e:GridClickEventInfo)
  119. {
  120. if(e.col < 1) return;
  121. // CP에서 OCS 탭에서 진행할 경우
  122. if( oOpener.name == "SMMMP00800") {
  123. oOpener = grp_biz.grp_prcp.imp_prcp;
  124. }
  125. var status = oOpener.ds_prcpsrch_prcplist.getColumn(e.row, "status");
  126. oOpener.ds_prcpsrch_prcplist.setColumn(e.row, "status", (status == "I" || status == 1) ? "N" : "I");
  127. }
  128. function grd_prcpsrchlist_oncelldblclick(obj:Grid, e:GridClickEventInfo)
  129. {
  130. //kimsj 100125 JCI_혼동주의 값 삭제
  131. if(!utlf_isNull(oOpener.ds_prcpsrch_prcplist.getColumnInfo("tempcol10"))) {
  132. oOpener.ds_prcpsrch_prcplist.enableevent = false;
  133. for( var i = 0; i < ds_prcpsrch_prcplist.rowcount; i++ )
  134. oOpener.ds_prcpsrch_prcplist.setColumn(i, "tempcol10", "");
  135. oOpener.ds_prcpsrch_prcplist.enableevent = true;
  136. }
  137. //20191223 이돈희 문제 : 약품정보관리에서 기존에 존재하는 약품에 대하여 변경하는 경우 ROWKEY가 존재하지 않아 오류 발생
  138. // 원인 : 약품정보관리에서 변경하는 경우 ROWKEY가 모두 바뀌므로 화면이 가지고 있는 ROWKEY랑 달라짐
  139. // 해결 : DB에서 재조회하여 ROWKEY 값 변경함
  140. if((strSrchopt == "innersrch") && (oOpener.div_all.CheckBox_prcpsrch_quicksrch.value == "001")){
  141. fInnerSearch();
  142. } else {
  143. oOpener.lf_addPrcp ( "import", "ds_prcpsrch_prcplist", "ds_main_prcplist", "N", "status", "I", grd_prcpsrchlist, "Y", "00");
  144. }
  145. // 신규처방코드 수정 모드에서 처방 추가 후 복사 - 20090630 by MoonSH
  146. var modiflag = utlf_isNull(oOpener.objects["ds_init_rowmodify"]) ? "" : oOpener.ds_init_rowmodify.getColumn(0, "modiflag");
  147. if ( modiflag == "Y" ) {
  148. // 추후 동작 확인필요
  149. oOpener.fCodeModifyAdd() ;
  150. }
  151. }
  152. function grd_prcpsrchlist_onkeydown(obj:Grid, e:KeyEventInfo)
  153. {
  154. if ( e.keycode == 13 ) {
  155. if ( oOpener.ds_prcpsrch_prcplist.rowposition < 0 ) {
  156. return;
  157. } else {
  158. oOpener.gridprcpsrchflag = "Y";
  159. //kimsj 100125 JCI_혼동주의 값 삭제
  160. if(!utlf_isNull(oOpener.ds_prcpsrch_prcplist.getColumnInfo("tempcol10"))) {
  161. oOpener.ds_prcpsrch_prcplist.enableevent = false;
  162. for( var i = 0; i < ds_prcpsrch_prcplist.rowcount; i++ )
  163. oOpener.ds_prcpsrch_prcplist.setColumn(i, "tempcol10", "");
  164. oOpener.ds_prcpsrch_prcplist.enableevent = true;
  165. }
  166. oOpener.lf_addPrcp ( "import", "ds_prcpsrch_prcplist", "ds_main_prcplist", "N", "status", "I", grd_prcpsrchlist, "Y", "00");
  167. oOpener.gridprcpsrchflag = "N";
  168. }
  169. }
  170. }
  171. function btn_copy_onclick(obj:Button, e:ClickEventInfo)
  172. {
  173. //kimsj 100125 JCI_혼동주의 값 삭제
  174. if(!utlf_isNull(oOpener.ds_prcpsrch_prcplist.getColumnInfo("tempcol10"))) {
  175. oOpener.ds_prcpsrch_prcplist.enableevent = false;
  176. for( var i = 0; i < ds_prcpsrch_prcplist.rowcount; i++ )
  177. oOpener.ds_prcpsrch_prcplist.setColumn(i, "tempcol10", "");
  178. oOpener.ds_prcpsrch_prcplist.enableevent = true;
  179. }
  180. //20191223 이돈희 문제 : 약품정보관리에서 기존에 존재하는 약품에 대하여 변경하는 경우 ROWKEY가 존재하지 않아 오류 발생
  181. // 원인 : 약품정보관리에서 변경하는 경우 ROWKEY가 모두 바뀌므로 화면이 가지고 있는 ROWKEY랑 달라짐
  182. // 해결 : DB에서 재조회하여 ROWKEY 값 변경함
  183. if((strSrchopt == "innersrch") && (oOpener.div_all.CheckBox_prcpsrch_quicksrch.value == "001")){
  184. fInnerSearch();
  185. } else {
  186. oOpener.lf_addPrcp ( "import", "ds_prcpsrch_prcplist", "ds_main_prcplist", "Y", "status", "I", grd_prcpsrchlist, "Y", "00");
  187. }
  188. // 신규처방코드 수정 모드에서 처방 추가 후 복사 - 20090630 by MoonSH
  189. var modiflag = utlf_isNull(oOpener.objects["ds_init_rowmodify"]) ? "" : oOpener.ds_init_rowmodify.getColumn(0, "modiflag");
  190. if ( modiflag == "Y" ) {
  191. // 추후 동작 확인필요
  192. oOpener.fCodeModifyAdd() ;
  193. }
  194. }
  195. function btn_cancel_onclick(obj:Button, e:ClickEventInfo)
  196. {
  197. // 허만호, 15.09.09, 처방검색 -> 처방복사 -> 취소 시 그리드 밀림현상 제거 S
  198. for(var i = 0; i < ds_main_prcplist.rowcount; i++ ) {
  199. //sysf_trace("i : " + i + "\n status : " + ds_main_prcplist.getColumn(i, "status"));
  200. if( ds_main_prcplist.getColumn(i, "status") == "S" ) {
  201. curPrcpSrchRow = i;
  202. }
  203. }
  204. // 허만호, 15.09.09, 처방검색 -> 처방복사 -> 취소 시 그리드 밀림현상 제거 E
  205. this.visible = false;
  206. lf_focusMain ( curPrcpSrchRow );
  207. }
  208. function SPMMO00500_onkeydown(obj:Form, e:KeyEventInfo)
  209. {
  210. if(e.keycode == "27")
  211. btn_cancel.onclick.fireEvent(btn_cancel, new ClickEventInfo());
  212. }
  213. function SPMMO00500_ontimer(obj:Form, e:TimerEventInfo)
  214. {
  215. if(e.timerid == 0) {
  216. killTimer(0);
  217. grd_prcpsrchlist.setFocus();
  218. curPrcpSrchRow = oOpener.ds_main_prcplist.rowposition;
  219. }
  220. }
  221. function setPrcpSrchListFocus(srchopt) {
  222. if(utlf_isNull(srchopt)){
  223. strSrchopt = "";
  224. } else {
  225. strSrchopt = srchopt;
  226. }
  227. setTimer(0, 700);
  228. }
  229. //20191223 이돈희 문제 : 약품정보관리에서 기존에 존재하는 약품에 대하여 변경하는 경우 ROWKEY가 존재하지 않아 오류 발생
  230. // 원인 : 약품정보관리에서 변경하는 경우 ROWKEY가 모두 바뀌므로 화면이 가지고 있는 ROWKEY랑 달라짐
  231. // 해결 : DB에서 재조회하여 ROWKEY 값 변경함
  232. function fInnerSearch(){
  233. var strNotExistPrcpcd = "";
  234. oOpener.ds_prcpsrch_prcplist.filter("status == 'I'");
  235. ds_temp_prcpsrch_prcplist.clear();
  236. for(var iIndex = 0 ; iIndex < oOpener.ds_prcpsrch_prcplist.rowcount ; iIndex++){
  237. if(iIndex == 0){
  238. lf_prcpSrchCom (oOpener.ds_prcpsrch_prcplist.getColumn(iIndex, "prcpcd"), oOpener.ds_init.getColumn(0, "prcpdd"), oOpener.ds_paminfo.getColumn(0, "insukind"), "TRMMO00100", "", "getPrcpCdSrchInfo", "E" , false, "N");
  239. ds_temp_prcpsrch_prcplist.copyData(ds_prcpsrch_prcplist);
  240. } else {
  241. lf_prcpSrchCom (oOpener.ds_prcpsrch_prcplist.getColumn(iIndex, "prcpcd"), oOpener.ds_init.getColumn(0, "prcpdd"), oOpener.ds_paminfo.getColumn(0, "insukind"), "TRMMO00100", "", "getPrcpCdSrchInfo", "E" , false, "N");
  242. ds_temp_prcpsrch_prcplist.appendData(ds_prcpsrch_prcplist);
  243. }
  244. if(ds_prcpsrch_prcplist.rowcount == 0){
  245. if(utlf_isNull(strNotExistPrcpcd)){
  246. strNotExistPrcpcd = oOpener.ds_prcpsrch_prcplist.getColumn(iIndex, "prcpcd");
  247. } else {
  248. strNotExistPrcpcd += ", " + oOpener.ds_prcpsrch_prcplist.getColumn(iIndex, "prcpcd");
  249. }
  250. }
  251. ds_temp_prcpsrch_prcplist.setColumn(iIndex, "status", "I");
  252. }
  253. if(oOpener.ds_prcpsrch_prcplist.rowcount != ds_temp_prcpsrch_prcplist.rowcount) {
  254. oOpener.div_all.div_srch.visible = false;
  255. sysf_messageBox("[" + strNotExistPrcpcd + "] 수가코드가 실시간 수가코드에 존재하지 않습니다. ");
  256. }
  257. if(ds_temp_prcpsrch_prcplist.rowcount > 0) {
  258. oOpener.ds_prcpsrch_prcplist.copyData(ds_temp_prcpsrch_prcplist);
  259. oOpener.lf_addPrcp ( "import", "ds_prcpsrch_prcplist", "ds_main_prcplist", "Y", "status", "I", grd_temp_prcpsrchlist, "Y", "00");
  260. }
  261. oOpener.ds_prcpsrch_prcplist.filter("");
  262. }]]></Script>
  263. </Form>
  264. </FDL>