CareAdjustor
The desk between two treatments

CareAdjustor is the visit, as software, for chiropractors, physiotherapists, naprapaths, osteopaths, and massage therapists. The person books a real slot. The clinician opens that same slot, writes a profession-specific note, and invoices before they walk out. One session object — not a calendar in one tab, Word in another, and a till that never talks to either.

Copy and photographs here are original. They describe the live product at careadjustor.com without pasting their marketing pages. EU-built. Patient data stays in the EU.

Book + diary Clinical notes Invoice
Physiotherapist treating a patient's shoulder in clinic, laptop nearby
Session object
8 languages
EU servers
Book → treat → invoice
Same session from the public /book link to the receipt
MSK clinic
Book /book/{slug} → diary
Treat SOAP + MSK charts
Invoice VAT · plans · gift cards
Go APIs + MySQL

What this product actually does

A person with back pain needs a chiropractor or physio. The clinic needs three facts to stay true on one visit: the slot is free, the note matches this profession (not a GP form), and money is taken before they leave. CareAdjustor is that loop. Gift cards, payment plans, SMS, and campaigns sit on the same tenant — they are not a second product.

Clinic waiting area
1 · Book

Website writes the diary

Patient opens /book/{clinic-slug} or an embed on the clinic site. Picks service, clinician, time. That row appears on the drag-and-drop calendar (colours per practitioner, lunch, days off). Cancel from the confirmation mail. Reception does not take that call.

Clinician with laptop beside a treatment table
2 · Treat

The note is this trade

Clinician starts the session from today’s book. SOAP, fixation charts, dermatomes, ortho tests, physio MSK and outcomes, osteopathic and massage sheets, diagnosis. Imaging on the same visit (DICOM with a JPEG preview). Dictation on higher plans. Not a Word file on a shared drive.

Patient in an outpatient rehab gym
3 · Invoice

Pay, then the next slot

EU VAT invoice on that session — or a payment plan, or a gift card. Receipt. Book the series while they are still in the room. SMS/push if someone books or cancels under 24 hours. Optional feedback / NPS after they leave.

One first-time low-back patient · Tuesday

This is the product. Every later feature (campaigns, audit log, Kanta) hangs off this sequence — it is not a bag of unrelated screens.

  1. Find the clinic — The person uses the public booking page or a widget on the clinic’s own site. They are not creating a hospital patient-portal login.
  2. Pick a real slot — Service (e.g. first chiropractic exam), named clinician, time that is actually free. Lunch and days-off are already blocked. The book cannot give 14:00 twice.
  3. Confirm without the desk — Email and/or SMS, iCal, cancel link. If they drop out, the slot returns to the diary. Late cancel can fire a push to staff.
  4. Clinician opens the same row — PWA on phone or laptop. Today’s list, colour for that practitioner. They start the session; it is now the unit of work.
  5. Write what this profession writes — SOAP plus the charts that belong here (fixation, dermatomes, MSK tests, outcomes). Attach an X-ray if they brought one. Save stays on this session.
  6. Take money on the same object — Invoice with EU VAT, split as a plan, or redeem a gift card. The till is not a separate notebook.
  7. Book the series — Next treatment while they are still there. Reminder will go out the day it is needed. Reception is not chasing WhatsApp.
  8. After they leave — Optional NPS. Owner can see the day in reports (PDF). If the law requires it, GDPR purge is a logged action with a reason — not a SQL favour.

Who does which step

  1. PatientBooks, cancels, pays, maybe leaves feedback. They never see SOAP charts or other people’s diaries.
  2. ClinicianOwns steps 4–7: calendar → research screens for their licence → invoice → next slot. Twenty minutes between patients is the constraint the PWA is built for.
  3. Reception / ownerWalk-in booking on the same diary, products and prices, users and roles, campaigns, multi-site calendars on Standard+, audit log, CSV/XLSX import of existing customers.
  4. Not in this loop yetFinnish Kanta national archive is in test (Premium path). Insurer / till / e-invoice links are scoped per clinic via the in-app ticket desk — not claimed as live for every tenant.

Plans: Trial · Solo · Standard · Premium

