| [613] | 1 | PPPPRT9 ;ALB/DMB - MEDICATION PROFILE PRINT ROUTINE ; 6/25/92 | 
|---|
|  | 2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;**10,17**;APR 7,1995 | 
|---|
|  | 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
|  | 4 | ; | 
|---|
|  | 5 | PLP(PATDFN) ; Print Label Profile | 
|---|
|  | 6 | ; | 
|---|
|  | 7 | N VISARRY,DI | 
|---|
|  | 8 | S VISARRY="^TMP(""PPP"",$J,""VISIT"")" | 
|---|
|  | 9 | ; | 
|---|
|  | 10 | Q:$$GETVIS^PPPGET7(PATDFN,VISARRY)<1 | 
|---|
|  | 11 | D PRPROFIL(PATDFN,VISARRY) | 
|---|
|  | 12 | K @VISARRY | 
|---|
|  | 13 | Q | 
|---|
|  | 14 | ; | 
|---|
|  | 15 | PRPROFIL(PATDFN,ARRAYNM,OBFLAG) ; Print the med profile | 
|---|
|  | 16 | ; | 
|---|
|  | 17 | N PPPDOB,PPPNAME,PPPSSN,PPPTMP,BNR1,BNR3,DA,DIC,DIQ,DIR,DR,DI,D0 | 
|---|
|  | 18 | N DTOUT,DUOUT,I,NARRATIV,ND,OUT,PAGE,PARMERR,PHRMARRY,RVRSDT,RXIDX | 
|---|
|  | 19 | N STANAME,STAPTR,TMP,Y | 
|---|
|  | 20 | ; | 
|---|
|  | 21 | S PARMERR=-9001 | 
|---|
|  | 22 | ; | 
|---|
|  | 23 | I '$D(ARRAYNM) Q PARMERR | 
|---|
|  | 24 | I '$D(OBFLAG) S OBFLAG="O" | 
|---|
|  | 25 | I OBFLAG="" S OBFLAG="O" | 
|---|
|  | 26 | S PHRMARRY="^TMP(""PPP"",$J,""PHR"")" | 
|---|
|  | 27 | S PAGE=1,OUT="" | 
|---|
|  | 28 | S BNR1="PPP - Medication Profile from other VAMC(s)" | 
|---|
|  | 29 | S BNR3="Date Printed: "_$$DTE^PPPUTL1(DT,0) | 
|---|
|  | 30 | ; | 
|---|
|  | 31 | ; Get the local name, SSN and DOB | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | S DIC="^DPT(",DA=PATDFN,DR=".01;.03;.09",DIQ="PPPTMP" D EN^DIQ1 | 
|---|
|  | 34 | S PPPNAME=PPPTMP(2,PATDFN,.01) | 
|---|
|  | 35 | S PPPDOB=PPPTMP(2,PATDFN,.03) | 
|---|
|  | 36 | S PPPSSN=PPPTMP(2,PATDFN,.09) | 
|---|
|  | 37 | K PPPTMP,DIC,DR,DA,DTOUT,DUOUT | 
|---|
|  | 38 | ; | 
|---|
|  | 39 | ; Get the prescription data | 
|---|
|  | 40 | ; | 
|---|
|  | 41 | I OBFLAG="B" S TMP=$$GLPHRM^PPPGET8(PATDFN,PHRMARRY) | 
|---|
|  | 42 | S TMP=$$GETPDX^PPPGET2(ARRAYNM,PHRMARRY) | 
|---|
|  | 43 | ; | 
|---|
|  | 44 | ; If there is anything to print... print it. | 
|---|
|  | 45 | ; | 
|---|
|  | 46 | I $D(@PHRMARRY) D | 
|---|
|  | 47 | .D HEADING1,NARRATIV | 
|---|
|  | 48 | K @PHRMARRY | 
|---|
|  | 49 | Q | 
|---|
|  | 50 | ; | 
|---|
|  | 51 | HEADING1 ; Write the page heading, Pause if a crt. | 
|---|
|  | 52 | ; | 
|---|
|  | 53 | I PAGE>1,$E(IOST,1,2)="C-" D  Q:OUT["^" | 
|---|
|  | 54 | .S DIR(0)="E" D ^DIR | 
|---|
|  | 55 | .I +Y=0 S OUT="^" | 
|---|
|  | 56 | W @IOF,! | 
|---|
|  | 57 | W ?((IOM-$L(BNR1))\2),BNR1,?(IOM-15),"Page ",PAGE,! | 
|---|
|  | 58 | W ?((IOM-$L(BNR3))\2),BNR3,!! | 
|---|
|  | 59 | W !,"Patient: ",PPPNAME_" ("_PPPSSN_")",?60,"DOB: ",PPPDOB | 
|---|
|  | 60 | W ! F I=1:1:IOM W "=" | 
|---|
|  | 61 | Q | 
|---|
|  | 62 | ; | 
|---|
|  | 63 | HEADING2 ; Write the page heading, Pause if a crt. | 
|---|
|  | 64 | ; | 
|---|
|  | 65 | I PAGE>1,($E(IOST,1,2)="C-"),($D(NARRATIV)) D  Q:OUT["^" | 
|---|
|  | 66 | .S DIR(0)="E" D ^DIR | 
|---|
|  | 67 | .I +Y=0 S OUT="^" | 
|---|
|  | 68 | W !,"RX #",?9,"DRUG",?41,"ST",?45,"QTY",?51,"ISSUED",?65,"LAST FILLED" | 
|---|
|  | 69 | W ! F I=1:1:IOM W "=" | 
|---|
|  | 70 | Q | 
|---|
|  | 71 | ; | 
|---|
|  | 72 | NARRATIV ; Print the narratives. | 
|---|
|  | 73 | ; If PSTYPE is defined then this is part of the info/action profile | 
|---|
|  | 74 | ; and we don't want to print the narrative. | 
|---|
|  | 75 | ; | 
|---|
|  | 76 | S NARRATIV=1 | 
|---|
|  | 77 | S STANAME="" | 
|---|
|  | 78 | I $D(@PHRMARRY@(0))&('$D(PSTYPE)) D | 
|---|
|  | 79 | .F  S STANAME=$O(@PHRMARRY@(0,STANAME)) Q:STANAME=""!(OUT["^")  D | 
|---|
|  | 80 | ..I $Y+5>IOSL S PAGE=PAGE+1 D HEADING1 Q:OUT["^" | 
|---|
|  | 81 | ..W !!,"NARRATIVE FROM ",STANAME | 
|---|
|  | 82 | ..W !,"  => ",@PHRMARRY@(0,STANAME) | 
|---|
|  | 83 | .W ! | 
|---|
|  | 84 | K NARRATIV | 
|---|
|  | 85 | ; | 
|---|
|  | 86 | DRUGS I $Y+8<IOSL D HEADING2 | 
|---|
|  | 87 | S RVRSDT=0 | 
|---|
|  | 88 | F  S RVRSDT=$O(@PHRMARRY@(RVRSDT)) Q:RVRSDT'>0!(OUT["^")  D | 
|---|
|  | 89 | .S STAPTR="" | 
|---|
|  | 90 | .F  S STAPTR=$O(@PHRMARRY@(RVRSDT,STAPTR)) Q:STAPTR=""!(OUT["^")  D | 
|---|
|  | 91 | ..S RXIDX=-1 | 
|---|
|  | 92 | ..F  S RXIDX=$O(@PHRMARRY@(RVRSDT,STAPTR,RXIDX)) Q:RXIDX=""!(OUT["^")!(RXIDX="PID")  D | 
|---|
|  | 93 | ...I $Y+6>IOSL S PAGE=PAGE+1 D HEADING1 Q:OUT["^"  D HEADING2 | 
|---|
|  | 94 | ...S ND=$G(@PHRMARRY@(RVRSDT,STAPTR,RXIDX)) Q:ND="" | 
|---|
|  | 95 | ...I $P(ND,"^",8)'="",$D(^TMP("PPP",$J,"VISIT",$P(ND,"^",8),1)),$P(^TMP("PPP",$J,"VISIT",$P(ND,"^",8),1),"^",1)'=PPPNAME W !,?9," ** WARNING ** Patient is identified as : ",$P(^TMP("PPP",$J,"VISIT",$P(ND,"^",8),1),"^",1)," not ",PPPNAME | 
|---|
|  | 96 | ...W !!,$P(ND,"^"),?9,$E($P(ND,"^",2),1,30),?41,$E($P(ND,"^",3),1),?45,$P(ND,"^",4),?51,$$SLASHDT^PPPCNV1($P(ND,"^",5)),?65,$$SLASHDT^PPPCNV1($P(ND,"^",6)) | 
|---|
|  | 97 | ...W !,?9,"SIG: ",$E($P(ND,"^",7),1,25),?40,"ISSUED AT ",$P(ND,"^",8)," (",$P(ND,"^",9),")" | 
|---|
|  | 98 | ...W !,?9,"PROVIDER: ",$P(ND,"^",10) | 
|---|
|  | 99 | K @PHRMARRY | 
|---|
|  | 100 | Q | 
|---|