SMADT01101.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321
  1. /**
  2. * 파 일 명 : SMADT01101.JS
  3. * 설 명 : 원외처방전 출력 팝업(원무용)
  4. * 설 계 자 : 김귀남.
  5. * 작 성 자 : 김귀남
  6. * 기본 로직은 SMADT01100.JS를 기반으루 구현.
  7. * 원외처방출력에 필요한 로직만 남겨두고 기타 다른 기능들은 삭제.
  8. */
  9. var gTimer;
  10. var gTimer1;
  11. var chk_cnt = 0;
  12. /**
  13. * 초기화
  14. */
  15. function fInit() {
  16. // =========================================== 트레이정보 설정 (원무 : 박재형 제공) ===========================================
  17. // desc :
  18. /*
  19. var printerfileno = document.readIniFile("Tray", "trayno", "X", "C:\\cmcnuprinter\\printer.ini");
  20. if ( printerfileno == "X") {
  21. if ( messageBox("프린터 트레이정보가 존재하지 않습니다. ''예 = 트레이1'', ''아니오 = 트레이2'' ","Q003") == "6"){
  22. printerfileno = "1";
  23. } else {
  24. printerfileno = "2";
  25. }
  26. var fso = new ActiveXObject("Scripting.FileSystemObject");
  27. var a = fso.CreateFolder("C:\\cmcnuprinter");
  28. document.writeinifile("Tray", "trayno", printerfileno,"C:\\cmcnuprinter\\printer.ini");
  29. model.makeValue("/root/hidden/prcpsrch/printer",printerfileno);
  30. model.setValue("/root/hidden/prcpsrch/printer",printerfileno);
  31. }else{
  32. model.makeValue("/root/hidden/prcpsrch/printer",printerfileno);
  33. model.setValue("/root/hidden/prcpsrch/printer",printerfileno);
  34. }
  35. */
  36. // =======================================================================================================================
  37. ///2015년 8월28일 김치국 사용하는 병원정보 등록
  38. model.makeValue("/root/temp/initinstcd",getUserInfo("dutplceinstcd"));
  39. model.setValue("/root/temp/initinstcd", getUserInfo("dutplceinstcd"));
  40. //20101103_laboru_경북대병원_투약일자, 투약번호 파라미터로 넘기기때문에 초기화 시키면 안됨.
  41. /*
  42. var curDate = new Date();
  43. model.setValue("/root/hidden/prcpsrch/drugdd", getCurrentDate());
  44. */
  45. if (model.getValue("root/hidden/prcpsrch/drugdd") == "") {
  46. var curDate = new Date();
  47. model.setValue("/root/hidden/prcpsrch/drugdd", getCurrentDate());
  48. }
  49. //원외 체크 초기화
  50. model.setValue("/root/hidden/prcpsrch/hosoutyn", "Y");
  51. fChkHosout_YN();
  52. //진료과 Combo 조회
  53. model.setValue("/root/send/deptinfo/deptflag", "D");
  54. // 20101124_laboru_경북대병원_마약/향정 외래 환자 원외 처방전 출력 여부 조회(R002)
  55. submit("TRADT01108");
  56. // 20100310_laboru_출고부서 조회, 설정
  57. /* submit("TRADT01106");
  58. var dutplceinstcd = getUserInfo("dutplceinstcd");
  59. if(dutplceinstcd == "017" || dutplceinstcd == "012" || dutplceinstcd == "011") {
  60. combo1.select(1);
  61. } else {
  62. combo1.select(0);
  63. }
  64. chk_cnt ++;
  65. model.makeValue("/root/temp/stocdeptcd", model.getValue("/root/hidden/prcpsrch/stocdeptcd"));
  66. combo1.refresh();*/
  67. // '영문명으로' 노드 생성
  68. var nodeEprntype = instance1.selectSingleNode("/root/hidden/prcpsrch/eprntype");
  69. if ( nodeEprntype == null ) {
  70. model.makeNode("/root/hidden/prcpsrch/eprntype");
  71. }
  72. model.refresh();
  73. if(model.getValue("/root/hidden/popupinfo/drugno") != ""){
  74. model.setValue("/root/hidden/prcpsrch/drugdd",
  75. model.getValue("/root/hidden/popupinfo/drugdd"));
  76. model.setValue("/root/hidden/prcpsrch/drugno",
  77. model.getValue("/root/hidden/popupinfo/drugno"));
  78. var drugno = model.getValue("/root/hidden/popupinfo/drugno");
  79. if((drugno > 10000 && drugno < 60001) || drugno >= 70000 ){
  80. model.makeValue("/root/hidden/prcpsrch/lblyn","");
  81. model.makeValue("/root/hidden/prcpsrch/lblflag","");
  82. model.makeValue("/root/hidden/prcpsrch/hosinyn","");
  83. model.makeValue("/root/hidden/prcpsrch/hosinmpsflag","");
  84. }else{
  85. model.setValue("/root/hidden/prcpsrch/hosoutyn","");
  86. model.makeValue("/root/hidden/prcpsrch/hosoutmpsflag","");
  87. }
  88. model.refresh();
  89. }
  90. }
  91. /**
  92. * 원외 변경시 처리
  93. */
  94. function fChkHosout_YN() {
  95. var chk = model.getValue("/root/hidden/prcpsrch/hosoutyn");
  96. if(chk == "Y"){
  97. model.makeValue("/root/hidden/prcpsrch/hosoutmpsflag", "1|2");
  98. } else {
  99. model.makeValue("/root/hidden/prcpsrch/hosoutmpsflag", "");
  100. }
  101. model.refresh();
  102. }
  103. /**
  104. * 처방전/라벨 출력
  105. */
  106. function fPrcpMPSPrint() {
  107. var chk_drugno = model.getValue("/root/hidden/prcpsrch/drugno");
  108. if( chk_drugno == ""){
  109. //자동출력 또는 미출력 처방 출력은 <원내>처방과 응급실원외처방만 출력한다.
  110. model.copyNode("/root/send/paramsrch","/root/hidden/prcpsrch");
  111. model.setValue("/root/send/paramsrch/autoprcp", "Y");
  112. submit("TRADT01101");
  113. //원외 처방전 출력
  114. if (model.getValue("/root/hidden/prcpsrch/hosoutyn") == "Y" && model.getValue("/root/hidden/prcpsrch/autooutprntyn") == "Y") {
  115. fHosOutMPSPrint();
  116. }
  117. } else {
  118. //원외 처방
  119. if(isNaN(chk_drugno)){
  120. messageBox("투약번호를 숫자로","C001");
  121. model.setValue("/root/hidden/prcpsrch/drugno", "");
  122. model.setFocus("input14");
  123. model.refresh();
  124. return;
  125. }
  126. chk_drugno = parseInt(chk_drugno, 10);
  127. if (model.getValue("/root/hidden/prcpsrch/hosoutyn") == "Y" ) {
  128. if(fChkDrugNo("Y")){
  129. model.setValue("/root/hidden/prcpsrch/prntflag", "Y");
  130. model.copyNode("/root/send/paramsrch","/root/hidden/prcpsrch");
  131. submit("TRADT01101");
  132. var chkret = 0;
  133. if(model.getValue("/root/main/paramdata/param/drugchkstat") == "NC") {
  134. chkret = messageBox("조제보류된 처방입니다. 출력", "Q004");
  135. if(chkret != 6) {
  136. return;
  137. }
  138. }
  139. // 20150421 jmkim 원외처방전 발행 시 미수납 상태이면 에러메시지 발생토록 팝업 추가
  140. if(model.getValue("/root/main/paramdata/param/rcptyn") != null // INPT일 경우 Null 반환
  141. && model.getValue("/root/main/paramdata/param/rcptyn") == "N") {
  142. messageBox("미수납상태", "I009");
  143. return;
  144. }
  145. var prntdt = model.getValue("/root/main/paramdata/param[1]/prntdt");
  146. if( prntdt !="" && prntdt != "-" && model.getValue("/root/hidden/prcpsrch/reprintyn") == "") {
  147. var prntdata = prntdt.substring(0,4) + "년" + prntdt.substring(4,6) + "월" + prntdt.substring(6,8) + "일" +
  148. prntdt.substring(8,10) + ":" + prntdt.substring(10,12) + ":" + prntdt.substring(12,14);
  149. result = messageBox(prntdata + "에 출력한 처방입니다. 원외처방전 재출력을","Q003");
  150. if(result == 6) {
  151. model.setValue("/root/hidden/prcpsrch/reprintyn","Y");
  152. model.refresh();
  153. }
  154. } else {
  155. result = 6;
  156. }
  157. if(result == 6) {
  158. //원외 처방전 출력
  159. fHosOutMPSPrint();
  160. }
  161. }
  162. }
  163. }
  164. }
  165. /**
  166. * 원외 처방전 출력
  167. */
  168. function fHosOutMPSPrint() {
  169. // 20101124_laboru_경북대병원_마약/향정 외래 환자 원외 처방전 출력 여부 조회(R002)
  170. var mdrugflag = model.getValue("/root/init/mdrugflags/mdrugflags/r002");
  171. for(var i = grd_param.fixedRows; i < grd_param.rows; i++){
  172. /*model.copyNode("/root/send/prcpsrch","/root/main/paramdata/param["+i+"]");
  173. //model.makeValue("/root/send/prcpsrch/hosoutmpsflag", model.getValue("/root/hidden/prcpsrch/hosoutmpsflag"));
  174. model.makeValue("/root/send/prcpsrch/prntflag", model.getValue("/root/hidden/prcpsrch/prntflag"));
  175. model.makeValue("/root/send/prcpsrch/autoprntyn", model.getValue("/root/hidden/prcpsrch/autoprntyn"));
  176. submit("TRADT01102");
  177. model.makeValue("/root/main/prcpdata/patinfo/hosoutmpsflagnm", "(약국제출용)");
  178. exeReportPreview("RFADT01101", "XMLSTR", "", "", "true","","","","","true");
  179. model.makeValue("/root/main/prcpdata/patinfo/hosoutmpsflagnm", "(본인보관용)");
  180. exeReportPreview("RFADT01101", "XMLSTR", "", "", "true","","","","","true");
  181. */
  182. ////2015년8월3일 김치국
  183. var reprintynflag = model.getValue("/root/hidden/prcpsrch/reprintyn");
  184. var reprnttype = model.getValue("/root/hidden/prcpsrch/reprnttype");
  185. var reprntpat = model.getValue("/root/hidden/prcpsrch/reprntpat");
  186. var elctsignkey = model.getValue("/root/hidden/prcpsrch/elctsignkey");
  187. var elctsigncnts = model.getValue("/root/hidden/prcpsrch/elctsigncnts");
  188. var inisinstcd = model.getValue("/root/temp/initinstcd");
  189. /////////칠곡만 정보 등록
  190. if (inisinstcd == "032") {
  191. // alert('재출력이므로 체크루틴 탐.');
  192. // alert(reprintynflag);
  193. if (reprintynflag == 'Y' ) {
  194. capt_cover.visible = false ;
  195. if (reprnttype == '' ) {
  196. alert('재출력이면서 재출력 구분정보가 없습니다. ');
  197. return;
  198. }
  199. if (reprntpat == '' ) {
  200. alert('재출력이면서 요청자 정보가 없습니다.');
  201. return;
  202. }
  203. if (elctsignkey == '' ) {
  204. alert('재출력이면서 요청자 싸인정보가 없습니다.');
  205. return;
  206. }
  207. }
  208. }
  209. var sParam = "";
  210. //2009-05-07 트레이 번호 추가 printerno
  211. //sParam = "drugdd▦drugno▦pid▦orddd▦cretno▦orddeptcd▦prcpgenrflag▦hosoutmpsflag▦reprintyn▩";
  212. sParam = "drugdd▦drugno▦pid▦orddd▦cretno▦orddeptcd▦prcpgenrflag▦hosoutmpsflag▦reprintyn▦prntflag▦printerno▩";
  213. sParam += model.getValue("/root/main/paramdata/param["+i+"]/drugdd")+"▦"+
  214. model.getValue("/root/main/paramdata/param["+i+"]/drugno")+"▦"+
  215. model.getValue("/root/main/paramdata/param["+i+"]/pid")+"▦"+
  216. model.getValue("/root/main/paramdata/param["+i+"]/orddd")+"▦"+
  217. model.getValue("/root/main/paramdata/param["+i+"]/cretno")+"▦"+
  218. model.getValue("/root/main/paramdata/param["+i+"]/orddeptcd")+"▦"+
  219. model.getValue("/root/main/paramdata/param["+i+"]/prcpgenrflag")+"▦"+
  220. model.getValue("/root/hidden/prcpsrch/hosoutmpsflag")+"▦"+
  221. model.getValue("/root/hidden/prcpsrch/reprintyn")+"▦"+
  222. "Y"+"▦"+
  223. model.getValue("/root/hidden/prcpsrch/stocdeptcd")+"▦"+ // 20100310_laboru_시행부서 Y 로 박히는 것 수정.
  224. model.getValue("/root/hidden/prcpsrch/printer")+"▦"+
  225. mdrugflag +"▦"+
  226. model.getValue("/root/hidden/prcpsrch/eprntype") + "▦" +
  227. ////////////2015년8월3일 추가 김치국
  228. model.getValue("/root/hidden/prcpsrch/reprnttype")+"▦"+
  229. model.getValue("/root/hidden/prcpsrch/reprntpat")+"▦"+
  230. model.getValue("/root/hidden/prcpsrch/elctsignkey")+"▦"+
  231. model.getValue("/root/hidden/prcpsrch/elctsigncnts")+"▦"+
  232. model.getValue("/root/hidden/prcpsrch/digcdskipyn")+"▩"
  233. ; // 20101124_laboru_경북대병원_마약/향정 외래 환자 원외 처방전 출력 여부 조회(R002)
  234. //model.getValue("/root/hidden/prcpsrch/printer")+"▦"+
  235. //model.getValue("/root/hidden/prcpsrch/stocdeptcd")+"▩"; // 20100310_laboru_시행부서 Y 로 박히는 것 수정.
  236. //messageBox ( model.getValue("/root/hidden/prcpsrch/printer"),"Q003") ;
  237. //messageBox("fPrcpMPSPrint-->"+ sParam,"Q003") ;
  238. // alert(sParam);
  239. model.setAttribute("params", sParam);
  240. modal("SPADT61100",0,200,200,"","");
  241. model.setAttribute("params", "");
  242. }
  243. }
  244. /**
  245. * 투약번호 체크
  246. */
  247. function fChkDrugNo(flag) {
  248. var drugno = model.getValue("/root/hidden/prcpsrch/drugno");
  249. var chk_in = model.getValue("/root/hidden/prcpsrch/hosinyn");
  250. var chk_out = model.getValue("/root/hidden/prcpsrch/hosoutyn");
  251. if(drugno != ""){
  252. drugno = parseInt(drugno, 10);
  253. if(flag == "Y"){
  254. if((drugno >= 10001 && drugno < 20001) || (drugno >= 90001 && drugno < 100000) || (drugno >= 40000 && drugno < 41000) ){ /// 투약번호 40000(외래 의료보호환자 중복방지)2015.4.14 김치국
  255. } else {
  256. messageBox("원외 투약번호를", "C001");
  257. return false;
  258. }
  259. } else if(flag == "O"){
  260. if( (drugno > 10000 && drugno < 60001) || drugno >= 70000 ) {
  261. // messageBox("원내 투약번호를", "C001");
  262. return false;
  263. }
  264. }
  265. }
  266. return true;
  267. }