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-statement | Version: 2.0.0-rc2 | |||
Draft as of 2025-08-04 | Computable Name: FiBaseMedicationStatement |
This is the Finnish base profile for the MedicationStatement resource.
The FI Base MedicationStatement profile requires that references from the MedicationStatement 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 MedicationStatements within the Finnish healthcare IT ecosystem conform to this profile.
This implementation guide does present examples of the MedicationStatement resource being used in Finnish context.
For patient access use cases, please see the FI SMART MedicationStatement 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..* | MedicationStatement | Record of medication being taken by a patient | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationRequest(2.0.0-rc2) | CarePlan | ServiceRequest) | Fulfils plan, proposal or order |
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationAdministration(2.0.0-rc2) | MedicationDispense | FI Base MedicationStatement(2.0.0-rc2) | Fi Base Procedure(2.0.0-rc2) | FI Base Observation(2.0.0-rc2)) | Part of referenced event |
![]() ![]() ![]() |
?!Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. |
![]() ![]() ![]() |
Σ | 1..1 | What medication was taken Slice: Unordered, Open by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. | |
![]() ![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() ![]() |
Reference(Medication) | |||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Medication(2.0.0-rc2)) | What medication was taken |
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Patient(2.0.0-rc2)) | Who is/was taking the medication |
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Encounter(2.0.0-rc2) | FI Base EpisodeOfCare(2.0.0-rc2)) | Encounter / Episode associated with MedicationStatement |
![]() ![]() ![]() |
0..1 | Reference(FI Base Patient(2.0.0-rc2) | FI Base Practitioner(2.0.0-rc2) | FI Base PractitionerRole(2.0.0-rc2) | FI Base Organization(2.0.0-rc2) | RelatedPerson) | Person or organization that provided the information about the taking of this medication | |
![]() ![]() ![]() |
0..* | Reference(FI Base Condition(2.0.0-rc2) | FI Base Observation(2.0.0-rc2) | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |
![]() |
Path | Conformance | ValueSet | URI |
MedicationStatement.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1 From the FHIR Standard | |
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | MedicationStatement | 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 MedicationStatement
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||
![]() ![]() ![]() |
Σ | 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 | External identifier | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationRequest(2.0.0-rc2) | CarePlan | ServiceRequest) | Fulfils plan, proposal or order | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationAdministration(2.0.0-rc2) | MedicationDispense | FI Base MedicationStatement(2.0.0-rc2) | Fi Base Procedure(2.0.0-rc2) | FI Base Observation(2.0.0-rc2)) | Part of referenced event | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement. | |||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered. | ||||
![]() ![]() ![]() |
Σ | 1..1 | What medication was taken Slice: Unordered, Open by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. | |||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Reference(Medication) | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Medication(2.0.0-rc2)) | What medication was taken | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Patient(2.0.0-rc2)) | Who is/was taking the medication | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Encounter(2.0.0-rc2) | FI Base EpisodeOfCare(2.0.0-rc2)) | Encounter / Episode associated with MedicationStatement | ||||
![]() ![]() ![]() |
Σ | 0..1 | The date/time or interval when the medication is/was/will be taken | |||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | When the statement was asserted? | ||||
![]() ![]() ![]() |
0..1 | Reference(FI Base Patient(2.0.0-rc2) | FI Base Practitioner(2.0.0-rc2) | FI Base PractitionerRole(2.0.0-rc2) | FI Base Organization(2.0.0-rc2) | RelatedPerson) | Person or organization that provided the information about the taking of this medication | |||||
![]() ![]() ![]() |
0..* | Reference(Resource) | Additional supporting information | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken. | |||||
![]() ![]() ![]() |
0..* | Reference(FI Base Condition(2.0.0-rc2) | FI Base Observation(2.0.0-rc2) | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |||||
![]() ![]() ![]() |
0..* | Annotation | Further information about the statement | |||||
![]() ![]() ![]() |
0..* | Dosage | Details of how medication is/was taken or should be taken | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
MedicationStatement.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
MedicationStatement.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1 From the FHIR Standard | ||||
MedicationStatement.statusReason | example | SNOMEDCTDrugTherapyStatusCodeshttp://hl7.org/fhir/ValueSet/reason-medication-status-codes From the FHIR Standard | ||||
MedicationStatement.category | preferred | Medication usage category codeshttp://hl7.org/fhir/ValueSet/medication-statement-category From the FHIR Standard | ||||
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard | ||||
MedicationStatement.reasonCode | example | Condition/Problem/DiagnosisCodeshttp://hl7.org/fhir/ValueSet/condition-code From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | MedicationStatement | 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 MedicationStatement
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..* | MedicationStatement | Record of medication being taken by a patient | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationRequest(2.0.0-rc2) | CarePlan | ServiceRequest) | Fulfils plan, proposal or order |
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationAdministration(2.0.0-rc2) | MedicationDispense | FI Base MedicationStatement(2.0.0-rc2) | Fi Base Procedure(2.0.0-rc2) | FI Base Observation(2.0.0-rc2)) | Part of referenced event |
![]() ![]() ![]() |
?!Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. |
![]() ![]() ![]() |
Σ | 1..1 | What medication was taken Slice: Unordered, Open by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. | |
![]() ![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() ![]() |
Reference(Medication) | |||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Medication(2.0.0-rc2)) | What medication was taken |
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Patient(2.0.0-rc2)) | Who is/was taking the medication |
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Encounter(2.0.0-rc2) | FI Base EpisodeOfCare(2.0.0-rc2)) | Encounter / Episode associated with MedicationStatement |
![]() ![]() ![]() |
0..1 | Reference(FI Base Patient(2.0.0-rc2) | FI Base Practitioner(2.0.0-rc2) | FI Base PractitionerRole(2.0.0-rc2) | FI Base Organization(2.0.0-rc2) | RelatedPerson) | Person or organization that provided the information about the taking of this medication | |
![]() ![]() ![]() |
0..* | Reference(FI Base Condition(2.0.0-rc2) | FI Base Observation(2.0.0-rc2) | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |
![]() |
Path | Conformance | ValueSet | URI |
MedicationStatement.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1 From the FHIR Standard | |
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | MedicationStatement | 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 MedicationStatement
Snapshot View
Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | MedicationStatement | Record of medication being taken by a patient | |||||
![]() ![]() ![]() |
Σ | 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 | External identifier | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationRequest(2.0.0-rc2) | CarePlan | ServiceRequest) | Fulfils plan, proposal or order | ||||
![]() ![]() ![]() |
Σ | 0..* | Reference(FI Base MedicationAdministration(2.0.0-rc2) | MedicationDispense | FI Base MedicationStatement(2.0.0-rc2) | Fi Base Procedure(2.0.0-rc2) | FI Base Observation(2.0.0-rc2)) | Part of referenced event | ||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required): A coded concept indicating the current status of a MedicationStatement. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example): A coded concept indicating the reason for the status of the statement. | |||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication usage category codes (preferred): A coded concept identifying where the medication included in the MedicationStatement is expected to be consumed or administered. | ||||
![]() ![]() ![]() |
Σ | 1..1 | What medication was taken Slice: Unordered, Open by type:$this Binding: SNOMEDCTMedicationCodes (example): A coded concept identifying the substance or product being taken. | |||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
Reference(Medication) | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Medication(2.0.0-rc2)) | What medication was taken | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(FI Base Patient(2.0.0-rc2)) | Who is/was taking the medication | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(FI Base Encounter(2.0.0-rc2) | FI Base EpisodeOfCare(2.0.0-rc2)) | Encounter / Episode associated with MedicationStatement | ||||
![]() ![]() ![]() |
Σ | 0..1 | The date/time or interval when the medication is/was/will be taken | |||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Σ | 0..1 | dateTime | When the statement was asserted? | ||||
![]() ![]() ![]() |
0..1 | Reference(FI Base Patient(2.0.0-rc2) | FI Base Practitioner(2.0.0-rc2) | FI Base PractitionerRole(2.0.0-rc2) | FI Base Organization(2.0.0-rc2) | RelatedPerson) | Person or organization that provided the information about the taking of this medication | |||||
![]() ![]() ![]() |
0..* | Reference(Resource) | Additional supporting information | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reason for why the medication is being/was taken Binding: Condition/Problem/DiagnosisCodes (example): A coded concept identifying why the medication is being taken. | |||||
![]() ![]() ![]() |
0..* | Reference(FI Base Condition(2.0.0-rc2) | FI Base Observation(2.0.0-rc2) | DiagnosticReport) | Condition or observation that supports why the medication is being/was taken | |||||
![]() ![]() ![]() |
0..* | Annotation | Further information about the statement | |||||
![]() ![]() ![]() |
0..* | Dosage | Details of how medication is/was taken or should be taken | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
MedicationStatement.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages From the FHIR Standard
| ||||
MedicationStatement.status | required | Medication Status Codeshttp://hl7.org/fhir/ValueSet/medication-statement-status|4.0.1 From the FHIR Standard | ||||
MedicationStatement.statusReason | example | SNOMEDCTDrugTherapyStatusCodeshttp://hl7.org/fhir/ValueSet/reason-medication-status-codes From the FHIR Standard | ||||
MedicationStatement.category | preferred | Medication usage category codeshttp://hl7.org/fhir/ValueSet/medication-statement-category From the FHIR Standard | ||||
MedicationStatement.medication[x] | example | SNOMEDCTMedicationCodeshttp://hl7.org/fhir/ValueSet/medication-codes From the FHIR Standard | ||||
MedicationStatement.reasonCode | example | Condition/Problem/DiagnosisCodeshttp://hl7.org/fhir/ValueSet/condition-code From the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | MedicationStatement | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | MedicationStatement | 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 | MedicationStatement | 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 | MedicationStatement | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | MedicationStatement | 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 MedicationStatement
Summary
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron