| [613] | 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
 | 
|---|