Documentation
Contracts, schemas and the shape of the interfaces
Enough detail for an engineer or a physicist to judge whether the architecture is serious, without a sales conversation.
Agent output envelope
Every agent returns this shape. The safety-relevant fields are not optional.
{
"case_id": "RT-SYN-0118",
"agent_id": "independent-qa",
"agent_version": "0.5.0",
"status": "blocked",
"findings": ["f-0118-01"],
"missing_inputs": [],
"uncertainty": {
"level": "moderate",
"reasons": ["The two implementations disagree"]
},
"evidence": ["ev-proto-thorax", "ev-tg263"],
"ruleset_version": "independent-rules-2026.08",
"model_versions": ["independent-rules-2026.08", "anomaly-spc-2.0"],
"prohibited_action_attempted": false,
"audit_event_id": "evt_3f9c1a20d4e17b55"
}- status
- One of nine states: queued, running, awaiting dependency, passed, needs review, blocked, escalated, approved, failed safely. There is no state that means "probably fine".
- missing_inputs
- What the agent needed and did not have. An agent with missing inputs reports them and stops rather than estimating.
- uncertainty
- A level and the reasons for it. A deterministic result carries no model confidence, and says so rather than reporting a fabricated number.
- evidence
- Claim identifiers resolving to sources with versions and review dates. An unsupported claim is not returned.
- ruleset_version and model_versions
- Exactly what produced this output, so any result can be reproduced or withdrawn.
- prohibited_action_attempted
- Set when an agent reached for a tool outside its contract. Recorded whether or not the attempt succeeded — it never does.
- audit_event_id
- The immutable event this run wrote. Every run writes exactly one.
API surface
Every mutating call requires an idempotency key, authorisation, a patient-context check, an immutable audit record and optimistic concurrency control.
POST /v1/cases/import
GET /v1/cases/{case_id}
POST /v1/cases/{case_id}/reviews
GET /v1/reviews/{review_id}/findings
POST /v1/findings/{finding_id}/decision
POST /v1/evidence/query
GET /v1/protocols/{protocol_id}/versions/{version}
POST /v1/contours/{contour_id}/corrections
GET /v1/plans/{plan_id}/metrics
POST /v1/submissions/draft
POST /v1/approvals
GET /v1/models/{model_id}/card
GET /v1/audit/eventsCore entities
- organizations, facilities, tenants
- users, roles, permissions, credentials
- patients, encounters, episodes, courses
- studies, series, registrations, imaging_qc
- diagnoses, pathology_reports, staging_records
- prescriptions, directives, protocols, protocol_versions
- structure_sets, structures, contour_versions, contour_reviews
- plans, plan_versions, beams, objectives, dose_objects, dvh_metrics
- checks, rule_sets, rule_versions, findings
- agent_runs, tool_calls, evidence_claims, citations
- approvals, rejections, overrides, escalations
- model_versions, model_cards, datasets, evaluations, drift_events
- submissions, documents, payer_rules
- treatment_sessions, delivery_events, holds, incidents
- audit_events, security_events, retention_policies
Method selection
The right tool for each task, rather than one model asked to do everything.
- Dose, DVH, geometry and protocol thresholds
- Validated deterministic code. Never a language model.
- Document extraction
- A document parser with constrained structured extraction.
- Evidence retrieval
- Retrieval-augmented generation with claim-level citations and a citation validator.
- Segmentation
- A 3D medical-image segmentation model, validated for its specific task.
- Registration and image QC
- Validated classical and learned algorithms.
- Plan-quality prediction
- A supervised model trained on curated plan cohorts.
- Unusual-plan detection
- Statistical process control and anomaly detection against your own cohorts.
- Workflow routing
- A deterministic state machine, not a model deciding what happens next.
- Summaries and drafts
- A language model constrained to verified case data and approved knowledge.
- Independent safety checks
- Separate rules, separate models and separate deterministic verification.
This prototype specifically
What is real and what is a fixture
The schemas, the policy layer, the gate logic, the audit chain, the role enforcement and the bulk-approval guard are real code with tests. The agent outputs, the images, the structures, the beams and every dose number are deterministic fixtures. No model runs, no dose is calculated, and no network call is made. The viewer sits behind an adapter interface so a validated imaging viewer can replace the synthetic renderer without changing a workspace.
See also interoperability, security and clinical safety.