Nouveau
Article Iryna Mykhailova · Mai 15 4m read

Le tutoriel récemment publié « Introduction à InterSystems Data Studio » m’a donné envie de découvrir ce produit. Et je trouve que c’est une approche intéressante pour la gestion d’un data fabric, sans avoir à plonger dans du code complexe. Il permet de connecter des silos de données hétérogènes, de transformer les données via des pipelines automatisés, puis de les charger dans un environnement unifié pour l’analyse.

J’ai donc décidé d’écrire un exemple montrant comment l’utiliser. En pratique, je vais parcourir le tutoriel avec vous au cas où vous n’auriez pas le temps de le faire vous-même. Même si je recommande fortement de suivre directement le tutoriel, car il contient beaucoup d’informations utiles.

Pour comprendre son fonctionnement, je me suis mis dans la peau d’un administrateur système, en me connectant avec les identifiants fournis afin d’explorer l’interface. L’organisation de l’outil repose sur quelques piliers essentiels : définir les sources de données, cataloguer leur structure et construire des « recettes » automatisées pour les transférer vers un environnement de production.

Et la toute première étape consiste à établir une connexion avec mes données.

0
0 8
Nouveau
Article Iryna Mykhailova · Mai 5 1m read

Dans la version v2026.2 (actuellement disponible en Developer Preview), une nouvelle fonctionnalité est introduite pour améliorer l’autorisation SMART/OAuth sur les endpoints FHIR : une plus grande flexibilité native dans la validation de la valeur aud (audience).

Jusqu’à présent, la validation vérifiait uniquement que la valeur aud correspondait à l’URL de base de l’endpoint FHIR. Si ce n’était pas le cas, la requête était rejetée.

0
0 10
Article Iryna Mykhailova · Avr 29 2m read

. . . vous n’êtes pas seul.

De l’aide est disponible.

Cela m’a pris un certain temps à comprendre, et je suppose que d’autres rencontrent les mêmes difficultés. J’ai parcouru toute la configuration Entra pour mettre en place un flux « client credentials » afin d’envoyer des e-mails via un compte Microsoft 365. J’ai réussi à récupérer mon token, mais je n’arrivais jamais à m’authentifier auprès du serveur SMTP avec la classe %Net.SMTP. La solution comportait deux éléments.

0
0 10
Article Iryna Mykhailova · Avr 28 1m read

Une fonctionnalité très importante pour HL7 FHIR a été introduite avec la sortie de la v2026.1 : la prise en charge des scopes granulaires fins SMART on FHIR v2.

Cela vous permet d’être beaucoup plus strict et plus précis dans l’accès que vous accordez aux données de votre dépôt FHIR.

Une partie de cette nouvelle prise en charge consiste à refuser les requêtes qui ne correspondent pas aux scopes, mais une capacité encore plus intéressante est de filtrer les résultats selon les scopes fournis.

0
0 10
Article Iryna Mykhailova · Avr 24 10m read

Ceci est la deuxième partie d’une série de deux articles dans laquelle je vous présente :

  • Partie I - Introduction et visite rapide (l’article précédent)
    • Qu’est-ce que c’est ?
    • Démarrer un déploiement InterSystems IRIS Cloud Document
    • Faire une visite rapide du service via l’interface utilisateur du service
  • Partie II - Exemple d’application Java conteneurisée (cet article)
    • Récupérer les détails de connexion et le certificat TLS
    • Examiner un exemple Java simple qui crée une collection, insère des documents et les interroge
    • Configurer et exécuter l’exemple Java conteneurisé de bout en bout

Comme mentionné, l’objectif est de vous offrir une première expérience fluide.

0
0 9
Article Iryna Mykhailova · Avr 22 5m read

Si vous connaissez déjà Java (ou .Net) et avez peut-être aussi utilisé d’autres bases de données documentaires (ou cherchez à en utiliser une), mais que vous découvrez l’univers InterSystems, cet article devrait vous aider.

InterSystems IRIS Cloud Document est une base de données documentaire entièrement managée qui vous permet de stocker des documents JSON et de les interroger avec une syntaxe SQL familière, le tout sous la forme d’un service cloud géré par InterSystems.

Dans cette série de deux articles, je vais vous présenter :

  • Partie I - Introduction et visite rapide (cet article)
    • Qu’est-ce que c’est ?
    • Démarrer un déploiement InterSystems IRIS Cloud Document
    • Faire une visite rapide du service via son interface utilisateur
  • Partie II - Exemple d’application Java conteneurisée
    • Récupération des détails de connexion et du certificat TLS
    • Revue d’un exemple Java simple qui crée une collection, insère des documents et les interroge
    • Configuration et exécution de l’exemple Java conteneurisé de bout en bout

