1 | GMRAOR4 ;HIRMFO/WAA,FPT-OERR HL7 UTILITY ; 2/9/95
|
---|
2 | ;;4.0;Adverse Reaction Tracking;**4,16**;Oct 10, 2000
|
---|
3 | ;MSG = HL7 Message array
|
---|
4 | ;GMRANODE = IEN of MSG array
|
---|
5 | ;GMRAND = Date from MSG(GMRANODE)
|
---|
6 | ;GMRAMTP = Message type
|
---|
7 | EN1(MSG) ; MSG is the array that is passed to ART should be pass by
|
---|
8 | ; reference
|
---|
9 | N GMRANODE,GMRAND,GMRAMTP
|
---|
10 | S GMRANODE=0
|
---|
11 | F S GMRANODE=$O(MSG(GMRANODE)) Q:GMRANODE<1 D
|
---|
12 | .S GMRAND=MSG(GMRANODE),GMRAMTP=$E(GMRAND,1,3)
|
---|
13 | .I "^MSH^PID^PV1^AL1^ZAL^ZAO^ZAS^NTE^"'[("^"_GMRAMTP_"^") S GMRAMTP="ERROR"
|
---|
14 | .D @GMRAMTP
|
---|
15 | .Q
|
---|
16 | K %,DL1,DL2,DL3,DL4,DL4,GMRAI,GMRAID,GMRAIDC,GMRAIDN,GMRAIDO,GMRAIDS,I
|
---|
17 | D EN1^GMRAOR5
|
---|
18 | K GMRADFN,GMRAL
|
---|
19 | Q
|
---|
20 | MSH ;Message Header Information
|
---|
21 | ;Set up delimiters DL1-DL5
|
---|
22 | N GMRADL
|
---|
23 | F I=1:1:5 S GMRADL="DL"_I,@GMRADL=$E(GMRAND,(3+I)) ; Assign all delimiters
|
---|
24 | Q
|
---|
25 | PID ;Patient Id Information
|
---|
26 | ;GMRADFN = DFN of patient in ^DPT(DFN) Patient (2) file
|
---|
27 | S GMRADFN=$P(GMRAND,DL1,4)
|
---|
28 | Q
|
---|
29 | PV1 ;Allergy Information
|
---|
30 | Q
|
---|
31 | AL1 ;Allergy informaton
|
---|
32 | ;building GMRAL Array to be used to stuff only new data
|
---|
33 | ;GMRAID=sequence number of allergy
|
---|
34 | ;~=continuation
|
---|
35 | ; Allergy AL1 Segment
|
---|
36 | ; GMRAL(GMRAID)=type^file ien^VA Free text drug^file^OERR entry date^~
|
---|
37 | ; GMRAL(1)="D^5^SHELL FISH^99ALL^2940415.06^~
|
---|
38 | ; ZAL Segment
|
---|
39 | ; GMRAL(GMRAID)=~NKA Status^Originator Pt to 200^Observed/Historical
|
---|
40 | ; GMRAL(1)=~y^1270^o"
|
---|
41 | S GMRAID=$P(GMRAND,DL1,2)
|
---|
42 | S %=$P(GMRAND,DL1,3)
|
---|
43 | S %=$S(%="DA":"D",%="FA":"F",%="MA":"O",%="MC":"O",%="AT":"DFO","^DF^DO^FO^"["^"_%_"^":%,1:"")
|
---|
44 | S GMRAL(GMRAID)=%
|
---|
45 | S %="" F GMRAI=4:1:6 S %=%_U_$P($P(GMRAND,DL1,4),DL2,GMRAI)
|
---|
46 | S GMRAL(GMRAID)=GMRAL(GMRAID)_%
|
---|
47 | S %=$$HL7TFM^XLFDT($P(GMRAND,DL1,7))
|
---|
48 | S GMRAL(GMRAID)=GMRAL(GMRAID)_U_%
|
---|
49 | Q
|
---|
50 | ZAL ;Allergy type information
|
---|
51 | S GMRAL(GMRAID)=GMRAL(GMRAID)_U_$S($P(GMRAND,DL1,3)="YES":"n",$P(GMRAND,DL1,3)="NO":"y",1:"")_U_$P(GMRAND,DL1,4)
|
---|
52 | S GMRAL(GMRAID)=GMRAL(GMRAID)_U_$S($P(GMRAND,DL1,5)="OB":"o",$P(GMRAND,DL1,5)="HI":"h",1:"")
|
---|
53 | Q
|
---|
54 | ZAO ;Observed allergy information
|
---|
55 | ;GMRAIDO = Sequence #
|
---|
56 | ; ZAO Observed reaction section
|
---|
57 | ; GMRAL(GMRAID,"O",GMRAIDO)=Observed date^Severity^Observer's DUZ
|
---|
58 | ; GMRAL(1,"O",1)="2940401.1^3^1234"
|
---|
59 | ;S GMRAIDO=$P(GMRAND,DL1,2)
|
---|
60 | S GMRAIDO=1
|
---|
61 | S %=$$HL7TFM^XLFDT($P(GMRAND,DL1,3))
|
---|
62 | S GMRAL(GMRAID,"O",GMRAIDO)=%
|
---|
63 | S %=$P(GMRAND,DL1,4)
|
---|
64 | S GMRAL(GMRAID,"O",GMRAIDO)=GMRAL(GMRAID,"O",GMRAIDO)_U_$S(%="MI":1,%="MO":2,%="SV":3,1:"")_U_$P(GMRAND,DL1,5)
|
---|
65 | Q
|
---|
66 | ZAS ;Allergy Signs/Symptoms
|
---|
67 | ;GMRAIDS = Sequence #
|
---|
68 | ; ZAS Observed reaction section
|
---|
69 | ; GMRAL(GMRAID,"S",GMRAIDS)=IEN of file^Free Text of entry^File of SS
|
---|
70 | ; ^Date of the SS
|
---|
71 | ; GMRAL(1,"S",1)="32^SEVERE RASH^99ALS^2951211.1120"
|
---|
72 | S GMRAIDS=$P(GMRAND,DL1,2)
|
---|
73 | S GMRAL(GMRAID,"S",GMRAIDS)=$P($P(GMRAND,DL1,3),DL2,4)_U
|
---|
74 | S GMRAL(GMRAID,"S",GMRAIDS)=GMRAL(GMRAID,"S",GMRAIDS)_$P($P(GMRAND,DL1,3),DL2,5)_U
|
---|
75 | S GMRAL(GMRAID,"S",GMRAIDS)=GMRAL(GMRAID,"S",GMRAIDS)_$P($P(GMRAND,DL1,3),DL2,6)_U
|
---|
76 | S %=$P(GMRAND,DL1,4)
|
---|
77 | I %'="" S %=$$HL7TFM^XLFDT($P(GMRAND,DL1,4)),GMRAL(GMRAID,"S",GMRAIDS)=GMRAL(GMRAID,"S",GMRAIDS)_%
|
---|
78 | Q
|
---|
79 | NTE ;Comments
|
---|
80 | ;GMRAIDN = Sequence #
|
---|
81 | ;GMRAIDC = the next line of text from the HL7 script
|
---|
82 | ; NTE Comments section
|
---|
83 | ; GMRAL(GMRAID,"N",GMRAIDN)=Source of comments(Originator always)
|
---|
84 | ; GMRAL(1,"N",1)="n"
|
---|
85 | ; GMRAL(1,"N",1,1)=FREE TEXT
|
---|
86 | S GMRAIDN=1
|
---|
87 | ; old Code S GMRAIDN=$P(GMRAND,DL1,2)
|
---|
88 | S GMRAL(GMRAID,"N",GMRAIDN)="O"
|
---|
89 | ; old code S GMRAL(GMRAID,"N",GMRAIDN,1)=$P(GMRAND,DL1,3)
|
---|
90 | S GMRAL(GMRAID,"N",GMRAIDN,1)=$P(GMRAND,DL1,4)
|
---|
91 | ; old code S GMRAIDC="0" F S GMRAIDC=$O(MSG(GMRANODE,GMRAIDC)) Q:GMRAIDC<1 Q:$P(MSG(GMRANODE,GMRAIDC),DL1)'="NTE" D
|
---|
92 | S GMRAIDC="0" F S GMRAIDC=$O(MSG(GMRANODE,GMRAIDC)) Q:GMRAIDC<1 D
|
---|
93 | .S GMRAL(GMRAID,"N",GMRAIDN,GMRAIDC+1)=MSG(GMRANODE,GMRAIDC)
|
---|
94 | .Q
|
---|
95 | Q
|
---|
96 | ERROR ;Error handling
|
---|
97 | Q
|
---|