| [613] | 1 | PSOVDF1 ;BPOIFO/EL-OUTPATIENT PHARMACY (PRES, PREF, PPAR) HL7 MESSAGE ;10/04/04
 | 
|---|
 | 2 |  ;;7.0;OUTPATIENT PHARMACY;**190,205,220,235,261**;DEC 1997;Build 9
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | VALID ;;VDEF HL7 MESSAGE BUILDER
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 |  ; DBIA #4248 - $$XCN200^VDEFEL (or <MultipleTag>^VDEFEL)
 | 
|---|
 | 7 |  ; DBIA #3552 - $$PARAM^HLCS2
 | 
|---|
 | 8 |  ; DBIA #3630 - BLDPID^VAFCQRY
 | 
|---|
 | 9 |  ; DBIA #10040 - 0-NODE of ^SC
 | 
|---|
 | 10 |  ; DBIA 4571 - ERR^VDEFREQ
 | 
|---|
 | 11 |  ; 
 | 
|---|
 | 12 |  ; This routine is called at tag EN as a Function by VDEFREQ1
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  Q
 | 
|---|
 | 15 |  ;
 | 
|---|
 | 16 | EN(EVIEN,KEY,VFLAG,OUT,MSHP) ;
 | 
|---|
 | 17 |  ; This routine creates one of three Outpatient Pharmacy HL7 messages:
 | 
|---|
 | 18 |  ; RDE^O11^PRES, RDS^O13^PREF, or RDS^O13^PPAR
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 |  ; Input Parameters:
 | 
|---|
 | 21 |  ;    EVIEN - IEN of message in file 577
 | 
|---|
 | 22 |  ;    KEY -   IEN to File #52 ^PSRX
 | 
|---|
 | 23 |  ;    VFLAG - "V" for VistA HL7 destination (default)
 | 
|---|
 | 24 |  ;    OUT -   Target array.  Must be passed by reference
 | 
|---|
 | 25 |  ;    MSHP -  4th piece is SUBTYPE (PRES, PREF, PPAR)
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  ; Returns:
 | 
|---|
 | 28 |  ;    Two piece string with separator '^':
 | 
|---|
 | 29 |  ;    Piece 1 - "LM" - LOCAL ARRAY
 | 
|---|
 | 30 |  ;    Piece 2 - MSH segment, is not set
 | 
|---|
 | 31 |  ;    OUT - OUTPUT array includes HL7 message for every segment except MSH
 | 
|---|
 | 32 |  ;              
 | 
|---|
 | 33 |  ;  Message Body "MSH,PID,ORC1,RXE1,RXR1,FT1,OBX1,NTE1,ORC2,ORC3"
 | 
|---|
 | 34 |  ;  The Pharmacy Original Fill message will be generated by pgm:PSOVDF2 - (ORC1. . NTE1)
 | 
|---|
 | 35 |  ;
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 |  N CTR,PSOVDFD0,PSOVDFD1,DFN,DRCODE,PSOVDRUG,ERR,FILE,FIELD,GIVECODE,GL,GLOB,GLOBAL,HLINST,PSOVDDIV,PSOVD59,PSOVERR
 | 
|---|
 | 38 |  N I,L,MSG,NTE,P,RES,SEPC,SEPE,SEPF,SEPR,SEPS,SRC,SUBTYPE,TARGET,PSOVDFES,PSOVESC,PSOVDFIN
 | 
|---|
 | 39 |  N HL7DEL,REPSEPC,REPSEPE,REPSEPF,REPSEPR,REPSEPS,TEMP,TP,UNIT,VAL,WR,X,Y,Z,VCMP,VFT7
 | 
|---|
 | 40 |  ;
 | 
|---|
 | 41 |  S (ERR,TARGET)=""
 | 
|---|
 | 42 |  D INIT
 | 
|---|
 | 43 |  I $G(ERR)'="" D ERR^VDEFREQ(ERR) S ZTSTOP=1 G QUIT
 | 
|---|
 | 44 |  D MSHPID
 | 
|---|
 | 45 |  I $G(ERR)'="" D ERR^VDEFREQ(ERR) S ZTSTOP=1 G QUIT
 | 
