| [613] | 1 | PSBSVHL7 ;BIRMINGHAM/TEJ-BCMA HL7 SERVER ;Mar 2004 | 
|---|
|  | 2 | ;;3.0;BAR CODE MED ADMIN;**3**;Mar 2004 | 
|---|
|  | 3 | ; Reference/IA | 
|---|
|  | 4 | ; $$HLDATE^HLFNC/10106 | 
|---|
|  | 5 | ; $$HLNAME^HLFNC/10106 | 
|---|
|  | 6 | ; INIT^HLFNC2/2161 | 
|---|
|  | 7 | ; GENERATE^HLMA/2164 | 
|---|
|  | 8 | ; File 50.7/2880 | 
|---|
|  | 9 | ; File 52.6/436 | 
|---|
|  | 10 | ; File 52.7/437 | 
|---|
|  | 11 | ; File 200/10060 | 
|---|
|  | 12 | ; DEM^VADPT/10061 | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | ; Description: | 
|---|
|  | 15 | ; This routine is to service BCMA HL7 messaging to other COTS and | 
|---|
|  | 16 | ; VISTA application. | 
|---|
|  | 17 | ; The entry point ("EN") is accessed via BCMA.  This routine | 
|---|
|  | 18 | ; basically consists of subroutines to generate HL7 messages | 
|---|
|  | 19 | ; per trigger events coresponding to BCMA transactions. | 
|---|
|  | 20 | ; These trigger events are captured within the routine PSBML. | 
|---|
|  | 21 | ; PSBML passes the affected BCMA MEDICATION LOG File IEN and | 
|---|
|  | 22 | ; a variable capturing the BCMA activity as the input. | 
|---|
|  | 23 | ;       Input  -        PSBIEN  Affected BCMA record(s) | 
|---|
|  | 24 | ;                       PSBHL7X  BCMA trigger event/transaction | 
|---|
|  | 25 | ;       Output -        HL7 broadcast to subscribing Applications | 
|---|
|  | 26 | ; | 
|---|
|  | 27 | EN(PSBIEN,PSBHL7X) ; This is the entry point for for all HL7 processing | 
|---|
|  | 28 | 1 ; set up environment for message | 
|---|
|  | 29 | N PSBHLFS,PSBHLCS | 
|---|
|  | 30 | D INIT^HLFNC2("PSB BCMA RASO17 SRV",.HL) | 
|---|
|  | 31 | I $G(HL) W:+HL'=16 !,"Error: "_$P(HL,2) Q  ; error occurred | 
|---|
|  | 32 | S PSBHLFS=$G(HL("FS")) I PSBHLFS="" S PSBHLFS="^" | 
|---|
|  | 33 | S PSBHLCS=$E(HL("ECH"),1) | 
|---|
|  | 34 | S PSBHLSCS=$E(HL("ECH"),4) | 
|---|
|  | 35 | 2 ; Add appropriate message txt to HLA array | 
|---|
|  | 36 | K HLA,HLEVN | 
|---|
|  | 37 | N PSBDFN,PSBHL7MS | 
|---|
|  | 38 | S PSBCNT=0 | 
|---|
|  | 39 | I (PSBHL7X["MEDPASS")!(PSBHL7X["UPDATE STATUS") D MEDSTAT Q | 
|---|
|  | 40 | I (PSBHL7X["ADD COMMENT") D COMMENT Q | 
|---|
|  | 41 | I (PSBHL7X["PRN EFFECTI") D PRNEFFE Q | 
|---|
|  | 42 | Q | 
|---|
|  | 43 | MEDSTAT ;MEDPASS and UPDATE trigger events | 
|---|
|  | 44 | D PID,PV1,ORC,RXO | 
|---|
|  | 45 | D:$D(^PSB(53.79,PSBIEN,.3,0)) NTE | 
|---|
|  | 46 | D RXR,RXC,RXA,TRANS  Q | 
|---|
|  | 47 | COMMENT ;ADD COMNMENT trigger event | 
|---|
|  | 48 | D PID,ORC,NTE,TRANS  Q | 
|---|
|  | 49 | PRNEFFE ;PRN EFFECTIVENESS trigger event | 
|---|
|  | 50 | D PID,ORC,NTE,TRANS  Q | 
|---|
|  | 51 | PID ; PID segment -- use segment generator | 
|---|
|  | 52 | S PSBDFN=$P(^PSB(53.79,PSBIEN,0),U,1),DFN=PSBDFN D DEM^VADPT | 
|---|
|  | 53 | S PSBCNT=PSBCNT+1,$P(PSBHL7MS,PSBHLFS,3)=PSBDFN | 
|---|
|  | 54 | S $P(VADM(4),PSBHLCS)=VADM(4),$P(VADM(4),PSBHLCS,5)="AGE",$P(PSBHL7MS,PSBHLFS,4)=VADM(4) | 
|---|
|  | 55 | S $P(PSBHL7MS,PSBHLFS,5)=$$HLNAME^HLFNC(VADM(1),HL("ECH")) | 
|---|
|  | 56 | S $P(PSBHL7MS,PSBHLFS,7)=$$HLDATE^HLFNC(+VADM(3),"DT") | 
|---|
|  | 57 | S $P(PSBHL7MS,PSBHLFS,19)=$P(VADM(2),"^") | 
|---|
|  | 58 | S $P(PSBHL7MS,PSBHLFS,8)=$P(VADM(5),"^") | 
|---|
|  | 59 | S HLA("HLS",PSBCNT)="PID"_PSBHLFS_PSBHL7MS | 
|---|
|  | 60 | Q | 
|---|
|  | 61 | PV1 ; PV1 segment | 
|---|
|  | 62 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 63 | S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="PV1"_PSBHLFS | 
|---|
|  | 64 | S $P(PSBHL7MS,PSBHLFS,2)="U" | 
|---|
|  | 65 | ; Construct location field | 
|---|
|  | 66 | S $P(PSBHL7FD,PSBHLCS,1)=$$ESC($P(^PSB(53.79,PSBIEN,0),U,2)) | 
|---|
|  | 67 | S $P(PSBHL7FD,PSBHLCS,4)=$$ESC($P(^PSB(53.79,PSBIEN,0),U,3)) | 
|---|
|  | 68 | S $P(PSBHL7MS,PSBHLFS,3)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 69 | ; Construct attending physician data | 
|---|
|  | 70 | S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,0),U,5) | 
|---|
|  | 71 | S $P(PSBHL7FD,PSBHLCS,2)=$$HLNAME^HLFNC($$GET1^DIQ(200,$P(PSBHL7FD,PSBHLCS,1)_",",.01),HL("ECH")) | 
|---|
|  | 72 | S $P(PSBHL7MS,PSBHLFS,7)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 73 | S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 74 | Q | 
|---|
|  | 75 | ORC ; ORC segment | 
|---|
|  | 76 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 77 | S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="ORC"_PSBHLFS | 
|---|
|  | 78 | S $P(PSBHL7MS,PSBHLFS,1)="XX" | 
|---|
|  | 79 | S $P(PSBHL7MS,PSBHLFS,2)=PSBIEN_PSBHLCS_"PSB"_PSBHLCS_PSBIEN_PSBHLCS_"IEN" | 
|---|
|  | 80 | S $P(PSBHL7MS,PSBHLFS,3)=$P(^PSB(53.79,PSBIEN,.1),U) | 
|---|
|  | 81 | D PSJ1^PSBVT(PSBDFN,$P(PSBHL7MS,PSBHLFS,3)) | 
|---|
|  | 82 | ; Construct quantity/time | 
|---|
|  | 83 | S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,.1),U,5) | 
|---|
|  | 84 | S $P(PSBHL7FD,PSBHLCS,2)=$$ESC(PSBSCH) | 
|---|
|  | 85 | S $P(PSBHL7FD,PSBHLCS,4)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,.1),U,3),"TS") | 
|---|
|  | 86 | S $P(PSBHL7FD,PSBHLCS,10)=$$ESC(PSBSCHT) | 
|---|
|  | 87 | S $P(PSBHL7MS,PSBHLFS,7)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 88 | ; Construct previous (parent) order data | 
|---|
|  | 89 | S:$D(PSBPONX) $P(PSBHL7FD,PSBHLCS,2)=PSBPONX | 
|---|
|  | 90 | S $P(PSBHL7MS,PSBHLFS,8)=$G(PSBHL7FD) K PSBHL7FD | 
|---|
|  | 91 | S $P(PSBHL7MS,PSBHLFS,9)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,0),U,6),"TS") | 
|---|
|  | 92 | ; Construct entered by data | 
|---|
|  | 93 | S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,0),U,5) | 
|---|
|  | 94 | S $P(PSBHL7FD,PSBHLCS,2)=$$HLNAME^HLFNC($$GET1^DIQ(200,$P(PSBHL7FD,PSBHLCS,1)_",",.01),HL("ECH")) | 
|---|
|  | 95 | S $P(PSBHL7MS,PSBHLFS,10)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 96 | S $P(PSBHL7MS,PSBHLFS,15)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,0),U,4),"TS") | 
|---|
|  | 97 | ; Construct action by data | 
|---|
|  | 98 | S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,0),U,7) | 
|---|
|  | 99 | S $P(PSBHL7FD,PSBHLCS,2)=$$HLNAME^HLFNC($$GET1^DIQ(200,$P(PSBHL7FD,PSBHLCS,1)_",",.01),HL("ECH")) | 
|---|
|  | 100 | S $P(PSBHL7MS,PSBHLFS,19)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 101 | S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 102 | Q | 
|---|
|  | 103 | RXO ; RXO segment | 
|---|
|  | 104 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 105 | S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="RXO"_PSBHLFS | 
|---|
|  | 106 | ; Construct rq give code data | 
|---|
|  | 107 | S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,0),U,8) | 
|---|
|  | 108 | S $P(PSBHL7FD,PSBHLCS,2)=$$GET1^DIQ(50.7,$P(PSBHL7FD,PSBHLCS,1)_",",.01) | 
|---|
|  | 109 | S $P(PSBHL7MS,PSBHLFS,1)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 110 | S $P(PSBHL7MS,PSBHLFS,2)=$$ESC($P(^PSB(53.79,PSBIEN,.1),U,5)) | 
|---|
|  | 111 | S $P(PSBHL7MS,PSBHLFS,10)=$$ESC($P(^PSB(53.79,PSBIEN,0),U,10)) | 
|---|
|  | 112 | S $P(PSBHL7FD,PSBHLCS,2)=$$ESC($P(^PSB(53.79,PSBIEN,0),U,11)) | 
|---|
|  | 113 | S $P(PSBHL7MS,PSBHLFS,21)=PSBHL7FD | 
|---|
|  | 114 | S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 115 | Q | 
|---|
|  | 116 | NTE ; NTE segment(s) - notes and comments | 
|---|
|  | 117 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 118 | S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="NTE"_PSBHLFS | 
|---|
|  | 119 | S $P(PSBHL7MS,PSBHLFS,2)="O" | 
|---|
|  | 120 | ; Construct comment and comment type | 
|---|
|  | 121 | D:($G(PSBSCHT)="P")&($D(^PSB(53.79,PSBIEN,.2)))&(PSBHL7X["PRN EFF") | 
|---|
|  | 122 | .S $P(PSBHL7MS,PSBHLFS,3)=$$ESC($P(^PSB(53.79,PSBIEN,.2),U,2)) | 
|---|
|  | 123 | .S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,.2),U,3) | 
|---|
|  | 124 | .S $P(PSBHL7FD,PSBHLCS,2)=$$HLNAME^HLFNC($$GET1^DIQ(200,$P(PSBHL7FD,PSBHLCS,1)_",",.01),HL("ECH")) | 
|---|
|  | 125 | .S $P(PSBHL7FD,PSBHLCS,4)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,.2),U,4),"TS") | 
|---|
|  | 126 | .S $P(PSBHL7FD,PSBHLCS,5)="Date Entered" | 
|---|
|  | 127 | .S $P(PSBHL7FD,PSBHLCS,7)=$P(^PSB(53.79,PSBIEN,.2),U,5) | 
|---|
|  | 128 | .S $P(PSBHL7FD,PSBHLCS,8)="PRN Minutes" | 
|---|
|  | 129 | .S $P(PSBHL7MS,PSBHLFS,4)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 130 | D:$D(^PSB(53.79,PSBIEN,.3,0))&(PSBHL7X'["PRN EFF") | 
|---|
|  | 131 | .S PSBINDX="",PSBINDX=$O(^PSB(53.79,PSBIEN,.3,PSBINDX),-1) | 
|---|
|  | 132 | .S $P(PSBHL7MS,PSBHLFS,3)=PSBINDX_PSBHLCS_$$ESC($P(^PSB(53.79,PSBIEN,.3,PSBINDX,0),U)) | 
|---|
|  | 133 | .S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,.3,PSBINDX,0),U,2) | 
|---|
|  | 134 | .S $P(PSBHL7FD,PSBHLCS,2)=$$HLNAME^HLFNC($$GET1^DIQ(200,$P(PSBHL7FD,PSBHLCS,1)_",",.01),HL("ECH")) | 
|---|
|  | 135 | .S $P(PSBHL7FD,PSBHLCS,4)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,.3,PSBINDX,0),U,3),"TS") | 
|---|
|  | 136 | .S $P(PSBHL7FD,PSBHLCS,5)="Date Entered" | 
|---|
|  | 137 | .S $P(PSBHL7MS,PSBHLFS,4)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 138 | S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 139 | Q | 
|---|
|  | 140 | RXR ; RXR segment | 
|---|
|  | 141 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 142 | S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="RXR"_PSBHLFS | 
|---|
|  | 143 | S:$D(PSBMRAB) $P(PSBHL7MS,PSBHLFS,1)=PSBMRAB | 
|---|
|  | 144 | S $P(PSBHL7MS,PSBHLFS,2)=$P($G(^PSB(53.79,PSBIEN,.1)),U,6) | 
|---|
|  | 145 | S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 146 | S:""=$TR(PSBHL7MS,PSBHLFS,"") PSBCNT=PSBCNT-1 | 
|---|
|  | 147 | Q | 
|---|
|  | 148 | RXC ; RXC segment | 
|---|
|  | 149 | ; loop through .5,.6,and .7  send segments for each "component" | 
|---|
|  | 150 | K PSBSUBFD F PSBSUBFD=".5",".6",".7" D:$D(^PSB(53.79,PSBIEN,PSBSUBFD,1)) | 
|---|
|  | 151 | .K PSBFILE S PSBFILE=$S(PSBSUBFD=".5":"^PSDRUG(",PSBSUBFD=".6":"^PS(52.6,",PSBSUBFD=".7":"^PS(52.7,") | 
|---|
|  | 152 | .K PSBRXTYP S PSBRXTYP=$S(PSBSUBFD=".5":"B",PSBSUBFD=".6":"A",PSBSUBFD=".7":"B") | 
|---|
|  | 153 | .S PSBSUBX=0 F  S PSBSUBX=$O(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX)) Q:+PSBSUBX=0  D | 
|---|
|  | 154 | ..K PSBHL7MS,PSBHL7FD S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="RXC"_PSBHLFS | 
|---|
|  | 155 | ..S $P(PSBHL7MS,PSBHLFS,1)=PSBRXTYP | 
|---|
|  | 156 | ..; Construct component code data | 
|---|
|  | 157 | ..S $P(PSBHL7FD,PSBHLCS,1)=$P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U) | 
|---|
|  | 158 | ..S PSBFILE1=PSBFILE_$P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U)_",0)" | 
|---|
|  | 159 | ..I $P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U)]"" S $P(PSBHL7FD,PSBHLCS,2)=$P($G(@PSBFILE1),U) K PSBFILE1 | 
|---|
|  | 160 | ..I $G(PSBHL7FD)]"" S $P(PSBHL7MS,PSBHLFS,2)=PSBHL7FD,PSBRXAX=PSBHL7FD,PSBRXA(PSBRXAX)="RXA ADMIN CODE" K PSBHL7FD | 
|---|
|  | 161 | ..S $P(PSBHL7MS,PSBHLFS,3)=$P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U,2) | 
|---|
|  | 162 | ..S $P(PSBHL7MS,PSBHLFS,4)=$P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U,4) | 
|---|
|  | 163 | ..I $G(PSBRXAX)]"" S PSBRXA(PSBRXAX)=$P(^PSB(53.79,PSBIEN,PSBSUBFD,PSBSUBX,0),U,3)_U_$P(PSBHL7MS,PSBHLFS,4) | 
|---|
|  | 164 | ..S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 165 | Q | 
|---|
|  | 166 | RXA ; RXA segment | 
|---|
|  | 167 | K PSBHL7MS,PSBHL7FD S PSBRXAX="" | 
|---|
|  | 168 | F PSBRX=1:1 S PSBRXAX=$O(PSBRXA(PSBRXAX)) Q:PSBRXAX=""  D | 
|---|
|  | 169 | .S PSBCNT=PSBCNT+1,HLA("HLS",PSBCNT)="RXA"_PSBHLFS | 
|---|
|  | 170 | .S $P(PSBHL7MS,PSBHLFS,1)=0 | 
|---|
|  | 171 | .S $P(PSBHL7MS,PSBHLFS,2)=PSBRX | 
|---|
|  | 172 | .S $P(PSBHL7MS,PSBHLFS,3)=$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,0),U,6),"TS") | 
|---|
|  | 173 | .S $P(PSBHL7MS,PSBHLFS,4)=" " | 
|---|
|  | 174 | .; Construct administered code data | 
|---|
|  | 175 | .S $P(PSBHL7MS,PSBHLFS,5)=PSBRXAX | 
|---|
|  | 176 | .S $P(PSBHL7MS,PSBHLFS,6)=$P(PSBRXA(PSBRXAX),U) | 
|---|
|  | 177 | .S $P(PSBHL7MS,PSBHLFS,7)=$P(PSBRXA(PSBRXAX),U,2) | 
|---|
|  | 178 | .D:$D(^PSB(53.79,PSBIEN,.9,1)) | 
|---|
|  | 179 | ..S PSBINDX=$O(^PSB(53.79,PSBIEN,.9,"B"),-1) | 
|---|
|  | 180 | ..S:$D(PSBINDX) $P(PSBHL7MS,PSBHLFS,9)=PSBINDX_PSBHLCS_$$HLDATE^HLFNC($P(^PSB(53.79,PSBIEN,.9,PSBINDX,0),U),"TS") | 
|---|
|  | 181 | .; "PRN reason" | 
|---|
|  | 182 | .S:($G(PSBSCHT)="P")&($D(^PSB(53.79,PSBIEN,.2))) $P(PSBHL7FD,PSBHLCS,2)=$P(^PSB(53.79,PSBIEN,.2),U,1) | 
|---|
|  | 183 | .S $P(PSBHL7MS,PSBHLFS,18)=$G(PSBHL7FD) K PSBHL7FD | 
|---|
|  | 184 | .; Construct indication - "variance" | 
|---|
|  | 185 | .S $P(PSBHL7FD,PSBHLCS,2)=$P(^PSB(53.79,PSBIEN,.1),U,4) | 
|---|
|  | 186 | .S $P(PSBHL7MS,PSBHLFS,19)=PSBHL7FD K PSBHL7FD | 
|---|
|  | 187 | .S $P(PSBHL7MS,PSBHLFS,20)=$P(^PSB(53.79,PSBIEN,0),U,9) | 
|---|
|  | 188 | .S HLA("HLS",PSBCNT)=(HLA("HLS",PSBCNT))_PSBHL7MS | 
|---|
|  | 189 | K PSBRX,PSBRXA,PSBRXAX | 
|---|
|  | 190 | Q | 
|---|
|  | 191 | ESC(PSBINF) ; Escape message data | 
|---|
|  | 192 | S PSBINFO=PSBINF K PSBESC,PSBINFO1 F PSBESCX=1:1:4 D | 
|---|
|  | 193 | .S PSBCHR=$E(HL("ECH"),PSBESCX) | 
|---|
|  | 194 | .I ($L(PSBINFO,PSBCHR)-1)>0 S PSBINFO1=PSBINFO F PSBESCXX=1:1:$L(PSBINFO,PSBCHR)-1 D | 
|---|
|  | 195 | ..S PSBESC($F(PSBINFO1,PSBCHR)-1)=$E(HL("ECH"),3)_$E("SRET",PSBESCX)_$E(HL("ECH"),3) | 
|---|
|  | 196 | ..S PSBINFO1=$E(PSBINFO1,1,$F(PSBINFO1,PSBCHR)-2)_U_$E(PSBINFO1,$F(PSBINFO1,PSBCHR),250) | 
|---|
|  | 197 | S:$D(PSBINFO1) PSBINFO=PSBINFO1 | 
|---|
|  | 198 | S (PSBCNT1,PSBESCX,PSBESCXX)=0 F  S PSBESCX=$O(PSBESC(PSBESCX)) Q:PSBESCX=""  D | 
|---|
|  | 199 | .S PSBESCXX=PSBESCX+PSBCNT1,PSBINFO=$E(PSBINFO,1,PSBESCXX-1)_$G(PSBESC(PSBESCX))_$E(PSBINFO,PSBESCXX+1,250),PSBCNT1=PSBCNT1+2 | 
|---|
|  | 200 | Q PSBINFO | 
|---|
|  | 201 | ; | 
|---|
|  | 202 | TRANS ; CALL HL7 TO Transmit Message | 
|---|
|  | 203 | K PSBHL7MS,PSBHL7FD | 
|---|
|  | 204 | D:$D(HLA("HLS")) GENERATE^HLMA("PSB BCMA RASO17 SRV","LM",1,.PSBHL7T,"",.PSBHL7OP) | 
|---|
|  | 205 | I +$P(PSBHL7T,U,2) W !,"PSB(BCMA) HL7 MESSAGE HAS FAILED TRANSMISSION - could not generate" | 
|---|
|  | 206 | Q | 
|---|
|  | 207 | ; | 
|---|