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

APCHS7R.m

Go to the documentation of this file.
  1. APCHS7R ; IHS/CMI/LAB - PART 7 OF APCHS -- SUMMARY PRODUCTION COMPONENTS ;
  1. ;;2.0;IHS PCC SUITE;**2,5**;MAY 14, 2009
  1. ;
  1. SET ;
  1. ;S APCHCNT=APCHCNT+1
  1. S APCHSRX=P,APCHSREF=0 D REF
  1. S APCHSTAT(C,N,D,(9999999-F),M)=$S(P:$P(^PSRX(P,0),U),1:"")_U_APCHSREF
  1. S APCHMDSP(D,N,F)=""
  1. Q
  1. MEDRCON ; ************* MEDS BY PRESCRIPTION STATUS *************
  1. ;
  1. CONT ; <SETUP>
  1. I '$D(^AUPNVMED("AC",APCHSPAT)),'$D(^PS(52.41,"P",APCHSPAT)),'$D(^PS(55,APCHSPAT,"NVA")) Q
  1. X APCHSCKP Q:$D(APCHSQIT) I 'APCHSNPG W ! X APCHSBRK
  1. ; <BUILD>
  1. NEW APCHMEDS,APCHSTAT,APCHCNT,APCHMDSP,APCHDI,APCHDT,APCHM,APCHN,APCHSSGY,APCHSIG,APCHZ,APCHSN,APCHST,APCHI,APCHD
  1. NEW X,F,M,V,D,N,P,C,E,S,R,J
  1. S APCHCNT=0
  1. K APCHMEDS,APCHMDSP
  1. D GETMEDS^APCHSMU1(APCHSPAT,$$FMADD^XLFDT(DT,-395),DT,,,,,.APCHMEDS)
  1. ;I '$D(APCHMEDS) D MEDX Q
  1. ;NOW REORDER THEM BY STATUS
  1. K APCHSTAT
  1. S X=0 F S X=$O(APCHMEDS(X)) Q:X'=+X D
  1. .S P=""
  1. .S F=$P(APCHMEDS(X),U,1) ;FILL DATE
  1. .S M=$P(APCHMEDS(X),U,4) ;vmed ien
  1. .S V=$P(APCHMEDS(X),U,5) ;visit ien
  1. .S D=$P(^AUPNVMED(M,0),U) ;drug ien
  1. .S N=$P(^AUPNVMED(M,0),U,4) ;non table drug name
  1. .I N="" S N=$P(^PSDRUG(D,0),U) ;drug name
  1. .I $P($G(^AUPNVSIT(X,0)),U,7)="E" S C="OUTSIDE MEDICATIONS" D SET Q
  1. .;I $P($G(^AUPNVMED(X,11)),U,8)]"" Q ;we will get EHR outside meds from the NVA multiple later S C="OUTSIDE MEDICATIONS" D SET Q
  1. .S P=$O(^PSRX("APCC",M,0))
  1. .I 'P S C="OUTSIDE MEDICATIONS" D SET Q
  1. .I '$D(^PSRX(P,0)) S P="",C="OUTSIDE MEDICATIONS" D SET Q
  1. .S S=$$VALI^XBDIQ1(52,P,100) ;GET STATUS
  1. .I S=0 S C="ACTIVE MEDICATIONS" D SET Q
  1. .I S=3 S C="HOLD" D SET Q
  1. .I S=5 S C="SUSPENDED" D SET Q
  1. .I S=11 D Q
  1. ..;get expiration date
  1. ..S E=$P($G(^PSRX(P,3)),U,6)
  1. ..S R=$$CHRONIC^APCHS72(M) ;chronic flag
  1. ..I 'R D Q
  1. ...;not chronic, check to see if expired in past 14 days, if not quit
  1. ...S J=$$FMDIFF^XLFDT(DT,E)
  1. ...Q:J>14 ;more than 14 days ago so don't display
  1. ...;check to see if same drug is already listed somewhere
  1. ...Q:$O(APCHMDSP(D,N,F)) ;another of same drug after this date
  1. ...S C="EXPIRED" D SET Q
  1. ..;chronic = check 120 days
  1. ..S J=$$FMDIFF^XLFDT(DT,E)
  1. ..Q:J>120 ;expired more than 120 days ago
  1. ..Q:$O(APCHMDSP(D,N,F)) ;another one there so don't display this one
  1. ..S C="EXPIRED" D SET Q
  1. .I S=12!(S=14) D
  1. ..S E=$P(^AUPNVMED(M,0),U,8) ;discontinued date in v med
  1. ..I E="" S E=$P($G(^PSRX(P,3)),U,5) ;canceled date in 52
  1. ..I $$FMDIFF^XLFDT(DT,E)>30 Q ;only discontinueds in past 30 days
  1. ..Q:$O(APCHMDSP(D,N,F))
  1. ..S C="DISCONTINUED MEDICATIONS" D SET Q
  1. GETNVA ;NVA from file 55
  1. S X=0 F S X=$O(^PS(55,APCHSPAT,"NVA",X)) Q:X'=+X D
  1. .I $P($G(^PS(55,APCHSPAT,"NVA",X,999999911)),U,1),$D(^AUPNVMED($P(^PS(55,APCHSPAT,"NVA",X,999999911),U,1),0)) Q ;got this with V MED
  1. .;S L=$P(^PS(55,APCHSPAT,"NVA",X,0),U,9)
  1. .;:'L
  1. .S L=$P($P($G(^PS(55,APCHSPAT,"NVA",X,0)),U,10),".")
  1. .S L=9999999-L
  1. .;Q:$P(^PS(55,APCHSPAT,"NVA",X,0),U,6)=1 ;discontinued
  1. .;I $P(^PS(55,APCHSPAT,"NVA",X,0),U,7)]"" ;discontinued date
  1. .S D=$P(^PS(55,APCHSPAT,"NVA",X,0),U,2)
  1. .I D="" S D="NO DRUG IEN"
  1. .S N=$S(D:$P(^PSDRUG(D,0),U,1),1:$P(^PS(50.7,$P(^PS(55,APCHSPAT,"NVA",X,0),U,1),0),U,1))
  1. .S APCHSTAT("NVA",N,D,(9999999-L))=U_"N",$P(APCHSTAT("NVA",N,D,(9999999-L)),U,8)=$P(^PS(55,APCHSPAT,"NVA",X,0),U,4)_" "_$P(^PS(55,APCHSPAT,"NVA",X,0),U,5)_U_$P(^PS(55,APCHSPAT,"NVA",X,0),U,7)
  1. GETPEND ;
  1. NEW PEN,ORD
  1. F PEN=0:0 S PEN=$O(^PS(52.41,"P",APCHSPAT,PEN)) Q:'PEN S ORD=^PS(52.41,PEN,0),APCHI=$P(ORD,"^",8),APCHD=+$P(ORD,"^",9) D:$P(ORD,"^",3)'="DC"&($P(ORD,"^",3)'="DE")&($P(ORD,"^",3)'="HD")
  1. .S APCHN=$S(APCHD:$P($G(^PSDRUG(APCHD,0)),"^"),+APCHI&('APCHD):$P(^PS(50.7,APCHI,0),"^")_" "_$P(^PS(50.606,$P(^PS(50.7,APCHI,0),"^",2),0),"^"),1:"") Q:APCHN']""
  1. .S APCHSTAT("PENDING",APCHN,PEN)=$$VAL^XBDIQ1(52.41,PEN,13)
  1. .S C=0,X="" F S C=$O(^PS(52.41,PEN,"SIG",C)) Q:'C S X=X_$S(X]"":" ",1:"")_^PS(52.41,PEN,"SIG",C,0)
  1. .S $P(APCHSTAT("PENDING",APCHN,PEN),U,2)=X
  1. DISP ;DISPLAY MEDS
  1. ;ACTIVE MEDS FIRST - ALL OF THEM
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. I '$D(APCHSTAT("ACTIVE MEDICATIONS")) G OUT
  1. W "ACTIVE MEDICATIONS",!
  1. S APCHCNT=0
  1. S APCHT=1
  1. S APCHN="" F S APCHN=$O(APCHSTAT("ACTIVE MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("ACTIVE MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 F S APCHDT=$O(APCHSTAT("ACTIVE MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 F S APCHM=$O(APCHSTAT("ACTIVE MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("ACTIVE MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSP
  1. OUT ;OUTSIDE MEDICATIONS
  1. I '$D(APCHSTAT("OUTSIDE MEDICATIONS")),'$D(APCHSTAT("NVA")) G HOLD
  1. W "--------------------",!
  1. W "OUTSIDE MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("OUTSIDE MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("OUTSIDE MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 S APCHDT=$O(APCHSTAT("OUTSIDE MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 S APCHM=$O(APCHSTAT("OUTSIDE MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("OUTSIDE MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSPO
  1. ;now display nva
  1. S APCHN="" F S APCHN=$O(APCHSTAT("NVA",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("NVA",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 S APCHDT=$O(APCHSTAT("NVA",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHZ=APCHSTAT("NVA",APCHN,APCHDI,APCHDT) D MEDDSPN
  1. HOLD ;HOLD MEDICATIONS
  1. I '$D(APCHSTAT("HOLD MEDICATIONS")) G SUSPEND
  1. S APCHT=3
  1. W "--------------------",!
  1. W "ACTIVE NOT DISPENSED MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("HOLD MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("HOLD MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 F S APCHDT=$O(APCHSTAT("HOLD MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 F S APCHM=$O(APCHSTAT("HOLD MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("HOLD MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSP
  1. SUSPEND ;
  1. I '$D(APCHSTAT("SUSPEND MEDICATIONS")) G PENDING
  1. S APCHT=4
  1. W !,"--------------------",!
  1. W "SUSPENDED MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("SUSPEND MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("SUSPEND MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 F S APCHDT=$O(APCHSTAT("SUSPEND MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 F S APCHM=$O(APCHSTAT("SUSPEND MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("SUSPEND MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSP
  1. PENDING ;
  1. I '$D(APCHSTAT("PENDING")) G EXPIRED
  1. W "--------------------",!
  1. W "PENDING MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("PENDING",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("PENDING",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHZ=APCHSTAT("PENDING",APCHN,APCHDI) D MEDDSPP
  1. EXPIRED ;
  1. I '$D(APCHSTAT("EXPIRED MEDICATIONS")) G DISCONT
  1. S APCHT=6
  1. W "--------------------",!
  1. W "CHRONIC AND RECENTLY EXPIRED MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("EXPIRED MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("EXPIRED MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 F S APCHDT=$O(APCHSTAT("EXPIRED MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 F S APCHM=$O(APCHSTAT("EXPIRED MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("EXPIRED MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSP
  1. DISCONT ;
  1. I '$D(APCHSTAT("DISCONTINUED MEDICATIONS")) G MEDX
  1. S APCHT=7
  1. W "--------------------",!
  1. W "RECENTLY DISCONTINUED MEDICATIONS",!
  1. S APCHN="" F S APCHN=$O(APCHSTAT("DISCONTINUED MEDICATIONS",APCHN)) Q:APCHN=""!($D(APCHSQIT)) D
  1. .S APCHDI="" F S APCHDI=$O(APCHSTAT("DISCONTINUED MEDICATIONS",APCHN,APCHDI)) Q:APCHDI=""!($D(APCHSQIT)) D
  1. ..S APCHDT=0 F S APCHDT=$O(APCHSTAT("DISCONTINUED MEDICATIONS",APCHN,APCHDI,APCHDT)) Q:APCHDT'=+APCHDT!($D(APCHSQIT)) D
  1. ...S APCHM=0 F S APCHM=$O(APCHSTAT("DISCONTINUED MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM)) Q:APCHM'=+APCHM!($D(APCHSQIT)) S APCHZ=APCHSTAT("DISCONTINUED MEDICATIONS",APCHN,APCHDI,APCHDT,APCHM) D MEDDSP
  1. MEDX ;
  1. Q
  1. MEDDSPP ;DISPLAY MEDICATION
  1. S APCHCNT=APCHCNT+1
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W APCHCNT,".",?6,APCHN W:$P(APCHZ,U,2) ?60,"Refills: ",$S('$P(APCHZ,U,1):"NONE",1:$P(APCHZ,U,1)) W !
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. K ^UTILITY($J,"W") S X=$P(APCHZ,U,2),DIWL=0,DIWR=60 D ^DIWP
  1. W ?6,"Directions: "_$S($L($G(^UTILITY($J,"W",0,1,0)))>1:$G(^UTILITY($J,"W",0,1,0)),$L($G(^UTILITY($J,"W",0,1,0)))=1:"No directions on file",1:" "),!
  1. I $G(^UTILITY($J,"W",0))>1 F F=2:1:$G(^UTILITY($J,"W",0)) Q:$D(APCHSQIT) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W ?19,$G(^UTILITY($J,"W",0,F,0)),!
  1. K ^UTILITY($J,"W")
  1. Q
  1. MEDDSPO ;DISPLAY MEDICATION
  1. S APCHSN=^AUPNVMED(APCHM,0)
  1. S APCHCNT=APCHCNT+1
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W APCHCNT,".",?6,APCHN W:$P(APCHZ,U,2) ?60,"Refills left: ",$S('$P(APCHZ,U,2):"NONE",1:$P(APCHZ,U,2)) W !
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. S APCHSIG=$P(^AUPNVMED(APCHM,0),U,5) D SIG
  1. S X=APCHSSGY
  1. K ^UTILITY($J,"W") S DIWL=0,DIWR=60 D ^DIWP
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W ?6,"Directions: "_$S($L($G(^UTILITY($J,"W",0,1,0)))>1:$G(^UTILITY($J,"W",0,1,0)),$L($G(^UTILITY($J,"W",0,1,0)))=1:"No directions on file",1:" "),!
  1. I $G(^UTILITY($J,"W",0))>1 F F=2:1:$G(^UTILITY($J,"W",0)) Q:$D(APCHSQIT) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W ?19,$G(^UTILITY($J,"W",0,F,0)),!
  1. K ^UTILITY($J,"W")
  1. Q
  1. MEDDSPN ;
  1. S APCHCNT=APCHCNT+1
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W APCHCNT,".",?6,APCHN,! ;W:$P(APCHZ,U,2) ?60,"Refills left: ",$S('$P(APCHZ,U,2):"NONE",1:$P(APCHZ,U,2)) W !
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. S APCHSIG=$P(APCHZ,U,8) D SIG
  1. S X=APCHSSGY
  1. K ^UTILITY($J,"W") S DIWL=0,DIWR=60 D ^DIWP
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W ?6,"Directions: "_$S($L($G(^UTILITY($J,"W",0,1,0)))>1:$G(^UTILITY($J,"W",0,1,0)),$L($G(^UTILITY($J,"W",0,1,0)))=1:"No directions on file",1:" "),!
  1. I $G(^UTILITY($J,"W",0))>1 F F=2:1:$G(^UTILITY($J,"W",0)) Q:$D(APCHSQIT) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W ?19,$G(^UTILITY($J,"W",0,F,0)),!
  1. I $P(APCHZ,U,9) W !?19,"DATE DISCONTINUED: ",$$FMTE^XLFDT($P(APCHZ,U,9))
  1. K ^UTILITY($J,"W")
  1. Q
  1. MEDDSP ;DISPLAY MEDICATION
  1. S APCHSN=^AUPNVMED(APCHM,0)
  1. S APCHCNT=APCHCNT+1
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W APCHCNT,".",?6,APCHN,?40,"Rx #:",$P(APCHZ,U,1),?60,"Refills left: ",$S('$P(APCHZ,U,2):"NONE",1:$P(APCHZ,U,2)),!
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. S APCHSIG=$P(^AUPNVMED(APCHM,0),U,5) D SIG
  1. S X=APCHSSGY
  1. K ^UTILITY($J,"W") S DIWL=0,DIWR=60 D ^DIWP
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W ?6,"Directions: "_$S($L($G(^UTILITY($J,"W",0,1,0)))>1:$G(^UTILITY($J,"W",0,1,0)),$L($G(^UTILITY($J,"W",0,1,0)))=1:"No directions on file",1:" "),!
  1. I $G(^UTILITY($J,"W",0))>1 F F=2:1:$G(^UTILITY($J,"W",0)) Q:$D(APCHSQIT) D
  1. .X APCHSCKP Q:$D(APCHSQIT)
  1. .W ?19,$G(^UTILITY($J,"W",0,F,0)),!
  1. K ^UTILITY($J,"W")
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. I APCHT=1!(APCHT=6) W ?6,"Last Filled: ",$$D(9999999-APCHDT) D
  1. .S APCHSORT="" I APCHT=1 S APCHSORT=$P($G(^AUPNVMED(APCHM,11)),U)
  1. .I APCHSORT["RETURNED TO STOCK" W " ---",APCHSORT," ",$$FMTE^XLFDT($P(^AUPNVMED(APCHM,0),U,8),"2D")
  1. I APCHT=6 I $P(APCHZ,U,1) S E=$P($G(^PSRX($P(APCHZ,U,1),3)),U,6) W ?30,"Expired: ",$$D(E)
  1. W !
  1. I APCHT=3 W ?6,"Hold Reason: " I $P(APCHZ,U,1) W $P($G(^PSRX($P(APCHZ,U,1),"H")),U,1)
  1. I APCHT=7 W ?6,"Discontinued: " D
  1. .S E=$P(^AUPNVMED(APCHM,0),U,8) ;discontinued date in v med
  1. .I E="",$P(APCHZ,U,1) S E=$P($G(^PSRX($P(APCHZ,U,1),3)),U,5) ;canceled date in 52
  1. .W $$D(E),!
  1. Q
  1. D(D) ;
  1. I D="" Q ""
  1. Q $E(D,4,5)_"-"_$E(D,6,7)_"-"_$E(D,2,3)
  1. ;
  1. SIG ;CONSTRUCT THE FULL TEXT FROM THE ENCODED SIG
  1. S APCHSSGY="" F APCHSP=1:1:$L(APCHSIG," ") S X=$P(APCHSIG," ",APCHSP) I X]"" D
  1. . S Y=$O(^PS(51,"B",X,0)) I Y>0 S X=$P(^PS(51,Y,0),"^",2) I $D(^(9)) S Y=$P(APCHSIG," ",APCHSP-1),Y=$E(Y,$L(Y)) S:Y>1 X=$P(^(9),"^",1)
  1. . S APCHSSGY=APCHSSGY_X_" "
  1. Q
  1. ;
  1. REF ;DETERMINE THE NUMBER OF REFILLS REMAINING
  1. I 'APCHSRX S APCHSREF=$P($G(^AUPNVMED(M,11)),U,7) S:APCHSREF="" APCHSREF=0 Q
  1. S APCHSRFL=$P(^PSRX(APCHSRX,0),U,9) S APCHSREF=0 F S APCHSREF=$O(^PSRX(APCHSRX,1,APCHSREF)) Q:'APCHSREF S APCHSRFL=APCHSRFL-1
  1. S APCHSREF=APCHSRFL
  1. Q
  1. ;
  1. ;
  1. SITE ;DETERMINE IF OUTSIDE LOCATION INFO PRESENT
  1. S APCHSITE=""
  1. I $D(^AUPNVSIT(APCHSVDF,21))#2 S APCHSITE=$P(^(21),U) Q
  1. Q:$P(^AUPNVSIT(APCHSVDF,0),U,6)=""
  1. I $P(^AUPNVSIT(APCHSVDF,0),U,6)'=DUZ(2) S APCHSITE=$E($P(^DIC(4,$P(^AUPNVSIT(APCHSVDF,0),U,6),0),U),1,30)
  1. Q
  1. ;
  1. CS(D) ;
  1. I $P(^PSDRUG(D,0),U,3)="" Q 0
  1. NEW Y S Y=$P(^PSDRUG(D,0),U,3)
  1. ;I Y[1 Q 1
  1. I Y[2 Q 1
  1. I Y[3 Q 1
  1. I Y[4 Q 1
  1. I Y[5 Q 1
  1. ;I Y["C" Q 1
  1. ;I Y["A" Q 1
  1. Q 0
  1. ;
  1. CTR(X,Y) ;EP - Center X in a field Y wide.
  1. Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X