Passer au contenu

Data flow

How data moves from the EHR to the patient's screen in EDFlow, what crosses each boundary and what never does, and the data inventory by privacy class with retention.

Cette page n'est pas encore offerte en français; elle est affichée en anglais.

From the EHR to the screen

sequenceDiagram
  participant EHR
  participant Engine as Integration engine
  participant Ingest
  participant Pipeline
  participant DB as Database
  participant Views as Projections
  EHR->>Engine: ADT, orders, results (HL7 v2 or FHIR)
  Engine->>Engine: Filter to ED visits, ACK the EHR
  Engine->>Ingest: HTTPS, signed or OAuth, from a queue
  Ingest->>Ingest: Authenticate, size limits, parse in memory
  Ingest->>Pipeline: Drop or reject prohibited fields; hash identifiers
  Pipeline->>DB: Facts by precedence, derived stage, ledger entry (30 days)
  DB-->>Views: Live queries
  Views-->>Views: Patient, family, staff, display, API projections
  1. The engine filters to ED visits and acknowledges the EHR as soon as it has stored the message. EDFlow is a separate, queued destination: its outage can't block EHR feeds.
  2. Ingest authenticates the sender, checks size and parses in memory. Raw messages are never stored or logged.
  3. Prohibited fields (result values, notes, diagnoses, medications, allergies, health card numbers, addresses, phones, emails) reject the event before anything is stored. The HL7 and FHIR adapters drop these elements before mapping.
  4. EHR identifiers (visit number, record number, order numbers) are hashed with a site-scoped key on receipt. Family name and date of birth are used only for a sign-in match key and discarded.
  5. Each audience reads through its own allow-listed projection.

Data inventory

DataSourceStored asWho sees itRetention (default)
Record number, visit numberEHRKeyed hashNobody (matching only)While records exist
Given or preferred name, family initialEHR or patientPlainPatient, care team30 days after departure, then removed
Family name, date of birthEHRNot stored (match key and age only)Nobody—
Health card, address, phone, email from the EHR—Never received——
Patient or family phone for textsPatient, verified with a codeEncrypted; last 2 digits shownThe patient or family memberUntil access or the link ends
CTAS, times, dispositionEHR or staffPlainStaff; patients see the stage only30 days, then de-identified
Chief complaintEHR, opt-inPlainClinical staff only30 days
Care-team names and rolesEHR or staffPlainPatient: name and role; family: first name and role30 days
Test names and status timesEHR or staffPlain; sensitive tests shown genericallyPatient and staff, never family30 days, then de-identified samples
Result values, notes, diagnoses—Never received——
Requests, tasks, feedbackPatient or staffStructured types; no free textCare team, admins30 days, except safety records
Safety records (urgent and high requests, summaries, delay notices, call-backs, pauses)The serviceIdentifiablePrivacy office10 years (hospital schedule)
Questions notepadPatientOn the patient's device only, encryptedThe patientDeleted at access end
Audit logThe serviceAppend-onlyPrivacy office2 years (up to 10)
Event ledgerIngestMinimized, names and date of birth removedIntegration analysts30 days

Minimal data profile

Hospitals can choose a minimal profile: the EHR sends no names and no date of birth, patients sign in with a longer visit code and type the name they want to be called, and the staff board shows bed and initials.

What never leaves

  • No PHI in push, SMS or email: lock screens say "You have a new update." Payloads are lint-tested in CI.
  • No PHI in URLs: patient and family tokens travel only in the URL fragment, which browsers never send to a server, and are removed from the address bar at once.
  • No PHI in logs: the backend logger accepts only allow-listed keys (ids, event types, counts, durations, error codes).
  • No PHI in analytics: product telemetry has no patient data; ED analytics use de-identified facts with small-cell suppression.

Dernière mise à jour le

Cette page vous a-t-elle été utile?

Sur cette page