La santé sur des flux en direct.
Événements cliniques, constantes patient et télémétrie de dispositifs se périment en secondes. Les dashboards batch voient la dégradation après coup — un pipeline en streaming la voit à l'instant, et alerte le bon clinicien avec du contexte.
Un seul flux pour admissions, prescriptions, résultats
Les événements des systèmes cliniques arrivent en streams — via webhooks, polling HTTP des APIs, ou sources de change data capture contre vos stores existants. Les stages normalisent, enrichissent et routent : les équipes aval s'abonnent à des topics propres au lieu de ré-intégrer chaque système source.
Fenêtres sur les constantes, par patient
L'état par clé (patient) tient une image live : fenêtres glissantes pour les tendances, stddev pour l'instabilité, watermarks event-time pour honorer les mesures en retard. Des stages de règles déterministes encodent vos seuils d'escalade et déclenchent en microsecondes — pas de modèle dans le chemin de l'alarme.
Une flotte de dispositifs, un seul pipeline
Les passerelles publient la télémétrie en MQTT ou HTTP ; le dedup absorbe les retries des réseaux instables. L'agrégation par dispositif suit la dérive, les trous et la santé batterie/heartbeat — et un dispositif silencieux est lui-même un signal, capté par des timers par clé quand la mesure attendue n'arrive pas.
Joindre le bon humain, avec le contexte
Quand un seuil se déclenche, un stage LLM peut rédiger le résumé de contexte — tendance, historique, ce qui a franchi la ligne — et un stage MCP le livre au bip, à la messagerie ou à la boîte EHR. Le système fait surface et résume ; le clinicien décide.
Contrôles de confidentialité stricts
La confidentialité par l'architecture, pas par la promesse.
Auto-hébergé, entièrement
Le moteur, les pipelines et chaque événement tournent sur votre infrastructure — on-prem ou sur votre tenancy cloud. Les données patients ne transitent jamais par un SaaS fournisseur.
Vos modèles, à l'intérieur
Les stages LLM peuvent tourner contre un runtime local — le modèle de résumé est dans le même périmètre que la donnée. Aucune PHI dans un prompt tiers sauf choix explicite.
Audité de bout en bout
Un flux d'audit auquel s'abonner, un tracing par événement et une trajectoire persistée pour chaque événement — qui a vu quoi, qu'est-ce qui s'est déclenché, qu'est-ce qui a été livré.
Accès gouverné
SSO/SAML, accès à base de rôles et audit à longue rétention sont fournis avec StreamFlow Enterprise pour les déploiements multi-équipes et multi-sites.
Cadre honnête : StreamFlow est une infrastructure, pas un dispositif médical certifié, et l'auto-hébergement ne rend pas un déploiement conforme à lui seul. Ce que l'architecture apporte à votre programme de conformité : des données qui ne quittent jamais votre périmètre, un rejeu déterministe de toute décision, et un audit trail par événement. Vos obligations réglementaires (HIPAA, RGPD, MDR…) restent des évaluations que votre équipe conduit — nous répondrons à chacune de leurs questions techniques.
Humain dans la boucle
Le pipeline n'agit jamais sur un patient. Il agit sur l'attention.
Chaque chemin automatisé dans un déploiement clinique se termine chez une personne avec du contexte — un bip, un message, un item d'inbox, une demande d'approbation. Les stages MCP peuvent bloquer sur une approbation humaine explicite avant tout enchaînement, et chaque approbation ou dismissal fait partie du dossier d'audit. Le rejeu déterministe permet de reconstruire toute alerte après coup : les mesures exactes, la règle exacte, l'instant exact.
À quoi ça ressemble
Une surveillance de dégradation tient dans un fichier.
Les constantes arrivent en stream par patient ; les tendances sont calculées en fenêtres ; les seuils alertent l'équipe de soin avec un résumé rédigé.
1# pulse.yaml — vitals watch
2source:
3 kind: webhook # gateway posts vitals
4
5stages:
6 - name: trend
7 engine: streaming
8 operators:
9 - window: 10m sliding
10 keyBy: patient_id
11 aggregations:
12 hr_avg: avg(heart_rate)
13 hr_stddev: stddev(heart_rate)
14 spo2_min: min(spo2)
15
16 - name: escalate
17 engine: rule-based
18 rules:
19 - "spo2_min < 92 || hr_stddev > 15"
20
21 - name: summarize
22 engine: llm # local runtime — PHI stays in
23 systemPrompt: |
24 Draft a one-paragraph situation summary
25 for the responding clinician.
26
27 - name: page
28 engine: mcp
29 mcpTools: [ oncall.notify ]
30
31sink:
32 kind: webhook # unit dashboard
33 url: ${secret:UNIT_BOARD_WEBHOOK}
34- 1
Scaffold.
pulse new vitals --source webhook --stage streaming:trend --stage rule-based:escalate --stage llm:summarize --stage mcp:page --sink webhook - 2
Gardez le modèle à l'intérieur.
Pointez le stage llm sur votre runtime local — le résumé est rédigé sans qu'aucune PHI ne quitte le périmètre.
- 3
Déployez & observez.
pulse deploy . && pulse events tail --topic vitals.escalate.outChaque escalade, en direct et auditée.
- 4
Reconstruisez toute alerte.
Le rejeu déterministe reproduit les mesures exactes et la règle exacte derrière chaque bip — pour la revue, la QA ou un régulateur.
Regardez le flux à l'intérieur de vos murs.
Voyez un pipeline de constantes fenêtrer, escalader et résumer en quelques minutes — sans installation, sans inscription. Puis auto-hébergez-le là où vivent les données.
Pulse est gratuit et auto-hébergé. HA multi-nœuds, géo-réplication et gouvernance sont inclus dans StreamFlow Enterprise.