← Al Davies, 250 High Street

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

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:

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

What goes in a row

The drug log needs a ruling first

Access

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:

  1. 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".
  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.
  3. 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.

  1. Title (Single line of text). Rename it to "Reason". Type a few words, such as "Annual check".
  2. 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.
  3. Visit date (Date and Time, date only).
  4. Vaccine due (Date and Time, date only). Leave it empty if no vaccine is due.
  5. Follow-up call date (Date and Time, date only). Leave it empty if no call is needed.
  6. 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:

  1. Title (Single line of text). Rename it to "Entry". Type a short label for the entry.
  2. Entry date (Date and Time, date only).
  3. Item (Single line of text). Type the item name as your clinic writes it.
  4. Amount (Single line of text). Type the amount and the unit together, such as "2 vials". Plain text keeps the unit with the number.
  5. Recorded by (Person). Pick the staff member who made the entry.
  6. 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:

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":

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

  1. Under My flows, open the Cloud flows tab and pick Create from blank.
  2. 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.
  3. 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

  1. Add the SharePoint action Get items, with your site and the "Visits" list.
  2. 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.
  3. 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

  1. 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.
  2. 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:

Honest limits

What this build leaves out:

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.

Tell me what's still manual

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