SMADC02200.xjs 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : KNUH2.0
  4. * Job Name : EMR
  5. * Creator :
  6. * Make Date : 2015-12-08
  7. * Description :
  8. *---------------------------------------------------------------------------------------
  9. * Modify Date Modifier Modify Description
  10. *---------------------------------------------------------------------------------------
  11. * 2015-12-08 TF->XP
  12. *
  13. *---------------------------------------------------------------------------------------
  14. ****************************************************************************************/
  15. include "com_commonxp::comm_main.xjs";
  16. var arErrorCode = new HashArray();
  17. var objCxtCommon = new ExtCommon();
  18. /**
  19. * 파 일 명 : SMADC02200.js
  20. * 설 명 : 복약설명서 Javascriot
  21. * 설 계 자 : 공두경
  22. * 작 성 자 : 공두경
  23. * 수정이력 : 2008.01.09 / 최초작성 / 공두경
  24. */
  25. function fInit() {
  26. // 오프너에서 전달받은 정보
  27. try{
  28. dsf_copyDs(ds_main_patinfo, arg_ds_temp_drugindata, "replace");
  29. } catch(e){ }
  30. try{
  31. dsf_copyDs(ds_temp_srchinfo, arg_ds_temp_srchinfo, "replace");
  32. } catch(e){ }
  33. // 복약설명서 출력기준
  34. if( utlf_isNull(ds_temp_srchinfo.getColumn(0, "difflagcd")) ) {
  35. ds_temp_srchinfo.setColumn(0, "difflagcd", "1"); //병원복약기준자료:1, DIF한글:2, DIF영문:3
  36. }
  37. ds_temp_srchinfo.addColumn("pimagepath", "string", 256);
  38. ds_temp_srchinfo.setColumn(0, "pimagepath", sysf_getURLprefix() + "/dif/images/", true); //dif이미지경로
  39. ds_temp_srchinfo.addColumn("medtypeflag", "string", 256);
  40. if( !utlf_isNull(ds_temp_srchinfo.getColumn(0, "pid")) ){
  41. fSrchTmedDescData();
  42. } else {
  43. // 날짜 초기화
  44. ds_main_patinfo.setColumn(0, "prcpdd", utlf_getCurrentDate());
  45. }
  46. //model.makeValue("/root/temp/srchinfo/medtypeflag", "N"); //일반약
  47. //복약지도환자조회에서 팝업으로 복약설명서를 열었을 경우 초기에는 전체 조회인데
  48. //일반약으로 자동 체크가 되어 조회 조건과 조회된 내용이 싱크가 안 맞음.
  49. ds_temp_srchinfo.setColumn(0, "medtypeflag", "");
  50. // 20121226
  51. ds_temp2.setColumn(0, "prcpkind", "E");
  52. fn_getPrtFlag();
  53. }
  54. /**
  55. * 복약설명서 조회
  56. */
  57. function fSrchTmedDescData() {
  58. ds_send_srchinfo.copyData(ds_temp_srchinfo);
  59. ds_send_srchinfo.addColumn("prcpkind", "string", 256);
  60. ds_send_srchinfo.setColumn(0, "prcpkind", "E");
  61. dsf_setDefaultVal(ds_send_srchinfo, "difflagcd:1");
  62. // dsf_setTypeFormat(ds_send_srchinfo, "cretno:INT");
  63. var oParam = {};
  64. oParam.id = "TRADC02201";
  65. oParam.service = "pharmacyconsultapp.ReqMngt";
  66. oParam.method = "reqGetTmedDescData";
  67. oParam.inds = "req=ds_send_srchinfo";
  68. oParam.outds = "ds_main_patinfo=patinfo ds_grd_diaginfo=diaginfo ds_grd_prcplist=prcplist ds_grd_tmedlist=tmedlist";
  69. oParam.async = false;
  70. //oParam.callback = "cf_TRADC02201";
  71. tranf_submit(oParam);
  72. if( ds_temp_srchinfo.getColumn(0, "medtypeflag") == "D" ){
  73. grd_tmedlist.setFormatColProperty(2,"size",0); //사진
  74. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","efcycnts"),"size",0); //효능
  75. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcpqty_unit"),"size",0); //함량 //2008-09-19 1회수량
  76. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcptims"),"size",0); //복용횟수
  77. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","mthdnm"),"size",0); //용법
  78. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcpdayno"),"size",0); //일수
  79. //grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","schedule"),"size",100); //투여스케쥴
  80. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","drugnm"),"size",230); //약품명
  81. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","statcnts"),"size",240); //성상
  82. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","schedule"),"size",150); //투여스케쥴
  83. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","etc"),"size",380); //주의사항
  84. } else {
  85. grd_tmedlist.setFormatColProperty(2,"size",100); //사진
  86. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","efcycnts"),"size",167); //효능
  87. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcpqty_unit"),"size",60); //함량 //2008-09-19 1회수량
  88. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcptims"),"size",60); //복용횟수
  89. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","mthdnm"),"size",116); //용법
  90. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","prcpdayno"),"size",30); //일수
  91. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","schedule"),"size",0); //투여스케쥴
  92. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","drugnm"),"size",230); //약품명
  93. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","statcnts"),"size",240); //성상
  94. //grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","schedule"),"size",150); //투여스케쥴
  95. grd_tmedlist.setFormatColProperty(grd_tmedlist.getBindCellIndex("body","etc"),"size",380); //주의사항
  96. var objImgeData;
  97. for( var i = 0; i < ds_grd_tmedlist.rowcount; i++ ){
  98. //DIF의 jpg 이미지를 base64로 인코딩
  99. if( ds_temp_srchinfo.getColumn(0, "difflagcd") != "1" ) {
  100. objImgeData = objCxtCommon.encodeBase64(ds_grd_tmedlist.getColumn(i, "pimagepath"));
  101. if( !utlf_isNull(objImgeData) ){
  102. ds_grd_tmedlist.setColumn(i, "medpict", objImgeData);
  103. }
  104. }
  105. }
  106. }
  107. grd_tmedlist.setCellProperty("head", 11, "text", "주의사항");
  108. }
  109. /**
  110. * 복약리스트에 처방추가(행추가)
  111. */
  112. function fAddTmedlist() {
  113. var cnt = 0;
  114. ds_send_tmedinfo.clearData();
  115. for( var i = 0; i < ds_grd_prcplist.rowcount; i++ ){
  116. if( ds_grd_prcplist.getColumn(i, "sel") == "Y" ){
  117. dsf_copyColInfo(ds_send_tmedinfo, ds_grd_prcplist); //Column 정보 복사
  118. var addRow = ds_send_tmedinfo.addRow();
  119. ds_send_tmedinfo.copyRow(addRow, ds_grd_prcplist, i);
  120. cnt++;
  121. }
  122. }
  123. if( cnt != 0 ){
  124. var oParam = {};
  125. oParam.id = "TRADC02202";
  126. oParam.service = "pharmacyconsultapp.ReqMngt";
  127. oParam.method = "reqGeTmedDescInfoList";
  128. oParam.inds = "req=ds_send_tmedinfo";
  129. oParam.outds = "ds_hidden_tmedlist=tmedlist";
  130. oParam.async = false;
  131. //oParam.callback = "cf_TRADC02202";
  132. tranf_submit(oParam);
  133. sysf_trace(ds_hidden_tmedlist.saveXML());
  134. var cnt = ds_hidden_tmedlist.rowcount;
  135. if( cnt > 0 ){
  136. for( var a = 0; a < cnt; a++ ){
  137. var iRow = ds_grd_tmedlist.addRow();
  138. ds_grd_tmedlist.copyRow(iRow, ds_hidden_tmedlist, a);
  139. }
  140. }
  141. }
  142. }
  143. /**
  144. * 복약설명서 개별출력
  145. */
  146. function fGetTmedlistDtl() {
  147. if(ds_grd_tmedlist.rowcount > 0){
  148. var Drugno = fGetDrugnoList();
  149. for(var i = 0; i < Drugno.length; i++){
  150. ds_send_tmedinfo.copyData(ds_grd_tmedlist);
  151. dsf_makeValue( ds_main_patinfo, "drugno", "string", Drugno[i]); //투약번호
  152. dsf_makeValue( ds_main_patinfo, "descformflag", "string", ds_temp_srchinfo.getColumn(0, "medtypeflag")); //설명서형식구분
  153. for(var j = 0; j < ds_grd_tmedlist.rowcount; j++){
  154. if(Drugno[i] == ds_grd_tmedlist.getColumn(j, "drugno") && ds_grd_tmedlist.getColumn(j, "drugno") != ""){
  155. dsf_makeValue( ds_main_patinfo, "cretno", "string", ds_grd_tmedlist.getColumn(j, "cretno"));
  156. }
  157. }
  158. dsf_setDefaultVal(ds_main_patinfo, "descformflag:A");
  159. dsf_setDefaultVal(ds_send_tmedinfo, "descformflag:A");
  160. //dsf_setTypeFormat(ds_send_tmedlisth, "cretno:INT");
  161. var oParam = {};
  162. oParam.id = "TXADC02101";
  163. oParam.service = "pharmacyconsultapp.TmedMngt";
  164. oParam.method = "reqExeTmedAllPrntData";
  165. oParam.inds = "req=ds_main_patinfo tmedlist=ds_send_tmedinfo";
  166. oParam.outds = "ds_hidden=ret";
  167. oParam.async = false;
  168. //oParam.callback = "cf_TXADC02101";
  169. tranf_submit(oParam);
  170. opener.dsf_makeValue( ds_temp_srchinfo, "tmedprntdt", "string", utlf_getCurrentDate() + utlf_getCurrentTime().substr(0,4) );
  171. }
  172. }
  173. }
  174. /*조회된 drugno의 값을 배열에 담는다.*/
  175. function fGetDrugnoList(){
  176. var Drugno = new Array();
  177. var nodeCnt = ds_grd_tmedlist.rowcount;
  178. var cnt = 0;
  179. var preDrugno = ds_grd_tmedlist.getColumn(0, "drugno");
  180. Drugno[cnt] = ds_grd_tmedlist.getColumn(0, "drugno");
  181. for(var i = 0; i < nodeCnt; i++){
  182. if(preDrugno != ds_grd_tmedlist.getColumn(i, "drugno") && !utlf_isNull(ds_grd_tmedlist.getColumn(i, "drugno"))){
  183. cnt++;
  184. Drugno[cnt] = ds_grd_tmedlist.getColumn(i, "drugno");
  185. preDrugno = ds_grd_tmedlist.getColumn(i, "drugno");
  186. }
  187. }
  188. return Drugno;
  189. }
  190. ]]></Script>