Everything a partner or the platform team integrates against. The scoring API is a proposed contract published for technical diligence; the clinical-AI output contract is what /demo renders today. Client packages arrive with the perioperative-ai-service repository.
OpenAPI 3.1
Scoring API — proposed contract 0.2.0
/v1/score · /v1/batch · /v1/jobs/{jobId} · /v1/models · /v1/models/{modelId}/card · /v1/connect/run · /healthz · /readyz · /metrics. Per-operation OAuth scopes, mTLS scheme, RFC 9457 errors, leakage-safe request-side timing fields.
/openapi.json →
Immutable copy
contracts/scoring-api/0.2.0
Pinned, cached for a year, with a .sha256 beside it. A contract change publishes a new version directory — a published one is never edited.
/contracts/scoring-api/0.2.0/openapi.json →
Fixture
Clinical-AI output contract 1.2
The versioned output envelope the demo consumes (clinical-ai-consumer.js beside it renders it). Use it to build a renderer without a live service.
/demo/fixtures/clinical-ai-output-1.2.json →
Coming
Clients, sandbox keys, FHIR mapping
Generated TypeScript and Python clients, sandbox credentials, the FHIR-resource → schema mapping and the SMART-launch test in the simulator ship with the brain repository. See the architecture page, sections 4.6 and 9.
Live · ML scoring service
Mayo-trained postoperative-complications models on Azure
Container App hoopcare-ml-scoring (East US), lightgbm 4.6, the NB12 bundle read from an Azure Files share. Twelve configurations × 16 outcomes; the version is chosen per call. Code: hoopcare/perioperative-ai-service. Synthetic inputs only.
- Endpoint
- https://hoopcare-ml-scoring.jollyhill-bc952b60.eastus.azurecontainerapps.io
- Configurations on the share
- —
- Default · lightgbm
- —
Try it — a synthetic patient on the light model
Probabilities (16 outcomes)
- Run a request to see the outputs.
Missing inputs are named in every response, never imputed. Give a CPT and the service derives CCS, sub-CCS, approach and wRVU from the same reference table the notebook used; the procedure risk prior (proc_te), the pooled Mayo code and the exported bands arrive with the pending Mayo export and drop onto the model share without a rebuild.
Integration rules of the road
- The scoring model's number is the number. Nothing downstream adjusts it; the LLM works upstream (extraction) and around it (text, checks).
- Every response carries the contract version and the model configuration; consumers pin a version and run contract tests against the pinned image.
- Missing inputs are named in the response, never silently imputed.
- Synthetic data only outside a BAA-covered environment. Research use only — not for clinical decision-making.