Every visit opens with a version of the same question. What are you taking now? The patient lists what they remember, you check it against what you have on file, and you note what changed since last time. Reconciling the medication list is ordinary clinical work, the kind you do without thinking about it. The trouble is where the answer lives.
In most charts, medications get typed as free text inside whatever note happened to mention them. The current list ends up wherever you last wrote it down. Want to know what a patient is on today? Find the most recent note that talks about it. Want to know what changed since spring? Open the old notes and read them next to each other. The information exists. It just is not in a shape the software can line up for you.
The current medication list is never quite current
This matters most exactly where care runs long. Blood pressure, lipids, blood sugar, thyroid, anything you manage across years rather than a single visit. A dose goes from 10 mg to 20 mg. A statin gets stopped. Something new gets added in March and adjusted again in July. None of that is unusual, and all of it is the clinical story you care about.
When the list is free text, that story is locked inside a stack of separate notes. To reconstruct it you reread. Every visit you also re-enter the list, because there is no single list to carry forward, only the last time you happened to write one down. So two things drift apart that should never be separated: what the patient is on now, and how they got there.
Why is it hard to keep a patient's medication list current in most EHRs?
In many EHRs, medications are written as free text inside individual notes rather than stored as structured data. The current list ends up wherever it was last typed, so keeping it current means re-entering it each visit, and seeing what changed means reopening and comparing old notes by hand. Because that work is manual, the list and its history slowly drift apart.
What the Medication List block captures
The Medication List block lives inside a progress note. You do not leave the chart or open a separate module. Type /med and pick Medication List from the Common group.
What you get is a structured block, not a paragraph. Each medication is its own row with a fixed set of fields: drug name, code, strength, route, frequency, start date, stop date, and notes. Drug name is the only field the block requires, so a fast entry can be a name and a dose, and you can fill in the rest when you have it.
Route and frequency are pick-lists rather than free text. There are thirteen routes (oral, sublingual, intramuscular, transdermal, inhaled, and so on) and nine frequencies (daily, twice daily, three and four times daily, weekly, biweekly, monthly, as needed, and a custom option for anything that does not fit). Picking from a list instead of typing "po daily" one visit and "by mouth, once a day" the next is what keeps the data clean enough to read back later.
Status is the field you never fill in. A medication reads Active until its stop date, and flips to Stopped once that date has passed. Leave the stop date empty and it stays Active for as long as the patient is on it. You record when a drug starts and stops, and the Active or Stopped badge follows from the dates on its own.
The block also carries its own date and time stamp, so the list is pinned to the moment you documented it, and a count badge in the header tells you how many medications it holds.
Reconciling at the next visit, without retyping
Adding a medication is one button. Add Medication drops in a blank row that opens straight into a form, with drug name marked required and the rest of the fields ready when you want them.
A good part of the entry is gone before you type anything. Open a Medication List block in a new note and Oli loads the patient's currently active medications from earlier notes, with duplicates removed, so you start from the real list instead of a blank one. From there you reconcile: confirm what is unchanged, change a dose, set a stop date on whatever was discontinued, add what is new. You are editing a list, not rebuilding it from memory.
Recording the visit removes most of the entry that remains. When the Medication List block is part of your note template and you record the encounter, Oli's AI charting reads the transcript and fills the block in, alongside the rest of the note. If a patient mentions they stopped one medication and that another moved to a higher dose, those changes land in the right fields instead of a block of prose you have to unpack afterward. You are not entering data once the visit ends. You open a draft that is already filled in, read it against what you remember, fix anything the model misheard, and sign off.
Discontinuing a medication is just setting its stop date. Next time you look, that row reads Stopped, and it drops out of the active list that carries into the following visit. The reconciliation you do today becomes the starting point for the reconciliation you do next month.
How does Oli Health carry a patient's medications forward between visits?
When you add a Medication List block to a new note, Oli automatically loads the patient's currently active medications from earlier notes, with duplicates removed. You start from the real list and reconcile it: confirm what is unchanged, adjust a dose, set a stop date on anything discontinued, and add what is new. Nothing has to be retyped from scratch.
Can Oli Health fill the medication list from a recorded visit?
Yes. If the Medication List block is part of your note template and you record the encounter, Oli's AI charting reads the visit transcript and populates the block as it drafts the rest of the note. Medication changes discussed during the visit are placed in the right fields. The clinician then reviews the draft, corrects anything inaccurate, and signs off, so nothing enters the chart without a human check.
Seeing the whole history with Lens
Capturing a clean list every visit is half of it. The other half is reading those lists as one picture, and that is what Lens does. Lens reads the structured blocks across every note a patient has and rolls them up on the patient dashboard.
The Medications card shows the Current Plan: the medications from the most recently documented list, each with its status and a link back to the note it came from. It answers the everyday question, what is this patient on right now, without opening a single note.
The More button is where tracking lives. The number on it, More (9) for this patient, is the total count of medication entries on file across every visit. Open it and the Medication Full History view appears.
It is one table: Date, Medication, Code, Strength, Route, Frequency, Start Date, Stop Date, Status, and Notes, sorted newest first, with a Load More at the bottom for longer histories. Every list you have ever documented for this patient is stacked in date order. A dose that climbed over two visits, a medication that was stopped last winter, something added this spring, all of it reads as a sequence instead of a memory you have to assemble from old notes.
The reason this works is the structure underneath it. Because every visit's list is the same kind of object with the same fields, the change from one visit to the next is something Lens can line up and show you, instead of something you piece together by rereading.
How do you track a patient's medication history over time?
Open the Medications card on the patient dashboard and select More to see the full history. Every medication from every documented list appears in one table, sorted newest first, with its strength, route, frequency, start and stop dates, status, and the visit it was recorded on. Dose changes, stops, and additions read as a sequence across visits rather than scattered across separate notes.
The patient can fill it in at intake
The Medication List block is not limited to progress notes. Add it to an intake form template, and the patient fills in what they take before the visit, from the client portal, with the bottles in front of them and the time you rarely get in a packed appointment.
What comes back is marked as patient reported, and it does not merge itself into the chart. You review the submission and accept it, the same confirmation step that governs the carry-forward and the AI draft. Once you accept, those medications become part of the structured record. They carry into the note, and they show up in the Lens views with their source noted, so you can tell a line came from intake rather than from a visit.
That is what makes the whole thing add up. One structured medication record, fed from three places: what the patient enters at intake, what you chart in the note, and what AI charting pulls from the recording. It all lands in the same fields, and Lens reads across all of it. The Current Plan and the Full History reflect everything recorded about a patient's medications, wherever it came from, so there is no separate medication list to keep up on the side. It is the same idea behind patient intake reshaping the whole chart, not just the form, narrowed to a single block.
Can patients enter their medications before the appointment?
Yes. A clinician can add the Medication List block to an intake form template, and the patient completes it from the client portal before the visit. Their entries arrive marked as patient reported and wait for the clinician to review and accept them. Once accepted, the medications become part of the chart and appear in the Lens Current Plan and Full History, alongside what was recorded during visits.
Where the medication block earns its place
Anywhere the medication list moves and the dates matter. Primary care running blood pressure, lipids, and blood sugar across years of visits. Naturopathic and functional clinicians who need to see what a patient takes alongside the supplements and protocols they are managing. Weight-management and GLP-1 clinics, where the plan is a titration and the start and stop dates are half the clinical picture. Our writeup on a GLP-1 chart that handles titration ladders and plateaus goes deeper on that workflow.
It also pairs with the rest of the structured chart. The same idea behind pulling lab values into structured fields and trending them over time is what lets the medication list and the bloodwork sit on the same timeline, so a dose change and the number it was meant to move are a glance apart.
None of this prescribes or decides anything. The block is a record you reconcile each visit, the status follows the dates you set, and anything added to the list waits for your review before it counts, whether the carry-forward brought it from the last note, AI charting drafted it from a recording, or a patient entered it at intake. Oli keeps the list current and comparable. The clinical calls stay yours.
Try it on one patient's chart
The fastest way to understand it is to enter a couple of medications on one patient, then open a new note next week and watch the active list come back already filled in. Reconcile it, stop one, add one, and open the Full History to see the change laid out by date.
You can do that on Oli Health for free. Practitioners who create an account before August 31, 2026 get the full platform free for the life of the account, with the clinical blocks and Lens included rather than locked behind a tier.
Create your free-forever account and try it on a real patient, or book a live demo and we'll walk you through it.

