Introduction

Dans cet article, nous explorerons différentes approches permettant d'étendre et de personnaliser le comportement des routeurs de messages d'interopérabilité intégrés à InterSystems IRIS (et IRIS Health).

Les routeurs de messages remplissent l'une des fonctions essentielles de l'intégration d'applications d'entreprise (EAI) et font partie des processus métier les plus fréquemment utilisés dans les productions d'interopérabilité.

Après un bref aperçu des classes de routeurs de messages intégrés dans InterSystems IRIS et IRIS for Health, cet article expliquera comment améliorer leurs capacités afin d'obtenir des résultats spécifiques, sans avoir à développer un processus métier à partir de zéro.

Une mise en garde s'impose : la plupart de ces techniques impliquent de remplacer les méthodes de l'implémentation actuelle des classes de routeurs de messages dans IRIS Data Platform et IRIS for Health 2025.x. Elles peuvent ne pas s'appliquer à d'autres versions antérieures ou futures.

Le référentiel GitHub qui accompagne cet article contient une collection d'exemples simples, minimalistes et volontairement abstraits illustrant les techniques abordées.

Nous vous invitons à nous faire part de vos avis, commentaires et retours constructifs!

0 0
0 8

J'ai rencontré à plusieurs reprises un cas où j'ai besoin d'utiliser un fichier/dossier temporaire et de le supprimer ultérieurement.

La solution la plus naturelle consiste alors à suivre les recommandations de "Robust Error Handling and Cleanup in ObjectScript" avec un bloc try/catch/pseudo-finally ou un objet enregistré pour gérer le nettoyage dans le destructeur. %Stream.File* possède également une propriété RemoveOnClose que vous pouvez définir, mais avec précaution, car vous pourriez supprimer accidentellement un fichier important. De plus, cette propriété est réinitialisée par les appels à %Save(), vous devrez donc la remettre à 1 après chaque utilisation.

Il existe cependant un cas particulier : supposons que vous ayez besoin que le fichier temporaire subsiste dans la pile d'exécution. Par exemple :

0 0
0 6

Les architectures de données modernes utilisent des solutions de capture, transformation, déplacement et chargement de données en temps réel pour construire des lacs de données, des entrepôts analytiques et des référentiels de big data. Cela permet l'analyse de données provenant de diverses sources sans impacter les opérations qui les utilisent. Pour y parvenir, il est essentiel d'établir un flux de données continu, évolutif, élastique et robuste. La méthode la plus répandue pour cela passe par la technique CDC (Change Data Capture). Le CDC surveille la production de petits ensembles de données, capture automatiquement ces données et les transmet à un ou plusieurs destinataires, y compris les référentiels de données analytiques. L'avantage majeur est l'élimination du délai J+1 dans l'analyse, car les données sont détectées à la source dès qu'elles sont produites, puis répliquées vers la destination.

Cet article démontrera les deux sources de données les plus courantes pour les scénarios CDC, à la fois comme source et comme destination. Pour la source de données (origine), nous explorerons le CDC dans les bases de données SQL et les fichiers CSV. Pour la destination des données, nous utiliserons une base de données en colonnes (un scénario typique de base de données analytique haute performance) et un topic Kafka (une approche standard pour le streaming de données vers le cloud et/ou vers plusieurs consommateurs de données en temps réel).

 

Aperçu

Cet article fournit un exemple pour le scénario d'interopérabilité suivant:

 

2 1
0 16

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.

1 0
0 22

Dans cet article, nous aborderons tous les outils de débogage disponibles dans l' IDE Microsoft Visual Studio Code.

Les sections suivantes seront abordées:

  • Points d’arrêt (Breakpoints)
  • Fenêtre de surveillance (Watch Window)
  • Pile d’appels (Call Stack)

Commençons par découvrir les prérequis nécessaires pour le débogage!

Prérequis

Il existe deux plugins (extensions) permettant le débogage d’ObjectScript

