SMMMO02700.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 후인증관리 SMMMO02700_후인증관리.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. /*
  7. * @desc : 후인증관리 화면 초기화
  8. * @
  9. * @param :
  10. * @return :
  11. * @author : 오지훈
  12. * @---------------------------------------------------
  13. */
  14. function fInitialize_SMMMO02700(){
  15. zbcfGetCodeList(new Array("M0011",
  16. "M0003",
  17. "M0029"),
  18. new Array("/root/init/prcpstatcd",
  19. "/root/init/prcpkindcd",
  20. "/root/init/payflagcd"));
  21. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "A");
  22. model.setValue("/root/main/cond/orddeptcd", getUserInfo("dutplcecd"));
  23. mmbfGetUserComboList("/root/send/reqdata", "/root/init/userlist", cmb_orddept.value, "0330", "", "V");
  24. addComboInstance("/root/init/userlist", "userid^usernm", "-^전체", "usercombo");
  25. model.setValue("/root/main/cond/orddrid", getUserInfo("userid"));
  26. model.setValue("/root/main/cond/fromdd", getNewDate().getAddDate(-60,"D").getDateFormat("YYYYMMDD") );
  27. model.setValue("/root/main/cond/todd" , getCurrentDate());
  28. var aftcert_pid = opener.javascript.getParameter("aftcert_pid");
  29. model.setValue("/root/main/cond/pid", aftcert_pid);
  30. model.removeNodeset ("/root/patinfo/patinfolist");
  31. model.removeNodeset ("/root/prcpsrch/prcplist");
  32. if("EMR" == getUserInfo("userid") ) {
  33. button3.visible = true;
  34. }
  35. model.refresh();
  36. if(cmb_orddrid.label == ""){cmb_orddrid.select(0);}
  37. btn_calendar.dispatch("DOMActivate");
  38. }
  39. /*
  40. * @desc : 후인증 환자 정보 조회
  41. * @
  42. * @param :
  43. * @return :
  44. * @author : 오지훈
  45. * @---------------------------------------------------
  46. */
  47. function fGetAftCertPatInfo(){
  48. model.removeNodeset("/root/send/reqdata");
  49. model.makeValue("/root/send/reqdata/fromdd" , model.getValue("/root/main/cond/fromdd"));
  50. model.makeValue("/root/send/reqdata/todd" , model.getValue("/root/main/cond/todd"));
  51. model.makeValue("/root/send/reqdata/orddeptcd", model.getValue("/root/main/cond/orddeptcd"));
  52. model.makeValue("/root/send/reqdata/orddrid" , model.getValue("/root/main/cond/orddrid"));
  53. model.makeValue("/root/send/reqdata/signyn" , model.getValue("/root/main/cond/signyn"));
  54. model.makeValue("/root/send/reqdata/pid" , model.getValue("/root/main/cond/pid"));
  55. submit("TRMMO02702")
  56. }
  57. /*
  58. * @desc : 환자 후인증 처방 조회
  59. * @
  60. * @param : currow - selected row value
  61. * @return :
  62. * @author : 오지훈
  63. * @---------------------------------------------------
  64. */
  65. function fGetPatAftPrcpSrch(currow){
  66. var pid = model.getValue("/root/patinfo/patinfolist[" + currow + "]/pid");
  67. var orddd = model.getValue("/root/patinfo/patinfolist[" + currow + "]/orddd");
  68. var cretno = model.getValue("/root/patinfo/patinfolist[" + currow + "]/cretno");
  69. var prcpdd = model.getValue("/root/patinfo/patinfolist[" + currow + "]/prcpdd");
  70. var ioflag = model.getValue("/root/patinfo/patinfolist[" + currow + "]/ioflag");
  71. var prcpgenrflag= model.getValue("/root/patinfo/patinfolist[" + currow + "]/prcpgenrflag");
  72. var cert = model.getValue("/root/patinfo/patinfolist[" + currow + "]/cert");
  73. var orddeptcd = model.getValue("/root/main/cond/orddeptcd")
  74. var orddrid = model.getValue("/root/main/cond/orddrid");
  75. // 조회조건에서 처방일자는 제외함. 즉, 선택된 수진내역의 해당의사의 모든 후인증처방 조회.
  76. // var fromdd = model.getValue("/root/main/cond/fromdd");
  77. // var todd = model.getValue("/root/main/cond/todd");
  78. var pidonly = "";
  79. if (model.getValue("/root/main/cond/pid") == "") {
  80. pidonly = "N";
  81. } else {
  82. pidonly = "Y";
  83. }
  84. model.removeNodeset("/root/send/reqdata");
  85. model.makeValue("/root/send/reqdata/pid" , pid);
  86. model.makeValue("/root/send/reqdata/orddd" , orddd);
  87. model.makeValue("/root/send/reqdata/cretno" , cretno);
  88. model.makeValue("/root/send/reqdata/orddrid" , orddrid);
  89. // 조회조건에서 처방일자는 제외함. 즉, 선택된 수진내역의 해당의사의 모든 후인증처방 조회.
  90. // model.makeValue("/root/send/reqdata/fromdd" , fromdd);
  91. // model.makeValue("/root/send/reqdata/todd" , todd);
  92. model.makeValue("/root/send/reqdata/ioflag" , ioflag);
  93. model.makeValue("/root/send/reqdata/prcpgenrflag" , prcpgenrflag);
  94. model.makeValue("/root/send/reqdata/cert" , cert);
  95. model.makeValue("/root/send/reqdata/orddeptcd" , orddeptcd);
  96. model.makeValue("/root/send/reqdata/pidonly" , pidonly);
  97. if(submit("TRMMO02704")){
  98. }
  99. }
  100. /*
  101. * @desc : 후인증처방저장
  102. * @
  103. * @param :
  104. * @return :
  105. * @author : 오지훈
  106. * @---------------------------------------------------
  107. */
  108. function fSaveAftSignPrcp(currow){
  109. // savedataflag : 저장자료구분 (2:처방)
  110. // saveflag : 저장구분 (O:외래, I:입원, E:응급, S:건진)
  111. // prcpflag : 처방권한구분 (코드정의서 M0035 참조) 0 ( 의사처방 )
  112. // inptflag : 입력구분 (코드정의서 M0034 참조) 00:처방검색 ...
  113. // deptcd : 부서코드 (입력자 또는 로그인한 사용자의 부서코드)
  114. // deptnm : 부서명 (입력자 또는 로그인한 사용자의 부서명)
  115. // userid : 사용자ID (입력자 또는 로그인한 사용자ID)
  116. // usernm : 사용자명 (입력자 또는 로그인한 사용자명)
  117. // signyn : 전자서명여부 (Y/N)
  118. model.setValue("/root/savedata/saveflaginfo/savedataflag", "2");
  119. model.setValue("/root/savedata/saveflaginfo/saveflag" , model.getValue("/root/patinfo/patinfolist[" + currow + "]/prcpgenrflag"));
  120. model.setValue("/root/savedata/saveflaginfo/prcpflag" , "0");
  121. model.setValue("/root/savedata/saveflaginfo/inptflag" , "00");
  122. model.setValue("/root/savedata/saveflaginfo/deptcd" , getUserInfo("dutplcecd"));
  123. model.setValue("/root/savedata/saveflaginfo/deptnm" , getUserInfo("dutplcenm"));
  124. model.setValue("/root/savedata/saveflaginfo/userid" , getUserInfo("userid"));
  125. model.setValue("/root/savedata/saveflaginfo/usernm" , getUserInfo("usernm"));
  126. model.setValue("/root/savedata/saveflaginfo/signyn" , "Y");
  127. model.removeNodeset("/root/send/savedata");
  128. var saveFlagInfoNodeList = model.instances(0).selectNodes("/root/savedata/saveflaginfo");
  129. model.makeValue("/root/send/savedata/cond1", getNodeListCSV(saveFlagInfoNodeList));
  130. // pid : 등록번호
  131. // orddd : 진료(입원)일자
  132. // cretno : 생성번호
  133. // instcd : 기관코드
  134. model.setValue("/root/savedata/savergstinfo/pid" , model.getValue("/root/patinfo/patinfolist[" + currow + "]/pid"));
  135. model.setValue("/root/savedata/savergstinfo/orddd" , model.getValue("/root/patinfo/patinfolist[" + currow + "]/orddd"));
  136. model.setValue("/root/savedata/savergstinfo/indd" , model.getValue("/root/patinfo/patinfolist[" + currow + "]/orddd"));
  137. model.setValue("/root/savedata/savergstinfo/cretno", model.getValue("/root/patinfo/patinfolist[" + currow + "]/cretno"));
  138. model.setValue("/root/savedata/savergstinfo/instcd", getUserInfo("dutplceinstcd"));
  139. var saveRgstInfo = model.instances(0).selectNodes("/root/savedata/savergstinfo");
  140. model.makeValue("/root/send/savedata/cond2", getNodeListCSV(saveRgstInfo));
  141. //20080809 마정민 수정 검색할 때 필요한 정보를 가져오도록 수정
  142. var srcNodeList = model.instances(0).selectNodes("/root/prcpsrch/prcplist");
  143. model.makeValue("/root/send/savedata/cond3", getNodeListCSV(srcNodeList));
  144. if(!submit("TRMMO02703", false)){
  145. return;
  146. }
  147. model.setValue("/root/result/saveflaginfo/signinfochk", "N"); //추가-임시 (2010.08.10 JJE)
  148. //저장구분정보 저장데이터
  149. var saveflaginfo = model.instances(0).selectNodes("/root/result/saveflaginfo");
  150. model.makeValue("/root/send/savedata/cond3", getNodeListCSV(saveflaginfo));
  151. var signinfochk = model.getValue("/root/result/saveflaginfo/signinfochk");
  152. //의사처방 저장데이터
  153. var saveprcpinfo = model.instances(0).selectNodes("/root/result/saveprcpinfo");
  154. model.makeValue("/root/send/savedata/cond4", getNodeListCSV(saveprcpinfo));
  155. if ( signinfochk == "N") {
  156. var saveSignPrcpInfo = model.instances(0).selectNodes("/root/result/signprcplist");
  157. model.makeValue("/root/send/savedata/cond5", getNodeListCSV(saveSignPrcpInfo));
  158. if(!submit("TXMMO02701", false)){
  159. return;
  160. }else{
  161. model.removeNodeset("/root/savedata/saveprcpInfo/saveprcpInfolist");
  162. }
  163. return;
  164. }
  165. if(model.getValue("/root/savedata/saveflaginfo/signyn") == "Y"){
  166. var signbfcnts = model.getValue("/root/result/signprcplist/signbfcnts");
  167. var setnode = "/root/result/signprcplist/signaftcnts";
  168. var signid = getUserInfo("userid");
  169. var signopt = false;
  170. if ( signinfochk == "Y" ) {
  171. //처방인증
  172. var v_stext = fSaveSign(signbfcnts, signid, signopt, setnode);
  173. }
  174. if(v_stext != "N"){
  175. if(isNull(v_stext)){
  176. return false;
  177. }
  178. var saveSignPrcpInfo = model.instances(0).selectNodes("/root/result/signprcplist");
  179. model.makeValue("/root/send/savedata/cond5", getNodeListCSV(saveSignPrcpInfo));
  180. if(!submit("TXMMO02701", false)){
  181. return;
  182. }else{
  183. model.removeNodeset("/root/savedata/saveprcpInfo/saveprcpInfolist");
  184. }
  185. }
  186. if(!isNull(model.getValue("/root/savecnt/savecnt/setrow"))){
  187. model.setValue("/root/patinfo/patinfolist[" + currow + "]/cert", "Y");
  188. }
  189. model.refresh();
  190. }
  191. }
  192. /*
  193. * @desc : 후인증저장 버튼 클릭시
  194. * : 선택된 환자의 후인증 처방 조회,
  195. * : 후인증 저장 및 후인증 환자 조회 처리
  196. * @
  197. * @param :
  198. * @return :
  199. * @author : 오지훈
  200. * @---------------------------------------------------
  201. */
  202. function fClkBtnSaveAftCert(){
  203. for(var i = 1; i < grd_patchosinfo.rows; i++){
  204. //for(var i = 1; i < 10; i++){
  205. var status = model.getValue("/root/patinfo/patinfolist[" + i + "]/status");
  206. var cert = model.getValue("/root/patinfo/patinfolist[" + i + "]/cert");
  207. if(status == "Y" && cert == "N"){
  208. fGetPatAftPrcpSrch(i); //선택된 환자의 후인증 처방 조회
  209. fSaveAftSignPrcp(i); //후인증 저장
  210. }
  211. }
  212. model.removeNodeset("/root/prcpsrch/prcplist");
  213. model.refresh();
  214. fGetAftCertPatInfo(); //후인증 환자 조회
  215. }
  216. /*
  217. * @desc : 후인증배치 버튼 클릭시
  218. * : 진료의, 처방적용시작일자의 후인증을 배치로 처리 한다.
  219. * @
  220. * @param :
  221. * @return :
  222. * @author : 엄영만 2014.04.15
  223. * @---------------------------------------------------
  224. */
  225. function fClkBtnBatchAftCert(){
  226. var prcpdd = model.getValue("/root/main/cond/fromdd");
  227. var orddrid = model.getValue("/root/main/cond/orddrid");
  228. if ( messageBox ( "후인증 배치를 실행 하시겠습니까? \n\n 대상처방일자:"+prcpdd+" 대상의사:"+orddrid,"Q") == "6" ) {
  229. model.removeNodeset("/root/send/reqdata");
  230. model.makeValue("/root/send/reqdata/fromdd" , prcpdd);
  231. model.makeValue("/root/send/reqdata/orddrid" , orddrid);
  232. submit("TXMMO02702")
  233. }
  234. }