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
|
---|