|---|
 | 46 |  D PROCESS^PSOVDF2
 | 
|---|
 | 47 |  D ORC2
 | 
|---|
 | 48 | QUIT Q TARGET
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | INIT ;
 | 
|---|
 | 51 |  K GL,OUT,TEMP,TP
 | 
|---|
 | 52 |  S (PSOVDFD0,PSOVDFES,DFN,DRCODE,PSOVDRUG,FILE,GIVECODE,GLOB,SEPC,SEPE,SEPF,SEPR,SEPS,SRC,SUBTYPE,UNIT,VAL)=""
 | 
|---|
 | 53 |  S (HL7DEL,REPSEPC,REPSEPE,REPSEPF,REPSEPR,REPSEPS)=""
 | 
|---|
 | 54 |  S OUT("HLS")=0
 | 
|---|
 | 55 |  S PSOVDFD0=KEY
 | 
|---|
 | 56 |  I $G(U)'="^" S U="^"
 | 
|---|
 | 57 |  S FILE=52
 | 
|---|
 | 58 |  S SUBTYPE=$P($G(MSHP),"~",4)
 | 
|---|
 | 59 |  S VAL=$G(HL("ECH")) I VAL="" S VAL="~|\&",HL("ECH")=VAL
 | 
|---|
 | 60 |  S SEPE=$E(VAL,3),REPSEPE=SEPE_"E"_SEPE
 | 
|---|
 | 61 |  S SEPC=$E(VAL,1),REPSEPC=SEPE_"S"_SEPE
 | 
|---|
 | 62 |  S SEPR=$E(VAL,2),REPSEPR=SEPE_"R"_SEPE
 | 
|---|
 | 63 |  S SEPS=$E(VAL,4),REPSEPS=SEPE_"T"_SEPE
 | 
|---|
 | 64 |  S VAL=$G(HL("FS")) I VAL="" S VAL="^",HL("FS")=VAL
 | 
|---|
 | 65 |  S SEPF=$E(VAL,1),REPSEPF=SEPE_"F"_SEPE
 | 
|---|
 | 66 |  S HL7DEL=$G(HL("ECH"))_$G(HL("FS"))
 | 
|---|
 | 67 |  S GLOB=$$ROOT^DILFD(FILE)_PSOVDFD0_")"
 | 
|---|
 | 68 |  M GL=@GLOB
 | 
|---|
 | 69 |  S DFN=$P($G(GL(0)),U,2)
 | 
|---|
 | 70 |  I $G(DFN)="" S ERR="MISSING DFN IN FILE-52 AT IEN="_PSOVDFD0 Q
 | 
|---|
 | 71 |  I $G(^DPT(DFN,0))="" S ERR="MISSING DFN IN FILE-2 AT FILE-52/IEN="_PSOVDFD0 Q
 | 
|---|
 | 72 |  S PSOVDFES=$$REPL(PSOVDFD0)
 | 
|---|
 | 73 |  S PSOVDFIN=$$SITE^VASITE,PSOVDFIN=$P($G(PSOVDFIN),"^",2),PSOVDFIN=$$REPL(PSOVDFIN)
 | 
|---|
 | 74 |  Q
 | 
|---|
 | 75 |  ;
 | 
|---|
 | 76 | PUT(P) ; Put in MSG
 | 
|---|
 | 77 |  I $G(VAL)="" Q
 | 
|---|
 | 78 |  S $P(MSG,SEPF,P)=VAL
 | 
|---|
 | 79 |  Q
 | 
|---|
 | 80 |  ;
 | 
|---|
 | 81 | REPL(L) ; REPLACE HL7 DELIMITER CHAR
 | 
|---|
 | 82 |  I $G(L)="" Q ""
 | 
|---|
 | 83 |  I $TR(L,$G(HL7DEL))=L Q L
 | 
|---|
 | 84 |  N X,Y,Z,RES
 | 
|---|
 | 85 |  S RES=L
 | 
|---|
 | 86 |  I $F(L,SEPE) S X=RES D
 | 
|---|
 | 87 |  . S Z=$P(X,SEPE,2,9999),Y=$P(X,SEPE)_REPSEPE_Z,RES=Y,X=Z I '$F(Z,SEPE) Q
 | 
