SPMMO08200.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 관심환자등록 (SPMMO08200_관심환자등록.xrw - JScript )
  4. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  5. */
  6. var sPATINFO_PARAM; // 환자의 등록번호, 입원(외래)일자 및 한글명을 받는 Parameter
  7. var sINPATINFO_PATH = "/root/hidden/patinfo";
  8. var sCONCPATINFO_PATH = "/root/main/concpatinfo/concpatinfo";
  9. var sCONCPATINFOHIST_PATH = "/root/main/concpatinfohist/concpatinfohist"
  10. var sCONDITION_PATH = "/root/main/cond";
  11. /**
  12. * @desc : 화면 초기화
  13. * @
  14. * @param :
  15. * @return :
  16. * @---------------------------------------------------
  17. */
  18. function fInitialize(){
  19. model.setValue("/root/init/today", getCurrentDate());
  20. model.setValue("/root/main/concpatinfo/concpatinfo/valifromdd", getCurrentDate());
  21. model.setValue("/root/main/concpatinfo/concpatinfo/valitodd", "99991231");
  22. zbcfGetCodeList(new Array("M0001"), new Array("/root/init/M0001"));
  23. model.refresh();
  24. if(checkOpener()){
  25. sPATINFO_PARAM = opener.javascript.getParameter("param");
  26. fSetPatInfo(sPATINFO_PARAM);
  27. fReqConcPatInfo(grd_concpatinfohist); //관심환자 정보 조회
  28. fReqConcTypeCd(); //관심분류코드 조회
  29. }
  30. }
  31. /**
  32. * @desc : 관심환자 정보 설정
  33. * @
  34. * @param :
  35. * @return :
  36. * @---------------------------------------------------
  37. */
  38. function fSetPatInfo(param){
  39. //param구조 genrflagcd + "▩" + pid + "▩" + hngnm + "▩" + indd + "▩" + cretno + "▩" + seqno + "▩" + instcd;
  40. if(param != ""){
  41. var paramArray = param.split("▩");
  42. model.setValue(sCONCPATINFO_PATH + "/pid" , paramArray[1]);
  43. model.setValue(sCONDITION_PATH + "/dd" , paramArray[3]);
  44. model.setValue(sCONCPATINFO_PATH + "/hngnm" , paramArray[2]);
  45. model.setValue(sCONCPATINFO_PATH + "/instcd" , paramArray[6]);
  46. model.setValue(sCONCPATINFO_PATH + "/valifromdd", model.getValue("/root/init/today"));
  47. }
  48. else{
  49. var paminfo = getGlobalVariable("paminfo");
  50. setCSVToNode("/root/paminfo", paminfo);
  51. model.setValue(sCONCPATINFO_PATH + "/pid" , getPatientInfo("pid"));
  52. model.setValue(sCONDITION_PATH + "/dd" , model.getValue("/root/paminfo/list/indd"));
  53. model.setValue(sCONCPATINFO_PATH + "/hngnm" , getPatientInfo("pname"));
  54. model.setValue(sCONCPATINFO_PATH + "/instcd" , getUserInfo("posinstcd"));
  55. model.setValue(sCONCPATINFO_PATH + "/valifromdd", model.getValue("/root/init/today"));
  56. }
  57. model.refresh();
  58. }
  59. /**
  60. * @desc : 관심환자 조회
  61. * @
  62. * @param :
  63. * @return :
  64. * @---------------------------------------------------
  65. */
  66. function fReqConcPatInfo(grdObj){
  67. model.copyNode("/root/send/reqdata", sCONCPATINFO_PATH);
  68. model.makeValue("/root/send/reqdata/conckindcd", model.getValue(sCONCPATINFO_PATH + "/conckindcd"));
  69. model.refresh();
  70. if(submit("TRMMO08203")){
  71. var totRow = grdObj.rows - grdObj.fixedRows + 1;
  72. if(totRow < 2){
  73. model.setValue(sCONDITION_PATH + "/status", "i");
  74. model.setValue(sCONDITION_PATH + "/statusnm", "신규등록");
  75. model.refresh();
  76. }else{
  77. model.copyNode(sCONCPATINFO_PATH, sCONCPATINFOHIST_PATH + "[" + 1 + "]");
  78. }
  79. }
  80. }
  81. /**
  82. * @desc : 관심환자 정보 수정 상태로 변경
  83. * @
  84. * @param :
  85. * @return :
  86. * @---------------------------------------------------
  87. */
  88. function fSetUpdtStatus(){
  89. var status = model.getValue(sCONDITION_PATH + "/status");
  90. if(status == "i"){
  91. return;
  92. }else{
  93. model.setValue(sCONDITION_PATH + "/status", "u");
  94. model.setValue(sCONDITION_PATH + "/statusnm", "수정 중");
  95. }
  96. model.refresh();
  97. }
  98. /**
  99. * @desc : 신규 관심환자 등록
  100. * @
  101. * @param :
  102. * @return :
  103. * @---------------------------------------------------
  104. */
  105. function fRgstNewConcPatInfo(){
  106. model.resetInstanceNode(sCONCPATINFO_PATH);
  107. fSetPatInfo(sPATINFO_PARAM);
  108. model.setValue(sCONCPATINFO_PATH + "/conckindcd", "P");
  109. model.setValue(sCONDITION_PATH + "/status" , "i");
  110. model.setValue(sCONDITION_PATH + "/statusnm" , "신규등록");
  111. //model.setValue(sCONDITION_PATH + "/valitodd" , "99991231");
  112. //091103 박유진 초기화시 초기 todd 지정되지 않아 수정함.
  113. model.setValue(sCONCPATINFO_PATH + "/valitodd" , "99991231");
  114. model.refresh();
  115. }
  116. /**
  117. * @desc : 관심분류명 및 코드 조회
  118. * @
  119. * @param :
  120. * @return :
  121. * @---------------------------------------------------
  122. */
  123. function fReqConcTypeCd(){
  124. model.removeNodeset("/root/send/reqdata");
  125. model.makeValue("/root/send/reqdata/conckindcd", model.getValue(sCONCPATINFO_PATH + "/conckindcd"));
  126. if(submit("TRMMO08301")){
  127. }
  128. }
  129. /**
  130. * @desc : 관심환자정보 저장
  131. * @
  132. * @param :
  133. * @return :
  134. * @---------------------------------------------------
  135. */
  136. function fSaveConcPatInfo(){
  137. if(ipt_pid.value == ""){
  138. messageBox("등록번호를", "C001");
  139. return;
  140. }
  141. if(opt_unitcd.value == ""){
  142. messageBox("환자명을", "C001");
  143. return;
  144. }
  145. var conctypecd = model.getValue(sCONCPATINFO_PATH + "/conctypecd");
  146. if(conctypecd == ""){ //관심분류명을 선택하지 않은 경우 error!!
  147. messageBox("분류명을", "C001");
  148. return;
  149. }
  150. model.copyNode("/root/send/savedata" , sCONCPATINFO_PATH);
  151. model.makeValue("/root/send/savedata/status", model.getValue(sCONDITION_PATH + "/status"));
  152. if(submit("TXMMO08203")){
  153. var rsltnode = model.instance1.selectNodes(sCONCPATINFOHIST_PATH);
  154. if(rsltnode.length > 0){
  155. grd_concpatinfohist.row = 1;
  156. fSelectConcPatInfo();
  157. }
  158. }
  159. }
  160. /**
  161. * @desc : 관심환자정보 선택 - 상세 정보를 보여줌, 수정할 수 있도록 처리함
  162. * @
  163. * @param :
  164. * @return :
  165. * @---------------------------------------------------
  166. */
  167. function fSelectConcPatInfo(){
  168. var currow = grd_concpatinfohist.row;
  169. model.copyNode(sCONCPATINFO_PATH, sCONCPATINFOHIST_PATH + "[" + currow + "]");
  170. model.setValue(sCONDITION_PATH + "/status" , "u");
  171. model.refresh();
  172. }
  173. /**
  174. * @desc : 등록번호로 환자검색
  175. * @
  176. * @param :
  177. * @return :
  178. * @---------------------------------------------------
  179. */
  180. function fAfSignPatSrch(){
  181. var fPid = model.getValue("/root/main/concpatinfo/concpatinfo/pid");
  182. if(fPid == ""){
  183. fPid = getPatientInfo("pid");
  184. }
  185. if(fPid == ""){
  186. messageBox("등록번호를", "C001");
  187. return;
  188. }
  189. model.setValue ( "/root/send/cond1", "1");
  190. model.setValue ( "/root/send/cond2", fPid);
  191. model.setValue ( "/root/send/cond3", getUserInfo("dutplceinstcd"));
  192. model.setValue ( "/root/send/cond4", "N");
  193. model.setValue ( "/root/send/cond5", "N");
  194. model.setValue ( "/root/send/cond6", "-");
  195. model.setValue ( "/root/send/cond10", ((getCurrentDate().toDate()).getAddDate(-3,"M")).getDateFormat());
  196. model.setValue ( "/root/send/cond11", getCurrentDate())
  197. if (!submit ( "TRMMO00200",false )) { //검색 시작 값이 없으면 clear 한다.
  198. fClearAddPrcp();
  199. return;
  200. }
  201. var srcNodeList = model.instances(0).selectNodes("/root/patordinfo/patordinfolist");
  202. var currentDate = getCurrentDate();
  203. setParameter ( "SPMMO09100_paminfoyn", "N");
  204. //model.setValue("/root/formerkey/pseuacptflag", "N");
  205. if ( srcNodeList.length >= 1 ) { //값이 한개이상이면 팝업을 띄운다.
  206. var xpt = window.screenleft + 50;
  207. var ypt = window.screenTop + 80;
  208. var coord = getRelativeCoordinate ( xpt, ypt );
  209. var mon = coord[0];
  210. xpt = coord[1];
  211. ypt = coord[2];
  212. modal ( "SPMMO09100", mon, xpt, ypt, "patordinfo", "/root/patordinfo", "/root/patordinfo", "", false );
  213. // 팝업에서 취소 시 이벤트 처리
  214. var cancelKey = getParameter ( "SPMMO09100_rtnyn");
  215. if (cancelKey != "Y") {
  216. fClearAddPrcp();
  217. clearParameter("SPMMO09100_rtnyn" );
  218. clearParameter("SPMMO09100_paminfoyn" );
  219. return ;
  220. }
  221. model.removeNodeset("/root/patordinfo/patordinfolist");
  222. var rtnparam = getParameter( "SPMMO09100_rtn_param");
  223. setCSVToNode("/root/patordinfo", rtnparam, "patordinfolist");
  224. var pid = getParameter ( "SPMMO09100_pid" );
  225. var orddd = getParameter ( "SPMMO09100_orddd");
  226. var cretno = getParameter ( "SPMMO09100_cretno");
  227. var instcd = getParameter ( "SPMMO09100_instcd");
  228. var ioflag = getParameter ( "SPMMO09100_ioflag");
  229. var orddeptcd = getParameter ( "SPMMO09100_orddeptcd");
  230. var orddrid = getParameter ( "SPMMO09100_orddrid");
  231. var indschacptstat = getParameter ( "SPMMO09100_indschacptstat");
  232. var dschdd = getParameter ( "SPMMO09100_dschdd");
  233. var insukind = getParameter ( "SPMMO09100_insukind");
  234. var suppkind = getParameter ( "SPMMO09100_suppkind");
  235. model.setValue("/root/main/concpatinfo/concpatinfo/hngnm", model.getValue("/root/patordinfo/patordinfolist/hngnm"));
  236. model.setValue("/root/main/cond/dd", model.getValue("/root/patordinfo/patordinfolist/orddd"));
  237. model.setValue("/root/main/concpatinfo/concpatinfo/instcd", model.getValue("/root/patordinfo/patordinfolist/instcd"));
  238. /*
  239. if ( getParameter ( "SPMMO09100_dc") != "DC" ) {
  240. // 진료일과 현재일이 다른 경우 가접수 후 데이타 셋팅. 20090604 퇴원후 바로 가접수처리건때문에 외래에만 적용.
  241. //if ( currentDate != orddd ) {
  242. if ( currentDate != orddd && (ioflag == "O" || ioflag == "S")) {
  243. // 진단명 조회를 위한 구 키 셋팅
  244. model.setValue("/root/formerkey/pid", pid);
  245. model.setValue("/root/formerkey/orddd_old", orddd);
  246. model.setValue("/root/formerkey/cretno_old", cretno);
  247. model.setValue("/root/formerkey/instcd", instcd);
  248. model.setValue("/root/formerkey/genrflagcd_old", ioflag);
  249. model.setValue("/root/formerkey/pseuacptflag", "Y");
  250. var returnkey = fSetAssumAccept(pid, orddd, cretno, "O");
  251. if (returnkey == false) return ;
  252. pid = model.getValue ( "/root/execpatordinfo/execpatordinfolist/otpt_pid" );
  253. orddd = model.getValue ( "/root/execpatordinfo/execpatordinfolist/otpt_orddd" );
  254. cretno = model.getValue ( "/root/execpatordinfo/execpatordinfolist/otpt_cretno" );
  255. model.setValue("/root/formerkey/orddd", orddd);
  256. model.setValue("/root/formerkey/cretno", cretno);
  257. model.setValue("/root/formerkey/genrflagcd", ioflag);
  258. } else if ( (ioflag == "I" || ioflag == "D" || ioflag == "E") && indschacptstat == "D" ) {
  259. // 진단명 조회를 위한 구 키 셋팅
  260. model.setValue("/root/formerkey/pid", pid);
  261. model.setValue("/root/formerkey/orddd_old", orddd);
  262. model.setValue("/root/formerkey/cretno_old", cretno);
  263. model.setValue("/root/formerkey/instcd", instcd);
  264. model.setValue("/root/formerkey/genrflagcd_old", ioflag);
  265. model.setValue("/root/formerkey/pseuacptflag", "Y");
  266. var returnkey = fSetAssumAccept(pid, orddd, cretno, "I", orddeptcd, orddrid, insukind, suppkind );
  267. if (returnkey == false) return ;
  268. pid = model.getValue ( "/root/followup/followup/otpt_pid" );
  269. orddd = model.getValue ( "/root/followup/followup/otpt_orddd" );
  270. cretno = model.getValue ( "/root/followup/followup/otpt_cretno" );
  271. ioflag = "O" ; // 강제로 외래 셋팅
  272. model.setValue( "/root/patordinfo/patordinfolist/ioflag", ioflag);
  273. model.setValue("/root/formerkey/orddd", orddd);
  274. model.setValue("/root/formerkey/cretno", cretno);
  275. model.setValue("/root/formerkey/genrflagcd", ioflag);
  276. }
  277. //}
  278. }
  279. */
  280. clearParameter("SPMMO09100_pid" );
  281. clearParameter("SPMMO09100_orddd");
  282. clearParameter("SPMMO09100_cretno");
  283. clearParameter("SPMMO09100_instcd");
  284. clearParameter("SPMMO09100_ioflag");
  285. clearParameter("SPMMO09100_orddeptcd");
  286. clearParameter("SPMMO09100_orddrid");
  287. clearParameter("SPMMO09100_indschacptstat");
  288. clearParameter("SPMMO09100_dschdd");
  289. clearParameter("SPMMO09100_dc");
  290. clearParameter("SPMMO09100_insukind");
  291. clearParameter("SPMMO09100_suppkind");
  292. /*
  293. if ( isNull(pid )) {
  294. fClearAddPrcp();
  295. } else {
  296. fAddPrcpInitConDone( pid, orddd, cretno, instcd, ioflag , "N", dschdd );
  297. fPatDethInfo(); //사망환자 alert(2009.12.21 JJE)
  298. }
  299. */
  300. }
  301. model.refresh();
  302. }
  303. function fClearAddPrcp() {
  304. //cmb_prcpdd.visible = false;
  305. //cmb_issdept.visible = false;
  306. //cmb_hosinprcpresn.visible = false;
  307. //caption14.visible = false;
  308. //cmb_prcpkind.visible = false;
  309. // btn_prcpsave.disabled = true;
  310. //model.setValue ( "/root/init/srchcond2","" );
  311. //model.setValue ( "/root/init/srchcond3","" );
  312. //model.setValue ( "/root/init/rrgstno2","" );
  313. //model.setValue ( "/root/init/orddeptnm","" );
  314. //model.removeNodeSet ( "/root/main/diaginfo/diagcdlist");
  315. //model.removeNodeSet ( "/root/main/prcp/prcplist");
  316. //model.removeNodeSet ( "/root/paminfo/list");
  317. //model.removeNodeSet ( "/root/patflag/list");
  318. //output2.value = "";
  319. //output3.value = "";
  320. //output4.value = "";
  321. //output6.value = "";
  322. //output7.value = "";
  323. //appendChildPrcp ( "/root/reset/prcplist", "/root/main/prcp", "main" )
  324. //btn_prmsprcp.selected = true;
  325. //ivw_prcp.src = "SMMMO02300_약속처방.xrw";
  326. //btn_issdept.visible = false;
  327. //model.refresh();
  328. return;
  329. }