[1595] | 1 | C0PWPS ; ERX/GPL - eRx CPRS RPCs ; 2/8/10 ; 5/8/12 5:24pm
|
---|
| 2 | ;;1.0;C0P;;Apr 25, 2012;Build 103
|
---|
| 3 | ;Copyright 2009 George Lilly. Licensed under the terms of the GNU
|
---|
| 4 | ;General Public License See attached copy of the License.
|
---|
| 5 | ;
|
---|
| 6 | ;This program is free software; you can redistribute it and/or modify
|
---|
| 7 | ;it under the terms of the GNU General Public License as published by
|
---|
| 8 | ;the Free Software Foundation; either version 2 of the License, or
|
---|
| 9 | ;(at your option) any later version.
|
---|
| 10 | ;
|
---|
| 11 | ;This program is distributed in the hope that it will be useful,
|
---|
| 12 | ;but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
| 13 | ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
| 14 | ;GNU General Public License for more details.
|
---|
| 15 | ;
|
---|
| 16 | ;You should have received a copy of the GNU General Public License along
|
---|
| 17 | ;with this program; if not, write to the Free Software Foundation, Inc.,
|
---|
| 18 | ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
---|
| 19 | ;
|
---|
| 20 | Q
|
---|
| 21 | ; These routines are substitutes for COVER^ORWPS and DETAIL^ORWPS to
|
---|
| 22 | ; display eRx and CCR/CCD medication lists accurately
|
---|
| 23 | ;
|
---|
| 24 | COVER(LST,DFN) ; retrieve meds for cover sheet
|
---|
| 25 | K ^TMP("PS",$J)
|
---|
| 26 | D OCL^PSOORRL(DFN,"","") ;DBIA #2400
|
---|
| 27 | N ILST,ITMP,X S ILST=0
|
---|
| 28 | S ITMP="" F S ITMP=$O(^TMP("PS",$J,ITMP)) Q:'ITMP D
|
---|
| 29 | . S X=^TMP("PS",$J,ITMP,0)
|
---|
| 30 | . I '$L($P(X,U,2)) S X="??" ; show something if drug empty
|
---|
| 31 | . I $D(^TMP("PS",$J,ITMP,"CLINIC",0)) S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)_U_"C"
|
---|
| 32 | . E S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)
|
---|
| 33 | K ^TMP("PS",$J)
|
---|
| 34 | ; BEGIN NEW PROCESSING (EVERYTHING ABOVE WAS COPIED FROM COVER^0RWPS
|
---|
| 35 | N ZCUR
|
---|
| 36 | D GET^C0PCUR(.ZCUR,DFN) ; GET THE DETAIL FOR THE SAME MEDS LIST
|
---|
| 37 | N ZI S ZI=""
|
---|
| 38 | F S ZI=$O(LST(ZI)) Q:ZI="" D ;FOR EACH MED IN THE LIST
|
---|
| 39 | . I $P(LST(ZI),U,2)["FREE TXT" D ; IS AN ERX UNMAPPED DRUG
|
---|
| 40 | . . N ZD
|
---|
| 41 | . . S ZD=$P(ZCUR(ZI,"SIG",1,0),"|",1) ; REAL DRUG NAME SHOULD BE IN SIG
|
---|
| 42 | . . ; SEPARATED BY "|"
|
---|
| 43 | . . I ZD'="" S $P(LST(ZI),U,2)=ZD ; IF SO, USE THE REAL NAME
|
---|
| 44 | ; BEGIN VISTACOM MOD -
|
---|
| 45 | ; SAVE THE DUZ OFF TO THE VISTACOM TMP GLOBAL
|
---|
| 46 | S ^TMP("ZEWD",$J,"DUZ")=DUZ ; TO BE PICKED UP AND DELETED LATER BY VISTACOM
|
---|
| 47 | Q
|
---|
| 48 | COVER2(LST,DFN) ; retrieve meds for cover sheet ;
|
---|
| 49 | ; THIS VERSION WILL DISPLAY THE DRUG NAME FROM THE PHARMACY ORDERABLE
|
---|
| 50 | ; ITEMS FILE FOR ERX DRUGS. THIS ALLOWS THE DRUG TO APPEAR AS GENERIC(BRAND)
|
---|
| 51 | ; FOR CERTAIN DRUGS - GPL 10/5/10
|
---|
| 52 | K ^TMP("PS",$J)
|
---|
| 53 | D OCL^PSOORRL(DFN,"","") ;DBIA #2400
|
---|
| 54 | N ILST,ITMP,X S ILST=0
|
---|
| 55 | S ITMP="" F S ITMP=$O(^TMP("PS",$J,ITMP)) Q:'ITMP D
|
---|
| 56 | . S X=^TMP("PS",$J,ITMP,0)
|
---|
| 57 | . I '$L($P(X,U,2)) S X="??" ; show something if drug empty
|
---|
| 58 | . I $D(^TMP("PS",$J,ITMP,"CLINIC",0)) S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)_U_"C"
|
---|
| 59 | . E S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)
|
---|
| 60 | K ^TMP("PS",$J)
|
---|
| 61 | ; BEGIN NEW PROCESSING (EVERYTHING ABOVE WAS COPIED FROM COVER^0RWPS
|
---|
| 62 | N ZCUR
|
---|
| 63 | D GET^C0PCUR(.ZCUR,DFN) ; GET THE DETAIL FOR THE SAME MEDS LIST
|
---|
| 64 | N ZI S ZI=""
|
---|
| 65 | F S ZI=$O(LST(ZI)) Q:ZI="" D ;FOR EACH MED IN THE LIST
|
---|
| 66 | . I $P(LST(ZI),U,2)["FREE TXT" D ; IS AN ERX UNMAPPED DRUG
|
---|
| 67 | . . N ZD
|
---|
| 68 | . . S ZD=$P(ZCUR(ZI,"SIG",1,0),"|",1) ; REAL DRUG NAME SHOULD BE IN SIG
|
---|
| 69 | . . ; SEPARATED BY "|"
|
---|
| 70 | . . I ZD'="" S $P(LST(ZI),U,2)=ZD ; IF SO, USE THE REAL NAME
|
---|
| 71 | . E I $P(LST(ZI),U,1)["N" D ; THIS IS A NONVA DRUG
|
---|
| 72 | . . N ZD,ZDIEN
|
---|
| 73 | . . I $G(ZCUR(ZI,"COMMENTS",1))["E-Rx" D ; IS AN ERX DRUG
|
---|
| 74 | . . . S ZDIEN=$G(ZCUR(ZI,"DRUG")) ; IEN IN THE DRUG FILE
|
---|
| 75 | . . . S ZD=$$GET1^DIQ(50,ZDIEN,2.1) ; THE PHARMACY ORDERABLE ITEM
|
---|
| 76 | . . . I ZD'="" S $P(LST(ZI),U,2)=ZD ; USE THIS DRUG NAME
|
---|
| 77 | ; BEGIN VISTACOM MOD -
|
---|
| 78 | ; SAVE THE DUZ OFF TO THE VISTACOM TMP GLOBAL
|
---|
| 79 | S ^TMP("ZEWD",$J,"DUZ")=DUZ ; TO BE PICKED UP AND DELETED LATER BY VISTACOM
|
---|
| 80 | Q
|
---|
| 81 | COVER3(LST,DFN) ; retrieve meds for cover sheet ;
|
---|
| 82 | ; THIS VERSION WILL DISPLAY THE FIRST DATA BANK DRUG NAME WHERE AVAILABLE
|
---|
| 83 | ; - GPL 10/6/10
|
---|
| 84 | K ^TMP("PS",$J)
|
---|
| 85 | D OCL^PSOORRL(DFN,"","") ;DBIA #2400
|
---|
| 86 | N ILST,ITMP,X S ILST=0
|
---|
| 87 | S ITMP="" F S ITMP=$O(^TMP("PS",$J,ITMP)) Q:'ITMP D
|
---|
| 88 | . S X=^TMP("PS",$J,ITMP,0)
|
---|
| 89 | . I '$L($P(X,U,2)) S X="??" ; show something if drug empty
|
---|
| 90 | . I $D(^TMP("PS",$J,ITMP,"CLINIC",0)) S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)_U_"C"
|
---|
| 91 | . E S LST($$NXT^ORWPS)=$P(X,U,1,2)_U_$P(X,U,8,9)
|
---|
| 92 | K ^TMP("PS",$J)
|
---|
| 93 | ; BEGIN NEW PROCESSING (EVERYTHING ABOVE WAS COPIED FROM COVER^0RWPS
|
---|
| 94 | N ZCUR
|
---|
| 95 | D GET^C0PCUR(.ZCUR,DFN) ; GET THE DETAIL FOR THE SAME MEDS LIST
|
---|
| 96 | N ZI S ZI=""
|
---|
| 97 | F S ZI=$O(LST(ZI)) Q:ZI="" D ;FOR EACH MED IN THE LIST
|
---|
| 98 | . I $P(LST(ZI),U,2)["FREE TXT" D ; IS AN ERX UNMAPPED DRUG
|
---|
| 99 | . . N ZD
|
---|
| 100 | . . S ZD=$P(ZCUR(ZI,"SIG",1,0),"|",1) ; REAL DRUG NAME SHOULD BE IN SIG
|
---|
| 101 | . . ; SEPARATED BY "|"
|
---|
| 102 | . . I ZD'="" S $P(LST(ZI),U,2)=ZD ; IF SO, USE THE REAL NAME
|
---|
| 103 | . E I $P(LST(ZI),U,1)["N" D ; THIS IS A NONVA DRUG
|
---|
| 104 | . . N ZD,ZDSIG
|
---|
| 105 | . . S ZDSIG=ZCUR(ZI,"SIG",1,0) ; THE SIG (CHECK THIS PLEASE)
|
---|
| 106 | . . I ZDSIG["|" D ; THERE ARE TWO PARTS TO THE SIG
|
---|
| 107 | . . . S ZD=$P(ZDSIG,"|",1) ; FDB DRUG NAME SHOULD BE IN SIG
|
---|
| 108 | . . . I ZD'="" S $P(LST(ZI),U,2)=ZD ; IF SO, USE THE FDB NAME
|
---|
| 109 | ; BEGIN VISTACOM MOD -
|
---|
| 110 | ; SAVE THE DUZ OFF TO THE VISTACOM TMP GLOBAL
|
---|
| 111 | S ^TMP("ZEWD",$J,"DUZ")=DUZ ; TO BE PICKED UP AND DELETED LATER BY VISTACOM
|
---|
| 112 | Q
|
---|
| 113 | DETAIL(ROOT,DFN,ID) ; -- show details for a med order
|
---|
| 114 | K ^TMP("ORXPND",$J)
|
---|
| 115 | N ZID
|
---|
| 116 | S ZID=ID
|
---|
| 117 | N LCNT,ORVP
|
---|
| 118 | S LCNT=0,ORVP=DFN_";DPT("
|
---|
| 119 | D MEDS^ORCXPND1
|
---|
| 120 | S ROOT=$NA(^TMP("ORXPND",$J))
|
---|
| 121 | I @ROOT@(11,0)="Order #0" D ERXDET
|
---|
| 122 | Q
|
---|
| 123 | ERXDET ; BUILD ERX MED DETAIL
|
---|
| 124 | N ZMEDS
|
---|
| 125 | D GET^C0PCUR(.ZMEDS,DFN)
|
---|
| 126 | N ZI,FOUND
|
---|
| 127 | S FOUND=0 S ZI=""
|
---|
| 128 | F Q:FOUND'=0 S ZI=$O(ZMEDS(ZI)) Q:ZI="" D ; SEARCH FOR THE ID
|
---|
| 129 | . I $P(ZMEDS(ZI,0),U,1)=ZID S FOUND=1 ; ID MATCHES THE MED
|
---|
| 130 | I FOUND=0 Q ; NO MATCH FOR THE MED
|
---|
| 131 | K @ROOT ; CLEAR OUT THE NULL DETAIL
|
---|
| 132 | ;W !,"MED FOUND ",ZI," ",ZID
|
---|
| 133 | N ZNAME,ZSIG,ZCOM,ZFDBN
|
---|
| 134 | S ZNAME=$P(ZMEDS(ZI,0),U,2)
|
---|
| 135 | S ZSIG=$G(ZMEDS(ZI,"SIG",1,0))
|
---|
| 136 | M ZCOM=ZMEDS(ZI,"COMMENTS")
|
---|
| 137 | I ZNAME["FREE TXT" D ;
|
---|
| 138 | . S ZNAME=$P(ZSIG,"|",1)
|
---|
| 139 | . S ZSIG=$P(ZSIG,"| ",2)
|
---|
| 140 | E I ZSIG["|" D ; NEED TO PULL OUT THE DRUG NAME FROM THE SIG
|
---|
| 141 | . S ZFDBN=$P(ZSIG,"|",1)
|
---|
| 142 | . S ZSIG=$P(ZSIG,"| ",2)
|
---|
| 143 | N ZN S ZN=1
|
---|
| 144 | S @ROOT@(ZN,0)=" Medication: "_ZNAME S ZN=ZN+1
|
---|
| 145 | I $G(ZFDBN)'="" D ; IF FIRST DATA BANK NAME IS KNOWN
|
---|
| 146 | . S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 147 | . S @ROOT@(ZN,0)=" FDB Name: "_ZFDBN S ZN=ZN+1
|
---|
| 148 | . S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 149 | E S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 150 | S @ROOT@(ZN,0)=" Sig: "_ZSIG S ZN=ZN+1
|
---|
| 151 | S @ROOT@(ZN,0)="" S ZN=ZN+1
|
---|
| 152 | S @ROOT@(ZN,0)=" Status: "_$P(ZMEDS(ZI,0),U,9) S ZN=ZN+1
|
---|
| 153 | S @ROOT@(ZN,0)="" S ZN=ZN+1
|
---|
| 154 | S @ROOT@(ZN,0)=" Schedule: "_$G(ZMEDS(ZI,"SCH",1,0)) S ZN=ZN+1
|
---|
| 155 | S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 156 | S @ROOT@(ZN,0)=" Start Date: "_$$FMTE^XLFDT($G(ZMEDS(ZI,"START"))) S ZN=ZN+1
|
---|
| 157 | S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 158 | S @ROOT@(ZN,0)=" Source: ePrescribing " S ZN=ZN+1
|
---|
| 159 | S @ROOT@(ZN,0)=" " S ZN=ZN+1
|
---|
| 160 | N ZI S ZI=""
|
---|
| 161 | F S ZI=$O(ZCOM(ZI)) Q:ZI="" D ;
|
---|
| 162 | . S @ROOT@(12+ZI,0)=ZCOM(ZI) ;COMMENT LINE
|
---|
| 163 | Q
|
---|
| 164 | ;
|
---|