This page is part of the US Core (v3.0.0: STU3) 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:
- a status
- a medication
- an assertion date
- a patient
Each MedicationStatement must support:
- the time medication was taken
- 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
- MedicationStatement-uscore-ms1 Inline medication code to represent the medication.
- MedicationStatement-uscore-ms2 Reference to a contained Medication resource.
- MedicationStatement-uscore-ms3 A search Bundle with a MedicationStatement and an included Medication resource in the Bundle.
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
- A code in
MedicationStatement.status
with a required binding to Medication status codes - A CodeableConcept in
MedicationStatement.medication[x]
with an extensible binding to US Core Medication Codes (RxNorm) - A Patient Reference in
MedicationStatement.subject
- A dateTime in
MedicationStatement.dateAsserted
Summary of the Must Support Requirements
- A dateTime in
MedicationStatement.effective[x]
- One or more Derivedfrom References in
MedicationStatement.derivedFrom
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationStatement | I | 0..* | Record of medication being taken by a patient | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | External 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..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required) |
statusReason | 0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example) | |
category | Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication Status Codes (preferred) |
medication[x] | SΣ | 1..1 | CodeableConcept, Reference(US Core Medication Profile) | What medication was taken Binding: US Core Medication Codes (RxNorm) (extensible) |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who is/was taking the medication |
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with MedicationStatement |
effective[x] | SΣ | 0..1 | dateTime, Period | The date/time or interval when the medication is/was/will be taken |
dateAsserted | SΣ | 1..1 | dateTime | When the statement was asserted? |
informationSource | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication | |
derivedFrom | S | 0..* | Reference(Resource) | Additional supporting information |
reasonCode | 0..* | CodeableConcept | Reason 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..* | Annotation | Further information about the statement | |
dosage | 0..* | Dosage | Details of how medication is/was taken or should be taken | |
Documentation for this format |
MedicationStatement
Summary of the Mandatory Requirements
- A code in
MedicationStatement.status
with a required binding to Medication status codes - A CodeableConcept in
MedicationStatement.medication[x]
with an extensible binding to US Core Medication Codes (RxNorm) - A Patient Reference in
MedicationStatement.subject
- A dateTime in
MedicationStatement.dateAsserted
Summary of the Must Support Requirements
- A dateTime in
MedicationStatement.effective[x]
- One or more Derivedfrom References in
MedicationStatement.derivedFrom
Differential View
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
MedicationStatement | I | 0..* | Record of medication being taken by a patient | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred) Max Binding: AllLanguages | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored |
identifier | Σ | 0..* | Identifier | External 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..1 | code | active | completed | entered-in-error | intended | stopped | on-hold | unknown | not-taken Binding: Medication Status Codes (required) |
statusReason | 0..* | CodeableConcept | Reason for current status Binding: SNOMEDCTDrugTherapyStatusCodes (example) | |
category | Σ | 0..1 | CodeableConcept | Type of medication usage Binding: Medication Status Codes (preferred) |
medication[x] | SΣ | 1..1 | CodeableConcept, Reference(US Core Medication Profile) | What medication was taken Binding: US Core Medication Codes (RxNorm) (extensible) |
subject | SΣ | 1..1 | Reference(US Core Patient Profile) | Who is/was taking the medication |
context | Σ | 0..1 | Reference(Encounter | EpisodeOfCare) | Encounter / Episode associated with MedicationStatement |
effective[x] | SΣ | 0..1 | dateTime, Period | The date/time or interval when the medication is/was/will be taken |
dateAsserted | SΣ | 1..1 | dateTime | When the statement was asserted? |
informationSource | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Organization) | Person or organization that provided the information about the taking of this medication | |
derivedFrom | S | 0..* | Reference(Resource) | Additional supporting information |
reasonCode | 0..* | CodeableConcept | Reason 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..* | Annotation | Further information about the statement | |
dosage | 0..* | Dosage | Details of how medication is/was taken or should be taken | |
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.:
-
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:
- GET [base]/MedicationStatement?patient=14676
- 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)
- including optional support for these
Optional Search Parameters:
The following search parameters, search parameter combinations and search parameter modifiers, comparators, chains and composites SHOULD be supported.
- SHOULD support searching using the combination of the
patient
andstatus
search parameters:- including optional support for these
_include
parameters:MedicationStatement:medication
GET [base]/MedicationStatement?patient=[reference]&status={[system]}|[code]
Example:
- GET [base]/MedicationStatement?patient=1137192&status=active
- 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)
- including optional support for these
- SHOULD support searching using the combination of the
patient
andeffective
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:
- GET [base]/MedicationStatement?patient=1137192&date=ge2019
- 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)
- including optional support for these