{"access_policy":"https://api.providehr.showntell.dev/v1/access/policy","agent_card":"https://api.providehr.showntell.dev/.well-known/agent-card.json","capabilities":"https://api.providehr.showntell.dev/v1/agent/capabilities","care_plans":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/care-plans","clinical_warning":"For clinician review; not a diagnosis, prescription, treatment order, or autonomous chart action.","current_release":"Backend CDR and governed-agent foundation. This is not yet a complete certified production EHR.","delegations":"https://api.providehr.showntell.dev/v1/agent/delegations","headline":"AI-first semantic EHR foundation built around an openEHR clinical source of truth.","health":"https://api.providehr.showntell.dev/health","implemented_capabilities":[{"entrypoints":["https://api.providehr.showntell.dev/health","https://api.providehr.showntell.dev/openapi.json","https://api.providehr.showntell.dev/.well-known/agent-card.json","https://api.providehr.showntell.dev/mcp","https://api.providehr.showntell.dev/v1/agent/capabilities"],"functions":["Health endpoint","OpenAPI document","Root landing payload","Public non-PHI A2A Agent Card","MCP server metadata","Agent capability registry"],"id":"service_discovery","status":"implemented","title":"Public service discovery"},{"entrypoints":["https://api.providehr.showntell.dev/v1/ehr","https://api.providehr.showntell.dev/v1/ehr/by-subject/{subject_namespace}/{subject_id}","https://api.providehr.showntell.dev/v1/definition/template/{template_id}","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/composition","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/composition/{composition_uid}","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/timeline","https://api.providehr.showntell.dev/v1/query/aql","https://api.providehr.showntell.dev/v1/audit/events"],"functions":["Create and read EHR containers with initial EHR_STATUS","Find EHR by subject namespace and subject id","Upload and read operational template metadata","Commit immutable COMPOSITION versions","Update/correct COMPOSITIONs with If-Match optimistic locking","Read latest, version-specific, and historical VERSIONED_COMPOSITION data","Read patient timeline from latest composition versions","Run the supported single-EHR AQL subset for latest vitals and composition lists","Record contribution and audit metadata"],"id":"openehr_cdr_foundation","status":"implemented","title":"openEHR-compatible CDR foundation"},{"functions":["Default in-memory store for tests and local smoke runs","SurrealDB-backed clinical store selected with PROVIDEHR_STORE=surrealdb","SurrealDB schema bootstrap and migration tracking","Persistence for EHRs, templates, versions, contributions, composition indexes, and audit events"],"id":"clinical_persistence","status":"implemented","title":"Runtime-selectable clinical storage"},{"boundary":"This slice bounds API payloads and exposes stable pagination metadata. Store-level indexed cursor pagination remains a follow-up scalability optimization.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/problems?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/allergies?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/medications?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/results?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/orders?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/encounters?limit=50&offset=0","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/notes?limit=50&offset=0"],"functions":["Default list limit of 50 entries","Maximum API list limit of 100 entries","Consistent limit/offset query parameters across chart list APIs","Pagination metadata with total, returned, limit, offset, and has_more","Pagination details recorded in read audit events"],"id":"bounded_clinical_list_reads","status":"implemented","title":"Bounded clinical list reads"},{"entrypoints":["https://api.providehr.showntell.dev/v1/agent/delegations","https://api.providehr.showntell.dev/mcp"],"functions":["Short-lived delegated agent token issue, lookup, and revoke","EHR-bound and scope-bound MCP clinical reads","Source-cited chart summary, timeline, latest vitals, template metadata, Rounds, CarePlan, and patient-twin MCP tools","Audit events for delegated agent-facing clinical reads","Read-only public discovery with non-PHI metadata"],"id":"governed_agent_gateway","status":"implemented","title":"Governed agent gateway foundation"},{"boundary":"This is an API enforcement foundation. It does not yet provide an external identity provider, SMART/OIDC launch, role administration UI, consent policy engine, or certification-grade tenant controls.","entrypoints":["https://api.providehr.showntell.dev/v1/access/policy"],"functions":["Runtime access mode selected with PROVIDEHR_REST_ACCESS_MODE=audit-only or enforce","Header-derived user, tenant, purpose, role, and scope context","Resource-specific scope checks for EHR, FHIR projection, chart list, Rounds, CarePlan, composition, template, AQL, and audit APIs in enforce mode","Machine-readable REST access policy discovery","Audited authorization allow, deny, audit-only, and break-glass decisions","Break-glass access requires x-break-glass-reason in enforce mode"],"id":"rest_access_policy","status":"implemented","title":"Initial REST clinical access policy"},{"boundary":"Clinical notes are chart records only. E-signature, cosign, note templates, coding assistance, AI draft governance, amendments, and legal attestation remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/notes","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/notes/{note_id}"],"functions":["Create clinical note chart record as an immutable COMPOSITION","List clinical notes for one EHR","Read one clinical note by note id","Return source references for each note projection"],"id":"clinical_note_api","status":"implemented","title":"Clinical Note API"},{"boundary":"This is a registry read/search surface over EHR containers. Probabilistic MPI matching, identity proofing, duplicate resolution, merge/unmerge, enterprise registration, and eligibility workflows remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/patients?limit=50&offset=0","https://api.providehr.showntell.dev/v1/patients?subject_namespace=local&subject_id={subject_id}"],"functions":["List EHR-backed patient registry entries with bounded limit/offset pagination","Look up one registry entry by subject namespace and subject id","Include latest demographics summary when a demographics COMPOSITION exists","Return EHR_STATUS and demographics source references for provenance"],"id":"patient_registry_api","status":"implemented","title":"Patient Registry Search API"},{"boundary":"Demographics are chart-record snapshots. Full MPI, identity proofing, merge/unmerge, insurance eligibility, and registration workflows remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/demographics","https://api.providehr.showntell.dev/fhir/Patient/{ehr_id}"],"functions":["Create patient demographics snapshots as immutable COMPOSITION versions","Read the latest demographics snapshot for one EHR","Project latest demographics into FHIR Patient","Return source references for demographics provenance"],"id":"patient_demographics_api","status":"implemented","title":"Patient Demographics API"},{"boundary":"Encounters are chart records only. Scheduling, bed management, charge capture, claims, and full visit lifecycle workflows remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/encounters","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/encounters/{encounter_id}"],"functions":["Create encounter chart record as an immutable COMPOSITION","List encounters for one EHR","Read one encounter by encounter id","Return source references for each encounter projection"],"id":"encounter_api","status":"implemented","title":"Encounter API"},{"boundary":"Service requests are chart records only. E-sign, order routing, fulfillment, external lab interfaces, prior authorization, and cancellation/amendment workflows remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/orders","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/orders/{order_id}"],"functions":["Create service request/order chart record as an immutable COMPOSITION","List service requests for one EHR","Read one service request by order id","Return source references for each order projection"],"id":"service_request_api","status":"implemented","title":"Service Request API"},{"boundary":"Diagnostic results are chart records only. Order entry, HL7 lab interfaces, result inbox sign-off, imaging workflows, and abnormal-result routing remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/results","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/results/{result_id}"],"functions":["Create structured diagnostic/lab result as an immutable COMPOSITION","List diagnostic results for one EHR","Read one diagnostic result by result id","Return source references for each result projection"],"id":"diagnostic_result_api","status":"implemented","title":"Diagnostic Result API"},{"boundary":"Medication statements are chart records only. eRx, dispensing, administration, and interaction checking remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/medications","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/medications/{medication_id}"],"functions":["Create medication statement as an immutable COMPOSITION","List medication statements for one EHR","Read one medication statement by medication id","Return source references for each medication projection"],"id":"medication_statement_list","status":"implemented","title":"Medication Statement API"},{"boundary":"Allergy entries are openEHR COMPOSITION-backed clinical records. Medication reconciliation and eRx interaction checking remain roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/allergies","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/allergies/{allergy_id}"],"functions":["Create allergy/intolerance item as an immutable COMPOSITION","List allergy/intolerance entries for one EHR","Read one allergy/intolerance entry by allergy id","Return source references for each allergy projection"],"id":"allergy_intolerance_list","status":"implemented","title":"Allergy Intolerance API"},{"boundary":"Problem entries are openEHR COMPOSITION-backed clinical record writes. Broader diagnosis support and AI autonomous diagnosis remain disabled.","entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/problems","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/problems/{problem_id}"],"functions":["Create problem list item as an immutable COMPOSITION","List problem entries for one EHR","Read one problem entry by problem id","Return source references for each problem projection"],"id":"problem_list","status":"implemented","title":"Problem List API"},{"boundary":"This slice is a deterministic built-in catalog. Full external terminology server integration remains roadmap work.","entrypoints":["https://api.providehr.showntell.dev/v1/terminology/value-sets","https://api.providehr.showntell.dev/v1/terminology/value-sets/{value_set_id}","https://api.providehr.showntell.dev/v1/terminology/value-sets/{value_set_id}/expand","https://api.providehr.showntell.dev/v1/terminology/validate-code"],"functions":["List governed value sets","Read value-set metadata","Expand built-in value sets","Validate code/system pairs against a value set"],"id":"terminology_service","status":"implemented","title":"Initial terminology and value-set service"},{"boundary":"FHIR resources are read-only projections. openEHR COMPOSITION versions remain the clinical source of truth.","entrypoints":["https://api.providehr.showntell.dev/fhir/metadata","https://api.providehr.showntell.dev/fhir/Patient?identifier=urn:providehr:subject:local|{subject_id}","https://api.providehr.showntell.dev/fhir/Patient/{ehr_id}","https://api.providehr.showntell.dev/fhir/Observation?patient={ehr_id}&code=vital-signs","https://api.providehr.showntell.dev/fhir/Condition?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/AllergyIntolerance?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/MedicationStatement?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/DiagnosticReport?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/ServiceRequest?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/Encounter?patient={ehr_id}","https://api.providehr.showntell.dev/fhir/DocumentReference?patient={ehr_id}"],"functions":["Read FHIR CapabilityStatement","Read Patient projection by ProvidEHR EHR id","Search Patient projections by EHR id, subject identifier, or bounded page","Search latest vital-sign Observation projection by patient and code","Search Condition projections from problem list entries","Search AllergyIntolerance projections from allergy/intolerance entries","Search MedicationStatement projections from medication statement entries","Search DiagnosticReport projections from diagnostic result entries","Search ServiceRequest projections from order entries","Search Encounter projections from encounter entries","Search DocumentReference projections from clinical note entries"],"id":"fhir_read_facade","status":"implemented","title":"Initial FHIR R4 read facade"},{"boundary":"Cards are decision support only. The clinician keeps autonomy; ProvidEHR takes no autonomous action.","entrypoints":["https://api.providehr.showntell.dev/cds-services","https://api.providehr.showntell.dev/cds-services/prevention-view"],"functions":["Discovery document for CDS services","patient-view hook returning deterministic prevention cards","One warning card per flagged risk domain plus a next-best-action card"],"id":"cds_hooks","status":"implemented","title":"CDS Hooks prevention service"},{"entrypoints":["https://api.providehr.showntell.dev/v1/patient-invites","https://api.providehr.showntell.dev/v1/patient-sync/journal-batch"],"functions":["Create patient invite","Accept invite and issue scoped patient sync token","Ingest patient journal batches with bearer-token authorization","Persist Peptiter journal entries as openEHR COMPOSITION versions","Idempotency acknowledgements for repeated journal entries"],"id":"patient_sync","status":"implemented","title":"Patient app sync foundation"},{"entrypoints":["https://api.providehr.showntell.dev/v1/rounds/cases","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/rounds/cases","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/rounds/cases/{case_id}"],"functions":["Read Rounds queue from openEHR COMPOSITIONs","Read per-patient Rounds cases and case detail","Expose delegated MCP Rounds case summary tool"],"id":"rounds","status":"implemented","title":"Rounds record substrate"},{"entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/care-plans","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/care-plans/{care_plan_id}","https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/care-plans/{care_plan_id}/activities/{activity_id}/events"],"functions":["Read CarePlan list and detail from openEHR COMPOSITIONs","Merge patient-reported low-risk activity events","Expose delegated MCP CarePlan read and patient activity check-off tools"],"id":"care_plan","status":"implemented","title":"FHIR-shaped CarePlan read and patient-reported event substrate"},{"entrypoints":["https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/patient-twin-profile"],"functions":["Normalize patient profile source COMPOSITIONs into the DiscoveryLab PatientProfile shape","Extract age, sex, and ethnicity from first-class patient demographics COMPOSITIONs","Preserve source composition and version references","Expose REST and delegated MCP patient-twin profile reads"],"id":"patient_twin","status":"implemented","title":"Source-cited patient twin profile export"}],"links":{"a2a":"https://api.providehr.showntell.dev/a2a","access_policy":"https://api.providehr.showntell.dev/v1/access/policy","action_grants":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/action-grants","agent_capabilities":"https://api.providehr.showntell.dev/v1/agent/capabilities","agent_card":"https://api.providehr.showntell.dev/.well-known/agent-card.json","allergies":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/allergies","aql":"https://api.providehr.showntell.dev/v1/query/aql","audit_events":"https://api.providehr.showntell.dev/v1/audit/events","care_plans":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/care-plans","clinician_keys":"https://api.providehr.showntell.dev/v1/clinician-keys","compositions":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/composition","delegations":"https://api.providehr.showntell.dev/v1/agent/delegations","demographics":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/demographics","ehr":"https://api.providehr.showntell.dev/v1/ehr","encounters":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/encounters","fhir_metadata":"https://api.providehr.showntell.dev/fhir/metadata","fhir_patient_search":"https://api.providehr.showntell.dev/fhir/Patient","health":"https://api.providehr.showntell.dev/health","jwks":"https://api.providehr.showntell.dev/.well-known/jwks.json","mcp":"https://api.providehr.showntell.dev/mcp","medications":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/medications","notes":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/notes","oauth_authorize":"https://api.providehr.showntell.dev/oauth/authorize","oauth_register":"https://api.providehr.showntell.dev/oauth/register","oauth_token":"https://api.providehr.showntell.dev/oauth/token","openapi":"https://api.providehr.showntell.dev/openapi.json","orders":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/orders","patient_invites":"https://api.providehr.showntell.dev/v1/patient-invites","patient_sync":"https://api.providehr.showntell.dev/v1/patient-sync/journal-batch","patient_twin_profile":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/patient-twin-profile","patients":"https://api.providehr.showntell.dev/v1/patients","problems":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/problems","results":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/results","rounds_cases":"https://api.providehr.showntell.dev/v1/rounds/cases","smart_configuration":"https://api.providehr.showntell.dev/.well-known/smart-configuration","staging_draft_place_order":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/staging/drafts/{draft_id}/place-order","staging_draft_promote":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/staging/drafts/{draft_id}/promote","staging_drafts":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/staging/drafts","templates":"https://api.providehr.showntell.dev/v1/definition/template/{template_id}","terminology_validate_code":"https://api.providehr.showntell.dev/v1/terminology/validate-code","terminology_value_sets":"https://api.providehr.showntell.dev/v1/terminology/value-sets","timeline":"https://api.providehr.showntell.dev/v1/ehr/{ehr_id}/timeline"},"mcp":"https://api.providehr.showntell.dev/mcp","name":"ProvidEHR","not_yet_implemented":[{"id":"complete_clinician_ehr","planned_functions":["Clinician chart UI","Documentation workflow beyond chart-record note capture","MPI/registration workflows, order signing/routing, result inbox workflows, lab interfaces, imaging, medication administration, eRx, scheduling, visit lifecycle workflows, referrals, messaging, billing, patient portal, and population health"],"status":"not_implemented","title":"Full clinician EHR application"},{"id":"production_interoperability","planned_functions":["Production-grade FHIR R4/R5 facade beyond the current read-only Patient, Observation, Condition, AllergyIntolerance, MedicationStatement, DiagnosticReport, ServiceRequest, Encounter, and DocumentReference projections","US Core and USCDI mapping","SMART App Launch and OIDC","Bulk FHIR export","HL7 v2, C-CDA, X12, TEFCA/HIE connectivity, FHIRcast, and conformance testing"],"status":"not_implemented","title":"Production interoperability suite"},{"id":"full_semantic_platform","planned_functions":["Deeper openEHR RM and OPT engine coverage","Terminology and value-set service beyond the initial built-in value-set catalog","Broad AQL parser, semantic validator, query planner, and semantic indexing","Archetype/template governance workflows"],"status":"not_implemented","title":"Full semantic clinical platform"},{"id":"production_security_compliance","planned_functions":["External IAM-backed RBAC/ABAC administration, consent policy adjudication, and production tenant isolation","Immutable audit hardening","Key management, backups, disaster recovery, observability, release/change control, SOC 2/HITRUST-ready controls, and support operations"],"status":"not_implemented","title":"Production security, compliance, and operations"},{"id":"governed_ai_write_workflows","planned_functions":["Clinician-reviewed AI draft generation","Persisted agent registry, prompt/model registry, approval workflow, and evaluation harness","Prompt-injection defenses, bias/drift monitoring, clinical safety review, and high-risk action gating","Autonomous diagnosis, prescribing, ordering, external disclosure, deletion, and silent chart mutation are intentionally not enabled"],"status":"not_implemented","title":"Governed AI-first write and approval workflows"},{"id":"certification_market_readiness","planned_functions":["ONC certification strategy","Inferno and API conformance testing","Real-world testing plans","Implementation guides, migration/import tooling, BAAs/contracts, deployment playbooks, and support operations"],"status":"not_implemented","title":"Certification and market readiness"}],"openapi":"https://api.providehr.showntell.dev/openapi.json","patient_invites":"https://api.providehr.showntell.dev/v1/patient-invites","patient_sync":"https://api.providehr.showntell.dev/v1/patient-sync/journal-batch","patients":"https://api.providehr.showntell.dev/v1/patients","protocols":{"implemented":[{"description":"openEHR-inspired clinical record APIs, patient sync APIs, Rounds, CarePlan, patient-twin, audit, OpenAPI, health, and discovery endpoints.","id":"rest","name":"REST/JSON API"},{"description":"Implemented for governed, delegated, patient-scoped read tools and low-risk patient-reported CarePlan check-off.","id":"mcp","name":"Model Context Protocol","version":"2025-11-25"},{"description":"Public non-PHI Agent Card discovery plus task execution: message/send delegates a published skill to a governed capability (same delegation token, scope check, and audit as MCP) and returns a Task; tasks/get retrieves it.","id":"a2a","name":"Agent-to-Agent (A2A)","version":"1.0"}],"not_yet_implemented":[{"description":"FHIR R4/R5, US Core, SMART launch, Bulk FHIR, HL7 v2, C-CDA, X12, TEFCA/HIE, and FHIRcast are roadmap workstreams.","id":"smart_fhir","name":"SMART on FHIR and production FHIR facade"}]},"rounds_cases":"https://api.providehr.showntell.dev/v1/rounds/cases","safety_boundaries":["For clinician review; not a diagnosis, prescription, treatment order, or autonomous chart action.","Public landing and discovery responses must not contain PHI.","Agents may retrieve, summarize, validate, and report delegated context; they may not silently diagnose, prescribe, order, externally disclose, delete, or perform high-risk chart writes.","Current delegated agent tokens are short-lived and scoped to one EHR context; production IAM-backed RBAC, ABAC, consent policy adjudication, tenant isolation, and persisted approval workflows are not complete.","REST clinical APIs can run in audit-only or enforce mode. Enforce mode requires x-user-id and x-user-scopes, and audits break-glass access when x-break-glass-reason is supplied. External IAM, policy administration, consent adjudication, and production tenant isolation remain roadmap work."],"service":"provid-ehr-api","status":"ok","version":"0.1.0"}