The Grove FHIR Implementation Guides define international, reusable FHIR R4 contracts for mobile health data. The Grove FHIR Mobile guide describes source-neutral Observations, recording and application Device roles, immutable conversion and retraction graphs, study context, and conversion provenance. Platform adapters add source-specific mappings and deployment-scoped typed identifiers without changing shared resource semantics. Swift, TypeScript, Kotlin, and other implementations produce FHIR resources conforming to these contracts. This repository owns the guides, examples, negative corpora, and a producer-neutral validation kit; it never clones or executes an implementation repository.
The canonical namespace is https://grovealliance.org/fhir.
Canonical identity does not imply that the guides are currently hosted on that domain.
During development, GitHub Pages remains the documentation preview.
Start with the Grove FHIR Mobile guide to understand the common resource model and copy a complete example. The package graph is:
| Package | Layer and dependency |
|---|---|
org.grovealliance.fhir.mobile |
Source-neutral mobile measurements, exchange graphs, Devices, and conversion provenance; foundation package |
org.grovealliance.fhir.questionnaire |
International Questionnaire and QuestionnaireResponse exchange; independent of the measurement graph and based on SDC R4 |
org.grovealliance.fhir.sensor |
Source-neutral SampledData, ECG, immutable raw Recording Documents, and Sensor conversion provenance; depends on Mobile |
org.grovealliance.fhir.healthkit |
Apple HealthKit adapter; depends on Mobile and Sensor |
org.grovealliance.fhir.health-connect |
Android Health Connect 1.1 adapter; depends on Mobile |
org.grovealliance.fhir.sensorkit |
Apple SensorKit adapter; depends on Mobile and Sensor |
org.grovealliance.fhir.providers |
Google Health API, Oura, and Withings mappings; depends on Mobile and Sensor |
org.grovealliance.fhir.withings |
Withings-exclusive mappings; depends on Mobile, Sensor, and the Connected Provider Adapter |
org.grovealliance.fhir.oura |
Oura-exclusive mappings; depends on Mobile, Sensor, and the Connected Provider Adapter |
org.grovealliance.fhir.google-health |
Google Health API-exclusive mappings; depends on Mobile, Sensor, and the Connected Provider Adapter |
Use the HealthKit adapter, Health Connect adapter, Sensor and waveform guide, SensorKit adapter, or connected-provider adapter for the applicable already-obtained source data. Use the Questionnaire Exchange guide to publish instruments and exchange their responses. Adapter packages define mappings and conformance; they do not fetch provider or platform data, authenticate to provider APIs, or prescribe persistence behavior.
The build requires Node.js 24, Ruby 3.3, and Java 21. It uses lockfile-pinned SUSHI and Jekyll dependencies and downloads checksum-pinned FHIR Publisher and Validator releases.
npm ci
npm test
npm run pages:buildpages:build builds and validates the guides in dependency order, rejects Publisher QA errors or warnings, and assembles a guide-only local preview under .build/pages.
Conformance/README.md documents how a producer validates emitted resources against packages built from the same Grove FHIR revision.
The publication model documents canonical routes, package checksums, and the release process. The naming and versioning conventions state when a persisted identifier may still change and how a client is expected to pin a release.
Contributions to this project are welcome. Please make sure to read the contribution guidelines and the contributor covenant code of conduct first. You can find a list of contributors in the CONTRIBUTORS.md file.
This project is licensed under the MIT License. See LICENSE.md for more information.
If you use this software, please cite it using the metadata in CITATION.cff, which GitHub surfaces through the Cite this repository button.
For more information, visit the Schmiedmayer Lab GitHub organization.

