Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PSSPGXTS

PSSPGXTS.m

Go to the documentation of this file.
PSSPGXTS ;BIR/RTR - PHARMACOGENOMICS TEST OPTION ;09/20/07
 ;;1.0;PHARMACY DATA MANAGEMENT;**262**;9/30/97;Build 66
 ;
EN ;
 N DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT,DIC,DLAYGO,PSSLTXT,PSSGENE,PSSVAR1,PSSVAR2,PSSGCT,PSSPGXRS,PSSPGXDC,PSSLOC,PSSLOCNM,PSSVAR4,PSSDRGCT,PSSERRG1,PSSERRG2,PSSERRG3,PSSERRG4,PSSERRG5,PSSERRG6,PSSERRG7,PSSERRGN,PSSERRGL
 N PSSPGXQT,PSSPGXDG,PSSPGXND,PSSPPROD,PSSDF1C,PSSGAR,PSSGLP,PSS50IEN,PSSDISPD,PSSDISPG,PSSPGXSV,PSSPGXAR,PSSPHAR,PSSPGXVA,PSSGLPH,PSSFDBFG,PSSOPTFG,PSSGTYPE,PSSLFEED,PSSGLOOP,PSSGVAL,PSSGVALT,PSSPHEN,PSSSCORE,PSSPGEND
 N PSSPDRUG,PSSASKQT,PSSTESTP,PSSGENES,PSSPERR,PSSNOADD,PSSLOCZZ,PSSPHDT
 W @IOF,!!,"   PHARMACOGENOMIC (PGx) TEST OPTION",!
EN3 ;restart after exit from Patient prompt
 S (PSSASKQT,PSSTESTP,PSSPDRUG,PSSGLOOP)=0
 S PSSPGEND=$$ASK^PSSPGXT1()
 I PSSASKQT W ! Q
 I 'PSSPGEND G EN1
EN4 ;restart after exit from any prompt past patient prompt
 W ! D ASKPT^PSSPGXT1 I 'PSSTESTP W !! K PSSPGEND G EN3
 D DISP^PSSPGXT1 I PSSASKQT D RESET^PSSPGXT1 G EN4
 D ASKDR^PSSPGXT1 I PSSASKQT D RESET^PSSPGXT1 G EN4
 ;
EN1 ;
 I $G(PSSDRGCT) W @IOF
 S (PSSDF1C,PSSPGXQT,PSSGCT,PSSDRGCT,PSSLFEED)=0
 K PSSGAR,PSSGENE,PSSPGXAR
 I '$G(PSSPGEND) K PSSPGXDG,PSSPGXVA,PSSLOCNM
 K ^TMP("PSSPGXBS",$J),^TMP("PSSXWARN",$J)
 I '$G(PSSNOADD) D DRUG
 I '$D(PSSPGXDG),$G(PSSPGEND) D RESET^PSSPGXT1 G EN4
 I '$D(PSSPGXDG) W ! K PSSPHDT Q
 I PSSPGEND,$D(PSSGENES) D CONV^PSSPGXT1 G EN2
 D GENE
 W ! S PSSGLP="" F  S PSSGLP=$O(PSSGAR(PSSGLP)) Q:PSSGLP=""!(PSSPGXQT)  D
 .S PSSGCT=PSSGCT+1
 .S PSSGENE(PSSGLP,"GENE")=""
 .S PSSGENE(PSSGLP,"GENOTYPE")=$$GENOTP()
 .S PSSGENE(PSSGLP,"ACTIVITY_SCORE")=$$ACTSCR^PSSPGXT1()
 .S PSSGENE(PSSGLP,"PHENOTYPE")=$$PHENOTP(PSSGLP)
 .W !!,?3,"Gene: "_PSSGLP,!,?3,"Genotype: "_$G(PSSGENE(PSSGLP,"GENOTYPE")),!,?3,"Activity Score: "_$G(PSSGENE(PSSGLP,"ACTIVITY_SCORE")),!,?3,"Phenotype: "_$G(PSSGENE(PSSGLP,"PHENOTYPE"))
 .K DIR W ! S DIR(0)="Y",DIR("A")="Is this correct",DIR("B")="Y"
 .S DIR("?",1)="Enter 'Y' for Yes,  'N' for No, '^' to exit entire gene selection list." D ^DIR S PSSLFEED=1
 .I Y["^"!($D(DUOUT))!($D(DTOUT)) S PSSPGXQT=1 Q
 .I Y S PSSPGXSV=PSSGLP Q
 .K PSSGENE(PSSGLP) S PSSGLP=$S(PSSGCT=1:"",1:PSSPGXSV) I PSSGCT=1 S PSSGCT=0
EN2 ;
 K PSSGENES
 I PSSPGXQT,$G(PSSPGEND) D RESET^PSSPGXT1 G EN4
 I PSSPGXQT W ! G EN1
 S PSSVAR1="PSSPGXBS",PSSVAR4="PSSPGXOT"
 D PGXOPT^PSSPGX(.PSSVAR1,.PSSPGXDG,.PSSGENE,.PSSVAR4) I +$G(PSSFDBFG) D ERR^PSSPGXUT
 W @IOF
 W !!,"Inputs:"
 D PAUSE4 F PSSDISPD=0:0 S PSSDISPD=$O(PSSPGXDG(PSSDISPD)) Q:'PSSDISPD!(PSSPGXQT)  D
 .W !!,"Drug: "_$G(PSSPGXDG(PSSDISPD,"DRUGNAME")) D PAUSE4 Q:PSSPGXQT
 .W !,"VA Product: "_$G(PSSPGXVA(PSSDISPD,"VAPROD")) D PAUSE4 Q:PSSPGXQT
 .W !,"GCNSEQNO: "_$G(PSSPGXDG(PSSDISPD,"GCN")) D PAUSE4 Q:PSSPGXQT
 D PAUSE4 S PSSDISPG="" F  S PSSDISPG=$O(PSSGENE(PSSDISPG)) Q:PSSDISPG=""!(PSSPGXQT)  D
 .W !!,"Gene: "_PSSDISPG D PAUSE4 Q:PSSPGXQT
 .W !,"Genotype: "_$G(PSSGENE(PSSDISPG,"GENOTYPE")) D PAUSE4 Q:PSSPGXQT
 .W !,"Activity Score: "_$G(PSSGENE(PSSDISPG,"ACTIVITY_SCORE")) D PAUSE4 Q:PSSPGXQT
 .W !,"Phenotype: "_$G(PSSGENE(PSSDISPG,"PHENOTYPE")) D PAUSE4 Q:PSSPGXQT
 D PAUSE I PSSPGXQT W ! Q:PSSPGEND  W ! G EN1
 D GETD^PSSPGXPR,BADGCN,SETPGX,DISP K PSSPHAR D PAUSE3
 K ^TMP("PSSPGXBS",$J),^TMP($J,"PSSXWARN")
 I PSSPGEND D RESET^PSSPGXT1 G EN4
 D RESET^PSSPGXT1 S PSSPGEND=0 G EN1
 ;
DRUG ;Drug selection
 N PSSVAPGX,PSSPGXLG,PSSPRMD,PSSSELGC
 D:'$G(PSSDRGCT) INTRO^PSSPGXT1 S PSSDRGCT=1
 K DIC S DIC(0)="AEMQZ",DIC="^PSDRUG(",DIC("A")=$S('PSSDF1C:"Select DRUG: ",1:"Select Another DRUG: "),DIC("S")="I $P(^(0),""^"",3)'[""S""&($E($P(^(0),""^"",2),1,2)'=""XA"")" D ^DIC I Y<0 D:$D(PSSLOCNM)  K PSSLOCZZ Q
 .W !!?3,"Drugs Selected:" D AL^PSSPGXT1 S PSSPRMD="" F  S PSSPRMD=$O(PSSLOCZZ(PSSPRMD)) Q:PSSPRMD=""  W !?4,PSSPRMD
 .D PAUSE2
 S PSS50IEN=+Y
 S PSSPGXND=$G(^PSDRUG(PSS50IEN,"ND")),PSSLOC=$P($G(^PSDRUG(PSS50IEN,0)),"^")
 I '$P(PSSPGXND,"^")!('$P(PSSPGXND,"^",3)) D  D PAUSE2 G DRUG
 .W !!,"Drug is not matched to the National Drug File."
 S PSSPPROD=$$PROD0^PSNAPIS($P(PSSPGXND,"^"),$P(PSSPGXND,"^",3))
 I $P(PSSPPROD,"^",7)="" D  D PAUSE2 G DRUG
 .W !!,"Drug does not have a GCNSEQNO."
 S PSSSELGC=+$P(PSSPPROD,"^",7)
 S PSSVAPGX=$$PGX^PSNAPIS($P(PSSPGXND,"^"),$P(PSSPGXND,"^",3))
 I '$G(PSSVAPGX) D  D PAUSE2 G DRUG
 .S PSSPGXLG=$L(PSSLOC)
 .I PSSPGXLG<27 W !!,PSSLOC_" does not participate in Pharmacogenomic Order Checks." Q
 .W !!,PSSLOC_" does not participate in",!,"Pharmacogenomic Order Checks."
 S PSSDF1C=1
 W !!?2,"VA PRODUCT: ",$P(PSSPPROD,"^"),!?2,"  GCNSEQNO: ",PSSSELGC,!
 S PSSPGXDG(PSSSELGC,"GCN")=PSSSELGC
 S PSSPGXVA(PSSSELGC,"VAPROD")=$P(PSSPPROD,"^")
 S PSSPGXDG(PSSSELGC,"DRUGNAME")=$G(PSSLOC)
 S PSSPGXDG(PSSSELGC,"VUID")=$$GETVUID^XTID(50.68,,$P(PSSPGXND,"^",3)_",")
 S PSSLOCNM(PSSSELGC,"LOCNAME",PSSLOC)=""
 G DRUG
 Q
 ;
GENE ;Gene selection
 N DIC,X,X,DINUM,DLAYGO,DUOUT,DTOUT,PSSPRM,PSSPRML
 K PSSGAR
 S PSSPRM=0
GENES ;
 W ! S DIC=51.26,DIC(0)="QEAMZ",DIC("A")=$S(PSSPRM:"Select Another Gene: ",1:"Select Gene: ") D ^DIC I Y<0!($D(DUOUT))!($D(DTOUT)) D  D:$D(PSSGAR) PAUSE2 Q
 .I '$D(PSSGAR) W !!?3,"No Genes selected." Q
 .W !!?3,"Genes Selected:" S PSSPRML="" F  S PSSPRML=$O(PSSGAR(PSSPRML)) Q:PSSPRML=""  W !?4,PSSPRML
 I $D(PSSGAR($P(Y(0),"^"))) W !!?5,"Gene was previously selected." G GENES
 S PSSGAR($P(Y(0),"^"))="",PSSPRM=1
 G GENES
 Q
 ;
GENOTP() ;Genotype selection
 N PSSGVCT
 K DIR S PSSGTYPE=""
 I 'PSSGLOOP F PSSGVCT=1:1 Q:PSSGVCT>11  S PSSGVALT=$T(GDATA+PSSGVCT) S PSSGVAL($P(PSSGVALT,";;",2))=$P(PSSGVALT,";;",3)_";;"_$P(PSSGVALT,";;",4)
 S PSSGLOOP=1
 I PSSLFEED W !!
 I $D(PSSGVAL(PSSGLP)) W !,"Examples: "_$P(PSSGVAL(PSSGLP),";;")_", or "_$P(PSSGVAL(PSSGLP),";;",2)_", etc.",!
 S DIR("?")=" ",DIR("?",1)="Genotype is optional, leave blank if unknown. Answer must be 1-50 characters",DIR("?",2)="in length."
 S DIR(0)="FO^1:50",DIR("A")="Genotype selection for "_PSSGLP_" (optional)" D ^DIR
 I X=""!($D(DIRUT)) Q ""
 S PSSGTYPE=X
 Q PSSGTYPE
 ;
GDATA ;
 ;;ABCG2;;c.421C>A C/A;;c.421C>A C/C
 ;;CYP2C;;G.96405502G>A A/A;;G.96405502G>A G/G
 ;;CYP2C19;;*1/*1;;*2/*17
 ;;CYP2C9;;*1/*1;;*1/*2
 ;;CYP2D6;;*2/*4;;*1/*10
 ;;CYP3A5;;*1/*4;;*1/*3
 ;;CYP4F2;;C.1297G>A G/G;;C.1297G>A A/A
 ;;SLCO1B1;;*15/*15;;*1A/*1A
 ;;TPMT;;*2/*3A;;*1/*8
 ;;VKORC1;;-1639G>A G/G;;1639G>A G/A
 ;;UGT1A1;;*28/*28;;*1/*1
 Q
 ;
PHENOTP(PSSGLPH) ;Phenotype selection
 N DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT,PSSLP,PSSZ,PSSZZ,PSSCX,PSSPTYPE,PSSLPTX
 N PSSGIEN,PSSGILP,PSSGIARR,PSSGISEL,PSSPGXQT,PSSGIPHN
 S PSSPGXQT=0
 W @IOF
 W !!,"   Phenotype selection for "_PSSGLPH,!
 S PSSGIEN=$O(^PS(51.26,"B",PSSGLPH,0)) I 'PSSGIEN W !!,"Unable to locate "_PSSGLPH_" to enable Phenotype selection.",!  D PAUSE2 Q ""
 S PSSGILP="" F  S PSSGILP=$O(^PS(51.26,PSSGIEN,2,"B",PSSGILP)) Q:'PSSGILP  D
 .S PSSGIPHN=$P($G(^PS(51.28,PSSGILP,0)),"^") I PSSGIPHN'="" S PSSGIARR(PSSGIPHN)=""
 I '$D(PSSGIARR) W !!,"There are no selectable phenotypes for "_PSSGLPH,!  D PAUSE2 Q ""
 S PSSLP=1 S PSSLPTX="" F  S PSSLPTX=$O(PSSGIARR(PSSLPTX)) Q:PSSLPTX=""  D
 .S PSSGISEL(PSSLP)=PSSLPTX,PSSLP=PSSLP+1
PHPASS ;
 S PSSLP=0 S PSSPHEN="" F  S PSSPHEN=$O(PSSGIARR(PSSPHEN)) Q:PSSPHEN=""!(PSSPGXQT)  S PSSLP=PSSLP+1 W !,$S(PSSLP>99:"",PSSLP>9:" ",1:"  "),PSSLP_") ",PSSPHEN  D PAUSE4
 I 'PSSLP W !!,"There are no selectable phenotypes for "_PSSGLPH,!  D PAUSE2 Q ""
PHPASS1 ;
 W ! K DIR S DIR("?")=" "
 S DIR("?",1)="Enter the Phenotype by selecting one and only one entry from the list.",DIR("?",2)="This response is optional."
 S DIR(0)="LO^1:"_PSSLP_":" W ! S DIR("A")="Select "_PSSGLPH_" Phenotype" D ^DIR
 I Y'>0!($D(DIRUT)) Q ""
 S PSSZZ=0 F PSSZ=1:1:$L(Y) I $E(Y,PSSZ)="," S PSSZZ=PSSZZ+1
 I PSSZZ>1 W !!,"Only one Phenotype selection allowed." G PHPASS1
 S PSSCX=+Y S PSSPTYPE=$G(PSSGISEL(PSSCX))  W " "_PSSPTYPE,!
 Q PSSPTYPE
 ;
PAUSE ;
 W ! K DIR S DIR(0)="E",DIR("A")="Press Return to see PGx Findings, '^' to exit" D ^DIR K DIR I 'Y S PSSPGXQT=1
 Q
 ;
PAUSE2 ;
 W ! K DIR S DIR(0)="E",DIR("A")="  Press Return to continue" D ^DIR K DIR W !
 Q
 ;
PAUSE3 ;
 I ($Y+5)'>IOSL Q
 W ! K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
 W @IOF
 Q
 ;
PAUSE4 ;
 I ($Y+5)'>IOSL Q
 W ! K DIR S DIR(0)="E",DIR("A")="Press Return to continue, '^' to exit" D ^DIR K DIR I 'Y S PSSPGXQT=1
 W @IOF
 Q
 ;
PAUSE5 ;
 W ! K DIR S DIR(0)="E",DIR("A")="Press Return to continue, '^' to exit" D ^DIR K DIR I 'Y S PSSPGXQT=1
 W @IOF
 Q
 ;
SETPGX ;
 ;Set displayable TMP global from PSSPHAR array
 N PSSXL,PSSXCT,PSSACT,PSSTEMPX,PSSSUB2,PSSQLRF,PSSGNW,PSSCREEN,PSSSUB1
 S PSSSUB1="" F  S PSSSUB1=$O(PSSPHAR(PSSSUB1)) Q:PSSSUB1=""  D
 .S PSSXL="" F  S PSSXL=$O(PSSPHAR(PSSSUB1,PSSXL)) Q:PSSXL=""  S PSSXCT=1 D
 ..S PSSCREEN=$S($G(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG"))=""&($G(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG"))="")&($G(PSSPHAR(PSSSUB1,PSSXL,"RATIONALE LONG"))=""):1,1:0)
 ..S PSSACT=$S($G(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Informational":"MEDIUM",$G(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Interruptive":"HIGH",1:"NONE")
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="Pharmacogenomic "_$S(PSSACT="NONE":"Order Check:",1:PSSACT_" Order Check:") D INC
 ..S PSSGNW=$S('PSSCREEN:$G(PSSPHAR(PSSSUB1,PSSXL,"DXID")),1:$$TGENE) D
 ...I $L(PSSGNW)<56 S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="        GENOMIC FINDING: "_PSSGNW D INC Q
 ...S PSSTEMPX=PSSGNW S PSSQLRF=1 D FORMAT(PSSTEMPX) K PSSQLRF
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="    IMPACTED MEDICATION: "_$G(PSSPHAR(PSSSUB1,PSSXL,"DRUG")) D INC
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="" D INC
 ..I 'PSSCREEN S PSSTEMPX="ACTION: "_$G(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG")) D FORMAT(PSSTEMPX)
 ..I 'PSSCREEN S PSSTEMPX="RATIONALE: "_$G(PSSPHAR(PSSSUB1,PSSXL,"RATIONALE LONG")) D FORMAT(PSSTEMPX)
 ..I 'PSSCREEN S PSSTEMPX="MONITORING: "_$G(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG")) D FORMAT(PSSTEMPX)
 ..I PSSCREEN S PSSTEMPX="Reason(s): "_$G(PSSPHAR(PSSSUB1,PSSXL,"SCREEN")) D FORMAT(PSSTEMPX)
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="For more details on VA National Pharmacogenomics Program go to:" D INC
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=$P($G(^PS(59.7,1,"PGX")),"^") D INC
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="" D INC
 ..I 'PSSCREEN D ADDINFO^PSSPGXPR
 Q
 ;
TGENE() ;
 N PSSTVAL1,PSSTVAL2,PSSTVAL3,PSSTVAL4,PSSTVAL5
 S PSSTVAL5=""
 S PSSTVAL4=0 F PSSTVAL1=1:1 Q:'$D(PSSPHAR(PSSSUB1,PSSXL,"GENE",PSSTVAL1))  D
 .S PSSTVAL2=$G(PSSPHAR(PSSSUB1,PSSXL,"GENE",PSSTVAL1,"GENE")) Q:PSSTVAL2=""!($D(PSSTVAL3(PSSTVAL2)))
 .S PSSTVAL5=$S('PSSTVAL4:PSSTVAL2,1:PSSTVAL5_", "_PSSTVAL2) S PSSTVAL4=1,PSSTVAL3(PSSTVAL2)=""
 Q PSSTVAL5
 ;
INC ;
 S PSSXCT=PSSXCT+1
 Q
 ;
FORMAT(X) ; 
 N PSSW1,PSSW2,PSSQLC
 S DIWL=1,DIWR=79,DIWF="" I $G(PSSQLRF) S DIWR=55
 K ^UTILITY($J,"W")
 D ^DIWP
 I $G(PSSQLRF) S PSSQLC=1 D
 .S PSSW1="" F  S PSSW1=$O(^UTILITY($J,"W",PSSW1)) Q:PSSW1=""  D
 ..S PSSW2="" F  S PSSW2=$O(^UTILITY($J,"W",PSSW1,PSSW2)) Q:PSSW2=""  D
 ...S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=$S(PSSQLC=1:"        GENOMIC FINDING: ",1:"                         ")_$G(^UTILITY($J,"W",PSSW1,PSSW2,0)) S PSSQLC=PSSQLC+1 D INC
 I '$G(PSSQLRF) S PSSW1="" F  S PSSW1=$O(^UTILITY($J,"W",PSSW1)) Q:PSSW1=""  D
 .S PSSW2="" F  S PSSW2=$O(^UTILITY($J,"W",PSSW1,PSSW2)) Q:PSSW2=""  D
 ..S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=$G(^UTILITY($J,"W",PSSW1,PSSW2,0)) D INC
 K ^UTILITY($J,"W"),PSSTEMPX
 I '$G(PSSQLRF) S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="" D INC
 Q
 ;
DISP ;Display results
 N PSSDX,PSSDXC,PSSDXCT,PSSSVT,PSSDS1
 W @IOF
 S PSSDXCT=0
 I '$D(^TMP($J,"PSSXWARN")) W !?5,"No PGx Order Checks to display.",!! D PAUSE2 Q
 S PSSDS1="" F  S PSSDS1=$O(^TMP($J,"PSSXWARN",PSSDS1)) Q:PSSDS1=""!(PSSPGXQT)  D
 .S PSSDX="" F  S PSSDX=$O(^TMP($J,"PSSXWARN",PSSDS1,PSSDX)) Q:PSSDX=""!(PSSPGXQT)  D
 ..I PSSDXCT D PAUSE5 Q:PSSPGXQT
 ..S PSSDXC="" F  S PSSDXC=$O(^TMP($J,"PSSXWARN",PSSDS1,PSSDX,PSSDXC)) Q:PSSDXC=""!(PSSDXC="AI")!(PSSPGXQT)  S:PSSDS1'="ERROR" PSSDXCT=1 D
 ...W !,^TMP($J,"PSSXWARN",PSSDS1,PSSDX,PSSDXC) I ($Y+5)>IOSL D PAUSE5
 ..I '$D(^TMP($J,"PSSXWARN",PSSDS1,PSSDX,"AI")) D PAUSE5 Q
 ..I '$$ASKAI W ! Q
 ..K IOP,%ZIS,POP S %ZIS="QM" W ! D ^%ZIS I $G(POP)>0 W !,"Nothing queued to print.",! K DIR,Y S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR,IOP,%ZIS,POP Q
 ..I $D(IO("Q")) D  Q
 ...S ZTRTN="PRTAI^PSSPGXTS",ZTDESC="Pharmacogenomic Additional Information"
  ...S ZTSAVE("PSSPGXQT")="",ZTSAVE("PSSDS1")="",ZTSAVE("PSSDX")="",ZTSAVE("^TMP($J,""PSSXWARN"",PSSDS1,PSSDX,""AI"",")=""
 ...D ^%ZTLOAD K %ZIS W !!,"Report queued to print.",!
 ...K DIR,Y S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
 ..D PRTAI
 ;D RDAT
 Q
 ;
PRTAI ;Print Additional Informational
 U IO
 W @IOF
 N PSSDS2
 S PSSDS2="" F  S PSSDS2=$O(^TMP($J,"PSSXWARN",PSSDS1,PSSDX,"AI",PSSDS2)) Q:PSSDS2=""!(PSSPGXQT)  D
 .I ($Y+5)>IOSL D
 ..I $E(IOST,1,2)="C-" D PAUSE5 W:PSSPGXQT ! Q
 ..W @IOF
 .W !,^TMP($J,"PSSXWARN",PSSDS1,PSSDX,"AI",PSSDS2)
 I $E(IOST,1,2)="C-" D PAUSE5
 I $E(IOST,1,2)'="C-" W @IOF
 D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
 Q
ASKAI() ;display additional information prompt
 NEW DIR,X,Y
 S DIR(0)="Y",DIR("A")="Display Additional Information on Pharmacogenomic Order Check(s)",DIR("B")="NO"
 S DIR("?")="Enter 'YES' if you want to display the additional information for the Pharmacogenomic Order Check"
 D ^DIR
 I 'Y W ! Q 0
 Q 1
 ;
RDAT ;
 ;N DIR,X,Y,DTOUT,DUOUT,DIRUT
 ;K DIR S DIR(0)="Y",DIR("B")="N",DIR("A")="Do you want to see the raw data output" D ^DIR I Y=1 W !! ZW ^TMP("PSSPGXBS",$J) W !! Q
 ;W !
 Q
 ;
PAUSEL ;
 W ! K DIR S DIR(0)="E",DIR("A")="Press Return to continue, '^' to exit list" D ^DIR K DIR I 'Y S PSSPGXQL=1 Q
 W @IOF
 Q
BADGCN ;Test option only - BAD GCNSEQ
 S PSSERRG7=1
 S PSSERRG1="" F  S PSSERRG1=$O(^TMP("PSSPGXBS",$J,PSSERRG1)) Q:PSSERRG1=""  D
 .S PSSERRG2="" F  S PSSERRG2=$O(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG2)) Q:PSSERRG2=""  D
 ..S PSSERRG3="" F  S PSSERRG3=$O(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG2,"C",PSSERRG3)) Q:PSSERRG3=""  D
 ...I $G(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG2,"C",PSSERRG3))="drugCheck" D
 ....Q:$G(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG3))'="drugCheck"
 ....S PSSERRG4="" F  S PSSERRG4=$O(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG3,"C",PSSERRG4)) Q:PSSERRG4=""  D
 .....I ^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG3,"C",PSSERRG4)="drugsNotChecked" D
 ......Q:$G(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG4))'="drugsNotChecked"
 ......S PSSERRG5="" F  S PSSERRG5=$O(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG4,"C",PSSERRG5)) Q:PSSERRG5=""  D
 .......I ^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG4,"C",PSSERRG5)="drugNotChecked" D
 ........Q:$G(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG5))'="drugNotChecked"
 ........S PSSERRG6="" F  S PSSERRG6=$O(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG5,"C",PSSERRG6)) Q:PSSERRG6=""  D
 .........I ^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG6)="drug" D
 ..........S PSSERRGN=$G(^TMP("PSSPGXBS",$J,PSSERRG1,PSSERRG6,"A","drugName"))
 ..........S PSSERRGN=$S($G(PSSERRGN)="":"Unknown Drug",1:PSSERRGN)
 ..........S PSSERRGL=$L(PSSERRGN)
 ..........S ^TMP($J,"PSSXWARN","ERROR",PSSERRG7,1)=$G(PSSERRGN)_" has a bad GCNSEQ number and could not"
 ..........S ^TMP($J,"PSSXWARN","ERROR",PSSERRG7,2)="be screened for Pharmacogenomic Order Checks."
 ..........S PSSERRG7=PSSERRG7+1
 Q