Guia de Implementação do AnHealth
0.2.0 - CI Build

Guia de Implementação do AnHealth - Local Development build (v0.2.0). See the Directory of published versions

Resource Profile: MedicationStatement

Official URL: https://ancode.app/fhir/StructureDefinition/MedicationStatement Version: 0.2.0
Draft as of 2021-12-02 Computable Name: MedicationStatement

Usage:

  • This Resource Profile is not used by any profiles in this Implementation Guide

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... statusReason 0..1CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (required)
... category 1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] 1..1Reference()What medication was taken
Binding: (unbound) (example)
.... start 1..1dateTimeStarting time with inclusive boundary
... dateAsserted 1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... text 1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction 0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction 1..1stringPatient or consumer oriented instructions
.... timing
..... code 0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
.... route 0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method 0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.medication[x]example
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.timing.coderequiredTimingAbbreviation
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: MedicationStatement Status Codes (required): A coded concept indicating the current status of a MedicationStatement.

... category Σ1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] Σ1..1Reference()What medication was taken
... subject Σ1..1Reference(Patient | Group)Who is/was taking the medication
... effective[x] Σ0..1PeriodThe date/time or interval when the medication is/was/will be taken
.... start ΣC1..1dateTimeStarting time with inclusive boundary
... dateAsserted Σ1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... text Σ1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction Σ1..1stringPatient or consumer oriented instructions
.... route Σ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
MedicationStatement.statusrequiredMedicationStatement Status Codes
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationStatementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationStatementIf 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationStatementIf 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-5errorMedicationStatementIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationStatementA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal identifier
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: MedicationStatement Status Codes (required): A coded concept indicating the current status of a MedicationStatement.

... statusReason 0..1CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (required)
... category Σ1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] Σ1..1Reference()What medication was taken
... subject Σ1..1Reference(Patient | Group)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] Σ0..1PeriodThe date/time or interval when the medication is/was/will be taken
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC1..1dateTimeStarting time with inclusive boundary
.... end ΣC0..1dateTimeEnd time with inclusive boundary, if not ongoing
... dateAsserted Σ1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... sequence Σ0..1integerThe order of the dosage instructions
.... text Σ1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction Σ1..1stringPatient or consumer oriented instructions
.... timing Σ0..1TimingWhen medication should be administered
..... id 0..1idUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... event Σ0..*dateTimeWhen the event occurs
..... repeat ΣC0..1ElementWhen the event is to occur
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
....... boundsDurationDuration
....... boundsRangeRange
....... boundsPeriodPeriod
...... count Σ0..1positiveIntNumber of times to repeat
...... countMax Σ0..1positiveIntMaximum number of times to repeat
...... duration Σ0..1decimalHow long when it happens
...... durationMax Σ0..1decimalHow long when it happens (Max)
...... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
...... frequency Σ0..1positiveIntEvent occurs frequency times per period
...... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
...... period Σ0..1decimalEvent occurs frequency times per period
...... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
...... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
...... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ0..*timeTime of day for action
...... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required)
...... offset Σ0..1unsignedIntMinutes from event (before or after)
..... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
.... asNeeded[x] Σ0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route Σ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)
.... doseAndRate Σ0..*ElementAmount of medication administered
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
..... dose[x] Σ0..1Amount of medication per dose
...... doseRangeRange
...... doseQuantityQuantity(SimpleQuantity)
..... rate[x] Σ0..1Amount of medication per unit of time
...... rateRatioRatio
...... rateRangeRange
...... rateQuantityQuantity(SimpleQuantity)
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
MedicationStatement.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
MedicationStatement.statusrequiredMedicationStatement Status Codes
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.timing.repeat.durationUnitrequiredUnitsOfTime
MedicationStatement.dosage.timing.repeat.periodUnitrequiredUnitsOfTime
MedicationStatement.dosage.timing.repeat.dayOfWeekrequiredDaysOfWeek
MedicationStatement.dosage.timing.repeat.whenrequiredEventTiming
MedicationStatement.dosage.timing.coderequiredTimingAbbreviation
MedicationStatement.dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
MedicationStatement.dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes
MedicationStatement.dosage.doseAndRate.typeexampleDoseAndRateType

Constraints

