The record, not a Word file
Configurable sections (history, treatment, files, scales). Staff fill fields the clinic designed. Notes can be drafted with AI in beta — a human still approves before they land on the file.
Praxium is practice software for outpatient clinics. It is not a ward EHR and not a separate calendar bolted onto a notes app. One place holds the diary, the patient record, the task list, and the portal the patient uses to book and read what they are allowed to see.
Copy and photographs on this page are original. They describe the product as it exists today — live at praxium.nl — without lifting marketing lines or dashboard shots from the site. Built in the Netherlands. Patient data stays in the EU.
A small clinic’s day is four jobs: fill the diary without double-booking, keep a legal patient file, chase the work that happens after the visit, and let the patient do simple things themselves. Praxium is those four jobs in one tenant.
Configurable sections (history, treatment, files, scales). Staff fill fields the clinic designed. Notes can be drafted with AI in beta — a human still approves before they land on the file.
Self-book, reminder the day before, reschedule from the confirmation link. Portal access is scoped: the clinic chooses what the person can see or complete.
Prices, booking pages, public answers, and staff lists can differ per location. A single-site clinic is not punished with extra screens. Admin rights stay on the site that person works.
Live today: diary, customisable records, locations, tasks, branding, patient portal, staff, service catalogue, own-domain mail, website connection, AI note drafts (review-before-save).
Not yet: insurer declarations (VECOZO is planned) and a full self-pay invoice-to-payment loop. Clinics that already bill insurers keep that tool beside Praxium until those pieces ship.
Praxium is built for practices, not for ICU monitors or theatre lists. In a hospital it belongs on the outpatient / polyclinic floor — the part of the building that already behaves like a clinic: named slots, named clinicians, follow-up calls, and a file that must survive an audit.
Held slots and availability rules stop two secretaries giving away the same 14:00. Day-before reminders and self-reschedule cut the empty chairs that still cost a specialist hour. That is the same pain in a city hospital polyclinic as in a private practice.
Dutch rules keep patient-access logs for twenty years. Field-level encryption means a copied disk is not a readable dump. Each clinic (or hospital site) sits in its own database — a tenant cannot browse another tenant’s patients. MFA and IP limits sit on the admin side.
A hospital with two outpatient buildings can give each its booking page, prices, and public answers without cloning the whole product. A receptionist at site A should not administer site B by accident.
Lab chase, call-back, letter to the GP: owner, deadline, files, and a ping when it is done. That is how an outpatient team stops losing work in a shared inbox — the same failure mode on a hospital corridor as in a two-room practice.
A consumer calendar plus a paper list at the desk. Double-booked 14:00s.
Rules, held slots, self-book, reminder, reschedule link. Front desk and website share one availability.
A generic form that does not match this specialism.
Dozens of field types, drag-and-drop sections, documents on the same record. Encrypted at field level.
Opening hours edited twice. Stale prices on the public site.
HMAC tenant API, TypeScript SDK, webhooks. The clinic site reads team, services, FAQ, hours from the same tenant.
Each practice is a tenant at {slug}.admin.praxium.nl — diary, records, tasks, branding, and the patient portal on that host. The public API is an OpenAPI contract. The official client is TypeScript @praxium/sdk, generated from that spec. Clinic marketing sites typically sit on Next.js 14+ (the SDK’s peer) so a webhook can revalidate cached pages instead of waiting for a cron.
The website authenticates with an HMAC API key created under API Profiles. Tenant slug and profile slug live inside the key; the platform also checks the hostname, so one key cannot be pointed at another clinic. Locales on the wire: nl, en, ro via Accept-Language.
When team, FAQ, hours, or services change, the platform posts a structured CloudEvent (application/cloudevents+json) signed with HMAC-SHA256, timing-safe compare, five-minute replay window. Sensitive record fields are encrypted one-by-one. Each clinic’s data is isolated at the database. MFA and IP allowlists are native. Compute and backups stay in the EU: Frankfurt, Paris, Dublin.
Admin on the tenant host: calendar, custom records, tasks, staff, catalogue, branding. Matching patient portal and booking page. Dutch and English first.
Locations, team, hours, FAQ, bookable services, insurance, policies, contact form. Typed errors (401 / 403 / 404 / 429). Custom fields by set + identifier, not guessed labels.
Events such as location.updated and staff.deleted. Next.js ISR, search index, or CDN purge on the clinic site — not a second CMS.
Per-clinic database so a dump of another tenant is not readable here. Patient-access logs kept to Dutch healthcare periods. AI note drafts stay behind a human approve.
Website and desk share availability. A held slot cannot be given away twice.
Sections match the specialism. Encryption and logs match the regulator, not a generic SaaS checkbox.
Book, remind, reschedule, read what they are allowed. Reception keeps the hard cases.
Booking, records, tasks, portal, EU isolation — the Praxium shape for outpatient work.