Le premier plugin fait partie de l’ InterSystems ObjectScript Extension Pack. Le second, Serenji, est un plugin autonome qui propose un éditeur, un gestionnaire de fichiers ainsi que des fonctionnalités de débogage. Les deux plugins peuvent être installés depuis la boutique d’extensions. Pour l'activqtion de ses fonctionnalités principales, Serenji nécessite une licence. Dans cet article, nous utiliserons l’InterSystems ObjectScript Extension Pack afin de réduire la courbe d’apprentissage. Une fois les bases maîtrisées, vous pourrez envisager l’achat d’une licence payante pour Serenji.

2 2
0 39

L'idée qui a obtenu le plus de votes sur le portail InterSystems Ideas Portal (74 votes) concerne la création d'une version allégée d'IRIS. Bien que la plateforme soit devenue un puissant moteur de données, de nombreux projets ne nécessitent que ses capacités de base de données SQL. Cet article explique comment créer une image IRIS Community Edition non officielle et compacte, axée uniquement sur les fonctionnalités de base de données essentielles, ce qui réduit la taille de l'image de plus de 80 %.

⚠️ Avertissement

Ce projet produit une image non officielle et expérimentale d'InterSystems IRIS Community Edition.

  • Il n'est ni pris en charge ni approuvé par InterSystems.
  • Vous l'utilisez à vos propres risques. Les modifications suppriment des fonctionnalités essentielles de la plate-forme et peuvent nuire à la compatibilité avec les outils, les API et les comportements attendus.
  • Aucune garantie n'est fournie, y compris en ce qui concerne l'adéquation à une utilisation en production.
  • Il est destiné uniquement à des fins éducatives et expérimentales par des utilisateurs avancés.

Pourquoi une version allégée d'IRIS?

Bien que la version actuelle d'IRIS offre de nombreuses fonctionnalités (interopérabilité, analyse, apprentissage automatique, gestion du système, etc.), de nombreux projets ne nécessitent que ses capacités SQL de base. L'image Docker officielle de la version Community Edition est approximativement la suivante:

  • Espace disque utilisé: 3,5 à 3,8 Go
  • Format compressé: ~1,1 Go

IRIS Light réduit ces valeurs à:

  • Espace disque utilisé: ~575 à 583 Mo
  • Format compressé: ~144 à 148 MoB

Ainsi, elle convient pour:

  • L'utilisation de microservices ou de SQL conteneurisé
  • Les pipelines CI avec un démarrage et un pull plus rapides
  • La mise à l'échelle horizontale lorsque toutes les fonctionnalités ne sont pas nécessaires

0 0
0 16

Dans la Partie 1, nous avons exploré le fonctionnement des fonctions de fenêtre. Nous avons découvert la logique sous-jacente à PARTITION BY, ORDER BY et à des fonctions telles que ROW_NUMBER() et RANK(). Dans cette deuxième partie, nous allons approfondir notre connaissance des fonctions de fenêtre au moyen d'exemples pratiques..

0 0
1 24

Les fonctions de fenêtre dans InterSystems IRIS permettent de réaliser des analyses puissantes — comme des totaux cumulés, des classements (rankings) ou des moyennes mobiles — directement en SQL.
Ces fonctions s’appliquent à une "fenêtre" de lignes liées à la ligne courante, sans regrouper les résultats comme le fait GROUP BY.
Cela signifie que vous pouvez écrire des requêtes plus claires, plus rapides et plus faciles à maintenir — sans boucles, sans jointures, sans tables temporaires.

0 0
1 34

Les entités dynamiques (objets et tableaux) dans IRIS sont extrêmement utiles lorsque vous devez transformer des données JSON en un modèle d'objet pour les stocker dans la base de données, comme dans les points de terminaison API REST hébergés dans IRIS. En effet, ces objets et tableaux dynamiques peuvent facilement servir de point de conversion d'une structure de données à une autre.

1 0
0 31

Présentation

Cette version apporte des améliorations majeures en matière d'évolutivité et de performances du stockage, une mise à niveau importante du système d'exploitation pour toutes les offres, et une nouvelle version par défaut du serveur FHIR. Ensemble, ces mises à jour renforcent la fiabilité, la flexibilité et la sécurité du système, tout en garantissant la prise en charge à long terme de la plateforme.