IdGradePath(s)DetailsRequirements
dom-r4bwarningMedicationStatement.containedContaining new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems
: ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationStatement.dosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationStatement.dosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationStatement.dosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationStatement.dosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationStatement.dosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationStatement.dosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationStatement.dosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationStatement.dosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationStatement.dosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from MedicationStatement

Summary

Mandatory: 6 elements (1 nested mandatory element)

Differential View

This structure is derived from MedicationStatement

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... statusReason 0..1CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (required)
... category 1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] 1..1Reference()What medication was taken
Binding: (unbound) (example)
.... start 1..1dateTimeStarting time with inclusive boundary
... dateAsserted 1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... text 1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction 0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction 1..1stringPatient or consumer oriented instructions
.... timing
..... code 0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
.... route 0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method 0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.medication[x]example
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.timing.coderequiredTimingAbbreviation
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: MedicationStatement Status Codes (required): A coded concept indicating the current status of a MedicationStatement.

... category Σ1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] Σ1..1Reference()What medication was taken
... subject Σ1..1Reference(Patient | Group)Who is/was taking the medication
... effective[x] Σ0..1PeriodThe date/time or interval when the medication is/was/will be taken
.... start ΣC1..1dateTimeStarting time with inclusive boundary
... dateAsserted Σ1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... text Σ1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction Σ1..1stringPatient or consumer oriented instructions
.... route Σ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
MedicationStatement.statusrequiredMedicationStatement Status Codes
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorMedicationStatementIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorMedicationStatementIf 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.exists() and ('#'+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(uri) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorMedicationStatementIf 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-5errorMedicationStatementIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceMedicationStatementA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement 0..*MedicationStatementRecord of medication being taken by a patient
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierExternal identifier
... basedOn Σ0..*Reference(MedicationRequest | CarePlan | ServiceRequest)Fulfils plan, proposal or order
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Observation)Part of referenced event
... status ?!Σ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: MedicationStatement Status Codes (required): A coded concept indicating the current status of a MedicationStatement.