|---|
 | 88 |  . F I=2:1 S Z=$P(X,SEPE,2,9999),Y=$P(RES,REPSEPE,1,I-1)_REPSEPE_$P(X,SEPE)_REPSEPE_Z,RES=Y,X=Z I '$F(Z,SEPE) Q
 | 
|---|
 | 89 |  I $F(RES,SEPC) F I=1:1 S Y=$P(RES,SEPC)_REPSEPC_$P(RES,SEPC,2,9999),RES=Y I '$F(RES,SEPC) Q
 | 
|---|
 | 90 |  I $F(RES,SEPR) F I=1:1 S Y=$P(RES,SEPR)_REPSEPR_$P(RES,SEPR,2,9999),RES=Y I '$F(RES,SEPR) Q
 | 
|---|
 | 91 |  I $F(RES,SEPS) F I=1:1 S Y=$P(RES,SEPS)_REPSEPS_$P(RES,SEPS,2,9999),RES=Y I '$F(RES,SEPS) Q
 | 
|---|
 | 92 |  I $F(RES,SEPF) F I=1:1 S Y=$P(RES,SEPF)_REPSEPF_$P(RES,SEPF,2,9999),RES=Y I '$F(RES,SEPF) Q
 | 
|---|
 | 93 |  Q RES
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 | OUT D OUT^PSOVDF2 Q
 | 
|---|
 | 96 | OUT20 D OUT20^PSOVDF2 Q
 | 
|---|
 | 97 |  ;
 | 
|---|
 | 98 | MSHPID ;
 | 
|---|
 | 99 | MSH ; MSH
 | 
|---|
 | 100 |  S (HLINST,MSG,SRC)=""
 | 
|---|
 | 101 |  I '$D(SITEPARM) S SITEPARM=$$PARAM^HLCS2
 | 
|---|
 | 102 |  S HLINST=$P(SITEPARM,U,6),HLINST=$$REPL(HLINST),SRC=HLINST_"_"_FILE
 | 
|---|
 | 103 |  S TARGET="LM"_SEPF_MSG
 | 
|---|
 | 104 |  ;
 | 
|---|
 | 105 | PID ; PID
 | 
|---|
 | 106 |  K WR
 | 
|---|
 | 107 |  S (MSG)=""
 | 
|---|
 | 108 |  D BLDPID^VAFCQRY(DFN,1,"",.WR,.HL,.ERR)
 | 
|---|
 | 109 |  I $G(WR(1))="" S ERR="MISSING PID AT DFN="_DFN_" IN FILE-52 AT IEN="_PSOVDFD0 Q
 | 
|---|
 | 110 |  I $P(WR(1),U,3)="V" S $P(WR(1),U,3)=""
 | 
|---|
 | 111 |  D OUT20
 | 
|---|
 | 112 |  K WR
 | 
|---|
 | 113 |  Q
 | 
|---|
 | 114 |  ;
 | 
|---|
 | 115 | ORC2 ; RF
 | 
|---|
 | 116 |  I '$D(GL(1)) G ORC3
 | 
|---|
 | 117 |  K TEMP M TEMP=GL(1)
 | 
|---|
 | 118 |  S PSOVDFD1=0
 | 
|---|
 | 119 | ORC2A S PSOVDFD1=$O(TEMP(PSOVDFD1)) G ORC3:'PSOVDFD1
 | 
|---|
 | 120 |  S MSG=""
 | 
|---|
 | 121 |  S TP=$G(TEMP(PSOVDFD1,0)) I TP="" G ORC2A
 | 
|---|
 | 122 |  S PSOVESC=$$REPL(PSOVDFD1),VAL=PSOVESC D PUT(3)
 | 
|---|
 | 123 |  ; (7~4-10.1)
 | 
|---|
 | 124 |  S (VAL,WR)="",WR=$P(TP,U,19) I $G(WR)'="" D
 | 
|---|
 | 125 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL(WR),$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,7)="DISPENSED"
 | 
|---|
 | 126 |  ; (7~5-13)
 | 
|---|
 | 127 |  S WR=$P(TP,U,15) I $G(WR)'="" D
 | 
