1 | PSOQUAP2 ;HINES/RMS - UNIFIED PROFILE BASED ON PORTLAND IDEA ; 30 Nov 2007 7:58 AM
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**294**;DEC 1997;Build 13
|
---|
3 | ;
|
---|
4 | ;Reference to COVER^ORWPS supported by DBIA 4954
|
---|
5 | ;Reference to BCMALG^PSJUTL2 supported by DBIA 5057
|
---|
6 | EN ;ENTRY POINT FOR HEALTH SUMMARY
|
---|
7 | N RPC,RPCT,ALPHA,PSNUM,DRUGNM,RPCNODE,ORDER,SAVE
|
---|
8 | D COVER^ORWPS(.RPC,DFN)
|
---|
9 | S RPCT=0 F S RPCT=$O(RPC(RPCT)) Q:'+RPCT D ;
|
---|
10 | . S RPCNODE=RPC(RPCT)
|
---|
11 | . S PSNUM=$P(RPCNODE,"^")
|
---|
12 | . S DRUGNM=$$UP^XLFSTR($P(RPCNODE,"^",2))
|
---|
13 | . S ORDER=+$P(RPCNODE,"^",3)
|
---|
14 | . Q:DRUGNM']""!(ORDER=0)!(PSNUM']"")
|
---|
15 | . K SAVE(DRUGNM) S SAVE(DRUGNM,ORDER,PSNUM)=""
|
---|
16 | . Q:"ACTIVE^ACTIVE/SUSP^HOLD"'[$P(RPCNODE,"^",4)
|
---|
17 | . S ALPHA(DRUGNM,ORDER,PSNUM)=""
|
---|
18 | D ADDREM
|
---|
19 | D HEADER
|
---|
20 | D OUTPUT
|
---|
21 | D FOOTER
|
---|
22 | Q
|
---|
23 | HEADER N ATEST,ADATE,AVALUE,ATEXT
|
---|
24 | D NVADT^PSOQCF04(DFN,.ATEST,.ADATE,.AVALUE,.ATEXT)
|
---|
25 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
26 | W $$REPEAT^XLFSTR("-",IOM),!,"Alphabetized list of outpatient Rx's, inpatient orders, remote and Non-VA meds"
|
---|
27 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
28 | W !,"Legend: OPT = VA issued outpatient prescription, INP = VA issued inpatient order"
|
---|
29 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
30 | W !,"Non-VA Meds Last Documented On: "
|
---|
31 | W $S(+ADATE:$$FMTE^XLFDT(ADATE,"D"),1:"** Data not found **")
|
---|
32 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
33 | W !,$$REPEAT^XLFSTR("-",IOM)
|
---|
34 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
35 | Q
|
---|
36 | OUTPUT N DRUGNM,ORDER,PSNUM
|
---|
37 | N PACK,PACKREF,SIGLINE,ORDNUM
|
---|
38 | N LASTACT,OTLINE
|
---|
39 | S DRUGNM="" F S DRUGNM=$O(ALPHA(DRUGNM)) Q:DRUGNM']"" D K SAVE(DRUGNM) ;
|
---|
40 | . S ORDER="" F S ORDER=$O(ALPHA(DRUGNM,ORDER)) Q:ORDER']"" D ;
|
---|
41 | .. S PSNUM="" F S PSNUM=$O(ALPHA(DRUGNM,ORDER,PSNUM)) Q:PSNUM']"" D ;
|
---|
42 | ... S PACK=$P(PSNUM,";",2),ORDNUM=$P(PSNUM,";")
|
---|
43 | ... I PACK="I" D INPDISP
|
---|
44 | ... I PACK="O" D OPTDISP
|
---|
45 | ... I PACK="R" D RDIDISP
|
---|
46 | Q
|
---|
47 | FOOTER D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
48 | N BLINE
|
---|
49 | S BLINE=$$REPEAT^XLFSTR("-",IOM)
|
---|
50 | W !,BLINE,!,"Other medications previously dispensed in the last year:",!
|
---|
51 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
52 | N DRUGNM,ORDER,PSNUM
|
---|
53 | N PACK,PACKREF,SIGLINE
|
---|
54 | S DRUGNM="" F S DRUGNM=$O(SAVE(DRUGNM)) Q:DRUGNM']"" D ;
|
---|
55 | . S ORDER="" F S ORDER=$O(SAVE(DRUGNM,ORDER)) Q:ORDER']"" D ;
|
---|
56 | .. S PSNUM="" F S PSNUM=$O(SAVE(DRUGNM,ORDER,PSNUM)) Q:PSNUM']"" D ;
|
---|
57 | ... S PACK=$P(PSNUM,";",2)
|
---|
58 | ... I PACK="O" D OPTFOOT
|
---|
59 | Q
|
---|
60 | ADDREM ;6-21-07 ADD ACTIVE MEDS VIA REMOTE DATA INTEROPERABILITY
|
---|
61 | N PSOQRDI,PSOQMED,PSOQSTAT,PSOQRNAM,PSOQRNUM,PSOQDOWN
|
---|
62 | Q:'$$HAVEHDR^ORRDI1
|
---|
63 | D Q:$G(PSOQDOWN)
|
---|
64 | . I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) H $$GET^XPAR("ALL","ORRDI PING FREQ")/2
|
---|
65 | . I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) S PSOQDOWN=1 D
|
---|
66 | .. D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
67 | .. W !,"WARNING: Connection to Remote Data Currently Down",!
|
---|
68 | .. D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
69 | D ;18-MAR-08 TO ALLOW HDR/RDI PROCESS TO USE IO VARIABLE
|
---|
70 | . D SAVDEV^%ZISUTL("PSOQHFS")
|
---|
71 | . S PSOQRDI=$$GET^ORRDI1(DFN,"PSOO")
|
---|
72 | . D USE^%ZISUTL("PSOQHFS")
|
---|
73 | . D RMDEV^%ZISUTL("PSOQHFS")
|
---|
74 | I PSOQRDI=-1 D
|
---|
75 | . D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
76 | . W !,"WARNING: Connection to Remote Data Not Available",!
|
---|
77 | . D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
78 | Q:'$D(^XTMP("ORRDI","PSOO",DFN))
|
---|
79 | S PSOQMED=0 F S PSOQMED=$O(^XTMP("ORRDI","PSOO",DFN,PSOQMED)) Q:'+PSOQMED D
|
---|
80 | . S PSOQSTAT=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,5,0))
|
---|
81 | . Q:PSOQSTAT']"" ;8-3-07 TO CATCH INCOMPLETE RECORDS
|
---|
82 | . Q:"ACTIVE^SUSPENDED"'[PSOQSTAT
|
---|
83 | . S PSOQRNAM=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,2,0),"Unknown Drug")
|
---|
84 | . S PSOQRNUM=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,4,0))
|
---|
85 | . Q:PSOQRNAM']""!(PSOQRNUM']"")
|
---|
86 | . S ALPHA(PSOQRNAM,PSOQRNUM,PSOQMED_"X;R")=""
|
---|
87 | Q
|
---|
88 | OPTFOOT N PSOQLRD,PSOQYEAR
|
---|
89 | S PACKREF=+$G(^OR(100,ORDER,4))
|
---|
90 | S X1=DT,X2=-365 D C^%DTC S PSOQYEAR=X
|
---|
91 | S PSOQLRD=$$LRDFUNC^PSOQ0076(PACKREF)
|
---|
92 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
93 | Q:PSOQLRD<PSOQYEAR
|
---|
94 | Q:$P(PSNUM,";")["N"
|
---|
95 | W !,"OPT "_DRUGNM_" ("_$$GET1^DIQ(52,+PACKREF,100,"E")_"/"_$$DAYSSUPP^PSOQ0076(PACKREF)_" Days Supply Last Released: "_$$FMTE^XLFDT(PSOQLRD,"2D")_")" D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
96 | S SIGLINE=0 F S SIGLINE=$O(^PSRX(PACKREF,"SIG1",SIGLINE)) Q:'+SIGLINE D ;
|
---|
97 | . W !?5,$G(^PSRX(PACKREF,"SIG1",SIGLINE,0)) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
98 | W ! D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
99 | Q
|
---|
100 | INPDISP D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
101 | W !,"INP "_DRUGNM D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
102 | S LASTACT=$O(^OR(100,+ORDER,8,":"),-1)
|
---|
103 | S OTLINE=1 F S OTLINE=$O(^OR(100,+ORDER,8,LASTACT,.1,OTLINE)) Q:'+OTLINE D ;
|
---|
104 | . D WRAPTEXT^PSOQUTIL($$LSIG^PSOQUTIL($G(^OR(100,+ORDER,8,LASTACT,.1,OTLINE,0))),60,5) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
105 | . W !?5,$$BCMALG^PSJUTL2(DFN,ORDNUM) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
106 | W ! D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
107 | Q
|
---|
108 | OPTDISP N PSOQEXP,PSOQREF,PSOQSTA
|
---|
109 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
110 | S PACKREF=+$G(^OR(100,ORDER,4))
|
---|
111 | S PSOQLRD=$$LRDFUNC^PSOQ0076(PACKREF)
|
---|
112 | S PSOQEXP=$$EXPDATE^PSOQ0076(PACKREF)
|
---|
113 | S PSOQREF=$$REFILLS^PSOQ0076(PACKREF)
|
---|
114 | I $P(PSNUM,";")["N" G NVADISP
|
---|
115 | D ;
|
---|
116 | . N C,Y
|
---|
117 | . S Y=$G(^PSRX(PACKREF,"STA"))
|
---|
118 | . S C=$P(^DD(52,100,0),U,2)
|
---|
119 | . D Y^DIQ
|
---|
120 | . S PSOQSTA=Y
|
---|
121 | W !,"OPT "_DRUGNM_" (Status = "_PSOQSTA_")"
|
---|
122 | S SIGLINE=0 F S SIGLINE=$O(^PSRX(PACKREF,"SIG1",SIGLINE)) Q:'+SIGLINE D ;
|
---|
123 | . W !?5,$G(^PSRX(PACKREF,"SIG1",SIGLINE,0)) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
124 | W !?10,"Last Released: "_$$FMTE^XLFDT(PSOQLRD,"2D"),?55,"Days Supply: "_$$DAYSSUPP^PSOQ0076(PACKREF) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
125 | W !?10,"Rx Expiration Date: ",$$FMTE^XLFDT(PSOQEXP,"2D"),?55,"Refills Remaining: ",PSOQREF D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
126 | W ! D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
127 | Q
|
---|
128 | RDIDISP D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
129 | W !,"Remote "_DRUGNM D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
130 | N PSOQSIG,PSOQSTAT
|
---|
131 | S PSOQSIG=$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,14,0))
|
---|
132 | D WRAPTEXT^PSOQUTIL(PSOQSIG,65,5)
|
---|
133 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
134 | S PSOQSTAT=$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,5,0))
|
---|
135 | S PSOQSTAT=$S(PSOQSTAT["ACTIVE":"Active",PSOQSTAT["SUSPENDED":"Active/Suspended",1:"Unknown")
|
---|
136 | W !?10,"Last Filled: "_$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,9,0))_" ("_PSOQSTAT_" at "_$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,1,0))_") "
|
---|
137 | W:$X>54 ! ;NEW LINE IF THE STATUS+STATION IS TOO LONG
|
---|
138 | W ?55,"Days Supply: "_$P($P($G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,6,0)),";",2),"D",2)
|
---|
139 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
140 | W !?10,"Rx Expiration Date: ",$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,7,0)),?55,"Refills Remaining: ",$G(^XTMP("ORRDI","PSOO",DFN,+ORDNUM,10,0))
|
---|
141 | D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
142 | W ! D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
143 | Q
|
---|
144 | NVADISP D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
145 | W !,"Non VA "_DRUGNM D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
146 | S LASTACT=$O(^OR(100,ORDER,8,":"),-1)
|
---|
147 | S OTLINE=1 F S OTLINE=$O(^OR(100,ORDER,8,LASTACT,.1,OTLINE)) Q:'+OTLINE D ;
|
---|
148 | .D WRAPTEXT^PSOQUTIL($G(^OR(100,ORDER,8,LASTACT,.1,OTLINE,0)),65,5) D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
149 | W ! D CKP^GMTSUP Q:$D(GMTSQIT)
|
---|
150 | Q
|
---|