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

BTIULO1.m

Go to the documentation of this file.
  1. BTIULO1 ; IHS/ITSC/LJF - PHARMACY OBJECTS ;
  1. ;;1.0;TEXT INTEGRATION UTILITIES;;NOV 04, 2004
  1. ; copied code from APCHS7
  1. ;
  1. ;
  1. MEDSCURR ;EP; ************** CURRENT MEDICATIONS * 9000010.14 ********
  1. S APCHSMTY="CURR" G CONT
  1. MEDSNOSG ;EP; ************** CURRENT MEDICATIONS * NO SIGS ********
  1. NEW APCHTIU S APCHTIU=""
  1. S APCHSMTY="CURR" G CONT
  1. S APCHSMTY="NODUP" G CONT
  1. ;
  1. CONT ; <SETUP>
  1. Q:'$D(^AUPNVMED("AC",APCHSPAT))
  1. ; <BUILD>
  1. K ^TMP($J,"APCHSMTB"),^TMP($J,"APCHSMTP")
  1. S APCHSIVD=0 F APCHSQ=0:0 S APCHSIVD=$O(^AUPNVMED("AA",APCHSPAT,APCHSIVD)) Q:APCHSIVD=""!(APCHSIVD>APCHSDLM) S APCHSMX=0 F APCHSQ=0:0 S APCHSMX=$O(^AUPNVMED("AA",APCHSPAT,APCHSIVD,APCHSMX)) Q:APCHSMX="" D MEDBLD
  1. ; <DISPLAY>
  1. S APCHSIVD=0 F APCHSQ=0:0 S APCHSIVD=$O(^TMP($J,"APCHSMTP",APCHSIVD)) Q:'APCHSIVD D MEDDSP
  1. ; <CLEANUP>
  1. MEDX K APCHSIVD,APCHSMX,APCHSMFX,APCHSQTY,APCHSIG,APCHSSGY,APCHSEXP,APCHSMTS,APCHSMED,APCHSDTM,APCHSDAT,APCHSDYS,APCHSN,APCHSDC,APCHSVDF,APCHSP
  1. K APCHSNFL,APCHSNSH,APCHSNAB,APCHSVSC,APCHSITE,APCHSRX,APCHSDRG,APCHSCRN,APCHSREF,APCHSRFL,APCHSALL,APCHSTXT,APCHSMTY
  1. K ^TMP($J,"APCHSMTB"),^TMP($J,"APCHSMTP")
  1. K X1,X2,X,Y
  1. Q
  1. MEDBLD ;BUILD ARRAY OF MEDICATIONS
  1. ;APCHSDC=DATE DISCONTINUED,DYS=DAYS PRESCRIBED,SIG=DIRECTIONS
  1. ;VDF=VISIT FILE DATE
  1. S APCHSN=^AUPNVMED(APCHSMX,0)
  1. Q:'$D(^PSDRUG($P(APCHSN,U,1)))
  1. S APCHSDTM=-APCHSIVD\1+9999999
  1. S APCHSDC=$P(APCHSN,U,8),APCHSDYS=$P(APCHSN,U,7),APCHSMFX=$S($P(APCHSN,U,4)="":+APCHSN,1:$P(APCHSN,U,4))
  1. S:APCHSDYS="" APCHSDYS=30
  1. D @APCHSMTY
  1. Q
  1. ;
  1. CURR ; current meds only
  1. I $D(^TMP($J,"APCHSMTB",APCHSMFX)),^TMP($J,"APCHSMTB",APCHSMFX)="" Q
  1. S X1=DT,X2=APCHSDTM D ^%DTC Q:X>60&(X>(2*APCHSDYS))
  1. S ^TMP($J,"APCHSMTB",APCHSMFX)=APCHSDC,^TMP($J,"APCHSMTP",APCHSIVD_"-"_APCHSMFX)=APCHSMX
  1. Q
  1. ALL ;all meds included
  1. S ^TMP($J,"APCHSMTB",APCHSMFX)=APCHSDC,^TMP($J,"APCHSMTP",APCHSIVD_"-"_APCHSMFX)=APCHSMX
  1. ;
  1. Q
  1. NODUP ;
  1. I $D(^TMP($J,"APCHSMTB",APCHSMFX)) Q
  1. S ^TMP($J,"APCHSMTB",APCHSMFX)=APCHSDC,^TMP($J,"APCHSMTP",APCHSIVD_"-"_APCHSMFX)=APCHSMX
  1. Q
  1. CHRONIC ;chronic meds only
  1. I $D(^TMP($J,"APCHSMTB",APCHSMFX)) Q
  1. S X=$S($D(^PSRX("APCC",APCHSMX)):$O(^(APCHSMX,0)),1:0)
  1. S Y=$S(+X:$D(^PS(55,APCHSPAT,"P","CP",X)),1:0)
  1. Q:'Y
  1. S ^TMP($J,"APCHSMTB",APCHSMFX)=APCHSDC,^TMP($J,"APCHSMTP",APCHSIVD_"-"_APCHSMFX)=APCHSMX
  1. Q
  1. MEDDSP ;DISPLAY MEDICATION
  1. ;APCHSRX=RX# in FILE 52,CHRN=CHRONIC FLAG,REF=#REFILLS
  1. S APCHSMX=^TMP($J,"APCHSMTP",APCHSIVD)
  1. S APCHSN=^AUPNVMED(APCHSMX,0)
  1. S APCHSRX=$S($D(^PSRX("APCC",APCHSMX)):$O(^(APCHSMX,0)),1:0)
  1. S APCHSCRN=$S(+APCHSRX:$D(^PS(55,APCHSPAT,"P","CP",APCHSRX)),1:0)
  1. S (Y,APCHSDTM)=-APCHSIVD\1+9999999 X APCHSCVD S APCHSDAT=Y
  1. S APCHSDC=$P(APCHSN,U,8),APCHSDYS=$P(APCHSN,U,7),APCHSQTY=$P(APCHSN,U,6),APCHSIG=$P(APCHSN,U,5),APCHSVDF=$P(APCHSN,U,3),APCHSMFX=+APCHSN
  1. S:APCHSDYS="" APCHSDYS=30
  1. S X1=DT,X2=APCHSDTM D ^%DTC ;Q:X>60&(X>(2*APCHSDYS))
  1. S APCHSEXP=""
  1. S APCHSMED=$S($P(APCHSN,U,4)="":$P(^PSDRUG(APCHSMFX,0),U,1),1:$P(APCHSN,U,4))
  1. I APCHSDC S Y=APCHSDC X APCHSCVD S APCHSEXP="-- D/C "_Y
  1. D SIG S APCHSIG=APCHSSGY
  1. D SITE I APCHSITE]"" S APCHSIG=APCHSIG_" ["_APCHSITE_"]"
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. W APCHSDAT,?10,$S(APCHSCRN:"(C)",1:""),?14,APCHSMED," #",APCHSQTY," (",APCHSDYS," days) ",APCHSEXP,!
  1. X APCHSCKP Q:$D(APCHSQIT)
  1. S APCHSICL=16,APCHSNRQ="",APCHSTXT=APCHSIG D PRTTXT^APCHSUTL K APCHSICL,APCHSNRQ,APCHSP
  1. Q
  1. ;
  1. SIG ;CONSTRUCT THE FULL TEXT FROM THE ENCODED SIG
  1. I $D(APCHTIU) S APCHSSGY="" Q ;IHS/ANMC/LJF 4/20/98
  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=0 Q
  1. ;
  1. I '$D(^PSRX(APCHSRX,0)) S APCHSREF=0 Q
  1. ;
  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. SITE ;DETERMINE IF OUTSIDE LOCATION INFO PRESENT
  1. S APCHSITE=""
  1. I $D(^AUPNVSIT(APCHSVDF,21))#2 S APCHSITE=$P(^(21),U)
  1. Q