Skip to content
Stream-to-Clinic

Standards

Every report, baseline and alert is an HL7 FHIR R4 resource you can check at the source.

At a glance

How each concept maps to FHIR

Stream-to-Clinic concepts and the FHIR resources and profiles that carry them
ConceptFHIR resourceProfile
Stream siteLocationLocationOah (opens in a new tab)OAH
Citizen reportObservationObservationIndicatorsOah (opens in a new tab)OAH
Report photoMedia + BinaryCore R4
Who reported it, and whenProvenanceStcReportProvenance (opens in a new tab)ours
District cohort near a streamGroupGroupOah (opens in a new tab)OAH
Baseline disease prevalenceObservationObservationHealthMeasureOah (opens in a new tab)OAH
Clinic and the streams it servesOrganization + HealthcareServiceCore R4
Health alert with its evidenceDetectedIssueStcStreamRiskAlert (opens in a new tab)ours
Alert sent to a clinicCommunicationStcClinicAlert (opens in a new tab)ours
Clinic's replyCommunication (inResponseTo)StcClinicResponse (opens in a new tab)ours
AI-drafted plain-language noticeCommunication (sender Device) + ProvenanceStcClinicAdvisory (opens in a new tab)ours
Trigger for outside observationsSubscription (rest-hook)Core R4

Our own profiles, built on the OAH IG

Seven profiles for what happens after the stream: alert, clinic messages, AI advisory, lineage.

Live examples

Real resources on the public FHIR server, right now.

Conformance, checked on every change

  1. Build the OAH IG at a pinned commit

    b907cf0
  2. Generate samples from the app's code

  3. Build our profiles from FSH

  4. Validate with the HL7 validator

    validator_cli
Validate FHIR workflow status

Plugging in another system

Any system that writes an ObservationIndicatorsOah Observation gets the same assessment.

  1. Partner writes an Observation

    ObservationIndicatorsOah
  2. Risk engine re-checks the site

  3. Alert reaches the clinics

    DetectedIssue + Communication
  4. Clinic replies in FHIR

    inResponseTo
  5. Plain-language advisory, marked as AI

    sender: Device + Provenance

Try it with curl

Show commands
# What the server supports
curl -s https://oneaquahealth.duckdns.org/fhir/metadata

# Stream sites conforming to LocationOah
curl -s "https://oneaquahealth.duckdns.org/fhir/Location?_profile=http://hl7.eu/fhir/ig/oah/StructureDefinition/location-oah"

# Latest citizen reports at one site
curl -s "https://oneaquahealth.duckdns.org/fhir/Observation?subject=Location/Loc-Almyros&_sort=-date&_count=5"

# Health alerts and the messages sent to clinics
curl -s "https://oneaquahealth.duckdns.org/fhir/DetectedIssue?_sort=-_lastUpdated"
curl -s "https://oneaquahealth.duckdns.org/fhir/Communication?category=alert"

# Clinic replies, found by our profile
curl -s "https://oneaquahealth.duckdns.org/fhir/Communication?_profile=https://oneaquahealth.duckdns.org/fhir/StructureDefinition/stc-clinic-response"

# Everything about one site as a single Bundle
curl -s https://oneaquahealth.duckdns.org/sites/Loc-Almyros/bundle