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

PSJOCPGX.m

Go to the documentation of this file.
PSJOCPGX ;BIR/MV - PGx ORDER CHECKS DRIVER ; 9/10/14 10:53pm
 ;;5.0;INPATIENT MEDICATIONS;**447**;16 DEC 97;Build 49
 ;
 ; Reference to PGXOC^PSSPGX is supported by ICR #7526.
 ;
EN(PSJPDRG) ;
 NEW PSJDRGS,PSJX,PSJDIEN,PSSOUT
 ;PSJDIEN(DRUGNAME)=DRUG IEN
 Q:+$G(PSJDGCK)  ;Not perform PGx OC from Check Interactions hidden action yet. PSJPDRG may still hang around from the CK action.
 F X=0:0 S X=$O(PSJPDRG(X)) Q:'X  S PSJX=PSJPDRG(X),PSJDRGS(+PSJX)="",PSJDRGS(+PSJX,"DRUGNAME")=$P(PSJX,U,2),PSJDIEN($P(PSJX,U,2))=+PSJX
 K PSJX
 Q:'$D(PSJDRGS)
 D PGXOC^PSSPGX("PSJPGX",DFN,.PSJDRGS,.PSSOUT,"I")
 I $D(^TMP($J,"PSSXWARN")) D DISPLAY K ^TMP($J,"PSSXWARN")
 Q
DISPLAY ;
 NEW PSJTYPE,PSJSUB,PSJDD,PSJDNM,PSJUSER,PSJEFLG
 S PSJUSER=$S(+$G(PSJSYSU)=3:1,+$G(PSJSYSU)=1:1,1:0)
 F PSJTYPE="ERROR","HIGH","MEDIUM","NONE" D  Q:$G(PSGORQF)
 . F PSJSUB=0:0 S PSJSUB=$O(^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB)) Q:'PSJSUB  Q:$G(PSGORQF)  D
 .. S PSJDD=""
 .. W:'+$G(PSJEFLG) @IOF K PSJEFLG ;If only an error is returned, don't refresh the screen.
 .. D DISPPGX
 .. I (PSJTYPE="HIGH") D ADDINFO(PSJTYPE,PSJSUB) I PSJUSER D RINTERV^PSJGMRA("PHARMACOGENOMIC HIGH ORDER CHECK",$G(PSJDNM)) W ! Q
 .. I (PSJTYPE="MEDIUM") D ADDINFO(PSJTYPE,PSJSUB) I PSJUSER D INTERV^PSJGMRA("PHARMACOGENOMIC MEDIUM ORDER CHECK",$G(PSJDNM)) W ! Q
 I '+$G(PSGORQF) W ! D PAUSE^PSJLMUT1
 Q
DISPPGX ;
 NEW PSJTXT,PSJCNT
 F PSJCNT=0:0 S PSJCNT=$O(^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB,PSJCNT)) Q:'PSJCNT  D
 . I (PSJTYPE="ERROR"),'$O(^TMP($J,"PSSXWARN",PSJTYPE)) S PSJEFLG=1
 . S PSJTXT=^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB,PSJCNT)
 . I PSJTXT["IMPACTED MEDICATION" S PSJDNM=$P(PSJTXT,": ",2),PSJDD=+$G(PSJDIEN(PSJDNM))
 . I (PSJTXT["For more details"),(($Y+5)>IOSL) W ! D PAUSE^PSJLMUT1 W @IOF
 . I ($Y+4)>IOSL W ! D PAUSE^PSJLMUT1 W @IOF
 .W !,PSJTXT
 ;If the last error has displayed, issue a Press return.
 I +$O(^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB)) W ! D PAUSE^PSJLMUT1
 Q
ADDINFO(PSJTYPE,PSJSUB) ;Display additional information
 NEW ZTDESC,ZTRTN,ZTSAVE,ZTSK,ZTREQ
 I $G(PSJTYPE)=""!'+$G(PSJSUB) Q
 Q:'$$ASK()
 K IOP,%ZIS,POP S %ZIS="QM" W ! D ^%ZIS
 I POP K SEL,DIR,DTOUT,DUOUT,DIRUT,MONT W !,"NOTHING PRINTED",! Q
 I $D(IO("Q")) D  Q
 .S ZTRTN="AIPRT^PSJOCPGX",ZTDESC="Pharmacogenomic Order Check - Additional Information"
 .S ZTSAVE("PSJTYPE")="",ZTSAVE("PSJSUB")="",ZTSAVE("^TMP($J,""PSSXWARN"",")=""
 .D ^%ZTLOAD,^%ZISC D
 ..W:'$D(ZTSK) $C(7)," (Task NOT queued.)"
 ..W:$D(ZTSK) !,"Pharmacogenomic Additional Information Queued to Print!",!
 ..S:$D(ZTQUEUED) ZTREQ="Q"
 D AIPRT,^%ZISC
 Q
ASK() ;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 wish to display the additional information for Pharmacogenomic Order Check"
 D ^DIR
 I 'Y W ! Q 0
 Q 1
 ;
AIPRT ;
 NEW PSJCNT,PSJLINE,PSJQUIT,DIR
 I $G(PSJTYPE)=""!'+$G(PSJSUB) Q
 I $E(IOST)="C" D FULL^VALM1
 S PSJQUIT=0
 F PSJCNT=0:0 S PSJCNT=$O(^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB,"AI",PSJCNT)) Q:'PSJCNT  Q:PSJQUIT  D
 . S PSJLINE=1
 . W !,^TMP($J,"PSSXWARN",PSJTYPE,PSJSUB,"AI",PSJCNT)
 . I $Y+4>IOSL,$E(IOST)="C" W ! D PAUSE^VALM1 S:$G(X)="^" PSJQUIT=1  W @IOF
 W:$G(PSJLINE) !
 Q