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

APSAPPIP.m

Go to the documentation of this file.
  1. APSAPPIP ;IHS/ITSC/POC/ENM - PRINT A MEDICATION INSTRUCTION SHEET [ 08/27/2003 8:53 AM ]
  1. ;;6.1;IHS PHARMACY MODIFICATIONS;**4**;01/10/2002
  1. ;REWRITE OF APSAPPIP WITH ^DIWP
  1. ;TO VARY PAGESETUP IHS/OKCAO/POC 1/16/2002
  1. ;TAKES ADVANTAGE OF PRINTING PMI USING MARGINS IHS/OKCAO/POC 11/11/2002
  1. EP1 ;FROM APSEPPID
  1. D INIT
  1. D CONT
  1. Q
  1. EP2 ;EP FROM APSAPPIM
  1. D END,INIT
  1. D CONT
  1. Q
  1. ;
  1. PICK ;EP SELECT A DRUG FROM FILE 50
  1. D END,INIT
  1. I $D(PSNDRUG) Q
  1. I '$D(^APSAPPI) W !,"PATIENT MEDICATION INSTRUCTION SHEETS' DATA HAS NOT BEEN INSTALLED",!! H 3 Q
  1. S DIC=50,DIC(0)="AEQMZ",DIC("S")="D DICS^APSAPPIP" D ^DIC K DIC Q:Y<0 S DRG=+Y
  1. S X=$P($G(^PSDRUG(DRG,2)),U,4) Q:X="" D ^APSPMDD S NDC=X D ECK I '+PPI S PPI=.5,P2=1 ;GET NDC AND REMOVE DASHES
  1. I XNDC="" S PPI=.5,P2=1
  1. ;
  1. CONT ;
  1. D SH
  1. D DISC
  1. D HDR
  1. D WRITE
  1. I '$G(QUIT),$E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR ;FOR THE VERY END OF PRI NT IF TO SCREEN
  1. D END1
  1. Q
  1. ;
  1. SH ;PRINT OUT MAIN BODY
  1. N IEN S IEN=0
  1. F S IEN=$O(^APSAPPI(PPI,1,IEN)) Q:'+IEN!QUIT D PRINTIT(^(IEN,0))
  1. Q
  1. ;
  1. PRINTIT(X) ;PRINT THE LINE
  1. Q:QUIT
  1. F Q:$E(X,$L(X))'=" " S X=$E(X,1,$L(X)-1) ;GET RID OF SPACE AT END OF LINE
  1. S X=X_" " ;ADD A SPACE BACK AT END OF LINE
  1. N WORD,STOP S STOP=0
  1. F WORD="COMMON USES","HOW TO USE THIS MEDICINE","CAUTIONS","ALCOHOL WARNING","WOMEN","POSSIBLE SIDE EFFECTS","BEFORE USING THIS MEDICINE","OVERDOSE INFORMATION","ADDITIONAL INFORMATION" I X[WORD_":" D S STOP=1 Q
  1. .N FIRST,SECOND
  1. .S FIRST=$P(X,WORD_":",1)
  1. .S SECOND=$P(X,WORD_":",2,99)
  1. .I FIRST]"" S X=FIRST D ^DIWP
  1. .D LASTLINE
  1. .S X=WORD_":" D ^DIWP,LASTLINE
  1. .S X=SECOND D ^DIWP
  1. .Q
  1. D:'STOP ^DIWP
  1. Q
  1. ECK ;
  1. S RN=0,PPI=0,XNDC=0 F S XNDC=$O(^APSAMDF("B",XNDC)) Q:XNDC="" I XNDC=NDC D Q
  1. .S RN=$O(^APSAMDF("B",XNDC,RN))
  1. .S PPI=^APSAMDF(RN,3)
  1. .I $G(^APSAPPI(PPI,0))="" S PPI=.5
  1. Q
  1. ;
  1. END1 ;
  1. K NAM
  1. END ;KILL THE VARIABLES
  1. K DRUG,QUIT,DIC,RN,P2,XNDC,NDC,DIWL,DIWR,DIWF
  1. K PG,NUM,APSAIOSL
  1. K ^UTILITY($J,"W")
  1. Q
  1. ;
  1. INIT ;INIT SOME VARIABLES
  1. S PG=1,QUIT=0,NUM=1
  1. S DIWL=5,DIWR=IOM-5
  1. I $E(IOST,1,2)="C-" S APSAIOSL=IOSL-2
  1. E S APSAIOSL=IOSL ;DIWF="B4" ;BOTTOM OF PAGE
  1. I $G(PSNTRADE)'="" S DRUG=PSNTRADE
  1. N X,J,K
  1. I '$D(DRUG) S DRUG=$P(^PSDRUG(DRG,0),U),X=$G(^("ND")),J=+X,K=+$P(X,U,3),X=$P($G(^PSNDF(J,5,K,2)),U) I X]"" S DRUG=X
  1. D:$D(PSNDFN)
  1. .S DFN=PSNDFN,NAM=$P(^DPT(DFN,0),U) D DEM^VADPT
  1. Q
  1. ;
  1. DICS ;SCREEN
  1. I $S('$G(^PSDRUG(+Y,"I")):1,DT'>^("I"):1,1:0)
  1. Q
  1. ;
  1. LASTLINE ;PA THE LAST LINE IN UTILITY TO MAXIMUM
  1. N LASTLINE,LEN,SPACE
  1. S LASTLINE=$G(^UTILITY($J,"W",DIWL))
  1. Q:'+LASTLINE
  1. Q:'$D(^UTILITY($J,"W",DIWL,LASTLINE,0))!($G(^(0))="") ;DONT PAD A LINE THAT IS NULL
  1. S LEN=DIWR-DIWL-$L($G(^UTILITY($J,"W",DIWL,LASTLINE,0)))
  1. Q:LEN<1
  1. S $P(SPACE," ",LEN)=" "
  1. S ^(0)=^UTILITY($J,"W",DIWL,LASTLINE,0)_SPACE
  1. Q
  1. ;
  1. HDR ;HEADER INFO
  1. S (CNT,IEN)=0
  1. F S IEN=$O(^UTILITY($J,"W",DIWL,IEN)) Q:'+IEN D
  1. .I '(CNT#APSAIOSL) D HDR1,HDR2
  1. .S CNT=CNT+1
  1. .S ^UTILITY($J,"X",DIWL,CNT,0)=^UTILITY($J,"W",DIWL,IEN,0)
  1. S ^UTILITY($J,"X",DIWL)=CNT
  1. K ^UTILITY($J,"W")
  1. M ^("W")=^UTILITY($J,"X")
  1. K ^UTILITY($J,"X")
  1. Q
  1. ;
  1. HDR1 D
  1. .N SPACE
  1. .S $P(SPACE," ",43)=" ",X="DRUG NAME: "_DRUG_SPACE,X=$E(X,1,43)
  1. .K SPACE S $P(SPACE," ",56)=" ",X=X_"RX#: "_$G(PSRX)_SPACE,X=$E(X,1,56)
  1. .K SPACE S $P(SPACE," ",DIWR)=" ",X=X_"PAGE "_PG_SPACE,X=$E(X,1,DIWR)
  1. .S CNT=CNT+1
  1. .S ^UTILITY($J,"X",DIWL,CNT,0)=X
  1. .S PG=PG+1
  1. .Q
  1. Q
  1. ;
  1. HDR2 D:$D(PSNDFN)
  1. .N NAM
  1. .S DFN=PSNDFN,NAM=$P(^DPT(DFN,0),U) D DEM^VADPT
  1. .N SPACE
  1. .S $P(SPACE," ",30)=" ",X="PATIENT: "_NAM_SPACE,X=$E(X,1,30)
  1. .K SPACE S $P(SPACE," ",53)=" ",X=X_"PROVIDER: "_APSDNAM_SPACE,X=$E(X,1,53),X=X_$$HTE^XLFDT(+$H)
  1. .K SPACE S $P(SPACE," ",DIWR)=" ",X=X_SPACE,X=$E(X,1,DIWR)
  1. .S CNT=CNT+1
  1. .S ^UTILITY($J,"X",DIWL,CNT,0)=X
  1. .Q
  1. Q
  1. ;
  1. DISC ;
  1. ;PRINT TRAILER COPYRIGHT AND DISCLAIMER ON MONOGRAPH
  1. D LASTLINE
  1. S CR=$P(^APSAPPI(.5,0),U),ED=$P(^APSAPPI(.5,0),U,5),ED1=$E(ED,1,4),ED2=$E(ED,5,6)
  1. S ED3=$S(ED2="01":"JANUARY",ED2="02":"FEBRUARY",ED2="03":"MARCH",ED2="04":"APRIL",ED2="05":"MAY",ED2="06":"JUNE",ED2="07":"JULY",ED2="08":"AUGUST",ED2="09":"SEPTEMBER",ED2="10":"OCTOBER",ED2="11":"NOVEMBER",ED2="12":"DECEMBER",1:"")
  1. S X=CR D PRINTIT(X)
  1. S X="Expires "_ED3_" "_ED1_"." D PRINTIT(X)
  1. N IEN S IEN=0
  1. F S IEN=$O(^APSAPPI(.5,2,IEN)) Q:'+IEN!QUIT D
  1. .S X=^APSAPPI(.5,2,IEN,0)
  1. .D PRINTIT(X)
  1. S X=$P(^APSAPPI(.5,3,1,0)," ",1) D PRINTIT(X)
  1. Q
  1. ;
  1. WRITE ;MY DIWW FOR ^DIWW
  1. U IO
  1. N UTLIEN
  1. W:$Y'=0 @IOF
  1. S UTLIEN=0 F S UTLIEN=$O(^UTILITY($J,"W",DIWL,UTLIEN)) Q:'+UTLIEN!QUIT D
  1. .W ?DIWL,^UTILITY($J,"W",DIWL,UTLIEN,0),!
  1. .D:'(UTLIEN#APSAIOSL)
  1. ..I $E(IOST,1,2)="C-" K DIR S DIR(0)="E" D ^DIR K DIR S:'Y QUIT=1
  1. ..W @IOF
  1. Q