- Ingestion pipeline
- Parse → syntax → schema → normalize → canonical FHIR → quality → store. Every stage is recorded as an ingestion event so problems can be traced.
backend/app/ingestion/pipeline.pyingestion/hl7/*ingestion/ccda/parser.pyingestion/fhir/validator.py - Data layer
- PostgreSQL 16 stores canonical FHIR R4 resources. Clinical note chunks live in pgvector with an HNSW index. SQLite is supported for local development and tests.
- Agent (LangGraph)
- Ten nodes: safety screen, intent classification, patient identification, tool planning, tool execution, document retrieval, evidence validation, response generation, grounding check, finalize. Conversation memory via a checkpointer.
backend/app/agents/graph.pyagents/nodes.pyagents/grounding.py - Tools
- patient_lookup, encounter_lookup, medication_lookup, condition_lookup, observation_lookup, document_search, appointment_lookup, clinical_summary, healthcare_data_quality.
- LLM providers (optional)
- None (extractive, default), Anthropic, OpenAI, or Claude via AWS Bedrock — selected by configuration.
- MCP server
- A thin stdio adapter over the REST API exposing 9 tools, so MCP-compatible assistants can query the platform.
- Security
- JWT auth with viewer / developer / admin roles, PBKDF2 password hashing, rate limiting, secure headers, audit log. The public demo login never grants admin.
- Frontend & deployment
- React + TypeScript (Vite) UI with dashboards for ingestion, quality, agent, evaluation and traces. Dockerised backend and frontend.