|---|
 | 128 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL(WR),$P(VAL,SEPC,5)=WR,$P(VAL,SEPC,7)=$P(VAL,SEPC,7)_"/EXPIRATION"
 | 
|---|
 | 129 |  D PUT(7)
 | 
|---|
 | 130 |  S VAL="",$P(VAL,SEPC,2)=PSOVDFES D PUT(8)
 | 
|---|
 | 131 |  ; (9-7)
 | 
|---|
 | 132 |  S VAL=$P(TP,U,8) I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL(VAL) D PUT(9)
 | 
|---|
 | 133 |  ; (12-15)
 | 
|---|
 | 134 |  S VAL=$P(TP,U,17) I $G(VAL)'="" S VAL=$$XCN200^VDEFEL(VAL) D PUT(12)
 | 
|---|
 | 135 |  S VAL="REFILL" D PUT(16)
 | 
|---|
 | 136 |  S VAL=$P(TP,U,9) S:$G(VAL)="" VAL=$P($G(^PSRX(PSOVDFD0,2)),"^",9) I $G(VAL)'="" D
 | 
|---|
 | 137 |  .S PSOVD59=VAL I $D(PSOVDDIV(VAL)) S VAL=$G(PSOVDDIV(VAL)) S $P(VAL,SEPC,3)=$P($P(VAL,SEPC,3),"_")_"_52.1_8" D PUT(17) Q
 | 
|---|
 | 138 |  .N PSONCRF,PSONCRFP,PSOSTNUM
 | 
|---|
 | 139 |  .S X=$G(^PS(59,VAL,0)),PSONCRFP=$P($G(^("SAND")),"^",3)
 | 
|---|
 | 140 |  .S VAL=$P(X,U),(VAL,PSONCRF)=$$REPL(VAL) Q:VAL=""
 | 
|---|
 | 141 |  .S PSOSTNUM=$P(X,U,6),PSOSTNUM=$$REPL(PSOSTNUM)
 | 
|---|
 | 142 |  .S VAL=PSOSTNUM_SEPC_VAL_SEPC_HLINST_"_52.1_8"
 | 
|---|
 | 143 |  .I PSONCRFP'="" S PSONCRFP=$$REPL(PSONCRFP),VAL=VAL_SEPC_PSONCRFP_SEPC_PSONCRF_SEPC_"NCPDP"
 | 
|---|
 | 144 |  .S PSOVDDIV(PSOVD59)=$G(VAL)
 | 
|---|
 | 145 |  .D PUT(17)
 | 
|---|
 | 146 |  S VAL=$G(PSOVDFIN) D PUT(21)
 | 
|---|
 | 147 |  I $D(VCMP(PSOVDFD1)) S VAL=SEPC_SEPC_SEPC_VCMP(PSOVDFD1) D PUT(25)
 | 
|---|
 | 148 |  I $G(MSG)="" G ORC2Q
 | 
|---|
 | 149 |  S $P(MSG,U)="RF"
 | 
|---|
 | 150 |  S MSG="ORC"_SEPF_MSG D OUT
 | 
|---|
 | 151 | ORC2Q ; Q
 | 
|---|
 | 152 |  ;
 | 
|---|
 | 153 | RXE2 ; RF
 | 
|---|
 | 154 |  S MSG=""
 | 
|---|
 | 155 |  ; (1~4-.01)
 | 
|---|
 | 156 |  S (VAL,WR)="",WR=$P(TP,U,1) I $G(WR)'="" D
 | 
|---|
 | 157 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL(WR),$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,7)="REFILL" D PUT(1)
 | 
|---|
 | 158 |  ; (2~1..~3-6, 2~4-API , 2~6-NDC)
 | 
|---|
 | 159 |  S VAL=""
 | 
|---|
 | 160 |  I $T(NDC^PSOHDR)]"" D
 | 
|---|
 | 161 |  .S VAL=$$NDC^PSOHDR(PSOVDFD0,PSOVDFD1,"R")
 | 
|---|
 | 162 |  E  S VAL=$P($G(TEMP(PSOVDFD1,1)),U,3) D
 | 
