The alert names a lot number. Your record has to name the patients.

A sanitary alert does not arrive with your patients' names on it. It arrives with a lot number.

COFEPRIS publishes them for medicines and for medical devices, and the useful ones are deliberately narrow: a presentation, a batch code, almost always an expiry date. In September 2025 it published an alert over falsified insulin that named lot D709739A, expiry 15 FEB 27. Not the product in general. That lot.

That precision helps a distributor and complicates your life. The distributor pulls boxes off a shelf. You have to answer something harder, because the box in question may have been emptied three months ago: did that batch pass through here, and if it did, who received it?

A product-level record cannot answer a lot-level question

Most small clinics track supplies by product. Composite, anesthetic, gloves, burs. That is enough to reorder and enough for a rough monthly cost. It is not enough for a recall, because the alert is always narrower than the record.

When your notes say "composite resin" and the notice says lot ABC1234, you are choosing between two bad moves. Assume it never reached you, and hope. Or call every patient treated inside a plausible window, most of whom were never exposed, and explain on the phone why you are not sure. The first is indefensible. The second costs you a week and costs your patients their confidence in you.

Three links, and all three have to hold

A batch is only traceable if the chain runs unbroken from the delivery to the chart.

It enters when the box enters. Batch number and expiry get recorded at reception, once, while the packing slip is still in your hand. That is the cheapest moment it will ever be. Nobody has to remember anything later.

It links itself at the point of use. The batch has to land on the same row that already names the patient. This is the link everybody skips, and it is the only one that turns a shelf into a list of names. If that join does not exist in the data, no amount of searching afterward invents it.

It outlives the material. NOM-004-SSA3-2012 requires the documents of the clinical record to be kept at least five years, counted from the last medical act (numeral 5.4). An alert does not care that you already archived that year. Traceability that lived in a notebook you replaced did not really live, which is also why it belongs inside the same backup routine as everything else: a trail that exists on exactly one hard drive is one failure away from not existing.

The objection worth taking seriously

No dentist is going to type a batch code for every restoration, and software that demands it gets quietly abandoned by the second week. That is the real design problem, and the answer is that lot capture belongs at reception and nowhere else. If the system already knows which batches are open and which one expires first, it can work out for itself which batch a consumption drew on and write it down. First expired, first out, is the rule a careful assistant already follows at the shelf.

The limit is worth stating plainly, because vendors rarely do. Material used with no batch on file cannot be attributed to a batch afterward. There is no clever query that recovers it. A traceability report is exactly as complete as the capture behind it, and it is much better to know that in advance than to discover it with an alert open on your screen.

The same data quietly does a second job

Once lots are in the record, expiry comes with them, and expiry is the slower leak in a small practice.

Anesthetic is the clearest case. Cartridges carry a printed expiration date and the usable window is short by clinic standards: articaine is commonly labeled for somewhere between 18 and 24 months depending on how it was manufactured. Storage is part of that promise rather than a footnote, since manufacturers specify below 25 °C and protected from light until the date printed on the cartridge.

A lot list sorted by expiry is two documents at the same time. It is a shopping list, and it is an honest record of what you threw away and why.

Doing this in HM Praxis

In practice the work splits into one habit and one lookup.

The habit lives at reception. Open the inventory item, go to Lots & expiry, and add the batch with its lot number and expiry date while you are still putting the box away. If you use locations, place it in the right room or cart at the same time. That is the only moment anybody types a lot number.

After that the link builds itself. When materials used are recorded on an appointment, HM Praxis draws from the batch that expires first and writes one movement per batch it touched, and that movement already carries the appointment and the patient it belongs to. Nobody at the chair is asked for a code. If more than one operatory records materials, those movements merge across the stations on your local network, so the trail is the same one no matter which computer the assistant used. If the amount used is more than the unexpired batches on file can cover, the remainder is recorded with no batch rather than charged to a batch it did not come from, which keeps the trail honest instead of tidy.

Two dashboard boards read the same data without any extra work: lots expiring in the next 30 days, and items sitting at or below the minimum stock alert you set per item.

Then the lookup, on the day it matters. Inventory has a Recall lookup: paste the batch number from the notice and it returns the patient records that received something from that batch, with the quantity and the date it was used, and a count of how many records are affected. It also tells you where it is blind, since stock used with no batch on file is not attributed to a batch. A traceability report that quietly overstates itself would be worse than none.

None of this makes a clinic compliant with anything by itself, and it is not a substitute for your own judgment about who to contact. What it changes is the starting point: instead of "we have no way to know," you get a list you can work through, held in your clinic's own database on your own machines, next to the clinical record it belongs to. The inventory guide covers the setup, and there is a free 14-day trial with no credit card.


Learn more