---
{
  "title": "Appareils portables et IoT médicaux sur FHIR : un guide",
  "description": "Comment modéliser les données d'appareils portables et IoT sous forme de ressources FHIR Device + Observation. Architecture, exemples de mappage et une démo open source avec Aidbox.",
  "date": "2024-03-24",
  "author": "Mike Ryzhikov",
  "reading-time": "5 min read",
  "tags": [
    "Aidbox",
    "Integrations"
  ],
  "seo-tags": [
    "fhir",
    "fhir-backend",
    "fhir-platform",
    "fhir-server",
    "fhir-time-series",
    "fhir-device",
    "fhir-wearable",
    "fhir-database",
    "fhir-first"
  ]
}
---
## Pourquoi bâtir un IoT de santé sur FHIR?
Les appareils IoT médicaux et les dispositifs portables produisent d'importantes quantités de données qui contribuent à améliorer les résultats de santé. Ces données ne sont utiles que si elles sont intégrées aux dossiers médicaux des patients et disponibles pour des analyses approfondies, des systèmes d'alertes en temps réel et l'aide à la décision clinique (CDS).

Le défi, c'est que ces données de séries chronologiques ont une nature et une structure différentes des autres [données FHIR](https://www.hl7.org/fhir/resourcelist.html) comme les données sur les patients, les allergies, les diagnostics, etc. Les séries chronologiques nécessitent une approche particulière pour leur traitement et leur stockage.

