MyHealth AllergyIntolerance
This document describes how the KJ AllergyIntolerance source format appears in the MyHealth response.
The response includes the AllergyIntoleranceMyHealthEuEps FHIR
profile which is a profile of AllergyIntolerance, not a separate resource type or logical-model JSON format.
For requests and document structure, see MyHealth summary from Patient/$everything.
Included information
Both AllergyIntolerance DrugReaction (Legemiddelreaksjon) and OtherAllergen (Annen Allergi) documents are supported.
Profile
| Resource | Profile canonical | Profile version |
|---|---|---|
| AllergyIntolerance | http://fhir.ehdsi.eu/eps/StructureDefinition/allergyIntolerance-eps-myhealtheu (AllergyIntoleranceMyHealthEuEps) |
1.0.0-poc |
Reading the allergy information
To find the allergies, locate the Composition section with LOINC code 48765-2 and follow its entry.reference values. Match each reference
to a Bundle.entry.fullUrl. The Composition's subject and every allergy's patient reference identify the same patient in the document.
The service adds the section's LOINC code when assembling the document; source allergy data uses other coding systems.
An Allergies section without entry references means that this service has no allergy records for the patient. The section
contains No clinical data found and has emptyReason=unavailable. The response still contains a complete document with Composition,
Patient, and the service-author Device.
Bundle.timestamp and Composition.date are separate from the dates recorded on each allergy. Use an allergy's id and meta.versionId to identify
the recorded allergy and its version; a new document identifier does not indicate that the allergy has changed.
Clinical authorship is recorded separately on each allergy, as described below. The document status is separate from each allergy's clinical and verification statuses.
Mapping notes
The MyHealth representation keeps the recorded allergy information, with the differences described below. Optional information is returned when it was recorded. Source text is returned in its original language without translation. The generated excipient explanation below is in English.
Clinical author and date
For the first version of an allergy, recorder identifies the original recorder and recordedDate gives the registration date. For later
versions, recorder identifies the professional who made the update and meta.lastUpdated gives the update time. recordedDate continues
to show the original registration date.
Follow the recorder reference to the included PractitionerRole and its Practitioner and Organization resources for available names,
identifiers, and professional roles. These clinical authors are separate from the service identified by Composition.author.
AllergyIntolerance.asserter and note author[x] are not returned.
Estimated onset year
When onset was registered as an age, the API estimates the onset year from the available birth year and completed whole years of age.
For example, birth year 1960 and age 50 or 50.75 both produce onsetDateTime: "2010". This is a year, not an exact calendar date.
If either the birth year or a numeric onset age is unavailable, onset is omitted. An already recorded allergy onset date keeps its original precision,
such as 2020, 2020-05, or a full date-time.
Differences from the default representation
- KJ-specific extensions are omitted. Clinical authorship and excipient reactions are provided as described on this page.
- The KJ distinction between probable and suspected allergies is not included. Both are returned as
verificationStatus=unconfirmed. - The KJ source-of-information category is not included.
- The KJ updater and update-time extensions are not returned. Use
recorder,recordedDate, andmeta.lastUpdatedas described above. - No resolution date is supplied. Inactive or refuted status alone does not establish when an allergy ended.
- Missing optional information, such as type or onset, remains absent. Source notes are preserved; only a recorded excipient reaction generates an additional note.
Excipient reactions
When an excipient reaction is recorded, a separate English AllergyIntolerance.note explains its meaning:
The reaction is recorded as an excipient reaction (a reaction to an inactive ingredient in the medicine).
Read this note alongside the medicine coding and other clinical notes. It does not identify a specific excipient or establish an allergy to the medicine's active ingredient.
Terminology and selection
An allergen or reaction can have several codings in the same CodeableConcept. Read these together as descriptions of one concept, rather
than treating each coding as a separate allergy or reaction. Identify a code by both its system and code.
For allergens, the clinician-selected coding is marked userSelected=true. Supplementary ATC codes and the UNC indicator described below
have userSelected=false. Do not rely on the order of codings to identify the clinician's selection.
An ATC code may be supplied alongside a FEST medicine or active-substance code when a related ATC code is available. ATC codings use
http://www.whocc.no/atc in this representation. The original FEST code and recorded text are retained. If no ATC code is available, the
allergy is still returned with its original information.
National codes and UNC
The MyHealth profiles require particular terminology sets. If an allergen or reaction has no available coding in the required set, the
response adds UNC from http://terminology.hl7.org/CodeSystem/v3-NullFlavor alongside the original coding. UNC means that the known
information has not been encoded in that terminology. It does not mean that the allergy or reaction is unknown or absent.
Keep the original code and recorded text when interpreting such a concept. For example, this fragment still identifies the recorded Ibuprofen
allergy; the additional UNC describes its terminology mapping:
{
"coding": [
{
"system": "http://nhn.no/kj/fhir/CodeSystem/ActiveSubstance",
"code": "ID_ECA56300-5E51-4152-913D-A2EA6E83AD72",
"display": "Ibuprofen",
"userSelected": true
},
{
"system": "http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
"code": "UNC",
"userSelected": false
}
],
"text": "Recorded Ibuprofen text"
}
The same approach applies separately to each reaction manifestation. Reaction codes are not converted to ATC. National codes and recorded text are retained; this version does not provide translation to English or automatic replacement with SNOMED CT or EMA SMS codes.
Examples of returned allergy information
The KjAllergyIntolerance examples show the corresponding source records. The age-based examples below
assume an available birth year of 1960. Supplementary ATC codes depend on the available terminology relations.
| Source example | Information in the MyHealth response |
|---|---|
ATC J01CA |
The same ATC code, using the standard ATC system, and the recorded onset date-time. |
| Apocillin medicine | The original FEST code, supplementary ATC J01CE02 when available, and an English note explaining the recorded excipient reaction. |
| Apocillin excipient reaction | The original medicine code, supplementary ATC when available, and the separate English excipient note above. |
| Ibuprofen, onset age 50 | The original active-substance code, UNC when needed, and onset year 2010. |
| Fish, onset age 2 | The original allergen code, UNC when needed, and onset year 1962. |
| Celeriac/parsnip, version 2 | The original allergen code, UNC when needed, and the professional responsible for the update. |
Detailed field mappings
The table below shows how fields in the KJ AllergyIntolerance source format appear in the MyHealth response.
Paths are relative to the source or returned AllergyIntolerance, except for the explicitly qualified Bundle.entry path. [*] denotes
individual array items.
KJ-specific extensions are omitted from the MyHealth response.
The source supplies no reaction-level reaction[*].onset or reaction[*].severity information. The onset mappings below apply to the
allergy-level onsetDateTime and onsetAge fields.
| Source FHIR path | MyHealth target FHIR path | Response behavior |
|---|---|---|
patient |
patient.reference |
References the authorized patient's Patient entry in this document. See Reading the document. |
id, meta.versionId, meta.lastUpdated |
Same fields | Original values are retained to identify the source record and its version. |
meta.profile[*] |
meta.profile[*] |
Contains http://fhir.ehdsi.eu/eps/StructureDefinition/allergyIntolerance-eps-myhealtheu in place of the source profile declarations. |
identifier[*] |
identifier[*] |
Recorded business identifiers are returned. If none were recorded, the field is absent; no identifier is derived from the resource ID, version, or document identity. |
| Source language and retained text | language |
Always no-NO. Retained source text is not translated or classified as Bokmål/Nynorsk. The generated excipient note is in English. |
text |
Omitted | The source resource's narrative is not included. |
clinicalStatus |
clinicalStatus |
The recorded active or inactive code is returned for included records. In KJ, inactive can identify a duplicate registration and does not establish clinical resolution. |
verificationStatus |
verificationStatus |
The recorded confirmed, unconfirmed, or refuted value is returned. Probable and suspected both remain unconfirmed. See Differences from the default representation. |
code.coding[*], code.text |
code.coding[*], code.text |
Original codes, displays, and text are retained, with ATC system normalization, selection flags, and supplementary codings as described in Terminology and selection. |
criticality |
criticality |
The recorded low, high, or unable-to-assess value is retained. |
onsetDateTime |
onsetDateTime |
The recorded date and its precision are retained, including when the birth year is unavailable. |
onsetAge |
onsetDateTime, or omitted onset |
Returns the estimated year: birth year plus completed whole years of age. Onset is omitted if the birth year or numeric age is unavailable. The original age is not returned separately and no conversion note is added. See Estimated onset year. |
recordedDate |
recordedDate |
Retains the original registration date, independently of update or document-generation time. |
recorder for version 1; KjUpdater for later versions |
recorder.reference |
References the included PractitionerRole for the original recorder in version 1, or the updater in later versions. See Clinical author and date. |
contained[*] |
Bundle.entry[*].resource |
The selected clinical author's PractitionerRole, Practitioner, and Organization appear as separate document entries with references between them. The returned allergy has no contained resources; unused source resources are omitted. |
asserter |
Omitted | No separate asserter is returned. Clinical authorship is provided through recorder; see Clinical author and date. |
note[*], reaction[*].note[*] |
Same paths | Notes remain separate and retain their text and supplied time. Note author[x] values are omitted. |
reaction[*].manifestation[*] |
Same paths | Reaction grouping and original codings, displays, and text are retained. UNC may be added as described in National codes and UNC. ATC supplementation applies only to the allergen coding. |
type |
type |
The recorded allergy or intolerance value is returned. If no type was recorded, the field is absent; no default is supplied. |
category |
category |
The recorded category is retained. |
KjInactiveIngredient |
note[*].text |
Source valueBoolean=true appends the English excipient note after existing allergy notes, without an author or timestamp. False, an absent extension, or an extension without a boolean value produces no additional note. |
| No source resolution date | No abatement generated | The source does not contain a resolution date. No abatement extension is generated from inactive/refuted status or record-update timestamps. |
Response examples
The examples use synthetic patient, resource, professional, and organisation identifiers. They illustrate the response structure; document identifiers and generation times vary between requests.
For a complete document with an eligible allergy, see the Patient Everything example.
Successful document with no returned allergy records
This example shows a patient with no allergy records. The response is HTTP 200 and a complete preliminary document. Composition and Patient are present, and the four unsupported sections retain their coverage messages.
{
"resourceType": "Bundle",
"meta": {
"profile": [
"http://fhir.ehdsi.eu/eps/StructureDefinition/bundle-eps-myhealtheu"
]
},
"identifier": {
"system": "urn:ietf:rfc:3986",
"value": "urn:uuid:b0000000-0000-4000-a000-000000000001"
},
"type": "document",
"timestamp": "2026-11-05T12:00:00.123Z",
"entry": [
{
"fullUrl": "urn:uuid:b0000000-0000-4000-a000-000000000002",
"resource": {
"resourceType": "Composition",
"id": "b0000000-0000-4000-a000-000000000002",
"meta": {
"profile": [
"http://fhir.ehdsi.eu/eps/StructureDefinition/composition-eps-myhealtheu"
]
},
"language": "no-NO",
"identifier": {
"system": "urn:ietf:rfc:3986",
"value": "urn:uuid:b0000000-0000-4000-a000-000000000003"
},
"status": "preliminary",
"type": {
"coding": [
{
"system": "http://loinc.org",
"code": "60591-5"
}
]
},
"subject": {
"reference": "urn:uuid:b0000000-0000-4000-a000-000000000004"
},
"date": "2026-11-05T12:00:00.123Z",
"author": [
{
"reference": "urn:uuid:b0000000-0000-4000-a000-000000000005"
}
],
"title": "Pasientoppsummering – allergier og intoleranser",
"section": [
{
"title": "Allergies",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "48765-2"
}
]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">No clinical data found</div>"
},
"emptyReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/list-empty-reason",
"code": "unavailable"
}
]
}
},
{
"title": "Problems",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "11450-4"
}
]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Information not supplied in this version</div>"
},
"emptyReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/list-empty-reason",
"code": "notasked"
}
]
}
},
{
"title": "Medications",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "10160-0"
}
]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Information not supplied in this version</div>"
},
"emptyReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/list-empty-reason",
"code": "notasked"
}
]
}
},
{
"title": "History of Procedures",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "47519-4"
}
]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Information not supplied in this version</div>"
},
"emptyReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/list-empty-reason",
"code": "notasked"
}
]
}
},
{
"title": "Medical Devices",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "46264-8"
}
]
},
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Information not supplied in this version</div>"
},
"emptyReason": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/list-empty-reason",
"code": "notasked"
}
]
}
}
]
}
},
{
"fullUrl": "urn:uuid:b0000000-0000-4000-a000-000000000004",
"resource": {
"resourceType": "Patient",
"id": "b0000000-0000-4000-a000-000000000004",
"meta": {
"profile": [
"http://fhir.ehdsi.eu/eps/StructureDefinition/patient-myhealtheu-eps"
]
},
"identifier": [
{
"system": "urn:oid:2.16.578.1.12.4.1.4.1",
"value": "00000000000"
}
],
"name": [
{
"_text": {
"extension": [
{
"url": "http://hl7.org/fhir/StructureDefinition/data-absent-reason",
"valueCode": "unknown"
}
]
}
}
],
"birthDate": "1960"
}
},
{
"fullUrl": "urn:uuid:b0000000-0000-4000-a000-000000000005",
"resource": {
"resourceType": "Device",
"id": "b0000000-0000-4000-a000-000000000005",
"deviceName": [
{
"name": "critical-information",
"type": "user-friendly-name"
}
]
}
}
]
}
Resource type allergy intolerance - drug reaction example
AllergyIntolerance entry from the Patient Everything example.
The patient and recorder references resolve within that complete document.
{
"fullUrl": "urn:uuid:a0000000-0000-4000-a000-000000000006",
"resource": {
"resourceType": "AllergyIntolerance",
"id": "a0000000-0000-4000-a000-000000000006",
"meta": {
"versionId": "1",
"lastUpdated": "2021-04-06T15:19:01.355+02:00",
"profile": [
"http://fhir.ehdsi.eu/eps/StructureDefinition/allergyIntolerance-eps-myhealtheu"
]
},
"clinicalStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
"code": "active",
"display": "Active"
}
]
},
"verificationStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
"code": "unconfirmed",
"display": "Unconfirmed"
}
]
},
"category": [
"medication"
],
"criticality": "high",
"code": {
"coding": [
{
"system": "http://nhn.no/kj/fhir/CodeSystem/DrugTradeName",
"code": "ID_D31A34B4-705F-44D6-8232-92A89CA921B1",
"display": "Apocillin Tab 660 mg",
"userSelected": true
},
{
"system": "http://www.whocc.no/atc",
"code": "J01CE02",
"userSelected": false
}
]
},
"patient": {
"reference": "urn:uuid:a0000000-0000-4000-a000-000000000004"
},
"onsetDateTime": "2021-04-01T00:00:00+02:00",
"recordedDate": "2021-04-06T15:19:01+02:00",
"recorder": {
"reference": "urn:uuid:a0000000-0000-4000-a000-000000000007"
},
"note": [
{
"text": "Fikk eksematøse reaksjoner som ble behandlet med lokale glukokortikoider pluss antihistaminer for behandling av urtikarielle reaksjoner."
},
{
"text": "The reaction is recorded as an excipient reaction (a reaction to an inactive ingredient in the medicine)."
}
],
"reaction": [
{
"manifestation": [
{
"coding": [
{
"system": "http://nhn.no/kj/fhir/CodeSystem/TypeOfReaction",
"code": "10",
"display": "Alvorlig hudreaksjon",
"userSelected": true
},
{
"system": "http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
"code": "UNC",
"userSelected": false
}
]
}
]
}
],
"language": "no-NO"
}
}
Resource type allergy intolerance - other allergen example
Example with code 15 - Annet, coding system 7514.
{
"fullUrl": "urn:uuid:bcf4a14f-05b3-3755-8ffb-24ccfa540b0e",
"resource": {
"resourceType": "AllergyIntolerance",
"id": "88f876a4-5cb7-4231-a2fa-77469c097f67",
"meta": {
"versionId": "1",
"lastUpdated": "2026-11-06T13:50:53.724+00:00",
"profile": [
"http://fhir.ehdsi.eu/eps/StructureDefinition/allergyIntolerance-eps-myhealtheu"
]
},
"language": "no-NO",
"clinicalStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-clinical",
"code": "active",
"display": "Active"
}
]
},
"verificationStatus": {
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/allergyintolerance-verification",
"code": "confirmed",
"display": "Confirmed"
}
]
},
"type": "allergy",
"category": [
"environment"
],
"criticality": "low",
"code": {
"coding": [
{
"system": "http://nhn.no/kj/fhir/CodeSystem/OtherAllergen",
"code": "15",
"userSelected": true
},
{
"system": "http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
"code": "UNC",
"userSelected": false
}
],
"text": "Akvagen urtikaria"
},
"patient": {
"reference": "urn:uuid:4c2a8231-94ad-4605-b048-73deae9bed08"
},
"onsetDateTime": "2024-02-10",
"recordedDate": "2026-11-06T13:50:53+00:00",
"recorder": {
"reference": "urn:uuid:51cd0aa5-4751-382e-acbf-bf406bb7aec6"
},
"note": [
{
"text": "Får kløende elveblest, rødhet og svie på huden i løpet av få minutter etter kontakt med vann."
}
],
"reaction": [
{
"manifestation": [
{
"coding": [
{
"system": "http://nhn.no/kj/fhir/CodeSystem/TypeOfReaction",
"code": "10",
"display": "Hudreaksjon INA"
},
{
"system": "http://terminology.hl7.org/CodeSystem/v3-NullFlavor",
"code": "UNC",
"userSelected": false
}
]
}
]
}
]
}
}