MedicationStatement
Overview
The Medication Statement resource provides a snapshot in time of known medications taken by the patient now or in the past reported by either the patient, significant other or a provider. Future orders are not returned. Documented historical/past/home medications are commonly captured when taking the patient’s medical history. Prescriptions without documented compliance are Intended, since we may not know if the patient is actively taking the medication or has filled the prescription. Medications are assumed to be Taken unless documented otherwise.
References to implicitRules and modifierExtensions are NOT supported and will fail a Create or Update request.
The following fields are returned if valued:
- 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 MedicationStatement
with the status
query parameter set to active,intended
. Since MedicationStatement
is a snapshot in time, this is only a representation of what the system knew of during the last contact with the patient, and will not include things that have happened since the patient last visited with their provider.
To get the list of current medications that would likely be shown by default to a practitioner, the MedicationOrder
resource should be used in addition to the query above in order to ensure that draft
orders are included. Duplicates can be removed using the MedicationStatement.supportingInformation
reference. A duplicate is identified when MedicationOrder.id
is equivalent to the supportingInformation
referenced MedicationOrder/[id]
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 |
The display 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, etc. |
Search
Search for MedicationStatements that meet supplied query parameters:
GET /MedicationStatement?:parameters
Implementation 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 RelatedPerson 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 within the context of a MedicationStatement and cannot be be referenced independently.
Authorization Types
Parameters
Name | Required? | Type | Description |
---|---|---|---|
_id |
This, or patient
|
token |
The logical resource id associated with the resource. |
patient |
This, or _id
|
reference |
The identifier of a patient to list statements for. Example: 12345
|
status |
N | token |
The status of the medication statement, may be a list separated by commas. Example: active,completed
|
_count |
N | number |
The maximum number of results to return. Defaults to 50 . |
Notes:
- Either the
_id
parameter or a combination of thepatient
,status
, and_count
parameters must be provided.
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"
}
}
]
}
}
]
}
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.
Retrieve by id
List an individual MedicationStatement by its id:
GET /MedicationStatement/:id
Implementation 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 RelatedPerson 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 within the context of a MedicationStatement and cannot be be referenced independently.
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"
}
}
]
}
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.
Create
Create a new MedicationStatement.
POST /MedicationStatement
Implementation Notes
-
MedicationStatement.status must be set to
active
. -
MedicationStatement.wasNotTaken set to
true
is not supported. - 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 MedicationStatements about home medications or historical medications can be created. MedicationStatements about prescribed medications cannot be created because MedicationStatement isn’t used to capture compliance information.
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 x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-request-id: 682c633c-b20f-4f6f-8fae-c58b3aeffe04 x-xss-protection: 1; mode=block
The ETag
response header indicates the current If-Match
version to use on subsequent updates.
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.
Update
Update a MedicationStatement.
PUT /MedicationStatement/:id
Implementation Notes
- The only supported change is to update the MedicationStatement.status to
completed
. - Only MedicationStatements that have no reference to a MedicationOrder can be updated. When a MedicationStatement is tied to a prescription or order, its status is updated when the order itself is completed or cancelled.
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 x-content-type-options: nosniff x-frame-options: SAMEORIGIN x-request-id: 9dba8326-899a-406f-a125-3fc3d6605dad x-xss-protection: 1; mode=block
The ETag
response header indicates the current If-Match
version to use on subsequent updates.
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.
In addition, the following error may be returned:
- Updating a MedicationStatement without sending the
If-Match
header will result in a412 Precondition Failed
response.