SPMMR05400.xjs 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. 부서별기록관리 ( SPMMR05400_부서별기록관리.xfdl - JScript )
  5. - Version :
  6. 1) : Ver.1.00.01
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var gFormcd = "";
  10. var gFormrecdd = "";
  11. /**
  12. * @desc : 화면초기화
  13. * @id :
  14. * @event : xforms-ready
  15. * @return : void
  16. */
  17. function fInitalize()
  18. {
  19. grp_base.ivw_loader.afterSaveExeFuncNm = "fReclistClick";
  20. grp_base.switch1.case_patlist.ivw_patlist.fInitalize();
  21. grp_base.switch1.tabindex = 0;
  22. fSetPatInfo();
  23. fAddDateReq("today");
  24. frmf_setParameter("SPMRI01300_openerid", "SPMMR05400");
  25. var if_tabflag = opener.frmf_getParameter("SPMMR05400_tabflag");
  26. if (utlf_isNull(if_tabflag) || if_tabflag == "formlist") {
  27. grp_base.switch1.tabindex = 0;
  28. grp_base.ivw_loader.visible = true;
  29. grp_base.ivw_reccnts.visible = false;
  30. fGetFormList();
  31. }
  32. else if (if_tabflag = "reclist"){
  33. fReclistClick();
  34. }
  35. //20100104 dhkim care plan 버튼 활성화
  36. fVisibleCarePlan();
  37. }
  38. /**
  39. * @desc : 디폴트 서식 오픈
  40. * @id :
  41. * @event : xforms-ready
  42. * @return : void
  43. * @authur : 박종훈
  44. */
  45. function fLoadDefForm()
  46. {
  47. if (!utlf_isNull(gFormcd))
  48. {
  49. if(!utlf_isNull(gFormrecdd)){
  50. grp_base.ivw_loader.frmf_setParameter("SSMMR01100_formrecdd",gFormrecdd);
  51. }
  52. var vBtn = true;
  53. // if (sysf_getUserInfo("jobkindcd").substring(0, 2) != "03")
  54. // {
  55. // //grp_base.ivw_loader.grup_btn.enable = true;
  56. // vBtn = true;
  57. // }
  58. // 환자정보 없이 서식 오픈시 버튼 처리
  59. if( ds_paminfo.rowcount == 0 ){
  60. vBtn = false;
  61. }
  62. var ioflag = ds_paminfo.getColumn(ds_paminfo.rowposition,"ioflag");
  63. var orddd = "";
  64. var orddrid = "";
  65. if(ioflag == "I" || ioflag == "D" || ioflag == "E" ){ // 입원
  66. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"medispclid");
  67. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"indd");
  68. if(utlf_isNull(orddd))
  69. {
  70. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  71. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddrid");
  72. }
  73. }else{
  74. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddrid");
  75. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  76. }
  77. var sParam = "";
  78. var tmpIoflag = ioflag;
  79. if(tmpIoflag == "O" && tmpIoflag=="S"){
  80. tmpIoflag = "O";
  81. }else if( tmpIoflag == "I" && tmpIoflag=="D" ){
  82. tmpIoflag = "I";
  83. }
  84. var nInstcd = sysf_getUserInfo("dutplceinstcd");
  85. var nPid = ds_paminfo.getColumn(0, "pid");
  86. var nCretno = ds_paminfo.getColumn(0, "cretno");
  87. var nDschdd = dsf_getColumnNullToEmpty(ds_paminfo, 0, "dschdd");
  88. sParam = tmpIoflag + "▦" +
  89. nPid + "▦" +
  90. orddd + "▦" +
  91. nCretno + "▦" +
  92. nInstcd + "▦" +
  93. nDschdd;
  94. frmf_setParameter("SSMMR01100_recsavechk", "Y");
  95. var path = grp_base;
  96. var objArg = new Object();
  97. var vFormKind = "new";
  98. ds_cond_formdata.clearData();
  99. ds_cond_formdata.addRow();
  100. ds_cond_formdata.setColumn(0, "formcd", gFormcd); // 서식목록 - linkcd, 기록목록 - formrecseq 컬럼값.
  101. ds_cond_formdata.setColumn(0, "formkind", vFormKind); // 서식목록 탭 - new , 기록목록 - rec
  102. ds_cond_formdata.setColumn(0, "btnvisible", vBtn);
  103. ds_cond_formdata.setColumn(0, "pid", ds_paminfo.getColumn(0, "pid"));
  104. ds_cond_formdata.setColumn(0, "orddd", orddd);
  105. ds_cond_formdata.setColumn(0, "cretno", ds_paminfo.getColumn(0, "cretno"));
  106. ds_cond_formdata.setColumn(0, "orddeptcd", ds_paminfo.getColumn(0, "orddeptcd"));
  107. ds_cond_formdata.setColumn(0, "orddrid", orddrid);
  108. ds_cond_formdata.setColumn(0, "ioflag", ds_paminfo.getColumn(0, "ioflag"));
  109. ds_cond_formdata.setColumn(0, "topyn", "N");
  110. ds_cond_formdata.setColumn(0, "paminfo", sParam);
  111. objArg.ds_cond_formdata = ds_cond_formdata;
  112. lf_loadSMMMR01100(false, objArg, path);
  113. var nFindRow = ds_form_formlist.findRow("linkcd", gFormcd);
  114. if( nFindRow > -1 ){
  115. ds_form_formlist.rowposition = nFindRow;
  116. }
  117. }
  118. }
  119. /**
  120. * @desc : 환자정보
  121. * @id :
  122. * @event : ondblclick
  123. * @return : void
  124. */
  125. function fSetPatInfo()
  126. {
  127. var patinfo = "";
  128. if(frmf_isPopup() && sysf_getObjType(this) == "Form")
  129. patinfo = opener.frmf_getParameter("SPMMR05400_parm_pinfo");
  130. var pid = "";
  131. var orddd = "";
  132. var cretno = "";
  133. var ioflag = "";
  134. var orddeptcd = "";
  135. var orddrid = "";
  136. var patnm = "";
  137. var age = "";
  138. var sex = "";
  139. var formdeptcd = "";
  140. if (utlf_isNull(patinfo))
  141. {
  142. var pamInfoCvs = sysf_getGlobalVariable("paminfo"); //상단정보가 있을 경우는 검색
  143. if(!utlf_isNull(pamInfoCvs))
  144. { //cvs가 null이 아닌 경우에만 처리함.
  145. ds_paminfo.clearData();
  146. dsf_setCSVToDs ("ds_paminfo", pamInfoCvs);
  147. ioflag = ds_paminfo.getColumn(0,"ioflag");
  148. if (ioflag == "O")
  149. {
  150. orddd = ds_paminfo.getColumn(0,"orddd");
  151. orddrid = ds_paminfo.getColumn(0,"orddrid");
  152. }
  153. else
  154. {
  155. orddd = ds_paminfo.getColumn(0,"indd");
  156. orddrid = ds_paminfo.getColumn(0,"medispclid");
  157. }
  158. pid = ds_paminfo.getColumn(0,"pid");
  159. cretno = ds_paminfo.getColumn(0,"cretno");
  160. orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  161. patnm = ds_paminfo.getColumn(0,"hngnm");
  162. age = ds_paminfo.getColumn(0,"age");
  163. sex = ds_paminfo.getColumn(0,"sex");
  164. }
  165. }
  166. else
  167. {
  168. patinfo = patinfo.split("▦");
  169. pid = patinfo[0];
  170. orddd = patinfo[1];
  171. cretno = patinfo[2];
  172. ioflag = patinfo[3];
  173. orddeptcd = patinfo[4];
  174. orddrid = patinfo[5];
  175. patnm = patinfo[6];
  176. age = patinfo[7];
  177. sex = patinfo[8];
  178. formdeptcd = patinfo[9];
  179. dsf_makeValue(ds_paminfo,"pid", "string", pid);
  180. dsf_makeValue(ds_paminfo,"orddeptcd", "string", orddeptcd);
  181. dsf_makeValue(ds_paminfo,"orddd", "string", utlf_transNullToEmpty(orddd).substring(0,8));
  182. dsf_makeValue(ds_paminfo,"cretno", "string", cretno);
  183. dsf_makeValue(ds_paminfo,"ioflag", "string", ioflag);
  184. dsf_makeValue(ds_paminfo,"orddrid", "string", orddrid);
  185. dsf_makeValue(ds_paminfo,"hngnm", "string", patnm);
  186. }
  187. //진료부서 조회
  188. lf_mmbfGetDeptCodeComboList(ds_init_deptlist, "A");
  189. if (utlf_isNull(pid))
  190. {
  191. sysf_messageBox("기록에 필요한 환자 원무정보가", "I004");
  192. grp_base.ivw_loader.grup_btn.enable = false;
  193. grp_base.switch1.tabindex = 2;
  194. }
  195. else
  196. {
  197. if (!utlf_isNull(formdeptcd))
  198. {
  199. ds_send.setColumn(0,"formdeptcd", formdeptcd);
  200. }
  201. else
  202. {
  203. ds_send.setColumn(0,"formdeptcd", orddeptcd);
  204. }
  205. ds_init.setColumn(0,"patinfo", pid + " " + patnm + "(" + sex + "/" + age + ")");
  206. //서식로더에서 환자 기록관련 원무정보를 Top에서 조회해올지 여부(N일경우 Top에서 참조하지 않음)
  207. frmf_setParameter("SSMMR01100_getTopYn", "N");
  208. grp_base.ivw_loader.fSetPamInfo(pid, orddd, cretno, ioflag , orddeptcd, orddrid);
  209. //2010.04.01 dhkim careplan노드 셋팅
  210. var objParam = [{col:"pid", type:"string", size:256, val:pid},
  211. {col:"orddd", type:"string", size:256, val:orddd},
  212. {col:"cretno", type:"string", size:256, val:cretno},
  213. {col:"ioflag", type:"string", size:256, val:ioflag},
  214. {col:"patnm", type:"string", size:256, val:patnm}]
  215. dsf_createDsRow("ds_init_careplaninfo",objParam,false);
  216. }
  217. }
  218. /**
  219. * @desc : 환자 리스트에서 환자 원무 정보 셋팅
  220. * @id :
  221. * @event : xforms-ready
  222. * @return : void
  223. * @authur : 박종훈
  224. */
  225. function fIvwSetPamInfo(pid, orddd, cretno, ioflag , orddeptcd, orddrid, patnm, sa, dschdd)
  226. {
  227. ds_init.setColumn(0,"patinfo", pid + " " + patnm + "(" + sa + ")");
  228. ds_paminfo.clearData();
  229. ds_paminfo.addRow();
  230. dsf_makeValue(ds_paminfo,"pid", "string", pid);
  231. dsf_makeValue(ds_paminfo,"orddeptcd", "string", orddeptcd);
  232. dsf_makeValue(ds_paminfo,"orddd", "string", orddd.substring(0,8));
  233. dsf_makeValue(ds_paminfo,"cretno", "string", cretno);
  234. dsf_makeValue(ds_paminfo,"ioflag", "string", ioflag);
  235. dsf_makeValue(ds_paminfo,"orddrid", "string", orddrid);
  236. dsf_makeValue(ds_paminfo,"hngnm", "string", patnm);
  237. ds_send.setColumn(0,"formdeptcd", ds_paminfo.getColumn(0,"orddeptcd"));
  238. //20100104 dhkim 환자리스트에서 선택한 환자 원무정보 careplan용으로 세팅
  239. ds_init_careplaninfo.clearData();
  240. ds_init_careplaninfo.addRow();
  241. ds_init_careplaninfo.setColumn(0,"pid",pid);
  242. ds_init_careplaninfo.setColumn(0,"orddd",orddd);
  243. ds_init_careplaninfo.setColumn(0,"cretno",cretno);
  244. ds_init_careplaninfo.setColumn(0,"ioflag",ioflag);
  245. ds_init_careplaninfo.setColumn(0,"patnm",patnm);
  246. //grp_base.ivw_loader.fSetPamInfo(pid, orddd.substring(0, 8), cretno, ioflag , orddeptcd, orddrid);
  247. frmf_setParameter("SSMMR01100_getTopYn", "N");
  248. if (!utlf_isNull(gFormcd))
  249. {
  250. //서식로드시 TOP정보 조회 여부 셋팅(N일경우 Top참조 안함)
  251. //grp_base.ivw_loader.fLoadNewForm(gFormcd, false);
  252. frmf_setParameter("SSMMR01100_recsavechk", "Y");
  253. var path = grp_base;
  254. var objArg = new Object();
  255. var vFormKind = "new";
  256. var sParam = "";
  257. var tmpIoflag = ioflag;
  258. if(tmpIoflag == "O" && tmpIoflag=="S"){
  259. tmpIoflag = "O";
  260. }else if( tmpIoflag == "I" && tmpIoflag=="D" ){
  261. tmpIoflag = "I";
  262. }
  263. var nInstcd = sysf_getUserInfo("dutplceinstcd");
  264. sParam = tmpIoflag + "▦" +
  265. pid + "▦" +
  266. orddd + "▦" +
  267. cretno + "▦" +
  268. nInstcd + "▦" +
  269. dschdd;
  270. ds_cond_formdata.clearData();
  271. ds_cond_formdata.addRow();
  272. ds_cond_formdata.setColumn(0, "formcd", gFormcd); // 서식목록 - linkcd, 기록목록 - formrecseq 컬럼값.
  273. ds_cond_formdata.setColumn(0, "formkind", vFormKind); // 서식목록 탭 - new , 기록목록 - rec
  274. ds_cond_formdata.setColumn(0, "btnvisible", true);
  275. ds_cond_formdata.setColumn(0, "pid", pid);
  276. ds_cond_formdata.setColumn(0, "orddd", orddd.substring(0,8));
  277. ds_cond_formdata.setColumn(0, "cretno", cretno);
  278. ds_cond_formdata.setColumn(0, "orddeptcd", orddeptcd);
  279. ds_cond_formdata.setColumn(0, "ioflag", ioflag);
  280. ds_cond_formdata.setColumn(0, "topyn", "N");
  281. ds_cond_formdata.setColumn(0, "paminfo", sParam);
  282. objArg.ds_cond_formdata = ds_cond_formdata;
  283. lf_loadSMMMR01100(false, objArg, path);
  284. if (sysf_getUserInfo("jobkindcd").substring(0, 2) != "03")
  285. {
  286. grp_base.ivw_loader.grup_btn.enable = true;
  287. }
  288. }
  289. fGetFormList();
  290. //model.toggle("case_form");
  291. if (grp_base.ivw_loader.visible == false )
  292. {
  293. grp_base.ivw_loader.visible = true;
  294. grp_base.ivw_reccnts.visible = false;
  295. }
  296. }
  297. /**
  298. * @desc : 서식 리스트 조회
  299. * @id :
  300. * @event : xforms-ready
  301. * @return : void
  302. * @authur : 박종훈
  303. */
  304. function fGetFormList()
  305. {
  306. ds_form_formlist.clearData();
  307. var oParam = {};
  308. oParam.id = "TRMMR05401";
  309. oParam.service = "medirecapp.ComnMediRec";
  310. oParam.method = "reqGetDeptFormList";
  311. oParam.inds = "req=ds_send";
  312. oParam.outds = "ds_form_formlist=formlist";
  313. oParam.async = false;
  314. oParam.callback = "cf_TRMMR05401";
  315. tranf_submit(oParam);
  316. }
  317. function cf_TRMMR05401(sSvcId, nErrorCode, sErrorMsg) {
  318. if(nErrorCode < 0) return;
  319. for(var i=0; i<ds_form_formlist.rowcount; i++){
  320. var nFormnm = ds_form_formlist.getColumn(i, "formnm");
  321. if( !utlf_isNull(nFormnm) && nFormnm.indexOf("\n") > -1 ){
  322. nFormnm = nFormnm.setReplaceWord("\n", " ");
  323. ds_form_formlist.setColumn(i, "formnm", nFormnm);
  324. }
  325. }
  326. //2016.04.11 gFormcd 유무에 따른 포지션 설정
  327. if (!utlf_isNull(gFormcd))
  328. {
  329. var nFindRow = ds_form_formlist.findRow("linkcd", gFormcd);
  330. if( nFindRow > -1 ){
  331. ds_form_formlist.rowposition = nFindRow;
  332. }
  333. }else{
  334. ds_form_formlist.rowposition = -1;
  335. }
  336. }
  337. /**
  338. * @desc : 서식 오픈
  339. * @id :
  340. * @event : ondblclick
  341. * @return : void
  342. * @authur : 박종훈
  343. */
  344. function fSelectForm()
  345. {
  346. var formcd = utlf_transNullToEmpty(ds_form_formlist.getColumn(ds_form_formlist.rowposition,"linkcd"));
  347. if (!utlf_isNull(formcd))
  348. {
  349. gFormcd = formcd;
  350. //만 12세이상에는 작성 할 수 없는 서식인지 파악
  351. //mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init/formforyng", 5986);
  352. lf_getHardCDList("N", 5986, null, ds_init_formforyng);
  353. var formCnt = ds_init_formforyng.getCaseCount("cdseqno == 1 && hardcd == '" + formcd + "'");
  354. //var age = ds_paminfo.getColumn(0,"age");
  355. var sSendDsNm = dsf_createDsRow("ds_send_TRMMR05402", [{col: "patinfo", type:"string", size:256, val:ds_init.getColumn(0, "patinfo")}]);
  356. var sRtnDsNm = dsf_createDs("ds_hidden_patinfo_patlist", [{col: "curage", type:"string", size:256}]);
  357. var oParam = {};
  358. oParam.id = "TRMMR05402";
  359. oParam.service = "medirecapp.ComnMediRec";
  360. oParam.method = "reqGetCurPidAge";
  361. oParam.inds = "req="+sSendDsNm;
  362. oParam.outds = sRtnDsNm+"=patlist";
  363. oParam.async = false;
  364. oParam.callback = "cf_TRMMR05402";
  365. tranf_submit(oParam);
  366. var age = "";
  367. if(arErrorCode.pop("TRMMR05402") > -1) {
  368. age = ds_hidden_patinfo_patlist.getColumn(0, "curage");
  369. //tempDs Delete
  370. dsf_deleteDs(sSendDsNm);
  371. dsf_deleteDs(sRtnDsNm);
  372. }
  373. if ( !utlf_isNull(age) && age >= 18 && formCnt > 0 ) {
  374. sysf_messageBox("만 18세 이상 성인은 사용할 수 없는 서식입니다","I");
  375. return;
  376. }
  377. //만 12세미만에는 작성 할 수 없는 서식인지 파악
  378. var formCnt = ds_init_formforyng.getCaseCount("cdseqno == 2 && hardcd == '" + formcd + "'");
  379. if ( !utlf_isNull(age) && age < 18 && formCnt > 0 ) {
  380. sysf_messageBox("만 18세 미만 소아는 사용할 수 없는 서식입니다","I");
  381. return;
  382. }
  383. //이윤주 추가(20150507)
  384. //mmbfGetHardCodeInfo("/root/send/reqdata", "/root/init2/jinformcd", 5986);
  385. lf_getHardCDList("N", 5986, null, ds_init2_jinformcd);
  386. var formcdcnt = ds_init2_jinformcd.getCaseCount("hardcd == '" + gFormcd + "'"); //진정,회복기록여부
  387. if (formcdcnt > 0) {
  388. grp_base.ivw_loader.frmf_setParameter("SSMMR01100_formrecdd",utlf_getCurrentDate());
  389. }
  390. var pid = ds_paminfo.getColumn(ds_paminfo.rowposition,"pid");
  391. var cretno = ds_paminfo.getColumn(ds_paminfo.rowposition,"cretno");
  392. var ioflag = ds_paminfo.getColumn(ds_paminfo.rowposition,"ioflag");
  393. var orddeptcd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddeptcd");
  394. var orddd = "";
  395. var orddrid = "";
  396. if(ioflag == "I" || ioflag == "D" || ioflag == "E" ){ // 입원
  397. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"medispclid");
  398. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"indd");
  399. if(utlf_isNull(orddd))
  400. {
  401. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  402. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddrid");
  403. }
  404. }else{
  405. orddrid = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddrid");
  406. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  407. }
  408. //
  409. // grp_base.ivw_loader.fLoadNewForm(formcd, false);
  410. //
  411. var vBtn;
  412. if (utlf_isNull(ds_paminfo.getColumn(0,"pid")))
  413. {
  414. //grp_base.ivw_loader.grup_btn.enable = false;
  415. vBtn = false;
  416. }
  417. else
  418. {
  419. //grp_base.ivw_loader.grup_btn.enable = true;
  420. vBtn = true;
  421. }
  422. var sParam = "";
  423. var tmpIoflag = ioflag;
  424. if(tmpIoflag == "O" && tmpIoflag=="S"){
  425. tmpIoflag = "O";
  426. }else if( tmpIoflag == "I" && tmpIoflag=="D" ){
  427. tmpIoflag = "I";
  428. }
  429. var nInstcd = sysf_getUserInfo("dutplceinstcd");
  430. var nDschdd = dsf_getColumnNullToEmpty(ds_paminfo, ds_paminfo.rowposition, "dschdd");
  431. sParam = tmpIoflag + "▦" +
  432. pid + "▦" +
  433. orddd + "▦" +
  434. cretno + "▦" +
  435. nInstcd + "▦" +
  436. nDschdd;
  437. // 서식 로드
  438. frmf_setParameter("SSMMR01100_recsavechk", "Y");
  439. var path = grp_base;
  440. var objArg = new Object();
  441. var vFormKind = "rec";
  442. if(grp_base.switch1.tabindex == 0){
  443. vFormKind = "new";
  444. }
  445. ds_cond_formdata.clearData();
  446. ds_cond_formdata.addRow();
  447. ds_cond_formdata.setColumn(0, "formcd", formcd); // 서식목록 - linkcd, 기록목록 - formrecseq 컬럼값.
  448. ds_cond_formdata.setColumn(0, "formkind", vFormKind); // 서식목록 탭 - new , 기록목록 - rec
  449. ds_cond_formdata.setColumn(0, "btnvisible", vBtn);
  450. ds_cond_formdata.setColumn(0, "pid", pid);
  451. ds_cond_formdata.setColumn(0, "orddd", orddd);
  452. ds_cond_formdata.setColumn(0, "cretno", cretno);
  453. ds_cond_formdata.setColumn(0, "orddeptcd", orddeptcd);
  454. ds_cond_formdata.setColumn(0, "ioflag", ioflag); //인증서 관련 처리 필요
  455. ds_cond_formdata.setColumn(0, "topyn", "N");
  456. ds_cond_formdata.setColumn(0, "paminfo", sParam);
  457. objArg.ds_cond_formdata = ds_cond_formdata;
  458. lf_loadSMMMR01100(false, objArg, path);
  459. }
  460. }
  461. function cf_TRMMR05402(sSvcId, nErrorCode, sErrorMsg) {
  462. arErrorCode.push(sSvcId, nErrorCode);
  463. }
  464. /**
  465. * @desc : 기록목록을 가져온다
  466. * @id :
  467. * @event : DOMActivate
  468. * @return : void
  469. * @authur : 박종훈
  470. */
  471. function fGetRecList()
  472. {
  473. if (utlf_isNull(ds_paminfo.getColumn(0,"pid")))
  474. {
  475. sysf_messageBox("기록에 필요한 환자 원무정보가", "I004");
  476. return;
  477. }
  478. ds_send_reqmedireclist.setColumn(0,"formrecdeptcd", "ALL");
  479. ds_send_reqmedireclist.setColumn(0,"chosflag", "A");
  480. ds_send_reqmedireclist.setColumn(0,"pid", ds_paminfo.getColumn(0,"pid"));
  481. if (ds_paminfo.getColumn(0,"ioflag") == "O")
  482. {
  483. ds_send_reqmedireclist.setColumn(0,"orddd", ds_paminfo.getColumn(0,"orddd"));
  484. }
  485. else
  486. {
  487. ds_send_reqmedireclist.setColumn(0,"orddd", ds_paminfo.getColumn(0,"indd"));
  488. }
  489. ds_send_reqmedireclist.setColumn(0,"cretno", ds_paminfo.getColumn(0,"cretno"));
  490. ds_send_reqmedireclist.setColumn(0,"orddeptcd", ds_paminfo.getColumn(0,"orddeptcd"));
  491. ds_send_reqmedireclist.setColumn(0,"recfromdt", ds_init_reqmedireclist.getColumn(0,"recfromdt"));
  492. ds_send_reqmedireclist.setColumn(0,"rectodt", ds_init_reqmedireclist.getColumn(0,"rectodt"));
  493. var tmpformcd = ds_init.getColumn(0,"formcd");
  494. if (utlf_isNull(tmpformcd))
  495. {
  496. tmpformcd = "-";
  497. }
  498. dsf_makeValue(ds_send_reqmedireclist,"formcd", "string", tmpformcd);
  499. dsf_makeValue(ds_send_reqmedireclist,"deptrecyn", "string", "Y");
  500. dsf_setTypeFormat(ds_send_reqmedireclist, "cretno:INT");
  501. var oParam = {};
  502. oParam.id = "TRMMR00101";
  503. oParam.service = "medirecapp.ComnMediRec";
  504. oParam.method = "reqGetFormRecMastList";
  505. oParam.inds = "req=ds_send_reqmedireclist";
  506. oParam.outds = "ds_mainlist_medireclist=medireclist ds_mainlist_visitdept=visitdept";
  507. oParam.async = false;
  508. oParam.callback = "cf_TRMMR00101";
  509. tranf_submit(oParam);
  510. if(arErrorCode.pop("TRMMR00101") > -1)
  511. {
  512. //예진기록만 복사하여 보여준다
  513. ds_mainlist_medireclist.filter("foctsnwyn == 'Y'");
  514. ds_foctsnwlist_medireclist.copyData(ds_mainlist_medireclist, true);
  515. ds_mainlist_medireclist.filter("");
  516. }
  517. }
  518. function cf_TRMMR00101(sSvcId, nErrorCode, sErrorMsg) {
  519. arErrorCode.push(sSvcId, nErrorCode);
  520. }
  521. /**
  522. * @desc : 기록내용을 가져온다
  523. * @id :
  524. * @event : DOMActivate
  525. * @return : void
  526. * @authur : 박종훈
  527. */
  528. function fShowMediRecCnt(formrecseq)
  529. {
  530. if (utlf_isNull(ds_paminfo.getColumn(0,"pid")))
  531. {
  532. return;
  533. }
  534. var cond = new COMN_CONT_RECCNTS();
  535. //var instance = document.models(0).instances(0);
  536. //var nodeReclist = instance.selectNodes("/root/main/foctsnwlist/medireclist");
  537. var nodeReclistlength = ds_foctsnwlist_medireclist.rowcount;
  538. cond.pid = ds_paminfo.getColumn(0,"pid");
  539. cond.formrecdeptcd = ds_send_reqmedireclist.getColumn(0,"formrecdeptcd");
  540. cond.chosflag = ds_send_reqmedireclist.getColumn(0,"chosflag");
  541. cond.reclistlength = nodeReclistlength;
  542. if (utlf_isNull(formrecseq))
  543. {
  544. cond.recfromdt = ds_init_reqmedireclist.getColumn(0,"recfromdt");
  545. cond.rectodt = ds_init_reqmedireclist.getColumn(0,"rectodt");
  546. }
  547. else
  548. {
  549. cond.recfromdt = "";
  550. cond.rectodt = "";
  551. }
  552. cond.formrecseq = formrecseq;
  553. grp_base.ivw_reccnts.fRefMediRecCnts(cond);
  554. //2009-07-04 오후 11:40:30 강지훈 수정 : 1. 하드코드 9905에 등록된 서식만 출력버튼이 활성화 된다. 2. 기록저장부서와 같은부서일경우만 출력버튼 활성화
  555. ds_hidden_formhardcd.clear();
  556. //mmbfGetHardCodeInfo("/root/send/formhrdcd", "/root/hidden/formhardcd", 9905);
  557. lf_getHardCDList("N", 9905, null, ds_hidden_formhardcd);
  558. var formcd = ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formcd");
  559. var formrecdeptcd = ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formrecdeptcd")
  560. var orddeptcd = ds_paminfo.getColumn(0,"orddeptcd");
  561. var iexNodeCnt = ds_hidden_formhardcd.getCaseCount("hardcd == '" + formcd + "']");
  562. if(iexNodeCnt > 0) {
  563. if(orddeptcd == formrecdeptcd){
  564. grp_base.btn_print.visible = true;
  565. }
  566. else{
  567. grp_base.btn_print.visible = false;
  568. }
  569. }else{
  570. grp_base.btn_print.visible = false;
  571. }
  572. if (utlf_isNull(formcd)) {
  573. setToggleButton(grp_base.switch1.case_rec.grd_reclist, true);
  574. }
  575. }
  576. /**
  577. * @desc : 검색 날짜기간
  578. * @id :
  579. * @event : DOMActivate
  580. * @return : void
  581. * @authur : 박종훈
  582. */
  583. function fAddDateReq(diffFlag)
  584. {
  585. var frdd = ds_init_reqmedireclist.getColumn(0,"recfromdt");
  586. var todd = ds_init_reqmedireclist.getColumn(0,"rectodt");
  587. var srcdd = new Date();
  588. var destdd = new Date();
  589. var diffdt;
  590. if (diffFlag == "next")
  591. {
  592. srcdd = todd.toDate();
  593. srcdd = srcdd.getAddDate(1, "D");
  594. frdd = srcdd.getDateFormat();
  595. diffdt = parseInt(ds_init_reqmedireclist.getColumn(0,"diffdt")) * 1;
  596. destdd = srcdd.getAddDate(diffdt, "M");
  597. todd = destdd.getDateFormat();
  598. }
  599. else if (diffFlag == "back")
  600. {
  601. srcdd = frdd.toDate();
  602. srcdd = srcdd.getAddDate(-1, "D");
  603. todd = srcdd.getDateFormat();
  604. diffdt = parseInt(ds_init_reqmedireclist.getColumn(0,"diffdt")) * -1;
  605. destdd = srcdd.getAddDate(diffdt, "M");
  606. frdd = destdd.getDateFormat();
  607. }
  608. else if (diffFlag == "today")
  609. {
  610. todd = utlf_getCurrentDate();
  611. var today = new Date();
  612. var frday = new Date();
  613. var diffdt = parseInt(ds_init_reqmedireclist.getColumn(0,"diffdt")) * -1;
  614. frday = today.getAddDate(diffdt , "M");
  615. frdd = frday.getDateFormat();
  616. }
  617. else
  618. {
  619. var today = todd.toDate();
  620. var frday = new Date();
  621. var diffdt = parseInt(ds_init_reqmedireclist.getColumn(0,"diffdt")) * -1;
  622. frday = today.getAddDate(diffdt , "M");
  623. frdd = frday.getDateFormat();
  624. }
  625. ds_init_reqmedireclist.setColumn(0,"recfromdt", frdd);
  626. ds_init_reqmedireclist.setColumn(0,"rectodt", todd);
  627. }
  628. /**
  629. * @desc : 기록수정
  630. * @id :
  631. * @event :
  632. * @return : void
  633. * @authur : 박종훈
  634. */
  635. function fRecModify()
  636. {
  637. var recseq = ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formrecseq");
  638. //grp_base.ivw_loader.fLoadRecForm(recseq, false);
  639. //서식로드시 TOP정보 조회 여부 셋팅(N일경우 Top참조 안함)
  640. //grp_base.ivw_loader.fLoadNewForm(gFormcd, false);
  641. frmf_setParameter("SSMMR01100_recsavechk", "Y");
  642. var path = grp_base;
  643. var objArg = new Object();
  644. var vFormKind = "rec";
  645. var vBtn = true;
  646. var orddd = "";
  647. var ioflag = ds_paminfo.getColumn(ds_paminfo.rowposition, "ioflag");
  648. if(ioflag == "I" || ioflag == "D" || ioflag == "E" ){ // 입원
  649. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"indd");
  650. if(utlf_isNull(orddd))
  651. {
  652. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  653. }
  654. }else{
  655. orddd = ds_paminfo.getColumn(ds_paminfo.rowposition,"orddd");
  656. }
  657. var sParam = "";
  658. var tmpIoflag = ioflag;
  659. if(tmpIoflag == "O" && tmpIoflag=="S"){
  660. tmpIoflag = "O";
  661. }else if( tmpIoflag == "I" && tmpIoflag=="D" ){
  662. tmpIoflag = "I";
  663. }
  664. var nInstcd = sysf_getUserInfo("dutplceinstcd");
  665. var nPid = ds_paminfo.getColumn(0, "pid");
  666. var nCretno = ds_paminfo.getColumn(0, "cretno");
  667. var nDschdd = dsf_getColumnNullToEmpty(ds_paminfo, 0, "dschdd");
  668. sParam = tmpIoflag + "▦" +
  669. nPid + "▦" +
  670. orddd + "▦" +
  671. nCretno + "▦" +
  672. nInstcd + "▦" +
  673. nDschdd;
  674. ds_cond_formdata.clearData();
  675. ds_cond_formdata.addRow();
  676. ds_cond_formdata.setColumn(0, "formcd", recseq); // 서식목록 - linkcd, 기록목록 - formrecseq 컬럼값.
  677. ds_cond_formdata.setColumn(0, "formkind", vFormKind); // 서식목록 탭 - new , 기록목록 - rec
  678. ds_cond_formdata.setColumn(0, "btnvisible", vBtn);
  679. ds_cond_formdata.setColumn(0, "pid", ds_paminfo.getColumn(0, "pid"));
  680. ds_cond_formdata.setColumn(0, "orddd", orddd);
  681. ds_cond_formdata.setColumn(0, "cretno", ds_paminfo.getColumn(0, "cretno"));
  682. ds_cond_formdata.setColumn(0, "orddeptcd", ds_paminfo.getColumn(0, "orddeptcd"));
  683. ds_cond_formdata.setColumn(0, "ioflag", ds_paminfo.getColumn(0, "ioflag"));
  684. ds_cond_formdata.setColumn(0, "topyn", "N");
  685. ds_cond_formdata.setColumn(0, "paminfo", sParam);
  686. objArg.ds_cond_formdata = ds_cond_formdata;
  687. lf_loadSMMMR01100(false, objArg, path);
  688. grp_base.ivw_loader.visible = true;
  689. grp_base.ivw_reccnts.visible = false;
  690. if (ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formcd") == "1000007334") { //진정회복기록 (내시경, 건진)일때 동일부서내 사용자 임시저장 활성화
  691. setEnableButton(grp_base.switch1.case_rec.grd_reclist);
  692. }
  693. }
  694. /**
  695. * @desc : 기록목록탭 클릭시 이벤트
  696. * @id :
  697. * @event :
  698. * @return : void
  699. * @authur : 박종훈
  700. */
  701. function fReclistClick()
  702. {
  703. grp_base.switch1.tabindex = 1;
  704. grp_base.ivw_loader.visible = false;
  705. grp_base.ivw_reccnts.visible = true;
  706. grp_base.ivw_reccnts.fClear();
  707. grp_base.caption7.text = "기록내용";
  708. fGetRecList();
  709. //btn_formrecupdt.attribute("visibility") = "visible";
  710. }
  711. /**
  712. * @group :
  713. * @ver : 2009-06-25 오전 10:54:51
  714. * @by : 강지훈
  715. * @---------------------------------------------------
  716. * @type : function
  717. * @desc : 출력 버튼 이벤트
  718. * @param :
  719. * @return :
  720. * @---------------------------------------------------
  721. */
  722. function fClickPrtBtn()
  723. {
  724. var formcd = "";
  725. var signno = "";
  726. var prtparam = "";
  727. var formcd = ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formcd");
  728. var signno = ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"espiseq");
  729. if(utlf_isNull(formcd)){
  730. sysf_messageBox("선택된 서식이 ", "I004");
  731. return;
  732. }
  733. if(utlf_isNull(signno)){
  734. sysf_messageBox("인증저장된 기록만 출력이 ", "I006");
  735. return;
  736. }
  737. prtparam += "E▦" + signno + "▦" + formcd + "▩";
  738. frmf_setParameter("SPMRI02400_prtrecinfo", prtparam);
  739. frmf_modal("SPMRI02400","SPMRI02400", null, null, null, null, null, null, null, null, null, null, "M");
  740. }
  741. /**
  742. * @ver : 2010-01-04 오후 3:39:20
  743. * @by : dhkim
  744. * @desc: 재활의학과 사용자의 경우 care plan버튼 활성화
  745. */
  746. function fVisibleCarePlan(){
  747. var dutplcecd = sysf_getUserInfo("dutplcecd");
  748. //2010.01.25 dhkim - 재활의학과 코드 변경 (2220000000 -> 2220400000)
  749. // if(dutplcecd == "2220000000"){//재활의학과
  750. if(dutplcecd == "2220400000"){//재활의학팀
  751. grp_base.btn_careplan.visible = true;
  752. }else{
  753. grp_base.btn_careplan.visible = false;
  754. }
  755. }
  756. /**
  757. * @ver : 2010-01-04 오후 3:39:20
  758. * @by : dhkim
  759. * @desc: care plan 화면 팝업
  760. */
  761. function fPopCarePlan(){
  762. var isSelectedPat = ds_init.getColumn(0,"patinfo");
  763. if(utlf_isNull(isSelectedPat)){
  764. sysf_messageBox("환자를 선택하셔야 다직종간 Care plan을 조회하실 수 있습니다.", "E");
  765. return;
  766. }else{
  767. var pid = ds_init_careplaninfo.getColumn(0,"pid");
  768. if(utlf_isNull(pid)){
  769. var orddd = ds_paminfo.getColumn(0,"indd");
  770. if(utlf_isNull(orddd)){
  771. orddd = ds_paminfo.getColumn(0,"orddd");
  772. }
  773. //careplaninfo노드에 값이 없는경우 새로 세팅
  774. ds_init_careplaninfo.clearData();
  775. ds_init_careplaninfo.addRow();
  776. ds_init_careplaninfo.setColumn(0,"pid",ds_paminfo.getColumn(0,"pid"));
  777. ds_init_careplaninfo.setColumn(0,"orddd",orddd);
  778. ds_init_careplaninfo.setColumn(0,"cretno",ds_paminfo.getColumn(0,"cretno"));
  779. ds_init_careplaninfo.setColumn(0,"ioflag",ds_paminfo.getColumn(0,"ioflag"));
  780. ds_init_careplaninfo.setColumn(0,"patnm",ds_paminfo.getColumn(0,"hngnm"));
  781. }
  782. pid = ds_init_careplaninfo.getColumn(0,"pid");
  783. orddd = ds_init_careplaninfo.getColumn(0,"orddd");
  784. var cretno = ds_init_careplaninfo.getColumn(0,"cretno");
  785. var patnm = ds_init_careplaninfo.getColumn(0,"patnm");
  786. var ioflag = ds_init_careplaninfo.getColumn(0,"ioflag");
  787. if(!utlf_isNull(pid) && !utlf_isNull(orddd) && !utlf_isNull(cretno)){
  788. frmf_setParameter("SMMRJ00100_pid", pid);
  789. frmf_setParameter("SMMRJ00100_orddd", orddd);
  790. frmf_setParameter("SMMRJ00100_cretno", cretno);
  791. frmf_setParameter("SMMRJ00100_hngnm", patnm);
  792. frmf_setParameter("SMMRJ00100_ioflag", ioflag);
  793. frmf_modal("SMMRJ00100", "SMMRJ00100", null, null, 1, 0, 0, null, null, null, null, null, "M");
  794. }
  795. }
  796. }
  797. /**
  798. * 선택한 기록이 [진정/회복 기록 (Sedation/Postsedation Record)-내시경,건진] 인 경우 최초작성자와 동일부서의 사용자만 임시저장 가능하게
  799. */
  800. function setEnableButton(o) {
  801. var objParam = [{col:"formcd", type:"string", size:256, val:"1000007334"},
  802. {col:"formrecseq", type:"string", size:256, val:ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"formrecseq")},
  803. {col:"pid", type:"string", size:256, val:ds_foctsnwlist_medireclist.getColumn(ds_foctsnwlist_medireclist.rowposition,"pid")},
  804. {col:"dutplcecd", type:"string", size:256, val:sysf_getUserInfo("dutplcecd")}]
  805. dsf_createDsRow("ds_send_editable",objParam,false);
  806. var oParam = {};
  807. oParam.id = "TRMMR01304";
  808. oParam.service = "medirecapp.RecIf";
  809. oParam.method = "reqGetEditableUserYn";
  810. oParam.inds = "req=ds_send_editable";
  811. oParam.outds = "ds_editableInfo=editableInfo";
  812. oParam.async = false;
  813. oParam.callback = "cf_TRMMR01304";
  814. tranf_submit(oParam);
  815. if (arErrorCode.pop("TRMMR01304") > -1) {
  816. if (ds_editableInfo.getColumn(0,"editableyn") == "Y") {
  817. ivw_loader.btn_tmpsave.disabled = false; //
  818. } else {
  819. ivw_loader.btn_tmpsave.disabled = true; //
  820. }
  821. }
  822. }
  823. function cf_TRMMR01304(sSvcId, nErrorCode, sErrorMsg) {
  824. arErrorCode.push(sSvcId, nErrorCode);
  825. }
  826. ]]></Script>