| [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 |  ;
 | 
|---|