L’objectif est de vous offrir une première expérience fluide.

0
0 6
Article Iryna Mykhailova · Avr 13 6m read

Introduction

L’ajout récent des groupes FIFO permet de maintenir un traitement des messages en mode First-In, First-Out (FIFO) dans une production d’interopérabilité même lorsque le Pool Size est supérieur à 1, ce qui permet d’améliorer les performances sans sacrifier l’exactitude. Cette fonctionnalité apparaît pour la première fois dans InterSystems IRIS® data platform, InterSystems IRIS® for Health et InterSystems Health Connect™ à partir de la version 2025.3.

Le traitement des messages en mode First-In, First-Out est essentiel dans de nombreux scénarios d’intégration, en particulier dans le secteur de la santé. Traditionnellement, l’ordre FIFO est appliqué en configurant chaque hôte métier pour ne traiter qu’un seul message à la fois (Pool Size = 1). Bien qu’efficace, cette approche peut limiter le débit et sous-utiliser les ressources système. Les groupes FIFO permettent de préserver l’ordre FIFO lorsque cela est nécessaire, sans imposer un Pool Size de 1.

0
0 5
Article Iryna Mykhailova · Avr 8 2m read

Motivation


Pourquoi en avons-nous besoin ?

  1. Manque de contexte compilé : les outils d’IA ne voient que le code source ; ils ne savent pas à quoi ressemble la routine compilée finale.
  2. Hallucination des macros : comme l’IA ne voit pas nos fichiers #include ni les macros système, elle en invente souvent, ce qui fait perdre du temps lors du débogage.
  3. Lacune documentaire : l’optimisation logique avancée nécessite souvent de comprendre des macros internes qui ne sont pas entièrement documentées publiquement.
0
0 8
Article Iryna Mykhailova · Avr 1 1m read

Introduction

FHIR (Fast Healthcare Interoperability Resources) est le standard moderne pour le stockage et l’échange de données cliniques. Mais une fois vos données sur un serveur FHIR, comment les explorer concrètement ? Les données FHIR sont stockées au format JSON — puissant, mais peu pratique à lire directement. Je voulais un outil permettant de cliquer sur un patient et de voir ses pathologies, ses médicaments, ses résultats de laboratoire, etc., dans un format clair et lisible. J’ai donc créé le FHIR Patient Viewer.

Fonctionnement

L’application fonctionne entièrement dans Docker et se connecte directement à un serveur FHIR d’InterSystems IRIS for Health. Au démarrage, elle charge automatiquement 115 patients synthétiques dans IRIS — aucune configuration manuelle n’est nécessaire.

  • Parcourir une liste de patients
  • Cliquer sur un patient pour voir tous ses dossiers cliniques

0
0 11
Article Iryna Mykhailova · Mars 27 1m read

La version v2026.1 vient d’être publiée en disponibilité générale (GA), et l’une des fonctionnalités que j’ai hâte d’utiliser est la fonction DTL Explainer.

Elle permet de prendre une transformation de données (Data Transformation) et, en un clic, d’obtenir une description lisible par un humain de cette transformation (que vous pouvez également utiliser comme base pour la description DTL).

Pour les DTL complexes, en particulier celles que vous n’avez pas écrites vous-même, ou que vous avez écrites il y a longtemps, cela permet d’obtenir rapidement une compréhension claire de leur fonctionnement.

0
0 25
Article Iryna Mykhailova · Mars 25 14m read

Il y a des leçons que nous avons tirées du développement et de la maintenance du code des composants d’interopérabilité dans un environnement institutionnel de santé.

L’avion est déjà en vol

Soyez prêt à reconstruire, améliorer, étendre et réparer l’avion en plein vol.
 

Les fenêtres de maintenance des systèmes hospitaliers sont souvent très limitées, certains devant rester opérationnels 24 h/24 et 7 j/7.

0
0 9
Article Iryna Mykhailova · Mars 23 4m read

Le problème

Combien de fois avons-nous migré une instance IRIS vers une autre machine, voire vers une autre version, pour nous rendre compte quelques jours plus tard que nous avions oublié cette configuration SSL pourtant critique pour le bon fonctionnement d’un Business Operation ? Ou peut-être des identifiants, ou encore une classe isolée dans son propre package ?

La solution

La solution la plus simple consiste à créer une checklist¹. Une liste des éléments à migrer. Mais les checklists dans des documents Word sont souvent oubliées, voire ignorées.

0
0 12
Article Iryna Mykhailova · Mars 20 6m read