|---|
 | 163 |  .I $G(VAL)="",$G(PSOVDRUG)'="" S VAL=$P($G(^PSDRUG(PSOVDRUG,2)),"^",4)
 | 
|---|
 | 164 |  I $G(VAL)'="" D
 | 
|---|
 | 165 |  .S VAL=$$REPL(VAL)
 | 
|---|
 | 166 |  .S X="",X=GIVECODE,$P(X,SEPC,4)=VAL,$P(X,SEPC,6)="NDC",VAL=X D PUT(2)
 | 
|---|
 | 167 |  E  S VAL=GIVECODE D PUT(2)
 | 
|---|
 | 168 |  S VAL=0 D PUT(3)
 | 
|---|
 | 169 |  ; (5-DEF="UNK" or API)
 | 
|---|
 | 170 |  S VAL=UNIT D PUT(5)
 | 
|---|
 | 171 |  ; (8~6-2)
 | 
|---|
 | 172 |  S (VAL,WR)=""
 | 
|---|
 | 173 |  S WR=$$GET1^DIQ(52.1,PSOVDFD1_","_PSOVDFD0_",",2,"","","PSOVERR") K PSOVERR I $G(WR)'="" S WR=$$REPL(WR),$P(VAL,SEPC,6)=WR D PUT(8)
 | 
|---|
 | 174 |  ; (10-1)
 | 
|---|
 | 175 |  S VAL=$P(TP,U,4),VAL=$$REPL(VAL) D PUT(10)
 | 
|---|
 | 176 |  ; (14|1-4)
 | 
|---|
 | 177 |  S VAL=$P(TP,U,5) I $G(VAL)="" G RXE2A
 | 
|---|
 | 178 |  S VAL=$$XCN200^VDEFEL(VAL,"PHARMACIST") D PUT(14)
 | 
|---|
 | 179 |  ; (18-17)
 | 
|---|
 | 180 | RXE2A S VAL=$P(TP,U,18) I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL(VAL) D PUT(18)
 | 
|---|
 | 181 |  ; (22-1.1)
 | 
|---|
 | 182 |  S VAL=$P(TP,U,10) I $G(VAL)'="" S VAL="D"_VAL,VAL=$$REPL(VAL) D PUT(22)
 | 
|---|
 | 183 |  D RXE31A^PSOVDF3
 | 
|---|
 | 184 |  D PUT(31)
 | 
|---|
 | 185 |  I $G(MSG)="" G RXE2Q
 | 
|---|
 | 186 |  S MSG="RXE"_SEPF_MSG D OUT
 | 
|---|
 | 187 | RXE2Q ; Q
 | 
|---|
 | 188 |  ;
 | 
|---|
 | 189 | NTE2 ; RF
 | 
|---|
 | 190 |  S MSG=""
 | 
|---|
 | 191 |  ; (3-52.1_3)
 | 
|---|
 | 192 |  S WR=$P(TP,U,3) I $G(WR)="" G NTE2Q
 | 
|---|
 | 193 |  S VAL=PSOVDFD1 D PUT(1)
 | 
|---|
 | 194 |  S VAL=$$REPL(WR)
 | 
|---|
 | 195 |  D PUT(3),RREM^PSOVDF3,PUT(4)
 | 
|---|
 | 196 |  S MSG="NTE"_SEPF_MSG D OUT
 | 
|---|
 | 197 | NTE2Q ; Q
 | 
|---|
 | 198 |  ;
 | 
|---|
 | 199 | FT12 ;  RF
 | 
|---|
 | 200 |  ; patch 261 - FT1
 | 
|---|
 | 201 |  D FT1R^PSOVDF3
 | 
|---|
 | 202 | FT12Q ; Q
 | 
|---|
 | 203 |  G ORC2A
 | 
|---|
 | 204 |  ;
 | 
|---|
 | 205 | ORC3 ; PAR       
 | 
|---|
 | 206 |  I '$D(GL("P")) Q
 | 
|---|
 | 207 |  K TEMP M TEMP=GL("P")
 | 
|---|
 | 208 |  S PSOVDFD1=0
 | 
|---|
 | 209 | ORC3A S PSOVDFD1=$O(TEMP(PSOVDFD1)) Q:'PSOVDFD1
 | 
