MedicationStatement
Overview
The MedicationStatement resource provides a snapshot in time of known medications taken by the patient now or in the past, which were reported by the patient, a significant other, or a provider. Future orders are not returned.
Historical, past, or home medications are commonly captured when documenting the patient’s medical history. Prescriptions without documented compliance are considered intended because whether the patient is actively taking the medication or has filled the prescription is unknown. Medications are assumed to be taken unless documented otherwise.
The following fields are returned if valued:
- Medication Statement ID
- Patient
- Source of information
- Date/Time recorded
- Status
- Was or Was Not Taken
- Date/Time started and ended
- Medication
- Reference to source MedicationOrder, if applicable
- Category Extension
- Details of medication taken:
Querying for Active Medications
To get all possible current medications, an application should query the MedicationStatement resource with the status
query parameter set to active,intended
. Because the MedicationStatement resource provides a snapshot in time, the reponse includes only the information that was in the system as of the last contact with the patient. Changes in medications that occurred after the patient last visited their provider are not included.
To get the list of current medications that would likely be shown by default to a practitioner, use the [MedicationOrder] resource and the query above to ensure that draft
orders are included. You can use the MedicationStatement.supportingInformation
reference to remove duplicates. A duplicate is identified when the MedicationOrder.id
is equivalent to the MedicationOrder/[id]
in the supportingInformation
reference.
Note: The examples provided here are non-normative and replaying them in the public sandbox is not guaranteed to yield the results shown on the site.
Errors
The common errors and OperationOutcomes may be returned.
Terminology Bindings
MedicationStatement.reasonForUse[x] |
MedicationStatement.medication[x] |
|
MedicationStatement.dosage.timing.code |
|
MedicationStatement.dosage.asNeeded[x] |
|
MedicationStatement.dosage.siteCodeableConcept |
|
MedicationStatement.dosage.route |
|
Contained Medication Bindings
Medication.code |
|
Medication.product.form |
|
Contained Practitioner Bindings
Practitioner.practitionerRole.role |
|
Extensions
Custom Extensions
All URLs for custom extensions are defined as https://fhir-ehr.cerner.com/dstu2/StructureDefinition/{id}
ID | Value[x] Type | Description |
---|---|---|
patient-friendly-display |
string |
Extension to MedicationRequest.dosageInstruction. The display name that can be used for this field when producing a view suitable for a patient. |
medication-statement-category |
CodeableConcept |
The category of the order, for example: patientspecified, outpatient, and so on. |
Search
Search for medication statements that meet supplied query parameters.
GET /MedicationStatement?:parameters
Authorization Types
Parameters
Name | Required? | Type | Description |
---|---|---|---|
_id |
Conditionally | token |
The logical resource ID associated with the resource. It may be a list separated by commas. This parameter is required if the patient parameter is not used. Example: _id=1234
|
patient |
Conditionally | reference |
The specific patient to return medication statements for. This parameter is required if the _id parameter is not used. Example: patient=5678
|
status |
No | token |
The status of the medication statement. It may be a list separated by commas. Example: status=active,completed
|
_count |
No | number |
The maximum number of results to return. Defaults to _count=50 . |
Notes
- MedicationStatement.informationSource may be a reference to a contained Practitioner or RelatedPerson. Only the relationship between the patient and information source is known; therefore, a specific practitioner or related person cannot be referenced.
-
MedicationStatement.medication may be a reference to a contained Medication when the medication cannot be represented by a
CodeableConcept
because it contains a unique combination of ingredients. Medications in the system always exist in the context of a medication statement and cannot be be referenced independently. - When searching with the
_id
parameter:- It must not be provided with any other parameters.
Headers
Accept: application/json+fhir
Authorization: <OAuth2 Bearer Token>
Example
Request
GET https://fhir-open.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement?patient=12724067
Response
Status: 200 OK
{
"resourceType": "Bundle",
"id": "07ff213c-cc9d-4a68-9969-737045211516",
"type": "searchset",
"total": 2,
"link": [
{
"relation": "self",
"url": "https://fhir-open.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement?patient=12724067"
}
],
"entry": [
{
"fullUrl": "https://fhir-open.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/309799821",
"resource": {
"resourceType": "MedicationStatement",
"id": "309799821",
"meta": {
"versionId": "1",
"lastUpdated": "2020-03-20T01:00:37.000Z"
},
"text": {
"status": "generated",
"div": "<div><p><b>Medication Statement</b></p><p><b>Patient Name</b>: SMART, JOE</p><p><b>Medication Name</b>: levoFLOXacin</p><p><b>Dosage Instructions</b>: 728 mg = 145.6 mL, IV Piggyback, Daily</p><p><b>Status</b>: Active</p><p><b>Taken</b>: Yes</p></div>"
},
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/medication-statement-category",
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/medication-statement-category",
"code": "inpatient",
"display": "Inpatient"
}
],
"text": "Inpatient"
}
}
],
"patient": {
"reference": "Patient/12724067",
"display": "SMART, JOE"
},
"informationSource": {
"reference": "Practitioner/4122622",
"display": "Cerner Test, Physician - Hospitalist Cerner"
},
"dateAsserted": "2020-03-05T11:26:02.000-06:00",
"status": "active",
"wasNotTaken": false,
"effectivePeriod": {
"start": "2020-03-05T11:26:00.000-06:00"
},
"supportingInformation": [
{
"reference": "MedicationOrder/309799821"
}
],
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "82122",
"display": "Levofloxacin",
"userSelected": false
}
],
"text": "levoFLOXacin"
},
"dosage": [
{
"text": "728 mg = 145.6 mL, IV Piggyback, Daily",
"_text": {
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/patient-friendly-display",
"valueString": "IV Piggyback every day. Refills: 0."
}
]
},
"timing": {
"repeat": {
"boundsPeriod": {
"start": "2020-03-05T11:26:00.000-06:00"
}
},
"code": {
"coding": [
{
"system": "http://hl7.org/fhir/timing-abbreviation",
"code": "QD",
"display": "QD",
"userSelected": false
}
],
"text": "Daily"
}
},
"route": {
"coding": [
{
"system": "http://ncimeta.nci.nih.gov",
"code": "C38279",
"display": "INTRAVENOUS DRIP",
"userSelected": false
},
{
"system": "http://snomed.info/sct",
"code": "47625008",
"display": "Intravenous route (qualifier value)",
"userSelected": false
}
],
"text": "IV Piggyback"
},
"quantityQuantity": {
"value": 728.0,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
},
{
"fullUrl": "https://fhir-open.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/309799757",
"resource": {
"resourceType": "MedicationStatement",
"id": "309799757",
"meta": {
"versionId": "1",
"lastUpdated": "2020-03-20T01:00:37.000Z"
},
"text": {
"status": "generated",
"div": "<div><p><b>Medication Statement</b></p><p><b>Patient Name</b>: SMART, JOE</p><p><b>Medication Name</b>: vancomycin</p><p><b>Dosage Instructions</b>: 2,275 mg, IV Piggyback, Once</p><p><b>Status</b>: Active</p><p><b>Taken</b>: Yes</p></div>"
},
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/medication-statement-category",
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/medication-statement-category",
"code": "inpatient",
"display": "Inpatient"
}
],
"text": "Inpatient"
}
}
],
"patient": {
"reference": "Patient/12724067",
"display": "SMART, JOE"
},
"informationSource": {
"reference": "Practitioner/4122622",
"display": "Cerner Test, Physician - Hospitalist Cerner"
},
"dateAsserted": "2020-03-05T11:26:02.000-06:00",
"status": "active",
"wasNotTaken": false,
"effectivePeriod": {
"start": "2020-03-05T11:26:00.000-06:00",
"end": "2020-03-05T11:26:00.000-06:00"
},
"supportingInformation": [
{
"reference": "MedicationOrder/309799757"
}
],
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "11124",
"display": "Vancomycin",
"userSelected": false
}
],
"text": "vancomycin"
},
"dosage": [
{
"text": "2,275 mg, IV Piggyback, Once",
"_text": {
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/patient-friendly-display",
"valueString": "IV Piggyback once. Refills: 0."
}
]
},
"timing": {
"repeat": {
"boundsPeriod": {
"start": "2020-03-05T11:26:00.000-06:00",
"end": "2020-03-05T11:26:00.000-06:00"
}
},
"code": {
"text": "Once"
}
},
"route": {
"coding": [
{
"system": "http://ncimeta.nci.nih.gov",
"code": "C38279",
"display": "INTRAVENOUS DRIP",
"userSelected": false
},
{
"system": "http://snomed.info/sct",
"code": "47625008",
"display": "Intravenous route (qualifier value)",
"userSelected": false
}
],
"text": "IV Piggyback"
},
"quantityQuantity": {
"value": 2275.0,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
}
]
}
Retrieve by ID
List an individual medication statement by its ID.
GET /MedicationStatement/:id
Authorization Types
Headers
Accept: application/json+fhir
Authorization: <OAuth2 Bearer Token>
Example
Request
GET https://fhir-open.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/309799821
Response
Status: 200 OK
{
"resourceType": "MedicationStatement",
"id": "309799821",
"meta": {
"versionId": "1",
"lastUpdated": "2020-03-20T01:00:37.000Z"
},
"text": {
"status": "generated",
"div": "<div><p><b>Medication Statement</b></p><p><b>Patient Name</b>: SMART, JOE</p><p><b>Medication Name</b>: levoFLOXacin</p><p><b>Dosage Instructions</b>: 728 mg = 145.6 mL, IV Piggyback, Daily</p><p><b>Status</b>: Active</p><p><b>Taken</b>: Yes</p></div>"
},
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/medication-statement-category",
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/medication-statement-category",
"code": "inpatient",
"display": "Inpatient"
}
],
"text": "Inpatient"
}
}
],
"patient": {
"reference": "Patient/12724067",
"display": "SMART, JOE"
},
"informationSource": {
"reference": "Practitioner/4122622",
"display": "Cerner Test, Physician - Hospitalist Cerner"
},
"dateAsserted": "2020-03-05T11:26:02.000-06:00",
"status": "active",
"wasNotTaken": false,
"effectivePeriod": {
"start": "2020-03-05T11:26:00.000-06:00"
},
"supportingInformation": [
{
"reference": "MedicationOrder/309799821"
}
],
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "82122",
"display": "Levofloxacin",
"userSelected": false
}
],
"text": "levoFLOXacin"
},
"dosage": [
{
"text": "728 mg = 145.6 mL, IV Piggyback, Daily",
"_text": {
"extension": [
{
"url": "https://fhir-ehr.cerner.com/dstu2/StructureDefinition/patient-friendly-display",
"valueString": "IV Piggyback every day. Refills: 0."
}
]
},
"timing": {
"repeat": {
"boundsPeriod": {
"start": "2020-03-05T11:26:00.000-06:00"
}
},
"code": {
"coding": [
{
"system": "http://hl7.org/fhir/timing-abbreviation",
"code": "QD",
"display": "QD",
"userSelected": false
}
],
"text": "Daily"
}
},
"route": {
"coding": [
{
"system": "http://ncimeta.nci.nih.gov",
"code": "C38279",
"display": "INTRAVENOUS DRIP",
"userSelected": false
},
{
"system": "http://snomed.info/sct",
"code": "47625008",
"display": "Intravenous route (qualifier value)",
"userSelected": false
}
],
"text": "IV Piggyback"
},
"quantityQuantity": {
"value": 728.0,
"unit": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
Create
Create a new medication statement.
POST /MedicationStatement
Notes
- If MedicationStatement.medication is a reference, it must refer to a contained Medication with the code field populated and cannot have any product.ingredients populated.
- Only medication statements about home medications or historical medications can be created. Medication statements about prescribed medications cannot be created because the MedicationStatement resource is not used to capture compliance information.
- Only the body fields mentioned below are supported. Unsupported fields are ignored or result in errors.
Authorization Types
Headers
Authorization: <OAuth2 Bearer Token>
Accept: application/json+fhir
Content-Type: application/json+fhir
Body Fields
Name | Required | Type | |
---|---|---|---|
resourceType
|
Yes |
string |
|
|
|||
patient
|
Yes |
Reference (Patient ) |
|
|
|||
status
|
Yes |
code |
|
|
|||
effectivePeriod
|
No |
Period |
|
|
|||
note
|
No |
string |
|
|
|||
medication[x]
|
Yes |
CodeableConcept | contained Reference (Medication ) |
|
|
|||
dosage
|
No |
List of BackboneElement |
|
|
|||
dosage.text
|
No |
string |
|
|
|||
dosage.timing
|
No |
Timing |
|
|
|||
dosage.timing.repeat
|
No |
Element |
|
|
|||
dosage.timing.repeat.bounds[x]
|
No |
Period | Duration |
|
|
|||
dosage.timing.repeat.count
|
No |
integer |
|
|
|||
dosage.timing.code
|
No |
CodeableConcept |
|
|
|||
dosage.asNeeded[x]
|
No |
boolean | CodeableConcept |
|
|
|||
dosage.siteCodeableConcept
|
No |
CodeableConcept |
|
|
|||
dosage.route
|
No |
CodeableConcept |
|
|
|||
dosage.quantityQuantity
|
No |
SimpleQuantity |
|
|
Contained Medication Body Fields
Name | Required | Type | |
---|---|---|---|
code
|
No |
CodeableConcept |
|
|
|||
product
|
No |
List of BackboneElement |
|
|
|||
product.form
|
No |
CodeableConcept |
|
|
Example
Request
POST https://fhir-ehr-code.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/
Body
{
"resourceType": "MedicationStatement",
"contained": [
{
"resourceType": "Medication",
"id": "123",
"code": {
"text": "FHIR Test Medication"
}
}
],
"patient": {
"reference": "Patient/12724067"
},
"status": "active",
"medicationReference": {
"reference": "#123"
},
"dosage": [
{
"timing": {
"code": {
"coding": [
{
"system": "http://hl7.org/fhir/v3/vs/GTSAbbreviation",
"code": "BID"
}
],
"text": "BID"
}
},
"quantityQuantity": {
"value": 60.0,
"units": "mg",
"system": "http://unitsofmeasure.org",
"code": "mg"
}
}
]
}
Response
Status: 201 Created
Connection: Keep-Alive Content-Encoding: gzip Content-Length: 20 Content-Type: text/html; charset=UTF-8 Date: Wed, 13 Jan 2016 21:45:47 GMT Keep-Alive: timeout=15, max=100 Last-Modified: Tue, 15 Dec 2015 19:13:20 GMT access-control-allow-methods: DELETE, GET, POST, PUT, OPTIONS, HEAD access-control-allow-origin: * access-control-expose-headers: ETag, Content-Location, Location, X-Request-Id, WWW-Authenticate, Date access-control-max-age: 0 cache-control: no-cache etag: W/"0" location: https://fhir-ehr-code.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/20465903 strict-transport-security: max-age=631152000 vary: Origin,User-Agent,Accept-Encoding opc-request-id: /11111111111111111111111111111111/11111111111111111111111111111111 x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-request-id: 11111111-1111-1111-1111-111111111111 x-xss-protection: 1; mode=block
The ETag
response header indicates the current If-Match
version to use on subsequent updates.
Update
Update a medication statement.
PUT /MedicationStatement/:id
Notes
- Only medication statements without a reference to a medication order can be updated. When a medication statement is associated with a prescription or order, its status is updated when the order itself is completed or canceled.
- Only the body fields mentioned below are supported. Unsupported fields are ignored or result in errors.
- In addition to the common errors, the following error may be returned:
- Updating a medication statement without sending the
If-Match
header returns a412 Precondition Failed
response.
- Updating a medication statement without sending the
Authorization Types
Headers
Authorization: <OAuth2 Bearer Token>
Accept: application/json+fhir
Content-Type: application/json+fhir
If-Match: W/"<Current version of the MedicationStatement resource>"
Body fields
Name | Required | Type | |
---|---|---|---|
resourceType
|
Yes |
string |
|
|
|||
id
|
Yes |
id |
|
|
|||
patient
|
Yes |
Reference (Patient ) |
|
|
|||
status
|
Yes |
code |
|
|
|||
medication[x]
|
Yes |
CodeableConcept | contained Reference (Medication ) |
|
|
Example
Request
PUT https://fhir-ehr-code.cerner.com/dstu2/ec2458f2-1e24-41c8-b71b-0e701af7583d/MedicationStatement/309799821
Body
{
"resourceType": "MedicationStatement",
"id": "309799821",
"status": "completed",
"patient": {
"reference": "Patient/12724067"
},
"medicationCodeableConcept": {
"coding": [
{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "82122",
"display": "Levofloxacin",
"userSelected": false
}
],
"text": "levoFLOXacin"
}
}
Response
Status: 200 OK
Connection: Keep-Alive Content-Encoding: gzip Content-Length: 20 Content-Type: text/html; charset=UTF-8 Date: Wed, 13 Jan 2016 21:50:53 GMT Keep-Alive: timeout=15, max=100 Last-Modified: Tue, 15 Dec 2015 19:13:20 GMT access-control-allow-methods: DELETE, GET, POST, PUT, OPTIONS, HEAD access-control-allow-origin: * access-control-expose-headers: ETag, Content-Location, Location, X-Request-Id, WWW-Authenticate, Date access-control-max-age: 0 cache-control: no-cache etag: W/"1" strict-transport-security: max-age=631152000 vary: Origin,User-Agent,Accept-Encoding opc-request-id: /11111111111111111111111111111111/11111111111111111111111111111111 x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-request-id: 11111111-1111-1111-1111-111111111111 x-xss-protection: 1; mode=block
The ETag
response header indicates the current If-Match
version to use on subsequent updates.