| 1 | RMPFQS ;DDC/KAW-PURGE ORDERS; [ 06/16/95   3:06 PM ] | 
|---|
| 2 | ;;2.0;REMOTE ORDER/ENTRY SYSTEM;;JUN 16, 1995 | 
|---|
| 3 | RMPFSET I '$D(RMPFMENU) D MENU^RMPFUTL I '$D(RMPFMENU) W !!,$C(7),"*** A MENU SELECTION MUST BE MADE ***" Q  ;;RMPFMENU must be defined | 
|---|
| 4 | I '$D(RMPFSTAN)!'$D(RMPFDAT)!'$D(RMPFSYS) D ^RMPFUTL Q:'$D(RMPFSTAN)!'$D(RMPFDAT)!'$D(RMPFSYS) | 
|---|
| 5 | W @IOF,!,"PURGE ORDERS",!!?23,"*** WARNING ***" | 
|---|
| 6 | W !!,"This routine will permanently purge orders from the disk." | 
|---|
| 7 | W !,"The number of days to retain orders with a status that can be purged" | 
|---|
| 8 | W !,"is controlled by the parameter file.  If a status has no entry in the" | 
|---|
| 9 | W !,"parameter file, it will be purged 30 days after the last action on the order." | 
|---|
| 10 | W !!,"Only orders with one of the following statuses will be purged: ",! K RM | 
|---|
| 11 | F IX=1:1 S X=$T(STATUS+IX) Q:X=""  D | 
|---|
| 12 | .S A=$P(X,";",3),B=$P(X,";",4),C=$P(X,";",5),D=$P(X,";",6) | 
|---|
| 13 | .I RMPFMENU=10 Q:A="R" | 
|---|
| 14 | .S E=$P(RMPFSYS(1),U,D) S:E="" E=30 | 
|---|
| 15 | .W !?3,"<",A,"> ",B,?35,"More than ",E," days since last action." | 
|---|
| 16 | .S RMPF(A)=C_U_E | 
|---|
| 17 | STATS W !!,"Enter an <*> to purge all statuses or status(es) selected by letter(s): " D READ G END:$D(RMPFOUT) | 
|---|
| 18 | STATS1 I $D(RMPFQUT) W !!,"Enter an <*> to purge all orders with a status listed above or",!?6,"the letter or letters to the left of each status separated by commas",!?6,"to select specific statuses." G STATS | 
|---|
| 19 | G END:Y="" K RMPFP | 
|---|
| 20 | I Y="*" S X=0 F  S X=$O(RMPF(X)) Q:X=""  S Y1=$P(RMPF(X),U,1),RMPFP(Y1)=$P(RMPF(X),U,2) | 
|---|
| 21 | G VIEW:Y="*" | 
|---|
| 22 | F I=1:1 S X=$P(Y,",",I) Q:X=""  D  I $D(RMPFOUT) S RMPFQUT="" G STATS1 | 
|---|
| 23 | .I '$D(RMPF(X)) S RMPFOUT="" Q | 
|---|
| 24 | .S W=$P(RMPF(X),U,1),RMPFP(W)=$P(RMPF(X),U,2) K W | 
|---|
| 25 | VIEW W !!,"<P>rint orders to be purged or <RETURN> to continue: " K RMPFL | 
|---|
| 26 | D READ G END:$D(RMPFOUT) | 
|---|
| 27 | VIEW1 I $D(RMPFQUT) W !!,"Enter a <P> to print a list of the orders to be purged or",!?8,"<RETURN> to continue with the process." G VIEW | 
|---|
| 28 | G ASK:Y="" S Y=$E(Y,1) I "Pp"'[Y S RMPFQUT="" G VIEW1 | 
|---|
| 29 | S RMPFL="" D QUE K RMPFL G ASK:'$D(RMPFCX) | 
|---|
| 30 | ASK I $D(RMPFCX) G END:'RMPFCX | 
|---|
| 31 | W !!!!,"Do you wish to purge these orders now?  NO// " D READ | 
|---|
| 32 | G END:$D(RMPFOUT) | 
|---|
| 33 | ASK1 I $D(RMPFQUT) D  G ASK | 
|---|
| 34 | .W !!,"Enter <Y> to permanently purge old orders with one of the following",!,"statues:",! | 
|---|
| 35 | .S X=0 F  S X=$O(RMPFP(X)) Q:'X  I $D(^RMPF(791810.2,X,0)) W !,$P(^(0),U,1) | 
|---|
| 36 | S:Y="" Y="N" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G ASK1 | 
|---|
| 37 | G END:"nN"[Y | 
|---|
| 38 | SURE W !!,"Are you sure? NO// " D READ | 
|---|
| 39 | G END:$D(RMPFOUT) | 
|---|
| 40 | SURE1 I $D(RMPFQUT) W !!,"Enter <Y> to begin the purge, <N> or <RETURN> to exit." G SURE | 
|---|
| 41 | K RMPFL S:Y="" Y="N" S Y=$E(Y,1) I "YyNn"'[Y S RMPFQUT="" G SURE1 | 
|---|
| 42 | G END:"nN"[Y S RMPFCX=0,ZTIO="",ZTRTN="RUN^RMPFQS",ZTSAVE("RM*")="" | 
|---|
| 43 | S ZTDESC="PURGE ROES FILES" D ^%ZTLOAD W !!,"*** Request Queued ***" | 
|---|
| 44 | END K %XX,%YY,A,B,C,D,E,IX,POP,RMPF,RMPFP,Y,ZTSK,RMPFCX,I,%X,%Y Q | 
|---|
| 45 | RUN ;; input: RMPFP | 
|---|
| 46 | ;;output:  None | 
|---|
| 47 | S X="NOW",%DT="T" D ^%DT S TD=Y | 
|---|
| 48 | S DIE="^RMPF(791813,",DA=RMPFSTAN,DR="2.03////"_DUZ_";2.04////"_TD | 
|---|
| 49 | D ^DIE,PURGE^RMPFQS1,BATCH^RMPFQS1 | 
|---|
| 50 | K RMPFP,RMPFS,ZTSK,%H,%T,Y,TD,%DT,DIE,DR,DA,D,D0,DI,DQ Q | 
|---|
| 51 | READ K RMPFOUT,RMPFQUT | 
|---|
| 52 | R Y:DTIME I '$T W $C(7) R Y:5 G READ:Y="." S:'$T Y=U | 
|---|
| 53 | I Y?1"^".E S (RMPFOUT,Y)="" Q | 
|---|
| 54 | S:Y?1"?".E (RMPFQUT,Y)="" | 
|---|
| 55 | Q | 
|---|
| 56 | QUE W ! S %ZIS="NPQ" D ^%ZIS G END:POP | 
|---|
| 57 | I IO=IO(0),'$D(IO("S")) D PURGE^RMPFQS1 Q | 
|---|
| 58 | I $D(IO("S")) S %ZIS="",IOP=ION D ^%ZIS D PURGE^RMPFQS1 Q | 
|---|
| 59 | S ZTRTN="PURGE^RMPFQS1",ZTDESC="ROES FILE PURGE",ZTIO=ION,ZTSAVE("RM*")="" | 
|---|
| 60 | D ^%ZTLOAD,HOME^%ZIS | 
|---|
| 61 | W:$D(ZTSK) !!,"*** Request Queued ***" H 2 | 
|---|
| 62 | Q | 
|---|
| 63 | STATUS ;;Statuses to purge | 
|---|
| 64 | ;;C;COMPLETE;8;4 | 
|---|
| 65 | ;;D;DISAPPROVED;7;2 | 
|---|
| 66 | ;;E;ERROR;6;3 | 
|---|
| 67 | ;;I;INCOMPLETE;1;1 | 
|---|
| 68 | ;;N;CANCELED;11;6 | 
|---|
| 69 | ;;R;ADJUSTMENT REJECTED;10;5 | 
|---|