Nouveau
Article Iryna Mykhailova · 1 hr il y a 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 1
Nouveau
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 2
Nouveau
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 2
Nouveau
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 2
Nouveau
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 2
Nouveau
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 3
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 10
Article Iryna Mykhailova · Mars 4 2m read

Inspiré par la publication de @Ashok Kumar T 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 = .
0
0 11
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 16
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 14
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 24
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 36
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 %Admin_Secure 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 %SYS.

0
0 27
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 27
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 38
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 28
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 31
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 49
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 32
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 45
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 41
Article Iryna Mykhailova · Nov 5, 2025 6m read

Salut!

C'est encore moi 😁. Dans l'article précédent Comment écrire un service API REST pour exporter le paquet FHIR généré au format JSON, nous avons généré une ressource DocumentReference, dont le contenu était encodé en Base64

 

Question!! Est-il possible d'écrire un service REST pour le décoder? Je voudrais vraiment savoir ce que contiennent les données du message🤔🤔🤔

Bien, allons-y!

1. Créez une nouvelle classe utilitaire datagen.utli.decodefhirjson.cls pour décoder les données contenues dans DocumentReference
 

Class datagen.utli.decodefhirjson Extends %RegisteredObject
{
}
0
0 44
Article Iryna Mykhailova · Nov 3, 2025 13m read

Bonjour à tous,

Continuons à travailler sur la génération de données de test et l'exportation des résultats via une API REST. 😁

Ici, je souhaite réutiliser la classe `datagen.restservice` créée dans l'article précédent : « Écriture d'un service API REST pour exporter les données patient générées au format .csv ».

Cette fois-ci, nous prévoyons de générer un bundle FHIR incluant plusieurs ressources pour tester le référentiel FHIR.

Voici une référence si vous souhaitez en savoir plus sur FHIR : « The Concept of FHIR: A Healthcare Data Standard Designed for the Future ».

C'est parti ! 😆

1.

0
0 53
Article Iryna Mykhailova · Oct 23, 2025 6m read

Salut,

C'est moi encore 😁. Je travaille actuellement à la génération de fausses données patients à des fins de test avec Chat-GPT et Python. J'aimerais également partager mon apprentissage. 😑

Tout d'abord, créer un service d'API REST personnalisé est facile en utilisant %CSP.REST.

Commençons ! 😂

1. Créez une classe datagen.restservice qui étend %CSP.REST.

Class datagen.restservice Extends %CSP.REST
{
Parameter CONTENTTYPE = "application/json";
}

2. Ajoutez une fonction genpatientcsv() pour générer les données du patient et les regrouper dans une chaîne csv

Class datagen.restservice Extends %CSP.
0
0 76
Article Iryna Mykhailova · Oct 21, 2025 2m read

Bonjour,

Je voulais partager avec vous une méthode pratique qui m'a été utile lors de mes développements sur Health Connect Cloud avec VS Code et GitBash. Lors de ces développements, si des modifications sont effectuées directement sur le serveur, comme des règles de routage ou des déploiements de composants, elles ne sont pas automatiquement incluses dans le contrôle de code source. Vous devez donc exporter les modifications depuis le serveur vers vos fichiers locaux et les envoyer vers votre dépôt distant. Je suis sûr qu'il existe des méthodes plus simples pour gérer ce problème, que je suis en train de tester, mais pour une solution rapide, j'ai pensé qu'il serait utile d'utiliser une méthode de pré-validation qui déclenche un rappel dans GitBash – voir ci-dessous.

0
0 45
Article Iryna Mykhailova · Oct 20, 2025 2m read

Rubrique FAQ InterSystems

Dans InterSystems IRIS, vous pouvez créer des tables liées à l'aide de commandes, au lieu d'utiliser System Explorer > SQL > Wizard > Linked Tables dans le Portail de gestion :

Pour créer une table liée, utilisez la méthode CreateLinkedTable de la classe %SYSTEM.SQL.Schema. Consultez la référence de la classe pour plus de détails.

Pour l'exécuter, procédez comme suit :

set sc = $SYSTEMSQL.Schema.
0
0 36
Article Iryna Mykhailova · Oct 17, 2025 1m read

Rubrique FAQ InterSystems

