Vet clinic case log, drug log and vaccine reminders in SharePoint
Use three SharePoint lists: "Patients" (one row per animal), "Visits" (one row per visit, with a vaccine due date and a follow-up call date, linked to the patient), and a practice "Drug log". A daily Power Automate flow emails the front desk about vaccines due in the next 7 days. The Drug log is not your required drug record, and none of this replaces the records your veterinary board, your licensing rules or your attorney require.
A lookup column connects each visit to a patient, and a saved view shows the follow-up calls that are due. This is a way to organize what staff type. It is not medical advice. Exact names may differ on your screen.
Columns at a glance
- Patients: Patient name (the Title column), Species (text), Note (text).
- Visits: Reason (the Title column), Patient (lookup), Visit date, Vaccine due, Follow-up call date, Follow-up status (Choice).
- Drug log: Entry (the Title column), Entry date, Item, Amount, Recorded by (Person), Patient (lookup).
Why paper binders fall short
A binder works until someone needs an answer. Which patients have a vaccine due this month? Who still needs a call after last week's surgery? A binder cannot sort itself. Someone has to turn pages and read handwriting.
What goes wrong:
- Due dates sit inside notes, so nobody sees them until the animal is back.
- Follow-up calls live on sticky notes or in someone's memory.
- The drug record is on a different sheet than the case record.
- Last year's binder is in a box, so finding one visit takes a long time.
A list helps with the first, second and fourth problems. It can sit beside the drug record, but see the privacy section before you decide what goes in it. New to lists? "Replace a spreadsheet tracker with a SharePoint list" covers the basics. A related build for equipment is "An equipment maintenance log in SharePoint for a clinic or lab".
Privacy and records first
Before any column exists, settle what this site may hold. Each animal record points back to a person who owns it.
Rules and retention
- Your state's veterinary board is the official source for record rules. Put two questions to it, your licensing authority or your attorney: which records must be kept, and where may they live. Answers vary by place, and this guide states none of them.
- Ask a third question at the same time: how long rows may stay. Delete them on that date, not later.
What goes in a row
- Keep rows thin. A reasonable start is the animal's name, the species and a few words on why it came in.
- Our advice, not a Microsoft rule: keep owner phone numbers, home addresses and payment data out. They belong in the system the clinic already runs.
- Treatment advice, doses and diagnoses stay out as well. These lists organize dates and calls. They are not a clinical record, so notes of that kind stay where the clinic files them.
The drug log needs a ruling first
- A list row can be edited after the fact, and a drug register may carry its own rules about corrections. Ask the board or the attorney whether any part of it may sit in SharePoint. Until that answer arrives, treat "Drug log" as a practice sheet and keep the required record where it is.
Access
- A view is not a lock. It changes the screen, and anyone who can open the list can pick another view. Permissions control access. Microsoft's help page on customizing permissions for a list or library says that "breaking inheritance and setting item level permissions is a supported scenario" but does not recommend it, and recommends the built-in SharePoint groups. Ask your admin which fits your site.
The Patients list
Microsoft's help page on creating a list says: "Blank list: Choose to start a list from scratch." Select the blank list option, give it a name, and select "Create". Name the list "Patients". Set up these columns:
- Title (Single line of text). A new list has a Title column. Rename it to "Patient name". Type only the animal's name. If two animals share a name, add a short number, such as "Max 2".
- Species (Single line of text). Type the species, such as "Dog" or "Cat". Keep Species as text. Visits will show it through the Patient lookup, and Microsoft's lookup page leaves Choice off the column types a lookup can bring across.
- Note (Single line of text). Optional. Keep it short, such as "Room 2". Leave out clinical details.
Add one row for each animal. Add only what you need.
The Visits list
Create a second blank list named "Visits". Set up these columns. Our advice, not a Microsoft rule: create each column with a name that has no spaces first, such as VaccineDue, then rename it to "Vaccine due". The internal name keeps the version without spaces, which is easier to write in a flow later.
- Title (Single line of text). Rename it to "Reason". Type a few words, such as "Annual check".
- Patient (Lookup). Microsoft's help page says: "In the list where you want the Lookup column, select Add column > Lookup." Under "Select a list as a source", pick "Patients". Then pick the column to show, which is "Patient name". Select "More options" to show more columns from the source list, and tick "Species" if you want it. Save. Microsoft says: "Lookup columns should be created and used within the same site." Make all three lists on the same site.
- Visit date (Date and Time, date only).
- Vaccine due (Date and Time, date only). Leave it empty if no vaccine is due.
- Follow-up call date (Date and Time, date only). Leave it empty if no call is needed.
- Follow-up status (Choice). Add these choices with number prefixes, one per line:
1 None needed
2 Call due
3 Called
4 No answer
Our advice, not a Microsoft rule: put a number in front of each choice so the choices keep your order.
The Drug log list
Create a third blank list named "Drug log". Read the privacy section again before you use it. Set up these columns:
- Title (Single line of text). Rename it to "Entry". Type a short label for the entry.
- Entry date (Date and Time, date only).
- Item (Single line of text). Type the item name as your clinic writes it.
- Amount (Single line of text). Type the amount and the unit together, such as "2 vials". Plain text keeps the unit with the number.
- Recorded by (Person). Pick the staff member who made the entry.
- Patient (Lookup to "Patients", same steps as in the Visits list). Leave it empty for entries that are not tied to one animal.
Our advice, not a Microsoft rule: do not delete rows to correct them. To correct an entry, add a new row or a note that says what changed, and agree on the rule with your attorney or board first. For the version history of a row, see "See who changed a row: SharePoint version history".
Adding a visit
When an animal is seen, a staff member opens "Visits" and selects "New". They type the reason, pick the patient, enter the visit date, and fill in the vaccine due date and follow-up call date if they apply. If a call is needed, they set the status to "2 Call due".
Two rules for the front desk:
- Enter the visit the same day. Entries made from memory are easier to get wrong.
- One person at the front desk owns the follow-up calls. Our advice, not a Microsoft rule: one owner keeps calls from falling between people.
The morning Calls due view
The front desk needs a morning answer to one question: which animals get a call today?
Create the view in the classic editor. Microsoft's help page on filtering a view says: "You must use the classic view editor to filter columns using these keywords." The keywords are [Today] and [Me].
Setup for "Calls due":
- Start in "Visits", open the view menu and pick "Edit current view".
- Under Filters, pick "Show items only when the following is true".
- Condition A: Follow-up call date, "is less than", [Today]+1. Microsoft says: "You can use math to get ranges that change with today's date." This catches today and every earlier date.
- Condition B, joined with And: Follow-up status equal to "2 Call due".
- Display Patient, Reason, Follow-up call date and Follow-up status, then save under the name "Calls due".
After dialing, staff switch the status to "3 Called" or "4 No answer". A "4 No answer" row leaves the team with a choice, perhaps a fresh date, and the view will not choose for you. Treat the screen as a worklist of typed entries, not as an alarm.
A daily vaccine email
Views stay silent until someone opens them. A scheduled flow reaches out instead. Microsoft's page on running a cloud flow on a schedule says you can run a flow "Once a day, an hour, or a minute." Sign in at https://make.powerautomate.com. Button names may differ on your screen.
Trigger
- Under My flows, open the Cloud flows tab and pick Create from blank.
- Add a trigger and search for Recurrence. Microsoft says: "For example to run the flow once a week, use Interval = 1 and Frequency = Week." A daily run uses Interval 1 and Frequency Day.
- Microsoft says the Time zone field sets "whether the Start time reflects a local time zone, Coordinated Universal Time (UTC), or other time zone." Choose yours, then set the hour and minute in the "At these hours" and "At these minutes" lists.
Fetch the rows
- Add the SharePoint action Get items, with your site and the "Visits" list.
- In Advanced options, Microsoft's page on Get items says: "The default item limit is 100". It also says you can raise the limit "up to the list view threshold limit of 5,000" with the Top Count property. A Visits list headed past 100 rows needs Top Count at 5000. If the list holds more than 5,000 rows, also turn on Pagination in the action settings.
- Fill in Filter Query with a window. Microsoft's page says Get items takes OData filter queries and names the operators lt, le, gt, ge, eq and ne, with values in single quotes and spaces in a column name written as _x0020_. For vaccines due in the coming 7 days, with your own internal column name:
VaccineDue ge 'TODAY' and VaccineDue lt 'END'
Enter formatDateTime(utcNow(),'yyyy-MM-dd') as TODAY and formatDateTime(addDays(utcNow(),8),'yyyy-MM-dd') as END, each as an expression inside the quotes. The window opens today and closes before day eight. Both ends use UTC, so a row near midnight can land a day off.
Send the mail
- Add Office 365 Outlook, Send an email (V2), a step Microsoft's page on creating a cloud flow lists. Enter the front desk address in To. Microsoft says this action lets you format the email with bold, italic, underline, lists and links. Insert the Patient and Vaccine due dynamic content in the body.
- Save.
Each day the flow mails whatever falls inside the window, so one row appears on each of the 8 days from a week out through its date unless you shrink the window. A short window keeps the noise down.
To stop the flow, Microsoft says to select the vertical ellipsis beside it on My flows and choose Turn off. For run history, select the flow, then Details. Microsoft says you can select a run to view the inputs and outputs of each step.
What to avoid
Skip these:
- Clinical notes, doses or diagnoses typed in as if the list were a medical record.
- "Drug log" treated as the required register before the board or attorney agrees.
- Owner phone numbers, addresses or payment data in any row.
- Views used as a way to hide the Drug log; they hide nothing.
- Species as a Choice column when Visits needs to show it. Microsoft's lookup page does not list Choice among supported types.
- A single exact date in the flow filter; use a window.
- Rows that outlive the retention period the board or attorney gave.
- Catching up on visits from memory at the end of the week.
Honest limits
What this build leaves out:
- Judgment. The list does not check that a row belongs to the right animal, whether a dose is right, or whether a vaccine suits a patient. It displays a date someone typed.
- Delivery. Email can sit unseen. Also, the flow runs under its owner's connections, so if that person leaves, it may stop. Name a backup who can open it. The general method is in "Send a reminder before a due date in a SharePoint list".
- Lookup capacity. Microsoft says: "You have exceeded the List View Lookup Threshold, which by default is twelve lookup columns." One lookup in "Visits" and one in "Drug log" stays far under it. Microsoft also says a delete involving more than 1,000 items can be blocked.
- Licensing. What the flow needs depends on your plan, so confirm with your admin first.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
What columns does a veterinary case log need?
Patients needs a name, species and a short note. Visits needs a reason, a patient lookup, a visit date, a vaccine due date, a follow-up call date and a status. Keep diagnoses and doses out.
Is this a veterinary case report template?
No. It is a log of dates and calls, not a clinical report. Treatment notes stay where the clinic files them.
Does this list meet my veterinary board's record rules?
This guide cannot say. Rules differ by place. Ask your state's veterinary board, your licensing authority or your attorney which records you must keep and how.
Can I use the Drug log list instead of my required drug record?
Not unless your board or attorney says so. A list row can be edited, and your rules may say how a drug record must be kept and corrected. Ask first.
Why does the flow use a date range?
A range, such as a date that is greater than or equal to today and less than the day after the window ends, covers the whole window. Microsoft lists ge and lt among the operators Get items supports.
Sources
- Microsoft Support, Create list relationships by using lookup columns
- Microsoft Support, Use filtering to modify a SharePoint view
- Microsoft Support, Customize permissions for a SharePoint list or library
- Microsoft Support, Create a list
- Microsoft Learn, Run a cloud flow on a schedule in Power Automate
- Microsoft Learn, Create a cloud flow in Power Automate
- Microsoft Learn, In-depth analysis into Get items and Get files SharePoint actions