| 1 | LA7VOBX2 ;DALOI/JMC - LAB OBX Segment message builder (AP subscripts) cont'd ; 05/26/00
 | 
|---|
| 2 |  ;;5.2;AUTOMATED LAB INSTRUMENTS;**46,64**;Sep 27, 1994
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | AP ; Build OBX segments for resultss that are anatomic/surgical pathology subscripts
 | 
|---|
| 5 |  ; Called by LA7VOBX
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  N LA7953,LA7ACODE,LA7CODE,LA7DIV,LA7IENS,LA7OBX5,LA7OBX5M,LA7SUB,LA7SUBFL,LA7VP,LA7WP,LA7X,LA7Y
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  S (LA7953,LA7DIV,LA7VP)=""
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ; Surgical pathology subscript
 | 
|---|
| 12 |  I LRSS="SP" S LA7SUBFL=63.08
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ; Cytology subscript
 | 
|---|
| 15 |  I LRSS="CY" S LA7SUBFL=63.09
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ; Electron microscopy subscript
 | 
|---|
| 18 |  I LRSS="EM" S LA7SUBFL=63.02
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  S LA7IENS=""
 | 
|---|
| 21 |  F I=3:-1:1 I $P(LRIDT,",",I) S LRIDT(I)=$P(LRIDT,",",I),LA7IENS=LA7IENS_LRIDT(I)_","
 | 
|---|
| 22 |  S LA7IENS=LA7IENS_LRDFN_","
 | 
|---|
| 23 |  S LRIDT=$P(LRIDT,",")
 | 
|---|
| 24 |  S LA7SUB(0)=$G(^LR(LRDFN,LRSS,LRIDT,0))
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  ; Get default codes
 | 
|---|
| 27 |  S LA7CODE=$$DEFCODE^LA7VHLU5(LRSS,LRSB,"","")
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ; Initialize OBX segment
 | 
|---|
| 30 |  S LA7OBX(0)="OBX"
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ; Value type
 | 
|---|
| 33 |  S LA7X=LA7SUBFL,LA7Y=LRSB
 | 
|---|
| 34 |  I LRSS="SP" D
 | 
|---|
| 35 |  . I LRSB=1.2 S LA7X=63.817,LA7Y=1
 | 
|---|
| 36 |  . I LRSB="10,1.5" S LA7X=63.82,LA7Y=.01
 | 
|---|
| 37 |  . I LRSB="10,2" S LA7X=63.12,LA7Y=2
 | 
|---|
| 38 |  . I LRSB="10,5" S LA7X=63.819,LA7Y=1
 | 
|---|
| 39 |  S LA7OBX(2)=$$OBX2^LA7VOBX(LA7X,LA7Y)
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 |  ; Observation identifier
 | 
|---|
| 42 |  S LA7OBX(3)=$$OBX3^LA7VOBX($P(LA7CODE,"!",2),$P(LA7CODE,"!",3),"",LA7FS,LA7ECH)
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 |  ; Observation sub-ID
 | 
|---|
| 45 |  ; Create sub-ID for supplementary reports and special studies
 | 
|---|
| 46 |  I LRSS="SP" D SUBID
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ; Build result field
 | 
|---|
| 49 |  I LRSB=.012 D
 | 
|---|
| 50 |  . N LA7I,LA7X,LA7Y
 | 
|---|
| 51 |  . S LA7I=0
 | 
|---|
| 52 |  . F  S LA7I=$O(^LR(LRDFN,LRSS,LRIDT,.1,LA7I)) Q:'LA7I  D
 | 
|---|
| 53 |  . . S LA7X=$G(^LR(LRDFN,LRSS,LRIDT,.1,LA7I,0))
 | 
|---|
| 54 |  . . S LA7Y(LA7I)=$P(LA7X,"^")
 | 
|---|
| 55 |  . S LA7OBX(5)=$$OBX5R^LA7VOBX(.LA7Y,LA7OBX(2),LA7FS,LA7ECH)
 | 
|---|
| 56 |  ;
 | 
|---|
| 57 |  I LRSB'=.012 D
 | 
|---|
| 58 |  . I LRSS="SP",$P(LRSB,",")=10,LRSB'="10,5" Q
 | 
|---|
| 59 |  . I LA7NVAF=1 D DOD Q
 | 
|---|
| 60 |  . I LRSS="SP",LRSB=1.2 N LRSB S LA7SUBFL=63.817,LRSB=1
 | 
|---|
| 61 |  . I LRSS="SP",LRSB="10,5" N LRSB S LA7SUBFL=63.819,LRSB=1
 | 
|---|
| 62 |  . D OBX5M^LA7VOBX(LA7SUBFL,LA7IENS,LRSB,.LA7WP,LA7FS,LA7ECH)
 | 
|---|
| 63 |  . D BUILDSEG^LA7VHLU(.LA7WP,.LA7OBX5M,"")
 | 
|---|
| 64 |  . M LA7OBX(5)=LA7OBX5M
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  I LRSS="SP",$P(LRSB,",")=10 D
 | 
|---|
| 67 |  . N LA7VAL,X
 | 