... statusReason 0..1CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (required)
... category Σ1..1CodeableConceptType of medication usage
Binding: Medication usage category codes (required)
... medication[x] Σ1..1Reference()What medication was taken
... subject Σ1..1Reference(Patient | Group)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] Σ0..1PeriodThe date/time or interval when the medication is/was/will be taken
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... start ΣC1..1dateTimeStarting time with inclusive boundary
.... end ΣC0..1dateTimeEnd time with inclusive boundary, if not ongoing
... dateAsserted Σ1..1dateTimeWhen the statement was asserted?
... informationSource 1..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: BRCID10 (required)
... reasonReference 0..*Reference(Condition | Observation | DiagnosticReport)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... dosage 1..*DosageDetails of how medication is/was taken or should be taken
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... sequence Σ0..1integerThe order of the dosage instructions
.... text Σ1..1stringFree text dosage instructions e.g. SIG
.... additionalInstruction Σ0..*CodeableConceptSupplemental instruction or warnings to the patient - e.g. "with meals", "may cause drowsiness"
Binding: SNOMEDCTAdditionalDosageInstructions (required)
.... patientInstruction Σ1..1stringPatient or consumer oriented instructions
.... timing Σ0..1TimingWhen medication should be administered
..... id 0..1idUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... event Σ0..*dateTimeWhen the event occurs
..... repeat ΣC0..1ElementWhen the event is to occur
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
....... boundsDurationDuration
....... boundsRangeRange
....... boundsPeriodPeriod
...... count Σ0..1positiveIntNumber of times to repeat
...... countMax Σ0..1positiveIntMaximum number of times to repeat
...... duration Σ0..1decimalHow long when it happens
...... durationMax Σ0..1decimalHow long when it happens (Max)
...... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
...... frequency Σ0..1positiveIntEvent occurs frequency times per period
...... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
...... period Σ0..1decimalEvent occurs frequency times per period
...... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
...... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required)
...... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
...... timeOfDay Σ0..*timeTime of day for action
...... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required)
...... offset Σ0..1unsignedIntMinutes from event (before or after)
..... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: TimingAbbreviation (required)
.... asNeeded[x] Σ0..1Take "as needed" (for x)
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example)
..... asNeededBooleanboolean
..... asNeededCodeableConceptCodeableConcept
.... site Σ0..1CodeableConceptBody site to administer to
Binding: SNOMEDCTAnatomicalStructureForAdministrationSiteCodes (example)
.... route Σ0..1CodeableConceptHow drug should enter body
Binding: SNOMEDCTRouteCodes (required)
.... method Σ0..1CodeableConceptTechnique for administering medication
Binding: SNOMEDCTAdministrationMethodCodes (required)
.... doseAndRate Σ0..*ElementAmount of medication administered
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptThe kind of dose or rate specified
Binding: DoseAndRateType (example)
..... dose[x] Σ0..1Amount of medication per dose
...... doseRangeRange
...... doseQuantityQuantity(SimpleQuantity)
..... rate[x] Σ0..1Amount of medication per unit of time
...... rateRatioRatio
...... rateRangeRange
...... rateQuantityQuantity(SimpleQuantity)
.... maxDosePerPeriod Σ0..1RatioUpper limit on medication per unit of time
.... maxDosePerAdministration Σ0..1SimpleQuantityUpper limit on medication per administration
.... maxDosePerLifetime Σ0..1SimpleQuantityUpper limit on medication per lifetime of the patient

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
MedicationStatement.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
MedicationStatement.statusrequiredMedicationStatement Status Codes
MedicationStatement.statusReasonrequiredSNOMEDCTDrugTherapyStatusCodes
MedicationStatement.categoryrequiredMedication usage category codes
MedicationStatement.reasonCoderequiredBRCID10 (a valid code from Classificação Internacional de Doenças - Décima Revisão - CID-10)
MedicationStatement.dosage.additionalInstructionrequiredSNOMEDCTAdditionalDosageInstructions
MedicationStatement.dosage.timing.repeat.durationUnitrequiredUnitsOfTime
MedicationStatement.dosage.timing.repeat.periodUnitrequiredUnitsOfTime
MedicationStatement.dosage.timing.repeat.dayOfWeekrequiredDaysOfWeek
MedicationStatement.dosage.timing.repeat.whenrequiredEventTiming
MedicationStatement.dosage.timing.coderequiredTimingAbbreviation
MedicationStatement.dosage.asNeeded[x]exampleSNOMEDCTMedicationAsNeededReasonCodes
MedicationStatement.dosage.siteexampleSNOMEDCTAnatomicalStructureForAdministrationSiteCodes
MedicationStatement.dosage.routerequiredSNOMEDCTRouteCodes
MedicationStatement.dosage.methodrequiredSNOMEDCTAdministrationMethodCodes
MedicationStatement.dosage.doseAndRate.typeexampleDoseAndRateType

Constraints

IdGradePath(s)DetailsRequirements
dom-r4bwarningMedicationStatement.containedContaining new R4B resources within R4 resources may cause interoperability issues if instances are shared with R4 systems
: ($this is Citation or $this is Evidence or $this is EvidenceReport or $this is EvidenceVariable or $this is MedicinalProductDefinition or $this is PackagedProductDefinition or $this is AdministrableProductDefinition or $this is Ingredient or $this is ClinicalUseDefinition or $this is RegulatedAuthorization or $this is SubstanceDefinition or $this is SubscriptionStatus or $this is SubscriptionTopic) implies (%resource is Citation or %resource is Evidence or %resource is EvidenceReport or %resource is EvidenceVariable or %resource is MedicinalProductDefinition or %resource is PackagedProductDefinition or %resource is AdministrableProductDefinition or %resource is Ingredient or %resource is ClinicalUseDefinition or %resource is RegulatedAuthorization or %resource is SubstanceDefinition or %resource is SubscriptionStatus or %resource is SubscriptionTopic)
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
tim-1errorMedicationStatement.dosage.timing.repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorMedicationStatement.dosage.timing.repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorMedicationStatement.dosage.timing.repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorMedicationStatement.dosage.timing.repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorMedicationStatement.dosage.timing.repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorMedicationStatement.dosage.timing.repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorMedicationStatement.dosage.timing.repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorMedicationStatement.dosage.timing.repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorMedicationStatement.dosage.timing.repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from MedicationStatement

Summary

Mandatory: 6 elements (1 nested mandatory element)

 

Other representations of profile: CSV, Excel, Schematron