Finnish Base Profiles
2.0.0-rc2 - ballot
Finnish Base Profiles, published by HL7 Finland. This guide is not an authorized publication; it is the continuous build for version 2.0.0-rc2 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/fhir-fi/finnish-base-profiles/ and changes regularly. See the Directory of published versions
Official URL: https://hl7.fi/fhir/finnish-base-profiles/StructureDefinition/fi-base-medication | Version: 2.0.0-rc2 | |||
Draft as of 2025-08-04 | Computable Name: FiBaseMedication |
This is the Finnish base profile for the Medication resource for other than patient access use cases.
The FI Base Medication profile requires that references from the Medication resource to other resources are to resources that also conform to the Finnish Base Profiles.
This profile can be used to ensure greater compatibility, but it should not be expected that all Medications within the Finnish healthcare IT ecosystem conform to this profile.
This implementation guide does present examples of the Medication resource being used in Finnish context.
For patient access use cases, please see the FI SMART Medication profile of the Finnish SMART implementation guide.
See also the Medication Codes section on the terminology page of this guide, and the Medications Module of the main FHIR specification.
For all medication related resources (Medication, MedicationAdministration, MedicationRequest, MedicationStatement), please also see the Prescription project and the related implementation guide of the Kanta system. That project contains useful definitions, examples, and sequence descriptions (mostly in Finnish).
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Medication | Definition of a Medication | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
?!Σ | 0..1 | code | active | inactive | entered-in-error Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use. |
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item |
![]() |
Path | Conformance | ValueSet | URI |
Medication.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-status|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Medication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Medication | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Medication | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Medication
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
Medication | |||
![]() ![]() ![]() |
0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept, Reference(Substance | Medication) | The actual ingredient or content Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() ![]() ![]() |
0..1 | Reference(Substance | FI Base Medication(2.0.0-rc2)) | The actual ingredient or content | |
![]() |
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Medication | Definition of a Medication | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Business identifier for this medication | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Codes that identify this medication Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication. | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | active | inactive | entered-in-error Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | powder | tablets | capsule + Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Ratio | Amount of drug in package | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Active or inactive ingredient | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | The actual ingredient or content Slice: Unordered, Open by type:$this | ||||||
![]() ![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() ![]() |
Reference(Substance | Medication) | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Reference(Substance | FI Base Medication(2.0.0-rc2)) | The actual ingredient or content | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Active ingredient indicator | |||||
![]() ![]() ![]() ![]() |
0..1 | Ratio | Quantity of ingredient present | |||||
![]() ![]() ![]() |
0..1 | BackboneElement | Details about packaged medications | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Identifier assigned to batch | |||||
![]() ![]() ![]() ![]() |
0..1 | dateTime | When batch will expire | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Medication.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
Medication.code | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard | ||||
Medication.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-status|4.0.1 From the FHIR Standard | ||||
Medication.form | example | SNOMEDCTFormCodeshttp://hl7.org/fhir/ValueSet/medication-form-codes From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Medication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Medication | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Medication | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Medication
Summary
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Key Elements View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Medication | Definition of a Medication | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
?!Σ | 0..1 | code | active | inactive | entered-in-error Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use. |
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item |
![]() |
Path | Conformance | ValueSet | URI |
Medication.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-status|4.0.1 From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Medication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Medication | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Medication | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Differential View
This structure is derived from Medication
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
---|---|---|---|---|
![]() ![]() |
Medication | |||
![]() ![]() ![]() |
0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item | |
![]() ![]() ![]() |
||||
![]() ![]() ![]() ![]() |
1..1 | CodeableConcept, Reference(Substance | Medication) | The actual ingredient or content Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() ![]() ![]() |
0..1 | Reference(Substance | FI Base Medication(2.0.0-rc2)) | The actual ingredient or content | |
![]() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Medication | Definition of a Medication | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
Σ | 0..* | Identifier | Business identifier for this medication | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Codes that identify this medication Binding: SNOMEDCTMedicationCodes (example): A coded concept that defines the type of a medication. | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | active | inactive | entered-in-error Binding: Medication Status Codes (required): A coded concept defining if the medication is in active use. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Organization(2.0.0-rc2)) | Manufacturer of the item | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | powder | tablets | capsule + Binding: SNOMEDCTFormCodes (example): A coded concept defining the form of a medication. | |||||
![]() ![]() ![]() |
Σ | 0..1 | Ratio | Amount of drug in package | ||||
![]() ![]() ![]() |
0..* | BackboneElement | Active or inactive ingredient | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
1..1 | The actual ingredient or content Slice: Unordered, Open by type:$this | ||||||
![]() ![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() ![]() |
Reference(Substance | Medication) | |||||||
![]() ![]() ![]() ![]() ![]() |
0..1 | Reference(Substance | FI Base Medication(2.0.0-rc2)) | The actual ingredient or content | |||||
![]() ![]() ![]() ![]() |
0..1 | boolean | Active ingredient indicator | |||||
![]() ![]() ![]() ![]() |
0..1 | Ratio | Quantity of ingredient present | |||||
![]() ![]() ![]() |
0..1 | BackboneElement | Details about packaged medications | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Identifier assigned to batch | |||||
![]() ![]() ![]() ![]() |
0..1 | dateTime | When batch will expire | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Medication.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
Medication.code | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard | ||||
Medication.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-status|4.0.1 From the FHIR Standard | ||||
Medication.form | example | SNOMEDCTFormCodeshttp://hl7.org/fhir/ValueSet/medication-form-codes From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Medication | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Medication | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() | |
dom-5 | error | Medication | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Medication | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Medication
Summary
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron