MedicationStatement

  • Profile status: Draft
  • Canonical URL: http://fhir.smart4health.eu/StructureDefinition/s4h-medicationstatement

The Smart4Health MedicationStatement profile is very close to the IPS MedicationStatement profile, but diverges by not requiring a literal reference (subject.reference) to a Patient resource.

Mandatory and must-support data elements

A valid instance according to this profile must satisfy the following constraints:

  • have a status (element: status) - base constraint
  • indicate the medication taken (element: medication) - base constraint
  • point to the patient that is the subject of the statement (element: subject) - Smart4Health constraint, in line with the MediationStatement profile from the IPS IG
  • contain the time or time-span for which the statement holds (element: effective[x]) - Smart4Health constraint, in line with the MedicationStatement profile from the IPS IG

In addition, 10 top-level elements are marked as must-support.

Guidance on filling MedicationStatement instances instances

In line with the IPS IG, we encourage data source systems to always indicate the medication with a reference to a Medication resource (using the element medicationReference) rather than by providing a code for the medication (using medicationCodeableConcept). The primary intended use of medicationCodeableConcept is for indicating that the medication is absent or unknown. See also the comments for the IPS MedicationReference profile.

To further interoperability, wherever possible the dosage and timing instructions should be indicated in a structured form (using dosage.doseAndRate and dosage.timing.repeat) rather than through codes or even free text. If codes are used, codes from internationally used systems are preferable.

For expressing the timing of the medication intake, data provider systems are encouraged to provided a structured specification using the sub-elements in the dosage.timing.repeat element. The documentation of the Timing data type in the FHIR specification includes a table showing examples of how different intake timings (e.g. "Every 8 hours" or "Take once, at any time) can be expressed in this manner.

Alternatively, for simple timings one may use one of the codes from the preferred value set on dosage.timing.code. Though the use of custom codes in this field is allowed, it will make interoperability harder. If such custom codes are used, data provider systems are encouraged to also provide a structured specification using dosage.timing.repeat.

If the timing is only available as free text, it should go in the Timing.code.text element.

Examples

Formal views of profile content

Differential view

Shows only differences relative to the base resource definition.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
basedOnΣ I0..*Reference(MedicationRequest | CarePlan | ServiceRequest)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)
statusS Σ ?!1..1codeBinding
statusReason0..*CodeableConcept
categoryΣ0..1CodeableConceptBinding
medicationReferenceS Σ0..1Reference(MedicationIPS)
medicationCodeableConceptS Σ0..1CodeableConceptIPSBinding
subjectS Σ I1..1Reference(S4hPatient)
contextΣ I0..1Reference(EpisodeOfCare | S4hEncounter)
effectiveDateTimedateTime
effectivePeriodPeriod
dateAssertedΣ0..1dateTime
informationSourceS I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
derivedFromI0..*Reference(Resource)
reasonCode0..*CodeableConcept
reasonReferenceI0..*Reference(Condition | Observation | DiagnosticReport)
note0..*Annotation
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textS Σ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingS Σ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
routeS Σ0..1CodeableConceptIPSBinding
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity

Snapshot view

Shows all constraints, including those from underlying profiles and the base resource definition.

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
basedOnΣ I0..*Reference(MedicationRequest | CarePlan | ServiceRequest)
partOfΣ I0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)
statusS Σ ?!1..1codeBinding
statusReason0..*CodeableConcept
categoryΣ0..1CodeableConceptBinding
medicationReferenceS Σ0..1Reference(MedicationIPS)
medicationCodeableConceptS Σ0..1CodeableConceptIPSBinding
subjectS Σ I1..1Reference(S4hPatient)
contextΣ I0..1Reference(EpisodeOfCare | S4hEncounter)
effectiveDateTimedateTime
effectivePeriodPeriod
dateAssertedΣ0..1dateTime
informationSourceS I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)
derivedFromI0..*Reference(Resource)
reasonCode0..*CodeableConcept
reasonReferenceI0..*Reference(Condition | Observation | DiagnosticReport)
note0..*Annotation
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
sequenceΣ0..1integer
textS Σ0..1string
additionalInstructionΣ0..*CodeableConcept
patientInstructionΣ0..1string
timingS Σ0..1Timing
asNeededBooleanboolean
asNeededCodeableConceptCodeableConcept
siteΣ0..1CodeableConcept
routeS Σ0..1CodeableConceptIPSBinding
methodΣ0..1CodeableConcept
id0..1string
extensionI0..*Extension
typeΣ0..1CodeableConcept
doseRangeRange
doseQuantitySimpleQuantity
rateRatioRatio
rateRangeRange
rateQuantitySimpleQuantity
maxDosePerPeriodΣ I0..1Ratio
maxDosePerAdministrationΣ I0..1SimpleQuantity
maxDosePerLifetimeΣ I0..1SimpleQuantity