PSSPGXPR ;BIR/RTR - PHARMACOGENOMICS PRODUCTION ORDER CHECK ;09/20/07
;;1.0;PHARMACY DATA MANAGEMENT;**262**;9/30/97;Build 66
;
CHECK ;Process PGX results for Pharmacy
N PSSPHAR,PSSPHDT
D ERR^PSSPGXUT
D GETD
I $G(PSSPGXOR) D SETOR^PSSPGXOR Q
D SETPGX
Q
GETD ;
N PSSPH1,PSSPH2,PSSPH3,PSSPH4,PSSPH5,PSSPH6,PSSHP7,PSSPH9,PSSCAT,PSSCAT1,PSSCAT2,PSSPHQ,PSSPGX1,PSSPGX2,PSSPGX3,PSSPHQTT,PSSSUB1,PSSDNAME,PSSOURCE,PSSREFDO,PSSREFTP,PSSXLOOP,PSSTMPVL,PSSREFAR,PSSCIT1,PSSCIT2,PSSCIT3,PSSCITCR,PSSGCTR,PSSGCTRV
N PSSPH7
S (PSSPGX1,PSSPGX2,PSSPGX3,PSSCITCR)=0 K PSSPHDT,PSSPHAR
S PSSPH1="" F S PSSPH1=$O(^TMP("PSSPGXBS",$J,PSSPH1)) Q:PSSPH1="" D
.S PSSPH2="" F S PSSPH2=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH2)) Q:PSSPH2="" D
..S PSSPH7="" F S PSSPH7=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH2,"C",PSSPH7)) Q:PSSPH7="" D
...I $G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH2,"C",PSSPH7))="PEPSVersion" D
....Q:$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7))'="PEPSVersion"
....S PSSPHDT("PSSCUSTD")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7,"A","customIssueDate"))
....S PSSPHDT("PSSDIFD")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7,"A","difIssueDate"))
...I $G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH2,"C",PSSPH7))="drugCheck" D
....Q:$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7))'="drugCheck"
....S PSSPH9="" F S PSSPH9=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7,"C",PSSPH9)) Q:PSSPH9="" D
.....Q:^TMP("PSSPGXBS",$J,PSSPH1,PSSPH7,"C",PSSPH9)'="pgxDrugChecks"
.....S PSSPH3="" F S PSSPH3=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH9,"C",PSSPH3)) Q:PSSPH3="" D
......Q:$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH3))'="pgxDrugCheck"
......S PSSPHQTT=$$COUNT Q:PSSPHQTT<0 S PSSPHQ=$P(PSSPHQTT,"^",2),PSSSUB1=$P(PSSPHQTT,"^"),PSSGCTR=0,PSSGCTRV=""
......S PSSPH4="" F S PSSPH4=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH3,"C",PSSPH4)) Q:PSSPH4="" D
.......S PSSCAT=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH3,"C",PSSPH4))
.......I PSSCAT="drug" D Q
........S PSSDNAME=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"A","drugName"))
........I PSSDNAME'="" S PSSPHAR(PSSSUB1,PSSPHQ,"DRUG")=PSSDNAME Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"DRUG")=$P($G(^PSDRUG(+$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"A","ien")),0)),"^")
.......I PSSCAT="pgxDxidDescription" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"DXID")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="displayAction" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"DISPLAY ACTION")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="actionTextLong" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"ACTION LONG")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="riskRationalTextLong" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"RATIONALE LONG")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="screenMessage" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"SCREEN")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="monitoringTextLong" D Q
........S PSSPHAR(PSSSUB1,PSSPHQ,"MONITORING LONG")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"T",1))
.......I PSSCAT="genomicFinding" D Q
........S PSSPH5="" F S PSSPH5=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5)) Q:PSSPH5="" D
.........S PSSCAT1=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5))
.........I PSSCAT1="gene" D Q
..........S PSSGCTRV=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"T",1)) Q:PSSGCTRV=""
..........S PSSGCTR=PSSGCTR+1 S PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"GENE")=PSSGCTRV
.........I PSSCAT1="phenoType" D:PSSGCTRV'="" Q
..........S PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"PHENOTYPE")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"T",1))
.........I PSSCAT1="activityScore" D:PSSGCTRV'="" Q
..........S PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"ACTIVITY SCORE")=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"T",1))
.......I PSSCAT="pgxInteractionReference" D
........S (PSSREFDO,PSSREFTP,PSSOURCE)="" S PSSPH5="" F S PSSPH5=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5)) Q:PSSPH5="" D
.........I $G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5))="drugGeneEvidence" D Q
..........S PSSPH6="" F S PSSPH6=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6)) Q:PSSPH6=""!(PSSOURCE'="") D
...........S PSSCAT2=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6))
...........I PSSCAT2="ratingSource" S PSSOURCE=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH6,"T",1))
.........I $G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5))="referenceDisplayOrder" D Q
..........S PSSREFDO=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"T",1))
.........I $G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5))="drugGeneReference" D Q
..........S PSSPH6="" F S PSSPH6=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6)) Q:PSSPH6=""!(PSSREFTP'="") D
...........S PSSCAT2=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6))
...........I PSSCAT2="typeDescription" S PSSREFTP=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH6,"T",1))
........I PSSOURCE="" S PSSOURCE="Unknown"
........I PSSREFDO="" S PSSREFDO="unknown"
........I PSSREFTP="" S PSSREFTP="unknown"
........S PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE)=""
........S PSSREFAR(PSSREFDO,PSSREFTP)=$S('$D(PSSREFAR(PSSREFDO,PSSREFTP)):1,1:PSSREFAR(PSSREFDO,PSSREFTP)+PSSREFAR(PSSREFDO,PSSREFTP))
........S PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSREFDO,PSSREFTP,PSSREFAR(PSSREFDO,PSSREFTP))=""
........K PSSXDATA S PSSPH5="" F S PSSPH5=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5)) Q:PSSPH5="" D
.........S PSSCAT1=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH4,"C",PSSPH5))
.........I PSSCAT1="drugGeneEvidence" D Q
..........S PSSPH6="" F S PSSPH6=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6)) Q:PSSPH6="" D
...........S PSSCAT2=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"C",PSSPH6))
...........I PSSCAT2="rating" S PSSTMPVL=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH6,"T",1)) I PSSTMPVL'="" D Q
............S PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE,"RATING",PSSTMPVL)=""
.........I PSSCAT1="referenceDisplayOrder" D Q
..........S PSSTMPVL=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH5,"T",1)) I PSSTMPVL'="" D Q
...........S PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE,"DISORD",PSSTMPVL)=""
.........I PSSCAT1="drugGeneReference" D SETDGR^PSSPGXUT
........S PSSCIT1="" F S PSSCIT1=$O(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1)) Q:PSSCIT1="" D
.........S PSSCIT2="" F S PSSCIT2=$O(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2)) Q:PSSCIT2="" D
..........S PSSCIT3="" F S PSSCIT3=$O(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3)) Q:PSSCIT3="" D
...........I PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3)'="" Q
...........S PSSCITCR=PSSCITCR+1
...........I PSSCIT2="CPIC Guideline" D
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($G(PSSXDATA("AUTHOR")),".")_$$SETCT($G(PSSXDATA("TITLE")),".")_$$SETCT($G(PSSXDATA("NAME")),".")_$$SETCT($G(PSSXDATA("ISSUEDT")),";")
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$S($G(PSSXDATA("VOLUME"))="":"",1:" "_$G(PSSXDATA("VOLUME")))_$$SETISS($G(PSSXDATA("ISSUE")))
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$S($G(PSSXDATA("PAGE"))="":"",1:" "_$G(PSSXDATA("PAGE"))_".")_$S($G(PSSXDATA("URL"))="":"",1:" Available from "_$G(PSSXDATA("URL")))
...........I PSSCIT2="CPIC Drug-Gene Page" D
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($G(PSSXDATA("AUTHOR")),".")_$$SETCT($G(PSSXDATA("TITLE")),".")_$S($G(PSSXDATA("URL"))="":"",1:" Available from "_$G(PSSXDATA("URL")))
...........I PSSCIT2="Website" D
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($G(PSSXDATA("AUTHOR")),".")_$$SETCT($G(PSSXDATA("TITLE")),".")_$S($G(PSSXDATA("URL"))="":"",1:" Available from "_$G(PSSXDATA("URL")))
...........I PSSCIT2="Manufacturers Information" D
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$S($G(PSSXDATA("TITLE"))="":"",1:" "_$G(PSSXDATA("TITLE")))_" [package insert]."_$$SETCT($G(PSSXDATA("LOCATION")),".")_$$SETCT($G(PSSXDATA("AUTHOR")),".")
............S PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$$SETCT($G(PSSXDATA("ISSUEDT")),".")_$S($G(PSSXDATA("URL"))="":"",1:" Available from "_$G(PSSXDATA("URL")))
...........S PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3)="COMPLETE"
K PSSXDATA
Q
SETCT(PSSTX,PSSPNV) ;
I $G(PSSTX)'="" Q " "_PSSTX_PSSPNV
Q ""
;
SETISS(PSSTX) ;
N PSSPNV
I $G(PSSTX)="" D Q PSSPNV
.I $G(PSSXDATA("VOLUME"))="" S PSSPNV="" Q
.S PSSPNV=":"
Q " ("_PSSTX_")"_":"
;
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"))=""):1,1:0)
..S PSSACT=$S($G(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Informational":"MEDIUM",$G(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Interruptive":"HIGH",1:"NONE")
..I PSSCREEN D
...S PSSTEMPX="Please perform a manual PGx Order check by using the Check Pharmacogenomic Interaction option for Drug: "_$G(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))
...D FORMAT(PSSTEMPX)
..I 'PSSCREEN D
...S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="Pharmacogenomic "_$S(PSSACT="NONE":"Order Check:",1:PSSACT_" Order Check:") D INC
...S PSSGNW=$G(PSSPHAR(PSSSUB1,PSSXL,"DXID")) 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)
..;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)
..D URL^PSSPGXUT
..I 'PSSCREEN D ADDINFO
Q
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
COUNT() ;
N PSSTCNT,PSSTCNTV,PSSACTID,PSSDRG50,PSSSUPFL
S PSSTCNT="" F S PSSTCNT=$O(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH3,"C",PSSTCNT)) Q:PSSTCNT="" D
.S PSSCAT=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSPH3,"C",PSSTCNT))
.I PSSCAT="displayAction" D
..S PSSTCNTV=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSTCNT,"T",1))
.I PSSCAT="actionCategoryId" D
..S PSSACTID=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSTCNT,"T",1))
.I PSSCAT="drug" D
..S PSSDRG50=$G(^TMP("PSSPGXBS",$J,PSSPH1,PSSTCNT,"A","ien"))
I $G(PSSPGXOR),$G(PSSORSUP)'="N",$$SUPP^PSSPGXUT Q -1
I $G(PSSTCNTV)="Informational",PSSACTID=2!(PSSACTID=4)!(PSSACTID=5)!(PSSACTID=9)!(PSSACTID=13)!(PSSACTID=14) Q -1
I '$G(PSSOPTFG),$G(PSSTCNTV)="Informational",PSSDRG50,$$SUP^PSSPGXP2(PSSDRG50) Q -1
I $G(PSSTCNTV)="" S PSSTCNTV="NULL"
I PSSTCNTV="Interruptive" S PSSPGX1=PSSPGX1+1 Q "HIGH^"_PSSPGX1
I PSSTCNTV="Informational" S PSSPGX2=PSSPGX2+1 Q "MEDIUM^"_PSSPGX2
S PSSPGX3=PSSPGX3+1
Q "NULL^"_PSSPGX3
;
ADDINFO ;Create additional information global
N PSSAIC,PSSMARG,PSSGNWAI,PSSRCE,PSSRCEFL,PSSRCEVL,PSSDORD,PSSDORDC,PSSPHD,PSSCITX1,PSSCITX2,PSSCITX3,PSSCITX4,PSSXLINE
S PSSAIC=1
S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="Pharmacogenomics Detailed Information" D INCA
D LINE S PSSXLINE=0
S PSSGNWAI=$G(PSSPHAR(PSSSUB1,PSSXL,"DXID")) I PSSGNWAI'="" S PSSXLINE=1 D
.I $L(PSSGNWAI)<63 S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="GENOMIC FINDING: "_PSSGNWAI D INCA Q
.S PSSMARG=62,PSSPHD="GENOMIC FINDING: " D FORMATAI^PSSPGXP2(PSSGNWAI,PSSMARG,1,PSSPHD)
I $G(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))'="" S PSSXLINE=1 D
.S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="IMPACTED MEDICATION: "_$G(PSSPHAR(PSSSUB1,PSSXL,"DRUG")) D INCA
I PSSXLINE D LINE S PSSXLINE=0
S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="SEVERITY LEVEL: "_PSSACT D INCA
D LINE S PSSXLINE=0
S PSSRCEFL=0
S PSSRCE="" F S PSSRCE=$O(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE)) Q:PSSRCE="" D
.S PSSRCEVL=PSSRCE,PSSDORDC=0
.S PSSDORD="" F S PSSDORD=$O(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE,"DISORD",PSSDORD)) Q:PSSDORD="" D
..I 'PSSDORDC S PSSRCEVL=PSSRCEVL_" ("_PSSDORD S PSSDORDC=1 Q
..S PSSRCEVL=PSSRCEVL_","_PSSDORD
.I PSSDORDC S PSSRCEVL=PSSRCEVL_")"
.I 'PSSRCEFL S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="EVIDENCE RATINGS: " D INCA S PSSRCEFL=1
.I $L(PSSRCEVL)<65 S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=" SOURCE: "_PSSRCEVL D INCA
.I $L(PSSRCEVL)>64 S PSSMARG=64,PSSPHD=" SOURCE: " D FORMATAI^PSSPGXP2(PSSRCEVL,PSSMARG,1,PSSPHD)
.Q:'PSSRCEFL
.S PSSRCEVL="",PSSDORDC=0
.S PSSDORD="" F S PSSDORD=$O(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE,"RATING",PSSDORD)) Q:PSSDORD="" D
..I 'PSSDORDC S PSSRCEVL=PSSDORD S PSSDORDC=1 Q
..S PSSRCEVL=PSSRCEVL_", "_PSSDORD
.I PSSRCEVL="" D LINE Q
.I $L(PSSRCEVL)<65 S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=" RATING: "_PSSRCEVL D INCA D LINE Q
.S PSSMARG=64,PSSPHD=" SOURCE: " D FORMATAI^PSSPGXP2(PSSRCEVL,PSSMARG,1,PSSPHD)
.D LINE
I $D(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG")) D ORAI^PSSPGXP2("ACTION LONG")
I $D(PSSPHAR(PSSSUB1,PSSXL,"RATIONALE LONG")) D ORAI^PSSPGXP2("RATIONALE LONG")
I $D(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG")) D ORAI^PSSPGXP2("MONITORING LONG")
S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="CITATIONS:" D INCA
;pass in 0 for paramater 3 for no indentation, AND 79 FOR PARAM 2
S PSSCITX1="" F S PSSCITX1=$O(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1)) Q:PSSCITX1="" D
.S PSSCITX4=$G(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1))
.S PSSCITX2=$E(PSSCITX4,2,($F(PSSCITX4,")")-2))
.I $D(PSSCITX3(PSSCITX2)) Q
.S PSSCITX3(PSSCITX2)=""
.I $G(PSSPGXOR) S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=PSSCITX4 D INCA Q
.S PSSRCEVL=$G(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1))
.D FORMATAI^PSSPGXP2(PSSRCEVL,79,0,,1)
S PSSPHDT("DISDATE")=$S($G(PSSPHDT("PSSDIFD"))>$G(PSSPHDT("PSSCUSTD")):$G(PSSPHDT("PSSDIFD")),1:$G(PSSPHDT("PSSCUSTD")))
D LINE S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="First Databank database updated on "_$E($G(PSSPHDT("DISDATE")),5,6)_"/"_$E($G(PSSPHDT("DISDATE")),7,8)_"/"_$E($G(PSSPHDT("DISDATE")),1,4)_"."
Q
INCA ;
S PSSAIC=PSSAIC+1
Q
LINE ;
S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="" D INCA Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HPSSPGXPR 15342 printed Mar 25, 2026@15:58:14 Page 2
PSSPGXPR ;BIR/RTR - PHARMACOGENOMICS PRODUCTION ORDER CHECK ;09/20/07
+1 ;;1.0;PHARMACY DATA MANAGEMENT;**262**;9/30/97;Build 66
+2 ;
CHECK ;Process PGX results for Pharmacy
+1 NEW PSSPHAR,PSSPHDT
+2 DO ERR^PSSPGXUT
+3 DO GETD
+4 IF $GET(PSSPGXOR)
DO SETOR^PSSPGXOR
QUIT
+5 DO SETPGX
+6 QUIT
GETD ;
+1 NEW PSSPH1,PSSPH2,PSSPH3,PSSPH4,PSSPH5,PSSPH6,PSSHP7,PSSPH9,PSSCAT,PSSCAT1,PSSCAT2,PSSPHQ,PSSPGX1,PSSPGX2,PSSPGX3,PSSPHQTT,PSSSUB1,PSSDNAME,PSSOURCE,PSSREFDO,PSSREFTP,PSSXLOOP,PSSTMPVL,PSSREFAR,PSSCIT1,PSSCIT2,PSSCIT3,PSSCITCR,PSSGCTR,PSSGCTRV
+2 NEW PSSPH7
+3 SET (PSSPGX1,PSSPGX2,PSSPGX3,PSSCITCR)=0
KILL PSSPHDT,PSSPHAR
+4 SET PSSPH1=""
FOR
SET PSSPH1=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1))
if PSSPH1=""
QUIT
Begin DoDot:1
+5 SET PSSPH2=""
FOR
SET PSSPH2=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH2))
if PSSPH2=""
QUIT
Begin DoDot:2
+6 SET PSSPH7=""
FOR
SET PSSPH7=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH2,"C",PSSPH7))
if PSSPH7=""
QUIT
Begin DoDot:3
+7 IF $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH2,"C",PSSPH7))="PEPSVersion"
Begin DoDot:4
+8 if $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7))'="PEPSVersion"
QUIT
+9 SET PSSPHDT("PSSCUSTD")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7,"A","customIssueDate"))
+10 SET PSSPHDT("PSSDIFD")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7,"A","difIssueDate"))
End DoDot:4
+11 IF $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH2,"C",PSSPH7))="drugCheck"
Begin DoDot:4
+12 if $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7))'="drugCheck"
QUIT
+13 SET PSSPH9=""
FOR
SET PSSPH9=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7,"C",PSSPH9))
if PSSPH9=""
QUIT
Begin DoDot:5
+14 if ^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH7,"C",PSSPH9)'="pgxDrugChecks"
QUIT
+15 SET PSSPH3=""
FOR
SET PSSPH3=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH9,"C",PSSPH3))
if PSSPH3=""
QUIT
Begin DoDot:6
+16 if $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH3))'="pgxDrugCheck"
QUIT
+17 SET PSSPHQTT=$$COUNT
if PSSPHQTT<0
QUIT
SET PSSPHQ=$PIECE(PSSPHQTT,"^",2)
SET PSSSUB1=$PIECE(PSSPHQTT,"^")
SET PSSGCTR=0
SET PSSGCTRV=""
+18 SET PSSPH4=""
FOR
SET PSSPH4=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH3,"C",PSSPH4))
if PSSPH4=""
QUIT
Begin DoDot:7
+19 SET PSSCAT=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH3,"C",PSSPH4))
+20 IF PSSCAT="drug"
Begin DoDot:8
+21 SET PSSDNAME=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"A","drugName"))
+22 IF PSSDNAME'=""
SET PSSPHAR(PSSSUB1,PSSPHQ,"DRUG")=PSSDNAME
QUIT
+23 SET PSSPHAR(PSSSUB1,PSSPHQ,"DRUG")=$PIECE($GET(^PSDRUG(+$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"A","ien")),0)),"^")
End DoDot:8
QUIT
+24 IF PSSCAT="pgxDxidDescription"
Begin DoDot:8
+25 SET PSSPHAR(PSSSUB1,PSSPHQ,"DXID")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+26 IF PSSCAT="displayAction"
Begin DoDot:8
+27 SET PSSPHAR(PSSSUB1,PSSPHQ,"DISPLAY ACTION")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+28 IF PSSCAT="actionTextLong"
Begin DoDot:8
+29 SET PSSPHAR(PSSSUB1,PSSPHQ,"ACTION LONG")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+30 IF PSSCAT="riskRationalTextLong"
Begin DoDot:8
+31 SET PSSPHAR(PSSSUB1,PSSPHQ,"RATIONALE LONG")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+32 IF PSSCAT="screenMessage"
Begin DoDot:8
+33 SET PSSPHAR(PSSSUB1,PSSPHQ,"SCREEN")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+34 IF PSSCAT="monitoringTextLong"
Begin DoDot:8
+35 SET PSSPHAR(PSSSUB1,PSSPHQ,"MONITORING LONG")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"T",1))
End DoDot:8
QUIT
+36 IF PSSCAT="genomicFinding"
Begin DoDot:8
+37 SET PSSPH5=""
FOR
SET PSSPH5=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))
if PSSPH5=""
QUIT
Begin DoDot:9
+38 SET PSSCAT1=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))
+39 IF PSSCAT1="gene"
Begin DoDot:10
+40 SET PSSGCTRV=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"T",1))
if PSSGCTRV=""
QUIT
+41 SET PSSGCTR=PSSGCTR+1
SET PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"GENE")=PSSGCTRV
End DoDot:10
QUIT
+42 IF PSSCAT1="phenoType"
if PSSGCTRV'=""
Begin DoDot:10
+43 SET PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"PHENOTYPE")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"T",1))
End DoDot:10
QUIT
+44 IF PSSCAT1="activityScore"
if PSSGCTRV'=""
Begin DoDot:10
+45 SET PSSPHAR(PSSSUB1,PSSPHQ,"GENE",PSSGCTR,"ACTIVITY SCORE")=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"T",1))
End DoDot:10
QUIT
End DoDot:9
End DoDot:8
QUIT
+46 IF PSSCAT="pgxInteractionReference"
Begin DoDot:8
+47 SET (PSSREFDO,PSSREFTP,PSSOURCE)=""
SET PSSPH5=""
FOR
SET PSSPH5=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))
if PSSPH5=""
QUIT
Begin DoDot:9
+48 IF $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))="drugGeneEvidence"
Begin DoDot:10
+49 SET PSSPH6=""
FOR
SET PSSPH6=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
if PSSPH6=""!(PSSOURCE'="")
QUIT
Begin DoDot:11
+50 SET PSSCAT2=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
+51 IF PSSCAT2="ratingSource"
SET PSSOURCE=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH6,"T",1))
End DoDot:11
End DoDot:10
QUIT
+52 IF $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))="referenceDisplayOrder"
Begin DoDot:10
+53 SET PSSREFDO=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"T",1))
End DoDot:10
QUIT
+54 IF $GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))="drugGeneReference"
Begin DoDot:10
+55 SET PSSPH6=""
FOR
SET PSSPH6=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
if PSSPH6=""!(PSSREFTP'="")
QUIT
Begin DoDot:11
+56 SET PSSCAT2=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
+57 IF PSSCAT2="typeDescription"
SET PSSREFTP=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH6,"T",1))
End DoDot:11
End DoDot:10
QUIT
End DoDot:9
+58 IF PSSOURCE=""
SET PSSOURCE="Unknown"
+59 IF PSSREFDO=""
SET PSSREFDO="unknown"
+60 IF PSSREFTP=""
SET PSSREFTP="unknown"
+61 SET PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE)=""
+62 SET PSSREFAR(PSSREFDO,PSSREFTP)=$SELECT('$DATA(PSSREFAR(PSSREFDO,PSSREFTP)):1,1:PSSREFAR(PSSREFDO,PSSREFTP)+PSSREFAR(PSSREFDO,PSSREFTP))
+63 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSREFDO,PSSREFTP,PSSREFAR(PSSREFDO,PSSREFTP))=""
+64 KILL PSSXDATA
SET PSSPH5=""
FOR
SET PSSPH5=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))
if PSSPH5=""
QUIT
Begin DoDot:9
+65 SET PSSCAT1=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH4,"C",PSSPH5))
+66 IF PSSCAT1="drugGeneEvidence"
Begin DoDot:10
+67 SET PSSPH6=""
FOR
SET PSSPH6=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
if PSSPH6=""
QUIT
Begin DoDot:11
+68 SET PSSCAT2=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"C",PSSPH6))
+69 IF PSSCAT2="rating"
SET PSSTMPVL=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH6,"T",1))
IF PSSTMPVL'=""
Begin DoDot:12
+70 SET PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE,"RATING",PSSTMPVL)=""
End DoDot:12
QUIT
End DoDot:11
End DoDot:10
QUIT
+71 IF PSSCAT1="referenceDisplayOrder"
Begin DoDot:10
+72 SET PSSTMPVL=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH5,"T",1))
IF PSSTMPVL'=""
Begin DoDot:11
+73 SET PSSPHAR(PSSSUB1,PSSPHQ,"EVIDRATE",PSSOURCE,"DISORD",PSSTMPVL)=""
End DoDot:11
QUIT
End DoDot:10
QUIT
+74 IF PSSCAT1="drugGeneReference"
DO SETDGR^PSSPGXUT
End DoDot:9
+75 SET PSSCIT1=""
FOR
SET PSSCIT1=$ORDER(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1))
if PSSCIT1=""
QUIT
Begin DoDot:9
+76 SET PSSCIT2=""
FOR
SET PSSCIT2=$ORDER(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2))
if PSSCIT2=""
QUIT
Begin DoDot:10
+77 SET PSSCIT3=""
FOR
SET PSSCIT3=$ORDER(PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3))
if PSSCIT3=""
QUIT
Begin DoDot:11
+78 IF PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3)'=""
QUIT
+79 SET PSSCITCR=PSSCITCR+1
+80 IF PSSCIT2="CPIC Guideline"
Begin DoDot:12
+81 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($GET(PSSXDATA("AUTHOR")),".")_$$SETCT($GET(PSSXDATA("TITLE")),".")_$$SETCT($GE
T(PSSXDATA("NAME")),".")_$$SETCT($GET(PSSXDATA("ISSUEDT")),";")
+82 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$SELECT($GET(PSSXDATA("VOLUME"))="":"",1:" "_$GET(PSSXDATA("
VOLUME")))_$$SETISS($GET(PSSXDATA("ISSUE")))
+83 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$SELECT($GET(PSSXDATA("PAGE"))="":"",1:" "_$GET(PSSXDATA("PA
GE"))_".")_$SELECT($GET(PSSXDATA("URL"))="":"",1:" Available from "_$GET(PSSXDATA("URL")))
End DoDot:12
+84 IF PSSCIT2="CPIC Drug-Gene Page"
Begin DoDot:12
+85 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($GET(PSSXDATA("AUTHOR")),".")_$$SETCT($GET(PSSXDATA("TITLE")),".")_$SELECT($GE
T(PSSXDATA("URL"))="":"",1:" Available from "_$GET(PSSXDATA("URL")))
End DoDot:12
+86 IF PSSCIT2="Website"
Begin DoDot:12
+87 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$$SETCT($GET(PSSXDATA("AUTHOR")),".")_$$SETCT($GET(PSSXDATA("TITLE")),".")_$SELECT($GE
T(PSSXDATA("URL"))="":"",1:" Available from "_$GET(PSSXDATA("URL")))
End DoDot:12
+88 IF PSSCIT2="Manufacturers Information"
Begin DoDot:12
+89 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)="("_PSSCIT1_")"_$SELECT($GET(PSSXDATA("TITLE"))="":"",1:" "_$GET(PSSXDATA("TITLE")))_" [package insert
]."_$$SETCT($GET(PSSXDATA("LOCATION")),".")_$$SETCT($GET(PSSXDATA("AUTHOR")),".")
+90 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)=PSSPHAR(PSSSUB1,PSSPHQ,"CITPRT",PSSCITCR)_$$SETCT($GET(PSSXDATA("ISSUEDT")),".")_$SELECT($GET(PSSXDATA
("URL"))="":"",1:" Available from "_$GET(PSSXDATA("URL")))
End DoDot:12
+91 SET PSSPHAR(PSSSUB1,PSSPHQ,"CITATION",PSSCIT1,PSSCIT2,PSSCIT3)="COMPLETE"
End DoDot:11
End DoDot:10
End DoDot:9
End DoDot:8
End DoDot:7
End DoDot:6
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+92 KILL PSSXDATA
+93 QUIT
SETCT(PSSTX,PSSPNV) ;
+1 IF $GET(PSSTX)'=""
QUIT " "_PSSTX_PSSPNV
+2 QUIT ""
+3 ;
SETISS(PSSTX) ;
+1 NEW PSSPNV
+2 IF $GET(PSSTX)=""
Begin DoDot:1
+3 IF $GET(PSSXDATA("VOLUME"))=""
SET PSSPNV=""
QUIT
+4 SET PSSPNV=":"
End DoDot:1
QUIT PSSPNV
+5 QUIT " ("_PSSTX_")"_":"
+6 ;
SETPGX ;
+1 ;Set displayable TMP global from PSSPHAR array
+2 NEW PSSXL,PSSXCT,PSSACT,PSSTEMPX,PSSSUB2,PSSQLRF,PSSGNW,PSSCREEN,PSSSUB1
+3 SET PSSSUB1=""
FOR
SET PSSSUB1=$ORDER(PSSPHAR(PSSSUB1))
if PSSSUB1=""
QUIT
Begin DoDot:1
+4 SET PSSXL=""
FOR
SET PSSXL=$ORDER(PSSPHAR(PSSSUB1,PSSXL))
if PSSXL=""
QUIT
SET PSSXCT=1
Begin DoDot:2
+5 SET PSSCREEN=$SELECT($GET(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG"))=""&($GET(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG"))=""):1,1:0)
+6 SET PSSACT=$SELECT($GET(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Informational":"MEDIUM",$GET(PSSPHAR(PSSSUB1,PSSXL,"DISPLAY ACTION"))="Interruptive":"HIGH",1:"NONE")
+7 IF PSSCREEN
Begin DoDot:3
+8 SET PSSTEMPX="Please perform a manual PGx Order check by using the Check Pharmacogenomic Interaction option for Drug: "_$GET(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))
+9 DO FORMAT(PSSTEMPX)
End DoDot:3
+10 IF 'PSSCREEN
Begin DoDot:3
+11 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)="Pharmacogenomic "_$SELECT(PSSACT="NONE":"Order Check:",1:PSSACT_" Order Check:")
DO INC
+12 SET PSSGNW=$GET(PSSPHAR(PSSSUB1,PSSXL,"DXID"))
Begin DoDot:4
+13 IF $LENGTH(PSSGNW)<56
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=" GENOMIC FINDING: "_PSSGNW
DO INC
QUIT
+14 SET PSSTEMPX=PSSGNW
SET PSSQLRF=1
DO FORMAT(PSSTEMPX)
KILL PSSQLRF
End DoDot:4
+15 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=" IMPACTED MEDICATION: "_$GET(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))
DO INC
+16 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=""
DO INC
End DoDot:3
+17 IF 'PSSCREEN
SET PSSTEMPX="ACTION: "_$GET(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG"))
DO FORMAT(PSSTEMPX)
+18 ;S PSSTEMPX="RATIONALE: "_$G(PSSPHAR(PSSSUB1,PSSXL,"RATIONALE LONG")) D FORMAT(PSSTEMPX)
+19 IF 'PSSCREEN
SET PSSTEMPX="MONITORING: "_$GET(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG"))
DO FORMAT(PSSTEMPX)
+20 IF PSSCREEN
SET PSSTEMPX="Reason(s): "_$GET(PSSPHAR(PSSSUB1,PSSXL,"SCREEN"))
DO FORMAT(PSSTEMPX)
+21 DO URL^PSSPGXUT
+22 IF 'PSSCREEN
DO ADDINFO
End DoDot:2
End DoDot:1
+23 QUIT
INC ;
+1 SET PSSXCT=PSSXCT+1
+2 QUIT
FORMAT(X) ;
+1 NEW PSSW1,PSSW2,PSSQLC
+2 SET DIWL=1
SET DIWR=79
SET DIWF=""
IF $GET(PSSQLRF)
SET DIWR=55
+3 KILL ^UTILITY($JOB,"W")
+4 DO ^DIWP
+5 IF $GET(PSSQLRF)
SET PSSQLC=1
Begin DoDot:1
+6 SET PSSW1=""
FOR
SET PSSW1=$ORDER(^UTILITY($JOB,"W",PSSW1))
if PSSW1=""
QUIT
Begin DoDot:2
+7 SET PSSW2=""
FOR
SET PSSW2=$ORDER(^UTILITY($JOB,"W",PSSW1,PSSW2))
if PSSW2=""
QUIT
Begin DoDot:3
+8 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=$SELECT(PSSQLC=1:" GENOMIC FINDING: ",1:" ")_$GET(^UTILITY($JOB,"W",PSSW1,PSSW2,0))
SET PSSQLC=PSSQLC+1
DO INC
End DoDot:3
End DoDot:2
End DoDot:1
+9 IF '$GET(PSSQLRF)
SET PSSW1=""
FOR
SET PSSW1=$ORDER(^UTILITY($JOB,"W",PSSW1))
if PSSW1=""
QUIT
Begin DoDot:1
+10 SET PSSW2=""
FOR
SET PSSW2=$ORDER(^UTILITY($JOB,"W",PSSW1,PSSW2))
if PSSW2=""
QUIT
Begin DoDot:2
+11 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=$GET(^UTILITY($JOB,"W",PSSW1,PSSW2,0))
DO INC
End DoDot:2
End DoDot:1
+12 KILL ^UTILITY($JOB,"W"),PSSTEMPX
+13 IF '$GET(PSSQLRF)
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,PSSXCT)=""
DO INC
+14 QUIT
COUNT() ;
+1 NEW PSSTCNT,PSSTCNTV,PSSACTID,PSSDRG50,PSSSUPFL
+2 SET PSSTCNT=""
FOR
SET PSSTCNT=$ORDER(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH3,"C",PSSTCNT))
if PSSTCNT=""
QUIT
Begin DoDot:1
+3 SET PSSCAT=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSPH3,"C",PSSTCNT))
+4 IF PSSCAT="displayAction"
Begin DoDot:2
+5 SET PSSTCNTV=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSTCNT,"T",1))
End DoDot:2
+6 IF PSSCAT="actionCategoryId"
Begin DoDot:2
+7 SET PSSACTID=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSTCNT,"T",1))
End DoDot:2
+8 IF PSSCAT="drug"
Begin DoDot:2
+9 SET PSSDRG50=$GET(^TMP("PSSPGXBS",$JOB,PSSPH1,PSSTCNT,"A","ien"))
End DoDot:2
End DoDot:1
+10 IF $GET(PSSPGXOR)
IF $GET(PSSORSUP)'="N"
IF $$SUPP^PSSPGXUT
QUIT -1
+11 IF $GET(PSSTCNTV)="Informational"
IF PSSACTID=2!(PSSACTID=4)!(PSSACTID=5)!(PSSACTID=9)!(PSSACTID=13)!(PSSACTID=14)
QUIT -1
+12 IF '$GET(PSSOPTFG)
IF $GET(PSSTCNTV)="Informational"
IF PSSDRG50
IF $$SUP^PSSPGXP2(PSSDRG50)
QUIT -1
+13 IF $GET(PSSTCNTV)=""
SET PSSTCNTV="NULL"
+14 IF PSSTCNTV="Interruptive"
SET PSSPGX1=PSSPGX1+1
QUIT "HIGH^"_PSSPGX1
+15 IF PSSTCNTV="Informational"
SET PSSPGX2=PSSPGX2+1
QUIT "MEDIUM^"_PSSPGX2
+16 SET PSSPGX3=PSSPGX3+1
+17 QUIT "NULL^"_PSSPGX3
+18 ;
ADDINFO ;Create additional information global
+1 NEW PSSAIC,PSSMARG,PSSGNWAI,PSSRCE,PSSRCEFL,PSSRCEVL,PSSDORD,PSSDORDC,PSSPHD,PSSCITX1,PSSCITX2,PSSCITX3,PSSCITX4,PSSXLINE
+2 SET PSSAIC=1
+3 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="Pharmacogenomics Detailed Information"
DO INCA
+4 DO LINE
SET PSSXLINE=0
+5 SET PSSGNWAI=$GET(PSSPHAR(PSSSUB1,PSSXL,"DXID"))
IF PSSGNWAI'=""
SET PSSXLINE=1
Begin DoDot:1
+6 IF $LENGTH(PSSGNWAI)<63
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="GENOMIC FINDING: "_PSSGNWAI
DO INCA
QUIT
+7 SET PSSMARG=62
SET PSSPHD="GENOMIC FINDING: "
DO FORMATAI^PSSPGXP2(PSSGNWAI,PSSMARG,1,PSSPHD)
End DoDot:1
+8 IF $GET(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))'=""
SET PSSXLINE=1
Begin DoDot:1
+9 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="IMPACTED MEDICATION: "_$GET(PSSPHAR(PSSSUB1,PSSXL,"DRUG"))
DO INCA
End DoDot:1
+10 IF PSSXLINE
DO LINE
SET PSSXLINE=0
+11 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="SEVERITY LEVEL: "_PSSACT
DO INCA
+12 DO LINE
SET PSSXLINE=0
+13 SET PSSRCEFL=0
+14 SET PSSRCE=""
FOR
SET PSSRCE=$ORDER(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE))
if PSSRCE=""
QUIT
Begin DoDot:1
+15 SET PSSRCEVL=PSSRCE
SET PSSDORDC=0
+16 SET PSSDORD=""
FOR
SET PSSDORD=$ORDER(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE,"DISORD",PSSDORD))
if PSSDORD=""
QUIT
Begin DoDot:2
+17 IF 'PSSDORDC
SET PSSRCEVL=PSSRCEVL_" ("_PSSDORD
SET PSSDORDC=1
QUIT
+18 SET PSSRCEVL=PSSRCEVL_","_PSSDORD
End DoDot:2
+19 IF PSSDORDC
SET PSSRCEVL=PSSRCEVL_")"
+20 IF 'PSSRCEFL
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="EVIDENCE RATINGS: "
DO INCA
SET PSSRCEFL=1
+21 IF $LENGTH(PSSRCEVL)<65
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=" SOURCE: "_PSSRCEVL
DO INCA
+22 IF $LENGTH(PSSRCEVL)>64
SET PSSMARG=64
SET PSSPHD=" SOURCE: "
DO FORMATAI^PSSPGXP2(PSSRCEVL,PSSMARG,1,PSSPHD)
+23 if 'PSSRCEFL
QUIT
+24 SET PSSRCEVL=""
SET PSSDORDC=0
+25 SET PSSDORD=""
FOR
SET PSSDORD=$ORDER(PSSPHAR(PSSSUB1,PSSXL,"EVIDRATE",PSSRCE,"RATING",PSSDORD))
if PSSDORD=""
QUIT
Begin DoDot:2
+26 IF 'PSSDORDC
SET PSSRCEVL=PSSDORD
SET PSSDORDC=1
QUIT
+27 SET PSSRCEVL=PSSRCEVL_", "_PSSDORD
End DoDot:2
+28 IF PSSRCEVL=""
DO LINE
QUIT
+29 IF $LENGTH(PSSRCEVL)<65
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=" RATING: "_PSSRCEVL
DO INCA
DO LINE
QUIT
+30 SET PSSMARG=64
SET PSSPHD=" SOURCE: "
DO FORMATAI^PSSPGXP2(PSSRCEVL,PSSMARG,1,PSSPHD)
+31 DO LINE
End DoDot:1
+32 IF $DATA(PSSPHAR(PSSSUB1,PSSXL,"ACTION LONG"))
DO ORAI^PSSPGXP2("ACTION LONG")
+33 IF $DATA(PSSPHAR(PSSSUB1,PSSXL,"RATIONALE LONG"))
DO ORAI^PSSPGXP2("RATIONALE LONG")
+34 IF $DATA(PSSPHAR(PSSSUB1,PSSXL,"MONITORING LONG"))
DO ORAI^PSSPGXP2("MONITORING LONG")
+35 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="CITATIONS:"
DO INCA
+36 ;pass in 0 for paramater 3 for no indentation, AND 79 FOR PARAM 2
+37 SET PSSCITX1=""
FOR
SET PSSCITX1=$ORDER(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1))
if PSSCITX1=""
QUIT
Begin DoDot:1
+38 SET PSSCITX4=$GET(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1))
+39 SET PSSCITX2=$EXTRACT(PSSCITX4,2,($FIND(PSSCITX4,")")-2))
+40 IF $DATA(PSSCITX3(PSSCITX2))
QUIT
+41 SET PSSCITX3(PSSCITX2)=""
+42 IF $GET(PSSPGXOR)
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=PSSCITX4
DO INCA
QUIT
+43 SET PSSRCEVL=$GET(PSSPHAR(PSSSUB1,PSSXL,"CITPRT",PSSCITX1))
+44 DO FORMATAI^PSSPGXP2(PSSRCEVL,79,0,,1)
End DoDot:1
+45 SET PSSPHDT("DISDATE")=$SELECT($GET(PSSPHDT("PSSDIFD"))>$GET(PSSPHDT("PSSCUSTD")):$GET(PSSPHDT("PSSDIFD")),1:$GET(PSSPHDT("PSSCUSTD")))
+46 DO LINE
SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)="First Databank database updated on "_$EXTRACT($GET(PSSPHDT("DISDATE")),5,6)_"/"_$EXTRACT($GET(PSSPHDT("DISDATE")),7,8)_"/"_$EXTRACT($GET(PSSPHDT("DISDATE")),1,4)_"."
+47 QUIT
INCA ;
+1 SET PSSAIC=PSSAIC+1
+2 QUIT
LINE ;
+1 SET ^TMP($JOB,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=""
DO INCA
QUIT