MCPSERV.CLUB
Fasten

Fasten

Self-Hosted

Securely aggregate your health data into a personal record

Active(88)
2.5kstars
1views
Updated 9 days ago

Overview

Discover what makes Fasten powerful

Fasten On‑Premise is a self‑hosted Personal Health Record (PHR) platform that aggregates patient‑authorized data from multiple healthcare providers—hospitals, labs, insurance carriers, and specialty clinics—into a single, privacy‑first dashboard. From a technical standpoint the application exposes a **RESTful API** and a **GraphQL endpoint** for programmatic access, while the front‑end is a modern single‑page application that consumes these APIs over HTTPS. The core data model follows the FHIR (Fast Healthcare Interoperability Resources) standard, allowing seamless ingestion and export of clinical documents such as lab results, imaging reports, and medication lists. The server side is built in **Go** for high concurrency and low memory footprint, whereas the client uses **React** with TypeScript to provide a responsive UI.

Backend

Database

Provider Integration

Front‑end

Overview

Fasten On‑Premise is a self‑hosted Personal Health Record (PHR) platform that aggregates patient‑authorized data from multiple healthcare providers—hospitals, labs, insurance carriers, and specialty clinics—into a single, privacy‑first dashboard. From a technical standpoint the application exposes a RESTful API and a GraphQL endpoint for programmatic access, while the front‑end is a modern single‑page application that consumes these APIs over HTTPS. The core data model follows the FHIR (Fast Healthcare Interoperability Resources) standard, allowing seamless ingestion and export of clinical documents such as lab results, imaging reports, and medication lists. The server side is built in Go for high concurrency and low memory footprint, whereas the client uses React with TypeScript to provide a responsive UI.

Architecture

  • Backend – Go (≥1.22) with the Gin web framework, leveraging gorilla/mux for routing and go-chi/jwtauth for token‑based authentication. The application is split into microservice‑like modules: auth, provider-sync, record-store, and notification. Each module is container‑friendly, enabling independent scaling via Docker Compose or Kubernetes.
  • Database – PostgreSQL 15 serves as the primary relational store, enriched with the pg_trgm extension for fuzzy search on clinical notes. A separate Redis cache holds session tokens and rate‑limit counters, while a small Elasticsearch 8.x cluster indexes FHIR resources for full‑text search across the record set.
  • Provider Integration – Fasten implements FHIR® and HL7v2 adapters. Providers expose either a RESTful FHIR endpoint or an HL7v2 feed; the provider-sync module pulls new data, normalizes it into internal FHIR resources, and writes them to PostgreSQL. The sync process is event‑driven, using Kafka (or NATS) for inter‑service messaging when new data arrives.
  • Front‑end – React + Vite, bundled with Webpack for production. The UI consumes the backend APIs via Axios and uses React Query for optimistic updates. Authentication is handled by JSON Web Tokens (JWT) stored in HttpOnly cookies, ensuring no XSS exposure.

Core Capabilities

  • FHIR Resource Store – Full CRUD on Patient, Observation, MedicationStatement, Immunization, etc. The API supports FHIR search parameters (_id, _include, patient:identifier) and pagination.
  • Provider Connectors – Plug‑in architecture allows adding new providers by implementing a Go interface (Syncer). The community hosts connectors for major insurers (BlueCross, UnitedHealth) and labs (Quest, LabCorp).
  • Webhooks & Callbacks – External services can subscribe to record updates via a webhook endpoint. Payloads are signed with HMAC SHA‑256 for integrity.
  • Export & Import – Supports bulk export in FHIR Bundle JSON and CSV formats, facilitating interoperability with EMR systems.
  • Audit Trail – Every API call is logged to PostgreSQL with user ID, timestamp, and action type. A separate audit microservice can stream these logs to an SIEM.

Deployment & Infrastructure

Fasten is fully container‑ready. The official docker-compose.yml orchestrates all services, while Helm charts are available for Kubernetes deployments. The system requires:

  • CPU: 2 vCPUs (minimum), recommended 4 for production
  • Memory: 4 GB RAM, scalable with the number of providers and patient volume
  • Storage: 50 GB for PostgreSQL, 10 GB for Elasticsearch (adjust per data retention)
  • Networking: TLS termination via Traefik or Nginx; optional reverse proxy for multi‑tenant setups

Horizontal scaling is achieved by replicating the record-store and provider-sync services behind a load balancer. PostgreSQL can be promoted to a read‑replica cluster for heavy query loads, while Redis and Elasticsearch scale horizontally as needed.

Integration & Extensibility

  • Plugin System – New provider connectors are simple Go modules implementing a Syncer interface; the community provides a registry of pre‑built connectors.
  • API SDKs – Official Go and TypeScript client libraries wrap the REST/GraphQL endpoints, simplifying authentication and request handling.
  • Custom Dashboards – The front‑end exposes a JSON configuration file (dashboard.json) that developers can edit to rearrange widgets or add custom charts using D3.js.
  • Extensible Auth – Supports OAuth2, OpenID Connect, and SAML; custom authentication providers can be added by extending the auth service.

Developer Experience

The project ships with comprehensive documentation: a developer guide covering architecture, API reference (Swagger/OpenAPI), and plugin development; a user manual for end‑users; and a community forum on Discord. Configuration is driven by environment variables and YAML files, enabling CI/CD pipelines to override defaults per deployment. The codebase follows idiomatic Go practices and is linted with golangci-lint. Unit tests cover 85 % of the backend logic, and end‑to‑end Cypress tests validate the UI. The active Git

Open SourceReady to get started?

Join the community and start self-hosting Fasten today