US-Core CI Build

This page is part of the US Core (v0.0.0: STU1 Ballot 1) based on FHIR v1.8.0. The current version which supercedes this version is 5.0.1. For a full list of available versions, see the Directory of published versions

D.4.1 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 domains’s 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:

  • Record or Query active medications being taken by a patient
Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These 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. a patient
  4. a date

Profile specific implementation guidance:

  • The MedicationStatement and MedicationRequest resources can represent a medication, using either a code or refer to a Medication resource.
    • When referencing a Medication resource, the resource may be contained or an external resource.
    • The server application can choose any one way or more than one method, but if the an external reference to Medication is used, the server SHALL support the include parameter for searching this element.
    • The client application must support both methods.
    • Additional guidance is provided below in the Search section and in the CapabilityStatement section.

Examples

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://hl7.org/fhir/us/core/StructureDefinition/us-core-medicationstatement

This profile builds on MedicationStatement.

This profile was published on Mon Aug 01 00:00:00 AEST 2016 as a draft by Health Level Seven International (FHIR-Infrastructure).

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

Complete Summary of the Mandatory Requirements

  1. One status in MedicationStatement.status which has an required binding to:
  2. One medication via MedicationStatement.medicationCodeableConcept or MedicationStatement.medicationReference
  3. One patient reference in MedicationStatement.subject
  4. One date MedicationStatement.dateAsserted

Summary of the Must Support Requirements

  1. One date or period in MedicationStatement.effectiveDateTime or MedicationStatment.effectivePeriod
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*US Core Medication Statement Profile
... 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: Common Languages (extensible)
... text I0..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
... status ?!S1..1codeactive | completed | entered-in-error | intended | stopped | on-hold
Binding: MedicationStatementStatus (required)
... medication[x] S1..1CodeableConcept, Reference(US Core Medication Profile)What medication was taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject S1..1Reference(US Core Patient Profile)Who is/was taking the medication
... effective[x] S0..1dateTime, PeriodOver what period was medication consumed?
... informationSource 0..1Reference(Patient), Reference(Practitioner), Reference(RelatedPerson), Reference(Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... dateAsserted S1..1dateTimeWhen the statement was asserted?
... notTaken ?!∑0..1codey | n | unk
Binding: MedicationStatementNotTaken (required)
... reasonNotTaken I0..*CodeableConceptTrue if asserting medication was not given
Binding: SNOMED CT Drugs not taken/completed Codes (example)
... reasonForUseCodeableConcept 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/Diagnosis Codes (example)
... reasonForUseReference 0..*Reference(Condition), Reference(Observation)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... category 0..1codeType of medication usage
Binding: MedicationStatementCategory (example)
... dosage 0..*DosageInstructionDetails of how medication was taken

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One status in MedicationStatement.status which has an required binding to:
  2. One medication via MedicationStatement.medicationCodeableConcept or MedicationStatement.medicationReference
  3. One patient reference in MedicationStatement.subject
  4. One date MedicationStatement.dateAsserted

Summary of the Must Support Requirements

  1. One date or period in MedicationStatement.effectiveDateTime or MedicationStatment.effectivePeriod

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationStatement I0..*US Core Medication Statement Profile
... 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: Common Languages (extensible)
... text I0..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
... status ?!S1..1codeactive | completed | entered-in-error | intended | stopped | on-hold
Binding: MedicationStatementStatus (required)
... medication[x] S1..1CodeableConcept, Reference(US Core Medication Profile)What medication was taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject S1..1Reference(US Core Patient Profile)Who is/was taking the medication
... effective[x] S0..1dateTime, PeriodOver what period was medication consumed?
... informationSource 0..1Reference(Patient), Reference(Practitioner), Reference(RelatedPerson), Reference(Organization)Person or organization that provided the information about the taking of this medication
... derivedFrom 0..*Reference(Resource)Additional supporting information
... dateAsserted S1..1dateTimeWhen the statement was asserted?
... notTaken ?!∑0..1codey | n | unk
Binding: MedicationStatementNotTaken (required)
... reasonNotTaken I0..*CodeableConceptTrue if asserting medication was not given
Binding: SNOMED CT Drugs not taken/completed Codes (example)
... reasonForUseCodeableConcept 0..*CodeableConceptReason for why the medication is being/was taken
Binding: Condition/Problem/Diagnosis Codes (example)
... reasonForUseReference 0..*Reference(Condition), Reference(Observation)Condition or observation that supports why the medication is being/was taken
... note 0..*AnnotationFurther information about the statement
... category 0..1codeType of medication usage
Binding: MedicationStatementCategory (example)
... dosage 0..*DosageInstructionDetails of how medication was taken

doco Documentation for this format

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

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations.

Summary of Argonaut Search Criteria for StructureDefinition-us-core-medicationstatement


Clients

  • A client has connected to a server and fetched a patient’s medications using:
  1. GET /MedicationStatement?patient=[id] or
  2. GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication

Servers

  • A server is capable of returning a patient’s medications using one of or both
  1. GET /MedicationStatement?patient=[id]
  2. GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication
  • A server has ensured that every API request includes a valid Authorization token, supplied via:Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

GET /MedicationStatement?patient={id}

Support: Mandatory for client to support search by patient. Optional for server to support.

Implementation Notes: Used when the server application represents the medication using either an inline code or a contained Medication resource. This searches for all MedicationStatement resources for a patient and returns a Bundle of all MedicationStatement resources for the specified patient. (how to search by reference).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example:

GET http://fhirtest.uhn.ca/baseDstu2/MedicationStatement?patient=14676


GET /MedicationStatement?patient={id}&_include=MedicationStatement:medication

Support: Mandatory for client to support search by patient using the include parameter. Optional for server to support.

Implementation Notes: Used when the server application represents the medication with an external reference to a Medication resource. This searches for all MedicationStatement resources for a patient and returns a Bundle of all MedicationStatement and Medication resources for the specified patient. (how to search by reference).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request
  • (Status 403): insufficient scope

Example:

GET http://fhirtest.uhn.ca/baseDstu2/MedicationStatement?patient=14676&_include=MedicationStatement:medication