| 1 | HLEMEP ;ALB/CJM-HL7 - Purge Monitor Events  ;02/04/2004 | 
|---|
| 2 | ;;1.6;HEALTH LEVEL SEVEN;**109**;Oct 13, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | PURGE ; | 
|---|
| 5 | N NOW,WHEN,EVENT,ERROR | 
|---|
| 6 | S NOW=$$NOW^XLFDT | 
|---|
| 7 | S WHEN=0 | 
|---|
| 8 | D START^HLEVAPI(.VAR) | 
|---|
| 9 | ; | 
|---|
| 10 | ;delete the old events | 
|---|
| 11 | F  S WHEN=$O(^HLEV(776.4,"AJ",WHEN)) Q:'WHEN  Q:WHEN>NOW  D | 
|---|
| 12 | .S EVENT=0 | 
|---|
| 13 | .F  S EVENT=$O(^HLEV(776.4,"AJ",WHEN,EVENT)) Q:'EVENT  D | 
|---|
| 14 | ..I '$$DELETE^HLEMU(776.4,EVENT,.ERROR),'$D(^HLEV(776.4,EVENT,0)) K ^HLEV(776.4,"AJ",WHEN,EVENT) | 
|---|
| 15 | ; | 
|---|
| 16 | ;delete the old statistics | 
|---|
| 17 | N STATS,SITE,TYPE,YEAR,MONTH,DAY,CUTMONTH,CUTDAY,CUTHOUR | 
|---|
| 18 | S STATS="^HLEV(776.4,""AF"")" | 
|---|
| 19 | S SITE=0 | 
|---|
| 20 | ; | 
|---|
| 21 | ;these determine the timeframes within which to delete the old statistics | 
|---|
| 22 | S CUTMONTH=$E($$FMADD^XLFDT(DT,-65),1,5) | 
|---|
| 23 | S CUTDAY=$P($$FMADD^XLFDT(DT,-8),".") | 
|---|
| 24 | S CUTHOUR=$$FMADD^XLFDT(NOW,-2) | 
|---|
| 25 | ; | 
|---|
| 26 | F  S SITE=$O(@STATS@(SITE)) Q:'SITE  D | 
|---|
| 27 | .S TYPE=0 | 
|---|
| 28 | .F  S TYPE=$O(@STATS@(SITE,TYPE)) Q:'TYPE  D | 
|---|
| 29 | ..S YEAR="" | 
|---|
| 30 | ..F  S YEAR=$O(@STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR)) Q:'YEAR  D | 
|---|
| 31 | ...S MONTH="" | 
|---|
| 32 | ...F  S MONTH=$O(@STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH)) Q:(MONTH="")  D | 
|---|
| 33 | ....I ((YEAR-1700)_$$PAD2(MONTH))<CUTMONTH D | 
|---|
| 34 | .....K @STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH) | 
|---|
| 35 | ....E  D | 
|---|
| 36 | .....S DAY="" | 
|---|
| 37 | .....F  S DAY=$O(@STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY)) Q:(DAY="")  D | 
|---|
| 38 | ......I ((YEAR-1700)_$$PAD2(MONTH)_$$PAD2(DAY))<CUTDAY D | 
|---|
| 39 | .......K @STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY) | 
|---|
| 40 | ......E  D | 
|---|
| 41 | .......S HOUR=0 | 
|---|
| 42 | .......F  S HOUR=$O(@STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR)) Q:(HOUR="")  Q:((YEAR-1700)_$$PAD2(MONTH)_$$PAD2(DAY)_"."_$$PAD2(HOUR))>CUTHOUR  D | 
|---|
| 43 | ........K @STATS@(SITE,TYPE,"RECEIVED","YEAR",YEAR,"MONTH",MONTH,"DAY",DAY,"HOUR",HOUR) | 
|---|
| 44 | ; | 
|---|
| 45 | ; | 
|---|
| 46 | D CHECKOUT^HLEVAPI | 
|---|
| 47 | K ^TMP("HLEVFLAG",$J) | 
|---|
| 48 | Q | 
|---|
| 49 | ; | 
|---|
| 50 | INPERSON ;entry point for running in the foreground | 
|---|
| 51 | S ^TMP("HLEVFLAG",$J)="STOP" | 
|---|
| 52 | D PURGE | 
|---|
| 53 | Q | 
|---|
| 54 | PAD2(STRING) ; | 
|---|
| 55 | ; pads a number on the left with '0', to a length of 2 | 
|---|
| 56 | Q $$RJ^XLFSTR(STRING,2,"0") | 
|---|
| 57 | ; | 
|---|