Nouvelles fonctionnalités et améliorations

1 0
0 25

Il y a quelque temps, j'ai créé un petit exemple pour déployer rapidement des instances InterSystems IRIS connectées via ECP à l'aide de Docker.

Le temps a passé et, comme tout, il nécessitait une petite mise à jour.

Je l'ai donc mis à jour pour qu'il fonctionne avec la dernière version d'IRIS (actuellement la 2025.3), qui, entre autres, n'installe plus de serveur web par défaut. Ce n'est pas un problème majeur, mais il est bon de le savoir.

J'ai simplifié les Dockerfiles, mis à jour le fichier docker-compose.yml et ajouté des serveurs web dédiés au déploiement afin que vous puissiez administrer les instances de votre choix. Tout le reste (exemples d'applications, fonctionnalités principales, etc.) reste inchangé.

1 0
0 36
Article
· Nov 27, 2025 11m de lecture
Test de transformation des données

Le développement de la production interopérable InterSystems IRIS implique l'utilisation ou l'écriture de différents types de composants. Parmi ceux-ci figurent les services (qui traitent les données entrantes), les processus (qui gèrent le flux et la logique des données) et les opérations (qui gèrent les données ou les requêtes sortantes).

1 0
0 29
Article
· Nov 28, 2025 4m de lecture
Connexion de C# à InterSystems IRIS via ODBC

Pour les développeurs d'applications externes, notamment ceux utilisant des technologies comme C#, ODBC (Open Database Connectivity) est une passerelle standardisée essentielle vers toute base de données relationnelle, y compris InterSystems IRIS. Bien qu'InterSystems propose son propre fournisseur ADO.NET natif, le pilote ODBC reste souvent la solution la plus simple pour l'intégration avec les outils et frameworks de bases de données génériques.

Voici un guide pas à pas pour connecter votre application C# à une instance IRIS à l'aide du pilote ODBC, en mettant l'accent sur la chaîne de connexion sans DSN.

Étape 1 : Installation du pilote ODBC InterSystems IRIS

Le pilote ODBC InterSystems est installé par défaut lors de l'installation d'InterSystems IRIS sur une machine Windows.

  • Si IRIS est installé sur la même machine : le pilote est déjà présent.
  • Si IRIS est installé sur un serveur distant : vous devez télécharger et installer le package du pilote client ODBC autonome correspondant à votre système d’exploitation (Windows, Linux ou macOS) et à son architecture (32 bits ou 64 bits) depuis le site web de WRC si vous êtes client, ou en installant les composants clients et en copiant le pilote ODBC.

Une fois installé, vous pouvez vérifier sa présence dans l’outil Administrateur de sources de données ODBC sous Windows (recherchez le pilote InterSystems IRIS ODBC35).

1 0
0 21

Le projet d'interface utilisateur d'interopérabilité, initié avec la version 2025.1, intègre désormais de nombreuses suggestions et observations de nos clients et partenaires. Nous continuons d'investir dans le recueil de vos commentaires et l'amélioration de cette expérience utilisateur essentielle. Dans la dernière version, 2025.3, pour IRIS, IRIS for Health, Health Connect et Health Connect Cloud, les applications DTL Editor et Configuration de la production sont disponibles en option. REMARQUE :

1 0
0 32

Récemment, j'ai remplacé mon ancien ordinateur portable par un nouvel ordinateur et j'ai dû migrer toutes mes données. Je cherchais un guide, mais je n'ai rien trouvé décrivant en détail comment migrer les connexions serveur d'InterSystems Studio et de Visual Studio Code d'un PC à un autre. Il ne suffit pas de réinstaller les outils, et migrer toutes les connexions manuellement semblait être une perte de temps. J'ai finalement réussi à résoudre le problème, et vous trouverez dans cet article la marche à suivre.

2 0
0 46

Bonjour à tous,

