Inspiration

OneAquaHealth connects the health of urban freshwater ecosystems with the well-being of people and communities. Its public Resilience Map provides useful environmental data, but those records are exposed through source-specific interfaces. We wanted to explore how that data could be made easier for researchers and software systems to exchange without losing its origin or overstating what it means.

What we built

AquaManFHIR is an interoperability prototype for verified public OneAquaHealth Resilience Map data. It retrieves site, ecosystem-risk, and urban-context records; normalizes numeric source fields while preserving their identifiers and provenance; and maps them to FHIR R4 Location, Observation, Provenance, and Bundle resources.

The project also provides a read-only FHIR API with a CapabilityStatement, selected searches and reads, and a $validate operation. A web workspace lets users inspect source records, normalized values, generated resources, and validation results. An optional Gemini agent answers questions through controlled backend tools and shows the source identifiers used for its response.

How we built it

The backend uses Node.js, Express, and TypeScript for source retrieval, normalization, FHIR mapping, validation, and AI tool execution. The React and Vite frontend provides the site workspace, map, FHIR resource viewer, and AI interface. The Gemini API key stays on the backend.

What we learned

Interoperability is not just converting JSON into another shape. Source identifiers, dates, units, terminology, and provenance all affect whether another system can interpret the result responsibly. We learned to distinguish structural validation from terminology or profile conformance, and to make missing information visible instead of filling gaps with assumptions.

Challenges and limitations

The observed OneAquaHealth endpoints do not come with a versioned public API contract, and we did not identify an official OAH FHIR profile or terminology guide. Some values have no published units, and some records have no sampling date. We preserve those limitations: we do not invent units, dates, clinical meaning, or risk thresholds. Citizen-science records were not included because a public endpoint and schema could not be verified.

AquaManFHIR is a prototype, not a clinical tool or a claim of conformance to an official OAH profile. Its goal is to give researchers and integrators a traceable starting point for exchanging verified ecosystem data through FHIR.

Share this project:

Updates

Submission history