Medication Related Resources
So Bob has anemia. Dr. Alice has diagnosed him based on his lab results. But what happens next?
Well, Bob needs treatment! In this case, Dr. Alice thinks Bob should take some iron tablets to help his body make more healthy red blood cells. This is where FHIR’s medication resources come into play.
When we talk about medications in FHIR, we’re actually dealing with three different but connected resources:
- Medication - What is the drug?
- MedicationRequest - Can you please take this drug?
- MedicationAdministration - Yes, the drug was actually taken
Think of it like ordering food: the menu item (Medication), your order (MedicationRequest), and the confirmation that you ate it (MedicationAdministration).
What Is a Medication Resource?
The Medication resource is like a dictionary entry for a drug. It describes what the medication is, but it doesn’t say anything about who should take it or when.
For Bob’s anemia treatment, here’s what the medication looks like:
{
"resourceType": "Medication",
"id": "med-iron-1",
"code": {
"text": "Ferrous sulfate 325 mg tablet"
},
"form": { "text": "tablet" }
}
Pretty simple, right? This just says “Hey, there’s a medication called ferrous sulfate, it’s 325 mg, and it comes as a tablet.”
Breaking Down the Medication Resource
Let’s look at what’s in here:
- resourceType: This tells us it’s a Medication resource
- id: A unique identifier (
med-iron-1
) that other resources can reference - code: The name and strength of the medication
- form: What form it comes in (tablet, capsule, liquid, etc.)
The Medication resource can get much more complex. According to the FHIR specification, it can include:
- Ingredients and their strengths
- Manufacturer information
- Package details (like how many tablets per bottle)
- Batch information (lot numbers, expiration dates)
But for Bob’s case, we’re keeping it simple.
What Is a MedicationRequest?
Now here’s where things get interesting. The MedicationRequest resource is like a prescription. It’s Dr. Alice saying “Bob, please take this medication.”
{
"resourceType": "MedicationRequest",
"id": "medreq-iron-1",
"status": "active",
"intent": "order",
"medicationReference": { "reference": "Medication/med-iron-1" },
"subject": { "reference": "Patient/bob-patient" },
"encounter": { "reference": "Encounter/enc-1" },
"authoredOn": "2025-08-08",
"requester": { "reference": "Practitioner/prac-1" },
"reasonReference": [ { "reference": "Condition/cond-1" } ],
"dosageInstruction": [
{
"text": "Take one tablet by mouth daily",
"timing": { "repeat": { "frequency": 1, "period": 1, "periodUnit": "d" } },
"route": { "text": "oral" }
}
]
}
Breaking Down the MedicationRequest
This is where the rubber meets the road:
- status: “active” means this prescription is current
- intent: “order” means this is an actual prescription (not just a plan)
- medicationReference: Points to our Medication resource - the ferrous sulfate tablets
- subject: Who is this for? Bob
- encounter: Which visit is this from? Bob’s appointment with Dr. Alice
- requester: Who wrote this prescription? Dr. Alice
- reasonReference: Why are we prescribing this? Because of Bob’s anemia condition
- dosageInstruction: The important part - how to take it!
The dosage instruction tells us:
- text: “Take one tablet by mouth daily” (human-readable)
- timing: Once per day (structured data)
- route: “oral” (by mouth)
Two Ways to Reference Medications
Here’s something cool. In the video transcript, we learned there are actually two ways to specify what medication you’re prescribing:
- medicationReference: Point to a separate Medication resource (like we did above)
- medicationCodeableConcept: Include the medication details directly in the request
The first approach is what we used for Bob’s oral tablets. But later in the video, when Dr. Alice gives Bob an intramuscular injection, she uses the second approach.
What Is MedicationAdministration?
The MedicationAdministration resource is the proof that a medication was actually given. It’s like a receipt.
{
"resourceType": "MedicationAdministration",
"id": "medadmin-iron-1",
"status": "completed",
"medicationReference": { "reference": "Medication/med-iron-1" },
"subject": { "reference": "Patient/bob-patient" },
"encounter": { "reference": "Encounter/enc-1" },
"effectiveDateTime": "2025-08-08T11:15:00-05:00",
"performer": [ { "actor": { "reference": "Practitioner/prac-1" } } ],
"request": { "reference": "MedicationRequest/medreq-iron-1" },
"dosage": {
"text": "325 mg oral",
"dose": { "value": 325, "unit": "mg", "system": "http://unitsofmeasure.org", "code": "mg" },
"route": { "text": "oral" }
}
}
Breaking Down the MedicationAdministration
This resource tells us what actually happened:
- status: “completed” means the medication was successfully given
- medicationReference: Same medication as the request
- effectiveDateTime: Exactly when it was given (11:15 AM)
- performer: Who gave it? Dr. Alice
- request: Links back to the original MedicationRequest
- dosage: What was actually administered (325 mg by mouth)
The Key Difference: Request vs Administration
This is super important to understand:
- MedicationRequest = “Please take this medication” (prescription)
- MedicationAdministration = “This medication was actually taken” (proof)
In the video, the narrator explains it perfectly:
“The difference between request and administration is that in request, you’re just asking the patient or someone to take it like maybe here, this is a prescription, please take it. Whereas in an administration, you’re confirming that it has been taken or you have given this in the clinic or in the hospital.”
Real-World Example: Two Different Scenarios
The video shows us two scenarios:
Scenario 1: Take-Home Prescription
Bob gets a prescription for ferrous sulfate tablets to take at home. This creates:
- A MedicationRequest (the prescription)
- Later, MedicationAdministration records when Bob actually takes the pills
Scenario 2: In-Clinic Treatment
Dr. Alice decides Bob needs a jumpstart, so she gives him an intramuscular injection of iron dextran right there in the clinic. This creates:
- A MedicationRequest (the order to give the injection)
- A MedicationAdministration (proof that Dr. Alice gave it)
Using medicationCodeableConcept
In the injection example, instead of creating a separate Medication resource, the medication details are included directly in the request using medicationCodeableConcept
. This is perfectly valid and sometimes more practical.
Here’s what that might look like:
{
"resourceType": "MedicationAdministration",
"medicationCodeableConcept": {
"text": "Iron dextran 100mg IM via Z-track technique"
},
"dosage": {
"text": "100 mg IM via Z-track technique",
"dose": { "value": 100, "unit": "mg" },
"route": { "text": "intramuscular" }
}
}
As the video mentions, “It’s the same meaning” - just a different way of representing the medication information.
The Beautiful Chain of References
Look at how these resources connect:
- Patient (Bob) has a Condition (anemia)
- Condition leads to MedicationRequest (prescription for iron)
- MedicationRequest references Medication (ferrous sulfate tablets)
- MedicationAdministration confirms the MedicationRequest was fulfilled
It’s like a complete story of Bob’s treatment, told through connected FHIR resources.
Different Settings, Same Pattern
Whether it’s:
- Outpatient: Patient gets prescription, takes medication at home
- Inpatient: Nurse gives medication in hospital
- Emergency: Doctor administers medication immediately
The pattern is always the same: Request → Administration.
Status Fields Matter
Both MedicationRequest and MedicationAdministration have status fields that track the lifecycle:
MedicationRequest Status:
- draft: Still being written
- active: Ready to be filled/administered
- completed: Successfully administered
- cancelled: No longer needed
MedicationAdministration Status:
- in-progress: Currently being given
- completed: Successfully administered
- stopped: Interrupted before completion
FHIR Versions: Things Are Changing
The video mentions something important: “This has changed a little bit in the R5 and it will change in the R6 versions. But for R4, you still have two ways of doing this.”
This is a good reminder that FHIR is evolving. The medication resources are being refined to make them even more useful and standardized.
Common Beginner Mistakes
- Don’t confuse the three resources: Medication is the drug definition, MedicationRequest is the order, MedicationAdministration is the proof
- References must be valid: If you use medicationReference, that Medication resource must exist
- Timing matters: effectiveDateTime in MedicationAdministration should be when it was actually given
- Status tracking: Always update status fields appropriately
Key Takeaways
- Medication = What is the drug?
- MedicationRequest = Please take/give this drug
- MedicationAdministration = The drug was actually taken/given
- You can reference medications two ways: separate resource or inline concept
- These resources create a complete audit trail of medication therapy
- The same pattern works for outpatient prescriptions and inpatient administration
The Bigger Picture
Bob’s journey from fatigue to treatment shows how FHIR resources work together:
Symptom → Lab Test → Diagnosis → Treatment Plan → Medication Administration
Each step is captured in structured, interoperable FHIR resources that tell the complete story of Bob’s care.
What’s Next?
After Bob gets his iron treatment, there’s one more important part of his healthcare journey: the financial side. How does the healthcare organization get paid for all these services?
That’s where we’ll explore FHIR’s financial resources in the next post, covering everything from insurance coverage to payment reconciliation.
Want to Learn More?
Check out the official FHIR specifications:
These resources are fundamental to any healthcare system dealing with medications - which is pretty much all of them! Understanding how they work together gives you a solid foundation for building medication management systems with FHIR.
Remember: medications save lives, but only if they’re prescribed correctly, dispensed safely, and administered properly. FHIR’s medication resources help ensure that happens by providing a clear, structured way to track every step of the process.