Fast Healthcare Interoperability Resources (FHIR, prononcé « fire », en anglais) est un projet de norme décrivant des formats et des éléments de données (appelés « ressources ») et une interface de programmation d'applications (API) pour l'échange d'informations médicales électroniques.
Les équipes des services d'aide médicale urgente (SAMU) arrivent souvent aux urgences avec des patients dont les données démographiques sont incomplètes ou inconnues : absence de numéro de dossier médical (NDM), de nom confirmé et parfois même de date de naissance. Pourtant, les notes de transport du SAMU doivent impérativement être intégrées au dossier médical approprié.
La santé vit une transformation numérique sans précédent. Dossiers patients, télésuivi, plateformes de coordination, IA… Les données affluent de toutes parts. Mais si elles ne peuvent pas se parler, elles perdent leur sens. Aujourd’hui encore, les informations médicales sont souvent cloisonnées dans des systèmes qui ne dialoguent pas entre eux.
L’enjeu n’est donc plus seulement de collecter la donnée, mais de la rendre accessible, compréhensible et exploitable, pour les soignants, les patients et les décideurs.
Vous envoyez une requête HTTP et recevez une erreur HTTP, mais accompagnée d'une page d'erreur HTML inattendue… Que se passe-t-il ? 🤔
Par exemple, vous avez peut-être essayé de lire une ressource FHIR (par exemple, /Patient/123) et vous obtenez une erreur 404, alors qu'avec d'autres identifiants de patient, vous recevez bien la ressource. La page existe donc bel et bien… Pourquoi obtenez-vous une erreur 404 ? 🙄
La réponse à ces questions est liée au comportement du serveur web IIS face aux erreurs.
IIS propose trois options d'affichage des erreurs :
Afficher uniquement les pages d'erreur personnalisées
Afficher les erreurs serveur détaillées
Pour les requêtes locales, afficher les erreurs détaillées ; pour les requêtes distantes, afficher les pages d'erreur personnalisées.
Dans le paysage actuel des données de santé, FHIR est devenu la norme pour l'échange structuré de données cliniques. Cependant, si FHIR excelle en matière d'interopérabilité, son format JSON rend l'analyse difficile, y compris pour FHIR QuestionnaireResponse.
Ce projet montre la manière de transformer les données FHIR QuestionnaireResponse de JSON emboîté en tables SQL relationnelles et en intégrations vectorielles. En intégrant InterSystems IRIS FHIR SQL Builder et Vector Search, nous révélons la signification sémantique derrière les réponses des patients.
Le Serveur FHIR est une application logicielle qui met en œuvre la norme FHIR (Fast Healthcare Interoperability Resources), ce qui permet aux systèmes de soins de santé de Stocker, accéder, échanger, et gérer les données de soins de santé de manière standardisée.
InterSystems IRIS permet de stocker et de récupérer les ressources FHIR suivantes:
Référentiel de ressources – Le serveur natif IRIS FHIR permet de stocker facilement les paquets/ressources FHIR directement dans le référentiel FHIR.
Façade FHIR – La couche de façade FHIR est un modèle d'architecture logicielle à l'aide duquel une API compatible FHIR peut être exposée au-dessus d'une API existante (souvent non-FHIR). Cette couche permet également de rationaliser le système de données de soins de santé, y compris les dossiers médicaux électroniques (DME), les bases de données existantes ou le stockage de messages HL7 v2, sans nécessiter la migration de toutes les données vers un système natif FHIR.
Qu'est-ce que FHIR?
FHIR (Fast Healthcare Interoperability Resources) est un framework standard créé par HL7 International afin de faciliter l'échange de données de soins de santé de manière flexible, conviviale pour les développeurs et moderne. Il exploite les technologies web contemporaines pour assurer une intégration et une communication transparentes entre plusieurs systèmes de soins de santé.
Dans mon dernier article, j'ai présenté FHIR Data Explorer, une application de validation de concept qui connecte InterSystems IRIS, Python, et Ollama afin de permettre la recherche sémantique et la visualisation des données de soins de santé au format FHIR. Ce projet participe actuellement au concours InterSystems External Language Contest.
Dans cette suite, nous verrons comment j'ai intégré Ollama pour générer les résumés des dossiers médicaux directement à partir des données FHIR structurées stockées dans IRIS, à l'aide de modèles linguistiques locaux légers (LLM) tels que Llama 3.2:1B ou Gemma 2:2B.
L'objectif était de créer un pipeline d'IA entièrement local capable d'extraire, de formater et de présenter les dossiers médicaux des patients tout en garantissant la confidentialité et le contrôle total des données.
Toutes les données des patients utilisées dans cette démonstration proviennent de paquets FHIR, qui ont été analysés et chargés dans IRIS via le module IRIStool. Cette approche facilite la requête, la conversion et la vectorisation des données de soins de santé à l'aide d'opérations pandas familières en Python. Si vous désirez en savoir plus sur la manière dont j'ai construit cette intégration, consultez mon article précédent Création d'un référentiel vectoriel FHIR avec InterSystems IRIS et Python via le module IRIStool.
Les deux outils, IRIStool et FHIR Data Explorer sont disponibles sur InterSystems Open Exchange — et font partie de mes contributions au concours. Si vous les trouvez utiles, n'hésitez pas à voter pour eux!
Dans mon article précédent, j'ai présenté le module IRIStool, qui intègre de manière transparente la bibliothèque pandas pour Python à la base de données IRIS. Je vais maintenant vous expliquer comment utiliser IRIStool pour exploiter InterSystems IRIS comme base pour une recherche sémantique intelligente dans les données de soins de santé au format FHIR.
Cet article décrit ce que j'ai fait pour créer une base de données pour mon autre projet, FHIR Data Explorer. Les deux projets sont candidats au concours InterSystems actuel, alors n'hésitez pas à voter pour eux si vous les trouvez utiles.
Les versions de maintenance 2025.1.2 et 2024.1.5 de la plateforme de données InterSystems IRIS, d'InterSystems IRIS for Health et d'HealthShare Health Connect sont désormais disponibles en disponibilité générale (GA).
Les fournisseurs de solutions numériques dans le domaine de la santé sont soumis à une pression croissante pour intégrer des systèmes complexes de données de santé tout en garantissant l'évolutivité, la sécurité et la conformité à des normes telles que HL7 FHIR. Les ressources FHIR (Fast Healthcare Interoperability Resources) ont révolutionné l'échange de données de santé en proposant un cadre normalisé qui permet à divers systèmes informatiques de santé de communiquer sans difficulté. Mais il ne suffit pas de se conformer aux normes FHIR pour surmonter les complexités de l'intégration des données de santé. Les partenaires de solutions doivent tirer parti de composants architecturaux avancés tels que les courtiers, les façades et les référentiels FHIR pour créer des solutions évolutives et efficaces. InterSystems offre toutes les fonctionnalités essentielles dont vous avez besoin pour mettre en œuvre FHIR pour vos données de santé, que ce soit sur site, dans un cloud public ou sous forme de service cloud géré par InterSystems.
Lorsque nous créons un référentiel FHIR dans IRIS, nous avons un point de terminaison pour accéder à l'information, créer de nouvelles ressources, etc. Mais il y a certaines ressources dans FHIR que nous n'aurons probablement pas dans notre référentiel, par exemple, la ressource Binary (cette ressource renvoie des documents, comme des PDF par exemple).
J'ai créé un exemple dans lequel, quand une ressource est demandée via "Binary", l'endpoint FHIR renvoie une réponse, comme si elle existait dans le référentiel.
Je voulais vous partager mes impressions du Meetup FHIR France #13, organisé par Fyrstain et sponsorisé par InterSystems – et franchement, c’était une soirée inoubliable ! C’était une soirée riche en échanges, en apprentissages et en belles rencontres !
L’accueil a débuté à 19h et @Guillaume Rongier a aidé à enregistrer les participants
Après avoir laissé les participants arriver tranquillement, nous avons officiellement lancé la soirée. Fanch Rouault a souhaité la bienvenue au nom de Fyrstain
Je sais que ceux qui découvrent VS Code, Git, Docker, FHIR et d'autres outils peuvent parfois avoir des difficultés à configurer l'environnement. J'ai donc décidé de rédiger un article qui explique étape par étape l'ensemble du processus de configuration afin de faciliter les premiers pas.
Je vous serais très reconnaissant de bien vouloir laisser un commentaire à la fin de cet article pour me faire savoir si les instructions étaient claires, s'il manquait quelque chose ou si vous avez d'autres suggestions qui pourraient être utiles.
La configuration comprend:
✅ VS Code – Éditeur de code ✅ Git – Système de contrôle de version ✅ Docker – Lancement d'une instance de la communauté IRIS for Health ✅ Extension VS Code REST Client – Pour l'exécution de requêtes API FHIR ✅ Python – Pour l'écriture de scripts basés sur FHIR ✅ Jupyter Notebooks – Pour les tâches liées à l'IA et au FHIR
Avant de commencer: Vérifiez que vous disposiez des privilèges d'administrateur sur votre système.
Outre la lecture du guide, vous pouvez également suivre les étapes décrites dans les vidéos:
Après avoir déployé un nouveau conteneur basé sur containers.intersystems.com/intersystems/irishealth:2023.1 cette semaine, nous avons soudainement constaté que notre dépôt FHIR affichait une erreur 500. Ce problème est dû à des violations de PROTECT sur le nouvel espace de noms et la nouvelle base de données HSSYSLOCALTEMP utilisés par cette version des composants FHIR d'IRIS for Health. Pour résoudre ce problème, ajoutez « %DB_HSSYSLOCALTEMP » aux applications Web qui gèrent les requêtes FHIR.
Les référentiels, applications et serveurs FHIR servent généralement des données cliniques en petites quantités, par exemple pour renvoyer des données sur un patient, ses médicaments, ses vaccins, ses allergies, ou d'autres renseignements. Cependant, il est courant qu'une grande quantité de données au format FHIR/JSON soit demandée pour être utilisée pour charger des Data Lakes, identifier des cohortes étudiées, la santé de la population ou transférer des données d'un DME (dossier médical électronique) à un autre.
Lors de la création d'un bundle à partir de données héritées, je (et d'autres) souhaitais pouvoir contrôler si les ressources étaient générées avec une méthode de requête FHIR PUT plutôt qu'avec la méthode POST codée en dur. J'ai étendu les deux classes responsables de la transformation de SDA en FHIR dans une production d'interopérabilité afin de prendre en charge un paramètre permettant à l'utilisateur de contrôler la méthode de requête.
La première classe est la classe Processus métier.
Lors du développement d'une application front-end ou de toute autre communication avec l'API REST, il est souvent judicieux d'utiliser une Swagger UI, une interface de test pour l'API REST conforme à la spécification Open API 2.0. Elle est généralement très pratique, car elle permet d'effectuer des tests manuels rapides avec l'API REST, ses réponses et les données qu'elle contient.
Pour atteindre des performances optimisées en matière d'IA, une explicabilité robuste, une adaptabilité et une efficacité dans les solutions de santé, InterSystems IRIS sert de fondation centrale pour un projet au sein du cadre multi-agent x-rAI. Cet article offre une analyse approfondie de la manière dont InterSystems IRIS permet le développement d'une plateforme d'analyse de données de santé en temps réel, permettant des analyses avancées et des informations exploitables. La solution exploite les points forts d'InterSystems IRIS, notamment le SQL dynamique, les capacités natives de recherche vectorielle, la mise en cache distribuée (ECP) et l'interopérabilité FHIR. Cette approche innovante s'aligne directement sur les thèmes du concours « Utilisation du SQL dynamique et SQL intégré », « GenAI, recherche vectorielle » et « FHIR, DME », démontrant une application pratique d'InterSystems IRIS dans un contexte critique de santé.
Pour les applications back-end, vous pouvez exporter la clé publique vers un certificat X.509 encodé en base64 intitulé publickey509.pem à l'aide de la commande ci-dessous...
InterSystems IRIS for Health v2024.3 est déjà disponible en tant qu'aperçu pour les développeurs depuis un certain temps, et je voulais souligner la nouvelle prise en charge liée à la recherche FHIR qui a été introduite.
Nous avons le plaisir de vous inviter à participer au Hospitals on FHIR User Day, un événement passionnant dédié à l'interopérabilité des systèmes de santé.
📅 Dates: 25 - 26 novembre, 2024
📌 Lieu : Bluepoint Conference Centre Brussels, Blvd Auguste Reyers 80, 1030 Brussels
Cela fait maintenant plus de 2 ans que j'utilise quotidiennement Embedded Python.
Il est peut-être temps de partager un retour d'expérience sur ce parcours.
Pourquoi écrire ce commentaire de retour d'expérience? Parce que, je suppose, je suis comme la plupart de mes collègues ici, un développeur ObjectScript, et je pense que la communauté bénéficierait de ce retour d'expérience et pourrait mieux comprendre les avantages et les inconvénients du choix de Embedded Python pour développer quelque chose dans IRIS. Et aussi éviter certains pièges.
Commentaire de retour d'expérience : Utilisation quotidienne de Embedded Python pendant 2 ans](#feedback--using-embedded-python-daily-for-2-years)
Parfois, nous devons convertir le message FHIR en HL7 V2, par exemple pour enregistrer un patient dans le système PACS. Dans cet article, les étapes à suivre pour obtenir les résultats souhaités en utilisant la production du serveur IRIS FHIR seront expliquées.
Voici les étapes à suivre:
Assurez-vous que la production du serveur FHIR est démarrée.
Enregistrez le service métier avec le point de terminaison FHIRServer.
Définissez les processus métier pour convertir les messages FHIR en SDA, puis convertissez SDA en HL7 v2.
Publiez la ressource JSON sur le point de terminaison FHIRServer et obtenez la réponse HL7 V2.
Examinons les étapes en détail.
Étape 1. Assurez-vous que la production du serveur FHIR est démarrée
Ouvrez la page de production et assurez-vous que la Production est démarrée. À l'étape suivante, nous devons nous assurer que le service commercial HS.FHIRServer.Interop.Service est enregistré auprès de FHIRServer