Record of medication being taken by a patient

Retrieving a patient’s medication statements

The logical ID (of the patient to retrieve) is passed as part of the URL. The logical ID is found as the result of a search.

GET https://tw171.open.allscripts.com/FHIR/Patient/id/MedicationStatement
GET https://tw171.open.allscripts.com/FHIR/Patient/id/MedicationStatement?date=eq2016-01-01
Name Required? Type Description
id yes URL Patient’s logical ID. This is retrieved using the search function.
date no string A string representing a date to include in the search. See below for more information.

A DAF MedicationStatement is returned.

Name Type Cardinality Description
identifier 0..* External identifier. FHIR will generate its own internal identifiers (probably URLs) which do not need to be explicitly managed by the resource. The identifier is one that would be used by another non-FHIR system. For example, an automated medication pump would provide a record each time it operated; an administration while the patient was off the ward might be made with a different system and entered after the event. This is particularly important if these records have to be updated.
patient Reference(Patient) 1..1 Patient who is or was taking the medication. Defines constraints and extensions on the patient resource for use in querying and retrieving patient demographic information.
informationSource Reference(Patient, Practitioner, RelatedPerson) 0..1 Person who provided the information about the taking of this medication.
dateAsserted dateTime 0..1 Date and time when the statement was asserted.
status code 1..1 Valid entries include: Active, Completed, Entered-in-error, and Intended. For more information on this value set, see medication-statement-status.
wasNotTaken boolean 0..1 Was the medication not taken? True if medication is/was not being taken.
reasonNotTaken CodeableConcept 0..* Instances are not expected or even encouraged to draw from the specified value set. The value set merely provides examples of the types of concepts intended to be included. A code indicating why the medication was not taken. A set of codes indicating the reason why the MedicationAdministration is negated. For example codes, see Reason Medication Not Given Codes. This value set has an inline code system http://hl7.org/fhir/reason-medication-not-given, which defines the following codes: Code “a” - Display “None” - No reason known, Code “b” - Display “Away” - The patient was not available when the dose was scheduled, Code “c” - Display “Asleep” - The patient was asleep when the dose was scheduled, and Code “d” - Display “Vomit” - The patient was given the medication and immediately vomited it back.
reasonForUseCodeableConcept CodeableConcept 0..1
reasonForUseReference Reference(Condition) 0..1
effectiveDateTime dateTime 0..1 Date and time over which the medication was consumed.
effectivePeriod Period 0..1 Interval of time during which it is being asserted that the patient was taking the medication (or was not taking, when the wasNotGiven element is true). If the medication is still being taken at the time the statement is recorded, the “end” date will be omitted.
note string 0..1 Further information about the statement.
supportingInformation Reference(Resource) 0..* Additional supporting information.
medicationCodeableConcept CodeableConcept 1..1 Medication that was taken. Defines constraints and extensions on the Medication resource for use in querying and retrieving patient’s medication information.
medicationReference Reference(Medication) 1..1 Medication that was taken.
dosage 0..* How the medication is/was used by the patient.
– dosage.text string 0..1 Reported dosage information.
– dosage.timing Hl7.Fhir.Model.Timing 0..1 When/how often was medication taken. The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions. For example, “Every 8 hours,” “Three times a day,” “1/2 an hour before breakfast for 10 days from 23-Dec 2011,” or “15 Oct 2013, 17 Oct 2013 and 1 Nov 2013”.
– dosage.asNeededBoolean Boolean 0..1 Take “as needed” (for x).
– dosage.asNeededCodeableConcept CodeableConcept 0..1 Take “as needed” (for x).
– dosage.siteCodeableConcept CodeableConcept 0..1 Where (on body) medication is/was administered. Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant. A coded specification of the anatomic site where the medication first enters the body. This identifies the body site at which the substance was administered. The codes SHOULD be taken from Vaccine Administered Body Site. All codes from system http://snomed.info/sct. The value set includes codes from the following code systems (actual value set has > 1000 codes included): 91723000 - Anatomical structure (body structure), 280115004 - Acquired body structure (body structure), 258331007 - Anatomical site notations for tumor staging (body structure), 118956008 - Altered from its original anatomical structure (morphologic abnormality), or 91722005 - Entire physical anatomical entity (body structure).
– dosage.siteReference Reference(BodySite) 0..1 Where (on body) medication is/was administered.
– dosage.route CodeableConcept 0..1 Route by which the medication entered the body. Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant. Route of Administration value set is based upon FDA Drug Registration and Listing Database (FDA Orange Book) which are used in FDA structured product and labelling (SPL). This value set includes codes as defined in http://ncimeta.nci.nih.gov.
– dosage.method CodeableConcept 0..1 Technique used to administer the medication.
– dosage.quantityQuantity Quantity 0..1 Amount administered in one dose.
– dosage.quantityRange Hl7.Fhir.Model.Range 0..1 Amount administered in one dose.
– dosage.rateRatio Hl7.Fhir.Model.Ratio 0..1 Speed with which the medication was or will be introduced into the patient. Typically the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time e.g. 500 ml per 2 hours. Currently we do not specify a default of ‘1’ in the denominator, but this is being discussed. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours.
– dosage.rateRange Hl7.Fhir.Model.Range 0..1 Dose quantity per unit of time.
– dosage.maxDosePerPeriod Hl7.Fhir.Model.Ratio 0..1 Maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. For example, 1000mg in 24 hours.

Searching by date

Dates are passed as query parameters on the URL. Since the URL parameters cannot handle comparators (for example, >, <=) these are passed in as part of the date.

date=eq2016-01-01
date=gt2016-01-01

The following comparators are supported:

Comparator Description
eq equal
gt greater than
ge greater than or equal
lt less than
le less than or equal

To search for a date range, pass in the date twice.

e.g. date=ge2010-01-01&date=le2010-12-31

This search would include every day in the year 2010.