|---|
 | 210 |  S MSG=""
 | 
|---|
 | 211 |  S TP=$G(TEMP(PSOVDFD1,0)) I TP="" G ORC3A
 | 
|---|
 | 212 |  S PSOVESC=$$REPL(PSOVDFD1),VAL=PSOVESC D PUT(3)
 | 
|---|
 | 213 |  ; (7~4-7.5)
 | 
|---|
 | 214 |  S WR=$P(TP,U,13) I $G(WR)'="" D
 | 
|---|
 | 215 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL(WR),VAL="",$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,7)="DISPENSED" D PUT(7)
 | 
|---|
 | 216 |  S VAL="",$P(VAL,SEPC,2)=PSOVDFES D PUT(8)
 | 
|---|
 | 217 |  ; (9-.08)
 | 
|---|
 | 218 |  S VAL=$P(TP,U,8) I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL(VAL) D PUT(9)
 | 
|---|
 | 219 |  ; (12-6)
 | 
|---|
 | 220 |  S VAL=$P(TP,U,17) I $G(VAL)'="" S VAL=$$XCN200^VDEFEL(VAL) D PUT(12)
 | 
|---|
 | 221 |  S VAL="PARTIAL" D PUT(16)
 | 
|---|
 | 222 |  S VAL=$P(TP,U,9) S:$G(VAL)="" VAL=$P($G(^PSRX(PSOVDFD0,2)),"^",9) I $G(VAL)'="" D
 | 
|---|
 | 223 |  .S PSOVD59=VAL I $D(PSOVDDIV(VAL)) S VAL=$G(PSOVDDIV(VAL)) S $P(VAL,SEPC,3)=$P($P(VAL,SEPC,3),"_")_"_52.2_.09" D PUT(17) Q
 | 
|---|
 | 224 |  .N PSONCPR,PSONCPRP,PSOSPNUM
 | 
|---|
 | 225 |  .S X=$G(^PS(59,VAL,0)),PSONCPRP=$P($G(^("SAND")),"^",3)
 | 
|---|
 | 226 |  .S VAL=$P(X,U),(VAL,PSONCPR)=$$REPL(VAL) Q:VAL=""
 | 
|---|
 | 227 |  .S PSOSPNUM=$P(X,U,6),PSOSPNUM=$$REPL(PSOSPNUM)
 | 
|---|
 | 228 |  .S VAL=PSOSPNUM_SEPC_VAL_SEPC_HLINST_"_52.2_.09"
 | 
|---|
 | 229 |  .I PSONCPRP'="" S PSONCPRP=$$REPL(PSONCPRP),VAL=VAL_SEPC_PSONCPRP_SEPC_PSONCPR_SEPC_"NCPDP"
 | 
|---|
 | 230 |  .S PSOVDDIV(PSOVD59)=$G(VAL)
 | 
|---|
 | 231 |  .D PUT(17)
 | 
|---|
 | 232 |  S VAL=$G(PSOVDFIN) D PUT(21)
 | 
|---|
 | 233 |  I $G(MSG)="" G ORC3Q
 | 
|---|
 | 234 |  S $P(MSG,U)="RF"
 | 
|---|
 | 235 |  S MSG="ORC"_SEPF_MSG D OUT
 | 
|---|
 | 236 | ORC3Q ; Q
 | 
|---|
 | 237 |  ;
 | 
|---|
 | 238 | RXE3 ; PAR
 | 
|---|
 | 239 |  S MSG=""
 | 
|---|
 | 240 |  ; (1~4-.01)
 | 
|---|
 | 241 |  S WR=$P(TP,U,1) I $G(WR)'="" D
 | 
|---|
 | 242 |  .S WR=$$HLDATE^HLFNC(WR,"TS") I WR>0 S WR=$$REPL(WR),VAL="",$P(VAL,SEPC,4)=WR,$P(VAL,SEPC,7)="PARTIAL" D PUT(1)
 | 
|---|
 | 243 |  ; (2~1..~3-6, 2~4-API, 2~6-NDC)
 | 
|---|
 | 244 |  S VAL=""
 | 
