US Core Implementation Guide (Release 1.0.1)

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

1.0 - 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 domain 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 reference 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.

Examples

1.2 - 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 HL7 US Realm Steering Committee.

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 a required binding to:
  2. One medication via MedicationRequest.medicationCodeableConcept or MedicationRequest.medicationReference
  3. One patient reference in MedicationRequest.patient
  4. One date in MedicationRequest.authoredOn
  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 ids for this request
... definition Σ0..*Reference(ActivityDefinition), Reference(PlanDefinition)Protocol or definition
... basedOn Σ0..*Reference(CarePlan), Reference(MedicationRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What request fulfills
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!SΣ1..1codeactive | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: MedicationRequestStatus (required)
... intent ?!Σ1..1codeproposal | plan | order | instance-order
Binding: MedicationRequestIntent (required)
... category 0..1CodeableConceptType of medication usage
Binding: MedicationRequestCategory (preferred)
... priority Σ0..1coderoutine | urgent | stat | asap
Binding: MedicationRequestPriority (required)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)Medication to be taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who or group medication request is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Created during encounter/admission/stay
... supportingInformation 0..*Reference(Resource)Information to support ordering of the medication
... authoredOn SΣ1..1dateTimeWhen request was initially authored
... requester SΣI1..1BackboneElementWho/What requested the Request
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent SΣ1..1Reference(US Core Practitioner Profile)Who ordered the initial medication(s)
.... onBehalfOf ΣI0..1Reference(Organization)Organization agent is acting for
... recorder 0..1Reference(Practitioner)Person who entered the request
... 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
... dosageInstruction 0..*DosageHow 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 is being replaced
... detectedIssue 0..*Reference(DetectedIssue)Clinical Issue with action
... 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 a required binding to:
  2. One medication via MedicationRequest.medicationCodeableConcept or MedicationRequest.medicationReference
  3. One patient reference in MedicationRequest.patient
  4. One date in MedicationRequest.authoredOn
  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 ids for this request
... definition Σ0..*Reference(ActivityDefinition), Reference(PlanDefinition)Protocol or definition
... basedOn Σ0..*Reference(CarePlan), Reference(MedicationRequest), Reference(ProcedureRequest), Reference(ReferralRequest)What request fulfills
... groupIdentifier Σ0..1IdentifierComposite request this is part of
... status ?!SΣ1..1codeactive | on-hold | cancelled | completed | entered-in-error | stopped | draft | unknown
Binding: MedicationRequestStatus (required)
... intent ?!Σ1..1codeproposal | plan | order | instance-order
Binding: MedicationRequestIntent (required)
... category 0..1CodeableConceptType of medication usage
Binding: MedicationRequestCategory (preferred)
... priority Σ0..1coderoutine | urgent | stat | asap
Binding: MedicationRequestPriority (required)
... medication[x] SΣ1..1CodeableConcept, Reference(US Core Medication Profile)Medication to be taken
Binding: Medication Clinical Drug (RxNorm) (extensible)
... subject SΣ1..1Reference(US Core Patient Profile)Who or group medication request is for
... context 0..1Reference(Encounter), Reference(EpisodeOfCare)Created during encounter/admission/stay
... supportingInformation 0..*Reference(Resource)Information to support ordering of the medication
... authoredOn SΣ1..1dateTimeWhen request was initially authored
... requester SΣI1..1BackboneElementWho/What requested the Request
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... agent SΣ1..1Reference(US Core Practitioner Profile)Who ordered the initial medication(s)
.... onBehalfOf ΣI0..1Reference(Organization)Organization agent is acting for
... recorder 0..1Reference(Practitioner)Person who entered the request
... 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
... dosageInstruction 0..*DosageHow 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 is being replaced
... detectedIssue 0..*Reference(DetectedIssue)Clinical Issue with action
... 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

 

1.3 - Quick Start

Below is an overview of the required search and read operations for this profile. See the Conformance requirements for the US Core Server for a complete list of supported RESTful operations and search parameters for this IG.


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

Example:

  • GET [base]/MedicationRequest?patient=14676
  • GET [base]/MedicationRequest?patient=14676&_include=MedicationRequest:medication

Support: Mandatory for server and client to support search by patient. Mandatory for client to support the _include parameter. Optional for server to support the _include parameter.

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