SPMMR05500.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. /**
  2. * @desc : 화면 초기화
  3. * @id :
  4. * @event :
  5. * @return : void
  6. * @authur : 이상현
  7. */
  8. function fInitialize()
  9. {
  10. mmbfGetDeptCodeComboList("/root/send/reqdata", "/root/init/orddept", "D");
  11. addComboInstance("/root/init/orddept", "deptcd^depthngnm", "-^전체", "dept"); //진료과 전체항목 추가
  12. zbcfGetCodeList(new Array("P0008"), new Array("/root/init/item")); //공통코드 보험유형(건강보험,의료급여,산재,자보 등)
  13. zbcfGetCodeList(new Array("P0010"), new Array("/root/init/item")); //공통코드 보조유형(정상급여,본인부담100% 등)
  14. model.setValue("/root/main/orddeptcd", opener.javascript.getParameter("SPMMR05500_orddeptcd"));
  15. //grd_patinfo.colhidden(0) = true;
  16. var formcd = opener.javascript.getParameter("SPMMR05500_formcd");
  17. if(formcd != "0000001457")//수술확인서
  18. {
  19. grd_oplist.visible = false;
  20. caption2.visible = false;
  21. line2.visible = false;
  22. bool2.visible = false;
  23. grd_oplist.attribute("top") = "0px";
  24. btn_confirm.attribute("top") = "336px";
  25. btn_cncl.attribute("top") = "336px";
  26. document.rebuild = true;
  27. document.body.refresh();
  28. window.setSize(690, 440);
  29. }
  30. model.setValue("/root/main/amtyn", ""); // 2011-01-19 경북대 최원돈 금액 조회 포함 여부 : 초기화
  31. // knuh_20110324_박성호(입원사실확인서(입원중) 추가)
  32. if(formcd == "0000001457" || //수술확인서
  33. formcd == "0000002792" || //상급병실확인서 (2009.07.27. 추가)
  34. formcd == "0000001300" || //입퇴원확인서(원무용)
  35. formcd == "0000001283" || //입퇴원확인서(진료용)
  36. formcd == "1100011101") //입원사실확인서(입원중)
  37. {
  38. // knuh_20110324_박성호(입원사실확인서(입원중) 추가)
  39. //if(formcd == "0000001300")
  40. if(formcd == "0000001300" || formcd == "1100011101")
  41. {
  42. //grd_patinfo.colhidden(0) = false;
  43. model.setValue("/root/main/orddeptcd", "-");
  44. }
  45. model.setValue("/root/main/ordtype", "I");
  46. rdo_ordtype.disabled = true;
  47. }
  48. else if(formcd == "0000001312" || //외래진료확인서
  49. formcd == "0000002639" || //통원치료확인서
  50. formcd == "0000002588") //통원치료확인서(영문)
  51. {
  52. if(formcd == "0000001312")
  53. {
  54. //grd_patinfo.colhidden(0) = false;
  55. model.setValue("/root/main/orddeptcd", "-");
  56. }
  57. model.setValue("/root/main/ordtype", "O");
  58. rdo_ordtype.disabled = true;
  59. model.setValue("/root/main/amtyn", "Y"); // 2011-01-19 경북대 최원돈 금액 조회 포함 여부 : 설정
  60. }
  61. //2012/03/29 Start
  62. model.setValue("/root/send/patinfo/daykijun", "0");
  63. //2012/03/29 End
  64. fGetPatHist();
  65. }
  66. /**
  67. * @desc : 환자 수진이력 조회
  68. * @id :
  69. * @event :
  70. * @return : void
  71. * @authur : 이상현
  72. */
  73. function fGetPatHist(){
  74. //2009-08-06 오후 5:40:21 강지훈 수정 : nopay Y : 진료부도제외 N : 진료부도 포함
  75. var nopay = opener.javascript.getParameter("SPMMR05500_nopay");
  76. var pid = opener.javascript.getParameter("SPMMR05500_pid");
  77. var orddeptcd = model.getValue("/root/main/orddeptcd");
  78. var ordtype = model.getValue("/root/main/ordtype");
  79. model.setValue("/root/send/patinfo/pid" , pid);
  80. model.setValue("/root/send/patinfo/orddeptcd", orddeptcd);
  81. model.setValue("/root/send/patinfo/ordtype" , ordtype);
  82. model.setValue("/root/send/patinfo/nopay" , nopay);
  83. // 2011-01-19 경북대 최원돈 조회기간 및 금액 조회 포함 여부
  84. model.setValue("/root/send/patinfo/ordddfr" , model.getValue("/root/main/ordddfr"));
  85. model.setValue("/root/send/patinfo/ordddto" , model.getValue("/root/main/ordddto"));
  86. model.setValue("/root/send/patinfo/amtyn" , model.getValue("/root/main/amtyn"));
  87. if(submit("TRMMR05501")){
  88. }
  89. }
  90. /**
  91. * @group :
  92. * @ver :
  93. * @by : 이상현
  94. * @modify : 2008.07.22
  95. * @---------------------------------------------------
  96. * @type : function
  97. * @access : public
  98. * @desc : 환자 수진이력 선택시 이벤트
  99. * @param :
  100. * @param :
  101. * @return :
  102. * @---------------------------------------------------
  103. */
  104. function fSelectPatInfo(){
  105. var formcd = opener.javascript.getParameter("SPMMR05500_formcd");
  106. var pid = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/pid");
  107. var cretno = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/cretno");
  108. var orddd = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/orddd");
  109. var ordtype = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/ordtype");
  110. var orddeptcd = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/orddeptcd");
  111. var orddeptnm = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/orddeptnm");
  112. var tabtype = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/tabtype");
  113. var dschdd = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/dschdd");
  114. var hngnm = model.getValue(grd_patinfo.attribute("nodeset") + "[" + grd_patinfo.row + "]/hngnm");
  115. // knuh_20110324_박성호(입원사실확인서(입원중) 추가)
  116. //if(formcd == "0000001300" || formcd == "0000001283"){ //입퇴원확인서, 입원사실확인서
  117. if(formcd == "0000001300" || formcd == "0000001283" || formcd == "1100011101"){ //입퇴원확인서, 입원사실확인서
  118. var selectList = instance1.selectNodes(grd_patinfo.attribute("nodeset") + "[chk = 'Y']");
  119. var msg = "";
  120. for(var i = 0; i < selectList.length; i++){
  121. var item = selectList.item(i);
  122. var indd = item.selectSingleNode("orddd").text;
  123. indd = indd.toDate().getDateFormat("YYYY/MM/DD");
  124. var dschdd = item.selectSingleNode("dschdd").text;
  125. if(dschdd != "재원중"){
  126. dschdd = dschdd.toDate().getDateFormat("YYYY/MM/DD");
  127. }
  128. var orddeptnm = item.selectSingleNode("orddeptnm").text;
  129. if(i == 0){
  130. msg += "[" + orddeptnm + "] " + indd + " - " + dschdd;
  131. }else{
  132. msg += "\n[" + orddeptnm + "] " + indd + " - " + dschdd;
  133. }
  134. }
  135. msg += "\n\n상기환자는 위 기간동안 입원치료 하였음을 확인합니다.";
  136. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  137. opener.javascript.setParameter("SPMMR05500_msg" , msg);
  138. window.close();
  139. }else if(formcd == "0000001312" || formcd == "0000002639"){ //외래진료확인서, 통원치료 확인서
  140. var selectList = instance1.selectNodes(grd_patinfo.attribute("nodeset") + "[chk = 'Y']");
  141. var msg = "";
  142. //2012/04/12 Start
  143. var chk=model.getValue("/root/send/patinfo/daykijun");
  144. if(chk=="0"){ //수진일 기준
  145. msg += "[수납금액 기준]" + "\n\n\n";
  146. }else if(chk=="1"){ // 실시일 기준
  147. msg += "[실시금액 기준]" + "\n\n\n";
  148. }
  149. //2012/04/12 End
  150. for(var i = 0; i < selectList.length; i++){
  151. var item = selectList.item(i);
  152. var orddd = item.selectSingleNode("orddd").text;
  153. orddd = orddd.toDate().getDateFormat("YYYY/MM/DD");
  154. //2013/02/15 Start 덤프 환자인 경우는 목록에서 안보여 주도록 수정(김무조 파트장님과 통화로 협의)
  155. if(item.selectSingleNode("tranflagyn").text == "Y"){
  156. continue;
  157. }
  158. //2013/02/15 End
  159. // 2013.11.14 상관없이 모두 보여주기
  160. //2013/06/12 Start
  161. /* if(chk=="0" && item.selectSingleNode("issamt").text=="0"){ //수납금액
  162. continue;
  163. }else if(chk=="1" && item.selectSingleNode("silsiamt").text=="0"){ //실시금액
  164. continue;
  165. }
  166. */
  167. //2013/06/12 End
  168. //KNUH 2011-04-29 최원돈 수진정보 조회 시 DSC/CHEMO 환자일 경우
  169. //외래수진정보(수진일자, 금액, 검사일자) 중 금액 또는 검사일자가 있으면 증명서 복사입력 시
  170. //수진일자를 NULL(' ')로 입력하고, 나머지는 그대로 입력되도록 기능 추가
  171. if(item.selectSingleNode("tranflagyn").text == "Y")
  172. {
  173. orddd = " ";
  174. }
  175. var orddeptnm = item.selectSingleNode("orddeptnm").text;
  176. if(i == 0){
  177. msg += "[" + orddeptnm + "] " + orddd;
  178. }else{
  179. msg += "\n[" + orddeptnm + "] " + orddd;
  180. }
  181. //2012/04/12 Start 실시금액 기준
  182. if(chk=="0"){ //수진일 기준 금액표시
  183. var ls_issamt = item.selectSingleNode("issamt").text;
  184. if (ls_issamt != "" && ls_issamt != "0"){
  185. msg += " (금액 : " + fGetaddCommas(item.selectSingleNode("issamt").text) + "원)";
  186. }
  187. }else if(chk=="1"){ // 실시일 기준 금액표시
  188. var ls_silsiamt = item.selectSingleNode("silsiamt").text;
  189. if (ls_silsiamt != "" && ls_silsiamt != "0"){
  190. msg += " (금액 : " + fGetaddCommas(item.selectSingleNode("silsiamt").text) + "원)";
  191. }
  192. }
  193. /* 2012/04/12 주석처리
  194. // 2011-01-19 경대병원 최원돈 통원치료확인서 금액추가
  195. var ls_issamt = item.selectSingleNode("issamt").text;
  196. if ( ls_issamt != ""
  197. && ls_issamt != "0")
  198. {
  199. msg += " (금액 : " + fGetaddCommas(item.selectSingleNode("issamt").text) + "원)";
  200. }
  201. */
  202. // 2012/04/12 End
  203. // 2011-03-29 경대병원 최원돈 검사일자 추가
  204. var ls_testdd = item.selectSingleNode("testdd").text;
  205. if (ls_testdd != "")
  206. {
  207. msg += " (시행일자 : " + item.selectSingleNode("testdd").text + ")";
  208. }
  209. }
  210. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  211. opener.javascript.setParameter("SPMMR05500_msg" , msg);
  212. window.close();
  213. }else if(formcd == "0000002588"){ //통원치료 확인서(영문)
  214. var selectList = instance1.selectNodes(grd_patinfo.attribute("nodeset") + "[chk = 'Y']");
  215. var msg = "";
  216. for(var i = 0; i < selectList.length; i++){
  217. var item = selectList.item(i);
  218. var orddd = item.selectSingleNode("orddd").text;
  219. orddd = orddd.toDate().getDateFormat("YYYY/MM/DD");
  220. //KNUH 2011-04-29 최원돈 수진정보 조회 시 DSC/CHEMO 환자일 경우
  221. //외래수진정보(수진일자, 금액, 검사일자) 중 금액 또는 검사일자가 있으면 증명서 복사입력 시
  222. //수진일자를 NULL(' ')로 입력하고, 나머지는 그대로 입력되도록 기능 추가
  223. if(item.selectSingleNode("tranflagyn").text == "Y")
  224. {
  225. orddd = " ";
  226. }
  227. var orddeptcd = item.selectSingleNode("orddeptcd").text;
  228. // 영문 부서명 가져오기
  229. var orddeptnm = item.selectSingleNode("orddeptnm").text;
  230. model.makeValue("/root/send/deptcd", orddeptcd);
  231. submit("TRMRF01217");
  232. orddeptnm = model.getValue("/root/main/deptinfo/deptengnm");
  233. if(i == 0){
  234. msg += "[" + orddeptnm + "] " + orddd;
  235. }else{
  236. msg += "\n[" + orddeptnm + "] " + orddd;
  237. }
  238. // 2011-01-19 경대병원 최원돈 통원치료확인서 금액추가
  239. var ls_issamt = item.selectSingleNode("issamt").text;
  240. if (ls_issamt != ""
  241. && ls_issamt != "0")
  242. {
  243. msg += " (Amount : " + fGetaddCommas(item.selectSingleNode("issamt").text) + "KW)";
  244. }
  245. // 2011-03-29 경대병원 최원돈 검사일자 추가
  246. var ls_testdd = item.selectSingleNode("testdd").text;
  247. if (ls_testdd != "")
  248. {
  249. msg += " (The exam date : " + item.selectSingleNode("testdd").text + ")";
  250. }
  251. }
  252. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  253. opener.javascript.setParameter("SPMMR05500_msg" , msg);
  254. window.close();
  255. }else if(formcd == "0000002792"){ //상급병실확인서 (2009.07.27. 추가)
  256. var selectList = instance1.selectNodes(grd_patinfo.attribute("nodeset") + "[chk = 'Y']");
  257. var msg = "";
  258. for(var i = 0; i < selectList.length; i++){
  259. var item = selectList.item(i);
  260. var indd = item.selectSingleNode("orddd").text;
  261. indd = indd.toDate().getDateFormat("YYYY-MM-DD");
  262. var dschdd = item.selectSingleNode("dschdd").text;
  263. if(dschdd != "재원중"){
  264. dschdd = dschdd.toDate().getDateFormat("YYYY-MM-DD");
  265. }
  266. var orddeptnm = item.selectSingleNode("orddeptnm").text;
  267. if(i == 0){
  268. msg += indd + " ~ " + dschdd;
  269. }
  270. opener.javascript.setParameter("SPMMR05500_pid" , item.selectSingleNode("pid").text);
  271. opener.javascript.setParameter("SPMMR05500_indd" , item.selectSingleNode("orddd").text);
  272. opener.javascript.setParameter("SPMMR05500_cretno" , item.selectSingleNode("cretno").text);
  273. }
  274. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  275. opener.javascript.setParameter("SPMMR05500_msg" , msg);
  276. opener.javascript.setParameter("SPMMR05500_orddeptnm", orddeptnm);
  277. window.close();
  278. // knuh_20110324_박성호(출생증명서(입원중) 추가)
  279. //}else if(formcd == "0000001113"){
  280. }else if(formcd == "0000001113" || formcd == "1100011102"){
  281. var selectList = instance1.selectNodes(grd_patinfo.attribute("nodeset") + "[chk = 'Y']");
  282. var msg = "";
  283. var len = selectList.length;
  284. if(len > 1){
  285. msg = "하나의 경우만 선택해주세요.";
  286. return;
  287. }else if(len > 0) {
  288. var item = selectList.item(0);
  289. opener.javascript.setParameter("SPMMR05500_pid" , item.selectSingleNode("pid").text);
  290. opener.javascript.setParameter("SPMMR05500_indd" , item.selectSingleNode("orddd").text);
  291. opener.javascript.setParameter("SPMMR05500_cretno" , item.selectSingleNode("cretno").text);
  292. }
  293. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  294. opener.javascript.setParameter("SPMMR05500_msg" , msg);
  295. opener.javascript.fGetForm();
  296. opener.model.removenode("/root/temp/tempinfo");
  297. window.close();
  298. }else{
  299. opener.javascript.setParameter("SPMMR05500_useyn", "N");
  300. window.close();
  301. }
  302. }
  303. /**
  304. * @desc : 금액표시(정규표현)
  305. * @return : string
  306. * @authur : 최원돈
  307. */
  308. function fGetaddCommas(ps_value){
  309. var objRegExp = new RegExp('(-?[0-9]+)([0-9]{3})');
  310. while(objRegExp.test(ps_value)) {
  311. ps_value = ps_value.replace(objRegExp, '$1,$2');
  312. }
  313. return ps_value;
  314. }
  315. /**
  316. * @desc : 환자 수술 내역 선택시
  317. * @id :
  318. * @event :
  319. * @return : void
  320. * @authur : 이상현
  321. */
  322. function fSelectOpInfo(){
  323. var opcnts = "";
  324. var orddd = model.getValue(grd_patinfo.nodeset + "[chk='Y']/orddd");
  325. var dschdd = model.getValue(grd_patinfo.nodeset + "[chk='Y']/dschdd");
  326. orddd = orddd.toDate().getDateFormat("YYYY-MM-DD");
  327. if(dschdd != "재원중"){
  328. dschdd = dschdd.toDate().getDateFormat("YYYY-MM-DD");
  329. }
  330. var opinfo = "[입원일자] : " + orddd + "~" + dschdd;
  331. for(var i = 1; i <= grd_oplist.row ; i++){
  332. var checkflag = model.getValue(grd_oplist.attribute("nodeset") + "[" + i + "]/checkflag");
  333. if(checkflag == "Y"){
  334. var opcnfmdd = model.getValue(grd_oplist.attribute("nodeset") + "[" + i + "]/opcnfmdd").toDate().getDateFormat("YYYY-MM-DD");
  335. var ophngnm = model.getValue(grd_oplist.attribute("nodeset") + "[" + i + "]/ophngnm");
  336. }
  337. if(i == 1){
  338. opcnts = opcnfmdd + " : " + ophngnm;
  339. opinfocnts = ">[수술일자] :" + opcnfmdd + " / [수술명] : " + ophngnm;
  340. }else{
  341. opcnts += "\n" + opcnfmdd + " : " + ophngnm;
  342. opinfocnts += ">[수술일자] :" + opcnfmdd + " / [수술명] : " + ophngnm;
  343. }
  344. }
  345. if(opcnts == ""){
  346. opener.javascript.setParameter("SPMMR05500_useyn", "N");
  347. }else{
  348. opener.javascript.setParameter("SPMMR05500_useyn", "Y");
  349. opener.javascript.setParameter("SPMMR05500_msg" , opcnts);
  350. opener.javascript.setParameter("SPMMR05500_opinfo", opinfo + "\n" + opinfocnts);
  351. }
  352. window.close();
  353. }