Skip to main content

FHIR ANT

Fast Healthcare Interoperability Resources — Agile Networking Tool

FHIR ANT is a complete FHIR R4 server that runs on your Android phone. It's built with Dart using the fhir_r4 package and designed for mobile-first deployments, testing, and low-resource healthcare settings.

What It Does

FHIR ANT turns your phone into a fully functional FHIR server. Other devices on the same network can connect to it using standard FHIR REST APIs — just like they would with any cloud-hosted FHIR server.

Use cases:

  • Testing & development — Spin up a FHIR server instantly without cloud infrastructure
  • Demonstrations — Show FHIR workflows at conferences, meetings, or training sessions
  • Low-resource settings — Provide FHIR capabilities where internet connectivity is limited or unavailable
  • Education — Learn FHIR by interacting with a real server on your own device
  • Personal health data — Store your own health records locally with full privacy

Architecture

FHIR ANT is a monorepo with four packages:

fhirant/
└── packages/
├── fhirant/ # Flutter mobile app (Android)
├── fhirant_server/ # HTTP server (Shelf-based)
├── fhirant_db/ # Database (Drift/SQLite + SQLCipher)
└── fhirant_logging/ # JSON logging service
  • fhirant_server handles routing, middleware, and all FHIR operations
  • fhirant_db extends fhir_r4_db with server-specific tables (users, export jobs, authorization codes, revoked tokens)
  • The server is pure Dart — it can also run as a CLI process on any platform
  • The database is encrypted with SQLCipher; the encryption key is stored in the device's secure keystore

Quick Start

  1. Install the app on your Android device
  2. On first launch, walk through the onboarding screens
  3. Optionally load sample clinical data (MIMIC-IV subset)
  4. Tap Start to launch the server
  5. Note the URL shown on the Network Info card (e.g., http://192.168.1.42:8080)
  6. From any device on the same network, try:
# Get the server's capabilities
curl http://192.168.1.42:8080/metadata

# Search for patients
curl http://192.168.1.42:8080/Patient

# Create a patient
curl -X POST http://192.168.1.42:8080/Patient \
-H "Content-Type: application/fhir+json" \
-d '{"resourceType":"Patient","name":[{"family":"Smith","given":["John"]}]}'

Dev Mode

By default, the app starts in Dev Mode — authentication is disabled, and all requests are accepted. This is ideal for testing and exploration. Toggle it off in the server control card to require JWT authentication.