Excellente nouvelle pour les développeurs qui débutent avec InterSystems IRIS ! Des tutoriels interactifs et pratiques sont disponibles sur la plateforme Instruqt. Idéaux pour une prise en main rapide, des tests en environnement réel et une confiance accrue dans le développement avec IRIS.

Voici la liste des tutoriels disponibles :

  • Full Stack Tutorial : Découvrez comment IRIS prend en charge l’architecture système full-stack.
  • InterSystems Interoperability : Explorez les outils d’interopérabilité d’IRIS pour connecter et intégrer des systèmes.
  • IRIS for Health Interoperability : Apprenez à utiliser les fonctionnalités d’IRIS for Health pour l’intégration d’applications avec des données provenant d’un dossier médical électronique (DME).
  • REST + Angular Application : Entraînez-vous à créer des applications avec les services REST d’IRIS.
  • RAG using IRIS Vector Search : Découvrez les capacités de recherche vectorielle d’IRIS pour les applications basées sur l’IA.

0 0
0 30

InterSystems IRIS est une plateforme de données haute performance offrant une persistance native et la prise en charge de divers modèles de données (objet, document et relationnel). Cependant, dans de nombreux environnements d'entreprise, l'intégration avec les systèmes de gestion de bases de données relationnelles (RDBMS) existants est nécessaire.

3 0
0 36

La version 2025.3 de la plateforme de données InterSystems IRIS®, d'InterSystems IRIS® for Health™ et de HealthShare® Health Connect est désormais disponible. Il s'agit d'une version déployée en continu.

1 0
0 34

La sécurisation des intégrations IRIS à l'aide du protocole TLS mutuel (mTLS) : guide pratique

Dans les environnements d'entreprise actuels, la sécurité des communications entre les systèmes n'est pas une option, mais une nécessité. Peu importe si vous intégrez InterSystems IRIS avec des API cloud, des microservices internes ou des plateformes tierces, le TLS mutuel (mTLS) offre une méthode efficace pour garantir que les deux extrémités de la connexion sont authentifiées et cryptées.

1 0
0 36

Bonjour à tous !

Je suis ravi de vous annoncer que depuis le début de l'année, nous avons publié de nombreux kits de développement logiciel (SDK) clients pour InterSystems IRIS, InterSystems IRIS for Health et Health Connect sur les plateformes de distribution externes correspondantes (Maven, NuGet, npm et PyPI). Vous bénéficiez ainsi de nombreux avantages :

2 0
0 38

Importance

La gestion de l'IAM peut s'avérer fastidieuse lorsqu'elle est effectuée manuellement, en particulier lorsque vos API sont déjà bien documentées à l'aide des spécifications OpenAPI (Swagger). Ne serait-il pas formidable de pouvoir générer automatiquement des services et des itinéraires Kong directement à partir de vos spécifications OpenAPI?

1 0
0 26
Article
· Nov 12, 2025 6m de lecture
Rédaction d'une spécification OpenAPI 2.0

L'INTERFACE DE PROGRAMMATION D'APPLICATION À TRANSFERT D'ÉTAT REPRÉSENTATIF ou API REST (Representational State Transfer Application Programming Interface) est un moyen conforme à la norme permettant aux applications web de communiquer entre elles à l'aide de méthodes HTTP telles que GET, POST, PUT, DELETE, etc. Elle est conçue autour de ressources, qui peuvent être diverses, allant d'un utilisateur à un fichier.

1 0
0 35

Bonjour à tous,

Je m’adresse à vous, la communauté technique francophone pour vous présenter une réflexion et une proposition de réponse que j’ai apporté pour utiliser docker dans un environnement de développement avec plusieurs développeurs.

Ma réponse se compose en 2 parties, une architecture du repository GIT d’un namespace et un repository lié à DOCKER. La première partie, je pense, peut être utile au-delà d’un contexte docker.

La complexité de ce projet réside dans le fait d’avoir une solution permettant de conteneuriser un nombre “infini” de namespace et éviter d’avoir un conteneur par namespace.

Présentation du framework

Dans chacun de mes projets, je crée un dossier à la racine nommé Config.

4 0
0 44