Trial 60 days, no card. Core on all paid plans: online booking, calendar, patients, research notes, invoicing, PWA, 2FA / WebAuthn, magic-link, tenants. Premium adds attachments, dictation, and Kanta when it leaves test.

Eight UI languages (including fi, en, sv). Built by Black Sauna Studios. This profession’s software here goes back to 2004; the stack we ship against that product today is Go, MySQL, Next.js, and Bootstrap on the clinic desk.

Three tools, one session

The book

Slot is true

Website calendar and the paper list at the desk disagree. Double-booked 14:00s. Cancel is a phone call.

Public /book writes the same diary the clinician drags. Lunch and days off already blocked. Cancel link returns the slot.

The note

Belongs to this visit

GP SOAP box, or Word on a share. Last week’s tests live in someone’s inbox. Covering clinician cannot find the chart.

Session opens the charts this licence uses. Images attach here. Next person on the rota can read last Tuesday.

The till

Closes on the session

Invoice in another app. Gift cards in a spreadsheet. Series booked on a sticky note.

VAT invoice, plan, or gift card on the same object. Next slot while they are still in the room.

Useful on the MSK outpatient floor

This is not a hospital HIS. It does not run theatre, wards, or labs. On an MSK outpatient floor the same eight steps still apply: a named slot, a named therapist, a note with tests and images, an invoice or internal charge, then the next visit. The product is useful there because the flow already matches how that department works.

Physio / chiro department

The note matches the body, not a GP form

Dermatomes and fixation charts are why a hospital MSK team would pick this over a generic EMR. The session is one object: tests, images, diagnosis, next visit. A registrar covering the department can still read last week’s findings.

Several rooms

Calendars per clinician, sites per building

A hospital outpatient physio gym and a spinal clinic across the street can be two locations with their own books and online booking — without a second product. Reporting stays per site.

Images

X-ray on the visit, not in email

DICOM and photos attach to the session, encrypted on disk. That is the hospital failure mode this product is built to avoid: “the MRI is in someone’s inbox.”

Finland / EU law

Audit trail you can show

Changes are logged so later edits are visible. GDPR purge is a button with a reason, not a SQL favour. Kanta CDA export is the national-archive path for Finnish chiropractors and naprapaths once it leaves test — that is how this desk talks to a hospital-adjacent national record, not by pretending to be Epic.

Go APIs. MySQL. Next.js on the desk.

The eight-step visit is backed by Go services (JSON APIs for booking, sessions, research notes, invoices, users) and MySQL for tenants, patients, diary rows, and audit. The clinic app and public booking page are Next.js with HTML, Bootstrap, and CSS — calendar, SOAP screens, and the till on layouts a clinician can use on a laptop or tablet between two 20-minute slots.

Card and plan payments go through a payment gateway (checkout + webhook). Gift cards and VAT invoices write back onto the same session row in MySQL. Mail/SMS jobs, file storage for images and DICOM previews, 2FA, and GDPR purge sit beside that, not in a second product.

Go keeps calendar writes and SOAP saves on one round-trip. Next.js + Bootstrap is the desk. MySQL is the source of truth so the book, the note, and the receipt cannot drift.

Go MySQL Next.js HTML Bootstrap CSS Payment gateway REST JSON PWA / tablet 2FA SMS / email File + DICOM
Go

Booking, session, research, invoice, and auth APIs. Webhooks from the payment gateway. Background jobs for SMS and mail.

MySQL

Clinics, users, patients, diary, SOAP/research rows, invoices, gift cards, audit. One session id ties book → note → pay.

Next.js · HTML · Bootstrap · CSS

Public /book/{slug}, clinic dashboard, calendar, research sheets, invoicing. Responsive desk and tablet. No separate native app required.

Payment gateway + the rest

Checkout, refunds, payment-plan charges, webhook to mark the session paid. Plus 2FA, iCal, embed widget, PDF reports, encrypted files.

Four tools become one session

The book is true

Website booking writes the same calendar the clinician drags on a tablet.

The note is this profession

Fixation, dermatomes, physio outcomes — not a blank SOAP box.

The file stays in the EU

Encrypted at rest. Only the clinic’s users see patients. AI does not train on records without a separate yes.

Need an MSK clinic desk on Go and Next.js?

Booking, profession-specific notes, invoicing, payment gateway — the CareAdjustor shape.