| 1 | GMRAOR1 ;HIRMFO/RM,WAA-OERR UTILITIES ;8/2/04  15:13
 | 
|---|
| 2 |  ;;4.0;Adverse Reaction Tracking;**21**;Mar 29, 1996
 | 
|---|
| 3 | EN1(DFN,ARRAY) ; This entry returns a list of patient allergies/adverse
 | 
|---|
| 4 |  ; reactions.
 | 
|---|
| 5 |  ; Input variables:
 | 
|---|
| 6 |  ;     DFN = IEN of patient in Patient (2) file
 | 
|---|
| 7 |  ;     ARRAY = Return array for Patient reactions.
 | 
|---|
| 8 |  ;             If ARRAY="" or undefined default will be GMRARXN.
 | 
|---|
| 9 |  Q:$G(DFN)'>0
 | 
|---|
| 10 |  S ARRAY=$S($G(ARRAY)'="":ARRAY,1:ARRAY="GMRARXN") Q:ARRAY="GMRAL"
 | 
|---|
| 11 |  K GMRARXN,GMRAL,@ARRAY
 | 
|---|
| 12 |  D EN1^GMRADPT ; Get Patient Allergies
 | 
|---|
| 13 |  I GMRAL D  ; If the patient has reaction then reprocess to OERR Fmt
 | 
|---|
| 14 |  .N GMRAIEN,GMRADFN,%,GMRASVR
 | 
|---|
| 15 |  .S GMRARXN=1,GMRAIEN=0
 | 
|---|
| 16 |  .F  S GMRAIEN=$O(GMRAL(GMRAIEN)) Q:GMRAIEN<1  D
 | 
|---|
| 17 |  ..S GMRARXN(GMRARXN)=$P(GMRAL(GMRAIEN),U,2)_U ; Get freetext of agent.
 | 
|---|
| 18 |  ..; Loop through 120.85 file to find all observed reacting reports for
 | 
|---|
| 19 |  ..; this reaction.  Grab severity and store only the highest value.
 | 
|---|
| 20 |  ..S GMRADFN=0,%="",GMRASVR="" F  S GMRADFN=$O(^GMR(120.85,"C",GMRAIEN,GMRADFN)) Q:GMRADFN<1  S %=$P($G(^GMR(120.85,GMRADFN,0)),U,14) S:%>+GMRASVR GMRASVR=%
 | 
|---|
| 21 |  ..S GMRARXN(GMRARXN)=GMRARXN(GMRARXN)_$S(GMRASVR=1:"MILD",GMRASVR=2:"MODERATE",GMRASVR=3:"SEVERE",1:"")_U_GMRAIEN
 | 
|---|
| 22 |  ..;Loop through the S/S multiple and get the external format and possibly the date/time.
 | 
|---|
| 23 |  ..S %=0 F  S %=$O(GMRAL(GMRAIEN,"S",%)) Q:%<1  S GMRARXN(GMRARXN,"S",%)=$P(GMRAL(GMRAIEN,"S",%),";")_$S($G(GMRAIDT):";"_$P(^GMR(120.8,GMRAIEN,10,$O(^GMR(120.8,GMRAIEN,10,"B",$P(GMRAL(GMRAIEN,"S",%),";",2),0)),0),U,4),1:"") ;21
 | 
|---|
| 24 |  ..S GMRARXN=GMRARXN+1
 | 
|---|
| 25 |  ..Q
 | 
|---|
| 26 |  .S GMRARXN=1
 | 
|---|
| 27 |  .Q
 | 
|---|
| 28 |  E  S GMRARXN=GMRAL
 | 
|---|
| 29 |  I ARRAY'="GMRARXN" M @ARRAY=GMRARXN K GMRARXN
 | 
|---|
| 30 |  K GMRAL
 | 
|---|
| 31 |  Q
 | 
|---|