| [613] | 1 | PSOBPSRP ;BHM/LE - Ignored Rejects Report ;03/01/07 | 
|---|
|  | 2 | ;;7.0;OUTPATIENT PHARMACY;**260**;13 Feb 97;Build 84 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | EN N PSOSD,PSOED,PSOST,PSOSRT,PSOAPT,PSODRUG,PSODIV,PSODRG,PSOST,PSOOC,PSOU,PSOUSER,PSOAPT,I,Y | 
|---|
|  | 5 | N OK,X,C,%DT,PSOSIT | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | DIV ; - Ask for Division | 
|---|
|  | 8 | D SEL^PSOREJU1("DIVISION","^PS(59,",.PSODIV,$$GET1^DIQ(59,+$G(PSOSITE),.01)) Q:$G(PSODIV)="^" | 
|---|
|  | 9 | I $G(PSODIV)="ALL" S PSOSIT=1 K PSODIV | 
|---|
|  | 10 | ; | 
|---|
|  | 11 | BEGD ; - Ask for FROM DATE DOCUMENTED | 
|---|
|  | 12 | S %DT(0)=-DT,%DT="AEP",%DT("A")="BEGIN REJECT DATE: " | 
|---|
|  | 13 | W ! D ^%DT I Y<0!($D(DTOUT)) G END | 
|---|
|  | 14 | S PSOSD=Y\1-.00001 | 
|---|
|  | 15 | ; | 
|---|
|  | 16 | ENDT ; - Ask for TO DATE DOCUMENTED | 
|---|
|  | 17 | S %DT(0)=PSOSD+1\1,%DT("A")="END REJECT DATE: " | 
|---|
|  | 18 | W ! D ^%DT I Y<0!($D(DTOUT)) G END | 
|---|
|  | 19 | S PSOED=Y\1+.99999 | 
|---|
|  | 20 | ; | 
|---|
|  | 21 | SORT ; - Ask for SORT BY | 
|---|
|  | 22 | K DIR S DIR("B")="PATIENT" D HL1("A") | 
|---|
|  | 23 | SORT1 S PSOSRT="",(PSOAPT)=1,(PSOST,PSOOC)="B" | 
|---|
|  | 24 | S DIR("A")="SORT BY",DIR(0)="FO" D HL1("?") | 
|---|
|  | 25 | W ! D ^DIR K DIR I $D(DIRUT) G END | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | S OK=1,C=15 W ! | 
|---|
|  | 28 | F I=1:1:$L(Y,",") D | 
|---|
|  | 29 | . S X=$P(Y,",",I) S:X'?.N X=$$TRNS(X) I PSOSRT[X Q | 
|---|
|  | 30 | . W !?(C-10),$S(I=1:"SORT BY ",1:"THEN BY ") S C=C+5 | 
|---|
|  | 31 | . I X<1!(X>3) W X,"???",$C(7) S OK=0 Q | 
|---|
|  | 32 | . W $P("PATIENT^DRUG^USER","^",X) | 
|---|
|  | 33 | . S PSOSRT=PSOSRT_","_X | 
|---|
|  | 34 | I 'OK S DIR("B")=Y G SORT1 | 
|---|
|  | 35 | S $E(PSOSRT)="" | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | S OK=1 | 
|---|
|  | 38 | F I=1:1:$L(PSOSRT,",") D  I 'OK Q | 
|---|
|  | 39 | . S X=$P(PSOSRT,",",I) D @("SRT"_X) | 
|---|
|  | 40 | I 'OK S DIR("B")="PATIENT" G SORT1 | 
|---|
|  | 41 | ; | 
|---|
|  | 42 | DEV W ! K %ZIS,IOP,POP,ZTSK S %ZIS="QM" D ^%ZIS K %ZIS I POP G END | 
|---|
|  | 43 | ;If user didn't select a particular sort, assume all values for that sort | 
|---|
|  | 44 | S:'$G(PSOAPT)&('$D(PSOPT)) PSOAPT=1 | 
|---|
|  | 45 | S:'$G(PSODRUG)&('$D(PSODRG)) PSODRUG=1 | 
|---|
|  | 46 | S:'$G(PSOUSER)&('$D(PSOU)) PSOUSER=1 | 
|---|
|  | 47 | ; | 
|---|
|  | 48 | I $D(IO("Q")) D  G END | 
|---|
|  | 49 | . N G K IO("Q"),ZTIO,ZTSAVE,ZTDTH,ZTSK | 
|---|
|  | 50 | . S ZTRTN="EN^PSOBPSR1",ZTDESC="Ignored Rejects Report" | 
|---|
|  | 51 | . F G="PSOSD","PSOED","PSOSRT","PSOPT","PSODRG" S:$D(@G) ZTSAVE(G)="" | 
|---|
|  | 52 | . F G="PSOST","PSOOC","PSOAPT","PSODRUG","PSOUSER","PSOSIT" S:$D(@G) ZTSAVE(G)="" | 
|---|
|  | 53 | . S:$D(PSOPT) ZTSAVE("PSOPT(")="" S:$D(PSODRG) ZTSAVE("PSODRG(")="" | 
|---|
|  | 54 | . S:$D(PSOU) ZTSAVE("PSOU(")="" S:$D(PSODIV) ZTSAVE("PSODIV(")="" | 
|---|
|  | 55 | . D ^%ZTLOAD W:$D(ZTSK) !,"Report is Queued to print!" K ZTSK | 
|---|
|  | 56 | ; | 
|---|
|  | 57 | G EN^PSOBPSR1 | 
|---|
|  | 58 | ; | 
|---|
|  | 59 | END Q | 
|---|
|  | 60 | ; | 
|---|
|  | 61 | HL1(S) ; - Help for the SORT BY prompt | 
|---|
|  | 62 | S DIR(S,1)="    Enter the SORT field(s) for this Report:" | 
|---|
|  | 63 | S DIR(S,2)=" " | 
|---|
|  | 64 | S DIR(S,3)="       1 - PATIENT" | 
|---|
|  | 65 | S DIR(S,4)="       2 - DRUG" | 
|---|
|  | 66 | S DIR(S,5)="       3 - USER" | 
|---|
|  | 67 | S DIR(S,6)=" " | 
|---|
|  | 68 | S DIR(S,7)="    Or any combination of the above, separated by comma," | 
|---|
|  | 69 | S DIR(S,8)="    as in these examples:" | 
|---|
|  | 70 | S DIR(S,9)=" " | 
|---|
|  | 71 | S DIR(S,10)="       2,1  - BY PATIENT, THEN DRUG" | 
|---|
|  | 72 | S DIR(S,11)="      3,1,2 - BY USER, THEN BY PATIENT, THEN BY DRUG" | 
|---|
|  | 73 | S DIR(S,12)=" " | 
|---|
|  | 74 | S DIR(S)=" " | 
|---|
|  | 75 | Q | 
|---|
|  | 76 | ; | 
|---|
|  | 77 | SRT1 ; - Selection of PATIENTS to print on the Report | 
|---|
|  | 78 | K PSOPT S PSOAPT=0 | 
|---|
|  | 79 | D SEL^PSOREJU1("PATIENT","^DPT(",.PSOPT)  I $G(PSOPT)="^" S OK=0 Q | 
|---|
|  | 80 | I $G(PSOPT)="ALL" S PSOAPT=1 K PSOPT | 
|---|
|  | 81 | Q | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | SRT2 ; - Selection of Drugs to print on the Report | 
|---|
|  | 84 | K PSODRG S PSODRUG=0 | 
|---|
|  | 85 | D SEL^PSOREJU1("DRUG","^PSDRUG(",.PSODRG)  I $G(PSODRG)="^" S OK=0 Q | 
|---|
|  | 86 | I $G(PSODRG)="ALL" S PSODRUG=1 K PSODRG | 
|---|
|  | 87 | Q | 
|---|
|  | 88 | ; | 
|---|
|  | 89 | SRT3 ; - Selection of Users to print on the Report | 
|---|
|  | 90 | K PSOU S PSOUSER=0 | 
|---|
|  | 91 | D SEL^PSOREJU1("USER","^VA(200,",.PSOU)  I $G(PSOU)="^" S OK=0 Q | 
|---|
|  | 92 | I $G(PSOU)="ALL" S PSOUSER=1 K PSOU | 
|---|
|  | 93 | Q | 
|---|
|  | 94 | ; | 
|---|
|  | 95 | TRNS(X) ; - Translates Alpha into the corresponding Sorting Code | 
|---|
|  | 96 | N L,UPX S L=$L(X),UPX=$$UP^XLFSTR(X) | 
|---|
|  | 97 | I $E("PATIENT",1,L)=UPX Q 1 | 
|---|
|  | 98 | I $E("DRUG",1,L)=UPX Q 2 | 
|---|
|  | 99 | I $E("USER",1,L)=UPX Q 3 | 
|---|
|  | 100 | Q X | 
|---|
|  | 101 | ; | 
|---|