HL7 FHIR® US Core Implementation Guide STU 3

This page is part of the US Core (v2.1.0: STU3 Ballot 1) based on FHIR R4. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

StructureDefinition-us-core-medicationstatement

Both the MedicationRequest and MedicationStatement resources can be used to record a patient’s medication. For more information about the context for their usages, refer to the medication domain boundaries section. This profile sets minimum expectations for the MedicationStatement resource to record, search and fetch medications associated with a patient. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile.

Example Usage Scenarios:

The following are example usage scenarios for the US Core-MedicationStatement profile:

  • Query active medications being taken by a patient
  • Record or update active medications being taken by a patient

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each MedicationStatement must have:

  1. a status
  2. a medication
  3. an assertion date
  4. a patient

Each MedicationStatement must support:

  1. the time medication was taken
  2. whether the MedicationStatement was derived from another resource

Profile specific implementation guidance:

  • The MedicationStatement and MedicationRequest resources can represent a medication using either a code, or reference to a Medication resource.
    • When referencing a Medication resource, the resource may be contained or an external resource.
    • The server application MAY choose any combination of these methods, but if an external reference to Medication is used, the server SHALL support the include parameter for searching this element.
    • The client application SHALL support all methods.
    • Additional guidance is provided below in the Search section and in the CapabilityStatement section.
  • Source EHR identifiers SHOULD be included to support deduplication across MedicationStatement and MedicationRequest resources. A patient medication may appear when a prescription is present as a MedicationRequest or MedicationStatement even though the EHR stores as a single instance. Exposing the EHR identifiers helps client applications identify duplicates.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement

Published on Tue May 21 00:00:00 EDT 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on MedicationStatement


MedicationStatement

Summary of the Mandatory Requirements

  1. A code in MedicationStatement.status with a required binding to Medication status codes
  2. A CodeableConcept in MedicationStatement.medication[x] with an extensible binding to US Core Medication Codes (RxNorm)
  3. A Patient Reference in MedicationStatement.subject
  4. A dateTime in MedicationStatement.dateAsserted

Summary of the Must Support Requirements

  1. A dateTime in MedicationStatement.effective[x]
  2. One or more Derivedfrom References in MedicationStatement.derivedFrom
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*Record 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
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... 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 ?!SΣ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required)
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example)
... category Σ0..1CodeableConceptType of medication usage
Binding: Medication Status Codes (preferred)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)What medication was taken
Binding: US Core Medication Codes (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] SΣ0..1dateTime, PeriodThe date/time or interval when the medication is/was/will be taken
... dateAsserted SΣ1..1dateTimeWhen the statement was asserted?
... informationSource 0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom S0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example)
... 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 0..*DosageDetails of how medication is/was taken or should be taken

doco Documentation for this format

MedicationStatement

Summary of the Mandatory Requirements

  1. A code in MedicationStatement.status with a required binding to Medication status codes
  2. A CodeableConcept in MedicationStatement.medication[x] with an extensible binding to US Core Medication Codes (RxNorm)
  3. A Patient Reference in MedicationStatement.subject
  4. A dateTime in MedicationStatement.dateAsserted

Summary of the Must Support Requirements

  1. A dateTime in MedicationStatement.effective[x]
  2. One or more Derivedfrom References in MedicationStatement.derivedFrom

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*Record 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
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred)
Max Binding: AllLanguages
... 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 ?!SΣ1..1codeactive | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken
Binding: Medication Status Codes (required)
... statusReason 0..*CodeableConceptReason for current status
Binding: SNOMEDCTDrugTherapyStatusCodes (example)
... category Σ0..1CodeableConceptType of medication usage
Binding: Medication Status Codes (preferred)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)What medication was taken
Binding: US Core Medication Codes (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who is/was taking the medication
... context Σ0..1Reference(Encounter | EpisodeOfCare)Encounter / Episode associated with MedicationStatement
... effective[x] SΣ0..1dateTime, PeriodThe date/time or interval when the medication is/was/will be taken
... dateAsserted SΣ1..1dateTimeWhen the statement was asserted?
... informationSource 0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom S0..*Reference(Resource)Additional supporting information
... reasonCode 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/DiagnosisCodes (example)
... 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 0..*DosageDetails of how medication is/was taken or should be taken

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON), Schema: XML Schematron


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

Mandatory Search Parameters:

The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHALL be supported. the modifiers, comparators, chains and composites that are listed as optional SHOULD be supported.:

  1. SHALL support searching for all medication statements for a patient. The server application represents the medication using either an inline code or a contained or external reference to the Medication resource. using the patient search parameter:

    • including optional support for these _include parameters: MedicationStatement:medication

    GET [base]/MedicationStatement?patient=[reference]

    Example:

    1. GET [base]/MedicationStatement?patient=14676
    2. GET [base]/MedicationStatement?patient=14676&_include=MedicationStatement:medication

    Implementation Notes: Fetches a bundle of all MedicationStatement resources for the specified patient. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter. (how to search by reference)

Optional Search Parameters:

The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.

  1. SHOULD support searching using the combination of the patient and status search parameters:
    • including optional support for these _include parameters: MedicationStatement:medication

    GET [base]/MedicationStatement?patient=[reference]&status={[system]}|[code]

    Example:

    1. GET [base]/MedicationStatement?patient=1137192&status=active
    2. GET [base]/MedicationStatement?patient=1137192&status=active&_include=MedicationStatement:medication

    Implementation Notes: Fetches a bundle of all MedicationStatement resources for the specified patient and status (how to search by reference and how to search by token)

  2. SHOULD support searching using the combination of the patient and effective search parameters:
    • including optional support for these _include parameters: MedicationStatement:medication
    • including support for these effective comparators: gt,lt,ge,le
    • including optional support for composite AND search on effective (e.g.effective=[date]&effective=[date]]&...)

    GET [base]/MedicationStatement?patient=[reference]&effective={gt|lt|ge|le}[date]{&effective={gt|lt|ge|le}[date]&...}

    Example:

    1. GET [base]/MedicationStatement?patient=1137192&date=ge2019
    2. GET [base]/MedicationRequest?patient=1137192&date=ge2019&_include=MedicationStatement:medication

    Implementation Notes: Fetches a bundle of all MedicationStatement resources for the specified patient and date (how to search by reference and how to search by date)