1 | LR7OU01 ;slc/dcm - Build HL7 Components ;8/11/97
|
---|
2 | ;;5.2;LAB SERVICE;**121,187**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | ORC(COUNT) ;ORC segment
|
---|
5 | ;X1 = Order Control (SN-backdoor new order, OC-Cancel, SC-on collection
|
---|
6 | ; SC-collected, RE-completed) See table 119
|
---|
7 | ;X2 = Lab Number
|
---|
8 | ;X3 = Order Status (table 38)
|
---|
9 | ;X4 = Quantity/Timing - Quantity^Interval^Duration^Start D/T^End D/T^Priority^Condition^Text^Conjunction
|
---|
10 | ;X5 = Date ordered/entered
|
---|
11 | ;X6 = Provider # (ptr to file 200)
|
---|
12 | ;X7 = Order effective D/T
|
---|
13 | ;X8 = Order Control Reason
|
---|
14 | ;X9 = OE/RR Order #
|
---|
15 | ;X10 = Entered by
|
---|
16 | N ORC,CTR,ARAY
|
---|
17 | S CTR=0,ARAY=""
|
---|
18 | D BUILD("ORC|"),BUILD(X1_"|"_$S($L(X9):X9_"^OR",1:"")_"|"),BUILD(X2_"^||"),BUILD(X3_"||"),BUILD(X4_"||"),BUILD(X5_"|"),BUILD($$PERSON(X10)_"||")
|
---|
19 | D BUILD($$PERSON(X6)_"|||"),BUILD(X7_"|"),BUILD(X8)
|
---|
20 | M @MSG@(COUNT)=ARAY
|
---|
21 | Q
|
---|
22 | OBR(COUNT) ;OBR segment
|
---|
23 | ;COUNT=Current count for MSG array
|
---|
24 | ;X1 = Universal ID - ^^^ifn (from file 60)^Test Name^99_SectionID
|
---|
25 | ; SectionID: LRT=Chem Hem Tox Micro AP, LRB=Bloodbank
|
---|
26 | ;X2 = Observation D/T
|
---|
27 | ;X3 = Specimen Action Code (table 65)
|
---|
28 | ;X4 = Specimen Recieved D/T
|
---|
29 | ;X5 = Specimen Source (table 70)
|
---|
30 | ;X6 = Accession (Filler Field 1)
|
---|
31 | ;X7 = Results reported or Status changed D/T
|
---|
32 | ;X8 = Result Status (table 123)
|
---|
33 | ;X9 = Quantity/timing
|
---|
34 | ;X10 = Result copies to: location
|
---|
35 | ;COBR = OBR counter
|
---|
36 | N OBR,CTR,ARAY
|
---|
37 | S CTR=0,ARAY=""
|
---|
38 | D BUILD("OBR|"),BUILD(COBR_"|||"),BUILD(X1_"|||"),BUILD(X2_"||||"),BUILD(X3_"|||"),BUILD(X4_"|"),BUILD(X5_"|||||")
|
---|
39 | D BUILD(X6_"||"),BUILD(X7_"|||"),BUILD(X8_"||"),BUILD(X9_"|"),BUILD(X10)
|
---|
40 | M @MSG@(COUNT)=ARAY
|
---|
41 | Q
|
---|
42 | OBX(COUNT) ;OBX Result segment
|
---|
43 | ;X1 = Value type (table 125)
|
---|
44 | ;X2 = Observation ID - ^^^ifn (from file 60)^Test Name^99_SectionID
|
---|
45 | ;X3 = Observation Sub-ID
|
---|
46 | ;X4 = Result
|
---|
47 | ;X5 = coded per table 36
|
---|
48 | ;X6 = Reference Range
|
---|
49 | ;X7 = Abnormal Flag (table 78)
|
---|
50 | ;X8 = Observ Result Status (table 85)
|
---|
51 | ;COBX = OBX Counter
|
---|
52 | ;X10 = User Defined Access Checks
|
---|
53 | ;X11 = Verified by
|
---|
54 | N OBX,CTR,ARAY
|
---|
55 | S CTR=0,ARAY=""
|
---|
56 | D BUILD("OBX|"_COBX_"|"),BUILD(X1_"|"),BUILD(X2_"|"),BUILD(X3_"|"),BUILD(X4_"|"),BUILD(X5_"|"),BUILD(X6_"|"),BUILD(X7_"|||"),BUILD(X8_"||"),BUILD(X10_"||"),BUILD($$PERSON(X11))
|
---|
57 | M @MSG@(COUNT)=ARAY
|
---|
58 | Q
|
---|
59 | NTE(ID,SOURCE,NODE,CTR) ;NTE Notes segment
|
---|
60 | ;ID=SET ID
|
---|
61 | ;SOURCE = Source of comment P=>Placer, L=>Filler, O=>Other system
|
---|
62 | ;NODE=Local array with text in the form ARRAY( or ARRAY(I,
|
---|
63 | ;CTR=Counter for 1st subscript in MSG(ctr) array
|
---|
64 | Q:'$L(NODE) N NTE,FIRST,SUB,X,IFN
|
---|
65 | S NTE="NTE|"_ID_"|"_SOURCE,IFN=0,FIRST=1
|
---|
66 | F S IFN=$O(@(NODE_IFN_")")) Q:IFN<1 S X=@(NODE_IFN_")") D
|
---|
67 | . I X["For Test: " Q ;Screen out unecessary test text
|
---|
68 | . I FIRST S @MSG@(CTR)=NTE_"|"_X S FIRST=0,SUB=0 Q
|
---|
69 | . S SUB=SUB+1,@MSG@(CTR,SUB)=X
|
---|
70 | Q
|
---|
71 | PERSON(X) ;Get person in external format
|
---|
72 | I '$G(X) Q 0
|
---|
73 | I '$D(^VA(200,+X,0)) Q X
|
---|
74 | S X=+X_"^"_$P(^VA(200,+X,0),"^")
|
---|
75 | Q X
|
---|
76 | BUILD(FIELD) ;Build a segment
|
---|
77 | ;FIELD=text/field to add to segment
|
---|
78 | ;ARAY is built until length is >244 characters then
|
---|
79 | ;ARAY(ifn) is created
|
---|
80 | S:'$D(ARAY) ARAY="" Q:'$D(FIELD) Q:'$D(CTR)
|
---|
81 | N IFN,X
|
---|
82 | S X=$S($O(ARAY(0)):$O(ARAY(9999),-1),1:ARAY)
|
---|
83 | S:$L(FIELD)>244 FIELD=$E(FIELD,1,244)
|
---|
84 | I $L(FIELD)+$L(X)>244 S CTR=CTR+1,ARAY(CTR)=""
|
---|
85 | S:CTR=0 ARAY=ARAY_FIELD
|
---|
86 | S:CTR ARAY(CTR)=ARAY(CTR)_FIELD
|
---|
87 | Q
|
---|