|---|
| 68 |  . I LRSB=10 D
 | 
|---|
| 69 |  . . S LA7VAL=$$GET1^DIQ(63.12,LA7IENS,.01)
 | 
|---|
| 70 |  . . S X=$$GET1^DIQ(63.12,LA7IENS,".01:2")
 | 
|---|
| 71 |  . . I $L(X) S LA7VAL=$S($E(X,1,2)="T-":"",1:"T-")_X_"^"_LA7VAL_"^SNM"
 | 
|---|
| 72 |  . . S LA7OBX(5)=$$OBX5^LA7VOBX(LA7VAL,LA7OBX(2),LA7FS,LA7ECH)
 | 
|---|
| 73 |  . I LRSB="10,2" D
 | 
|---|
| 74 |  . . S LA7VAL=$$GET1^DIQ(63.12,LA7IENS,2)
 | 
|---|
| 75 |  . . S LA7OBX(5)=$$OBX5^LA7VOBX(LA7VAL,LA7OBX(2),LA7FS,LA7ECH)
 | 
|---|
| 76 |  . . S LA7OBX(6)=$$OBX6^LA7VOBX("g","",LA7FS,LA7ECH)
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  ; Don't build this segment if no results/value to send
 | 
|---|
| 79 |  I $G(LA7OBX(5,0))="",$G(LA7OBX(5))="" Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ; Build sequence id
 | 
|---|
| 82 |  S LA7OBX(1)=$$OBX1^LA7VOBX(.LA7OBXSN)
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 |  ; "P"artial, "F"inal , "A"mended results
 | 
|---|
| 85 |  ; If not release date then pending
 | 
|---|
| 86 |  I '$P(LA7SUB(0),"^",11) S LA7OBX(11)="P"
 | 
|---|
| 87 |  ;
 | 
|---|
| 88 |  ; If release date then check for changes
 | 
|---|
| 89 |  I $P(LA7SUB(0),"^",11) D
 | 
|---|
| 90 |  . I $P(LA7SUB(0),"^",15) S LA7OBX(11)="C"
 | 
|---|
| 91 |  . E  S LA7OBX(11)="F"
 | 
|---|
| 92 |  ;
 | 
|---|
| 93 |  I $P(LA7SUB(0),"^",13),$$DIV4^XUSER(.LA7DIV,$P(LA7SUB(0),"^",2)) S LA7DIV=$O(LA7DIV(0))
 | 
|---|
| 94 |  ;
 | 
|---|
| 95 |  ; Facility that performed the testing
 | 
|---|
| 96 |  S LA7OBX(15)=$$OBX15^LA7VOBX(LA7DIV,LA7FS,LA7ECH)
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 |  ; Person that verified the test
 | 
|---|
| 99 |  S LA7VP=$P(LA7SUB(0),"^",13)
 | 
|---|
| 100 |  I LA7VP S LA7OBX(16)=$$OBX16^LA7VOBX(LA7VP,LA7DIV,LA7FS,LA7ECH)
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  D BUILDSEG^LA7VHLU(.LA7OBX,.LA7ARRAY,LA7FS)
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  Q
 | 
|---|
| 105 |  ;
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 | SUBID ; Build sub-id for "SP" subscript
 | 
|---|
| 108 |  ; Used to identify supplementary reports, specimens and related special
 | 
|---|
| 109 |  ; studies performed on thoese specimens.
 | 
|---|
| 110 |  ;
 | 
|---|
| 111 |  N LA7SUBID
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 |  S LA7SUBID=""
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 |  ; Sub-id's for supplementary reports
 | 
|---|
| 116 |  I LRSB=1.2 S LA7SUBID="1."_$P(LA7IENS,",")
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 |  ; Sub-id's for specimens and special studies
 | 
|---|
| 119 |  I LRSB=10!(LRSB="10,2") S LA7SUBID="10."_$P(LA7IENS,",")
 | 
|---|
| 120 |  I LRSB="10,1.5"!(LRSB="10,5") S LA7SUBID="10."_$P(LA7IENS,",",2)_"."_$P(LA7IENS,",")
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 |  I $L(LA7SUBID) S LA7OBX(4)=$$OBX4^LA7VOBX(LA7SUBID,LA7FS,LA7ECH)
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 |  Q
 | 
|---|
| 125 |  ;
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 | DOD ; Build OBX segment's to special DoD specifications.
 | 
|---|
| 128 |  ; Send word-processing fields as series of OBX's for DoD.
 | 
|---|
| 129 |  ; DoD cannot handle formatted text (FT) data type.
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 |  S LA7OBX(2)="ST"
 | 
|---|
| 132 |  S LA7VAL=$G(^LR(LRDFN,LRSS,$P(LA7IDT,","),LA7SB,$P(LA7IDT,",",2),0))
 | 
|---|
| 133 |  I LA7VAL="" S LA7VAL=" "
 | 
|---|
| 134 |  S LA7OBX(5)=$$OBX5^LA7VOBX(LA7VAL,LA7OBX(2),LA7FS,LA7ECH)
 | 
|---|
| 135 |  Q
 | 
|---|