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

PSSPGXP2.m

Go to the documentation of this file.
PSSPGXP2 ;BIR/RTR - PHARMACOGENOMICS PRODUCTION ORDER CHECK  #2;09/20/07
 ;;1.0;PHARMACY DATA MANAGEMENT;**262**;9/30/97;Build 66
 ;
 ; Reference to EHCHK^PSJORUT2 is supported by ICR #2376
 ; Reference to BLD^PSOOCPGX is supported by ICR #7527
 ;
FORMATAI(X,PSSRMG,PSSWGLF,PSSPHDS,PSSPHDLF) ; 
 N PSSW1,PSSW2,PSSAILC,PSSPHDSS,PSSUT,PSSUTL
 S PSSUT=79-PSSRMG F PSSUTL=1:1:PSSUT S PSSPHDSS=$G(PSSPHDSS)_" "
 S DIWL=1,DIWR=PSSRMG,DIWF=""
 K ^UTILITY($J,"W")
 D ^DIWP
 I PSSWGLF S PSSAILC=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,"AI",PSSAIC)=$S(PSSAILC=1:PSSPHDS,1:PSSPHDSS)_$G(^UTILITY($J,"W",PSSW1,PSSW2,0)) S PSSAILC=PSSAILC+1 D INCA^PSSPGXPR
 I '$G(PSSWGLF) 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
 ..I $G(^UTILITY($J,"W",PSSW1,PSSW2,0))'="" S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=$G(^UTILITY($J,"W",PSSW1,PSSW2,0)) D INCA^PSSPGXPR
 K ^UTILITY($J,"W")
 I $G(PSSPHDLF) Q
 I '$G(PSSWGLF) D LINE^PSSPGXPR
 Q
 ;
ORAI(PSORMESS) ;
 I $G(PSORMESS)'="ACTION LONG",$G(PSORMESS)'="RATIONALE LONG",$G(PSORMESS)'="MONITORING LONG" Q
 S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=$P(PSORMESS," ")_":" D INCA^PSSPGXPR
 S PSSRCEVL=$G(PSSPHAR(PSSSUB1,PSSXL,PSORMESS))
 I $G(PSSPGXOR) S ^TMP($J,"PSSXWARN",PSSACT,PSSXL,"AI",PSSAIC)=PSSRCEVL D INCA^PSSPGXPR,LINE^PSSPGXPR Q
 D FORMATAI(PSSRCEVL,79,0)
 Q
 ;
SUP(PSSSPRDG) ;Suppress PGx order check based on Profile Meds
 I '$G(PSSSPRDG) Q 0
 N PSSSPRN1,PSSSPRN3,PSSSPRNN,PSSSPRIN,PSSSPRL,PSSSPRFL,PSSSINDX,PSSSPRDA,PSSSPRDC,PSSSPRDN,PSSSPRX,PSSSPRDX,PSSSPRZ,PSSSPRZZ
 S PSSSPRNN=$G(^PSDRUG(PSSSPRDG,"ND"))
 S PSSSPRN1=$P(PSSSPRNN,"^"),PSSSPRN3=$P(PSSSPRNN,"^",3)
 I 'PSSSPRN1!('PSSSPRN3) Q 0
 D PGXING^PSNAPIS(PSSSPRN1,PSSSPRN3,.PSSSPRIN)
 S PSSSPRL="" F  S PSSSPRL=$O(PSSSPRIN("ING",PSSSPRL)) Q:PSSSPRL=""  D
 .I $P(PSSSPRIN("ING",PSSSPRL),"^",2),$P(PSSSPRIN("ING",PSSSPRL),"^",3) Q
 .K PSSSPRIN("ING",PSSSPRL)
 I '$D(PSSSPRIN) Q 0
 S (PSSSPRFL,PSSSINDX)=0
 I PSSPGXPK="I" D SUPIN I PSSSPRFL Q 1
 D SUPOU I PSSSPRFL Q 1
 Q 0
 ;
SUPIN  ;Check Inpatient profile, no need for status check
 K ^TMP($J,"ORDERS"),PSSSPRZ
 D ENCHK^PSJORUT2(PSSDFN,0)
 D CHECK K ^TMP($J,"ORDERS")
 Q
 ;
SUPOU  ;Check Outpatient profile - rx's only, no need for status check
 K ^TMP($J,"ORDERS")
 D BLD^PSOOCPGX(PSSDFN,90)
 D CHECK K ^TMP($J,"ORDERS")
 Q
 ;
CHECK  ;
 N PSSSPRZ
 S PSSSINDX="" F  S PSSSINDX=$O(^TMP($J,"ORDERS",PSSSINDX)) Q:PSSSINDX=""!(PSSSPRFL)  D
 .S PSSSPRDA=$G(^TMP($J,"ORDERS",PSSSINDX))
 .I $P(PSSSPRDA,"^",5)["P" Q
 .S PSSSPRDC=$P(PSSSPRDA,"^",2),PSSSPRDX=$P(PSSSPRDC,"A"),PSSSPRDN=$P(PSSSPRDC,"A",2)  Q:'PSSSPRDN
 .I '$P($$PGX^PSNAPIS(PSSSPRDX,PSSSPRDN),"^") Q
 .K PSSSPRZ S PSSSPRX=$$PSJING^PSNAPIS(PSSSPRDX,PSSSPRDN,.PSSSPRZ)
 .S PSSSPRZZ="" F  S PSSSPRZZ=$O(PSSSPRZ(PSSSPRZZ)) Q:PSSSPRZZ=""!(PSSSPRFL)  I $D(PSSSPRIN("ING",PSSSPRZZ)) S PSSSPRFL=1
 K ^TMP($J,"ORDERS")
 Q