[613] | 1 | LA7VORM3 ;DALOI/JMC - LAB ORM (Order) message builder cont'd ; 11-21-986
|
---|
| 2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**46,64**;Sep 27, 1994
|
---|
| 3 | ;
|
---|
| 4 | ;
|
---|
| 5 | OBR ;Observation Request segment for Lab Order
|
---|
| 6 | N LA760,LA764,LA7ALT,LA7DATA,LA7DUR,LA7DURU,LA7NLT,LA7X,LA7Y,LRACC,OBR,SPC
|
---|
| 7 | ;
|
---|
| 8 | S LA760=+$P(LA762801(0),"^",2)
|
---|
| 9 | S LA764=+$P($G(^LAB(60,LA760,64)),"^")
|
---|
| 10 | S LA7NLT=$P($G(^LAM(LA764,0)),"^",2)
|
---|
| 11 | ;
|
---|
| 12 | S OBR(0)="OBR"
|
---|
| 13 | S OBR(1)=$$OBR1^LA7VOBR(.LA7OBRSN) ;initialize OBR segment
|
---|
| 14 | ;
|
---|
| 15 | ; Remote UID
|
---|
| 16 | S OBR(2)=$$OBR2^LA7VOBR(LA7UID,LA7FS,LA7ECH)
|
---|
| 17 | ;
|
---|
| 18 | ; Universal service ID - check for non-VA code system
|
---|
| 19 | S LA7X=""
|
---|
| 20 | I $P(LA762801(5),"^")]"" S LA7X=$P(LA762801(5),"^",1)_"^"_$P(LA762801(5),"^",2)_"^"_$P(LA762801(5),"^",5)
|
---|
| 21 | S OBR(4)=$$OBR4^LA7VOBR(LA7NLT,LA760,LA7X,LA7FS,LA7ECH)
|
---|
| 22 | ;
|
---|
| 23 | ; Collection date/time
|
---|
| 24 | S OBR(7)=$$OBR7^LA7VOBR($P(LA76802(3),"^"))
|
---|
| 25 | ;
|
---|
| 26 | ; Collection end date/time
|
---|
| 27 | I $P(LA762801(2),U,4)=1 D
|
---|
| 28 | . S OBR(8)=$$OBR8^LA7VOBR($P(LA762801(2),U,5))
|
---|
| 29 | ;
|
---|
| 30 | ; Collection volume
|
---|
| 31 | I $P(LA762801(2),U)=1 D
|
---|
| 32 | . S OBR(9)=$$OBR9^LA7VOBR($P(LA762801(2),"^",2),$P(LA762801(2),"^",3),LA7FS,LA7ECH)
|
---|
| 33 | ;
|
---|
| 34 | ; Specimen action code
|
---|
| 35 | S OBR(11)=$$OBR11^LA7VOBR("P")
|
---|
| 36 | ;
|
---|
| 37 | ; Infection warning - patient info
|
---|
| 38 | S OBR(12)=$$OBR12^LA7VOBR(LRDFN,LA7FS,LA7ECH)
|
---|
| 39 | ;
|
---|
| 40 | ; Revelant clinical information
|
---|
| 41 | I LA762801(.1)'="" S OBR(13)=$$OBR13^LA7VOBR(LA762801(.1),LA7FS,LA7ECH)
|
---|
| 42 | ;
|
---|
| 43 | ; Lab Arrival Time
|
---|
| 44 | S OBR(14)=$$OBR14^LA7VOBR($P(LA76802(3),"^",3))
|
---|
| 45 | ;
|
---|
| 46 | ; Specimen source - handle non-HL7 coding system
|
---|
| 47 | S LA7X=""
|
---|
| 48 | I $P(LA762801(5),"^",3)'="" D
|
---|
| 49 | . F I=3,4 S $P(LA7X,"^",I-2)=$P(LA762801(5),"^",I)
|
---|
| 50 | . S $P(LA7X,"^",3)=$P(LA762801(5),"^",6)
|
---|
| 51 | I $P(LA762801(5),"^",7)'="" F I=7,8,9 S $P(LA7X,"^",I-2)=$P(LA762801(5),"^",I)
|
---|
| 52 | S OBR(15)=$$OBR15^LA7VOBR(+$P(LA762801(0),"^",3),+$P(LA76802(5),"^",2),LA7X,LA7FS,LA7ECH,$P(LA762801(0),"^",7))
|
---|
| 53 | ;
|
---|
| 54 | ; Ordering provider
|
---|
| 55 | K LA7X
|
---|
| 56 | S LA7X=$$FNDOLOC^LA7VHLU2(LA7UID)
|
---|
| 57 | S OBR(16)=$$ORC12^LA7VORC($P(LA76802(0),"^",8),$P(LA7X,"^",3),LA7FS,LA7ECH)
|
---|
| 58 | ;
|
---|
| 59 | ; Placer's field #1 (HOST site)
|
---|
| 60 | S OBR(18)="LA7V HOST "_SITE
|
---|
| 61 | ;
|
---|
| 62 | ; Placer's field #2
|
---|
| 63 | K LA7X
|
---|
| 64 | S LA7X(3)=LRAA,LA7X(4)=LRAD,LA7X(5)=LRAN,LA7X(6)=$P(^LRO(68,LRAA,1,LRAD,1,LRAN,.2),U),LA7X(7)=LA7UID
|
---|
| 65 | S OBR(19)=$$OBR19^LA7VOBR(.LA7X,LA7FS,LA7ECH)
|
---|
| 66 | ;
|
---|
| 67 | ; Test duration
|
---|
| 68 | S (LA7DUR,LA7DURU)=""
|
---|
| 69 | I $P(LA762801(2),"^",4) D
|
---|
| 70 | . S LA7DUR=$P(LA762801(2),"^",6) ; collection duration
|
---|
| 71 | . S LA7DURU=$P(LA762801(2),"^",7) ; duration units
|
---|
| 72 | ;
|
---|
| 73 | ; Test urgency
|
---|
| 74 | S LA76205=+$$GET1^DIQ(68.04,LA760_","_LRAN_","_LRAD_","_LRAA_",",1,"I")
|
---|
| 75 | S OBR(27)=$$OBR27^LA7VOBR(LA7DUR,LA7DURU,LA76205,LA7FS,LA7ECH)
|
---|
| 76 | ;
|
---|
| 77 | ; If sending to another VA then build OBR-34
|
---|
| 78 | I 'LA7NVAF S $P(OBR(34),HLCOMP,7)=$P($G(LA7V("HOST")),U)
|
---|
| 79 | ;
|
---|
| 80 | D BUILDSEG^LA7VHLU(.OBR,.LA7DATA,LA7FS)
|
---|
| 81 | D FILESEG^LA7VHLU(GBL,.LA7DATA)
|
---|
| 82 | D FILE6249^LA7VHLU(LA76249,.LA7DATA)
|
---|
| 83 | Q
|
---|
| 84 | ;
|
---|
| 85 | OBX ; Build OBX segments with required info if any.
|
---|
| 86 | ;
|
---|
| 87 | N LA74,LA7DUR,LA7DURU
|
---|
| 88 | ;
|
---|
| 89 | ; Collecting facility
|
---|
| 90 | S LA74=$P(LA7629(0),"^",2)
|
---|
| 91 | S LA7OBXSN=0
|
---|
| 92 | ;
|
---|
| 93 | ; Patient height
|
---|
| 94 | I $P(LA762801(1),"^") D PTHT^LA7VORM2($P(LA762801(1),"^",2),$P(LA762801(1),"^",3),$P(LA762801(1),"^",7),LA74,.LA7OBXSN,.LRI,LA7FS,LA7ECH,LA76249)
|
---|
| 95 | ;
|
---|
| 96 | ; Patient weight
|
---|
| 97 | I $P(LA762801(1),"^",4) D PTWT^LA7VORM2($P(LA762801(1),"^",5),$P(LA762801(1),"^",6),$P(LA762801(1),"^",8),LA74,.LA7OBXSN,.LRI,LA7FS,LA7ECH,LA76249)
|
---|
| 98 | ;
|
---|
| 99 | ; Collection duration
|
---|
| 100 | S (LA7DUR,LA7DURU)=""
|
---|
| 101 | I $P(LA762801(2),"^",4) D
|
---|
| 102 | . S LA7DUR=$P(LA762801(2),"^",6) ; collection duration
|
---|
| 103 | . S LA7DURU=$P(LA762801(2),"^",7) ; duration units
|
---|
| 104 | . D SPDUR^LA7VORM2($P(LA762801(2),"^",6),$P(LA762801(2),"^",7),$P(LA762801(2),"^",12),LA74,.LA7OBXSN,.LRI,LA7FS,LA7ECH,LA76249)
|
---|
| 105 | ;
|
---|
| 106 | ; Collection volume
|
---|
| 107 | I $P(LA762801(2),"^",2) D
|
---|
| 108 | . D SPCV^LA7VORM2($P(LA762801(2),"^",2),$P(LA762801(2),"^",3),$P(LA762801(2),"^",11),LA74,.LA7OBXSN,.LRI,LA7FS,LA7ECH,LA76249)
|
---|
| 109 | ;
|
---|
| 110 | ; Specimen weight
|
---|
| 111 | I $P(LA762801(2),"^",8) D SPWT^LA7VORM2($P(LA762801(2),"^",9),$P(LA762801(2),"^",10),LA7DUR_LA7DURU,$P(LA762801(2),"^",13),LA74,.LA7OBXSN,.LRI,LA7FS,LA7ECH,LA76249)
|
---|
| 112 | ;
|
---|
| 113 | ; Check for anatomic/surigal path subscripts
|
---|
| 114 | I "SP^CY^AU^EM"[$P($G(^LRO(68,LRAA,0)),"^",2) D AP
|
---|
| 115 | ;
|
---|
| 116 | Q
|
---|
| 117 | ;
|
---|
| 118 | ;
|
---|
| 119 | AP ; Observation/Result segment for Lab AP Results sent with Order Message
|
---|
| 120 | ;
|
---|
| 121 | N LA7DATA,LA7IDT,LRIDT,LRSB,LRSS
|
---|
| 122 | ;
|
---|
| 123 | S LRSS=$P($G(^LRO(68,LRAA,0)),"^",2)
|
---|
| 124 | S (LA7IDT,LRIDT)=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,3)),"^",5)
|
---|
| 125 | D APORM^LA7VORU2
|
---|
| 126 | Q
|
---|