Projects TCM Practice

Traditional Chinese medicine

TCM Practice reads a patient intake and writes a clinical analysis, with a source on every line. The practitioner gets a curated reference library on day one, then builds their own clinical layer on top of it.

Category
Clinical practice software
Status
In development · pre-launch
Platform
Web
Support
Development and financial backing
Product
Lingshu
1

The clinical database

The library is already in it on day one, and what a practice adds never leaves.

A practitioner starts with a reference they did not have to build, and ends up with one nobody else has.

A practice subscribes and gets a curated Chinese-medicine reference: 296 knowledge-base documents, 414 herbs, 61 classical formulas, 154 foods with their thermal and flavour properties. Herb data is cross-checked against independent sources. 394 entries carry a per-field agreement status, so a disagreement about a herb’s temperature or channel is visible rather than silently resolved.

That library is shared and improves for everyone. What a practice adds on top is theirs alone: their own protocols, their corrections to a shipped document, their clinical notes. The knowledge base supports forking a shipped document and overriding it, so a practitioner can disagree with us without losing the updates.

A classical formula in the product, showing its classical source, that it was generated, and a button to mark it reviewed
A shipped formula: its classical source, the fact that it was generated, and the button that marks it reviewed. Demo data.
Shared, and theirs
Ships with the product
  296 knowledge-base documents
  414 herbs · 61 formulas · 154 foods
  394 herbs with a per-field agreement status

Stays with the practice
  their protocols
  their corrections to a shipped document
  their clinical notes

Fork a shipped document, override it, keep the updates.
2

The analysis

It reads the intake and writes the analysis, with a source on every line.

Every pattern in the output names the document behind it, one click away from the practitioner reading it.

A patient completes an intake questionnaire, and the model returns a structured clinical analysis covering diagnosis, patterns, treatment principles, herbal direction and lifestyle advice, plus a separate plain-language letter for the patient.

Retrieval runs before generation: the questionnaire is triaged against the knowledge base, and only the selected documents enter the prompt. Each pattern in the output must cite the slug of the document it rests on, and only slugs that literally appear in the retrieved set are accepted. Where no supplied document covers a pattern, the model has to mark it as resting on its own knowledge rather than invent a citation. Citations render as links into the document they came from.

The knowledge base screen, listing the sources passed to the model with every analysis
Every source the agent is given, listed and editable, with its review state on each row. Demo data.
Retrieval path
  questionnaire ──► triage against 296 docs
                ──► only retrieved docs enter the prompt
                ──► every pattern cites a real slug,
                       or declares it has none
                ──► practitioner sees the source,
                       one click away
3

The co-editor

You can argue with it, and it holds its ground when it is right.

Push back on a clinical note and most models fold. This one does not, and it took a rewrite to get there.

Any field of a saved analysis can be revised by conversation. The practitioner types a remark, the model replies and, where warranted, proposes a revised field. A word-level diff shows exactly what changed before anything is applied, and the change is undoable.

The first version had the failure every AI editor has. Challenged with “are you sure?”, it rewrote the field, implying the original was wrong when nothing new had been said. That is sycophancy, and in a clinical note it is a safety problem.

The prompt now separates a request to change something from a question about something. A question is answered with evidence and the position held. Content changes only when the practitioner asks, or when the model can point to a specific reason the text is wrong.

“Being doubted is not a reason to change a clinical note.”

The rule the co-editor is built on
4

Safety

It flags the answers that mean send this person to a doctor.

Some intake answers are not a treatment problem. They are a referral, and missing one is the failure that matters.

Forty red-flag rules cover the findings that should route a patient to a doctor rather than a treatment table. They are detected on two independent paths: a deterministic scan of the structured questionnaire fields, and the model’s own reading of the free text. Deterministic detection does not depend on the model behaving, and the model is told which flags were already found so it does not repeat them.

The prompts carry explicit clinical guardrails, each written after seeing the failure it prevents. The patient letter may not assign a psychological or medical label the patient did not raise, and may not offer a causal story tying their complaints to a relationship or life circumstance they did not name. Where an intake suggests disordered eating, dietary advice drops numeric targets entirely. A self-harm answer raises a flag for the practitioner. It never becomes advice to the patient.

40 red flags · two paths
Path one  deterministic scan
             structured questionnaire fields
             does not depend on the model behaving

Path two  the model reads the free text
             told which flags were already found,
             so it does not repeat them

Either path raises it. Neither has to be the one that works.
5

The agent

It can draft, book and plan. It cannot do any of it unasked.

Nothing lands in a patient record by surprise.

The practice’s home screen is a chat over the whole practice. Twelve tools split cleanly: eight read (clients, appointments, herbs, formulas, foods, the knowledge base) and four write. The write tools cannot act directly. Each produces a preview and a confirmation card, and the practitioner approves before a prescription draft, appointment or plan exists.

Every model call is metered server-side across fourteen categories, recording input, output and both cache dimensions. Cost per intake is a measured number rather than an estimate, which is what makes pricing arithmetic rather than guesswork. Metering failures are swallowed deliberately: billing telemetry must never break a clinical request.

The practice home screen, showing setup progress and the next action
The practice home screen. Demo data.
Write path
  practitioner asks
       ──► agent reads          8 tools, no confirmation
       ──► agent proposes       4 write tools
       ──► preview + confirm card
       ──► practitioner approves
       ──► the record exists

Not before.
6

Where the line sits

Nothing reaches a patient that a practitioner has not read.

The person holding the licence carries the risk, so the person holding the licence makes the call.

Every clinical output is a draft addressed to a professional, never to a patient directly. The analysis is written for the practitioner. The patient letter is generated but sent only when a practitioner sends it. Nothing reaches a patient that a practitioner has not read.

The shipped clinical content is AI-generated and marked as such in the data. It carries a review status, and expert review is a launch gate rather than a backlog item.

Permanent human gates
  anything a patient will read   → practitioner sends it
  any prescription or dosage     → practitioner confirms it
  any red flag                   → practitioner decides
  any clinical record change     → practitioner applies it,
                                     with the diff shown

  retrieval, drafting,
  cross-checking                 → the agent, metered and cited

Something in your field that a professional still does by hand?

Knowledge that lives in one person’s head, a judgement that has to be made every time, and a written record that takes longer than the work. That is the shape we look for.