Certaines données, telles que les données du journal d'exécution, ne doivent pas être restaurées à leur état antérieur, même en cas de restauration lors d'une transaction. Pour ce faire, placez ces données dans la base de données IRISTEMP, qui ne sera pas restaurée.

Temporary Globals and the IRISTEMP Databas

En mappant les entités de table à conserver à cette base de données, vous pouvez conserver les informations après le rollback. Cependant, le contenu de cette base de données sera effacé au redémarrage d'IRIS.

0
0 31
Article Iryna Mykhailova · Oct 14, 2025 9m read

Dans mon article précédent, « Utilisation de LIKE avec des variables et des modèles dans SQL », nous avons exploré le comportement du prédicat LIKE dans différents scénarios, de l'Embedded SQL au Dynamic SQL, et l'impact sur les performances lorsque des caractères génériques et des variables entrent en jeu. Cet article visait à se familiariser avec l'écriture d'une requête LIKE fonctionnelle. Mais écrire du SQL efficace n'est que le point de départ. Pour créer des applications fiables, évolutives et sécurisées, vous devez comprendre les bonnes pratiques qui sous-tendent tout SQL, y compris les requêtes utilisant LIKE.

Cet article franchit une nouvelle étape. Nous aborderons quelques points clés pour renforcer votre code SQL, éviter les pièges courants et garantir l'exécution correcte, efficace et sécurisée de vos instructions SELECT. J'utiliserai les instructions SELECT avec le prédicat LIKE comme exemple, montrant comment ces principes généraux affectent directement vos requêtes et leurs résultats.

0
0 45
Article Iryna Mykhailova · Oct 9, 2025 6m read

Aperçu

Le projet typeorm-iris fournit une prise en charge expérimentale pour l'intégration de TypeORM avec InterSystems IRIS, permettant aux développeurs d'interagir avec IRIS à l'aide des décorateurs et des abstractions de référentiel bien connus de TypeORM. Cela offre une expérience de développement plus familière aux développeurs JavaScript et TypeScript qui créent des applications Node.js avec IRIS comme base de données backend.

Aperçu de TypeORM MongoDB. J'ai récemment commencé à utiliser TypeORM dans… | Eliezer  Steinbock | Medium

Bien que le projet mette en œuvre des éléments clés d'intégration avec TypeORM et prenne en charge les opérations de base sur les entités, il n'a pas encore été testé en conditions réelles et n'est pas adapté aux environnements de production.

0
0 44
Article Iryna Mykhailova · Oct 2, 2025 25m read

Table des matières

  1. Objectif de l'article
  2. Les conteneurs : définition et pertinence dans le cadre d'IRIS
     2.1 Les conteneurs et les images en quelques mots
     2.2 Avantages des conteneurs pour les développeurs
     2.3 Pourquoi IRIS fonctionne bien avec Docker
  3. Conditions préalables
  4. Installation de l'image InterSystems IRIS
     4.1 Utilisation de Docker Hub
     4.2 Extraction de l'image
  5. Exécution de l'image InterSystems IRIS
     5.1 Démarrage d'un conteneur IRIS
     5.2 Vérification de l'état des conteneurs
     5.3 Exécution de code dans le terminal conteneur
     5.4 Accès au portail de gestion IRIS
     5.5 Connexion du conteneur à VS Code
     5.6 Arrêt ou suppression du conteneur
     5.7 Configuration d'un mot de passe spécifique avec un montage de type bind
     5.8 Utilisation de volumes %SYS durables
      5.8.1 Contenu stocké sous %SYS durable
      5.8.2 Comment activer %SYS durable
  6. Utilisation de Docker Compose
     6.1 Exemple d'utilisation de l'outil Docker Compose
     6.2 Exécution de Docker Compose
  7. Utilisation d'un fichier Dockerfile pour l'exécution d'un code source personnalisé
     7.1 Exemple de fichier Dockerfile
     7.2 Exemple de Docker Compose
     7.3 Compréhension des couches, du balisage des images et de la différence entre le temps de compilation et le temps d'exécution
     7.4 Code source et script d'initialisation
     7.5 Création de l'image avec le fichier Dockerfile
     7.6 Exécution d'instructions dans le terminal IRIS conteneurisé
  8. Conclusion et suite
1
0 69