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

APSPPPIO.m

Go to the documentation of this file.
  1. APSPPPIO ;IHS/CIA/PLS - Return PMI information ;03-Nov-2004 21:32;PLS
  1. ;;7.0; IHS PHARMACY MODIFICATIONS;**1001**;MAR 2, 2004
  1. ; This is a modified version of PSNPPIO
  1. ; Modified - IHS/CIA/PLS - 11/03/04 - EN+19
  1. EN(PSNDRUG,PSNMSG) ; EP
  1. ;
  1. ; entry point from Outpatient Pharmacy Labels
  1. ; Calling method: S PSNFLAG=$$EN^APSPPPIO(PSNDRUG)
  1. ;
  1. ; Input: PSNDRUG = IFN from the DRUG file (50) ** REQUIRED **
  1. ;
  1. ; Output: PSNFLAG = 0 if no PMI returned
  1. ; 1 if PMI returned in ^TMP($J,"PSNPMI"
  1. ; PSNMSG = message text for no PMI information
  1. ;
  1. N PSNFLAG,PSNPN,PSNGCN,A1,PSNFILE1,PSNFILE2,PSNEMAP,PMID,PSNPL,I
  1. N MAP,LP,TXT,MTBL,XX,PMAP
  1. K ^TMP($J,"PSNPMI")
  1. S PSNFLAG=1,(MAP,PMAP,XX)=""
  1. S PSNPN=$TR($P($G(^PSDRUG(PSNDRUG,2)),U,4),"-") ; NDC
  1. I 'PSNPN S PSNMSG="This drug is not matched to the National Drug File; therefore, a Medication Information Sheet cannot be printed." Q 0
  1. S PSNGCN=$O(^APSAMDF("B",PSNPN,0))
  1. I 'PSNGCN S PSNMSG="This drug is not linked to a Medication Information Sheet." Q 0
  1. ;S PSNGCN=+$G(^APSAMDF(PSNGCN,3)) ; IHS/CIA/PLS - 11/03/04
  1. S PSNGCN=$G(^APSAMDF(PSNGCN,3)) ; '+' removed
  1. I 'PSNGCN!'$D(^APSAPPI(PSNGCN)) S PSNMSG="This drug is not linked to a Medication Information Sheet." Q 0
  1. D SETMTBL(.MTBL)
  1. S ^TMP($J,"PSNPMI",0)=$G(^APSAPPI(PSNGCN,0))
  1. S LP=0 F S LP=$O(^APSAPPI(PSNGCN,1,LP)) Q:'LP D
  1. .S TXT=$G(^APSAPPI(PSNGCN,1,LP,0)),XX=""
  1. .I $$GETMAP(TXT,.MAP,.XX) D
  1. ..I $L(XX) D
  1. ...D SETTXT(XX,PMAP)
  1. ...D SETTXT($P(TXT,XX,2),MAP)
  1. ...S XX=""
  1. ..E D SETTXT(TXT,MAP)
  1. ..S PMAP=MAP
  1. .E D
  1. ..D SETTXT(TXT,MAP)
  1. D ADDDISC ; Add disclaimer text
  1. Q 1
  1. ; Set text into global
  1. SETTXT(TEXT,SUB) ;
  1. Q:SUB=""
  1. S ^TMP($J,"PSNPMI",SUB,+$G(MTBL(SUB)),0)=$$TRIM^XLFSTR(TEXT,"R")
  1. S MTBL(SUB)=MTBL(SUB)+1
  1. Q
  1. ; Return mapping type
  1. GETMAP(TEXT,MAP,XX) ;
  1. N L,LBL,FLG
  1. S FLG=0
  1. F L=1:1 S LBL=$P($T(MAP+L),";;",2,3) Q:LBL="" D Q:FLG
  1. .I TEXT[$P(LBL,";;")_":" D
  1. ..S MAP=$P(LBL,";;",2),FLG=1
  1. ..S XX=$P(TEXT,$P(LBL,";;")_":")
  1. Q FLG
  1. ; Setup Map Table Counts
  1. SETMTBL(DAT) ;
  1. N L,KEY
  1. F L=1:1 S LBL=$P($T(MAP+L),";;",2,3) Q:LBL="" D
  1. .S DAT($P(LBL,";;",2))=1
  1. Q
  1. ; Add Disclaimer Text to "T" subscript of global
  1. ADDDISC ;
  1. N LP,TXT
  1. S LP=0
  1. S TXT=$$TRIM^XLFSTR($P(^APSAPPI(.5,0),U,1),"R")
  1. S TXT="DISCLAIMER: "_TXT_" Expires "_$$FMTE^XLFDT($$HL7TFM^XLFDT($P(^APSAPPI(.5,0),U,5))\100*100,"1D")_"."
  1. D SETTXT(TXT,"T")
  1. F S LP=$O(^APSAPPI(.5,2,LP)) Q:'LP D
  1. .D SETTXT(^APSAPPI(.5,2,LP,0),"T")
  1. S LP=0 F S LP=$O(^APSAPPI(.5,3,LP)) Q:'LP D
  1. .D SETTXT(^APSAPPI(.5,3,LP,0),"T")
  1. Q
  1. ; Key words
  1. MAP ;;
  1. ;;GENERIC NAME;;G;;
  1. ;;COMMON USES;;U;;
  1. ;;HOW TO USE THIS MEDICINE;;H;;
  1. ;;CAUTIONS;;C;;
  1. ;;POSSIBLE SIDE EFFECTS;;S;;
  1. ;;BEFORE USING THIS MEDICINE;;B;;
  1. ;;OVERDOSE;;O;;
  1. ;;ADDITIONAL INFORMATION;;I;;
  1. ;;DISCLAIMER;;T;;