SMMRC01200.js 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820
  1. var sHealCareInfoUser = ""; // 의료정보 사용자 여부
  2. // 초기값
  3. function fInit()
  4. {
  5. //var instcd = "012";
  6. var instcd = getUserInfo("dutplceinstcd");
  7. var standard_yn = "orduseyn";
  8. var ord_deptflag = 'D';
  9. var rslt_ref = "/root/init/deptlist";
  10. var sort_method = "depthngnm";
  11. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_method);
  12. // 공통코드 목록 가져오기
  13. zbcfGetCodeList(new Array("P0001", "M0332", "M0333"),
  14. new Array("/root/init/ioflag", "/root/init/issgoalcd", "/root/init/issscopcd") , true);
  15. model.resetInstanceNode("/root/send/cond");
  16. model.removeNodeset("/root/main/apphist/applist");
  17. model.removeNodeset("/root/main/ordinfo/ordlist");
  18. model.resetInstanceNode("/root/main/appinfo/copyinfo");
  19. model.removeNodeset("/root/main/appinfo/applist");
  20. model.removeNodeset("/root/main/emrinfo/emrlist");
  21. model.setValue("/root/send/cond/addappyn","N");
  22. grd_emrlist.fixedcellcheckbox(0,1) = true;
  23. // 의료정보 : 3230000000
  24. var dutplcecd = getUserInfo("dutplcecd");
  25. if (dutplcecd == "3230000000")
  26. {
  27. ipt_pid.disabled = false;
  28. ipt_hngnm.disaBled = false;
  29. ipt_rrgstno1.disabled = false;
  30. ipt_rrgstno2.disabled = false;
  31. btn_pat.disabled = false;
  32. btn_hngnm.disabled = false;
  33. btn_rrgstno.disabled = false;
  34. cmb_orddrid.disabled = false;
  35. sHealCareInfoUser = "Y";
  36. }else{
  37. cmb_orddrid.disabled = true;
  38. sHealCareInfoUser = "N"
  39. }
  40. btn_update.disabled = true;
  41. btn_delete.disabled = true;
  42. //fDisabled(true);
  43. // 수정(20070927 - 환자진료과로 변경)
  44. //var deptcd = getUserInfo("dutplcecd");
  45. //model.setValue("/root/main/appinfo/copyinfo/paperorddeptcd", deptcd);
  46. // emr 진료과를 선택하면 수진이력 조회한다.
  47. //model.setValue("/root/main/appinfo/copyinfo/emrorddeptcd", deptcd);
  48. //fOrdSpec();
  49. //상단 환자 정보 가져오기
  50. var node = getGlobalVariable("paminfo");
  51. var deptcd = "";
  52. setCSVToNode("/root/main/paminfo", node);
  53. //상단 정보 있는지 유무 체크
  54. if(node != "")
  55. {
  56. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  57. model.setValue("/root/send/cond/pid", model.getValue("/root/main/paminfo/list/pid"));
  58. model.setValue("/root/send/cond/hngnm", model.getValue("/root/main/paminfo/list/hngnm"));
  59. if ((ioflag == "I") || (ioflag == "E") || (ioflag == "D"))
  60. {
  61. model.setValue("/root/send/cond/orddd", model.getValue("/root/main/paminfo/list/indd"));
  62. }
  63. else
  64. {
  65. model.setValue("/root/send/cond/orddd", model.getValue("/root/main/paminfo/list/orddd"));
  66. }
  67. model.setValue("/root/send/cond/cretno", model.getValue("/root/main/paminfo/list/cretno"));
  68. deptcd = model.getValue("/root/main/paminfo/list/orddeptcd");
  69. }
  70. // 팝업으로 띄우는 경우
  71. var sParamMsg = "";
  72. if(checkOpener()){
  73. sParamMsg = opener.javascript.getParameter("SMMRC01200_Param");
  74. if(sParamMsg != ""){
  75. model.setValue("/root/send/cond/pid", getArrayData(sParamMsg,1,0));
  76. model.setValue("/root/send/cond/hngnm", getArrayData(sParamMsg,1,1));
  77. model.setValue("/root/send/cond/orddd", getArrayData(sParamMsg,1,3));
  78. model.setValue("/root/send/cond/cretno", getArrayData(sParamMsg,1,4));
  79. model.setValue("/root/send/cond/addappyn","Y");
  80. ioflag = getArrayData(sParamMsg,1,2);
  81. deptcd = getArrayData(sParamMsg,1,5);
  82. ipt_pid.disabled = true;
  83. btn_pat.disabled = true;
  84. ipt_hngnm.disabled = true;
  85. btn_hngnm.disabled = true;
  86. ipt_rrgstno1.disabled = true;
  87. ipt_rrgstno2.disabled = true;
  88. btn_rrgstno.disabled = true;
  89. cmb_orddrid.disabled = true;
  90. cmb_emrorddeptcd.disabled =true;
  91. }
  92. }
  93. //fPatPopUp();
  94. if(sParamMsg != "" || node != ""){
  95. // 이전내역조회
  96. fHistSearch();
  97. //model.setValue("/root/main/appinfo/copyinfo/paperorddeptcd", deptcd);
  98. model.setValue("/root/main/appinfo/copyinfo/emrorddeptcd", deptcd);
  99. model.setValue("/root/main/appinfo/copyinfo/emrordflag", ioflag);
  100. // 진료내역 조회
  101. fOrdSpec();
  102. fChngSrchCond("/root/main/appinfo/copyinfo/emrorddeptcd", "/root/init/doctor/drlist");
  103. if(sParamMsg != ""){
  104. model.setValue("/root/main/appinfo/copyinfo/appdrid", getArrayData(sParamMsg,1,6));
  105. }else if(sHealCareInfoUser == "N"){
  106. model.setValue("/root/main/appinfo/copyinfo/appdrid", getUserId());
  107. }
  108. //inputEnterKey("btn_pat", "DOMActivate");
  109. }
  110. // 신청부서 1부 default
  111. model.setValue("/root/main/appinfo/copyinfo/emrappcopies", "1" );
  112. model.refresh();
  113. }
  114. // 환자찾기 Popup
  115. function fPatPopUp(pFlag)
  116. {
  117. model.removenode("/root/temp/patcond");
  118. if(pFlag == "1"){
  119. model.makeValue("/root/temp/patcond/pid", model.getValue("/root/send/cond/pid"));
  120. }else if(pFlag == "2"){
  121. model.makeValue("/root/temp/patcond/hngnm", model.getValue("/root/send/cond/hngnm"));
  122. }else if(pFlag == "3"){
  123. model.makeValue("/root/temp/patcond/rrgstno1", model.getValue("/root/send/cond/rrgstno1"));
  124. model.makeValue("/root/temp/patcond/rrgstno2", model.getValue("/root/send/cond/rrgstno2"));
  125. }
  126. model.makeValue("/root/temp/patcond/srchcond",pFlag);
  127. model.makeValue("/root/temp/patcond/autoflag","Y");
  128. model.resetInstanceNode("/root/main/patinfo/patinfolist");
  129. model.resetInstanceNode("/root/send/cond");
  130. modal("SPPMC02500", 1,10, 10, "SPPMC02500", "/root/temp/patcond", "/root/send");
  131. model.setValue("/root/send/cond/pid", model.getValue("/root/main/patinfo/patinfolist/pid"));
  132. model.setValue("/root/send/cond/hngnm", model.getValue("/root/main/patinfo/patinfolist/hngnm"));
  133. fHistSearch();
  134. // 진료내역 조회
  135. fOrdSpec();
  136. fDisabled(false);
  137. btn_update.disabled = true;
  138. if (sHealCareInfoUser == "Y")
  139. {
  140. cmb_emrorddeptcd.disabled = false;
  141. cmb_orddrid.disabled = false;
  142. }
  143. model.refresh();
  144. }
  145. // 발행목적 팝업 조회
  146. function fIssGoalPopUp(){
  147. var sIssUsge = "";
  148. var sIssUsgeCnt = 0;
  149. var sIssGoalEtcYN = false;
  150. var sIssGoalEtc = "";
  151. var sIssGoalEtcCd = "";
  152. var sIssGoalCd = "";
  153. var sStndRow = 0;
  154. setParameter("SPMMR02200_usage", "");
  155. if(model.getValue("/root/main/appinfo/copyinfo/status") == "u")
  156. setParameter("SPMMR02200_multichkyn", "N");
  157. else
  158. setParameter("SPMMR02200_multichkyn", "Y");
  159. modal("SPMMR02200");
  160. sIssUsge = model.getValue("/root/main/issusge");
  161. sIssUsgeCnt = model.getValue("/root/main/issusge").split("▩").length;
  162. if(sIssUsge != ""){
  163. for(var i=1; i<sIssUsgeCnt; i++){
  164. if(i != sIssUsgeCnt-1){
  165. if(sIssGoalEtc != "") sIssGoalEtc += ",";
  166. if(sIssGoalEtcCd != "") sIssGoalEtcCd += ",";
  167. }
  168. sIssGoalEtc += getArrayData(sIssUsge, i, 1);
  169. sIssGoalCd = getArrayData(sIssUsge, i, 0);
  170. /*sStndRow = grd_apphist.findRow(sIssGoalCd, 0, 3);
  171. if(sStndRow > 0){
  172. messageBox("선택하신 사본발행목적은 이미 신청되었습니다. 다시","C002");
  173. return;
  174. }*/
  175. if(sIssGoalCd == "99"){
  176. sIssGoalEtcYN = true;
  177. }
  178. sIssGoalEtcCd += sIssGoalCd;
  179. }
  180. if(sIssGoalEtcYN == true){
  181. ipt_issgoaletc.disabled = false;
  182. }else{
  183. model.setValue("/root/main/appinfo/copyinfo/issgoaletcnm","");
  184. ipt_issgoaletc.disabled = true;
  185. }
  186. if(sIssGoalEtcCd.indexOf("06") > -1){
  187. messageBox("직할병원용 : 주치의가 8개 직할 병원으로 이동하여 환자도 함께 전원 가기를 희망하는 경우 선택","E008");
  188. }
  189. model.setValue("/root/main/appinfo/copyinfo/issgoaletc", sIssGoalEtc);
  190. model.setValue("/root/main/appinfo/copyinfo/issgoaletccd", sIssGoalEtcCd);
  191. }
  192. model.refresh();
  193. }
  194. // 이전내역조회
  195. function fHistSearch()
  196. {
  197. // reqGetCopyIssHist
  198. // getCopyIssHist
  199. model.resetInstanceNode("/root/main/appinfo/copyinfo");
  200. model.removeNodeset("/root/main/ordinfo/ordlist");
  201. model.removeNodeset("/root/main/appinfo/applist");
  202. model.removeNodeset("/root/main/emrinfo/emrlist");
  203. model.resetInstanceNode("/root/main/appinfo/patinfo");
  204. if (submit("TRMRC01201", false) == true)
  205. {
  206. model.setValue("/root/send/cond/rrgstno1", model.getValue("/root/main/apphist/patinfo/rrgstno1"));
  207. model.setValue("/root/send/cond/rrgstno2", model.getValue("/root/main/apphist/patinfo/rrgstno2"));
  208. }
  209. else
  210. {
  211. messageBox("조회를", "E009");
  212. }
  213. //model.refresh();
  214. }
  215. // 신청정보 상세조회
  216. function fAppSearch()
  217. {
  218. if (grd_apphist.rows<= 1) return;
  219. if (grd_apphist.row < 1) return;
  220. var lrow = grd_apphist.row;
  221. model.makeValue("/root/send/search/copyseqno", model.getValue("/root/main/apphist/applist[" + lrow + "]/copyseqno"));
  222. model.makeValue("/root/send/search/pid", model.getValue("/root/main/apphist/applist[" + lrow + "]/pid"));
  223. model.removeNodeset("/root/main/ordinfo/ordlist");
  224. model.removeNodeset("/root/main/appinfo/applist");
  225. model.removeNodeset("/root/main/emrinfo/emrlist");
  226. if (submit("TRMRC01202", false) == true)
  227. {
  228. //fDisabled(false);
  229. // fIssGoalNmSetting();
  230. model.setValue("/root/main/appinfo/copyinfo/status", "u");
  231. fOrdSpec();
  232. fChngSrchCond("/root/main/appinfo/copyinfo/emrorddeptcd", "/root/init/doctor/drlist");
  233. fDisabled(true);
  234. btn_update.disabled = false;
  235. cmb_emrorddeptcd.disabled = true;
  236. cmb_orddrid.disabled = true;
  237. /*
  238. btn_save.disabled = true;
  239. btn_issgoaletc.disabled = true;
  240. cmb_trustyn.disabled = true;
  241. rdo_appmanflag.disabled = true;
  242. ipt_appmannm.disabled = true;
  243. btn_listdel.disabled = true;
  244. ipt_emrappcopies.disabled = true;
  245. btn_delete.disabled = true;*/
  246. if(model.getValue("/root/main/apphist/applist[" + lrow + "]/issno") == ""){
  247. btn_delete.disabled = false;
  248. if(model.getValue("/root/main/isshist/isslist["+lrow+"]/prntlim") == "Y"){
  249. var msg = "사본 발급 제한 사유 : "+ model.getValue("/root/main/isshist/isslist["+lrow+"]/limrem")
  250. + model.getValue("/root/main/isshist/isslist["+lrow+"]/hngnm")+"환자는 사본발급 제한 환자";
  251. messageBox(msg,"I007");
  252. }
  253. }
  254. }
  255. else
  256. {
  257. messageBox("조회를", "E009");
  258. }
  259. //model.refresh();
  260. }
  261. // 진료내역 조회
  262. function fOrdSpec()
  263. {
  264. cmb_orddrid.disabled = false;
  265. if (model.getValue("/root/main/appinfo/copyinfo/emrorddeptcd") == ""){
  266. return;
  267. }
  268. if (model.getValue("/root/main/appinfo/copyinfo/emrordflag") == ""){
  269. return;
  270. }
  271. model.makeValue("/root/send/deptcond/pid", model.getValue("/root/send/cond/pid"));
  272. model.makeValue("/root/send/deptcond/orddeptcd", model.getValue("/root/main/appinfo/copyinfo/emrorddeptcd"));
  273. model.makeValue("/root/send/deptcond/emrordflag", model.getValue("/root/main/appinfo/copyinfo/emrordflag"));
  274. model.removeNodeset("/root/main/ordinfo/ordlist");
  275. model.removeNodeset("/root/main/emrinfo/emrlist");
  276. // reqGetCopyOrdInfo
  277. // getCopyOrdList
  278. if (submit("TRMRC01204", false) == true)
  279. {
  280. }
  281. else
  282. {
  283. messageBox("조회를", "E009");
  284. }
  285. model.refresh();
  286. }
  287. // 진료내역 선택시 EMR서식 리스트 조회
  288. function fEMRList()
  289. {
  290. if (grd_ordlist.rows<= 1) return;
  291. if (grd_ordlist.row < 1) return;
  292. var lrow = grd_ordlist.row;
  293. model.removeNodeset("/root/send/search");
  294. model.makeValue("/root/send/search/pid", model.getValue("/root/main/ordinfo/ordlist[" + lrow + "]/pid"));
  295. model.makeValue("/root/send/search/orddd", model.getValue("/root/main/ordinfo/ordlist[" + lrow + "]/orddd"));
  296. model.makeValue("/root/send/search/cretno", model.getValue("/root/main/ordinfo/ordlist[" + lrow + "]/cretno"));
  297. model.makeValue("/root/send/search/chrtflag", model.getValue("/root/main/ordinfo/ordlist[" + lrow + "]/chrtflag"));
  298. model.makeValue("/root/send/search/medirecno", model.getValue("/root/main/ordinfo/ordlist[" + lrow + "]/medirecno"));
  299. // reqGetCopyEmrInfo
  300. // getCopyEmrList
  301. if (submit("TRMRC01203", false) == true)
  302. {
  303. }
  304. else
  305. {
  306. messageBox("조회를", "E009");
  307. }
  308. model.refresh();
  309. }
  310. // 진료구분 체크에서 체크박스 선택시
  311. function fPaperOrdFlagCheck(chkobj)
  312. {
  313. var checkflag = chkobj.item(chkobj.focusIndex).value;
  314. var etcyn = "N";
  315. var chkvalue = chkobj.value;
  316. var chkarray = chkvalue.split(" ");
  317. for (i = 0; i < chkarray.length; i++){
  318. if (checkflag == chkarray[i]){
  319. if (checkflag == "A"){
  320. etcyn = "Y";
  321. }else{
  322. etcyn = "N";
  323. }
  324. }
  325. }
  326. if (etcyn == "Y"){
  327. chkobj.value = "A";
  328. if (chkobj.attribute("id") == "chk_emrordflag"){
  329. //fOrdSpec();
  330. }
  331. }else{
  332. var a = chkobj.value;
  333. var lvalue = a.replace("A", "");
  334. chkobj.value = lvalue;
  335. //ipt_etcitem.value = "";
  336. //ipt_etcitem.disabled = true;
  337. }
  338. fOrdSpec();
  339. model.refresh();
  340. }
  341. // 종이서식범위에서 체크박스 체크시
  342. function fPaperScopCheck(){
  343. var etcyn = "N";
  344. var chkvalue = chk_paperscopcd.value;
  345. var chkarray = chkvalue.split(" ");
  346. for (i = 0; i < chkarray.length; i++){
  347. if (chkarray[i] == "99"){
  348. etcyn = "Y";
  349. }
  350. }
  351. if (etcyn == "Y"){
  352. //ipt_paperdocunm.value = "";
  353. //Ipt_paperdocunm.disabled = true;
  354. ipt_paperdocunm.disabled = false;
  355. }else{
  356. ipt_paperdocunm.value = "";
  357. ipt_paperdocunm.disabled = true;
  358. }
  359. }
  360. // EMR 서식 리스트에서 선택한 서식을 넘기기
  361. function fEmrListSelect()
  362. {
  363. var reckeyno = "";
  364. var formcd = "";
  365. for(i = 1; i<grd_emrlist.rows; i++)
  366. {
  367. var chk = grd_emrlist.valueMatrix(i, grd_emrlist.colRef("chk"));
  368. var lrow = null;
  369. // 같은 서식번호가 있을 경우에 대한 체크 로직 필요
  370. if (chk == "Y")
  371. {
  372. var reckeyno = model.getValue("/root/main/emrinfo/emrlist[" + i + "]/reckeyno");
  373. var formcd = model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formcd");
  374. var chrtflag = model.getValue("/root/main/emrinfo/emrlist[" + i + "]/chrtflag");
  375. if(model.getValue("/root/main/appinfo/applist[reckeyno='"+reckeyno+"' and formcd ='"+formcd+"']/reckeyno") == ""){
  376. grd_emrapplist.additem();
  377. lrow = grd_emrapplist.rows -1;
  378. // emr서식정보
  379. model.setValue("/root/main/appinfo/applist[" + lrow + "]/chrtflag", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/chrtflag"));
  380. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formrecdt", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formrecdt"));
  381. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formnm", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formnm"));
  382. // model.setValue("/root/main/appinfo/applist[" + lrow + "]/formrecextnnm", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formrecextnnm"));
  383. model.setValue("/root/main/appinfo/applist[" + lrow + "]/reckeyno", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/reckeyno"));
  384. model.setValue("/root/main/appinfo/applist[" + lrow + "]/instcd", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/instcd"));
  385. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formcd", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formcd"));
  386. // 진료정보
  387. model.setValue("/root/main/appinfo/applist[" + lrow + "]/ioflag", model.getValue("/root/main/ordinfo/ordlist[" + grd_ordlist.row + "]/ioflag"));
  388. model.setValue("/root/main/appinfo/applist[" + lrow + "]/orddeptnm", model.getValue("/root/main/ordinfo/ordlist[" + grd_ordlist.row + "]/orddeptnm"));
  389. model.setValue("/root/main/appinfo/applist[" + lrow + "]/orddd", model.getValue("/root/main/ordinfo/ordlist[" + grd_ordlist.row + "]/orddd"));
  390. model.setValue("/root/main/appinfo/applist[" + lrow + "]/dschdd", model.getValue("/root/main/ordinfo/ordlist[" + grd_ordlist.row + "]/dschdd"));
  391. model.setValue("/root/main/appinfo/applist[" + lrow + "]/atdoctnm", model.getValue("/root/main/ordinfo/ordlist[" + grd_ordlist.row + "]/atdoctnm"));
  392. // key
  393. model.setValue("/root/main/appinfo/applist[" + lrow + "]/copyseqno", model.getValue("/root/main/appinfo/copyinfo[" + grd_ordlist.row + "]/copyseqno"));
  394. grd_emrapplist.addStatus(lrow, "insert");
  395. }
  396. }
  397. }
  398. model.refresh();
  399. }
  400. // 신규 데이터
  401. function fNewDate()
  402. {
  403. if (model.getValue("/root/send/cond/pid") == "")
  404. {
  405. messageBox("등록번호를", "C001");
  406. model.setFocus("inp_pid");
  407. return;
  408. }
  409. //fDisabled(false);
  410. model.resetInstanceNode("/root/main/appinfo/copyinfo");
  411. model.removeNodeset("/root/main/appinfo/applist");
  412. model.removeNodeset("/root/main/emrinfo/emrlist");
  413. model.removeNodeset("/root/main/ordinfo/ordlist");
  414. model.setValue("/root/main/appinfo/copyinfo/pid", model.getValue("/root/send/cond/pid") );
  415. model.setValue("/root/main/appinfo/copyinfo/orddd", model.getValue("/root/send/cond/orddd") );
  416. model.setValue("/root/main/appinfo/copyinfo/cretno", model.getValue("/root/send/cond/cretno") );
  417. // 신청부서 1부 default
  418. model.setValue("/root/main/appinfo/copyinfo/emrappcopies", "1" );
  419. //model.setValue("/root/main/appinfo/copyinfo/paperorddeptcd", deptcd);
  420. // emr 진료과를 선택하면 수진이력 조회한다.
  421. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  422. if(ioflag != "") model.setValue("/root/main/appinfo/copyinfo/emrordflag", ioflag);
  423. fOrdSpec();
  424. model.setValue("/root/main/appinfo/copyinfo/status", "i");
  425. fAppManNmSetting("S");
  426. var sParamMsg = "";
  427. if(checkOpener()){
  428. sParamMsg = opener.javascript.getParameter("SMMRC01200_Param");
  429. }
  430. if(sParamMsg != ""){
  431. sParamMsg = opener.javascript.getParameter("SMMRC01200_Param");
  432. model.setValue("/root/main/appinfo/copyinfo/emrorddeptcd", getArrayData(sParamMsg,1,5));
  433. fChngSrchCond("/root/main/appinfo/copyinfo/emrorddeptcd", "/root/init/doctor/drlist");
  434. model.setValue("/root/main/appinfo/copyinfo/appdrid", getArrayData(sParamMsg,1,6));
  435. }else if(sHealCareInfoUser == "N"){
  436. var deptcd = getUserInfo("dutplcecd");
  437. var userid = getUserId();
  438. model.setValue("/root/main/appinfo/copyinfo/emrorddeptcd", deptcd);
  439. fChngSrchCond("/root/main/appinfo/copyinfo/emrorddeptcd", "/root/init/doctor/drlist");
  440. // 신청과 셋팅
  441. model.setValue("/root/main/appinfo/copyinfo/appdeptcd", deptcd);
  442. model.setValue("/root/main/appinfo/copyinfo/appdrid", userid);
  443. }else{
  444. model.setValue("/root/main/appinfo/copyinfo/emrorddeptcd", model.getValue("/root/send/cond/orddeptcd"));
  445. fChngSrchCond("/root/main/appinfo/copyinfo/emrorddeptcd", "/root/init/doctor/drlist");
  446. // 신청과 셋팅
  447. model.setValue("/root/main/appinfo/copyinfo/appdeptcd", model.getValue("/root/send/cond/orddeptcd"));
  448. model.setValue("/root/main/appinfo/copyinfo/appdrid", model.getValue("/root/send/cond/orddrid"));
  449. if(model.getValue("/root/main/appinfo/copyinfo/cretno") != ""){
  450. cmb_emrorddeptcd.disabled = true;
  451. cmb_orddrid.disabled = true;
  452. }else{
  453. cmb_emrorddeptcd.disabled = false;
  454. cmb_orddrid.disabled = false;
  455. }
  456. }
  457. fDisabled(false);
  458. btn_update.disabled = true;
  459. btn_delete.disabled = true;
  460. ipt_issgoaletc.disabled = true;
  461. model.refresh();
  462. }
  463. // disabled 여부
  464. function fDisabled(flag)
  465. {
  466. btn_save.disabled = flag;
  467. btn_issgoaletc.disabled = flag;
  468. cmb_trustyn.disabled = flag;
  469. rdo_appmanflag.disabled = flag;
  470. rdo_appmanflag.disabled = flag;
  471. btn_select.disabled = flag;
  472. // ipt_appmannm.disabled = flag;
  473. btn_listdel.disabled = flag;
  474. ipt_emrappcopies.disabled = flag;
  475. // ipt_issgoaletc.disabled = flag;
  476. }
  477. // 저장
  478. function fSave()
  479. {
  480. var dutplcecd = getUserInfo("dutplcecd");
  481. if (model.getValue("/root/send/cond/pid") == ""){
  482. messageBox("등록번호를", "C001");
  483. model.setFocus("inp_pid");
  484. return;
  485. }
  486. if(model.getValue("/root/main/appinfo/copyinfo/emrorddeptcd") == ""){
  487. messageBox("진료과를", "C001");
  488. model.setFocus("cmb_emrorddeptcd");
  489. return;
  490. }
  491. if (model.getValue("/root/main/appinfo/copyinfo/appmanflag") == ""){
  492. model.setFocus("rdo_appmanflag");
  493. messageBox("사본발행 신청인을", "C001");
  494. return;
  495. }
  496. if (model.getValue("/root/main/appinfo/copyinfo/trustyn") == ""){
  497. model.setFocus("cmb_trustyn");
  498. messageBox("위임장/인감증명서 유무를", "C001");
  499. return;
  500. }
  501. if (model.getValue("/root/main/appinfo/copyinfo/issgoaletc") == ""){
  502. model.setFocus("cmb_issgoalcd");
  503. messageBox("사본발행목적을", "C001");
  504. return;
  505. }
  506. if (grd_emrapplist.rows <= 1){
  507. messageBox("부분서식 선택을", "C001");
  508. return;
  509. }
  510. // 신청부서 1부 default
  511. if (model.getValue("/root/main/appinfo/copyinfo/emrappcopies") == "0"
  512. || model.getValue("/root/main/appinfo/copyinfo/emrappcopies") == "" ){
  513. model.setValue("/root/main/appinfo/copyinfo/emrappcopies", "1" );
  514. }
  515. // 신규일 때
  516. if (model.getValue("/root/main/appinfo/copyinfo/status") == "")
  517. {
  518. model.setValue("/root/main/appinfo/copyinfo/status", "i");
  519. }
  520. if(model.getValue("/root/main/appinfo/copyinfo/status") == "i"){
  521. model.setValue("/root/main/appinfo/copyinfo/pid", model.getValue("/root/send/cond/pid") );
  522. model.setValue("/root/main/appinfo/copyinfo/orddd", model.getValue("/root/send/cond/orddd") );
  523. model.setValue("/root/main/appinfo/copyinfo/cretno", model.getValue("/root/send/cond/cretno") );
  524. var deptcd = getUserInfo("dutplcecd");
  525. // 신청과 셋팅
  526. model.setValue("/root/main/appinfo/copyinfo/appdeptcd", deptcd);
  527. if(model.getValue("/root/send/cond/cretno") == "" && (model.getValue("/root/main/appinfo/copyinfo/appdrid") == "" || model.getValue("/root/main/appinfo/copyinfo/appdrid") == "-")){
  528. messageBox("가접수를 하기 위해 진료의사를", "C001");
  529. model.setFocus("cmb_orddrid");
  530. return;
  531. }
  532. if(model.getValue("/root/send/cond/cretno") == ""){
  533. model.removeNodeset("/root/send/savedata/otptinfo");
  534. model.makeValue("/root/send/savedata/otptinfo/otpt_flag","I"); // 구분자
  535. model.makeValue("/root/send/savedata/otptinfo/otpt_pid",model.getValue("/root/send/cond/pid")); // 등록번호
  536. model.makeValue("/root/send/savedata/otptinfo/otpt_orddd",getCurrentDate()); // 진료일자
  537. model.makeValue("/root/send/savedata/otptinfo/otpt_orddeptcd", model.getValue("/root/main/appinfo/copyinfo/emrorddeptcd")); // 진료과
  538. model.makeValue("/root/send/savedata/otptinfo/otpt_orddrid", model.getValue("/root/main/appinfo/copyinfo/appdrid")); // 진료의사
  539. model.makeValue("/root/send/savedata/otptinfo/otpt_ordtm",getCurrentTime()); // 진료시간
  540. model.makeValue("/root/send/savedata/otptinfo/otpt_rsrvflag","4"); // 예약구분
  541. model.makeValue("/root/send/savedata/otptinfo/otpt_instcd",getUserInfo("dutplceinstcd")); // 기관코드
  542. model.makeValue("/root/send/savedata/otptinfo/otpt_remfact", ""); // 참고사항
  543. model.makeValue("/root/send/savedata/otptinfo/sess_userid",getUserInfo("userid")); // 사용자ID
  544. model.makeValue("/root/send/savedata/otptinfo/otpt_medamtestmyn", "N"); // 진찰료산정여부
  545. model.makeValue("/root/send/savedata/otptinfo/otpt_medamtpostyn", "Y"); // 진찰료후불여부
  546. model.makeValue("/root/send/savedata/otptinfo/otpt_medamtfreeresn", "10"); // 진찰료미산정사유
  547. }
  548. }
  549. if(model.getValue("/root/main/appinfo/copyinfo/status") == "u"){
  550. model.setValue("/root/main/appinfo/copyinfo/issgoalcd", model.getValue("/root/main/appinfo/copyinfo/issgoaletccd"));
  551. if(model.getValue("/root/main/appinfo/copyinfo/issgoaletccd") == "99"){ // 사본발행목적이 기타일 경우
  552. model.setValue("/root/main/appinfo/copyinfo/issgoalnm", model.getValue("/root/main/appinfo/copyinfo/issgoaletcnm"));
  553. }else{
  554. model.setValue("/root/main/appinfo/copyinfo/issgoalnm", model.getValue("/root/main/appinfo/copyinfo/issgoaletc"));
  555. }
  556. }
  557. model.makeNode("/root/send/savedata/copyinfo");
  558. model.makeNode("/root/send/savedata/emrapplist");
  559. //model.makeNode("/root/send/savedata/paperlist");
  560. // 신청정보
  561. if (model.getValue("/root/main/appinfo/copyinfo/appmanflag") == "9")
  562. {
  563. model.setValue("/root/main/appinfo/copyinfo/appmannm", ipt_appmannm.currentText);
  564. }
  565. model.copyNode("/root/send/savedata/copyinfo", "/root/main/appinfo/copyinfo");
  566. // emr서식정보
  567. model.setValue("/root/send/savedata/emrapplist", grd_emrapplist.getUpdateData());
  568. // reqExeCopyIssInfo
  569. if (submit("TXMRC01201", false) == true)
  570. {
  571. grd_emrapplist.clearStatus();
  572. if(model.getValue("/root/temp/outacptlist/outacptinfo/orddd") != ""){
  573. model.setValue("/root/send/cond/orddd", model.getValue("/root/temp/outacptlist/outacptinfo/orddd"));
  574. }
  575. if(model.getValue("/root/temp/outacptlist/outacptinfo/cretno") != ""){
  576. model.setValue("/root/send/cond/cretno", model.getValue("/root/temp/outacptlist/outacptinfo/cretno"));
  577. }
  578. model.setValue("/root/send/cond/orddeptcd", model.getValue("/root/main/appinfo/copyinfo/emrorddeptcd"));
  579. model.setValue("/root/send/cond/orddrid", model.getValue("/root/main/appinfo/copyinfo/appdrid"));
  580. fHistSearch();
  581. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  582. if(ioflag != "") model.setValue("/root/main/appinfo/copyinfo/emrordflag", ioflag);
  583. }
  584. else
  585. {
  586. messageBox("저장에", "E009");
  587. }
  588. fAppManNmSetting("S");
  589. btn_update.disabled = true;
  590. btn_delete.disabled = true;
  591. model.refresh();
  592. }
  593. // 사본신청 삭제
  594. function fDelete(){
  595. var iRow = grd_apphist.row;
  596. var sIssNo = "";
  597. if(iRow < 1) return;
  598. if(model.getValue("/root/main/appinfo/copyinfo/status") == "u"){
  599. sIssNo = model.getValue("/root/main/apphist/applist["+iRow+"]/issno");
  600. if(sIssNo != ""){
  601. messageBox("사본 발행이 이루어진 경우 삭제", "E001");
  602. return;
  603. }
  604. model.setValue("/root/main/appinfo/copyinfo/status","d");
  605. model.makeNode("/root/send/savedata/copyinfo");
  606. model.copyNode("/root/send/savedata/copyinfo", "/root/main/appinfo/copyinfo");
  607. if (submit("TXMRC01201", false) == true)
  608. {
  609. fHistSearch();
  610. var ioflag = model.getValue("/root/main/paminfo/list/ioflag");
  611. if(ioflag != "") model.setValue("/root/main/appinfo/copyinfo/emrordflag", ioflag);
  612. }
  613. else
  614. {
  615. messageBox("저장에", "E009");
  616. }
  617. btn_update.disabled = true;
  618. model.refresh();
  619. }else{
  620. messageBox("저장 내역이", "I004");
  621. }
  622. }
  623. // 신청인 선택에 따른 신청인 명 셋팅
  624. function fAppManNmSetting(pFlag)
  625. {
  626. // 기타명 기타란 활성화
  627. //if (rdo_appmanflag.value != "9")
  628. if (model.getValue("/root/main/appinfo/copyinfo/appmanflag") != "9")
  629. {
  630. ipt_appmannm.disabled = true;
  631. ipt_appmannm.value = "";
  632. model.setValue("/root/main/appinfo/copyinfo/appmannm", rdo_appmanflag.label);
  633. }
  634. else
  635. {
  636. ipt_appmannm.disabled = false;
  637. //ipt_appmannm.value = "";
  638. }
  639. // 사본발행목적 기타란 활성화
  640. if(model.getValue("/root/main/appinfo/copyinfo/issgoaletccd") == "99"){
  641. ipt_issgoaletc.disabled = false;
  642. }else{
  643. ipt_issgoaletc.disabled = true;
  644. }
  645. if (model.getValue("/root/main/appinfo/copyinfo/appmanflag") == "1")
  646. //if (rdo_appmanflag.value == "1")
  647. {
  648. cmb_trustyn.disabled = true;
  649. if(pFlag != "S") cmb_trustyn.value = "N";
  650. }
  651. else
  652. {
  653. cmb_trustyn.disabled = false;
  654. if(pFlag != "S") cmb_trustyn.value = "Y";
  655. }
  656. }
  657. // 종결기록의 원외자선 행삭제
  658. function fEmrAppListRowDel(){
  659. if (grd_emrapplist.rows <= 1) return;
  660. grd_emrapplist.deleteItem(grd_emrapplist.row);
  661. }
  662. // 통합기록조회
  663. function fViewer()
  664. {
  665. //if (grd_isshist.rows<= 1) return;
  666. //if (grd_isshist.row < 1) return;
  667. var pid = model.getValue("/root/send/cond/pid");
  668. setParameter("SMMRI00400_param_pid", pid);
  669. modal("SMMRI00400", 1,10, 10, "SMMRI00400", "", "");
  670. var reqcopy = getParameter("SMMRI00400_reqcopy");
  671. var reckeyno = "";
  672. var formcd = "";
  673. var lrow = 0;
  674. if(reqcopy != ""){
  675. for(var iRow = 0; iRow<reqcopy.split("▩").length-1; iRow++){
  676. reckeyno = getArrayData(reqcopy,iRow, 8);
  677. formcd = getArrayData(reqcopy,iRow,9);
  678. if(model.getValue("/root/main/appinfo/applist[reckeyno='"+reckeyno+"' and formcd ='"+formcd+"']/reckeyno") == ""){
  679. grd_emrapplist.additem();
  680. lrow = grd_emrapplist.rows -1;
  681. // emr서식정보
  682. model.setValue("/root/main/appinfo/applist[" + lrow + "]/chrtflag", getArrayData(reqcopy,iRow,0));
  683. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formrecdt", getArrayData(reqcopy,iRow,2));
  684. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formnm", getArrayData(reqcopy,iRow,3));
  685. // model.setValue("/root/main/appinfo/applist[" + lrow + "]/formrecextnnm", model.getValue("/root/main/emrinfo/emrlist[" + i + "]/formrecextnnm"));
  686. model.setValue("/root/main/appinfo/applist[" + lrow + "]/reckeyno", reckeyno);
  687. model.setValue("/root/main/appinfo/applist[" + lrow + "]/formcd", formcd);
  688. model.setValue("/root/main/appinfo/applist[" + lrow + "/instcd", getUserInfo("dutplceinstcd"));
  689. // 진료정보
  690. model.setValue("/root/main/appinfo/applist[" + lrow + "]/ioflag", getArrayData(reqcopy,iRow,1));
  691. model.setValue("/root/main/appinfo/applist[" + lrow + "]/orddeptnm", getArrayData(reqcopy,iRow,4));
  692. model.setValue("/root/main/appinfo/applist[" + lrow + "]/orddd", getArrayData(reqcopy,iRow,5));
  693. model.setValue("/root/main/appinfo/applist[" + lrow + "]/dschdd", getArrayData(reqcopy,iRow,6));
  694. model.setValue("/root/main/appinfo/applist[" + lrow + "]/atdoctnm", getArrayData(reqcopy,iRow,7));
  695. // key
  696. model.setValue("/root/main/appinfo/applist[" + lrow + "]/copyseqno", model.getValue("/root/main/appinfo/copyinfo/copyseqno"));
  697. grd_emrapplist.addStatus(lrow, "insert");
  698. }
  699. }
  700. }
  701. }