PSSLDOSE ;BIR/RTR-Local Possible Dosages Report ;06/22/07
;;1.0;PHARMACY DATA MANAGEMENT;**129**;9/30/07;Build 67
;
;External reference to PS(50.607 supported by DBIA 2221
;
EN ;
W !!,"This report will print Local Possible Dosage information only for Drugs for"
W !,"which Dosage Checks can be performed. Drugs that are inactive, marked and/or"
W !,"classed as supply items, not matched to NDF or excluded from dosage checks (due"
W !,"to dosage form or VA Product override) will not be included in this report."
W !!,"Users will be able to print Local Possible Dosage information for all eligible"
W !,"drugs or only for drugs with missing data in the Numeric Dose and Dose Unit"
W !,"fields. These two fields must be populated to perform Dosage Checks for a Local"
W !,"Possible Dosage selected when placing a Pharmacy order."
N DIR,PSSKZTPE,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IOP,%ZIS,POP,ZTRTN,ZTDESC,ZTSAVE,ZTSK
K DIR S DIR(0)="SO^A:ALL LOCAL POSSIBLE DOSAGES;O:ONLY LOCAL POSSIBLE DOSAGE WITH MISSING DATA",DIR("A")="Enter 'A' for All, 'O' for Only",DIR("B")="O"
S DIR("?")=" ",DIR("?",1)="Enter 'A' to see All Local Possible Dosages, regardless of whether or not the ",DIR("?",2)="associated Numeric Dose and Dose Unit fields are populated. Enter 'O' to see"
S DIR("?",3)="only those Local Possible Dosages with missing data in either the Numeric Dose",DIR("?",4)="or Dose Unit fields. The two fields must be populated if Dosage Checks are"
S DIR("?",5)="to be performed when this Local Possible Dosage is selected when placing a",DIR("?",6)="Pharmacy order."
D ^DIR K DIR I $D(DUOUT)!($D(DTOUT)) D MESS K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR Q
I Y'="A",Y'="O" D MESS K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR Q
S PSSKZTPE=Y
W !!,"This report is designed for 132 column format!",!
K IOP,%ZIS,POP S %ZIS="QM" D ^%ZIS I $G(POP)>0 D MESS K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR,IOP,%ZIS,POP Q
I $D(IO("Q")) S ZTRTN="START^PSSLDOSE",ZTDESC="Local Possible Dosages Report",ZTSAVE("PSSKZTPE")="" D ^%ZTLOAD K %ZIS W !!,"Report queued to print.",! D Q
.K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
;
;
START ;Print Local Possible Dosages Report
U IO
N PSSKZDEV,PSSKZCT,PSSKZOUT,PSSKZLIN,PSSKZNOF,PSSKZNM,PSSKZIEN,PSSKZOK,PSSKZDAT,PSSKZLIP,PSSKZND1,PSSKZND3,PSSKZZR,PSSKZNDF,PSSKZDF,PSSKZDT1,PSSKZLP1
N PSSKZNFL,PSSKZMSG,PSSKZSTR,PSSKZUNT,PSSKZUNZ,PSSKZAPU,PSSKZ1,PSSKZ2,PSSKZ3,PSSKZLD5,PSSKZLD6,PSSKZLD7,PSSKZNN1,PSSKZNN2
S (PSSKZOUT,PSSKZNOF)=0,PSSKZDEV=$S($E(IOST,1,2)'="C-":"P",1:"C"),PSSKZCT=1
K PSSKZLIN S $P(PSSKZLIN,"-",130)=""
D HD
S PSSKZNM="" F S PSSKZNM=$O(^PSDRUG("B",PSSKZNM)) Q:PSSKZNM=""!(PSSKZOUT) F PSSKZIEN=0:0 S PSSKZIEN=$O(^PSDRUG("B",PSSKZNM,PSSKZIEN)) Q:'PSSKZIEN!(PSSKZOUT) D
.K PSSKZOK,PSSKZDAT,PSSKZLIP,PSSKZZR,PSSKZNDF,PSSKZDF,PSSKZDT1,PSSKZLP1,PSSKZNFL,PSSKZMSG,PSSKZSTR,PSSKZUNT,PSSKZUNZ,PSSKZAPU,PSSKZ1,PSSKZ2,PSSKZ3,PSSKZND1,PSSKZND3
.S PSSKZZR=$G(^PSDRUG(PSSKZIEN,0))
.S PSSKZSTR=$P($G(^PSDRUG(PSSKZIEN,"DOS")),"^"),PSSKZUNT=$P($G(^PSDRUG(PSSKZIEN,"DOS")),"^",2)
.S PSSKZSTR=$S($E(PSSKZSTR,1)=".":"0"_PSSKZSTR,1:PSSKZSTR)
.I PSSKZUNT S PSSKZUNZ=$P($G(^PS(50.607,+PSSKZUNT,0)),"^")
.S PSSKZNFL=$S($P(PSSKZZR,"^",9):1,1:0),PSSKZMSG=$P(PSSKZZR,"^",10)
.S PSSKZAPU=$P($G(^PSDRUG(PSSKZIEN,2)),"^",3)
.S PSSKZND1=$P($G(^PSDRUG(PSSKZIEN,"ND")),"^"),PSSKZND3=$P($G(^PSDRUG(PSSKZIEN,"ND")),"^",3)
.S PSSKZOK=$$TEST
.I 'PSSKZOK Q
.S PSSKZDAT=0 F PSSKZLIP=0:0 S PSSKZLIP=$O(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLIP)) Q:'PSSKZLIP!(PSSKZDAT) I $P($G(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLIP,0)),"^")'="" S PSSKZDAT=1
.I 'PSSKZDAT Q
.S PSSKZDT1=0 I PSSKZTPE="O" F PSSKZLP1=0:0 S PSSKZLP1=$O(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1)) Q:'PSSKZLP1!(PSSKZDT1) I $P($G(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^")'="" D
..I '$P($G(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^",5)!($P($G(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^",6)="") S PSSKZDT1=1
.I PSSKZTPE="O",'PSSKZDT1 Q
.S PSSKZNOF=1
.W !!!,"("_PSSKZIEN_")",?19,$P(PSSKZZR,"^")_$S(PSSKZNFL:" *N/F*",1:"")
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
.I PSSKZMSG'="" W !?12,PSSKZMSG
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
.W !?12,"Strength: "_PSSKZSTR W ?43,"Units: " I $G(PSSKZUNZ)'="" W $G(PSSKZUNZ)
.I $G(PSSKZUNZ)'="",$L(PSSKZUNZ)>15 W !
.;I ($Y+5)>IOSL D HD Q:PSSKZOUT
.W ?66,"Application Package: "_PSSKZAPU
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
.S PSSKZ3=0 W !?4,"Local Possible Dosages: " F PSSKZ1=0:0 S PSSKZ1=$O(^PSDRUG(PSSKZIEN,"DOS2",PSSKZ1)) Q:'PSSKZ1!(PSSKZOUT) D
..S PSSKZ2=$G(^PSDRUG(PSSKZIEN,"DOS2",PSSKZ1,0))
..I $P(PSSKZ2,"^")="" Q
..I $P(PSSKZ2,"^",5),$P(PSSKZ2,"^",6)'="",PSSKZTPE="O" Q
..S PSSKZ3=1
..I ($Y+5)>IOSL D HD Q:PSSKZOUT
..W !?6,$P(PSSKZ2,"^")
..I ($Y+5)>IOSL D HD Q:PSSKZOUT
..K PSSKZLD5,PSSKZLD6,PSSKZLD7
..S PSSKZLD5=$P(PSSKZ2,"^",5),PSSKZLD6=$P(PSSKZ2,"^",6)
..S PSSKZLD7=$S($E(PSSKZLD6,1)=".":"0"_PSSKZLD6,1:PSSKZLD6)
..W !?6,"Numeric Dose: "_PSSKZLD7,?46,"Dose Unit: "_$S($G(PSSKZLD5):$P($G(^PS(51.24,+PSSKZLD5,0)),"^"),1:""),?92,"Package: "_$P(PSSKZ2,"^",2)
..I ($Y+5)>IOSL D HD Q:PSSKZOUT
.Q:PSSKZOUT
.I 'PSSKZ3 W "(None)"
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
.K PSSKZNN1,PSSKZNN2
.I 'PSSKZND1!('PSSKZND3) Q
.S PSSKZNN1=$$PROD0^PSNAPIS(PSSKZND1,PSSKZND3)
.S PSSKZNN2=$S($E($P(PSSKZNN1,"^",3),1)=".":"0"_$P(PSSKZNN1,"^",3),1:$P(PSSKZNN1,"^",3))
.I PSSKZSTR'="",PSSKZNN2'="",PSSKZNN2'=PSSKZSTR W !?3,"Note: Strength of "_PSSKZSTR_" does not match NDF strength of "_PSSKZNN2_"."
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
.W !?3,"VA PRODUCT MATCH: "_$P(PSSKZNN1,"^")
.I ($Y+5)>IOSL D HD Q:PSSKZOUT
;
END ;
I '$G(PSSKZOUT),PSSKZTPE="O",'$G(PSSKZNOF) W !!,"No local possible dosage missing data found.",!
I PSSKZDEV="P" W !!,"End of Report.",!
I '$G(PSSKZOUT),PSSKZDEV="C" W !!,"End of Report." K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
I PSSKZDEV="C" W !
E W @IOF
K PSSKZTPE
D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
Q
;
;
HD ;Report Header
I PSSKZDEV="C",PSSKZCT'=1 W ! K DIR,Y S DIR(0)="E",DIR("A")="Press Return to continue, '^' to exit" D ^DIR I 'Y S PSSKZOUT=1 Q
W @IOF
I PSSKZTPE="A" W !,"Local Possible Dosages Report (All)"
I PSSKZTPE="O" W !,"Local Possible Dosages Report (Missing Data Only)"
W ?118,"PAGE: "_PSSKZCT,!,PSSKZLIN,! S PSSKZCT=PSSKZCT+1
Q
;
;
MESS ;
W !!,"Nothing queued to print.",!
Q
;
;
TEST() ;Test to see if Drug meets criteria
;No need to have Local Possible Dose check here, you have it right after calling this at top
I 'PSSKZND3!('PSSKZND1) Q 0
I $P($G(^PSDRUG(PSSKZIEN,"I")),"^"),$P($G(^PSDRUG(PSSKZIEN,"I")),"^")<DT Q 0
N PSSKZDOV
S PSSKZDOV=""
I PSSKZND1,PSSKZND3,$T(OVRIDE^PSNAPIS)]"" S PSSKZDOV=$$OVRIDE^PSNAPIS(PSSKZND1,PSSKZND3)
I $P(PSSKZZR,"^",3)["S"!($E($P(PSSKZZR,"^",2),1,2)="XA") Q 0
K PSSKZDF
I PSSKZND1,PSSKZND3 S PSSKZNDF=$$DFSU^PSNAPIS(PSSKZND1,PSSKZND3) S PSSKZDF=$P(PSSKZNDF,"^")
I $G(PSSKZDF)'>0,$P($G(^PSDRUG(PSSKZIEN,2)),"^") S PSSKZDF=$P($G(^PS(50.7,+$P($G(^PSDRUG(PSSKZIEN,2)),"^"),0)),"^",2)
I PSSKZDOV=""!('$G(PSSKZDF))!($P($G(^PS(50.606,+$G(PSSKZDF),1)),"^")="") Q 1
I $P($G(^PS(50.606,+$G(PSSKZDF),1)),"^"),'PSSKZDOV Q 0
I '$P($G(^PS(50.606,+$G(PSSKZDF),1)),"^"),PSSKZDOV Q 0
Q 1
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSSLDOSE 7337 printed Nov 22, 2024@17:42:57 Page 2
PSSLDOSE ;BIR/RTR-Local Possible Dosages Report ;06/22/07
+1 ;;1.0;PHARMACY DATA MANAGEMENT;**129**;9/30/07;Build 67
+2 ;
+3 ;External reference to PS(50.607 supported by DBIA 2221
+4 ;
EN ;
+1 WRITE !!,"This report will print Local Possible Dosage information only for Drugs for"
+2 WRITE !,"which Dosage Checks can be performed. Drugs that are inactive, marked and/or"
+3 WRITE !,"classed as supply items, not matched to NDF or excluded from dosage checks (due"
+4 WRITE !,"to dosage form or VA Product override) will not be included in this report."
+5 WRITE !!,"Users will be able to print Local Possible Dosage information for all eligible"
+6 WRITE !,"drugs or only for drugs with missing data in the Numeric Dose and Dose Unit"
+7 WRITE !,"fields. These two fields must be populated to perform Dosage Checks for a Local"
+8 WRITE !,"Possible Dosage selected when placing a Pharmacy order."
+9 NEW DIR,PSSKZTPE,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,IOP,%ZIS,POP,ZTRTN,ZTDESC,ZTSAVE,ZTSK
+10 KILL DIR
SET DIR(0)="SO^A:ALL LOCAL POSSIBLE DOSAGES;O:ONLY LOCAL POSSIBLE DOSAGE WITH MISSING DATA"
SET DIR("A")="Enter 'A' for All, 'O' for Only"
SET DIR("B")="O"
+11 SET DIR("?")=" "
SET DIR("?",1)="Enter 'A' to see All Local Possible Dosages, regardless of whether or not the "
SET DIR("?",2)="associated Numeric Dose and Dose Unit fields are populated. Enter 'O' to see"
+12 SET DIR("?",3)="only those Local Possible Dosages with missing data in either the Numeric Dose"
SET DIR("?",4)="or Dose Unit fields. The two fields must be populated if Dosage Checks are"
+13 SET DIR("?",5)="to be performed when this Local Possible Dosage is selected when placing a"
SET DIR("?",6)="Pharmacy order."
+14 DO ^DIR
KILL DIR
IF $DATA(DUOUT)!($DATA(DTOUT))
DO MESS
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press Return to continue"
DO ^DIR
KILL DIR
QUIT
+15 IF Y'="A"
IF Y'="O"
DO MESS
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press Return to continue"
DO ^DIR
KILL DIR
QUIT
+16 SET PSSKZTPE=Y
+17 WRITE !!,"This report is designed for 132 column format!",!
+18 KILL IOP,%ZIS,POP
SET %ZIS="QM"
DO ^%ZIS
IF $GET(POP)>0
DO MESS
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press Return to continue"
DO ^DIR
KILL DIR,IOP,%ZIS,POP
QUIT
+19 IF $DATA(IO("Q"))
SET ZTRTN="START^PSSLDOSE"
SET ZTDESC="Local Possible Dosages Report"
SET ZTSAVE("PSSKZTPE")=""
DO ^%ZTLOAD
KILL %ZIS
WRITE !!,"Report queued to print.",!
Begin DoDot:1
+20 KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press Return to continue"
DO ^DIR
KILL DIR
End DoDot:1
QUIT
+21 ;
+22 ;
START ;Print Local Possible Dosages Report
+1 USE IO
+2 NEW PSSKZDEV,PSSKZCT,PSSKZOUT,PSSKZLIN,PSSKZNOF,PSSKZNM,PSSKZIEN,PSSKZOK,PSSKZDAT,PSSKZLIP,PSSKZND1,PSSKZND3,PSSKZZR,PSSKZNDF,PSSKZDF,PSSKZDT1,PSSKZLP1
+3 NEW PSSKZNFL,PSSKZMSG,PSSKZSTR,PSSKZUNT,PSSKZUNZ,PSSKZAPU,PSSKZ1,PSSKZ2,PSSKZ3,PSSKZLD5,PSSKZLD6,PSSKZLD7,PSSKZNN1,PSSKZNN2
+4 SET (PSSKZOUT,PSSKZNOF)=0
SET PSSKZDEV=$SELECT($EXTRACT(IOST,1,2)'="C-":"P",1:"C")
SET PSSKZCT=1
+5 KILL PSSKZLIN
SET $PIECE(PSSKZLIN,"-",130)=""
+6 DO HD
+7 SET PSSKZNM=""
FOR
SET PSSKZNM=$ORDER(^PSDRUG("B",PSSKZNM))
if PSSKZNM=""!(PSSKZOUT)
QUIT
FOR PSSKZIEN=0:0
SET PSSKZIEN=$ORDER(^PSDRUG("B",PSSKZNM,PSSKZIEN))
if 'PSSKZIEN!(PSSKZOUT)
QUIT
Begin DoDot:1
+8 KILL PSSKZOK,PSSKZDAT,PSSKZLIP,PSSKZZR,PSSKZNDF,PSSKZDF,PSSKZDT1,PSSKZLP1,PSSKZNFL,PSSKZMSG,PSSKZSTR,PSSKZUNT,PSSKZUNZ,PSSKZAPU,PSSKZ1,PSSKZ2,PSSKZ3,PSSKZND1,PSSKZND3
+9 SET PSSKZZR=$GET(^PSDRUG(PSSKZIEN,0))
+10 SET PSSKZSTR=$PIECE($GET(^PSDRUG(PSSKZIEN,"DOS")),"^")
SET PSSKZUNT=$PIECE($GET(^PSDRUG(PSSKZIEN,"DOS")),"^",2)
+11 SET PSSKZSTR=$SELECT($EXTRACT(PSSKZSTR,1)=".":"0"_PSSKZSTR,1:PSSKZSTR)
+12 IF PSSKZUNT
SET PSSKZUNZ=$PIECE($GET(^PS(50.607,+PSSKZUNT,0)),"^")
+13 SET PSSKZNFL=$SELECT($PIECE(PSSKZZR,"^",9):1,1:0)
SET PSSKZMSG=$PIECE(PSSKZZR,"^",10)
+14 SET PSSKZAPU=$PIECE($GET(^PSDRUG(PSSKZIEN,2)),"^",3)
+15 SET PSSKZND1=$PIECE($GET(^PSDRUG(PSSKZIEN,"ND")),"^")
SET PSSKZND3=$PIECE($GET(^PSDRUG(PSSKZIEN,"ND")),"^",3)
+16 SET PSSKZOK=$$TEST
+17 IF 'PSSKZOK
QUIT
+18 SET PSSKZDAT=0
FOR PSSKZLIP=0:0
SET PSSKZLIP=$ORDER(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLIP))
if 'PSSKZLIP!(PSSKZDAT)
QUIT
IF $PIECE($GET(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLIP,0)),"^")'=""
SET PSSKZDAT=1
+19 IF 'PSSKZDAT
QUIT
+20 SET PSSKZDT1=0
IF PSSKZTPE="O"
FOR PSSKZLP1=0:0
SET PSSKZLP1=$ORDER(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1))
if 'PSSKZLP1!(PSSKZDT1)
QUIT
IF $PIECE($GET(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^")'=""
Begin DoDot:2
+21 IF '$PIECE($GET(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^",5)!($PIECE($GET(^PSDRUG(PSSKZIEN,"DOS2",PSSKZLP1,0)),"^",6)="")
SET PSSKZDT1=1
End DoDot:2
+22 IF PSSKZTPE="O"
IF 'PSSKZDT1
QUIT
+23 SET PSSKZNOF=1
+24 WRITE !!!,"("_PSSKZIEN_")",?19,$PIECE(PSSKZZR,"^")_$SELECT(PSSKZNFL:" *N/F*",1:"")
+25 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+26 IF PSSKZMSG'=""
WRITE !?12,PSSKZMSG
+27 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+28 WRITE !?12,"Strength: "_PSSKZSTR
WRITE ?43,"Units: "
IF $GET(PSSKZUNZ)'=""
WRITE $GET(PSSKZUNZ)
+29 IF $GET(PSSKZUNZ)'=""
IF $LENGTH(PSSKZUNZ)>15
WRITE !
+30 ;I ($Y+5)>IOSL D HD Q:PSSKZOUT
+31 WRITE ?66,"Application Package: "_PSSKZAPU
+32 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+33 SET PSSKZ3=0
WRITE !?4,"Local Possible Dosages: "
FOR PSSKZ1=0:0
SET PSSKZ1=$ORDER(^PSDRUG(PSSKZIEN,"DOS2",PSSKZ1))
if 'PSSKZ1!(PSSKZOUT)
QUIT
Begin DoDot:2
+34 SET PSSKZ2=$GET(^PSDRUG(PSSKZIEN,"DOS2",PSSKZ1,0))
+35 IF $PIECE(PSSKZ2,"^")=""
QUIT
+36 IF $PIECE(PSSKZ2,"^",5)
IF $PIECE(PSSKZ2,"^",6)'=""
IF PSSKZTPE="O"
QUIT
+37 SET PSSKZ3=1
+38 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+39 WRITE !?6,$PIECE(PSSKZ2,"^")
+40 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+41 KILL PSSKZLD5,PSSKZLD6,PSSKZLD7
+42 SET PSSKZLD5=$PIECE(PSSKZ2,"^",5)
SET PSSKZLD6=$PIECE(PSSKZ2,"^",6)
+43 SET PSSKZLD7=$SELECT($EXTRACT(PSSKZLD6,1)=".":"0"_PSSKZLD6,1:PSSKZLD6)
+44 WRITE !?6,"Numeric Dose: "_PSSKZLD7,?46,"Dose Unit: "_$SELECT($GET(PSSKZLD5):$PIECE($GET(^PS(51.24,+PSSKZLD5,0)),"^"),1:""),?92,"Package: "_$PIECE(PSSKZ2,"^",2)
+45 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
End DoDot:2
+46 if PSSKZOUT
QUIT
+47 IF 'PSSKZ3
WRITE "(None)"
+48 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+49 KILL PSSKZNN1,PSSKZNN2
+50 IF 'PSSKZND1!('PSSKZND3)
QUIT
+51 SET PSSKZNN1=$$PROD0^PSNAPIS(PSSKZND1,PSSKZND3)
+52 SET PSSKZNN2=$SELECT($EXTRACT($PIECE(PSSKZNN1,"^",3),1)=".":"0"_$PIECE(PSSKZNN1,"^",3),1:$PIECE(PSSKZNN1,"^",3))
+53 IF PSSKZSTR'=""
IF PSSKZNN2'=""
IF PSSKZNN2'=PSSKZSTR
WRITE !?3,"Note: Strength of "_PSSKZSTR_" does not match NDF strength of "_PSSKZNN2_"."
+54 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
+55 WRITE !?3,"VA PRODUCT MATCH: "_$PIECE(PSSKZNN1,"^")
+56 IF ($Y+5)>IOSL
DO HD
if PSSKZOUT
QUIT
End DoDot:1
+57 ;
END ;
+1 IF '$GET(PSSKZOUT)
IF PSSKZTPE="O"
IF '$GET(PSSKZNOF)
WRITE !!,"No local possible dosage missing data found.",!
+2 IF PSSKZDEV="P"
WRITE !!,"End of Report.",!
+3 IF '$GET(PSSKZOUT)
IF PSSKZDEV="C"
WRITE !!,"End of Report."
KILL DIR
SET DIR(0)="E"
SET DIR("A")="Press Return to continue"
DO ^DIR
KILL DIR
+4 IF PSSKZDEV="C"
WRITE !
+5 IF '$TEST
WRITE @IOF
+6 KILL PSSKZTPE
+7 DO ^%ZISC
if $DATA(ZTQUEUED)
SET ZTREQ="@"
+8 QUIT
+9 ;
+10 ;
HD ;Report Header
+1 IF PSSKZDEV="C"
IF PSSKZCT'=1
WRITE !
KILL DIR,Y
SET DIR(0)="E"
SET DIR("A")="Press Return to continue, '^' to exit"
DO ^DIR
IF 'Y
SET PSSKZOUT=1
QUIT
+2 WRITE @IOF
+3 IF PSSKZTPE="A"
WRITE !,"Local Possible Dosages Report (All)"
+4 IF PSSKZTPE="O"
WRITE !,"Local Possible Dosages Report (Missing Data Only)"
+5 WRITE ?118,"PAGE: "_PSSKZCT,!,PSSKZLIN,!
SET PSSKZCT=PSSKZCT+1
+6 QUIT
+7 ;
+8 ;
MESS ;
+1 WRITE !!,"Nothing queued to print.",!
+2 QUIT
+3 ;
+4 ;
TEST() ;Test to see if Drug meets criteria
+1 ;No need to have Local Possible Dose check here, you have it right after calling this at top
+2 IF 'PSSKZND3!('PSSKZND1)
QUIT 0
+3 IF $PIECE($GET(^PSDRUG(PSSKZIEN,"I")),"^")
IF $PIECE($GET(^PSDRUG(PSSKZIEN,"I")),"^")<DT
QUIT 0
+4 NEW PSSKZDOV
+5 SET PSSKZDOV=""
+6 IF PSSKZND1
IF PSSKZND3
IF $TEXT(OVRIDE^PSNAPIS)]""
SET PSSKZDOV=$$OVRIDE^PSNAPIS(PSSKZND1,PSSKZND3)
+7 IF $PIECE(PSSKZZR,"^",3)["S"!($EXTRACT($PIECE(PSSKZZR,"^",2),1,2)="XA")
QUIT 0
+8 KILL PSSKZDF
+9 IF PSSKZND1
IF PSSKZND3
SET PSSKZNDF=$$DFSU^PSNAPIS(PSSKZND1,PSSKZND3)
SET PSSKZDF=$PIECE(PSSKZNDF,"^")
+10 IF $GET(PSSKZDF)'>0
IF $PIECE($GET(^PSDRUG(PSSKZIEN,2)),"^")
SET PSSKZDF=$PIECE($GET(^PS(50.7,+$PIECE($GET(^PSDRUG(PSSKZIEN,2)),"^"),0)),"^",2)
+11 IF PSSKZDOV=""!('$GET(PSSKZDF))!($PIECE($GET(^PS(50.606,+$GET(PSSKZDF),1)),"^")="")
QUIT 1
+12 IF $PIECE($GET(^PS(50.606,+$GET(PSSKZDF),1)),"^")
IF 'PSSKZDOV
QUIT 0
+13 IF '$PIECE($GET(^PS(50.606,+$GET(PSSKZDF),1)),"^")
IF PSSKZDOV
QUIT 0
+14 QUIT 1