AllergyIntolerance and FamilyMemberHistory resources

We’ve captured Bobs basic information, tracked his encounter with Dr. Alice, and recorded his vital signs and lab results. But there’s more to Bob’s health story that Dr. Alice needs to know before making any treatment decisions.

Two crucial pieces of information that every healthcare provider asks about:

  1. “What are you allergic to?”
  2. “Does anyone in your family have any health conditions?”

These aren’t just routine questions - they’re critical safety checks that can literally save lives. Let’s see how FHIR handles this essential information.

The AllergyIntolerance Resource: Your Safety Net

When Dr. Alice asks Bob about allergies, she discovers he has a peanut allergy. This isn’t just a note in his chart - it’s a critical safety flag that needs to be immediately available to anyone treating Bob.

Here’s how FHIR captures Bob’s peanut allergy:

{
  "resourceType": "AllergyIntolerance",
  "id": "allergy-1",
  "clinicalStatus": {
    "coding": [
      { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical", "code": "active" }
    ]
  },
  "verificationStatus": {
    "coding": [
      { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", "code": "confirmed" }
    ]
  },
  "type": "allergy",
  "category": ["food"],
  "code": {
    "coding": [
      { "system": "http://snomed.info/sct", "code": "256349002", "display": "Allergy to peanut" }
    ],
    "text": "Peanut"
  },
  "patient": { "reference": "Patient/bob-patient" },
  "recordedDate": "2025-08-08",
  "recorder": { "reference": "Practitioner/prac-1" }
}

Why Not Just Use Observation?

You might be thinking: “Hey, we just learned that Observation can capture almost anything. Why not use that for allergies?”

Great question! Here’s the simple rule: If there’s a specific FHIR resource designed for something, use that resource.

The AllergyIntolerance resource exists specifically for allergies and intolerances. It has specialized fields that Observation doesn’t have. Only fall back to Observation when there’s no specific resource available.

Breaking Down the AllergyIntolerance Fields

Let’s understand what each part of Bob’s allergy record means:

Type: Allergy vs Intolerance

"type": "allergy"

The difference between allergies and intolerances is often blurry in real life:

  • Allergy: Usually more severe, often involves the immune system
  • Intolerance: Something’s wrong, but typically less severe

In practice, many people use “allergy” generically. That’s okay - FHIR can handle both.

Category: What Kind of Allergen?

"category": ["food"]

FHIR recognizes several categories:

  • food (like Bob’s peanut allergy)
  • medication (drug allergies)
  • environment (pollen, dust)
  • biologic (vaccines, blood products)

The Code: What Exactly Are They Allergic To?

"code": {
  "coding": [
    { "system": "http://snomed.info/sct", "code": "256349002", "display": "Allergy to peanut" }
  ],
  "text": "Peanut"
}

This uses SNOMED CT to precisely identify the peanut allergy. The text field provides a human-readable version.

Verification Status: How Sure Are We?

"verificationStatus": {
  "coding": [
    { "system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification", "code": "confirmed" }
  ]
}

This is crucial! Verification status can be:

  • unconfirmed: Patient mentioned it, but not verified
  • confirmed: Healthcare provider has validated it
  • refuted: Turns out it’s not actually an allergy
  • entered-in-error: The information is incorrect

Family History: Understanding Genetic Risk

After capturing Bob’s allergies, Dr. Alice asks about family health history. Bob mentions that his mother has diabetes. This information helps Dr. Alice understand Bob’s risk factors for developing diabetes himself.

Here’s how FHIR captures this family history:

{
  "resourceType": "FamilyMemberHistory",
  "id": "fmh-1",
  "status": "completed",
  "patient": { "reference": "Patient/bob-patient" },
  "relationship": {
    "coding": [
      { "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode", "code": "MTH", "display": "Mother" }
    ]
  },
  "condition": [
    {
      "code": {
        "coding": [
          { "system": "http://snomed.info/sct", "code": "44054006", "display": "Diabetes mellitus" }
        ],
        "text": "Diabetes"
      },
      "onsetString": "Adult onset"
    }
  ]
}

Understanding FamilyMemberHistory Structure

Relationship: Who Has the Condition?

"relationship": {
  "coding": [
    { "system": "http://terminology.hl7.org/CodeSystem/v3-RoleCode", "code": "MTH", "display": "Mother" }
  ]
}

FHIR uses standard codes for family relationships: MTH (mother), FTH (father), SIB (sibling), etc.

Condition: What Do They Have?

"condition": [
  {
    "code": {
      "coding": [
        { "system": "http://snomed.info/sct", "code": "44054006", "display": "Diabetes mellitus" }
      ],
      "text": "Diabetes"
    },
    "onsetString": "Adult onset"
  }
]

The condition uses SNOMED CT to identify diabetes mellitus precisely.

The Power of Onset Polymorphism

Notice the onsetString field? This is another example of FHIR’s polymorphism (like we saw with Observation’s value[x]):

  • onsetAge: “Started at age 45”
  • onsetRange: “Between ages 40-50”
  • onsetPeriod: “During 2010-2015”
  • onsetString: “Adult onset” (like Bob’s mom)

FHIR adapts to how people actually talk about family history. Sometimes you know exact ages, sometimes you just know “it started when she was older.”

Why These Resources Matter for Patient Safety

Both AllergyIntolerance and FamilyMemberHistory serve critical safety functions:

AllergyIntolerance Prevents Harm

  • Alerts before prescribing medications
  • Warns about food ingredients in hospital meals
  • Prevents exposure to environmental allergens
  • Can literally save lives by preventing anaphylactic reactions

FamilyMemberHistory Guides Prevention

  • Identifies genetic risk factors
  • Influences screening recommendations
  • Helps predict disease susceptibility
  • Guides lifestyle counseling

In Bob’s case:

  • His peanut allergy means any medications, foods, or treatments must be peanut-free
  • His mother’s diabetes suggests Bob should be screened regularly for diabetes

The Clinical Decision Support Connection

Modern healthcare systems use this data for automated alerts:

🚨 ALLERGY ALERT: Patient has documented peanut allergy
⚠️  FAMILY HISTORY: Mother has diabetes - consider diabetes screening

These aren’t just data points - they’re active participants in clinical decision-making.

Common Patterns You’ll See

Multiple Allergies

Patients often have multiple allergies. Each gets its own AllergyIntolerance resource:

  • One for peanut allergy
  • Another for penicillin allergy
  • A third for shellfish allergy

Complex Family Histories

FamilyMemberHistory can capture multiple conditions per family member, or multiple family members with different conditions.

Status Changes

Allergies can be:

  • active: Currently a concern
  • inactive: No longer relevant
  • resolved: Was allergic, but not anymore (rare but possible)

Integration with the Broader FHIR Ecosystem

These resources don’t exist in isolation. They connect to:

  • Patient: Who has the allergy/family history
  • Practitioner: Who recorded the information
  • Encounter: When it was documented
  • MedicationRequest: Checked against allergies before prescribing
  • Condition: Family history influences risk assessments

What’s Next in Bob’s Journey?

Now that Dr. Alice knows about Bob’s peanut allergy and family history of diabetes, she has a complete picture for making safe treatment decisions. In our next post, we’ll explore how this information influences the diagnostic process and the sometimes blurry boundaries between different FHIR resources.

The key takeaway? AllergyIntolerance and FamilyMemberHistory aren’t just administrative data - they’re essential safety information that influences every aspect of patient care.

Want to Learn More?

Check out the official FHIR specifications:

These resources show how FHIR balances the complexity of healthcare data with the practical needs of clinical care. Simple enough for everyday use, sophisticated enough to handle the nuances of real medical information.

Comments (0)

No comments yet. Be the first to comment!