SMMNS00500.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507
  1. /*
  2. 전문간호 관리환자목록 (SMMNS00500.xrw - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. */
  6. var xEdupatInfoPath = '/root/main/edupatinfo/edupatlist'; //관리환자목록 정보
  7. var s1="";
  8. var suppdeptcd = '';//메뉴그룹에 등록된 사용부서코드
  9. //20090617 dhkim
  10. var suppdeptnm = '';//메뉴그룹에 등록된 사용부서명
  11. // emr.mnwmcode
  12. // cdgrupid 022, 023, 024
  13. // 022 : 전문분야리스트 (grupdetldesc : R <- 의뢰데이터구분)
  14. // 023 : 전문간호팀코드
  15. // 024 : 전문간호겸업부서 (상처/장요루)
  16. /**
  17. * 화면 초기화
  18. */
  19. function fInit(){
  20. //20090205 dhkim
  21. //전문간호/BMT전문간호 로 나눠지게 되면서 사용부서에 해당하는 분야로 각각 등록됨.
  22. suppdeptcd = aezfSetSuppDeptcd();//메뉴그룹에 등록된 사용부서코드
  23. //20090522 dhkim 메뉴사용처명 조회
  24. suppdeptnm = getMenuDeptnm('/root/send/deptcd', suppdeptcd, 'TRMNI02031', '/root/temp/menudeptinfo/deptnm');
  25. fSpclCareSearch(suppdeptcd);//전문분야 코드및 명칭을 조회한다.
  26. fSpclNursDeptSearch();//간호에 등록된 전문분야 정보를 임시노드에 조회해 온다.
  27. fSpcltemCodeSearch(); //간호에 등록된 전문간호팀코드 정보를 임시노드에 조회해 온다.
  28. fSpclSideJobSearch(); //간호에 등록된 전문간호겸업부서 정보를 임시노드에 조회해 온다.
  29. // 일자 Setting
  30. select_Date();
  31. cmb_spcl.select(0);//전문분야의 콤보 제일 첫번째로 선택된 상태
  32. }
  33. /**
  34. * 전문분야 코드및 명칭을 조회한다.
  35. */
  36. function fSpclCareSearch(suppdeptcd){
  37. //20090205 dhkim
  38. //전문간호/BMT전문간호 로 나눠지게 되면서 사용부서에 해당하는 분야로 각각 등록됨.
  39. model.removenode('/root/send');
  40. model.makeValue('/root/send/suppdeptcd', suppdeptcd);
  41. model.removenode('root/hidden/spclcarefildflaginfo');
  42. model.makenode('root/hidden/spclcarefildflaginfo');
  43. if(!submit('TRMNS00107')){
  44. messageBox('전문분야기준자료 조회를 실패하였습니다.', 'E999');
  45. }
  46. }
  47. /***********************************************************************************************************************************************************
  48. * @author : dhkim
  49. * @desc : 간호에 등록된 전문분야 정보
  50. ***********************************************************************************************************************************************************/
  51. function fSpclNursDeptSearch(){
  52. //20090116 dhkim
  53. //간호에 등록된 전문분야 정보를 임시노드에 조회해 온다.
  54. //간호 테이블에 등록된 조회정보
  55. //전문분야코드 : 022, 전문간호팀코드 : 023
  56. model.removenode('/root/send');
  57. model.makeValue('/root/send/cdgrupid', '022');
  58. model.removenode('/root/hidden/nursdeptinfo');
  59. model.makenode('/root/hidden/nursdeptinfo');
  60. if(!submit('TRMNS00108')){
  61. messageBox('간호에 등록된 전문분야정보를 조회를 실패하였습니다.', 'E999');
  62. return false;
  63. }
  64. }
  65. /***********************************************************************************************************************************************************
  66. * @author : dhkim
  67. * @desc : 전문간호팀코드 정보
  68. ***********************************************************************************************************************************************************/
  69. function fSpcltemCodeSearch(){
  70. //20090119 dhkim
  71. //간호에 등록된 전문간호팀코드 정보를 임시노드에 조회해 온다.
  72. //간호 테이블에 등록된 조회정보
  73. //전문분야코드 : 022, 전문간호팀코드 : 023
  74. model.removenode('/root/send');
  75. model.makeValue('/root/send/cdgrupid', '023');
  76. model.removenode('/root/hidden/spclteaminfo');
  77. model.makenode('/root/hidden/spclteaminfo');
  78. if(!submit('TRMNS00109')){
  79. messageBox('간호에 등록된 전문분야정보를 조회를 실패하였습니다.', 'E999');
  80. }
  81. }
  82. /***********************************************************************************************************************************************************
  83. * @author : dhkim
  84. * @desc : 전문간호겸업부서 정보
  85. ***********************************************************************************************************************************************************/
  86. function fSpclSideJobSearch(){
  87. //20090128 dhkim
  88. //간호에 등록된 전문간호겸업부서 정보를 임시노드에 조회해 온다.
  89. //간호 테이블에 등록된 조회정보
  90. //전문분야코드 : 022, 전문간호팀코드 : 023, 전문간호겸업부서코드 : 024
  91. model.removenode('/root/send');
  92. model.makeValue('/root/send/cdgrupid', '024');
  93. model.removenode('/root/hidden/spclsideinfo');
  94. model.makenode('/root/hidden/spclsideinfo');
  95. if(!submit('TRMNS00110')){
  96. messageBox('간호에 등록된 전문분야겸업부서정보 조회를 실패하였습니다.', 'E999');
  97. return false;
  98. }
  99. }
  100. /**
  101. * @group :
  102. * @ver : 2007.05.16
  103. * @by : 정경화
  104. * @---------------------------------------------------
  105. * @type : function
  106. * @access : public
  107. * @desc : 조회일자 Setting
  108. * @param :
  109. * @return :
  110. * @---------------------------------------------------
  111. */
  112. function select_Date(){
  113. /*if(rdo_ddflag.value == 'O'){
  114. ipt_Fromdd.value = ((getCurrentDate().toDate()).getAddDate(-15, "D")).getDateFormat();//보름
  115. ipt_Enddd.value = getCurrentDate();
  116. }else{*/
  117. ipt_Fromdd.value = ((getCurrentDate().toDate()).getAddDate(-3, "M")).getDateFormat();//세달전
  118. ipt_Enddd.value = getCurrentDate();
  119. //}
  120. }
  121. /***********************************************************************************************************************************************************
  122. * @group :
  123. * @ver : 2007.02.28
  124. * @by : dhkim
  125. * @---------------------------------------------------------------------------------------------------------------------------------------------------------
  126. * @type : function
  127. * @access : public
  128. * @desc : 환자 등록번호 조회를 위한 팝업화면 호출
  129. * @param :
  130. * @return :
  131. ************************************************************************************************************************************************************/
  132. function fPopPatient(){
  133. //조회조건의 등록번호 팝업 호출 이벤트 발생시
  134. setParameter("pid",model.getValue("/root/cond/pid"));
  135. setParameter("flg","1");
  136. var left = event.screenX-330;
  137. var top = event.screenY;
  138. modal("SMMNS03100",1,left,top);
  139. model.refresh();
  140. model.setFocus("btn_select");
  141. }
  142. /**
  143. * @group :
  144. * @ver : 2007.06.26
  145. * @by : 정경화
  146. * @---------------------------------------------------
  147. * @type : function
  148. * @access : public
  149. * @desc : 전문간호 관리환자목록조회
  150. * @param :
  151. * @return :
  152. * @---------------------------------------------------
  153. */
  154. function select_reqlist(){
  155. fSetGridColText();
  156. var fromdd = ipt_Fromdd.value;
  157. var todd = ipt_Enddd.value;
  158. if(rdo_ddflag.value == 'O'){
  159. if(fromdd == '' && todd == ''){
  160. select_Date();
  161. }
  162. }
  163. model.removeNodeSet('/root/edupatinfo/edupatlist');
  164. model.removenode("/root/send");
  165. model.makeNode("/root/send");
  166. //20090617 dhkim
  167. var spcl = model.getValue("/root/cond/spcl");
  168. var rgstflag = '';
  169. var deptflag = '';
  170. var deptcd = '';
  171. var reqyn = 'f';
  172. var nodesetCnt = getNodesetCount('/root/hidden/nursdeptinfo/nursdeptlist');
  173. for(var i = 1; i <= nodesetCnt; i++){
  174. deptflag = model.getValue('/root/hidden/nursdeptinfo/nursdeptlist[' + i + ']/deptflag');
  175. deptcd = model.getValue('/root/hidden/nursdeptinfo/nursdeptlist[' + i + ']/deptcd');
  176. if(deptflag == 'R' && deptcd == spcl){
  177. reqyn = 't';
  178. break;
  179. }
  180. }
  181. if(reqyn == 't'){
  182. rgstflag = 'R';
  183. }else{
  184. rgstflag = 'E';
  185. }
  186. //20090128 전문분야중 겸업인 부서를 찾는다.
  187. spcl = fMakeSpclSideQuery(spcl);
  188. model.makeValue("/root/send/spcl", spcl);
  189. model.makeValue("/root/send/ddflag", model.getValue("/root/cond/ddflag"));
  190. model.makeValue("/root/send/fromdd", model.getValue("/root/cond/fromdd"));
  191. model.makeValue("/root/send/enddd", model.getValue("/root/cond/enddd"));
  192. model.makeValue("/root/send/stat", model.getValue("/root/cond/stat"));
  193. model.makeValue("/root/send/patfg", model.getValue("/root/cond/patfg"));
  194. model.makeValue("/root/send/pid", model.getValue("/root/cond/pid"));
  195. model.makeValue("/root/send/patnm", model.getValue("/root/cond/patnm"));
  196. model.makeValue("/root/send/rgstflag", rgstflag);
  197. //20090121 dhkim
  198. //전문간호팀 코드
  199. //model.makeValue("/root/send/spclteamcd", model.getValue("/root/hidden/spclteaminfo/spclteamlist/deptcd"));
  200. //20090205 dhkim
  201. //전문간호/BMT전문간호 로 나눠지게 되면서 사용부서에 해당하는 분야로 각각 등록됨.
  202. model.makeValue("/root/send/spclteamcd", suppdeptcd);
  203. if(submit("TRMNS00501", false)){
  204. model.refresh();
  205. }else{
  206. messageBox('조회를', 'E009');
  207. return false;
  208. }
  209. }
  210. function fSetGridColText(){
  211. //전문분야에 해당하는 default 조회구간을 설정한다.
  212. //ddflag (의뢰일:R, 처방일 : O, 예약일 : S, 수행일 : A)
  213. //정맥, 상처, 장요루 default : 의뢰일기준
  214. //신경, 유방센터 default : 처방일기준
  215. if(rdo_ddflag.value == "R"){
  216. grd_edulist.valueMatrix(0, 8)="의뢰일";
  217. }else if(rdo_ddflag.value == "O"){
  218. grd_edulist.valueMatrix(0, 8)="처방일";
  219. }else if(rdo_ddflag.value == "S"){
  220. grd_edulist.valueMatrix(0, 8)="예약일";
  221. }else if(rdo_ddflag.value == "A"){
  222. grd_edulist.valueMatrix(0, 8)="수행일";
  223. }
  224. }
  225. /**
  226. * @group :
  227. * @ver : 2007.07.04
  228. * @by : 정경화
  229. * @---------------------------------------------------
  230. * @type : function
  231. * @access : public
  232. * @desc : Excel파일로 저장
  233. * @param :
  234. * @param :
  235. * @return :
  236. * @---------------------------------------------------
  237. */
  238. function fSaveExcel(){
  239. file = window.fileDialog("save","","true","","xls","All Files (*.*)|*.*|Excel Files(*.xls)|*.xls");
  240. if(file != "") {
  241. grd_edulist.saveExcel(file);
  242. }
  243. }
  244. /**
  245. * @group :
  246. * @ver : 2007.07.04
  247. * @by : 정경화
  248. * @---------------------------------------------------
  249. * @type : function
  250. * @access : SMS 전송 화면 팝업
  251. * @desc :
  252. * @param :
  253. * @return :
  254. * @---------------------------------------------------
  255. */
  256. function fPopUpCall(pFlag){
  257. var xpos = event.screenX-550;
  258. var ypos = event.screenY+60;
  259. var sParam_Data = "";
  260. if(pFlag == "SMSTrsm"){
  261. var xpos = event.screenX-550;
  262. var ypos = event.screenY+60;
  263. var sParam_Data = "";
  264. var sCheck = ''; var _sCheck = '';
  265. var pid = ''; var _pid = '';
  266. var hpno = ''; var cretno = 0;
  267. var _hpno = '';
  268. for(var i = 1; i < grd_edulist.rows; i++) {
  269. pid = model.getValue(xEdupatInfoPath + "[" + i + "]/pid");
  270. sCheck = model.getValue(xEdupatInfoPath + "[" + i + "]/chk");
  271. if(sCheck == "Y") {
  272. hpno = model.getValue(xEdupatInfoPath + "[" + i + "]/mpphontel");
  273. cretno = model.getValue(xEdupatInfoPath + "[" + i + "]/cretno");
  274. //if( pid != '' && pid != _pid){
  275. sParam_Data += pid+"▦"
  276. + model.getValue(xEdupatInfoPath+"["+i+"]/cretno")+"▦"
  277. + model.getValue(xEdupatInfoPath+"["+i+"]/pidnm")+"▦"
  278. + hpno+"▩";
  279. //}
  280. //_pid = model.getValue(xEdupatInfoPath + "[" + i + "]/pid");
  281. //동일 환자에 대한 리스트를 필터링 없이 모두 보여줌.
  282. }
  283. }
  284. if(sParam_Data == ""){
  285. //messageBox("SMS 전송할 대상자가","I004");
  286. return;
  287. }
  288. setParameter("SMMNS02000_Param",sParam_Data);
  289. modal("SMMNS02000", 1, xpos, ypos);
  290. if(getParameter("SMMNS02000_ReturnFlag") == "") return;
  291. select_reqlist();
  292. grd_edulist.rebuild();
  293. }
  294. }
  295. /**
  296. * @group :
  297. * @ver : 2008.01.25
  298. * @by : dhkim
  299. * @---------------------------------------------------
  300. * @type : function
  301. * @access : public
  302. * @desc : 라벨출력
  303. * @param :
  304. * @return :
  305. * @---------------------------------------------------
  306. */
  307. function fPrintLabel(){
  308. var xGridPath = '/root/main/edupatinfo/edupatlist';
  309. model.removenode('/root/hidden');
  310. model.makenode('/root/hidden/labeldata');
  311. var labelcnt = 0;
  312. var addr = '';
  313. for(var i = 1; i < grd_edulist.rows; i++){
  314. if(model.getValue(xGridPath +'[' + i + ']/chk') == 'Y'){
  315. addr = model.getValue(xGridPath +'[' + i + ']/address');
  316. if(addr != ''){
  317. labelcnt = eval(getNodesetCount('/root/hidden/labeldata/edupatlist')) + 1;
  318. model.makeNode('/root/hidden/labeldata/edupatlist[' + labelcnt + ']');
  319. model.copyNode('/root/hidden/labeldata/edupatlist[' + labelcnt + ']', xGridPath + '[' + i + ']');
  320. }
  321. }
  322. }
  323. labelcnt = eval(getNodesetCount('/root/hidden/labeldata/edupatlist'));
  324. if(labelcnt > 0){
  325. exeReportPreview("RMMNS01900", "XMLSTR"); //미리보기
  326. }
  327. }
  328. /*********************************************************************************************************************************
  329. * @author : dhkim
  330. * @create : 20090119
  331. * @desc : 전문분야콤보 change event
  332. **********************************************************************************************************************************/
  333. function fSpclComboChanged(){
  334. //전문분야에 해당하는 default 조회구간을 설정한다.
  335. //정맥, 상처, 장요루 default : 의뢰일기준
  336. //신경, 유방센터 default : 처방일기준
  337. var spcl = model.getValue("/root/cond/spcl");
  338. var deptflag = '';
  339. var deptcd = '';
  340. var reqyn = 'f';
  341. var nodesetCnt = getNodesetCount('/root/hidden/nursdeptinfo/nursdeptlist');
  342. for(var i = 1; i <= nodesetCnt; i++){
  343. deptflag = model.getValue('/root/hidden/nursdeptinfo/nursdeptlist[' + i + ']/deptflag');
  344. deptcd = model.getValue('/root/hidden/nursdeptinfo/nursdeptlist[' + i + ']/deptcd');
  345. //alert('deptflag '+deptflag + ' deptcd ' + deptcd + ' spcl ' + spcl);
  346. if(deptflag == 'R' && deptcd == spcl){
  347. reqyn = 't';
  348. break;
  349. }
  350. }
  351. //alert('reqyn ' + reqyn);
  352. if(reqyn == 't'){//의뢰
  353. grd_edulist.colWidth(8) = 0;
  354. grd_edulist.colWidth(11) = 100;
  355. grd_edulist.colWidth(5) = 90;
  356. model.setValue("/root/cond/ddflag","R");
  357. grd_edulist.valueMatrix(0,7)="의뢰일";
  358. grd_edulist.valueMatrix(0,9)="의뢰명";
  359. }else{
  360. grd_edulist.colWidth(8) = 71;
  361. grd_edulist.colWidth(11) = 79;
  362. grd_edulist.colWidth(5) = 56;
  363. model.setValue("/root/cond/ddflag","O");
  364. grd_edulist.valueMatrix(0,7)="처방일";
  365. grd_edulist.valueMatrix(0,9)="처방명";
  366. }
  367. rdo_ddflag.refresh();
  368. }
  369. /***********************************************************************************************************************************************************
  370. * @author : dhkim
  371. * @create : 20090128
  372. * @desc : 상처/장요루 분야의 경우 상처, 장요루 코드를 함께 조회하도록 쿼리를 만들어서 조회한다.
  373. ***********************************************************************************************************************************************************/
  374. function fMakeSpclSideQuery(spclFildCd){
  375. var nodesetCnt = getNodesetCount("/root/hidden/spclsideinfo/spclsidelist");
  376. var deptcd = "";
  377. var qryStr = "";
  378. var sideYn = "f";
  379. var retSpclCd = '';
  380. for(var i = 1; i <= nodesetCnt; i++){
  381. deptcd = model.getValue("/root/hidden/spclsideinfo/spclsidelist[" + i + "]/deptcd");
  382. if(i == nodesetCnt){
  383. qryStr += deptcd;
  384. }else{
  385. qryStr += deptcd + "|";
  386. }
  387. if(spclFildCd == deptcd){
  388. sideYn = "t";
  389. break;
  390. }
  391. }
  392. if(sideYn == "t"){
  393. retSpclCd = qryStr;
  394. }else{
  395. retSpclCd = spclFildCd;
  396. }
  397. //alert(retSpclCd);
  398. return retSpclCd;
  399. }