This page contains step by step exercises that are part of the 'Let's Build a FHIR specification track' at FHIR DevDays 2020 November.
These exercises teach you how to start profiling, the art of defining your FHIR data model, with Forge.
After completing this tutorial, you will be able to:
In some fictional country, the medicine regulatory authority wants to monitor the uptake and safety of COVID-19 vaccines using a FHIR interface. Healthcare providers will expose COVID-19 vaccination administration and related adverse events.
The medicine regulatory authority needs to express its required data model and use cases in FHIR. They need to publish their own FHIR specification which helps the healthcare providers to implement the interface. And this is where you come in! You are asked to author these specifications.
This page zooms in on the creation of a profile on the Immunization resource for the expression of the medicine regulatory authorities' requirements.
In this step, weāll create a profile with some high-level metadata. Start by creating a new folder on your computer for this tutorial. Open Forge and open the profile folder you just made.
Create a new profile and choose the base resource that is the best fit for vaccination administration data (the Immunization resource š). Add the high-level metadata in the 'Properties' tab within Forge. Of course, you can deviate from the proposed values to make it truly your profile.
Metadata | Value |
---|---|
URL | http://<yourname> .<yourcountrycode > /fhir/StructureDefinition/<profile name> for example: http://ardon.nl/fhir/StructureDefinition/ImmunizationProfile |
Resource ID | immunization-profile |
Name | ImmunizationProfile |
Title | Immunization Profile |
Description | Defines the medicine regulatory authority constraints and extensions on the Immunization resource for the minimal set of data to query and retrieve an individualās immunization information. |
From now on we will use the term ImmunizationProfile to refer to this profile.
Set the constraints according to the requirements of the medicine regulatory authority.
Let's upload the patient profile to Simplifier.net and check if everything works as expected.
If all went well you should see the profile in your project. You can confirm your profile constraints in the rendering as shown in the Overview tab of your profile. Selecting diff mode helps to pin down on the made changes. The below results box
Immunization | I | Immunization | There are no (further) constraints on this element Element IdImmunization Immunization event information DefinitionDescribes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
| |
identifier | 0..* | Identifier | There are no (further) constraints on this element Element IdImmunization.identifier Business identifier DefinitionA unique identifier assigned to this immunization record.
| |
status | Ī£ ?! | 1..1 | codeBinding | There are no (further) constraints on this element Element IdImmunization.status completed | entered-in-error | not-done DefinitionIndicates the current status of the immunization event. Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid. A set of codes indicating the current status of an Immunization. ImmunizationStatusCodes (required)Constraints
|
statusReason | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.statusReason Reason not done DefinitionIndicates the reason the immunization event was not performed. This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here. The reason why a vaccine was not administered. ImmunizationStatusReasonCodes (example)Constraints
| |
vaccineCode | Ī£ | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.vaccineCode Vaccine product administered DefinitionVaccine that was administered or was to be administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The code for vaccine product administered. VaccineAdministeredValueSet (example)Constraints
|
coding | Ī£ | 1..* | Coding | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding Code defined by a terminology system DefinitionA reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.
|
system | Ī£ | 1..1 | uri | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.system Identity of the terminology system DefinitionThe identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
|
version | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.version Version of the system - if relevant DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
|
code | Ī£ | 1..1 | code | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.code Symbol in syntax defined by the system DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
display | Ī£ | 1..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.display Representation defined by the system DefinitionA representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
userSelected | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.userSelected If this coding was chosen directly by the user DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
|
text | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.text Plain text representation of the concept DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings.
|
patient | Ī£ I | 1..1 | Reference(Patient) | There are no (further) constraints on this element Element IdImmunization.patient Who was immunized DefinitionThe patient who either received or did not receive the immunization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
encounter | I | 0..1 | Reference(Encounter) | There are no (further) constraints on this element Element IdImmunization.encounter Encounter immunization was part of DefinitionThe visit or admission or other contact between patient and health care provider the immunization was performed as part of. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
occurrence[x] | Ī£ | 1..1 | There are no (further) constraints on this element Element IdImmunization.occurrence[x] Vaccine administration date DefinitionDate vaccine administered or was to be administered. When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.
| |
occurrenceDateTime | dateTime | There are no (further) constraints on this element Data Type | ||
occurrenceString | string | There are no (further) constraints on this element Data Type | ||
recorded | 0..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.recorded When the immunization was first captured in the subject's record DefinitionThe date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.
| |
primarySource | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.primarySource Indicates context the data was recorded in DefinitionAn indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded. Reflects the āreliabilityā of the content.
|
reportOrigin | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reportOrigin Indicates the source of a secondarily reported record DefinitionThe source of the data when the report of the immunization event is not based on information from the person who administered the vaccine. Should not be populated if primarySource = True, not required even if primarySource = False. The source of the data for a record which is not from a primary source. ImmunizationOriginCodes (example)Constraints
| |
location | I | 0..1 | Reference(Location) | There are no (further) constraints on this element Element IdImmunization.location Where immunization occurred DefinitionThe service delivery location where the vaccine administration occurred. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
manufacturer | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.manufacturer Vaccine manufacturer DefinitionName of vaccine manufacturer. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
lotNumber | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.lotNumber Vaccine lot number DefinitionLot number of the vaccine product. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
expirationDate | 0..1 | date | There are no (further) constraints on this element Element IdImmunization.expirationDate Vaccine expiration date DefinitionDate vaccine batch expires.
| |
site | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.site Body site vaccine was administered DefinitionBody site where vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The site at which the vaccine was administered. CodesForImmunizationSiteOfAdministration (example)Constraints
| |
route | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.route How vaccine entered body DefinitionThe path by which the vaccine product is taken into the body. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The route by which the vaccine was administered. ImmunizationRouteCodes (example)Constraints
| |
doseQuantity | I | 0..1 | SimpleQuantity | There are no (further) constraints on this element Element IdImmunization.doseQuantity Amount of vaccine administered DefinitionThe quantity of vaccine product that was administered. The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.
|
performer | Ī£ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.performer Who performed event DefinitionIndicates who performed the immunization event.
|
function | Ī£ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdImmunization.performer.function What type of performance was done DefinitionDescribes the type of performance (e.g. ordering provider, administering provider, etc.). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The role a practitioner or organization plays in the immunization event. ImmunizationFunctionCodes (extensible)Constraints
|
actor | Ī£ I | 1..1 | Reference(PractitionerRole) | Element IdImmunization.performer.actor Individual or organization who was performing DefinitionThe practitioner or organization who performed the action. When the individual practitioner who performed the action is known, it is best to send.
|
note | Ī£ | 0..* | Annotation | There are no (further) constraints on this element Element IdImmunization.note Additional immunization notes DefinitionExtra information about the immunization that is not conveyed by the other attributes. For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).
|
reasonCode | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reasonCode Why immunization occurred DefinitionReasons why the vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a vaccine was administered. ImmunizationReasonCodes (example)Constraints
| |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | There are no (further) constraints on this element Element IdImmunization.reasonReference Why immunization occurred DefinitionCondition, Observation or DiagnosticReport that supports why the immunization was administered. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(Condition | Observation | DiagnosticReport) Constraints
|
isSubpotent | Ī£ ?! | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.isSubpotent Dose potency DefinitionIndication if a dose is considered to be subpotent. By default, a dose should be considered to be potent. Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.
|
subpotentReason | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.subpotentReason Reason for being subpotent DefinitionReason why a dose is considered to be subpotent. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a dose is considered to be subpotent. ImmunizationSubpotentReason (example)Constraints
| |
education | I | 0..0 | BackboneElement | There are no (further) constraints on this element Element IdImmunization.education Educational material presented to patient DefinitionEducational material presented to the patient (or guardian) at the time of vaccine administration.
|
programEligibility | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.programEligibility Patient eligibility for a vaccination program DefinitionIndicates a patient's eligibility for a funding program. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The patient's eligibility for a vaccation program. ImmunizationProgramEligibility (example)Constraints
| |
fundingSource | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.fundingSource Funding source for the vaccine DefinitionIndicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The source of funding used to purchase the vaccine administered. ImmunizationFundingSource (example)Constraints
| |
reaction | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.reaction Details of a reaction that follows immunization DefinitionCategorical data indicating that an adverse event is associated in time to an immunization. A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.
| |
date | 1..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.reaction.date When reaction started DefinitionDate of reaction to the immunization.
| |
detail | I | 1..1 | Reference(Observation) | There are no (further) constraints on this element Element IdImmunization.reaction.detail Additional information on reaction DefinitionDetails of the reaction. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
reported | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.reaction.reported Indicates self-reported reaction DefinitionSelf-reported indicator.
| |
protocolApplied | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.protocolApplied Protocol followed by the provider DefinitionThe protocol (set of recommendations) being followed by the provider who administered the dose.
| |
series | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.protocolApplied.series Name of vaccine series DefinitionOne possible path to achieve presumed immunity against a disease - within the context of an authority. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
authority | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.protocolApplied.authority Who is responsible for publishing the recommendations DefinitionIndicates the authority who published the protocol (e.g. ACIP) that is being followed. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
targetDisease | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.protocolApplied.targetDisease Vaccine preventatable disease being targetted DefinitionThe vaccine preventable disease the dose is being administered against. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The vaccine preventable disease the dose is being administered for. ImmunizationTargetDiseaseCodes (example)Constraints
| |
doseNumber[x] | 1..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.doseNumber[x] Dose number within series DefinitionNominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
doseNumberPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
doseNumberString | string | There are no (further) constraints on this element Data Type | ||
seriesDoses[x] | 0..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.seriesDoses[x] Recommended number of doses for immunity DefinitionThe recommended number of doses to achieve immunity. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
seriesDosesPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
seriesDosesString | string | There are no (further) constraints on this element Data Type |
Not all required information is present in the core Immunization resource. The following addition requirments are made.
A search in the FHIR Registry and Simplifier.net revealed that HL7 UK published an extension to capture information about the vaccination procedure in a coded way. It is named ExtensionUKCoreVaccinationProcedure. We are going to reuse that extension.
HL7 UK published the ExtensionUKCoreVaccinationProcedure in a FHIR package. That makes it even easier for us to include the extension.
Uk.Core.r4
Nice! You have downloaded all the published HL7 UK profiles and it's dependencies (in this case also the HL7 FHIR R4 core resources) to your local package cache folder. The profiling folder now contains a package.json
file with references to the package. In short, all those profiles are now ready to be used in Forge!
The Immunization resource does not contain a reference to the Medication resource. We are going to create our own extension to add this reference.
Metadata | value |
---|---|
URL | http://<yourname> .<yourcountrycode > /fhir/StructureDefinition/<profile name> |
Resource ID | extension-administeredproduct |
Name | ExtensionAdministeredProduct |
Title | Vaccination Product Administered |
Description | A reference to the Medication resouce to provide details about the product administered during a vaccination event. |
Context | Type = 'element' and Expression = 'Immunization' |
value[x]
, uncheck all data types, check the Reference datatype and expand it. Here you can provide the Medication URL ('http://hl7.org/fhir/StructureDefinition/Medication') in the Target Profiles.Let's upload the extension and the updated ImmunizationProfile to Simplifier.net and check if everything works as expected.
Likely Simplifier will complain that it cannot resolve ExtensionUKCoreVaccinationProcedure. For this, you should add a project dependency to the Uk.Core.r4
package. Go to the dependency tab, hit the green manage button, find and add the package.
Immunization | I | Immunization | There are no (further) constraints on this element Element IdImmunization Immunization event information DefinitionDescribes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
| |
extension | I | 0..* | Extension | Element IdImmunization.extension Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Constraints
|
vaccinationProcedure | I | 1..* | Extension | Element IdImmunization.extension:vaccinationProcedure Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-VaccinationProcedure Constraints
|
administeredProduct | I | 1..1 | Extension(Reference(Medication)) | Element IdImmunization.extension:administeredProduct Optional Extensions Element Alternate namesextensions, user content DefinitionOptional Extension Element - found in all resources. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(Medication)) Extension URLhttps://fhir.devdays.com/R4/StructureDefinition/Extension-AdministeredProduct Constraints
|
identifier | 0..* | Identifier | There are no (further) constraints on this element Element IdImmunization.identifier Business identifier DefinitionA unique identifier assigned to this immunization record.
| |
status | Ī£ ?! | 1..1 | codeBinding | There are no (further) constraints on this element Element IdImmunization.status completed | entered-in-error | not-done DefinitionIndicates the current status of the immunization event. Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid. A set of codes indicating the current status of an Immunization. ImmunizationStatusCodes (required)Constraints
|
statusReason | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.statusReason Reason not done DefinitionIndicates the reason the immunization event was not performed. This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here. The reason why a vaccine was not administered. ImmunizationStatusReasonCodes (example)Constraints
| |
vaccineCode | Ī£ | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.vaccineCode Vaccine product administered DefinitionVaccine that was administered or was to be administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The code for vaccine product administered. VaccineAdministeredValueSet (example)Constraints
|
coding | Ī£ | 1..* | Coding | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding Code defined by a terminology system DefinitionA reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.
|
system | Ī£ | 1..1 | uri | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.system Identity of the terminology system DefinitionThe identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
|
version | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.version Version of the system - if relevant DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
|
code | Ī£ | 1..1 | code | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.code Symbol in syntax defined by the system DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
display | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.display Representation defined by the system DefinitionA representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
userSelected | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.userSelected If this coding was chosen directly by the user DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
|
text | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.text Plain text representation of the concept DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings.
|
patient | Ī£ I | 1..1 | Reference(Patient) | There are no (further) constraints on this element Element IdImmunization.patient Who was immunized DefinitionThe patient who either received or did not receive the immunization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
encounter | I | 0..1 | Reference(Encounter) | There are no (further) constraints on this element Element IdImmunization.encounter Encounter immunization was part of DefinitionThe visit or admission or other contact between patient and health care provider the immunization was performed as part of. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
occurrence[x] | Ī£ | 1..1 | There are no (further) constraints on this element Element IdImmunization.occurrence[x] Vaccine administration date DefinitionDate vaccine administered or was to be administered. When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.
| |
occurrenceDateTime | dateTime | There are no (further) constraints on this element Data Type | ||
occurrenceString | string | There are no (further) constraints on this element Data Type | ||
recorded | 0..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.recorded When the immunization was first captured in the subject's record DefinitionThe date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.
| |
primarySource | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.primarySource Indicates context the data was recorded in DefinitionAn indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded. Reflects the āreliabilityā of the content.
|
reportOrigin | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reportOrigin Indicates the source of a secondarily reported record DefinitionThe source of the data when the report of the immunization event is not based on information from the person who administered the vaccine. Should not be populated if primarySource = True, not required even if primarySource = False. The source of the data for a record which is not from a primary source. ImmunizationOriginCodes (example)Constraints
| |
location | I | 0..1 | Reference(Location) | There are no (further) constraints on this element Element IdImmunization.location Where immunization occurred DefinitionThe service delivery location where the vaccine administration occurred. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
manufacturer | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.manufacturer Vaccine manufacturer DefinitionName of vaccine manufacturer. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
lotNumber | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.lotNumber Vaccine lot number DefinitionLot number of the vaccine product. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
expirationDate | 0..1 | date | There are no (further) constraints on this element Element IdImmunization.expirationDate Vaccine expiration date DefinitionDate vaccine batch expires.
| |
site | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.site Body site vaccine was administered DefinitionBody site where vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The site at which the vaccine was administered. CodesForImmunizationSiteOfAdministration (example)Constraints
| |
route | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.route How vaccine entered body DefinitionThe path by which the vaccine product is taken into the body. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The route by which the vaccine was administered. ImmunizationRouteCodes (example)Constraints
| |
doseQuantity | I | 0..1 | SimpleQuantity | There are no (further) constraints on this element Element IdImmunization.doseQuantity Amount of vaccine administered DefinitionThe quantity of vaccine product that was administered. The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.
|
performer | Ī£ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.performer Who performed event DefinitionIndicates who performed the immunization event.
|
function | Ī£ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdImmunization.performer.function What type of performance was done DefinitionDescribes the type of performance (e.g. ordering provider, administering provider, etc.). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The role a practitioner or organization plays in the immunization event. ImmunizationFunctionCodes (extensible)Constraints
|
actor | Ī£ I | 1..1 | Reference(PractitionerRole) | Element IdImmunization.performer.actor Individual or organization who was performing DefinitionThe practitioner or organization who performed the action. When the individual practitioner who performed the action is known, it is best to send.
|
note | Ī£ | 0..* | Annotation | There are no (further) constraints on this element Element IdImmunization.note Additional immunization notes DefinitionExtra information about the immunization that is not conveyed by the other attributes. For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).
|
reasonCode | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reasonCode Why immunization occurred DefinitionReasons why the vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a vaccine was administered. ImmunizationReasonCodes (example)Constraints
| |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | There are no (further) constraints on this element Element IdImmunization.reasonReference Why immunization occurred DefinitionCondition, Observation or DiagnosticReport that supports why the immunization was administered. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(Condition | Observation | DiagnosticReport) Constraints
|
isSubpotent | Ī£ ?! | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.isSubpotent Dose potency DefinitionIndication if a dose is considered to be subpotent. By default, a dose should be considered to be potent. Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.
|
subpotentReason | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.subpotentReason Reason for being subpotent DefinitionReason why a dose is considered to be subpotent. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a dose is considered to be subpotent. ImmunizationSubpotentReason (example)Constraints
| |
education | I | 0..0 | BackboneElement | There are no (further) constraints on this element Element IdImmunization.education Educational material presented to patient DefinitionEducational material presented to the patient (or guardian) at the time of vaccine administration.
|
programEligibility | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.programEligibility Patient eligibility for a vaccination program DefinitionIndicates a patient's eligibility for a funding program. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The patient's eligibility for a vaccation program. ImmunizationProgramEligibility (example)Constraints
| |
fundingSource | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.fundingSource Funding source for the vaccine DefinitionIndicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The source of funding used to purchase the vaccine administered. ImmunizationFundingSource (example)Constraints
| |
reaction | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.reaction Details of a reaction that follows immunization DefinitionCategorical data indicating that an adverse event is associated in time to an immunization. A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.
| |
date | 1..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.reaction.date When reaction started DefinitionDate of reaction to the immunization.
| |
detail | I | 1..1 | Reference(Observation) | There are no (further) constraints on this element Element IdImmunization.reaction.detail Additional information on reaction DefinitionDetails of the reaction. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
reported | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.reaction.reported Indicates self-reported reaction DefinitionSelf-reported indicator.
| |
protocolApplied | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.protocolApplied Protocol followed by the provider DefinitionThe protocol (set of recommendations) being followed by the provider who administered the dose.
| |
series | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.protocolApplied.series Name of vaccine series DefinitionOne possible path to achieve presumed immunity against a disease - within the context of an authority. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
authority | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.protocolApplied.authority Who is responsible for publishing the recommendations DefinitionIndicates the authority who published the protocol (e.g. ACIP) that is being followed. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
targetDisease | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.protocolApplied.targetDisease Vaccine preventatable disease being targetted DefinitionThe vaccine preventable disease the dose is being administered against. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The vaccine preventable disease the dose is being administered for. ImmunizationTargetDiseaseCodes (example)Constraints
| |
doseNumber[x] | 1..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.doseNumber[x] Dose number within series DefinitionNominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
doseNumberPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
doseNumberString | string | There are no (further) constraints on this element Data Type | ||
seriesDoses[x] | 0..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.seriesDoses[x] Recommended number of doses for immunity DefinitionThe recommended number of doses to achieve immunity. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
seriesDosesPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
seriesDosesString | string | There are no (further) constraints on this element Data Type |
Extension | I | Extension | There are no (further) constraints on this element Element IdExtension Optional Extensions Element DefinitionOptional Extension Element - found in all resources.
| |
url | 1..1 | System.StringFixed Value | Element IdExtension.url identifies the meaning of the extension DefinitionSource of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Fixed Valuehttps://fhir.devdays.com/R4/StructureDefinition/Extension-AdministeredProduct
| |
value[x] | 1..1 | There are no (further) constraints on this element Element IdExtension.value[x] Value of extension DefinitionValue of extension - must be one of a constrained set of the data types (see Extensibility for a list).
| ||
valueReference | Reference(Medication) | Data Type |
The medicine regulatory authority (MRA) can only capture specific data on the certain elements. The following requirements are specified:
route
element. Tip! The FHIR specification provides a thorough description of the meaning of the binding strenghts.The International Patient Summary has defined a ValueSet for site
named TargetSiteCodeUvIps.
You can download the ValueSet to include it in your profile folder or download it through the International Patient Summary package hl7.fhir.uv.ips
in a similar way as step 2.4.
Upload the updated ImmunizationProfile to Simplifier.net and check if everything works as expected. Remember, pressing CTRL + U pops up the publish screen. Then just select your project e voila!
Optionally, you can add a project dependency to a specific version of the hl7.fhir.uv.ips
package to let the ValueSet reference of step 3.2 resolve to a versioned version of the ValueSet.
Immunization | I | Immunization | There are no (further) constraints on this element Element IdImmunization Immunization event information DefinitionDescribes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
| |
extension | I | 0..* | Extension | Element IdImmunization.extension Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Constraints
|
vaccinationProcedure | I | 1..* | Extension | Element IdImmunization.extension:vaccinationProcedure Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-VaccinationProcedure Constraints
|
administeredProduct | I | 1..1 | Extension(Reference(Medication)) | Element IdImmunization.extension:administeredProduct Optional Extensions Element Alternate namesextensions, user content DefinitionOptional Extension Element - found in all resources. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(Medication)) Extension URLhttps://fhir.devdays.com/R4/StructureDefinition/Extension-AdministeredProduct Constraints
|
identifier | 0..* | Identifier | There are no (further) constraints on this element Element IdImmunization.identifier Business identifier DefinitionA unique identifier assigned to this immunization record.
| |
status | Ī£ ?! | 1..1 | codeBinding | There are no (further) constraints on this element Element IdImmunization.status completed | entered-in-error | not-done DefinitionIndicates the current status of the immunization event. Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid. A set of codes indicating the current status of an Immunization. ImmunizationStatusCodes (required)Constraints
|
statusReason | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.statusReason Reason not done DefinitionIndicates the reason the immunization event was not performed. This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here. The reason why a vaccine was not administered. ImmunizationStatusReasonCodes (example)Constraints
| |
vaccineCode | Ī£ | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.vaccineCode Vaccine product administered DefinitionVaccine that was administered or was to be administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The code for vaccine product administered. VaccineAdministeredValueSet (example)Constraints
|
coding | Ī£ | 1..* | Coding | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding Code defined by a terminology system DefinitionA reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true.
|
system | Ī£ | 1..1 | uri | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.system Identity of the terminology system DefinitionThe identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
|
version | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.version Version of the system - if relevant DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
|
code | Ī£ | 1..1 | code | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.code Symbol in syntax defined by the system DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
display | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.display Representation defined by the system DefinitionA representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
userSelected | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding.userSelected If this coding was chosen directly by the user DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
|
text | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.text Plain text representation of the concept DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings.
|
patient | Ī£ I | 1..1 | Reference(Patient) | There are no (further) constraints on this element Element IdImmunization.patient Who was immunized DefinitionThe patient who either received or did not receive the immunization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
encounter | I | 0..1 | Reference(Encounter) | There are no (further) constraints on this element Element IdImmunization.encounter Encounter immunization was part of DefinitionThe visit or admission or other contact between patient and health care provider the immunization was performed as part of. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
occurrence[x] | Ī£ | 1..1 | There are no (further) constraints on this element Element IdImmunization.occurrence[x] Vaccine administration date DefinitionDate vaccine administered or was to be administered. When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose.
| |
occurrenceDateTime | dateTime | There are no (further) constraints on this element Data Type | ||
occurrenceString | string | There are no (further) constraints on this element Data Type | ||
recorded | 0..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.recorded When the immunization was first captured in the subject's record DefinitionThe date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.
| |
primarySource | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.primarySource Indicates context the data was recorded in DefinitionAn indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded. Reflects the āreliabilityā of the content.
|
reportOrigin | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reportOrigin Indicates the source of a secondarily reported record DefinitionThe source of the data when the report of the immunization event is not based on information from the person who administered the vaccine. Should not be populated if primarySource = True, not required even if primarySource = False. The source of the data for a record which is not from a primary source. ImmunizationOriginCodes (example)Constraints
| |
location | I | 0..1 | Reference(Location) | There are no (further) constraints on this element Element IdImmunization.location Where immunization occurred DefinitionThe service delivery location where the vaccine administration occurred. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
manufacturer | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.manufacturer Vaccine manufacturer DefinitionName of vaccine manufacturer. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
lotNumber | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.lotNumber Vaccine lot number DefinitionLot number of the vaccine product. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
expirationDate | 0..1 | date | There are no (further) constraints on this element Element IdImmunization.expirationDate Vaccine expiration date DefinitionDate vaccine batch expires.
| |
site | 0..1 | CodeableConceptBinding | Element IdImmunization.site Body site vaccine was administered DefinitionBody site where vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The site at which the vaccine was administered. TargetSiteCodeUvIps (required)Constraints
| |
route | 1..1 | CodeableConceptBinding | Element IdImmunization.route How vaccine entered body DefinitionThe path by which the vaccine product is taken into the body. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The route by which the vaccine was administered. ImmunizationRouteCodes (required)Constraints
| |
doseQuantity | I | 0..1 | SimpleQuantity | There are no (further) constraints on this element Element IdImmunization.doseQuantity Amount of vaccine administered DefinitionThe quantity of vaccine product that was administered. The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.
|
performer | Ī£ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.performer Who performed event DefinitionIndicates who performed the immunization event.
|
function | Ī£ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdImmunization.performer.function What type of performance was done DefinitionDescribes the type of performance (e.g. ordering provider, administering provider, etc.). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The role a practitioner or organization plays in the immunization event. ImmunizationFunctionCodes (extensible)Constraints
|
actor | Ī£ I | 1..1 | Reference(PractitionerRole) | Element IdImmunization.performer.actor Individual or organization who was performing DefinitionThe practitioner or organization who performed the action. When the individual practitioner who performed the action is known, it is best to send.
|
note | Ī£ | 0..* | Annotation | There are no (further) constraints on this element Element IdImmunization.note Additional immunization notes DefinitionExtra information about the immunization that is not conveyed by the other attributes. For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).
|
reasonCode | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reasonCode Why immunization occurred DefinitionReasons why the vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a vaccine was administered. ImmunizationReasonCodes (example)Constraints
| |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | There are no (further) constraints on this element Element IdImmunization.reasonReference Why immunization occurred DefinitionCondition, Observation or DiagnosticReport that supports why the immunization was administered. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(Condition | Observation | DiagnosticReport) Constraints
|
isSubpotent | Ī£ ?! | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.isSubpotent Dose potency DefinitionIndication if a dose is considered to be subpotent. By default, a dose should be considered to be potent. Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.
|
subpotentReason | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.subpotentReason Reason for being subpotent DefinitionReason why a dose is considered to be subpotent. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a dose is considered to be subpotent. ImmunizationSubpotentReason (example)Constraints
| |
education | I | 0..0 | BackboneElement | There are no (further) constraints on this element Element IdImmunization.education Educational material presented to patient DefinitionEducational material presented to the patient (or guardian) at the time of vaccine administration.
|
programEligibility | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.programEligibility Patient eligibility for a vaccination program DefinitionIndicates a patient's eligibility for a funding program. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The patient's eligibility for a vaccation program. ImmunizationProgramEligibility (example)Constraints
| |
fundingSource | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.fundingSource Funding source for the vaccine DefinitionIndicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The source of funding used to purchase the vaccine administered. ImmunizationFundingSource (example)Constraints
| |
reaction | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.reaction Details of a reaction that follows immunization DefinitionCategorical data indicating that an adverse event is associated in time to an immunization. A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.
| |
date | 1..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.reaction.date When reaction started DefinitionDate of reaction to the immunization.
| |
detail | I | 1..1 | Reference(Observation) | There are no (further) constraints on this element Element IdImmunization.reaction.detail Additional information on reaction DefinitionDetails of the reaction. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
reported | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.reaction.reported Indicates self-reported reaction DefinitionSelf-reported indicator.
| |
protocolApplied | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.protocolApplied Protocol followed by the provider DefinitionThe protocol (set of recommendations) being followed by the provider who administered the dose.
| |
series | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.protocolApplied.series Name of vaccine series DefinitionOne possible path to achieve presumed immunity against a disease - within the context of an authority. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
authority | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.protocolApplied.authority Who is responsible for publishing the recommendations DefinitionIndicates the authority who published the protocol (e.g. ACIP) that is being followed. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
targetDisease | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.protocolApplied.targetDisease Vaccine preventatable disease being targetted DefinitionThe vaccine preventable disease the dose is being administered against. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The vaccine preventable disease the dose is being administered for. ImmunizationTargetDiseaseCodes (example)Constraints
| |
doseNumber[x] | 1..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.doseNumber[x] Dose number within series DefinitionNominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
doseNumberPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
doseNumberString | string | There are no (further) constraints on this element Data Type | ||
seriesDoses[x] | 0..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.seriesDoses[x] Recommended number of doses for immunity DefinitionThe recommended number of doses to achieve immunity. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
seriesDosesPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
seriesDosesString | string | There are no (further) constraints on this element Data Type |
The medicine regulatory authority (MRA) has additinoal requirments that require a little bit more advance profiling. The following requirements are made:
Slicing is useful when constraints need to be made that do not necessarily apply to the whole element. In this case, it would be best to slice the element first and then apply constraints to the slices individually. This allows you to define different constraints to each slice of a single element, thereby further customizing your profile.
occurrence[x]
A common form of slicing is so-called type slices. FHIR resources often contain polymorphic elements which are indicated with the [x]
at the end (i.e. Observation.value[X]
and the Immunization.occurcence[X]
).
In this step, we are going to place a comment in both the slice for DateTime and the slice for String. You could consider other constraints as well, such as indicating a maximum string length for String or a minimum date for DateTime.
occurrence[x]
element by selecting it and clicking the Slice button on top.occurrence[x]
element with Type
= 'type' and Path
= '$this'.Note: this isn't the best example of a type slice because the implementation comments we are adding could have been made clear on the occurrence[x]
element without slicing. It does however simulate how to profile an element in multiple ways.
vaccineCode
The International Patient Summary defines the following two ValueSets that we will reuse in the ImmunizationProfile: VaccinesGpsUvIps and WhoAtcUvIps. As slicing can only be done on repeating elements (or polymorphic elements), we will slice the vaccineCode.coding
because coding is 0..*.
vaccineCode.coding
. This time we are creating a slicing definition based on the binding ValueSets. In other words, the slices are discriminated by the codes inside bound ValueSets. We should let the validator logic know how it can discriminate between the slices by providing the slicing details: Type
= 'value' and Path
= '$this'. Forge does not show the $this option in the dropdown, but you can type it in. The equivalent for $this is the element you are in, this case coding
. The FHIR spec provides a lot of information on slice discriminators.vaccineCode.coding
to 1..* so at least a coded value of one of these ValueSets needs to be given.This step should be familiar by now! š Update your profile and compare it with the results here below.
Immunization | I | Immunization | There are no (further) constraints on this element Element IdImmunization Immunization event information DefinitionDescribes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party.
| |
extension | I | 0..* | Extension | Element IdImmunization.extension Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Constraints
|
vaccinationProcedure | I | 1..* | Extension | Element IdImmunization.extension:vaccinationProcedure Additional content defined by implementations Alternate namesextensions, user content DefinitionMay be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.nhs.uk/R4/StructureDefinition/Extension-UKCore-VaccinationProcedure Constraints
|
administeredProduct | I | 1..1 | Extension(Reference(Medication)) | Element IdImmunization.extension:administeredProduct Optional Extensions Element Alternate namesextensions, user content DefinitionOptional Extension Element - found in all resources. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(Medication)) Extension URLhttps://fhir.devdays.com/R4/StructureDefinition/Extension-AdministeredProduct Constraints
|
identifier | 0..* | Identifier | There are no (further) constraints on this element Element IdImmunization.identifier Business identifier DefinitionA unique identifier assigned to this immunization record.
| |
status | Ī£ ?! | 1..1 | codeBinding | There are no (further) constraints on this element Element IdImmunization.status completed | entered-in-error | not-done DefinitionIndicates the current status of the immunization event. Will generally be set to show that the immunization has been completed or not done. This element is labeled as a modifier because the status contains codes that mark the resource as not currently valid. A set of codes indicating the current status of an Immunization. ImmunizationStatusCodes (required)Constraints
|
statusReason | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.statusReason Reason not done DefinitionIndicates the reason the immunization event was not performed. This is generally only used for the status of "not-done". The reason for performing the immunization event is captured in reasonCode, not here. The reason why a vaccine was not administered. ImmunizationStatusReasonCodes (example)Constraints
| |
vaccineCode | Ī£ | 1..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.vaccineCode Vaccine product administered DefinitionVaccine that was administered or was to be administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The code for vaccine product administered. VaccineAdministeredValueSet (example)Constraints
|
coding | Ī£ | 1..* | Coding | Element IdImmunization.vaccineCode.coding Code defined by a terminology system DefinitionA reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true. Unordered, Open, by $this(Value) Constraints
|
vaccinesGpsUvIps | Ī£ | 0..* | CodingBinding | Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps Vaccines (GPS) - IPS DefinitionThis value set includes the codes from the SNOMED International Global Patient Set (GPS) subset of SNOMED CT that are included in: all descendants of 71181003 |Product containing vaccine (product)|. The concepts currently included in the value set are from the September 2019 release of the GPS, which is based on the July 2019 SNOMED CT International Edition release. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true. VaccinesGpsUvIps VaccinesGpsUvIps (required)Constraints
|
system | Ī£ | 1..1 | uri | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps.system Identity of the terminology system DefinitionThe identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
|
version | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps.version Version of the system - if relevant DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
|
code | Ī£ | 1..1 | code | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps.code Symbol in syntax defined by the system DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
display | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps.display Representation defined by the system DefinitionA representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
userSelected | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:vaccinesGpsUvIps.userSelected If this coding was chosen directly by the user DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
|
atcClass | Ī£ | 0..* | CodingBinding | Element IdImmunization.vaccineCode.coding:atcClass WHO ATC - IPS DefinitionWorld Health Organization Anatomical Therapeutic Chemical (ATC) classification system. Note: The currently implemented code system and the value set expansion contain only a set of example ATC codes, not the complete code system content. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true. WhoAtcUvIps WhoAtcUvIps (required)Constraints
|
system | Ī£ | 1..1 | uri | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:atcClass.system Identity of the terminology system DefinitionThe identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously.
|
version | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:atcClass.version Version of the system - if relevant DefinitionThe version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date.
|
code | Ī£ | 1..1 | code | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:atcClass.code Symbol in syntax defined by the system DefinitionA symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
display | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:atcClass.display Representation defined by the system DefinitionA representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size
|
userSelected | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.vaccineCode.coding:atcClass.userSelected If this coding was chosen directly by the user DefinitionIndicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely.
|
text | Ī£ | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.vaccineCode.text Plain text representation of the concept DefinitionA human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings.
|
patient | Ī£ I | 1..1 | Reference(Patient) | There are no (further) constraints on this element Element IdImmunization.patient Who was immunized DefinitionThe patient who either received or did not receive the immunization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
encounter | I | 0..1 | Reference(Encounter) | There are no (further) constraints on this element Element IdImmunization.encounter Encounter immunization was part of DefinitionThe visit or admission or other contact between patient and health care provider the immunization was performed as part of. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
occurrence[x] | Ī£ | 1..1 | Element IdImmunization.occurrence[x] Vaccine administration date DefinitionDate vaccine administered or was to be administered. When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known. A small number of vaccines (e.g. live oral typhoid vaccine) are given as a series of patient self-administered dose over a span of time. In cases like this, often, only the first dose (typically a provider supervised dose) is recorded with the occurrence indicating the date/time of the first dose. Unordered, Open, by $this(Type) Constraints
| |
occurrenceDateTime | Ī£ | 0..1 | dateTime | Element IdImmunization.occurrence[x]:occurrenceDateTime Vaccine administration date DefinitionDate vaccine administered or was to be administered. The use of the DateTime data type is required when immunizations are given by the healthcare provide as a specific date and time should then always be known.
|
occurrenceString | Ī£ | 0..1 | string | Element IdImmunization.occurrence[x]:occurrenceString Vaccine administration date DefinitionDate vaccine administered or was to be administered. The use of the String data type is only acceptable when an exact date is not known in the case of patient self-administered dose.
|
recorded | 0..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.recorded When the immunization was first captured in the subject's record DefinitionThe date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event.
| |
primarySource | Ī£ | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.primarySource Indicates context the data was recorded in DefinitionAn indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded. Reflects the āreliabilityā of the content.
|
reportOrigin | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reportOrigin Indicates the source of a secondarily reported record DefinitionThe source of the data when the report of the immunization event is not based on information from the person who administered the vaccine. Should not be populated if primarySource = True, not required even if primarySource = False. The source of the data for a record which is not from a primary source. ImmunizationOriginCodes (example)Constraints
| |
location | I | 0..1 | Reference(Location) | There are no (further) constraints on this element Element IdImmunization.location Where immunization occurred DefinitionThe service delivery location where the vaccine administration occurred. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
manufacturer | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.manufacturer Vaccine manufacturer DefinitionName of vaccine manufacturer. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
lotNumber | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.lotNumber Vaccine lot number DefinitionLot number of the vaccine product. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
expirationDate | 0..1 | date | There are no (further) constraints on this element Element IdImmunization.expirationDate Vaccine expiration date DefinitionDate vaccine batch expires.
| |
site | 0..1 | CodeableConceptBinding | Element IdImmunization.site Body site vaccine was administered DefinitionBody site where vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The site at which the vaccine was administered. TargetSiteCodeUvIps (required)Constraints
| |
route | 1..1 | CodeableConceptBinding | Element IdImmunization.route How vaccine entered body DefinitionThe path by which the vaccine product is taken into the body. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The route by which the vaccine was administered. ImmunizationRouteCodes (required)Constraints
| |
doseQuantity | I | 0..1 | SimpleQuantity | There are no (further) constraints on this element Element IdImmunization.doseQuantity Amount of vaccine administered DefinitionThe quantity of vaccine product that was administered. The context of use may frequently define what kind of quantity this is and therefore what kind of units can be used. The context of use may also restrict the values for the comparator.
|
performer | Ī£ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.performer Who performed event DefinitionIndicates who performed the immunization event.
|
function | Ī£ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdImmunization.performer.function What type of performance was done DefinitionDescribes the type of performance (e.g. ordering provider, administering provider, etc.). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The role a practitioner or organization plays in the immunization event. ImmunizationFunctionCodes (extensible)Constraints
|
actor | Ī£ I | 1..1 | Reference(PractitionerRole) | Element IdImmunization.performer.actor Individual or organization who was performing DefinitionThe practitioner or organization who performed the action. When the individual practitioner who performed the action is known, it is best to send.
|
note | Ī£ | 0..* | Annotation | There are no (further) constraints on this element Element IdImmunization.note Additional immunization notes DefinitionExtra information about the immunization that is not conveyed by the other attributes. For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible).
|
reasonCode | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.reasonCode Why immunization occurred DefinitionReasons why the vaccine was administered. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a vaccine was administered. ImmunizationReasonCodes (example)Constraints
| |
reasonReference | I | 0..* | Reference(Condition | Observation | DiagnosticReport) | There are no (further) constraints on this element Element IdImmunization.reasonReference Why immunization occurred DefinitionCondition, Observation or DiagnosticReport that supports why the immunization was administered. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(Condition | Observation | DiagnosticReport) Constraints
|
isSubpotent | Ī£ ?! | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.isSubpotent Dose potency DefinitionIndication if a dose is considered to be subpotent. By default, a dose should be considered to be potent. Typically, the recognition of the dose being sub-potent is retrospective, after the administration (ex. notification of a manufacturer recall after administration). However, in the case of a partial administration (the patient moves unexpectedly and only some of the dose is actually administered), subpotency may be recognized immediately, but it is still important to record the event.
|
subpotentReason | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.subpotentReason Reason for being subpotent DefinitionReason why a dose is considered to be subpotent. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The reason why a dose is considered to be subpotent. ImmunizationSubpotentReason (example)Constraints
| |
education | I | 0..0 | BackboneElement | There are no (further) constraints on this element Element IdImmunization.education Educational material presented to patient DefinitionEducational material presented to the patient (or guardian) at the time of vaccine administration.
|
programEligibility | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.programEligibility Patient eligibility for a vaccination program DefinitionIndicates a patient's eligibility for a funding program. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The patient's eligibility for a vaccation program. ImmunizationProgramEligibility (example)Constraints
| |
fundingSource | 0..1 | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.fundingSource Funding source for the vaccine DefinitionIndicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The source of funding used to purchase the vaccine administered. ImmunizationFundingSource (example)Constraints
| |
reaction | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.reaction Details of a reaction that follows immunization DefinitionCategorical data indicating that an adverse event is associated in time to an immunization. A reaction may be an indication of an allergy or intolerance and, if this is determined to be the case, it should be recorded as a new AllergyIntolerance resource instance as most systems will not query against past Immunization.reaction elements.
| |
date | 1..1 | dateTime | There are no (further) constraints on this element Element IdImmunization.reaction.date When reaction started DefinitionDate of reaction to the immunization.
| |
detail | I | 1..1 | Reference(Observation) | There are no (further) constraints on this element Element IdImmunization.reaction.detail Additional information on reaction DefinitionDetails of the reaction. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
reported | 0..1 | boolean | There are no (further) constraints on this element Element IdImmunization.reaction.reported Indicates self-reported reaction DefinitionSelf-reported indicator.
| |
protocolApplied | 0..* | BackboneElement | There are no (further) constraints on this element Element IdImmunization.protocolApplied Protocol followed by the provider DefinitionThe protocol (set of recommendations) being followed by the provider who administered the dose.
| |
series | 0..1 | string | There are no (further) constraints on this element Element IdImmunization.protocolApplied.series Name of vaccine series DefinitionOne possible path to achieve presumed immunity against a disease - within the context of an authority. Note that FHIR strings SHALL NOT exceed 1MB in size
| |
authority | I | 0..1 | Reference(Organization) | There are no (further) constraints on this element Element IdImmunization.protocolApplied.authority Who is responsible for publishing the recommendations DefinitionIndicates the authority who published the protocol (e.g. ACIP) that is being followed. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository.
|
targetDisease | 0..* | CodeableConcept | There are no (further) constraints on this element Element IdImmunization.protocolApplied.targetDisease Vaccine preventatable disease being targetted DefinitionThe vaccine preventable disease the dose is being administered against. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The vaccine preventable disease the dose is being administered for. ImmunizationTargetDiseaseCodes (example)Constraints
| |
doseNumber[x] | 1..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.doseNumber[x] Dose number within series DefinitionNominal position in a series. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
doseNumberPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
doseNumberString | string | There are no (further) constraints on this element Data Type | ||
seriesDoses[x] | 0..1 | There are no (further) constraints on this element Element IdImmunization.protocolApplied.seriesDoses[x] Recommended number of doses for immunity DefinitionThe recommended number of doses to achieve immunity. The use of an integer is preferred if known. A string should only be used in cases where an integer is not available (such as when documenting a recurring booster dose).
| ||
seriesDosesPositiveInt | positiveInt | There are no (further) constraints on this element Data Type | ||
seriesDosesString | string | There are no (further) constraints on this element Data Type |
In the current design, the medicine regulatory authority (MRA) retrieves the vaccination information from the healthcare provider's system. The MRA wants to search administered vaccinations resources based on the detailed information of the administered product. Additionally, this allows to include the administered product in the search results without the need to perform an additional read request.
We created an extension named 'ExtensionAdministeredProduct' in step 2.2. The FHIR specification defines SearchParameter resources for elements that are included in common use cases. These search parameters are listed at the bottom of every resource page. Here is the list of SearchParameters for Immunization.
Because we added an extension, there is no SearchParameter available in the FHIR core specification. That's not a problem as we can create it ourselves with Forge! Almost all FHIR reference servers can incorporate SearchParameters, some even on the fly.
Metadata | Value |
---|---|
URL | http://<yourname> .<yourcountrycode > /fhir/SearchParameter/<searchparameter name> |
Resource ID | searchparameter-administeredproduct |
Name | SearchParameterAdministeredProduct |
Description | To search (and _include) Medication resources that are referenced from the AdministeredProduct extension in Immunization. |
Continue with the required information in the SearchParameter tab.
Code
. This code is used in the API Search URLs and should not overlap one of the existing SearchParamater codes for Immunization.Base
to indicate the base resources this parameter applies.Type
.Expression
. The SearchParameter needs precisely states what to search on. Provide the following FHIRPath expression to search on the previously created extension: Immunization.extension('[extension URL]')
That's it! You have created your own SearchParameter to extend the core FHIR API. You can test if it works by creating instances of the FHIR profiles, import all the conformance resources and play around with a HTTP tool such as Postman. This is however out of scope for this exercise. There is only one step left!
This is the last step! Well done. Compare your results with the SearchParameter here below.
{ "resourceType": "SearchParameter", "id": "searchparameter-administeredproduct", "meta": { "lastUpdated": "2020-11-15T20:48:14.822+00:00" }, "url": "https://fhir.devdays.com/R4/SearchParameter/AdministeredProduct", "name": "SearchParameterAdministeredProduct", "status": "draft", "date": "2020-11-15T20:48:14.6108237+00:00", "description": "To search (and _include) Medication resources that are referenced from the AdministeredProduct extension in Immunization.", "purpose": "To allow to search on Medication resource, referenced from a Immunization.extension.administeredProduct extension. Main purpose is to use this search parameter for including related Medication resources in the result for a search on Immunization.", "code": "administered-product", "base": [ "Immunization" ], "type": "reference", "expression": "Immunization.extension('https://fhir.devdays.com/R4/StructureDefinition/Extension-AdministeredProduct')" }
Powered by SIMPLIFIER.NET