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

BHSPMH1A.m

Go to the documentation of this file.
  1. BHSPMH1A ;IHS/MSC/MGH - Health Summary for Patient wellness handout ;27-May-2008 14:21;MGH
  1. ;;1.0;HEALTH SUMMARY COMPONENTS;**1,2**;March 17,2006
  1. ;===================================================================
  1. ;Taken from APCHPMH1 routine
  1. ;
  1. ;
  1. MEDBLD ; EP - BUILD ARRAY OF MEDICATIONS
  1. ;
  1. K APCHSRXP,APCHSCOT
  1. N APCHSN,APCHSDTM,APCHSSTA,APCHSDYS,RX0,RX2,ST,ST0
  1. Q:'$D(^AUPNVMED(APCHSMX,0))
  1. S APCHSN=^AUPNVMED(APCHSMX,0)
  1. Q:'$D(^PSDRUG($P(APCHSN,U,1)))
  1. S APCHSDTM=-APCHSIVD\1+9999999 ;Visit date from V Med .03 field
  1. Q:$P(APCHSN,U,8)]"" ;date discontinued
  1. S APCHSRXP=$S($D(^PSRX("APCC",APCHSMX)):$O(^(APCHSMX,0)),1:0) ;RX IEN
  1. I APCHSRXP>0 S RX0=^PSRX(APCHSRXP,0),RX2=^PSRX(APCHSRXP,2) I '$D(^PSRX(APCHSRXP,"STA")) D RXSTAT^BHSPMH1 Q:ST="EXPIRED"!(ST="CANCELLED")!(ST="DELETED") ;CALCULATE RX STATUS
  1. I $G(APCHSRXP)'>0 S APCHSCOT=1 ;may be using COTS or med entered via PCC data entry
  1. I $P($G(^AUPNVMED(APCHSMX,12)),U,9)]"" S APCHSCOT=1 ;external key present
  1. S APCHSSTA=$P($G(^PSRX(APCHSRXP,0)),U,15) ;Active? RX File status
  1. Q:$G(APCHSSTA)>10 ;status is expired, deleted or cancelled
  1. I $G(^PSRX(APCHSRXP,"STA"))>10 Q ;Status is in "STA" node in V 7
  1. I $G(^PSRX(APCHSRXP,"STA"))=1 Q ;NON-VERIFIED
  1. I $G(^PSRX(APCHSRXP,"STA"))=4 Q ;DRUG INTERACTION
  1. S APCHSIG=""
  1. S APCHSIG=$P($G(APCHSN),U,5)
  1. D SIG ;D ^BOMB ;get expanded sig
  1. S APCHSDYS=$P($G(APCHSN),U,7) ;days supply
  1. ;Q:APCHSDYS=1 ;quit if only 1 day supply
  1. I $G(APCHSCOT)=1,$G(APCHSDYS)]"",$$FMDIFF^XLFDT(DT,APCHSDTM)>$G(APCHSDYS) Q
  1. Q:$P($G(^AUPNVMED(APCHSMX,0)),U,6)=1 ;quit if qty=1
  1. S APCHSMFX=$P(^PSDRUG(+APCHSN,0),U) D ;compare Drug File .01 field & V Med Name of Non Table Drug
  1. .Q:$P(APCHSN,U,4)=""
  1. .I $P($G(APCHSN),U,4)]"",$P($G(APCHSN),U,4)=$P(^PSDRUG(+APCHSN,0),U) Q
  1. .I $P($G(APCHSN),U,4)]"",$P($G(APCHSN),U,4)'=$P(^PSDRUG(+APCHSN,0),U) S APCHSMFX=$P(APCHSN,U,4)
  1. .Q
  1. I $G(APCHSM(APCHSMFX)) Q ;quit if med already exists
  1. S APCHSM(APCHSMFX)=+APCHSN_U_APCHSDYS ;PSDRUG ien^days supply
  1. I $G(APCHSRXP)>0 S $P(APCHSM(APCHSMFX),U,3)=APCHSRXP ;^PSRX ien
  1. S $P(APCHSM(APCHSMFX),U,4)=$G(ST) ;status from RXSTAT
  1. S $P(APCHSM(APCHSMFX),U,5)=$G(APCHSSGY)
  1. S APCHSMCT=APCHSMCT+1 ;number of active meds
  1. Q
  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