|---|
 | 245 |  I $T(NDC^PSOHDR)]"" D
 | 
|---|
 | 246 |  .S VAL=$$NDC^PSOHDR(PSOVDFD0,PSOVDFD1,"P")
 | 
|---|
 | 247 |  E  S VAL=$P($G(TEMP(PSOVDFD1,0)),U,12) D
 | 
|---|
 | 248 |  .I $G(VAL)="",$G(PSOVDRUG)'="" S VAL=$P($G(^PSDRUG(PSOVDRUG,2)),"^",4)
 | 
|---|
 | 249 |  I $G(VAL)'="" D
 | 
|---|
 | 250 |  .S VAL=$$REPL(VAL)
 | 
|---|
 | 251 |  .S X="",X=GIVECODE,$P(X,SEPC,4)=VAL,$P(X,SEPC,6)="NDC",VAL=X D PUT(2)
 | 
|---|
 | 252 |  E  S VAL=GIVECODE D PUT(2)
 | 
|---|
 | 253 |  S VAL=0 D PUT(3)
 | 
|---|
 | 254 |  ; (5-DEF="UNK" or API)
 | 
|---|
 | 255 |  S VAL=UNIT D PUT(5)
 | 
|---|
 | 256 |  ; (8~6-.02)
 | 
|---|
 | 257 |  S (VAL,WR)=""
 | 
|---|
 | 258 |  S WR=$$GET1^DIQ(52.2,PSOVDFD1_","_PSOVDFD0_",",.02,"","","PSOVERR") K PSOVERR I $G(WR)'="" S WR=$$REPL(WR),$P(VAL,SEPC,6)=WR D PUT(8)
 | 
|---|
 | 259 |  ; (10-.04)
 | 
|---|
 | 260 |  S VAL=$P(TP,U,4),VAL=$$REPL(VAL) D PUT(10)
 | 
|---|
 | 261 |  ; (14|1-.05)
 | 
|---|
 | 262 |  S VAL=$P(TP,U,5) I $G(VAL)="" G RXE3B
 | 
|---|
 | 263 |  S VAL=$$XCN200^VDEFEL(VAL,"PHARMACIST") D PUT(14)
 | 
|---|
 | 264 |  ; (18-8)
 | 
|---|
 | 265 | RXE3B S VAL=$P(TP,U,19) I $G(VAL)'="" S VAL=$$HLDATE^HLFNC(VAL,"TS") I VAL>0 S VAL=$$REPL(VAL) D PUT(18)
 | 
|---|
 | 266 |  S VAL=$P(TP,U,10) I $G(VAL)'="" S VAL="D"_VAL,VAL=$$REPL(VAL) D PUT(22)
 | 
|---|
 | 267 |  D RXE31^PSOVDF3
 | 
|---|
 | 268 |  D PUT(31)
 | 
|---|
 | 269 |  ;
 | 
|---|
 | 270 |  I $G(MSG)="" G RXE3Q
 | 
|---|
 | 271 |  S MSG="RXE"_SEPF_MSG D OUT
 | 
|---|
 | 272 | RXE3Q ; Q
 | 
|---|
 | 273 |  ;
 | 
|---|
 | 274 | NTE3 ; PAR
 | 
|---|
 | 275 |  S MSG=""
 | 
|---|
 | 276 |  ; (3-.03)
 | 
|---|
 | 277 |  S WR=$P(TP,U,3) I $G(WR)="" G NTE3Q
 | 
|---|
 | 278 |  S VAL=PSOVDFD1 D PUT(1)
 | 
|---|
 | 279 |  S VAL=$$REPL(WR)
 | 
|---|
 | 280 |  D PUT(3),PREM^PSOVDF3,PUT(4)
 | 
|---|
 | 281 |  S MSG="NTE"_SEPF_MSG D OUT
 | 
|---|
 | 282 | NTE3Q ; Q
 | 
|---|
 | 283 | FT13 ; patch 261
 | 
|---|
 | 284 |  D FT1R^PSOVDF3
 | 
|---|
 | 285 |  G ORC3A
 | 
|---|
 | 286 |  ;
 | 
|---|
 | 287 |  Q
 | 
|---|