Cet article montre comment intégrer efficacement les données produites par des appareils médicaux dans une solution FHIR fondée sur [la plateforme FHIR Aidbox](https://www.health-samurai.io/aidbox). Vous y trouverez le modèle FHIR, un guide pour configurer la plateforme Aidbox, ainsi qu'un lien vers le projet open source qui illustre ce concept.

## Architecture de la solution : appareils portables sur FHIR
Imaginons que nous devions intégrer les données d'une montre intelligente et d'un moniteur ECG dans les [dossiers médicaux FHIR](https://www.hl7.org/fhir/resourcelist.html) que nous gérons déjà au sein de notre [solution basée sur Aidbox](https://www.health-samurai.io/aidbox). Nous allons recevoir les mesures suivantes : fréquence cardiaque (FC), fréquence respiratoire (FR), SpO2 et résultats du diagnostic ECG.

[![iot wearables devices](image-1.avif)](https://www.health-samurai.io/aidbox)

Les données brutes ressemblent à ceci :
![medical wearable iot development](image-2.avif)

### 1. Des données brutes aux données FHIR
Premièrement, nous devons convertir les données brutes en FHIR. [HL7 FHIR](https://www.hl7.org/fhir/resourcelist.html) recommande d'utiliser la [ressource Observation](https://www.hl7.org/fhir/observation.html) pour échanger les signes vitaux, l'ECG et d'autres données mesurables sur les patients. Une solution possible consiste à modéliser les données produites par les appareils selon la [ressource FHIR Observation](https://www.hl7.org/fhir/observation.html) avec les attributs de composants suivants :

![iot wearables for health](image-3.avif)

### 2. Du PostgreSQL générique au PostgreSQL hybride
Deuxièmement, Aidbox est construit sur PostgreSQL et nous stockons les ressources FHIR en JSONB. Dans notre cas, nous devons transformer le puissant Postgres en stockage hybride capable de travailler efficacement à la fois avec du JSONB et des données de séries chronologiques. La clé, c'est l'extension [TimescaleDB](https://www.timescale.com/) pour Postgres. Cette extension ajoute simplement un type de table spécial appelé [Hypertable](https://docs.timescale.com/use-timescale/latest/) pour les séries chronologiques, ainsi que plusieurs options supplémentaires, comme la [compression](https://docs.timescale.com/use-timescale/latest/compression/), les [agrégats continus](https://docs.timescale.com/use-timescale/latest/continuous-aggregates/) et bien d'autres.

En conséquence, nous pouvons continuer à stocker les données FHIR de base en JSONB et les Observations comme données de séries chronologiques dans des [hypertables](https://docs.timescale.com/use-timescale/latest/). Ces données seront référencées et fonctionneront comme un jeu de données unique pour les besoins externes.

![devices on fhir](image-4.avif)

### 3. D'un Aidbox standard à un Aidbox adapté aux séries chronologiques
La troisième étape consiste à configurer notre Aidbox pour qu'il traite et stocke les Observations comme des données de séries chronologiques dans des hypertables, et les autres données FHIR en JSONB via le mécanisme par défaut. Pour y parvenir, nous pouvons remplacer le gestionnaire de point de terminaison /Observation par défaut par un gestionnaire personnalisé. Les clients Aidbox peuvent le faire via [le mécanisme Aidbox Apps](https://www.health-samurai.io/docs/aidbox/tools/aidbox-sdk/aidbox-apps) et créer un gestionnaire personnalisé dans le langage de programmation de leur choix. Il existe également des [SDK pour Aidbox](https://www.health-samurai.io/docs/aidbox/tools/aidbox-sdk) et des [API supplémentaires](https://www.health-samurai.io/docs/aidbox/api-1/reactive-api-and-subscriptions).

![iot wearables healthcare](image-5.avif)
> 

> [Consultez notre documentation complète sur le SDK](https://hubs.ly/Q02y4Vsz0) pour apprendre à créer des applications personnalisées et à adapter la plateforme à vos besoins spécifiques.

### 4. Exploiter la puissance de TimescaleDB pour les alertes
Et voilà — votre interface utilisateur ou vos systèmes externes peuvent récupérer et visualiser les dossiers médicaux et les données d'observation via l'API FHIR standard.

Mais la cerise sur le gâteau, c'est la possibilité d'utiliser efficacement les données de séries chronologiques liées aux données FHIR pour les alertes et l'aide à la décision clinique (CDS). [TimescaleDB](https://www.timescale.com/) offre de nombreux moteurs au-dessus des hypertables, et [le moteur d'agrégats continus](https://docs.timescale.com/use-timescale/latest/continuous-aggregates/create-a-continuous-aggregate/#create-a-continuous-aggregate) en est un exemple. Par exemple, vous pouvez surveiller et générer des alertes en temps réel lorsque la FC augmente ou que la SpO2 diminue. Les conditions déclenchant les alertes peuvent reposer non seulement sur des données de séries chronologiques, mais aussi sur n'importe quelle donnée FHIR de votre solution.

Pour rendre ces alertes disponibles dans votre interface utilisateur ou vos systèmes/modules externes, vous pouvez étendre [l'API Aidbox au moyen d'opérations personnalisées](https://www.health-samurai.io/docs/aidbox/tools/aidbox-sdk/aidbox-apps#operations). Les gestionnaires de ces points de terminaison peuvent être basés sur SQL ou résider dans votre [Aidbox App](https://www.health-samurai.io/docs/aidbox/tools/aidbox-sdk/aidbox-apps) près du gestionnaire de point de terminaison /Observation.

![wearable api](image-6.avif)

### 5. Vue d'ensemble de la solution de bout en bout
Rassemblons toutes ces idées dans la solution de bout en bout.

**#1** - Les appareils génèrent des données brutes de séries chronologiques,
**#2** - Le convertisseur FHIR reçoit ce flux, le convertit en Observations FHIR et les publie dans Aidbox,
**#3** - Aidbox traite les Observations via le point de terminaison /Observation remplacé par l'[Aidbox App](https://www.health-samurai.io/docs/aidbox/tools/aidbox-sdk/aidbox-apps),
**#4** - Les ressources Observation reçues sont stockées dans une [hypertable](https://docs.timescale.com/use-timescale/latest/hypertables/) et sont associées via une référence au patient,
**#5** - Le moteur [TimescaleDB](https://www.timescale.com/) génère des alertes selon des conditions prédéfinies,
**#6** - Aidbox fournit les [données FHIR](https://www.hl7.org/fhir/resourcelist.html) via l'[API FHIR](https://www.hl7.org/fhir/http.html) et les alertes via des points de terminaison personnalisés,
**#7** - L'interface Web visualise ces données et affiche les alertes pour les utilisateurs finaux.

![medical wearable iot development](image-7.avif)

## Bonification
Nous aimons appuyer les paroles par des actes et nous avons [ouvert le code source du projet](https://github.com/Aidbox/timeseries) mettant en œuvre ce concept, que l'un des membres de notre équipe a développé lors d'un hackathon interne de Noël en 48 heures. Si vous avez une formation technique, vous pouvez consulter ce code et interagir avec les idées en pratique sans aucune barrière.

![wearable health data integration](image-8.avif)*Projet open source : https://github.com/Aidbox/timeseries*

## Avantages
Dans cet article, nous avons décrit une solution de base pour intégrer des appareils portables et des appareils médicaux dans un écosystème FHIR-first fondé sur la plateforme FHIR Aidbox. Toutes les composantes de ce pipeline peuvent être ajustées et améliorées pour prendre en charge les charges réelles de votre système. Par exemple, vous pouvez ajouter des files d'attente pour les flux de données des appareils ou une API optimisée de type FHIR pour les Observations, etc.

Pour explorer comment Aidbox peut faciliter l'intégration des données provenant d'appareils portables et médicaux, essayez la [version gratuite d'Aidbox](https://www.health-samurai.io/aidbox#run). Elle offre un environnement complet pour tester et développer ces intégrations, en fournissant tous les outils nécessaires sans aucune limitation de fonctionnalités.

### Résumé des avantages

**# Simplicité** - solution monolithique avec un stockage hybride puissant basé sur PostgreSQL, **# Tout en un seul endroit** - données FHIR et données de séries chronologiques comme jeu de données unique, **# FHIR-first** - transformations internes minimales, avec FHIR utilisé pour échanger et stocker les données, **# Personnalisable** - toutes les composantes de la solution peuvent être personnalisées grâce au paradigme axé sur les données, **# Performance** - les stockages et les moteurs sont fortement optimisés pour les deux types de données.

Auteur :[ **Mike Ryzhikov**](https://www.linkedin.com/in/fhir-solutions/) 
COO chez Health Samurai

[![Aidbox FHIR Platform Free Trial](image-9.avif)](https://www.health-samurai.io/aidbox)

Voir aussi : [Abonnements thématiques : 5 principaux cas d'utilisation](/blog/topic-based-subscriptions-top-5-use-cases-for-digital-health) et [Utiliser FHIR pour simplifier le développement en santé](/blog/using-fhir-to-simplify-healthcare-application-development).