- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/OUTPATIENT_PHARMACY-PSO-APSP-HUIP/PSORELD1.m
r628 r636 1 PSORELD1 ;BIR/PWC-HL7 V.2.4 EXTERNAL INTERFACE RELEASE DATE/TIME CONT. ;03/22/04 2 ;;7.0;OUTPATIENT PHARMACY;**156**;DEC 1997 1 PSORELD1 ;BIR/PWC-HL7 V.2.4 EXTERNAL INTERFACE RELEASE DATE/TIME CONT. ;5:23 AM 31 Jan 2008 2 ;;7.0;OUTPATIENT PHARMACY;**156**;DEC 1997;Build 4 3 ;Modified from FOIA VISTA, 4 ;Copyright 2008 WorldVistA. Licensed under the terms of the GNU 5 ;General Public License See attached copy of the License. 6 ; 7 ;This program is free software; you can redistribute it and/or modify 8 ;it under the terms of the GNU General Public License as published by 9 ;the Free Software Foundation; either version 2 of the License, or 10 ;(at your option) any later version. 11 ; 12 ;This program is distributed in the hope that it will be useful, 13 ;but WITHOUT ANY WARRANTY; without even the implied warranty of 14 ;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 ;GNU General Public License for more details. 16 ; 17 ;You should have received a copy of the GNU General Public License along 18 ;with this program; if not, write to the Free Software Foundation, Inc., 19 ;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 20 ; 3 21 ;HLFNC supp. by DBIA 10106 4 22 ;PSNAPIS supp. by DBIA 2531 … … 25 43 D PID(.PSI),PV1(.PSI),PV2(.PSI),ORC(.PSI),RXE(.PSI),RXD(.PSI) 26 44 ; clean up data set by GETDATA 27 K BINGO,RELDT,SITE,SITADD,SITPHN,PSOXN,PSOXN2,PSND1,PSND2,PSND3,PRODUCT,PSOPROD,VANAME,UNIT,PSDOSE,PODOSENM,POIPTR,NRFL,DISPDT,COPAY,ERR,PSONDC,NFDL,NFLD,PSZIP,PSOHZIP,TRADENM,X,Y,UU 28 Q 45 K BINGO,RELDT,SITE,SITADD,SITPHN,PSOXN,PSOXN2,PSND1,PSND2,PSND3,PRODUCT,PSOPROD,VANAME 46 K UNIT,PSDOSE,PODOSENM,POIPTR,NRFL,DISPDT,COPAY,ERR,PSONDC,NFDL,NFLD,PSZIP,PSOHZIP,TRADENM,X,Y,UU 47 QUIT 48 ; ======== 29 49 GETDATA ; this is the place to set all data needed for several segments 30 50 I $G(FP)="F"&('$G(FPN)) D ;original … … 32 52 . S PVDR=$P(^PSRX(IRXN,0),"^",4),QTY=$P(^(0),"^",7),DASPLY=$P(^(0),"^",8),MW=$P(^(0),"^",11),EBY=$P(^(0),"^",16) 33 53 I $G(FP)="F"&($G(FPN)) D ;refill 34 . S FDT=$P(^PSRX(IRXN,1,FPN,0),"^"),MW=$P(^(0),"^",2),QTY=$P(^(0),"^",4),DASPLY=$P(^(0),"^",10),DISPDT=$P(^(0),"^",19),EXDT=$S($P(^(0),"^",15):$P(^(0),"^",15),1:$P(^PSRX(IRXN,2),"^",6)) 54 . S FDT=$P(^PSRX(IRXN,1,FPN,0),"^"),MW=$P(^(0),"^",2),QTY=$P(^(0),"^",4),DASPLY=$P(^(0),"^",10),DISPDT=$P(^(0),"^",19) 55 . S EXDT=$S($P(^(0),"^",15):$P(^(0),"^",15),1:$P(^PSRX(IRXN,2),"^",6)) 35 56 . S VPHARMID=$S($P(^PSRX(IRXN,1,FPN,0),"^",5)'="":$P(^(0),"^",5),1:$P(^PSRX(IRXN,2),"^",10)) 36 . S EBY=$S($P(^PSRX(IRXN,1,FPN,0),"^",5):$P(^(0),"^",5),1:$P(^(0),"^",7)),PVDR=$P(^(0),"^",17),PSONDC=$S($P($G(^PSRX(IRXN,1,FPN,1)),"^",3):$P(^(1),"^",3),1:$P(^PSRX(IRXN,2),"^",7)) 57 . S EBY=$S($P(^PSRX(IRXN,1,FPN,0),"^",5):$P(^(0),"^",5),1:$P(^(0),"^",7)),PVDR=$P(^(0),"^",17) 58 . S PSONDC=$S($P($G(^PSRX(IRXN,1,FPN,1)),"^",3):$P(^(1),"^",3),1:$P(^PSRX(IRXN,2),"^",7)) 37 59 I $G(FP)="P" D ;partial 38 . S FDT=$P(^PSRX(IRXN,"P",FPN,0),"^"),MW=$P(^(0),"^",2),QTY=$P(^(0),"^",4),DASPLY=$P(^(0),"^",10),DISPDT=$P(^(0),"^",13),PVDR=$P(^(0),"^",17),EXDT=$P(^PSRX(IRXN,2),"^",6) 39 . S EBY=$S($P(^PSRX(IRXN,"P",FPN,0),"^",5):$P(^(0),"^",5),1:$P(^(0),"^",7)),VPHARMID=$S($P(^(0),"^",5)'="":$P(^(0),"^",5),1:$P(^PSRX(IRXN,2),"^",10)),PVDR=$P(^PSRX(IRXN,"P",FPN,0),"^",17) 60 . S FDT=$P(^PSRX(IRXN,"P",FPN,0),"^"),MW=$P(^(0),"^",2),QTY=$P(^(0),"^",4),DASPLY=$P(^(0),"^",10),DISPDT=$P(^(0),"^",13) 61 . S PVDR=$P(^(0),"^",17),EXDT=$P(^PSRX(IRXN,2),"^",6) 62 . S EBY=$S($P(^PSRX(IRXN,"P",FPN,0),"^",5):$P(^(0),"^",5),1:$P(^(0),"^",7)) 63 . S VPHARMID=$S($P(^(0),"^",5)'="":$P(^(0),"^",5),1:$P(^PSRX(IRXN,2),"^",10)),PVDR=$P(^PSRX(IRXN,"P",FPN,0),"^",17) 40 64 . S PSONDC=$S($P(^PSRX(IRXN,"P",FPN,0),"^",12):$P(^(0),"^",12),1:$P(^PSRX(IRXN,2),"^",7)) 41 65 S EFDT=$P(^PSRX(IRXN,2),"^",2) S:$G(EFDT) EFDT=$$HLDATE^HLFNC(EFDT,"DT") … … 43 67 S DEAID=$$GET1^DIQ(200,PVDR_",",53.2) 44 68 K DIC,X,Y S DIC="^VA(200,",DIC(0)="N,Z",X=VPHARMID D ^DIC 45 S VPHARM=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)) :1,"""""") K DIC,X,Y69 S VPHARM=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)),1:"""""") K DIC,X,Y 46 70 K DIC,X,Y S DIC="^VA(200,",DIC(0)="N,Z",X=EBY D ^DIC 47 S EBY1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)) :1,"""""") K DIC,X,Y71 S EBY1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)),1:"""""") K DIC,X,Y 48 72 K DIC,X,Y S DIC="^VA(200,",DIC(0)="N,Z",X=PVDR D ^DIC 49 S PVDR1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)) :1,"""""") K DIC,X,Y73 S PVDR1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)),1:"""""") K DIC,X,Y 50 74 S PRIORDT=$P(^PSRX(IRXN,3),"^",4),PRIORDT=$$HLDATE^HLFNC(PRIORDT,"DT") 51 75 S FDT=$$HLDATE^HLFNC(FDT,"DT") … … 55 79 S FIN=$P(^PSRX(IRXN,"OR1"),"^",5) 56 80 K DIC,X,Y S DIC="^VA(200,",DIC(0)="N,Z",X=FIN D ^DIC 57 S FIN1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)) :1,"""""") K DIC,X,Y81 S FIN1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)),1:"""""") K DIC,X,Y 58 82 S SITE=$S($D(^PS(59,PSOSITE,0)):^(0),1:"") 59 83 S PSZIP=$P(SITE,"^",5) S PSOHZIP=$S(PSZIP["-":PSZIP,1:$E(PSZIP,1,5)_$S($E(PSZIP,6,9)]"":"-"_$E(PSZIP,6,9),1:"")) … … 61 85 S CSINER=$P(^PSRX(IRXN,3),"^",3) 62 86 K DIC,X,Y S DIC="^VA(200,",DIC(0)="N,Z",X=CSINER D ^DIC 63 S CSINER1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)) :1,"""""") K DIC,X,Y87 S CSINER1=$S(+Y:$$HLNAME^HLFNC($P(Y,"^",2)),1:"""""") K DIC,X,Y 64 88 D 6^VADPT 65 89 I MW="W" S MP=$S($P($G(^PSRX(IRXN,"MP")),"^"):$P(^("MP"),"^"),1:"""""") … … 87 111 S NFLD=0,UU="" F S UU=$O(^PSRX(IRXN,1,UU)) Q:UU="" S:$D(^PSRX(IRXN,1,UU,0)) NFLD=NFLD+1 88 112 S NRFL=$P(^PSRX(IRXN,0),"^",9),RFRM=(NRFL-NFLD) 89 Q 113 QUIT 114 ; ========= 90 115 PID(PSI) ;patient ID segment 91 Q:'$D(DFN)!$D(PAS) 116 QUIT:'$D(DFN)!$D(PAS) 117 ; 92 118 S HLFS=HL1("FS"),HLECH=HL1("ECH"),HLQ=HL1("Q"),HLVER=HL1("VER") 93 119 K PSPID,PSPID1 … … 127 153 S PAS=1 128 154 K PSPID,PSPID1,PRSEPID,PRSEZTA,SPOT,TMPADD,ADDSEQ 129 Q 155 QUIT 156 ; ========= 130 157 PV1(PSI) ;patient visit segment 131 158 N PV1 ;hardcoded to letter O for Outpatient (Patient class) … … 133 160 S ^TMP("PSO",$J,PSI)=PV1 134 161 S PSI=PSI+1 135 Q 162 QUIT 163 ; ========= 136 164 PV2(PSI) ;patient visit segment (additional information) 137 165 ;PATIENT STATUS AND COPAY … … 140 168 S ^TMP("PSO",$J,PSI)="PV2|"_PV2 141 169 S PSI=PSI+1 142 Q 170 QUIT 171 ; ========= 143 172 ORC(PSI) ;common order segment 144 Q:'$D(DFN) 173 QUIT:'$D(DFN) 174 ; 145 175 N ORC S ORC="" 146 176 S $P(ORC,"|",1)="OE" … … 154 184 S $P(ORC,"|",17)=CLN_CS_CLN1_CS_"99PSC" 155 185 S $P(ORC,"|",19)=$S(CSINER'="":CSINER_CS_CSINER1,1:"") 156 S $P(ORC,"|",21)=$P(SITE,"^",1)_CS_CS_$P(SITE,"^",6)_ 186 ; 3080129 - RCR 187 ; Segment 21 is incomplete. Truncated. 188 ; S $P(ORC,"|",21)=$P(SITE,"^",1)_CS_CS_$P(SITE,"^",6)_ 189 S $P(ORC,"|",21)=$P(SITE,"^",1)_CS_CS_$P(SITE,"^",6) 157 190 S PSZIP=$P(SITE,"^",5) S PSOHZIP=$S(PSZIP["-":PSZIP,1:$E(PSZIP,1,5)_$S($E(PSZIP,6,9)]"":"-"_$E(PSZIP,6,9),1:"")) 158 191 S $P(ORC,"|",22)=$P(SITE,"^",2)_CS_CS_$P(SITE,"^",7)_CS_$S($D(^DIC(5,+$P(SITE,"^",8),0)):$P(^(0),"^",2),1:"UKN")_CS_PSOHZIP 159 192 S $P(ORC,"|",23)="("_$P(SITE,"^",3)_")"_$P(SITE,"^",4) 160 193 S ^TMP("PSO",$J,PSI)="ORC|"_ORC,PSI=PSI+1 161 Q 194 QUIT 195 ; =========== 162 196 RXE(PSI) ;Pharmacy/treatment Encoded Order segment 163 Q:'$D(DFN) 164 N RXE S RXE="" 197 QUIT:'$D(DFN) 198 ; 199 N RXE,PSDRG10 200 S RXE="" 165 201 S $P(RXE,"|",1)="""""" 166 S $P(RXE,"|",2)=$S($P($G(^PSDRUG(IDGN,"ND")),"^",10)'="":$P(^("ND"),"^",10),($G(PSND1)&$G(PSND3)):$P($G(PSOXN2),"^",2),1:"""""")_CS_$G(PSND2)_CS_"99PSNDF"_CS_PSND1_"."_PSND3_"."_$G(IDGN)_CS_$P($G(^PSDRUG(IDGN,0)),"^")_CS_"99PSD" 202 S PSDRG10=$P($G(^PSDRUG(IDGN,"ND")),"^",10) 203 ; 204 ; 29JAN2008 - RCR ; The problem is tha/home/rcr/PSORELD1.mt the last $PIECE is incomplete. This needs to be validated 205 ; S $P(RXE,"|",2)=$S($P($G(^PSDRUG(IDGN,"ND")),"^",10)'="":$P(^("ND"),"^",10),($G(PSND1)&$G(PSND3)):$P($G(PSOXN2),"^",2),1:"""""")_CS_$G(PSND2)_CS_"99PSNDF"_CS_PSND1_"."_PSND3_"."_$G(IDGN)_CS_$P($G(^PSDRUG(IDGN,0)),"^"_CS_"99PSD" 206 S $P(RXE,"|",2)=$S(PSDRG10'="":PSDRG10,($G(PSND1)&$G(PSND3)):$P($G(PSOXN2),"^",2),1:"""""")_CS_$G(PSND2)_CS_"99PSNDF"_CS_PSND1_"."_PSND3_"."_$G(IDGN)_CS_$P($G(^PSDRUG(IDGN,0)),"^")_CS_"99PSD" 167 207 S $P(RXE,"|",3)="" 168 208 I $G(PSOXN)="" S PSOXN="""""" 169 209 S $P(RXE,"|",5)=PSOXN_CS_$S($G(UNIT)'="":$G(UNIT),1:"""""")_CS_"99PSU" 170 S POIPTR=$P($G(^PSRX(IRXN,"OR1")),"^") I POIPTR S PODOSE=$P($G(^PS(50.7,POIPTR,0)),"^",2),PODOSENM=$G(^PS(50.606,PODOSE,0)) 210 S POIPTR=$P($G(^PSRX(IRXN,"OR1")),"^") 211 I POIPTR S PODOSE=$P($G(^PS(50.7,POIPTR,0)),"^",2),PODOSENM=$G(^PS(50.606,PODOSE,0)) 171 212 I '$G(POIPTR) S PODOSE=$P($G(^PS(50.7,$P($G(^PSDRUG(IDGN,2)),"^"),0)),"^",2),PODOSENM=$G(^PS(50.606,PODOSE,0)) 172 213 S TRADENM=$G(^PSRX(IRXN,"TN")) 173 214 S $P(RXE,"|",6)=PODOSE_CS_PODOSENM_CS_"99PSF" 174 215 S $P(RXE,"|",8)=MP 175 S $P(RXE,"|",9)=TRADENM_ 216 ; 217 ; 3080129 - RCR 218 ; Segment 9 is incomplete, truncated. 219 ; S $P(RXE,"|",9)=TRADENM_ 220 S $P(RXE,"|",9)=TRADENM 176 221 S $P(RXE,"|",15)=$P(^PSRX(IRXN,0),"^") 177 222 S ^TMP("PSO",$J,PSI)="RXE|"_RXE,PSI=PSI+1 178 Q 223 QUIT 224 ; ========= 179 225 RXD(PSI) ;pharmacy dispense segment 180 Q:'$D(DFN) 226 QUIT:'$D(DFN) 227 ; 181 228 N RXD S RXD="" 182 229 S $P(RXD,"|",1)=$S($G(NFLD):NFLD,1:0) … … 185 232 S $P(RXD,"|",7)=$P(^PSRX(IRXN,0),"^") 186 233 S $P(RXD,"|",9)=RELDT_RS_BINGO_RS_PSONDC 187 Q 234 QUIT 235 ; ========
Note:
See TracChangeset
for help on using the changeset viewer.