Je l’ai peut-être déjà mentionné : je considère que les Visual Traces, ces diagrammes de séquence avec le contenu complet de chaque étape, sont une fonctionnalité fantastique de la plateforme de données IRIS ! Des informations détaillées sur le fonctionnement interne de l’API, sous forme de trace visuelle, peuvent être très utiles pour les projets sur la plateforme IRIS. Bien entendu, cela s’applique lorsque nous ne développons pas une solution à forte charge, auquel cas nous n’avons tout simplement pas le temps d’enregistrer/lire les messages.

0
0 9
Article Iryna Mykhailova · Mars 19 1m read

Dans le cadre de la nouvelle vague d’interface utilisateur d’interopérabilité (voir les nouveautés dans 2025.1, et 2025.3 par @Aya Heshmat), la version v2026.1, déjà disponible en tant que Developer Preview, pourrait être une bonne raison de l’essayer — elle proposera la nouvelle interface utilisateur pour la visualisation et la Message Viewer et Message Search, y compris le Visual Trace (ainsi que d’autres améliorations UI).

0
0 16
Article Iryna Mykhailova · Mars 17 1m read

Dans le cadre de la nouvelle vague d’interface utilisateur d’interopérabilité (voir les nouveautés dans 2025.1, et 2025.3 par @Aya Heshmat), la version v2026.1, déjà disponible en tant que Developer Preview, pourrait être une bonne raison de l’essayer — elle proposera la nouvelle interface utilisateur pour l’éditeur BPL (ainsi que d’autres améliorations UI).

Voici un aperçu rapide :

Parmi les éléments que j’apprécie particulièrement —

  • La fonctionnalité d’auto-complétion lors de l’édition des actions Assign et des Conditions, visible sur le côté droit ci-dessus.
0
0 12
Article Iryna Mykhailova · Mars 12 3m read

Contexte

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é.

0
0 18
Article Iryna Mykhailova · Mars 4 2m read

Inspiré par la publication de @Ashok Kumar Thangavel sur le Portail d'idées et par mon propre besoin de résoudre ce problème, j'ai imaginé une méthode simple pour effectuer des requêtes JSON plus complètes et cohérentes sans avoir à spécifier chaque champ souhaité. J'ai créé une classe qui étend la classe intégrée %JSON.Adaptor et rend ses méthodes %JSONExportToString et %JSONExportToStream accessibles via SQL grâce à quelques procédures SQLProc simples.

Class DH.JSONAdaptor Extends %JSON.Adaptor [ Abstract ]
{
ClassMethod jsonstring(id, map = "") [ SqlProc ]
{
	try{
		set myobj = ..%OpenId(id)
		set sc = myobj.%JSONExportToString(.json,map)
		if $$$ISERR(sc) $$$ThrowStatus(sc)
		return json
	}
		catch ex{
		throw ex
	}
}

ClassMethod jsonstream(id, map = "") [ SqlProc ]
{
	try{
		set myobj = ..%OpenId(id)
		set sc = myobj.%JSONExportToStream(.json,map)
		if $$$ISERR(sc) $$$ThrowStatus(sc)
		return json
	}
	catch ex{
		throw ex
	}
}
}
0
0 17
Article Iryna Mykhailova · Fév 26 4m read

Dans l'article précédent, nous avons abordé ODBC et la connexion de C#. Intéressons-nous maintenant à JDBC et Java. Le pilote JDBC d'InterSystems est la méthode recommandée pour intégrer vos applications Java de manière performante.

Voici un guide pas à pas pour connecter votre application Java à une instance IRIS à l'aide du pilote JDBC.

Étape 1 : Obtenir et inclure le pilote JDBC InterSystems IRIS

Contrairement aux pilotes ODBC, souvent installés à l'échelle du système, les pilotes JDBC sont généralement distribués sous forme de fichiers JAR qui doivent être inclus dans le classpath de votre projet Java.

Si InterSystems IRIS est installé sur votre machine locale ou sur une autre machine à laquelle vous avez accès, vous trouverez le fichier dans le répertoire d'installation (par exemple, `install-dir/dev/java/lib/`), où `install-dir` correspond au répertoire d'installation de l'instance. Vous pouvez également télécharger le fichier JAR depuis la page des packages de pilotes.

Ou, comme le suggère @Dmitry Maslennikov dans les commentaires, utilisez le dépôt central Maven :

<dependency>
    <groupId>com.intersystems</groupId>
    <artifactId>intersystems-jdbc</artifactId>
    <version>3.10.5</version>
</dependency>

ou pour Gradle :

implementation("com.intersystems:intersystems-jdbc:3.10.5")

