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-medicationrequest

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 MedicationRequest 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-MedicationRequest profile:

  • Query for medications that have been prescribed to a particular patient
  • Record medications that have been prescribed to a particular 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 MedicationRequest must have:

  1. a status
  2. a medication
  3. a patient
  4. a date for when written
  5. a prescriber

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-medicationrequest

This profile builds on MedicationRequest.

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 MedicationRequest.status which has an required binding to:
  2. One medication via MedicationRequest.medicationCodeableConcept or MedicationRequest.medicationReference
  3. One patient reference in MedicationRequest.patient
  4. One date in MedicationRequest.dateWritten
  5. One practitioner in MedicationRequest.requester
NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest I0..*US Core Medication Request 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
... definition ∑0..*Reference(ActivityDefinition), Reference(PlanDefinition)Protocol or definition
... basedOn ∑0..*Reference(CarePlan), Reference(DiagnosticRequest), Reference(MedicationRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What request fulfills
... requisition ∑0..1IdentifierIdentifier of composite
... status ?!S1..1codeactive | on-hold | cancelled | completed | entered-in-error | stopped | draft
Binding: medication-order-status (required)
... stage ?!∑1..1CodeableConceptproposal | plan | original-order
Binding: MedicationRequestStage (example)
... medication[x] S1..1CodeableConcept, Reference(US Core Medication Profile)Medication to be taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... patient S1..1Reference(US Core Patient Profile)Who prescription is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Created during encounter/admission/stay
... supportingInformation 0..*Reference(Resource)Information to support ordering of the medication
... dateWritten S1..1dateTimeWhen prescription was initially authorized
... requester S1..1Reference(US Core Practitioner)Who ordered the initial medication(s)
... reasonCode 0..*CodeableConceptReason or indication for writing the prescription
Binding: Condition/Problem/Diagnosis Codes (example)
... reasonReference 0..*Reference(Condition), Reference(Observation)Condition or Observation that supports why the prescription is being written
... note 0..*AnnotationInformation about the prescription
... category 0..1CodeableConceptType of medication usage
Binding: MedicationRequestCategory (example)
... dosageInstruction 0..*DosageInstructionHow the medication should be taken
... dispenseRequest I0..1BackboneElementMedication supply authorization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveIntNumber of refills authorized
.... quantity 0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationNumber of days supply per dispense
.... performer 0..1Reference(Organization)Intended dispenser
... substitution I0..1BackboneElementAny restrictions on medication substitution
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... allowed ?!1..1booleanWhether substitution is allowed or not
.... reason 0..1CodeableConceptWhy should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (example)
... priorPrescription 0..1Reference(MedicationRequest)An order/prescription that this supersedes
... eventHistory 0..*Reference(Provenance)A list of events of interest in the lifecycle

doco Documentation for this format

Complete Summary of the Mandatory Requirements

  1. One status in MedicationRequest.status which has an required binding to:
  2. One medication via MedicationRequest.medicationCodeableConcept or MedicationRequest.medicationReference
  3. One patient reference in MedicationRequest.patient
  4. One date in MedicationRequest.dateWritten
  5. One practitioner in MedicationRequest.requester

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. MedicationRequest I0..*US Core Medication Request 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
... definition ∑0..*Reference(ActivityDefinition), Reference(PlanDefinition)Protocol or definition
... basedOn ∑0..*Reference(CarePlan), Reference(DiagnosticRequest), Reference(MedicationRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What request fulfills
... requisition ∑0..1IdentifierIdentifier of composite
... status ?!S1..1codeactive | on-hold | cancelled | completed | entered-in-error | stopped | draft
Binding: medication-order-status (required)
... stage ?!∑1..1CodeableConceptproposal | plan | original-order
Binding: MedicationRequestStage (example)
... medication[x] S1..1CodeableConcept, Reference(US Core Medication Profile)Medication to be taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... patient S1..1Reference(US Core Patient Profile)Who prescription is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Created during encounter/admission/stay
... supportingInformation 0..*Reference(Resource)Information to support ordering of the medication
... dateWritten S1..1dateTimeWhen prescription was initially authorized
... requester S1..1Reference(US Core Practitioner)Who ordered the initial medication(s)
... reasonCode 0..*CodeableConceptReason or indication for writing the prescription
Binding: Condition/Problem/Diagnosis Codes (example)
... reasonReference 0..*Reference(Condition), Reference(Observation)Condition or Observation that supports why the prescription is being written
... note 0..*AnnotationInformation about the prescription
... category 0..1CodeableConceptType of medication usage
Binding: MedicationRequestCategory (example)
... dosageInstruction 0..*DosageInstructionHow the medication should be taken
... dispenseRequest I0..1BackboneElementMedication supply authorization
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... validityPeriod 0..1PeriodTime period supply is authorized for
.... numberOfRepeatsAllowed 0..1positiveIntNumber of refills authorized
.... quantity 0..1SimpleQuantityAmount of medication to supply per dispense
.... expectedSupplyDuration 0..1DurationNumber of days supply per dispense
.... performer 0..1Reference(Organization)Intended dispenser
... substitution I0..1BackboneElementAny restrictions on medication substitution
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... allowed ?!1..1booleanWhether substitution is allowed or not
.... reason 0..1CodeableConceptWhy should (not) substitution be made
Binding: SubstanceAdminSubstitutionReason (example)
... priorPrescription 0..1Reference(MedicationRequest)An order/prescription that this supersedes
... eventHistory 0..*Reference(Provenance)A list of events of interest in the lifecycle

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-medicationrequest


Clients

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

Servers

  • A server is capable of returning a patient’s medications using one of or both
  1. GET /MedicationRequest?patient=[id]
  2. GET /MedicationRequest?patient=[id]&_include=MedicationRequest: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 /MedicationRequest?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 MedicationRequest resources for a patient and returns a Bundle of all MedicationRequest 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/MedicationRequest?patient=14676


GET /MedicationRequest?patient={id}&_include=MedicationRequest: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 MedicationRequest resources for a patient and returns a Bundle of all MedicationRequest 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/MedicationRequest?patient=14676&_include=MedicationRequest:medication