1 | PPPPURG ;ALB/GGP,DAD - ppp logfile purge routine ;03/13/92
|
---|
2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;**2,5,21**;APR 7,1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; purge any log entrys which are earlier than (today-days retained)
|
---|
6 | ; days =days retained
|
---|
7 | ; pdate =purge date in fileman format (purge before this day)
|
---|
8 | ; date =date of current record
|
---|
9 | LOG ;
|
---|
10 | N PURGE,BOGUS,DAYS,PDATE,DATE,X,Y,DIR,Y
|
---|
11 | ;
|
---|
12 | S DIR(0)="YA",DIR("A")="Purge entries in PPP LOG file: ",DIR("B")="NO"
|
---|
13 | S DIR("?")="Enter yes to purge out entries in file." D ^DIR
|
---|
14 | I Y D Q
|
---|
15 | .D LOG1 W !!,"RETAINED LAST "_$G(DAYS)_" DAYS, PURGED "_$G(PURGE)_" RECORDS.",!!,"PPP LOG file unchanged"
|
---|
16 | Q
|
---|
17 | ;
|
---|
18 | LOG1 ; -- purges entries from log file
|
---|
19 | S PURGE=0
|
---|
20 | S BOGUS=$$LOGEVNT^PPPMSC1(1019,"LOG1_PPPPURG")
|
---|
21 | ; write log 'purge started'
|
---|
22 | ;
|
---|
23 | S DAYS=$P($G(^PPP(1020.1,1,0)),"^",11),X1=DT,X2=-DAYS+1 D C^%DTC S PDATE=X
|
---|
24 | ;W !,PDATE
|
---|
25 | LOOP ;
|
---|
26 | ;loop through date in 'c'->date index
|
---|
27 | S DATE="" FOR X=0:0 D Q:DATE=""
|
---|
28 | .S DATE=$O(^PPP(1020.4,"C",DATE)) Q:DATE=""
|
---|
29 | .S DA=""
|
---|
30 | .;
|
---|
31 | .; loop thru rec with same date, check date/delete
|
---|
32 | .;
|
---|
33 | .F Y=0:0 D Q:DA=""
|
---|
34 | ..S DA=$O(^PPP(1020.4,"C",DATE,DA)) Q:DA=""
|
---|
35 | ..I (DATE<PDATE) D
|
---|
36 | ...S DIK="^PPP(1020.4,"
|
---|
37 | ...;W !,"PURGING= ",DA
|
---|
38 | ...D ^DIK S PURGE=PURGE+1
|
---|
39 | EXIT ;
|
---|
40 | ;write # of days retained, and # of records purged from logfile
|
---|
41 | ;
|
---|
42 | S BOGUS=$$LOGEVNT^PPPMSC1(1020,"_PPPPURG","RETAINED LAST "_$G(DAYS)_" DAYS, PURGED "_$G(PURGE)_" RECORDS.")
|
---|
43 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | XREF ;
|
---|
47 | ; purge any xref entrys which are earlier than (today-days retained)
|
---|
48 | ; days =days retained
|
---|
49 | ; pdate =purge date in fileman format (purge before this day)
|
---|
50 | ; date =date of current record
|
---|
51 | ;
|
---|
52 | N PURGE,BOGUS,DAYS,PDATE,DATE,X,Y,DIR,Y
|
---|
53 | ;
|
---|
54 | S DIR(0)="YA",DIR("A")="Purge entries in PPP FOREIGN FACILITY XREF file: ",DIR("B")="NO"
|
---|
55 | S DIR("?")="Enter yes to purge out entries in file." D ^DIR
|
---|
56 | I Y D Q
|
---|
57 | .D XREF1
|
---|
58 | .W !!,"RETAINED LAST "_$G(DAYS)_" DAYS, PURGED "_$G(PURGE)_" RECORDS."
|
---|
59 | W !!,"PPP FOREIGN FACILITY XREF file unchanged"
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | XREF1 ; -- purges other facility Xref
|
---|
63 | S PURGE=0
|
---|
64 | S BOGUS=$$LOGEVNT^PPPMSC1(1021,"XREF1_PPPPURG")
|
---|
65 | ; WRITE LOG 'XREF PURGE STARTED'
|
---|
66 | ;
|
---|
67 | S DAYS=$P($G(^PPP(1020.1,1,0)),"^",12)
|
---|
68 | ; CALCULATE PURGE DATE
|
---|
69 | S X1=DT,X2=-DAYS+1
|
---|
70 | D C^%DTC S PDATE=X
|
---|
71 | ;W !,PDATE
|
---|
72 | ;
|
---|
73 | XREFLOOP ;
|
---|
74 | ;DAVE B (PPP*1*21)
|
---|
75 | ;Loop through "D" xref
|
---|
76 | K DATE,PURGE
|
---|
77 | 1 S DATE=$S('$D(DATE):$O(^PPP(1020.2,"D",0)),1:$O(^PPP(1020.2,"D",DATE))) G KLLQ:DATE'>0 S IFN=0
|
---|
78 | I DATE>PDATE G 1
|
---|
79 | ;
|
---|
80 | 2 S IFN=$O(^PPP(1020.2,"D",DATE,IFN)) G 1:IFN'>0
|
---|
81 | S DATA=$G(^PPP(1020.2,IFN,0))
|
---|
82 | S DATA1=$G(^PPP(1020.2,IFN,1))
|
---|
83 | S PATDFN=$S($P($G(DATA),"^")="":0,1:$P($G(DATA),"^"))
|
---|
84 | S POV=$S($P($G(DATA),"^",2)="":0,1:$P($G(DATA),"^",2))
|
---|
85 | K ^PPP(1020.2,"ARPOV",POV,PATDFN,IFN)
|
---|
86 | K ^PPP(1020.2,"APOV",PATDFN,POV,IFN)
|
---|
87 | S DA=IFN,DIK="^PPP(1020.2," D ^DIK S PURGE=$G(PURGE)+1 G 2
|
---|
88 | ;
|
---|
89 | KLLQ K DATE,DATA,DATA1,PATDFN,POV,IFN Q
|
---|
90 | ;
|
---|
91 | XREFEXIT ;
|
---|
92 | ;write # of days retained, and # of records purged from xref
|
---|
93 | ;
|
---|
94 | S BOGUS=$$LOGEVNT^PPPMSC1(1022,"_PPPPURG","RETAINED LAST "_$G(DAYS)_" DAYS, PURGED "_$G(PURGE)_" RECORDS.")
|
---|
95 | S:$D(ZTQUEUED) ZTREQ="@"
|
---|
96 | Q
|
---|
97 | SETUP1 ;queues background job to purge logfile data
|
---|
98 | D NOW^%DTC S %DT="RAEX",%DT(0)=%,%DT("B")="NOW",%DT("A")="QUEUE JOBS TO RUN AT WHAT TIME: " D ^%DT S PSOQTIME=Y I $D(DTOUT)!(Y=-1) W !,"Try again later",! G OUT
|
---|
99 | S ZTIO="",ZTRTN="LOG1^PPPPURG",ZTDTH=PSOQTIME,ZTDESC="PPP PURGE LOGFILE DATA" D ^%ZTLOAD
|
---|
100 | OUT K Y,X,PSOQTIME,%DT
|
---|
101 | Q
|
---|
102 | ;
|
---|
103 | SETUP2 ;queues background job to purge xref data
|
---|
104 | D NOW^%DTC S %DT="RAEX",%DT(0)=%,%DT("B")="NOW",%DT("A")="QUEUE JOBS TO RUN AT WHAT TIME: " D ^%DT S PSOQTIME=Y I $D(DTOUT)!(Y=-1) W !,"Try again later",! G OUT2
|
---|
105 | S ZTIO="",ZTRTN="XREF1^PPPPURG",ZTDTH=PSOQTIME,ZTDESC="PPP PURGE FORIEGN FACILITY XREF" D ^%ZTLOAD
|
---|
106 | OUT2 K Y,X,PSOQTIME,%DT
|
---|
107 | Q
|
---|