MRH00400.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327
  1. /**
  2. * @desc : 화면초기화
  3. *
  4. * @param :
  5. * @return :
  6. * @author : 경북대학교
  7. * @---------------------------------------------------
  8. */
  9. function fInitialize(){
  10. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept" , "D"); //부서코드 콤보
  11. addComboInstance("/root/init/orddept", "deptcd^depthngnm", "Z^전체", "dept"); //부서콤보 전체항목 추가
  12. model.setValue("/root/main/right_cond/orddeptcd", "Z");
  13. model.setValue("/root/main/right_cond/srch_flag", "I");
  14. model.setValue("/root/main/right_cond/srch_fromdd", getCurrentDate());
  15. model.setValue("/root/main/right_cond/srch_todd", getCurrentDate());
  16. model.setValue("/root/main/left_cond/srch_flag", "I");
  17. model.setValue("/root/main/left_cond/srch_fromdd", getCurrentDate());
  18. model.setValue("/root/main/left_cond/srch_todd", getCurrentDate());
  19. grd_left.deleteRow(1);
  20. grd_right.deleteRow(1);
  21. model.refresh();
  22. }
  23. /**
  24. * 저장 전 검색조건 체크
  25. * @return
  26. */
  27. function fCheck(){
  28. if(model.getValue("/root/main/right_cond/srch_flag")=="A" && model.getValue("/root/main/right_cond/orddeptcd")=="Z"){
  29. messageBox("재원 중인 환자를 검색시 진료과 선택은", "I003");
  30. return false;
  31. }
  32. if(model.getValue("/root/main/right_cond/pid")=="" &&
  33. (model.getValue("/root/main/right_cond/orddeptcd")=="Z" || model.getValue("/root/main/right_cond/srch_flag")=="Z" )){
  34. messageBox("진료과 또는 구분이 전체일 경우 환자번호는", "I003");
  35. return false;
  36. }
  37. return true;
  38. }
  39. /**
  40. * 환자검색
  41. * @return
  42. */
  43. function fRightSearch(){
  44. if(fCheck()){
  45. model.copyNode("/root/send/right/reqdata", "/root/main/right_cond");
  46. submit("TRMRH00400");
  47. }else{
  48. return;
  49. }
  50. model.makeNode("/root/temp/right_chkyn"); // 진단코드를 검색하는 경우 노드가 사라져버리는 현상때문에 검색하면 동시에 노드 생성하도록 설정
  51. model.setValue("/root/temp/right_chkyn", "N");
  52. model.refresh();
  53. }
  54. /**
  55. * 저장된 환자검색
  56. * @return
  57. */
  58. function fLeftSearch(){
  59. model.removeNodeset("/root/send/left");
  60. model.makeNode("/root/send/left/reqdata");
  61. model.makeValue("/root/main/left_cond/recflag", "D");
  62. model.copyNode("/root/send/left/reqdata", "/root/main/left_cond");
  63. submit("TRMRH00410");
  64. model.refresh();
  65. }
  66. /**
  67. * 검색된 환자를 대상환자로 복사
  68. * @return
  69. */
  70. function fCopyData(){
  71. var rihgt_rows=grd_right.rows-grd_right.fixedRows; // 오른쪽 그리드 행의 갯수
  72. var left_rows=grd_left.rows-grd_left.fixedRows; // 왼쪽 그리드 행의 갯수
  73. var j=left_rows+1;
  74. var lgrd_chk = false; // 왼쪽 그리드에 오른쪽에서 이동할려는 환자가 있는지 없는지 확인하는 플래그
  75. for(var i=1; i<=rihgt_rows; i++){
  76. var chkyn=model.getValue("/root/main/grd_right["+i+"]/chkbox");
  77. if(chkyn=="Y"){
  78. var r_pid=model.getValue("/root/main/grd_right["+i+"]/pid");
  79. var r_orddd=model.getValue("/root/main/grd_right["+i+"]/orddd");
  80. var r_cretno=model.getValue("/root/main/grd_right["+i+"]/cretno");
  81. for(var k=1; k<=left_rows; k++){
  82. var l_pid=model.getValue("/root/main/grd_left["+k+"]/pid");
  83. var l_orddd=model.getValue("/root/main/grd_left["+k+"]/orddd");
  84. var l_cretno=model.getValue("/root/main/grd_left["+k+"]/cretno");
  85. if(r_pid==l_pid && r_orddd==l_orddd && r_cretno==l_cretno){
  86. lgrd_chk=true;
  87. break;
  88. }
  89. }
  90. if(lgrd_chk==true){
  91. lgrd_chk = false;
  92. continue;
  93. }
  94. grd_left.addRow();
  95. model.setValue("/root/main/grd_left["+j+"]/saveyn", "Y");
  96. model.setValue("/root/main/grd_left["+j+"]/indxyn", "Y");
  97. model.setValue("/root/main/grd_left["+j+"]/fuyn", "N");
  98. model.setValue("/root/main/grd_left["+j+"]/eduyn", "Y");
  99. model.setValue("/root/main/grd_left["+j+"]/pid", model.getValue("/root/main/grd_right["+i+"]/pid"));
  100. model.setValue("/root/main/grd_left["+j+"]/hngnm", model.getValue("/root/main/grd_right["+i+"]/hngnm"));
  101. model.setValue("/root/main/grd_left["+j+"]/sex", model.getValue("/root/main/grd_right["+i+"]/sex"));
  102. model.setValue("/root/main/grd_left["+j+"]/age", model.getValue("/root/main/grd_right["+i+"]/age"));
  103. model.setValue("/root/main/grd_left["+j+"]/diagengnm", model.getValue("/root/main/grd_right["+i+"]/diagengnm"));
  104. model.setValue("/root/main/grd_left["+j+"]/orddd", model.getValue("/root/main/grd_right["+i+"]/orddd"));
  105. model.setValue("/root/main/grd_left["+j+"]/dschdd", model.getValue("/root/main/grd_right["+i+"]/dschdd"));
  106. model.setValue("/root/main/grd_left["+j+"]/telno", model.getValue("/root/main/grd_right["+i+"]/telno"));
  107. model.setValue("/root/main/grd_left["+j+"]/followup", "");
  108. model.setValue("/root/main/grd_left["+j+"]/cretno", model.getValue("/root/main/grd_right["+i+"]/cretno"));
  109. model.setValue("/root/main/grd_left["+j+"]/ordtype", model.getValue("/root/main/grd_right["+i+"]/ordtype"));
  110. j++;
  111. }
  112. }
  113. model.refresh();
  114. }
  115. /**
  116. * @desc : 진단 팝업
  117. * @
  118. * @param :
  119. * @return :
  120. * @---------------------------------------------------
  121. */
  122. function fClickPopUp(flag){
  123. var instance = document.models(0).instances(0);
  124. var nodelistTemp = instance.selectNodes("/root/temp/selectdiaglist");
  125. for (var i=1 ; i <= nodelistTemp.length ; i++) {
  126. model.destroy("/root/temp/selectdiaglist["+ i +"]");
  127. }
  128. model.refresh();
  129. modal("../../../emr/prcpmngtweb/xrw/SPMMO03200_진단팝업.xrw", 1, 0, 0, "", "", "");
  130. var sTmpdiagcd = "";
  131. var sTmpdiagengnm = "";
  132. var nodelistTemp = instance.selectNodes("/root/temp/selectdiaglist");
  133. if(nodelistTemp.length >= 1){
  134. sTmpdiagcd = model.getValue("/root/temp/selectdiaglist[1]/diagcd");
  135. sTmpdiagengnm = model.getValue("/root/temp/selectdiaglist[1]/diagengnm");
  136. if (flag == "1") {
  137. model.setValue("/root/main/right_cond/diagcd", sTmpdiagcd);
  138. }
  139. model.refresh();
  140. }
  141. }
  142. /**
  143. * @desc : 저장
  144. * @
  145. * @param :
  146. * @return :
  147. * @---------------------------------------------------
  148. */
  149. function fSave(){
  150. var chk=false;
  151. var left_rows=grd_left.rows-grd_left.fixedRows;
  152. var savedata = "instcd▦pid▦orddd▦cretno▦ordtype▦recflag▦indxyn▦fuyn▦eduyn▩";
  153. var datapath = "/root/main/grd_left";
  154. var srchdata = "pid▦srch_flag▦srch_fromdd▦srch_todd▦recflag▩";
  155. var srchpath = "/root/main/left_cond";
  156. for(var i=1; i<=left_rows; i++){
  157. var saveyn = model.getValue("/root/main/grd_left["+i+"]/saveyn");
  158. if(saveyn=="Y"){
  159. chk=true;
  160. savedata += getUserInfo("dutplceinstcd") + "▦";
  161. savedata += model.getValue(datapath+"["+ i +"]/pid") + "▦";
  162. savedata += model.getValue(datapath+"["+ i +"]/orddd") + "▦";
  163. savedata += model.getValue(datapath+"["+ i +"]/cretno") + "▦";
  164. savedata += model.getValue(datapath+"["+ i +"]/ordtype") + "▦";
  165. savedata += "D" + "▦";
  166. savedata += model.getValue(datapath+"["+ i +"]/indxyn") + "▦";
  167. savedata += model.getValue(datapath+"["+ i +"]/fuyn") + "▦";
  168. savedata += model.getValue(datapath+"["+ i +"]/eduyn") + "▩";
  169. }
  170. }
  171. if(chk==false){
  172. messageBox("수정된 데이터가", "I004");
  173. return;
  174. }
  175. if(model.getValue(srchpath+"/pid")==""){
  176. srchdata += "-" + "▦";
  177. }else{
  178. srchdata += model.getValue(srchpath+"/pid") + "▦";
  179. }
  180. srchdata += model.getValue(srchpath+"/srch_flag") + "▦";
  181. srchdata += model.getValue(srchpath+"/srch_fromdd") + "▦";
  182. srchdata += model.getValue(srchpath+"/srch_todd") + "▦";
  183. srchdata += "D" + "▩";
  184. model.removeNodeset("/root/send/left");
  185. model.makeNode("/root/send/left");
  186. model.makeValue("/root/send/left/reqdata", srchdata);
  187. model.makeValue("/root/send/left/savedata", savedata);
  188. submit("TXMRH00400");
  189. model.refresh();
  190. }
  191. /**
  192. * @desc : 상태값 변경
  193. * @
  194. * @param :
  195. * @return :
  196. * @---------------------------------------------------
  197. */
  198. function fChangeData(){
  199. if(grd_left.colRef("indxyn")==grd_left.col || grd_left.colRef("fuyn")==grd_left.col || grd_left.colRef("eduyn")==grd_left.col){
  200. model.setValue("/root/main/grd_left["+grd_left.row+"]/saveyn", "Y");
  201. }
  202. model.refresh();
  203. }
  204. /**
  205. * @desc : 오른쪽 전체 선택 및 전체 선택 해제
  206. * @
  207. * @param :
  208. * @return :
  209. * @---------------------------------------------------
  210. */
  211. function fStatusyn(){
  212. if(bool1.value == "Y"){
  213. for(var i = 0 ; i < grd_right.rows ; i++){
  214. grd_right.valueMatrix(i , grd_right.colRef("chkbox")) = "Y";
  215. }
  216. }else{
  217. for(var i = 0 ; i < grd_right.rows ; i++){
  218. grd_right.valueMatrix(i , grd_right.colRef("chkbox")) = "N";
  219. }
  220. }
  221. }
  222. /**
  223. * @desc : 통합기록 연동
  224. * @
  225. * @param :
  226. * @return :
  227. * @---------------------------------------------------
  228. */
  229. function fOpenRec(){
  230. var row = grd_right.row;
  231. if(row >0){
  232. setParameter("SMMRI00400_param_pid", model.getValue("/root/main/grd_right["+row+"]/pid"));
  233. setParameter("SMMRI00400_param_chosflag", model.getValue("/root/main/grd_right["+row+"]/ordtype"));
  234. setParameter("SMMRI00400_param_authflag", "N");
  235. modal("SMMRI00400", 1, 0, 0, "", "", "");
  236. }
  237. }
  238. /**
  239. * @desc : 컨설트기록 연동
  240. * @
  241. * @param :
  242. * @return :
  243. * @---------------------------------------------------
  244. */
  245. function fOpenCnst(){
  246. var row = grd_left.row;
  247. if(row >0){
  248. var datapath = "/root/main/grd_left";
  249. var param = "";
  250. param += model.getValue(datapath+"["+ row +"]/pid") + "▦";
  251. param += model.getValue(datapath+"["+ row +"]/orddd") + "▦";
  252. param += model.getValue(datapath+"["+ row +"]/cretno") + "▦";
  253. param += model.getValue(datapath+"["+ row +"]/ordtype") + "▦";
  254. param += "2220000000" + "▦";
  255. param += "" + "▩";
  256. setParameter("SMMMR05000_param_pinfo", param);
  257. modal("SMMMR05000", 1, 0, 0, "", "", "");
  258. }
  259. }
  260. /**
  261. * @desc : 저장된 환자 삭제
  262. * @
  263. * @param :
  264. * @return :
  265. * @---------------------------------------------------
  266. */
  267. function fDeletePat(){
  268. var row = grd_left.row;
  269. var savedata = "instcd▦pid▦orddd▦cretno▦recflag▩";
  270. var datapath = "/root/main/grd_left";
  271. var srchdata = "pid▦srch_flag▦srch_fromdd▦srch_todd▦recflag▩";
  272. var srchpath = "/root/main/left_cond";
  273. savedata += getUserInfo("dutplceinstcd") + "▦";
  274. savedata += model.getValue(datapath+"["+ row +"]/pid") + "▦";
  275. savedata += model.getValue(datapath+"["+ row +"]/orddd") + "▦";
  276. savedata += model.getValue(datapath+"["+ row +"]/cretno") + "▦";
  277. savedata += "D" + "▩";
  278. if(model.getValue(srchpath+"/pid")==""){
  279. srchdata += "-" + "▦";
  280. }else{
  281. srchdata += model.getValue(srchpath+"/pid") + "▦";
  282. }
  283. srchdata += model.getValue(srchpath+"/srch_flag") + "▦";
  284. srchdata += model.getValue(srchpath+"/srch_fromdd") + "▦";
  285. srchdata += model.getValue(srchpath+"/srch_todd") + "▦";
  286. srchdata += "D" + "▩";
  287. model.removeNodeset("/root/send/left");
  288. model.makeNode("/root/send/left");
  289. model.makeValue("/root/send/left/reqdata", srchdata);
  290. model.makeValue("/root/send/left/savedata", savedata);
  291. submit("TXMRH00410");
  292. fLeftSearch();
  293. model.refresh();
  294. }