Track 7 · Digital Health Standards

Built on the standards health systems already speak.

StreamReach adds no new data silo. Stream data is stored with the official HL7 Europe OneAquaHealth FHIR IG profiles, risk is published as FHIR RiskAssessment, and alerts reach clinicians through CDS Hooks, the HL7 standard EHRs already use for decision support. Anything that speaks FHIR R4 can read it, including OneAquaHealth's own platform.

The loop

  1. 01

    Citizen check

    OAH indicator Observations

  2. 02

    Weather forecast

    Open-Meteo, 7 days

  3. 03

    Risk engine

    explainable logistic model

  4. 04

    RiskAssessment

    about an OAH cohort Group

  5. 05

    CDS Hooks card

    in the GP's EHR

  6. 06

    Feedback

    OAH health-measure Observation

Step 6 feeds back into step 3. Anonymous clinic signals raise the waterborne score for the reach, which closes the One Health loop between ecosystem and human health.

Resource map

ConceptFHIRProfileFrom
Stream reachLocationhttp://hl7.eu/fhir/ig/oah/StructureDefinition/location-oahOAH IG
Citizen / lab indicator (foam, flow, algae, larvae, temperature, coliforms)Observationhttp://hl7.eu/fhir/ig/oah/StructureDefinition/observation-indicators-oahOAH IG
Who reported it (pseudonymous volunteer, lab)Provenancecore R4FHIR core
People exposed to a reachGrouphttp://hl7.eu/fhir/ig/oah/StructureDefinition/group-oah + https://streamreach.io/fhir/StructureDefinition/stream-exposed-cohortOAH IG + StreamReach
Hazard forecast with explanationRiskAssessmenthttps://streamreach.io/fhir/StructureDefinition/stream-exposure-riskStreamReach
Clinic-reported stream-linked cases (anonymous)Observationhttp://hl7.eu/fhir/ig/oah/StructureDefinition/observation-health-measure-oahOAH IG
Alert inside the EHRCDS Hooks card (patient-view)CDS Hooks 2.0HL7
Suggested work-upServiceRequest (draft, LOINC 625-4)core R4FHIR core
AI-drafted, human-approved resident advisoryCommunication (subject: exposed cohort)core R4FHIR core
Who wrote and who approved the advisoryProvenance (author: AI agent, verifier: officer)core R4FHIR core

Indicator codes come from the OAH code system http://hl7.eu/fhir/ig/oah/CodeSystem/temporarySystem-oah-eu. StreamReach only adds codes the IG lacks: https://streamreach.io/fhir/CodeSystem/flow-state (citizen-observable flow) and https://streamreach.io/fhir/CodeSystem/stream-hazard.

CDS Hooks 2.0

  • GET /cds-services
  • POST /cds-services/streamreach-stream-exposure
  • POST /cds-services/streamreach-stream-exposure/feedback

Register the discovery URL in any CDS Hooks client, for example the public CDS Hooks sandbox. Uses prefetch when the EHR provides it and otherwise queries the EHR's fhirServer. Returns at most two cards, with override reasons and feedback.

{
  "services": [
    {
      "hook": "patient-view",
      "id": "streamreach-stream-exposure",
      "title": "StreamReach: urban stream exposure risk",
      "description": "Warns when a patient lives near an urban stream with elevated waterborne-pathogen, toxic-algae or mosquito-borne risk (OneAquaHealth citizen science + weather forecast). Links matching symptoms to likely exposures and suggests work-up.",
      "prefetch": {
        "patient": "Patient/{{context.patientId}}",
        "conditions": "Condition?patient={{context.patientId}}"
      },
      "usageRequirements": "Patient.address should carry the FHIR geolocation extension or a city. Feedback on the 'report' suggestion shares an anonymous, reach-level count and never the patient identity."
    }
  ]
}

Honest by design

  • Explainable, not a black box. Each hazard is a small logistic model with named factors and published weights. Every RiskAssessment carries the factors that produced it as structured extensions.
  • Expert priors, ready to learn. Weights are literature-informed priors, not fitted coefficients. They are built to be recalibrated against OneAquaHealth lab campaigns and syndromic data.
  • Privacy. Volunteers are pseudonymous. Clinic feedback shares a count per stream reach, never the patient.
  • Humans decide. Cards suggest, never order. Citizen checks stay “awaiting verification” until a coordinator reviews them. Low data freshness lowers the stated confidence.