Skip to content

Technical documentation

Who talks to whom

The clinic opens every connection itself; the centre never calls into a clinic. This page shows how the platform is connected today, using an installation with one centre and three clinics, each on its own network, checked against the code.

As of 1 October 2026 · platform revision 08dc2d9d

The centre is a job desk with a model store. It hands out training jobs, keeps their results and hands out model files. It holds no patient data and can run anywhere, inside the hospital too. If one hospital runs both halves, every connection stays inside its own network.

The connections

On the left, the centre with the ‘Train a model’ interface, the central service, its database, the model store and the upload of the seed model. On the right, a clinic with model sync, worker, trainer, model registry, dataset catalogue, data import, inference service and the ‘Assess risk’ interface. Only the clinic's worker and model sync connect across the site boundary, both to the central service and through the clinic's egress gate. The centre opens no connection to a clinic. Centre no patient data Networkbetween sites Clinic one hospital · sealed network Researcherin a browser Clinical staffin a browser Train a modelthe centre's interface Seed modelone-off upload Central service • Job list: the first node to ask takes the job• Model registry: hands out model files• Output guard checks every result again• Keeps each job's progress and result Databasejobs, results Model storefiles by hash Assess riskthe clinic's interface Model syncchecks SHA-256 Model registrylocal store Inference servicescores single casesand whole datasets Workerasks the centrefor jobs Trainersandbox, no network,read-only data Datasetcataloguepseudonymised Data importCSV export jobs, results,live progress upload jobs model files fetches a model file comes back asks for jobs,sends progressand results gets the job anda cancel flag The centre neveropens a connectionto a clinic. Egress gate · journal single case,whole clinic exchange files reads writes
  • between sites, opened by the clinic
  • network connection within one site
  • shared files or store, no network
The setup with one centre and, on the right, one of its three clinics. Arrows point away from the side that acts: the one that opens a connection, writes a file or reads it. Answers come back on the same connection. The figure can be scrolled sideways.

What crosses the boundary

Leaves the clinic

Only on connections the clinic opens. The egress gate checks each message against a fixed list of allowed messages and first records it in a chained journal.

  • the request for the next job
  • progress: which of the four stages is done
  • the result: aggregated metrics, calibration, feature importances and the model's coefficients, after the check at the node; the centre checks it again
  • a failure code

Comes into the clinic

As answers on those connections.

  • a job: its settings and, if given, a dataset
  • a cancel flag, in the answer to a progress report
  • a model file, checked against its pinned SHA-256 checksum

Stays in the clinic

There is no allowed message for any of these.

  • patient data and the dataset catalogue
  • the list of datasets
  • risk estimates for single cases
  • results for the whole clinic

The four flows

Training a model

  1. Centre: Submit a jobin ‘Train a model’
  2. across the site boundary: Worker picks it upthe first node to ask
  3. Clinic: Trainer computesno network, one snapshot
  4. across the site boundary: Progress reportedthrough the egress gate
  5. Centre: Result checked twiceat the node and the centre
  6. Centre: Result appearsmetrics and coefficients

Assessing a single case

  1. Clinic: Enter valuesin ‘Assess risk’
  2. Clinic: Inference service scoreswith its loaded model
  3. Clinic: Estimate in the browserand nowhere else

Evaluating the whole clinic

  1. Clinic: Choose a datasetfrom the node's catalogue
  2. Clinic: Score every casein the inference service
  3. Clinic: Totals onlywithout small numbers; they stay in the clinic

Getting a model to a clinic

  1. Centre: Upload the seed modelto the model registry
  2. across the site boundary: Model sync downloadsthe file from the centre
  3. Clinic: Checksum verifiedagainst the pinned value
  4. Clinic: Ready to scorein the clinic's model registry

Operating the platform

Where the platform runs today

SetupWhat runsGood for
DemoBoth interfaces in the built-in demo mode, without the central service and without a node.The tutorial, the user guide, demonstrations
Multi-site installationThe figure above: one centre and three clinics, each on its own sealed network.Delegated learning end to end
Test setupEverything on one network, with credentials and a test proxy between worker and central service.Automated browser tests
Operations packageThe central service with its database, with credentials.Running the centre

How to start these setups and set up the centre and a clinic is described on the installation page.