SMMRI01800.xjs 49 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/***************************************************************************************
  3. * System Name : HIT
  4. * Job Name :
  5. * File Name : SMMRI01800.xjs
  6. * Creator :
  7. * Make Date : 2014-10-15
  8. *
  9. * Description :
  10. *---------------------------------------------------------------------------------------
  11. * Modify Date Modifier Modify Description
  12. *---------------------------------------------------------------------------------------
  13. * 2014-10-15 HIT Converting Program(TF->XP)
  14. *
  15. *---------------------------------------------------------------------------------------
  16. ****************************************************************************************/
  17. /****************************************************************************************
  18. * Function : dsf_createDs
  19. * Description : 공통코드를 가져온다.
  20. * Argument : 01.sKey : 코드아이디
  21. * : 02.sValue : 코드명
  22. * return type : String - dataset name
  23. * Creator : 임준호
  24. ****************************************************************************************/
  25. var sORDERBY = "desc";
  26. var gTimerID;
  27. var gIntervalTime = 500;
  28. var gTimeCnt;
  29. /**
  30. * @desc 서식명 조회
  31. */
  32. function fReqGetFormList(){
  33. var oParam = {};
  34. oParam.id = "TRMRI01804";
  35. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  36. oParam.method = "reqGetUnPrepFormCD";
  37. //oParam.inds = "req=ds_";
  38. oParam.outds = "ds_init_cmb_formcd=unprepformcd";
  39. oParam.async = false;
  40. oParam.callback = "cf_TRMRI01804";
  41. tranf_submit(oParam);
  42. // if(submit("TRMRI01804")){ //서식명콤보 조회
  43. // addComboItem("cmb_formcd","전체","-");
  44. // }
  45. }
  46. /**
  47. * @desc 미비항목코드 조회
  48. */
  49. function fReqGetFormItemList(formcd){
  50. ds_send_reqdata.clearData();
  51. ds_send_reqdata.addColumn("formcd", "string");
  52. var nRow = ds_send_reqdata.addRow();
  53. ds_send_reqdata.setColumn(nRow, "formcd", formcd);
  54. var oParam = {};
  55. oParam.id = "TRMRI01805";
  56. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  57. oParam.method = "reqGetUnPrepItemCD";
  58. oParam.inds = "req=ds_send_reqdata";
  59. oParam.outds = "ds_init_cmb_itemcd=itemcd";
  60. oParam.async = false;
  61. oParam.callback = "cf_TRMRI01805";
  62. tranf_submit(oParam);
  63. }
  64. /**
  65. * @desc 미비의사 조회
  66. * @param srchflag 검색구분(id:아이디, nm:명)
  67. * unprepdeptcd 미비진료과
  68. * unprepdr 미비의사(srch?id:아이디, nm:명)
  69. * stnddd 기준일자
  70. * deptengabbr 부서약어명
  71. */
  72. function fReqGetUnPrepDrList(srchflag, unprepdeptcd, unprepdr, stnddd, deptengabbr, grupflag){
  73. ds_send_reqdata.clearData();
  74. ds_send_reqdata.addColumn("srchflag", "string");
  75. ds_send_reqdata.addColumn("unprepdeptcd", "string");
  76. ds_send_reqdata.addColumn("unprepdr", "string");
  77. ds_send_reqdata.addColumn("deptengabbr", "string");
  78. ds_send_reqdata.addColumn("stnddd", "string");
  79. ds_send_reqdata.addColumn("grupflag", "string");
  80. var nRow = ds_send_reqdata.addRow();
  81. ds_send_reqdata.setColumn(nRow, "srchflag" , srchflag);
  82. ds_send_reqdata.setColumn(nRow, "unprepdeptcd", unprepdeptcd);
  83. ds_send_reqdata.setColumn(nRow, "unprepdr" , unprepdr);
  84. ds_send_reqdata.setColumn(nRow, "deptengabbr" , deptengabbr);
  85. ds_send_reqdata.setColumn(nRow, "stnddd" , stnddd);
  86. ds_send_reqdata.setColumn(nRow, "grupflag" , grupflag);
  87. var oParam = {};
  88. oParam.id = "TRMRI02604";
  89. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  90. oParam.method = "reqGetUnPrepDrList";
  91. oParam.inds = "req=ds_send_reqdata";
  92. oParam.outds = "ds_temp_unprepdrinfo=unprepdrlist";
  93. oParam.async = false;
  94. oParam.callback = "cf_TRMRI02604";
  95. tranf_submit(oParam);
  96. }
  97. /**
  98. * @desc 조회기준 정보 CSV 형태로 생성
  99. */
  100. function doSrchCondCSV(nodeList, sColSep, sRowSep){
  101. if( nodeList.length == 0 ){
  102. return;
  103. }
  104. var rCSV = "";
  105. var childNodeList = nodeList.item(0).childNodes;
  106. var childNodeCnt = childNodeList.length;
  107. if( childNodeCnt == 0 ){
  108. return;
  109. }
  110. var i, j;
  111. for( i = 0; i < childNodeCnt - 1; i++) {
  112. rCSV += childNodeList.item(i).nodeName + sColSep;
  113. }
  114. rCSV += childNodeList.item(i).nodeName + sRowSep;
  115. var node;
  116. while( node = nodeList.nextNode() ) {
  117. childNodeList = node.childNodes;
  118. for( i = 0; i < childNodeCnt - 1; i++) {
  119. rCSV += childNodeList.item(i).text + sColSep;
  120. }
  121. rCSV += childNodeList.item(i).text + sRowSep;
  122. }
  123. return rCSV;
  124. }
  125. /**
  126. * @desc 미비의사확인 표시
  127. * SMMRI01800_medirecinfo 구성 상태^등록번호^진료일자^생성번호^서식코드^서식일련번호
  128. * status + "^" + pid + "^" + orddd + "^" + cretno + "^" + formcd + "^" + formrecdd + "^" + formrecseq + "^" + workflag;
  129. */
  130. function fDispUnPrepDrCnfm(){
  131. sysf_trace("***** fDispUnPrepDrCnfm() 서식로더 MMR01100.xjs 에서 호출하므로 해당화면에서 테스트 필요!!!!!!! ******");
  132. var cmplcnt = ds_main_cnfmcmplcnt.getColumn(0, "cnfmcmplcnt");
  133. var posinstcd = sysf_getUserInfo("posinstcd");
  134. var dutplcecd = sysf_getUserInfo("dutplcecd");
  135. var posuserid = sysf_getUserId();
  136. cmplcnt++;
  137. ds_main_cnfmcmplcnt.setColumn(0, "cnfmcmplcnt", cmplcnt);
  138. var mainobj = frmf_getMainViewer();
  139. var medirecinfo = mainobj.frmf_getParameter("SMMRI01800_medirecinfo");
  140. if(!utlf_isNull(medirecinfo)){
  141. var unprepinfo = medirecinfo.split("^");
  142. var status = unprepinfo[0];
  143. var pid = unprepinfo[1];
  144. var orddd = unprepinfo[2];
  145. var cretno = unprepinfo[3];
  146. var formcd = unprepinfo[4];
  147. var formrecdd = unprepinfo[5];
  148. var formrecseq = unprepinfo[6];
  149. var workflag = unprepinfo[7]; // usg : 인증저장, uss : Staff-Sign
  150. var formrecdeptcd = unprepinfo[8]; //진료기록 작성부서코드
  151. if(utlf_isNull(formrecdeptcd)){
  152. formrecdeptcd = dutplcecd;
  153. }
  154. var sIdx = grd_unpreplist.getBindCellIndex("body", "unprepdrnm");
  155. var eIdx = grd_unpreplist.getBindCellIndex("body", "drcnfmdt");
  156. for( sIdx; sIdx <= eIdx; sIdx++){
  157. grd_medirec.setCellProperty("body", sIdx, "color" ,"EXPR(fSetRowStyle(0,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,"+pid+","+orddd+","+cretno+","+formcd+","+formrecdd+","+formrecseq+","+workflag+","+formrecdeptcd+"))");//&quot;
  158. grd_medirec.setCellProperty("body", sIdx, "color2" ,"EXPR(fSetRowStyle(0,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,"+pid+","+orddd+","+cretno+","+formcd+","+formrecdd+","+formrecseq+","+workflag+","+formrecdeptcd+"))");//&quot;
  159. grd_medirec.setCellProperty("body", sIdx, "font" ,"EXPR(fSetRowStyle(1,pid,indd,cretno,srcformcd,formrecdd,formrecseq,unprepdrid,unprepitemcd,orddeptcd,"+pid+","+orddd+","+cretno+","+formcd+","+formrecdd+","+formrecseq+","+workflag+","+formrecdeptcd+"))");//&quot;
  160. }
  161. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  162. var trgtpid = ds_grd_unpreplist.getColumn(i, "pid");
  163. var trgtorddd = ds_grd_unpreplist.getColumn(i, "indd");
  164. var trgtcretno = ds_grd_unpreplist.getColumn(i, "cretno");
  165. var trgtformcd = ds_grd_unpreplist.getColumn(i, "srcformcd");
  166. var trgtformrecdd = ds_grd_unpreplist.getColumn(i, "formrecdd");
  167. var trgtformrecseq = ds_grd_unpreplist.getColumn(i, "formrecseq");
  168. var trgtunprepdrid = ds_grd_unpreplist.getColumn(i, "unprepdrid");
  169. var trgtunprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  170. var trgtorddeptcd = ds_grd_unpreplist.getColumn(i, "orddeptcd");
  171. //Staff Sign처리되는 건은 미비상태를 의사확인으로 변경
  172. //2008. 12. 26 오지훈
  173. if((workflag=="usg") && !(trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  174. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote인 경우에는 일자가 조회조건에서 빠짐
  175. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  176. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  177. }
  178. }else{
  179. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq && formrecdeptcd == trgtorddeptcd){
  180. //서울성모병원 수술기록지의 경우 인증저장시 미비상태를 '완료'로 처리한다.(2010.02.10 이남익)
  181. if(trgtformcd == "0000000676"){
  182. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  183. } else {
  184. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  185. }
  186. ds_grd_unpreplist.setColumn(i, "formrecdd", formrecdd);
  187. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd && formrecdd == trgtformrecdd ){
  188. if(trgtformcd == "0000000676"){
  189. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  190. } else {
  191. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  192. }
  193. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  194. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  195. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  196. if(trgtformcd == "0000001592"){
  197. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "완료");
  198. } else {
  199. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  200. }
  201. }
  202. }
  203. }
  204. } else if((workflag=="usg") && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  205. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  206. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  207. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  208. }
  209. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  210. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  211. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  212. }
  213. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  214. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  215. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  216. if(posuserid == trgtunprepdrid){
  217. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  218. }
  219. }
  220. }
  221. }else if(workflag=="uss" && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  222. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote 인 경우에는 일자가 조회조건에서 빠짐
  223. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  224. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  225. }
  226. }else{
  227. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  228. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  229. ds_grd_unpreplist.setColumn(i, "formrecdd", formrecdd);
  230. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  231. ds_grd_unpreplist.setColumn(i, "unprepitemnm", "의사확인");
  232. }
  233. }
  234. }
  235. }
  236. ds_grd_unpreplist.rowposition = -1;
  237. //grd_unpreplist.select(i, grd_unpreplist.col) = false;
  238. }
  239. }
  240. function fSetRowStyle(Flag, trgtpid, trgtorddd, trgtcretno, trgtformcd, trgtformrecdd, trgtformrecseq, trgtunprepdrid, trgtunprepitemcd, trgtorddeptcd, pid, orddd, cretno, formcd, formrecdd, formrecseq, workflag, formrecdeptcd)
  241. {
  242. var color = "default";
  243. var font;
  244. // trace(" ****** 1: " + Flag + " ****** 2: " + trgtpid + " ****** 3: " + trgtorddd + " ****** 4: " + trgtcretno + " ****** 5: " + trgtformcd + " ****** 6: " + trgtformrecdd + " ****** 7: " + trgtformrecseq + " ****** 8: " + trgtunprepdrid + " ****** 9: " + trgtunprepitemcd + " ****** 10: " + trgtorddeptcd);
  245. // trace(" ****** 11: " + pid + " ****** 12: " + orddd + " ****** 13: " + cretno + " ****** 14: " + formcd + " ****** 15: " + formrecdd + " ****** 16: " + formrecseq + " ****** 17: " + workflag + " ****** 18: " + formrecdeptcd);
  246. if((workflag=="usg") && !(trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  247. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote인 경우에는 일자가 조회조건에서 빠짐
  248. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  249. color = "#0000ff";
  250. font = ",bold";
  251. }
  252. }else{
  253. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq && formrecdeptcd == trgtorddeptcd){
  254. //서울성모병원 수술기록지의 경우 인증저장시 미비상태를 '완료'로 처리한다.(2010.02.10 이남익)
  255. color = "#0000ff";
  256. font = ",bold";
  257. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd && formrecdd == trgtformrecdd ){
  258. color = "#0000ff";
  259. font = ",bold";
  260. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdeptcd == trgtorddeptcd){
  261. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  262. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  263. color = "#0000ff";
  264. font = ",bold";
  265. }
  266. }
  267. }
  268. } else if((workflag=="usg") && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  269. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  270. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  271. color = "#0000ff";
  272. font = ",bold";
  273. }
  274. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  275. if(trgtformcd == "0000000676" && posuserid == trgtunprepdrid){
  276. color = "#0000ff";
  277. font = ",bold";
  278. }
  279. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  280. //입퇴원요약지, Discharge Note에 대한 진료기록일자 변경시 처리
  281. if(trgtformcd == "0000000680" || trgtformcd == "0000001592"){
  282. if(posuserid == trgtunprepdrid){
  283. color = "#0000ff";
  284. font = ",bold";
  285. }
  286. }
  287. }
  288. }else if(workflag=="uss" && (trgtunprepitemcd == "000000002"||trgtunprepitemcd =="0000000057")){
  289. if(formcd == "0000000680" || formcd =="0000001592"){ //입퇴원요약지/DischargeNote 인 경우에는 일자가 조회조건에서 빠짐
  290. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd){
  291. color = "#0000ff";
  292. font = ",bold";
  293. }
  294. }else{
  295. if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecseq == trgtformrecseq){
  296. color = "#0000ff";
  297. font = ",bold";
  298. }else if(pid == trgtpid && orddd == trgtorddd && cretno == trgtcretno && formcd == trgtformcd && formrecdd == trgtformrecdd){
  299. color = "#0000ff";
  300. font = ",bold";
  301. }
  302. }
  303. }
  304. if( Flag == 0 )
  305. {
  306. return color;
  307. }
  308. else if ( Flag == 1 )
  309. {
  310. return "dotum,9" + font;
  311. }
  312. }
  313. /**
  314. * @desc 미비기록 load
  315. */
  316. function fLoadUnPrepRec(){
  317. var currow = ds_grd_unpreplist.rowposition;
  318. var pid = ds_grd_unpreplist.getColumn(currow, "pid");
  319. var indd = ds_grd_unpreplist.getColumn(currow, "indd");
  320. var cretno = ds_grd_unpreplist.getColumn(currow, "cretno");
  321. var ioflag = ds_grd_unpreplist.getColumn(currow, "indschflag");
  322. var formcd = ds_grd_unpreplist.getColumn(currow, "formcd");
  323. var srcformcd = ds_grd_unpreplist.getColumn(currow, "srcformcd");
  324. var orddeptcd = ds_grd_unpreplist.getColumn(currow, "indschdeptcd");
  325. var formrecdd = ds_grd_unpreplist.getColumn(currow, "formrecdd");
  326. var dschdd = ds_grd_unpreplist.getColumn(currow, "dschdd");
  327. var formrecseq = ds_grd_unpreplist.getColumn(currow, "formrecseq");
  328. var oprsrvno = ds_grd_unpreplist.getColumn(currow, "oprsrvno");
  329. var instcd = sysf_getUserInfo("dutplceinstcd");
  330. var unprepitemcd = ds_grd_unpreplist.getColumn(currow, "unprepitemcd");
  331. var unprepno = ds_grd_unpreplist.getColumn(currow, "unprepno");
  332. var opendd = ds_init_openday.getColumn("cdid"); // 병원별 오픈일
  333. opendd = utlf_isNull(opendd) ? "" : opendd;
  334. //2009-07-08 오후 8:03:43 강지훈 수정 : 20091002로 하드코딩된 내역을 공통코드 "M0546" 유형코드 "M0037" 로 관리
  335. var preopendd = opendd.toDate().getAddDate(-1, "D").getDateFormat();
  336. var preOpenMonth = preopendd.substring(4,6);
  337. var preOpenDay = preopendd.substring(6,8);
  338. //2010-01-04 이남익 수정 : 응급실미비 조회를 위한 ordertype 구분
  339. var ordtype = ds_grd_unpreplist.getColumn(currow, "ordtype");
  340. var dutplcecd = sysf_getUserInfo("dutplcecd"); //사용자부서
  341. if(formrecdd <= preopendd){
  342. sysf_messageBox(preOpenMonth+"월 "+preOpenDay+"일까지 발생된 미비기록은 구OCS프로그램과 종이에 작성", "I008");
  343. return;
  344. }
  345. //작성미비된 기록인 경우, formrecseq값을 삭제함
  346. if(formrecseq == -1){
  347. formrecseq = "";
  348. }
  349. if((srcformcd != "0000002022")){
  350. //기록지 번호가 없고, 미비항목코드가 인증미비인 경우 기록지 로딩을 하지 않는다.
  351. if(utlf_isNull(formrecseq)){
  352. if(unprepitemcd == "0000000057" || unprepitemcd == "000000002"){
  353. sysf_messageBox("기록지와 연동되지 않아 인증", "E001");
  354. return;
  355. }
  356. }
  357. }
  358. // 2009.07.01 이경희
  359. // 환자의 퇴원일이 해당 일자 이후인 경우. 즉 재원중인 환자는 dschdd를 현재일자로 넘긴다.
  360. var today = utlf_getCurrentDate();
  361. if(dschdd > today) {
  362. dschdd = today;
  363. }
  364. // 수술기록연동
  365. // 수술환자 parameter 구조 ioflag▦pid ▦opcnfmdd▦cretno ▦instcd ▦perfdeptcd▦perfdrid▦patflag ▦procflag▦oprsrvno▦ophistno▦srchdd
  366. // 외래/입원구분▦등록번호▦수술일자▦생성번호▦기관코드▦집도과 ▦집도의 ▦환자구분▦처리구분
  367. // 수술기록 || Brief OP Note || Post Op Note(New)-20130619 || 마취기록지-20131015 || 마취전 평가 및 협진서-20131025
  368. if(srcformcd == "0000000676" || srcformcd == "0000003169" || srcformcd == "1300014169" || srcformcd == "0000002022" || srcformcd == "0000000737"){
  369. /*
  370. if(oprsrvno == ""){
  371. messageBox("수술정보를 연결할 수", "I004");
  372. return;
  373. }
  374. */
  375. var param = "T" + "▦" + // ioflag
  376. pid + "▦" + // pid
  377. formrecdd + "▦" + // opcnfmdd
  378. cretno + "▦" + // cretno
  379. instcd + "▦" + // instcd
  380. "" + "▦" + // perfdeptcd
  381. "" + "▦" + // perfdrid
  382. "I" + "▦" + // patflag
  383. "F" + "▦" + // procflag
  384. oprsrvno + "▦" + // oprsrvno
  385. "" + "▦" + // ophistno
  386. dschdd; // srchdd
  387. /*
  388. // 수술기록인 경우 환자원무키 조회를 한다.
  389. // 조회 결과가 1건인 경우에는 기존 로직대로 진행
  390. // 2건인 경우에는 조회된 결과를 팝업으로 띄워 사용자가 어떤 수진을 열것인지 선택
  391. // 선택된 수진으로 열도록 설정.
  392. param = fGetEtcPatPamPrimaryKey(param);
  393. */
  394. //수술기록 이외의 기록연동
  395. }else{
  396. /*추가 2010.01.05 이남익 응급실 관련 추가 이전
  397. var param = "I" + "▦" +
  398. pid + "▦" +
  399. indd + "▦" +
  400. cretno + "▦" +
  401. instcd + "▦" +
  402. dschdd;
  403. */
  404. if(ordtype!="E"){
  405. ordtype = "I";
  406. }
  407. var param = ordtype + "▦" +
  408. pid + "▦" +
  409. indd + "▦" +
  410. cretno + "▦" +
  411. instcd + "▦" +
  412. dschdd;
  413. }
  414. // frmf_setParameter("condparam", param);
  415. //기록번호가 없는 경우, 작성미비가 아니면 연동불가
  416. sysf_setGlobalVariable("linked_formcd" , formcd , "emr");
  417. sysf_setGlobalVariable("linked_formrecseq", formrecseq , "emr");
  418. sysf_setGlobalVariable("linked_formrecdd" , formrecdd , "emr");
  419. // jw.choe 상단정보 셋팅 부분 차후 로직 변경 필요!
  420. // var moniterIndex = system.getMonitorIndex(system.cursorx, system.cursory); //모니터번호
  421. // var objScreenInfo = system.getScreenRect(moniterIndex);
  422. // var left = (objScreenInfo.right - objScreenInfo.left) / 2 - 176;
  423. // var top = (objScreenInfo.bottom - objScreenInfo.top) / 2 - 65;
  424. // frmf_modal("SPMMO08900", "SPMMO08900", null, false, moniterIndex, left, top, 0, 0, null, null, null, "P");
  425. // //modal("SPMMO08900", 1, 0, 0, "", "", "", "left:0; right:0; width:0; height:0; sysmenu:hidden; caption:hidden; min:hidden, max:hidden;");
  426. appf_initPatientInfo(param);
  427. var gmainwnd = frmf_getMainViewer();
  428. frmf_setParameter("SMMMO04100_ANSWCNT", "");
  429. /*
  430. gmainwnd.javascript.navigate("SMMMR00100");
  431. */
  432. // 2013.10.15 김영기 마취기록지 및 마취전 평가 및 협진서 추가를 위한 로직 수정
  433. //if((dutplcecd == "2090000000" || dutplcecd == "2090300000")){ //사용자부서가 마취통증의학과, 통증클리닉인 경우
  434. if(srcformcd == "0000002022" || srcformcd == "0000000737"){ //서식코드가 마취기록지 및 마취전 평가 일경우
  435. gmainwnd.frmf_openForm("SMMMR03700", null, null);//gmainwnd.javascript.navigate("SMMMR03700");
  436. //model.setValue("/root/temp2/unprepno", unprepno);
  437. frmf_setParameter("SMMMR03700_unprepno", unprepno);
  438. }else{
  439. gmainwnd.frmf_openForm("SMMMR00100", null, null);//gmainwnd.javascript.navigate("SMMMR00100");
  440. }
  441. }
  442. /**
  443. * @desc 부서콤보 조회
  444. */
  445. function fGetDeptCodeComboList(orddeptflag, stnddd){
  446. //fGetDeptCodeComboList("ds_send_reqdata", "/root/init/orddept", "A", utlf_getCurrentDate());
  447. dsf_deleteDs("ds_hidden_mmb_orddept");
  448. dsf_createDs("ds_hidden_mmb_orddept");
  449. ds_send_reqdata.clearData();
  450. ds_send_reqdata.addColumn("orddeptflag", "string");
  451. ds_send_reqdata.addColumn("drflag", "string");
  452. ds_send_reqdata.addColumn("stnddd", "string");
  453. var nRow = ds_send_reqdata.addRow();
  454. ds_send_reqdata.setColumn(nRow, "orddeptflag", orddeptflag);
  455. if(!utlf_isNull(stnddd)){
  456. ds_send_reqdata.setColumn(nRow, "stnddd", stnddd);
  457. }
  458. var oParam = {};
  459. oParam.id = "TRMMB04101";
  460. oParam.service = "prcpbaseapp.EnvInfoMngt";
  461. oParam.method = "reqGetDeptComboList";
  462. oParam.inds = "req=ds_send_reqdata";
  463. oParam.outds = "ds_hidden_mmb_orddept=dept";
  464. oParam.async = false;
  465. oParam.callback = "cf_TRMMB04101";
  466. tranf_submit(oParam);
  467. // if( arErrorCode.pop("TRMMB04101") > -1 ){
  468. // dsf_copyDs(ds_init_cmb_deptcd, ds_hidden_mmb_orddept);
  469. // dsf_deleteDs("ds_hidden_mmb_orddept");
  470. // }
  471. // var mmb_rsltref = "/root/hidden/mmb/orddept";
  472. // model.removeNode(mmb_rsltref);
  473. // model.makeNode(mmb_rsltref);
  474. //
  475. // model.removeNode(ref);
  476. // model.makeValue(ref + "/orddeptflag", orddeptflag);
  477. // if(stnddd != ""){
  478. // model.makeValue(ref + "/stnddd", stnddd);
  479. // }
  480. //
  481. // if(submit("TRMMB04101", "false", ref, mmb_rsltref)==true){
  482. // model.copyNode(rsltref, mmb_rsltref);
  483. // model.removeNode(mmb_rsltref);
  484. // }
  485. // model.refresh();
  486. }
  487. /**
  488. * @desc 미비항목코드 Count예외코드 조회
  489. */
  490. function reqGetUnPrepBaseExptCnt(){
  491. var oParam = {};
  492. oParam.id = "TRMRI01703";
  493. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  494. oParam.method = "reqGetUnPrepBaseExptCnt";
  495. //oParam.inds = "req=ds_";
  496. oParam.outds = "ds_main_unprepiteminfo=unprepiteminfo";
  497. oParam.async = false;
  498. oParam.callback = "cf_TRMRI01703";
  499. tranf_submit(oParam);
  500. }
  501. /**
  502. * @desc 다음달을 구하는 함수
  503. * @param yyyy : 년도
  504. * @param mm : 월
  505. * @return yyyymm : 년월
  506. */
  507. function addMonth(yyyymm){
  508. var yyyy = yyyymm.substring(0, 4);
  509. var mm = yyyymm.substring(4, 6);
  510. var bfmm;
  511. if(mm.substr(0,1) == "0"){ //10월 이전인 경우, 앞자리 0을 제거
  512. bfmm = mm.substr(1,1);
  513. bfmm++;
  514. }else{ //10월 이후인 경우
  515. bfmm = mm;
  516. bfmm++;
  517. }
  518. if(bfmm > 12){ // 1월 이전을 선택한 경우, 년도를 바꿈
  519. bfmm = "01";
  520. yyyy++;
  521. }else if(bfmm < 10){ //10월 이후인 경우에는 앞자리에 0을 붙임.
  522. bfmm = "0".concat(bfmm);
  523. }
  524. return "" + yyyy + "".concat(bfmm);
  525. }
  526. /**
  527. * @desc 달간격을 구하는 함수
  528. * @param startdd : 시작년월(YYYY-MM)
  529. * @param enddd : 종료년월(YYYY-MM)
  530. * @return monthcnt : 달간격
  531. */
  532. function getMonthInterval(startdd, enddd){
  533. var monthcnt = 0;
  534. while(startdd != enddd){
  535. startdd = addMonth(startdd);
  536. monthcnt++;
  537. }
  538. return monthcnt;
  539. }
  540. /**
  541. * @desc 숫자여부 판단
  542. */
  543. function isNumber(str) {
  544. str += ''; // 문자열로 변환
  545. str = str.replace(/^\s*|\s*$/g, ''); // 좌우 공백 제거
  546. if (utlf_isNull(str) || isNaN(str)){
  547. return "N";
  548. }
  549. return "Y";
  550. }
  551. /**
  552. * @desc 미비의사 조회
  553. */
  554. function fReqGetUnPrepDrSmplList(srchflag, srchdata){
  555. ds_send_reqdata.clearData();
  556. ds_send_reqdata.addColumn("srchflag", "string");
  557. ds_send_reqdata.addColumn("srchdata", "string");
  558. var nRow = ds_send_reqdata.addRow();
  559. ds_send_reqdata.setColumn(nRow, "srchflag", srchflag);
  560. ds_send_reqdata.setColumn(nRow, "srchdata", srchdata);
  561. var oParam = {};
  562. oParam.id = "TRMRI02901";
  563. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  564. oParam.method = "reqGetUnPrepDrSmplList";
  565. oParam.inds = "req=ds_send_reqdata";
  566. oParam.outds = "ds_temp_userinfo=usercombo";
  567. oParam.async = false;
  568. oParam.callback = "cf_TRMRI02901";
  569. tranf_submit(oParam);
  570. }
  571. /**
  572. * @desc 의사별미비리스트 조회
  573. * @param unprepsign staffsign구분(Y/N)
  574. */
  575. function fReqGetUnPrepDrClsList(unprepsign){
  576. sysf_trace("***** fReqGetUnPrepDrClsList(" + unprepsign + ") *****");
  577. // grd_unpreplist.allstyle("all", "color") = "";
  578. // grd_unpreplist.allstyle("all", "font-weight")= "";
  579. ds_main_cond.setColumn(0, "unprepsign", unprepsign);
  580. ds_main_unpreplistcnt.clearData();
  581. ds_grd_unpreplist.clearData();
  582. dsf_copyDs(ds_send_reqdata, ds_main_cond);
  583. ds_send_reqdata.addColumn("ioflag", "string");
  584. ds_send_reqdata.addColumn("unprepstat", "string");
  585. ds_send_reqdata.addColumn("jobposflag", "string");
  586. ds_send_reqdata.addColumn("pathist", "string");
  587. ds_send_reqdata.addColumn("pid", "string");
  588. ds_send_reqdata.addColumn("indd", "string");
  589. ds_send_reqdata.addColumn("cretno", "string");
  590. ds_send_reqdata.addColumn("detldeptcd", "string");
  591. ds_send_reqdata.addColumn("offset", "int");
  592. ds_send_reqdata.addColumn("pagesize", "int");
  593. ds_send_reqdata.setColumn(0, "offset", "0");
  594. ds_send_reqdata.setColumn(0, "pagesize", "1000");
  595. if( !utlf_isNull(ds_grd_unpreplist.getColumnInfo("unprepdeptnm")))
  596. ds_grd_unpreplist.updateColID("unprepdeptnm", "deptengabbr");
  597. ds_grd_unpreplist.enableevent = false;
  598. var oParam = {};
  599. oParam.id = "TRMRI01801";
  600. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  601. oParam.method = "reqGetUnPrepDrClsList";
  602. oParam.inds = "req=ds_send_reqdata";
  603. oParam.outds = "ds_grd_unpreplist=unpreplist ds_main_unpreplistcnt=unpreplistcnt";
  604. oParam.async = false;
  605. oParam.callback = "cf_TRMRI01801";
  606. tranf_submit(oParam);
  607. if(arErrorCode.pop("TRMRI01801") > -1){
  608. //sysf_trace(ds_grd_unpreplist.saveXML());
  609. //xp code add : col id change!!!execprcpuniqno
  610. // if( !utlf_isNull(ds_grd_unpreplist.getColumnInfo("deptengabbr")))
  611. // ds_grd_unpreplist.updateColID("deptengabbr", "unprepdeptnm");
  612. fFormCountofSrcForminfo();
  613. //fFormCountofFominfo();
  614. fDoMergeUnPrepDrClsList();
  615. }
  616. ds_grd_unpreplist.enableevent = true;
  617. //grd_unpreplist.rowstyle(1, "overchk", "background-color") = "#ff0000";
  618. // for (var i=1 ; i < grd_unpreplist.rows ; i++ )
  619. // {
  620. // var overchk = model.getValue("/root/main/unpreplist/unpreplist["+ i +"]/overchk");
  621. // grd_unpreplist.cellstyle("color", i,1) = "#000000";
  622. // if (overchk > 24 ) {
  623. // grd_unpreplist.cellstyle("color", i,1) = "#FF0000";
  624. // }
  625. //
  626. // }
  627. }
  628. /**
  629. * @desc 의사별미비리스트 조회 스크롤이벤트
  630. * @param unprepsign staffsign구분(Y/N)
  631. */
  632. function fSubmitOnScroll()
  633. {
  634. if( ds_grd_unpreplist.rowcount < 1000)
  635. return;
  636. if(grd_unpreplist.vscrollbar.max == grd_unpreplist.vscrollbar.pos)
  637. {
  638. fDoUnMergeUnPrepDrClsList();
  639. // end of scroll
  640. dsf_copyDs(ds_send_reqdata, ds_main_cond);
  641. dsf_createDs("ds_grd_unpreplist_temp");
  642. ds_send_reqdata.addColumn("ioflag", "string");
  643. ds_send_reqdata.addColumn("unprepstat", "string");
  644. ds_send_reqdata.addColumn("jobposflag", "string");
  645. ds_send_reqdata.addColumn("pathist", "string");
  646. ds_send_reqdata.addColumn("pid", "string");
  647. ds_send_reqdata.addColumn("indd", "string");
  648. ds_send_reqdata.addColumn("cretno", "string");
  649. ds_send_reqdata.addColumn("detldeptcd", "string");
  650. ds_send_reqdata.addColumn("offset", "int");
  651. ds_send_reqdata.addColumn("pagesize", "int");
  652. var nextpage = ds_grd_unpreplist.rowcount;//grd_unpreplist.rows-grd_unpreplist.fixedRows;
  653. sysf_trace("***** fSubmitOnScroll nextpage : " + nextpage + " *****");
  654. ds_send_reqdata.setColumn(0, "offset", nextpage);
  655. ds_send_reqdata.setColumn(0, "pagesize", "1000");
  656. var oParam = {};
  657. oParam.id = "TRMRI01801";
  658. oParam.service = "unprepmngtapp.ChrtUnprepMngt";
  659. oParam.method = "reqGetUnPrepDrClsList";
  660. oParam.inds = "req=ds_send_reqdata";
  661. oParam.outds = "ds_grd_unpreplist_temp=unpreplist ds_main_unpreplistcnt=unpreplistcnt";
  662. oParam.async = false;
  663. oParam.callback = "cf_TRMRI01801_append";
  664. tranf_submit(oParam);
  665. if(arErrorCode.pop("TRMRI01801") > -1){
  666. //sysf_trace(ds_grd_unpreplist.saveXML());
  667. //grd_unpreplist.dispatch("onmouseup"); // 스크롤바 처리를 위한 이벤트 발생
  668. fDoMergeUnPrepDrClsListScroll();
  669. fFormCountofSrcForminfo();
  670. }
  671. }
  672. }
  673. /**
  674. * @desc 의사별미비리스트 unmerge
  675. */
  676. function fDoUnMergeUnPrepDrClsList()
  677. {
  678. sysf_trace("***** fDoUnMergeUnPrepDrClsList() *****");
  679. grdf_clearSort(grd_unpreplist);//grd_unpreplist.sortClear();
  680. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid"), "suppress", 0);
  681. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm"), "suppress", 0);
  682. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd"), "suppress", 0);
  683. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 0);
  684. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 0);
  685. // for(var i = 1; i < grd_unpreplist.rows; i++)
  686. // {
  687. // if(grd_unpreplist.isMerge(i, grd_unpreplist.colRef("pid")))
  688. // {
  689. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("pid"));
  690. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("hngnm"));
  691. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("dschdd"));
  692. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("dschdeptnm"));
  693. // grd_unpreplist.unmergeByFree(i, grd_unpreplist.colRef("medispclnm"));
  694. // }
  695. // }
  696. // grd_unpreplist.refresh();
  697. // model.refresh();
  698. }
  699. /**
  700. * @desc 의사별미비리스트 Scroll merge
  701. */
  702. function fDoMergeUnPrepDrClsListScroll(){
  703. sysf_trace("***** fDoMergeUnPrepDrClsListScroll() *****");
  704. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid"), "suppress", 1);
  705. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm"), "suppress", 2);
  706. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd"), "suppress", 3);
  707. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 5);
  708. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 4);
  709. var reccnt = 0;
  710. var patcnt = 0;
  711. var icnt = 0;
  712. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  713. var unprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  714. var result = ds_main_unprepiteminfo.lookup("unprepitemcd", unprepitemcd, "unprepitemcd");
  715. if(utlf_isNull(result)){
  716. reccnt++;
  717. }
  718. if(i == 0){
  719. var orgpid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  720. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  721. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  722. patcnt++;
  723. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  724. continue;
  725. }
  726. var pid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  727. var dschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  728. var medispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  729. if(orgpid == pid && orgdschdd == dschdd && orgmedispclnm == medispclnm){
  730. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  731. }else{
  732. patcnt++;
  733. var orgpid = ds_grd_unpreplist.getColumn(i, "pid"); //pid
  734. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd"); //dschdd
  735. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm"); //medispclnm
  736. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  737. }
  738. }
  739. ds_main_cond.setColumn(0, "patcnt", patcnt);
  740. ds_main_cond.setColumn(0, "reccnt", reccnt);
  741. }
  742. /**
  743. * @desc 의사별미비리스트 merge
  744. */
  745. function fDoMergeUnPrepDrClsList()
  746. {
  747. sysf_trace("***** fDoMergeUnPrepDrClsList() *****");
  748. if( grd_unpreplist.getBindCellIndex("body", "pid") == -1 ) return;
  749. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "pid") , "suppress", 1);
  750. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "hngnm") , "suppress", 2);
  751. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdd") , "suppress", 3);
  752. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "dschdeptnm"), "suppress", 5);
  753. grd_unpreplist.setCellProperty("body", grd_unpreplist.getBindCellIndex("body", "medispclnm"), "suppress", 4);
  754. var reccnt = 0;
  755. var patcnt = 0;
  756. var icnt = 0;
  757. for(var i = 0; i < ds_grd_unpreplist.rowcount; i++){
  758. var unprepitemcd = ds_grd_unpreplist.getColumn(i, "unprepitemcd");
  759. var result = ds_main_unprepiteminfo.lookup("unprepitemcd", unprepitemcd, "unprepitemcd");
  760. if(utlf_isNull(result)){
  761. reccnt++;
  762. }
  763. if(i == 0){
  764. var orgpid = ds_grd_unpreplist.getColumn(i, "pid");
  765. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  766. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  767. patcnt++;
  768. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  769. continue;
  770. }
  771. var pid = ds_grd_unpreplist.getColumn(i, "pid");
  772. var dschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  773. var medispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  774. if(orgpid == pid && orgdschdd == dschdd && orgmedispclnm == medispclnm){
  775. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("pid"), i, grd_unpreplist.colRef("pid"));
  776. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("hngnm"), i, grd_unpreplist.colRef("hngnm"));
  777. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("dschdd"), i, grd_unpreplist.colRef("dschdd"));
  778. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("dschdeptnm"), i, grd_unpreplist.colRef("dschdeptnm"));
  779. // grd_unpreplist.mergeByFree(startrow, grd_unpreplist.colRef("medispclnm"), i, grd_unpreplist.colRef("medispclnm"));
  780. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  781. }else{
  782. patcnt++;
  783. var orgpid = ds_grd_unpreplist.getColumn(i, "pid");
  784. var orgdschdd = ds_grd_unpreplist.getColumn(i, "dschdd");
  785. var orgmedispclnm = ds_grd_unpreplist.getColumn(i, "medispclnm");
  786. ds_grd_unpreplist.setColumn(i, "suppress", patcnt);
  787. }
  788. //grd_unpreplist.rowStyle(i, "data", "background-color")= color;
  789. }
  790. ds_main_cond.setColumn(0, "patcnt", patcnt);
  791. ds_main_cond.setColumn(0, "reccnt", reccnt);
  792. }
  793. /**
  794. * @desc : 엑셀 저장
  795. */
  796. function fSaveExcel(){
  797. grdf_exportExcel(grd_unpreplist, "excel", "SheetName");
  798. // var fileName = window.fileDialog("save", ",", false, "excel", "xls", "Excel Files(*.xls)|*.xls|All Files (*.*)|*.*");
  799. // if (fileName != ""){
  800. // grd_unpreplist.saveExcel(fileName, "SheetName", true, true, "", "", "false");
  801. // }
  802. }
  803. /**
  804. * @desc : 의사별미비리스트 출력
  805. */
  806. function fPrntUnPrepInfo(){
  807. // model.setValue("/root/main/cond/unprepdeptnm", cmb_deptcd.label);
  808. // model.setValue("/root/main/cond/indschflagnm", rdo_inoutflag.label);
  809. // model.setValue("/root/main/cond/dateflagnm" , cmb_inoutddflag.label);
  810. // model.setValue("/root/main/cond/formnm" , cmb_formcd.label);
  811. // model.setValue("/root/main/cond/unprepitemnm", cmb_itemcd.label);
  812. var objDOM = rptf_createDOM(); // DOM 객체 설정
  813. rptf_setNodeListToDOM(objDOM, "/root/main/unpreplist/unpreplist", ds_grd_unpreplist); // 데이터셋 1
  814. //sysf_trace(objDOM.documentElement.source); // XML 내용출력
  815. var objParam = new Object();
  816. objParam.xml_data_XML1 = objDOM.documentElement.source; // 최상의노드 XML 스트링 추출
  817. var option = "open=1;save=1;directprint=0;print=1;zoom=0;";
  818. rptf_exeReportPreview30(["RPMRI01800"],[objParam], option);
  819. //exeReportPreview("RPMRI01800", "XMLSTR");
  820. }
  821. function fFormCountofSrcForminfo()
  822. {
  823. /* 0000000680 : 입퇴원요약기록지
  824. 0000000003 : 입원초진기록
  825. 0000000004 : 경과기록
  826. 0000003169 : Brief OP Note
  827. 0000001594 : Expired Note
  828. 0000000676 : 수술기록
  829. 0000001592 : Discharge Note
  830. 0800003416 : Post Op Note*/
  831. var arrItem = new Array("0000000680", "0000000003", "0000000004", "0000003169", "0000001594", "0000000676", "0000001592", "0800003416");
  832. for( i=0; i<arrItem.length;i++ )
  833. {
  834. // formcd 별 count 집계에서 환자당 formcd 별 count 집계로 수정 2010.02.25 성규훈
  835. var pidArray = Array(ds_grd_unpreplist.rowcount); //해당 form을 갖고있는 pid를 모아둘 배열
  836. var cnt = 0;
  837. for( j=0; j < ds_grd_unpreplist.rowcount; j++)
  838. {
  839. //var itemNode = nodelist.item(j);
  840. var pid = ds_grd_unpreplist.getColumn(j, "pid");
  841. var srcformcd = ds_grd_unpreplist.getColumn(j, "srcformcd");
  842. if(srcformcd == arrItem[i])
  843. {
  844. pidArray[j] = pid;
  845. }
  846. }
  847. pidArray.sort(); //pidArray 정렬
  848. for(j=0; j<pidArray.length; j++)
  849. {
  850. if(pidArray[j] != pidArray[j-1] && pidArray[j] != null)
  851. {
  852. cnt++
  853. }
  854. }
  855. ds_main_formcnt.setColumn(0, "cnt_"+arrItem[i], cnt);
  856. }
  857. }
  858. // jw.choe
  859. function fFormCountofFominfo()
  860. {
  861. var cnt = ds_grd_unpreplist.rowcount;
  862. var isFormcd="";
  863. var totFormInfo ="";
  864. var rowcnt = 0;
  865. var colcnt = 1;
  866. for (i=0; i<cnt; i++)
  867. {
  868. var formcd = ds_grd_unpreplist.getColumn(i, "formcd");
  869. var idx = isFormcd.indexOf(formcd);
  870. if ( idx == -1 )
  871. {
  872. var formnm = ds_grd_unpreplist.getColumn(i, "formnm");
  873. var subcnt = ds_grd_unpreplist.getCaseCount("formcd=='"+formcd+"'");
  874. var formcnt = "* " + formnm + " : " + subcnt;
  875. ds_main_formcnt_formcnt.setColumn(rowcnt, "col"+colcnt, formcnt);
  876. if ( colcnt == 5 )
  877. {
  878. rowcnt++;
  879. colcnt = 0;
  880. ds_main_formcnt_formcnt.addRow();
  881. }
  882. colcnt++;
  883. }
  884. isFormcd = isFormcd + formcd + "||";
  885. }
  886. //datagrid1.rebuild();
  887. }
  888. /*
  889. function fGetEtcPatPamPrimaryKey(condparam)
  890. {
  891. var condarray = condparam.split("▦");
  892. model.makeValue("/root/send/reqdata/pid" , condarray[1]); //등록번호
  893. model.makeValue("/root/send/reqdata/orddd" , condarray[2]); //수술일자
  894. model.makeValue("/root/send/reqdata/cretno" , condarray[3]); //생성번호
  895. model.makeValue("/root/send/reqdata/instcd" , condarray[4]); //기관코드
  896. model.makeValue("/root/send/reqdata/ioflag" , condarray[0]); //외래입원구분
  897. model.makeValue("/root/send/reqdata/orddeptcd", condarray[5]); //집도과
  898. model.makeValue("/root/send/reqdata/orddrid" , condarray[6]); //집도의
  899. model.makeValue("/root/send/reqdata/patflag" , condarray[7]); //환자구분 - dao sql에서 query구분자 설정
  900. model.makeValue("/root/send/reqdata/procflag" , condarray[8]); //처리구분(F:최초 조회, R:재조회)
  901. model.makeValue("/root/send/reqdata/oprsrvno" , condarray[9]); //수술예약번호
  902. model.makeValue("/root/send/reqdata/ophistno" , condarray[10]);//수술이력번호
  903. model.makeValue("/root/send/reqdata/srchdd" , condarray[11]);//조회일자
  904. if(submit("TRMRI01808") == true)
  905. {
  906. var param = "";
  907. var PamKeyList = findNodeset(model, "/root/main/pamkeyinfo/pamprimekey");
  908. if(PamKeyList.length < 1){
  909. model.makeValue("/root/send/reqdata/pid" , condarray[1]); //등록번호
  910. model.makeValue("/root/send/reqdata/orddd" , condarray[2]); //수술일자
  911. model.makeValue("/root/send/reqdata/cretno" , condarray[3]); //생성번호
  912. model.makeValue("/root/send/reqdata/instcd" , condarray[4]); //기관코드
  913. model.makeValue("/root/send/reqdata/ioflag" , condarray[0]); //외래입원구분
  914. model.makeValue("/root/send/reqdata/orddeptcd", condarray[5]); //집도과
  915. model.makeValue("/root/send/reqdata/orddrid" , condarray[6]); //집도의
  916. model.makeValue("/root/send/reqdata/patflag" , "O"); //환자구분 - dao sql에서 query구분자 설정
  917. model.makeValue("/root/send/reqdata/procflag" , condarray[8]); //처리구분(F:최초 조회, R:재조회)
  918. model.makeValue("/root/send/reqdata/oprsrvno" , condarray[9]); //수술예약번호
  919. model.makeValue("/root/send/reqdata/ophistno" , condarray[10]);//수술이력번호
  920. model.makeValue("/root/send/reqdata/srchdd" , condarray[11]);//조회일자
  921. submit("TRMRI01808");
  922. }
  923. if(PamKeyList.length > 1){
  924. modal("SPMRI03200", "1","150", "150", "SPMRI03200", "/root/main/pamkeyinfo", "/root/main/result");
  925. if(getParameter("SPMRI03200_useyn") == "Y")
  926. {
  927. var SelectedPamKey = findNodeset(model, "/root/main/result/pamkeyinfo");
  928. for(int i = 0; i < SelectedPamKey.length; i++)
  929. {
  930. var pid = model.getValue("/root/main/result/pamkeyinfo/pid"); //등록번호
  931. var orddd = model.getValue("/root/main/result/pamkeyinfo/orddd"); //수술일자
  932. var cretno = model.getValue("/root/main/result/pamkeyinfo/cretno"); //생성번호
  933. var instcd = model.getValue("/root/main/result/pamkeyinfo/instcd"); //기관코드
  934. var ioflag = model.getValue("/root/main/result/pamkeyinfo/ioflag"); //외래입원구분
  935. if(ioflag == "I")
  936. {
  937. param = "T" + "▦" + // ioflag
  938. pid + "▦" + // pid
  939. orddd + "▦" + // opcnfmdd
  940. cretno + "▦" + // cretno
  941. instcd + "▦" + // instcd
  942. "" + "▦" + // perfdeptcd
  943. "" + "▦" + // perfdrid
  944. "I" + "▦" + // patflag
  945. "F" + "▦" + // procflag
  946. oprsrvno + "▦" + // oprsrvno
  947. "" + "▦" + // ophistno
  948. dschdd; // srchdd
  949. }
  950. }
  951. }
  952. return param;
  953. }
  954. }
  955. }
  956. */
  957. /**
  958. * @---------------------------------------------------
  959. * @creat : 20110503 => 20140311 수정
  960. * @author : 최원돈 => 이윤주
  961. * @desc : 선택환자의 관련 미비상세내역을 조회한다.
  962. * @---------------------------------------------------
  963. */
  964. function callUnprepDtPopMenu()
  965. {
  966. var iRow = ds_grd_unpreplist.rowposition;
  967. var curObj = opener.frmf_findPopup("SPMRI03800"); //활성화된 미비상세 화면 object loading
  968. frmf_setParameter("SPMRI03800_pid", ds_grd_unpreplist.getColumn(iRow, "pid"));
  969. frmf_setParameter("SPMRI03800_indd", ds_grd_unpreplist.getColumn(iRow, "indd"));
  970. if(curObj != null) { //미비상세 화면 refresh;
  971. curObj.fInit();
  972. frmf_setFocusPop("SPMRI03800");
  973. }
  974. else {
  975. frmf_open("SPMRI03800", "SPMRI03800", null, null, 1, 400, 0, null, null, null, null, null, "M");
  976. //frmf_open("SPMRI03800", 1, 400, 0);
  977. }
  978. //initPopupMenu(); // Reset Right Popupmenu
  979. }
  980. /**
  981. * @---------------------------------------------------
  982. * @creat : 20120518
  983. * @author : 이윤주
  984. * @desc : 미비내역을 조회.
  985. * @---------------------------------------------------
  986. */
  987. function fSearchMibi()
  988. {
  989. var indschflag = ds_main_cond.getColumn(0, "indschflag");
  990. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "퇴원과");
  991. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^퇴원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  992. if(indschflag == "I"){ //재원미비인 경우
  993. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "재원과");
  994. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^재원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  995. }else if(indschflag == "A"){ //전체미비인 경우
  996. grd_unpreplist.setCellProperty("head", grd_unpreplist.getBindCellIndex("body", "dschdeptnm") ,"text", "재(퇴)원과");
  997. //grd_unpreplist.caption = "시간경과(h)^미비과^미비분과^등록번호^환자명^퇴원일자^재(퇴)원과^unprepno^전문의^미비의사^의사구분^입원일^서식코드^서식명^unprepitemcd^항목명^진료일자^재미비^전달사항 From 의료정보^전달사항 From 의사^발생번호^서식기록순번^최종수정자^최종수정일시^의사확인일시";
  998. }
  999. if(indschflag == "O"){
  1000. ds_grd_unpreplist.clearData();
  1001. roundrect1.rdo_inoutflag.setFocus();
  1002. return;
  1003. }
  1004. /* 응급실 미비 기능 추가로 Remark(2009.12.21 이남익)
  1005. if(indschflag == "E"){
  1006. model.removeNodeset("/root/main/unpreplist/unpreplist");
  1007. model.setFocus("rdo_inoutflag");
  1008. model.refresh();
  1009. return;
  1010. }
  1011. */
  1012. if(indschflag =="A"){
  1013. var unprepdrid = ds_main_cond.getColumn(0, "unprepdrid");
  1014. var deptcd = roundrect1.cmb_deptcd.value;
  1015. sysf_trace(" indschflag == A **** unprepdrid : " + unprepdrid + " | deptcd : " + deptcd + " *****");
  1016. if(utlf_isNull(unprepdrid) && deptcd == "-"){
  1017. sysf_messageBox("미비과 또는 미비의사중 하나는 반드시 선택 또는 입력해야 합니다.","I003");
  1018. if(deptcd == "-"){
  1019. roundrect1.cmb_deptcd.setFocus();
  1020. } else {
  1021. roundrect1.ipt_unprepdrnm.setFocus();
  1022. }
  1023. return;
  1024. }
  1025. }
  1026. ds_main_cond.setColumn(0, "orderby", "");
  1027. fReqGetUnPrepDrClsList("N");
  1028. }
  1029. /**
  1030. * @---------------------------------------------------
  1031. * @creat : 20120518
  1032. * @author : 이윤주
  1033. * @desc : 스텝미비내역을 조회.
  1034. * @---------------------------------------------------
  1035. */
  1036. function fStaffMibi()
  1037. {
  1038. sysf_trace("***** fStaffMibi() *****");
  1039. var indschflag = ds_main_cond.getColumn(0, "indschflag");
  1040. sysf_trace("***** indschflag : " + indschflag + " *****");
  1041. if(indschflag == "O"){
  1042. ds_grd_unpreplist.clearData();
  1043. roundrect1.rdo_inoutflag.setFocus();
  1044. return;
  1045. }
  1046. if(indschflag == "E"){
  1047. ds_grd_unpreplist.clearData();
  1048. roundrect1.rdo_inoutflag.setFocus();
  1049. return;
  1050. }
  1051. if(indschflag =="A"){
  1052. var unprepdrid = ds_main_cond.getColumn(0, "unprepdrid");
  1053. var deptcd = roundrect1.cmb_deptcd.value;
  1054. if(utlf_isNull(unprepdrid) && deptcd == "-"){
  1055. sysf_messageBox("미비과 또는 미비의사중 하나는 반드시 선택 또는 입력해야 합니다.","I003");
  1056. if(deptcd == "-"){
  1057. roundrect1.cmb_deptcd.setFocus();
  1058. } else {
  1059. roundrect1.ipt_unprepdrnm.setFocus();
  1060. }
  1061. return;
  1062. }
  1063. }
  1064. ds_main_cond.setColumn(0, "orderby", "");
  1065. fReqGetUnPrepDrClsList("Y");
  1066. }
  1067. /**===================================================================================
  1068. @desc : 깜빡이 기능
  1069. =====================================================================================*/
  1070. function fviewinfomsg(){
  1071. // window.clearInterval(gTimerID);
  1072. // gTimerID = window.setInterval("fviewinfomsg()", gIntervalTime);
  1073. if(gTimeCnt%2 == 0){
  1074. cap_infomsg.visible = true;
  1075. }else{
  1076. cap_infomsg.visible = false;
  1077. }
  1078. // cap_infomsg.refresh();
  1079. gTimeCnt++;
  1080. }
  1081. ]]></Script>