1 | PPPPRT2 ;ALB/DMB/DAD - CLINIC MEDICATION PROFILE PRINT ROUTINE ; 3/12/92
|
---|
2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;**17**;APR 7,1995
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | START ;
|
---|
6 | N PPPARRY,PPPDOB,PPPNAME,PPPSSN,PPPTMP,BNR1,BNR2,BNR3,RSLTPTR,UNSPTR
|
---|
7 | N CLNPTEND,CLNPTST,CSCNEND,CSCNSTRT,DFNARRY,DIR,FFXIFN,I,IDX
|
---|
8 | N LKUPERR,NAMEARRY,ND,NODE,NODELEN,NOPRTFLG,OUT,PAGE,PAP,PATDFN
|
---|
9 | N PATDOB,PATNAME,PATNODE,PATSSN,PCP,PCPD,PDXNODE,PDXPTR,PDXSTAT
|
---|
10 | N PHRMARRY,POVNAME,POVNODE,PRMNODE0,SCANDT,TMP,TPATS,X,X1,X2,Y
|
---|
11 | N ZTQUEUED,ZTREQ
|
---|
12 | ;
|
---|
13 | S PPPMRT="START_PPPPRT2"
|
---|
14 | S LKUPERR=-9003
|
---|
15 | S CSCNSTRT=1006
|
---|
16 | S CSCNEND=1007
|
---|
17 | S CLNPTST=1014
|
---|
18 | S CLNPTEND=1015
|
---|
19 | S NOPRTFLG=1016
|
---|
20 | S PHRMARRY="^TMP(""PPP"","_$J_",""PHRM"")"
|
---|
21 | S DFNARRY="^TMP(""PPP"","_$J_",""DFN"")"
|
---|
22 | S NAMEARRY="^TMP(""PPP"","_$J_",""NAME"")"
|
---|
23 | S BNR1="PPP - Medication Profiles from other VAMC(s)"
|
---|
24 | S BNR2="Patient Medication Profiles For Clinics On "
|
---|
25 | S BNR3="Date Printed: "_$$DTE^PPPUTL1(DT,0)
|
---|
26 | S PAGE=0
|
---|
27 | S OUT=""
|
---|
28 | S RSLTPTR=$$GETSTPTR^PPPGET7("VAQ-RSLT")
|
---|
29 | S UNSPTR=$$GETSTPTR^PPPGET7("VAQ-UNSOL")
|
---|
30 | S TMP=$$LOGEVNT^PPPMSC1(CLNPTST,PPPMRT)
|
---|
31 | S PRMNODE0=$G(^PPP(1020.1,1,0))
|
---|
32 | I PRMNODE0="" D Q
|
---|
33 | .S TMP=$$LOGEVNT^PPPMSC1(LKUPERR,PPPMRT,"Parameter File Not Found")
|
---|
34 | S PCP=$P(PRMNODE0,"^",7)
|
---|
35 | S PAP=$P(PRMNODE0,"^",8)
|
---|
36 | S PCPD=$P(PRMNODE0,"^",10)
|
---|
37 | I 'PCP D Q
|
---|
38 | .S TMP=$$LOGEVNT^PPPMSC1(NOPRTFLG,PPPMRT)
|
---|
39 | ; Determine clinic scan date.
|
---|
40 | I +PCPD>0 D
|
---|
41 | .S X1=DT
|
---|
42 | .S X2=+PCPD
|
---|
43 | .D C^%DTC
|
---|
44 | .S SCANDT=X
|
---|
45 | E D
|
---|
46 | .S SCANDT=DT
|
---|
47 | S BNR2=BNR2_$$I2EDT^PPPCNV1(SCANDT)
|
---|
48 | ; Scan the clinics for patients scheduled on SCANDT
|
---|
49 | S TMP=$$LOGEVNT^PPPMSC1(CSCNSTRT,PPPMRT)
|
---|
50 | S TPATS=$$CLINSCAN^PPPSCN2(SCANDT,DFNARRY)
|
---|
51 | S TMP=$$LOGEVNT^PPPMSC1(CSCNEND,PPPMRT,"TOTAL PATIENTS = "_TPATS)
|
---|
52 | ; Now sort the clinic list by name
|
---|
53 | S TMP=$$NAMESRT^PPPPRT4(DFNARRY,NAMEARRY)
|
---|
54 | K @DFNARRY
|
---|
55 | ; Now order through the NAME's and get the data to print.
|
---|
56 | K @PHRMARRY
|
---|
57 | S PATNAME=""
|
---|
58 | F IDX=0:0 D Q:(PATNAME="")!(OUT["^")
|
---|
59 | .S PATNAME=$O(@NAMEARRY@(PATNAME)) Q:PATNAME=""
|
---|
60 | .F PATDFN=0:0 D Q:PATDFN=""
|
---|
61 | ..S PATDFN=$O(@NAMEARRY@(PATNAME,PATDFN)) Q:PATDFN=""
|
---|
62 | ..S PATNODE=$G(@NAMEARRY@(PATNAME,PATDFN))
|
---|
63 | ..S PATDOB=$P(PATNODE,"^",1)
|
---|
64 | ..S PATSSN=$P(PATNODE,"^",2)
|
---|
65 | ..F FFXIFN=0:0 D Q:FFXIFN=""
|
---|
66 | ...S FFXIFN=$O(^PPP(1020.2,"B",PATDFN,FFXIFN)) Q:FFXIFN=""
|
---|
67 | ...S PDXNODE=$G(^PPP(1020.2,FFXIFN,1)) Q:PDXNODE=""
|
---|
68 | ...S POVNODE=$G(^PPP(1020.2,FFXIFN,0)) Q:POVNODE=""
|
---|
69 | ...S PDXPTR=$P(PDXNODE,"^",1)
|
---|
70 | ...S PDXSTAT=$P(PDXNODE,"^",3)
|
---|
71 | ...S POVNUM=$P(POVNODE,"^",2)
|
---|
72 | ...I $D(^DIC(4,"D",POVNUM)) S POVIEN=$O(^DIC(4,"D",POVNUM,0)),POVNAME=$P($G(^DIC(4,POVIEN,0)),"^") K POVIEN
|
---|
73 | ...I '$D(POVNAME),$D(^PPP(1020.8,"B",POVNUM)) S POVIEN=$O(^PPP(1020.8,"B",POVNUM,0)),POVNAME=$P($P($G(^PPP(1020.8,POVIEN,0))<"^",2),".",1) K POVIEN
|
---|
74 | ...I '$D(POVNAME) S POVNAME=POVNUM_" (Unknown)"
|
---|
75 | ...I (PDXPTR) I ((PDXSTAT=RSLTPTR)!(PDXSTAT=UNSPTR)) I $$PDXDAT^PPPDSP2(PDXPTR) D
|
---|
76 | ....S PPPTMP(POVNAME,0)="1^"_PDXPTR_"^"_POVNUM
|
---|
77 | ..I PAP,($D(PPPTMP)) D
|
---|
78 | ...S TMP=$$GLPHRM^PPPGET8(PATDFN,PHRMARRY)
|
---|
79 | ..I $D(PPPTMP) D
|
---|
80 | ...S TMP=$$GETPDX^PPPGET2("PPPTMP",PHRMARRY)
|
---|
81 | ..; If there is anything to print... print it.
|
---|
82 | ..I $D(@PHRMARRY) D
|
---|
83 | ...S PPPNAME=PATNAME
|
---|
84 | ...S PPPDOB=PATDOB
|
---|
85 | ...S PPPSSN=PATSSN
|
---|
86 | ...S PAGE=PAGE+1 D HEADING1 Q:OUT["^" D NARRATIV
|
---|
87 | ...K @PHRMARRY,PPPTMP
|
---|
88 | I $E(IOST,1,2)="C-"&(OUT'["^") D
|
---|
89 | .W !!,"Listing Complete."
|
---|
90 | ; Log end of print utility
|
---|
91 | S TMP=$$LOGEVNT^PPPMSC1(CLNPTEND,PPPMRT)
|
---|
92 | K @PHRMARRY,@NAMEARRY
|
---|
93 | Q
|
---|
94 | ;
|
---|
95 | HEADING1 ; Write the page heading, Pause if a crt.
|
---|
96 | ;
|
---|
97 | I PAGE>1,$E(IOST,1,2)="C-" D Q:OUT["^"
|
---|
98 | .S DIR(0)="E" D ^DIR
|
---|
99 | .I +Y=0 S OUT="^"
|
---|
100 | W @IOF,!
|
---|
101 | W ?((IOM-$L(BNR1))\2),BNR1,?(IOM-15),"Page ",PAGE,!
|
---|
102 | W ?((IOM-$L(BNR3))\2),BNR3,!!
|
---|
103 | W !,"Patient: ",PPPNAME_" ("_PPPSSN_")",?60,"DOB: ",PPPDOB
|
---|
104 | W ! F I=1:1:IOM W "="
|
---|
105 | Q
|
---|
106 | ;
|
---|
107 | HEADING2 ; Write the page heading, Pause if a crt.
|
---|
108 | ;
|
---|
109 | I PAGE>1,($E(IOST,1,2)="C-"),($D(NARRATIV)) D Q:OUT["^"
|
---|
110 | .S DIR(0)="E" D ^DIR
|
---|
111 | .I +Y=0 S OUT="^"
|
---|
112 | W !,"RX #",?9,"DRUG",?41,"ST",?45,"QTY",?51,"ISSUED",?65,"LAST FILLED"
|
---|
113 | W ! F I=1:1:IOM W "="
|
---|
114 | Q
|
---|
115 | ;
|
---|
116 | NARRATIV ; Print the narratives
|
---|
117 | ;
|
---|
118 | S NARRATIV=1
|
---|
119 | S STANAME=""
|
---|
120 | I $D(@PHRMARRY@(0)) D
|
---|
121 | .F S STANAME=$O(@PHRMARRY@(0,STANAME)) Q:STANAME=""!(OUT["^") D
|
---|
122 | ..I $Y+5>IOSL S PAGE=PAGE+1 D HEADING1 Q:OUT["^"
|
---|
123 | ..W !!,"NARRATIVE FROM ",STANAME
|
---|
124 | ..W !," => ",@PHRMARRY@(0,STANAME)
|
---|
125 | .W !
|
---|
126 | K NARRATIV
|
---|
127 | ;
|
---|
128 | DRUGS I $Y+8<IOSL D HEADING2
|
---|
129 | S RVRSDT=0
|
---|
130 | F S RVRSDT=$O(@PHRMARRY@(RVRSDT)) Q:RVRSDT'>0!(OUT["^") D
|
---|
131 | .S STAPTR=""
|
---|
132 | .F S STAPTR=$O(@PHRMARRY@(RVRSDT,STAPTR)) Q:STAPTR=""!(OUT["^") D
|
---|
133 | ..S RXIDX=-1
|
---|
134 | ..F S RXIDX=$O(@PHRMARRY@(RVRSDT,STAPTR,RXIDX)) Q:RXIDX=""!(RXIDX="PID")!(OUT["^") D
|
---|
135 | ...I $Y+6>IOSL S PAGE=PAGE+1 D HEADING1 Q:OUT["^" D HEADING2
|
---|
136 | ...S ND=$G(@PHRMARRY@(RVRSDT,STAPTR,RXIDX)) Q:ND=""
|
---|
137 | ...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))
|
---|
138 | ...W !,?9,"SIG: ",$E($P(ND,"^",7),1,25),?40,"ISSUED AT ",$P(ND,"^",8)," (",$P(ND,"^",9),")"
|
---|
139 | ...W !,?9,"PROVIDER: ",$P(ND,"^",10)
|
---|
140 | K @PHRMARRY
|
---|
141 | Q
|
---|