Inclure le fichier JAR dans le projet :

  • Maven/Gradle : Si vous utilisez un outil de construction, la méthode la plus simple consiste à ajouter le pilote JDBC InterSystems comme dépendance dans votre fichier pom.xml ou build.gradle. Le fichier JAR sera alors téléchargé et géré automatiquement.
  • Manuellement : Pour les projets simples, vous devez placer le fichier JAR dans un répertoire du projet (par exemple, /lib) et l'ajouter explicitement à votre classpath lors de la compilation et de l'exécution.
0
0 26
Article Iryna Mykhailova · Fév 17 2m read

L'utilitaire Load Data est un excellent outil pour charger des données depuis des fichiers CSV/TXT dans une table SQL IRIS. Auparavant, il était nécessaire d'envoyer le fichier cible au serveur IRIS et d'y insérer la commande Load Data pour importer son contenu. Désormais, il est possible de sélectionner un fichier dans VS Code, de définir la table de destination et de soumettre la requête. L'utilitaire vscode-load-data enverra le fichier au serveur IRIS et exécutera la commande Load Data. C'est très simple !

0
0 24
Article Iryna Mykhailova · Fév 10 3m read

Lorsqu’on travaille avec InterSystems Interoperability (IRIS / Health Connect / Ensemble), les données de configuration sont souvent réparties entre de nombreux éléments de production : services, processus, opérations, adaptateurs et leurs paramètres.

Un besoin opérationnel ou de sécurité courant est de pouvoir répondre à des questions comme :

  • Quelles interfaces référencent des chemins du système de fichiers ?
  • Où sont configurés les répertoires, les partages réseau ou les chemins absolus ?
  • Puis-je auditer ou documenter rapidement ces informations sur l’ensemble de mes productions ?
0
0 31
Article Iryna Mykhailova · Fév 4 3m read

Le France & Benelux READY 2026 vient de s’achever, et ces deux journées ont une nouvelle fois démontré à quel point la Communauté des Développeurs est dynamique, curieuse et engagée. Voici un retour en images et en mots sur cette belle édition.

L’événement a débuté par les welcome remarks de @Adeline Icard et @Geoffroy Vitoux, donnant le ton pour les journées à venir : innovation, partage et collaboration.

0
0 46
Article Iryna Mykhailova · Jan 26 3m read

Pour générer un JWT à partir d'un certificat/clé X.509, toute opération (y compris la lecture) sur %SYS.X509Credentials requiert l'autorisation d'accès (U) à la ressource %Admin_Secure. Cette dernière est nécessaire car %SYS.X509Credentials est persistant ; cette implémentation vise à empêcher tout accès non autorisé aux clés privées.

Si la ressource n'est pas disponible lors de l'exécution, vous pouvez utiliser la solution de contournement suivante.

Lors de l'examen du code de génération des JWT, j'ai constaté que ce code utilise

0
0 33
Article Iryna Mykhailova · Jan 23 2m read

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 38
Article Iryna Mykhailova · Jan 12 2m read

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.
0
0 50
Article Iryna Mykhailova · Déc 18, 2025 6m read

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 34
Article Iryna Mykhailova · Déc 4, 2025 2m read

Bonjour,

Lorsque nous ouvrons un terminal dans IRIS, nous accédons à l'interpréteur de commandes ObjectScript. Dans cet interpréteur, nous pouvons exécuter des commandes IRIS, telles que :

Autrement dit, la commande ObjectScript est exécutée dans l'interpréteur de commandes actuel. Mais il est toujours bon de se rappeler qu'IRIS possède d'autres interpréteurs de commandes.

  • SQL
  • Python
  • TSQL
  • MDX

Un aspect très intéressant réside dans les raccourcis.

0
0 36
Article Iryna Mykhailova · Déc 2, 2025 1m read

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é.

0
0 51
Article Iryna Mykhailova · Nov 28, 2025 4m read

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).

0
0 37
Article Iryna Mykhailova · Nov 23, 2025 4m read

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. Le RDBMS que vous souhaitez interroger importe peu ; par souci de simplicité, je prendrai Microsoft Access comme exemple dans cet article. L'une des méthodes les plus faciles et standardisées pour établir cette connectivité consiste à utiliser ODBC.

0
0 49
Article Iryna Mykhailova · Nov 11, 2025 10m read

Documentation technique — Système de surveillance Quarkus IRIS

1. Le but et la portée

Ce module assure l'intégration entre les applications Java basées sur Quarkus et les capacités natives de surveillance des performances d'InterSystems IRIS. Il permet aux développeurs d'annoter les méthodes avec @PerfmonReport, ce qui déclenche automatiquement les routines ^PERFMON d'IRIS lors de l'exécution des méthodes, et génère des rapports de performances sans intervention manuelle.


2. Composants du système

2.1 Annotation: @PerfmonReport

  • Définie comme un CDI InterceptorBinding.
0
0 47