MetaclinicMetaclinic Start a conversation

The surface

Standards where they exist, honesty where they do not

Two audiences read this page: an integration engineer at a laboratory who needs to know what our interface expects, and a developer building against the patient API. Both deserve the actual shape of the thing rather than a diagram.

Two halves of a precision coupling resting apart, their mating faces exactly complementary.
Two halves that mate exactly, or an integration that does not.

Resources

fhir r4 · us core
Primary read surface
ResourceCarries
DiagnosticReportThe report as issued, with status and version history
ObservationDiscrete results, LOINC-coded, with interval and flag
SpecimenCollection, source, and accession linkage
ServiceRequestThe order, with indication and ordering practitioner
ImagingStudy / MediaReferences to slide images and gross photography
ConsentAuthorizations and patient-granted scopes, as records rather than as configuration
AuditEventAccess and disclosure history, queryable by the entitled roles
Coverage / ClaimPayer linkage and claim state where the tenant is entitled

Authorization

scopes carry the release model

Tokens carry a tenant, a role, and any active grants. A patient-authorized app receives scopes limited to that patient's own record. There is no token that grants cross-tenant read without an explicit grant behind it, which means a leaked credential has a blast radius rather than a jackpot.

Denial shape
HTTP 403
{
  "resourceType": "OperationOutcome",
  "issue": [{
    "severity": "error",
    "code": "forbidden",
    "details": { "text": "withheld: part2-consent-required" },
    "diagnostics": "Data class part2 requires consent naming this recipient."
  }]
}

Refusals are specific

A denial names the data class and the condition that would satisfy it. An opaque 403 produces a support ticket and, where the requester was entitled, an information blocking problem. Both are avoidable by saying what is wrong.

Interfaces and bulk

hl7 v2 · $export
  • HL7 v2.5.1 ORU^R01 inbound and outbound, with ORM and OML for orders, over TLS or SFTP.
  • Acknowledgements are real. We alert on missing ACKs rather than assuming delivery.
  • Bulk FHIR export for panel-level pulls, scoped to a tenant and a group.
  • Webhooks for result finalization, corrections, critical values, and release events, delivered with retry and an idempotency key.

Configuration through an agent

mcp · design

There is a published design for a Model Context Protocol server that exposes the configuration plane — code mapping, interface parameters, tenant structure, and release scoping — as tools an agent can call. Patient data is deliberately not part of it, and no tool can widen a permission. It is not built. The design and the constraints are written down before the implementation on purpose.

Access to documentation

The interface specification, the LOINC mapping guide, and the sandbox are provided under agreement rather than published, because the request volume that follows a public sandbox is not something a small team should absorb before it has to.

Getting credentials

start here

Sandbox access needs two things: an executed business associate agreement, and a note about which interfaces you intend to call. The first is self-serve; the second is a sentence in an email.

Sign the BAAservice@meta.clinic

Which stakeholder is currently asking you for data you cannot easily give them?

That is the useful first conversation, and it is a short one. Bring the laboratories, the practices, and the thing that breaks today.

service@meta.clinic Read the release model first