#InterSystems IRIS for Health

0 Abonnés · 431 Publications

InterSystems IRIS for Health™ est la première et la seule plateforme de données au monde conçue spécifiquement pour le développement rapide d'applications de santé afin de gérer les données les plus critiques du monde. Elle comprend de puissantes fonctionnalités prêtes à l'emploi : traitement et analyse des transactions, modèle de données de santé extensible, développement de solutions basé sur FHIR, prise en charge des normes d'interopérabilité de santé, etc. Toutes ces fonctionnalités permettent aux développeurs de créer rapidement de la valeur et des applications révolutionnaires. En savoir plus.

Article Robert Barbiaux · Sept 7, 2024 2m read

Introduction

Cet article décrit comment exécuter les tests unitaires lorsque la fonctionnalité intégrée à l'extension InterSystems ObjectScript n'est pas disponible car la version de IRIS utilisée est antérieure à 2023.3.

Au passage, l'extension ne semble pas supporter les tests pour les productions d'interopérabilité (classes qui étendent %UnitTest.TestProduction) , mais c'est seulement lié à la manière de déterminer si la classe comporte une méthode de test. Il suffit d'ajouter une méthode dont le nom commence par 'Test' pour que la classe soit reconnue par l'extension.

0
0 133
Article Lorenzo Scalese · Sept 18, 2025 5m read

IrisTest est un outil léger, puissant et facile à utiliser, conçu pour simplifier la génération de rapports de tests unitaires. Il comprend un interpréteur de commandes interactif et une API pour faciliter la communication, permettant aux développeurs de gérer et de générer facilement des rapports pour leurs tests dans des formats variés. Que vous déboguez ou créiez des rapports détaillés pour analyse, IrisTest rend le processus fluide et efficace!

0
0 41
Article Sylvain Guilbaud · Jan 30, 2024 4m read

Traitement des ressources FHIR avec FHIR SQL BUILDER pour prédire la probabilité de développer une hépatite C

Avec le développement de la technologie, l'industrie médicale progresse également constamment et les humains accordent souvent plus d'attention à leur propre santé.
En apprenant et en traitant des ensembles de données par ordinateur, les maladies peuvent être prédites.

2
0 72
Article Lorenzo Scalese · Juin 10, 2024 4m read

Introduction

J'ai récemment participé à une séance pratique formidablement organisée par @Patrick Jamieson au cours de laquelle une application Angular a été configurée avec un serveur IRIS FHIR en suivant les protocoles définis par SMART On FHIR. J'ai trouvé cela très intéressant et j'ai donc décidé de développer ma propre application Angular et de profiter ainsi de ce que j'ai appris en la publiant au sein de la communauté.

0
0 92
Article Sylvain Guilbaud · Août 24, 2023 1m read

Il arrive parfois que suite à un événement indésirable la base d'AUDIT (IRISAUDIT) ait pris des proportions telles que le disque sur lequel elle réside soit plein et qu'on ne peut attendre la purge quotidienne pour récupérer l'espace disque.

Comme IRISAUDIT est une base système requise au démarrage, il n'est pas question de tenter un redémarrage d'IRIS après une simple suppression de IRIS.

1
0 74
Article Sylvain Guilbaud · Mars 28, 2025 54m read

Depuis l'introduction d'Embedded Python, il y a toujours eu un doute sur ses performances par rapport à ObjectScript et J'en ai discuté à plusieurs reprises avec @Guillaume Rongier , eh bien, profitant du fait que je faisais une petite application pour capturer les données des concours publics en Espagne et pouvoir effectuer des recherches en utilisant les capacités de VectorSearch, j'ai vu l'opportunité de réaliser un petit test.

0
0 48
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 48
Article Lorenzo Scalese · Juin 12, 2024 7m read

Dans l'article précédent, nous avons présenté l'architecture de notre projet SMART On FHIR, il est donc temps de passer aux choses sérieuses et de commencer à configurer tous les éléments qui seront nécessaires.

Nous commençons avec Auth0.

Configuration de l'Auth0

Commençons par créer un compte Auth0 avec un email valide, une fois enregistré il nous faut créer notre première application, et nous le ferons à partir du menu de gauche:

Application menu

Dans notre exemple, l'application sera de type application web monopage car il s'agit d'une application développée dans Angular 16.

0
0 72
Article Sylvain Guilbaud · Fév 1, 2024 6m read

Bonjour La Communauté,

Le langage SQL reste le moyen le plus pratique pour récupérer de l'information stockée en base de données.

Le format JSON est très souvent utilisé dans les échanges de données.

Il est donc fréquent de chercher à obtenir des données au format JSON à partir de requêtes SQL.

Vous trouverez ci-dessous des exemples simples qui pourront vous aider à répondre à ce besoin à partir de code en ObjectScript et en Python.

ObjectScript : via le SQL dynamique avec %SQL.Statement

1
0 357
Article Sylvain Guilbaud · Fév 15, 2023 8m read

Introduction

Dans un article précédent, j'ai abordé les modèles d'exécution des tests unitaires via le gestionnaire de paquets ObjectScript. Cet article va un peu plus loin, en utilisant les actions GitHub pour piloter l'exécution des tests et la création de rapports. Le cas d'utilisation qui nous motive est l'exécution du CI pour l'un de mes projets Open Exchange, AppS.REST (voir l'article d'introduction à ce projet ici). Vous pouvez voir l'implémentation complète dont les extraits de cet article ont été tirés sur GitHub ; elle pourrait facilement servir de modèle pour l'exécution de l'IC pour d'autres projets utilisant le gestionnaire de paquets ObjectScript.

Les fonctionnalités dont la mise en œuvre a été démontrée comprennent :

  • Compilation et test d'un paquet ObjectScript
  • Rapport sur la mesure de la couverture des tests (en utilisant le paquet TestCoverage) via codecov.io
  • Téléchargement d'un rapport sur les résultats des tests en tant qu'artefact de comppilation.
0
0 104
Article Sylvain Guilbaud · Août 24, 2023 9m read

À titre d'exemple d'application en Java fonctionnant avec le dialecte Hibernate pour IRIS, je souhaitais utiliser l'application RealWorld et j'ai trouvé une réalisation pour Quarkus. L'application RealWorld est un exemple d'application proche d'une application réelle, avec des tests déjà préparés pour le backend. La plupart des exemples de réalisations sont à retrouver ici

RealWorld Example App

L'exemple d'application RealWorld est souvent appelé « Wikipédia pour la création d'applications full-stack ». Il sert de prototype standardisé que les développeurs peuvent utiliser pour créer des applications à l'aide de divers langages et frameworks de programmation. L'application fournit un cas d'utilisation réel en imitant une plate-forme de blogs, avec des fonctionnalités telles que l'authentification des utilisateurs, la gestion des profils, la publication d'articles et les commentaires. Avec un ensemble complet de spécifications, y compris une documentation d'API backend prête à l'emploi et des conceptions frontend, il permet aux développeurs de voir comment les mêmes exigences fonctionnelles sont mises en œuvre dans différentes piles technologiques. L'exemple RealWorld est largement utilisé comme outil d'apprentissage et comme référence pour comparer diverses technologies.

Quarkus

Quarkus est un framework Java open source natif de Kubernetes, conçu pour GraalVM et HotSpot. Créé dans le but d'améliorer l'environnement cloud natif moderne, il réduit considérablement l'empreinte et le temps de démarrage des applications Java. Quarkus est connu pour sa philosophie « privilégiant le conteneur », permettant aux développeurs de créer des applications légères et performantes en mettant l'accent sur l'architecture des microservices. Cette flexibilité en a fait un choix populaire pour les organisations cherchant à passer à des plates-formes sans serveur ou basées sur le cloud, combinant des modèles de programmation impératifs et réactifs. Qu'il s'agisse d'une application Web traditionnelle ou d'un système complexe de microservices, Quarkus fournit une plate-forme robuste pour créer des logiciels évolutifs et maintenables.

0
0 110
Article Sylvain Guilbaud · Sept 5, 2025 1m read

Rubrique FAQ InterSystems

Si vous souhaitez générer une erreur personnalisée arbitraire dans un bloc TRY, vous pouvez transmettre une exception avec un throw comme suit. Dans l'exemple suivant, une erreur personnalisée est générée si Stcount est inférieur à 1.

ClassClassMethodtry

Dans l'exemple ci-dessus, si Stcount est inférieur à 1, une erreur comme celle-ci sera générée :

USER>
0
1 42
Article Sylvain Guilbaud · Juil 5, 2023 17m read

Ci-dessous figure une liste de certains des utilitaires disponibles dans InterSystems IRIS.

Cliquez sur le nom de chaque utilitaire dans le tableau ci-dessous pour obtenir des informations détaillées sur l'utilitaire.

Nom de l'utilitaire Aperçu
^BACKUP Exécution d'opérations de sauvegarde et de restauration
^DATABASE Gestion des bases de données, y compris la création, la modification et la suppression de bases de données
^DATACHECK Vérification de la concordance du contenu des deux fichiers IRIS.DAT
0
0 158
Annonce Irène Mykhailova · Avr 10, 2022

Docker 20.10.14 (publié le 23 mars 2022) modifie les capacités Linux accordées aux conteneurs d'une manière incompatible avec le vérificateur de capacités Linux dans les conteneurs InterSystems IRIS 2021.1 (et versions ultérieures).

Les utilisateurs exécutant Docker 20.10.14 sous Linux constateront que les conteneurs IRIS 2021.1+ ne démarreront pas et les journaux signaleront à tort que les fonctionnalités Linux requises sont manquantes. Par example :

[ERROR] Required Linux capability cap_setuid is missing.
[ERROR] Required Linux capability cap_dac_override is missing.
[ERROR] Required Linux capability cap_fowner is missing.
[ERROR] Required Linux capability cap_setgid is missing.
[ERROR] Required Linux capability cap_kill is missing.
[FATAL] Your IRIS container is missing one or more required Linux capabilities.
2
0 150
InterSystems officiel Adeline Icard · Fév 9

Les troisièmes versions préliminaires pour développeurs de la plateforme de données InterSystems IRIS®, d'InterSystems IRIS® for Health et de HealthShare® Health Connect 2026.1 sont disponibles sur le site des versions préliminaires pour développeurs du WRC. Les conteneurs sont disponibles sur notre registre de conteneurs et portent l'étiquette « latest-preview ».

Ces versions préliminaires pour développeurs marquent la fin de la prise en charge des Mac Intel à partir de la version 2026.1.0 et le retour de la prise en charge de Windows Server 2019 dans la version 2026.1.0.

0
0 42
Article Pierre LaFay · Mars 2, 2024 3m read

Bonjour à la communauté,

C'est mon premier message dans la communauté des développeurs - j'apprécierais tout retour d'information !

A des fins de tests ou de démonstrations, vous pouvez vouloir envoyer des emails à partir de votre production d'interopérabilité. Dans ce billet, je vais vous aider à connecter une production IRIS d'InterSystems à Gmail afin que vous puissiez l'utiliser pour envoyer des alertes par email.

Traduit avec DeepL.com (version gratuite)

1.

1
0 177
Article Iryna Mykhailova · Mars 11, 2025 1m read

Bonjour collègues !

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.

J'ai récemment intégré la prise en charge de Swagger dans InterSystems IRIS FHIR template pour l'API FHIR R4 :

Comment le faire fonctionner.

0
0 41
InterSystems officiel Adeline Icard · Fév 11

Les versions de maintenance 2025.1.3 de la plateforme de données InterSystems IRIS®, d’InterSystems IRIS® for HealthTM et de HealthShare® Health Connect sont désormais disponibles en disponibilité générale (GA)

0
0 30
Article Sylvain Guilbaud · Août 10, 2023 1m read

Rubrique FAQ InterSystems

Vous pouvez définir des pages d'erreur individuelles en fonction des différents types de messages d'erreur ou de réponses système de la passerelle Web :

  • erreur de serveur 
  • serveur occupé
  • serveur indisponible
  • délai d'attente du serveur
  • connexion fermée

Les paramètres sont définis sur l'écran Gestion de passerelle Web ([Portail d'Administration] > [Administration système] > [Configuration] > [Gestion de passerelle Web] > [Configuration] > [Default Parameters]).

Dans la section "Error Pages" du menu "Default Parameters", indiquez le nom de fichier de la page html à afficher ou l'URL vers laquelle rediriger la réponse lorsqu'une erreur se produit.

 

1
0 99
Article Pierre LaFay · Mars 3, 2024 2m read

InterSystems FAQ rubric

Les mappages globaux peuvent être enregistrés à l'aide de la classe système Config.MapGlobals.

La méthode pour mapper globalement ^Sample.PersonD dans une base de données SAMPLES autre que la base de données par défaut de l'espace de noms USER est la suivante (exemple exécuté dans un terminal).

USER>zn"%SYS"

Le troisième argument de la méthode Create() de la classe Config.MapGlobals est transmis par référence, il faut donc le spécifier en ajoutant un point (.) au nom de la variable.

Outre la classe Config.

0
0 76
Article Guillaume Rongier · Nov 17, 2023 3m read

Rubrique Questions fréquentes (FAQ) d'InterSystems

Pour les routines (*.mac)

Vous pouvez masquer la source en exportant/important uniquement le fichier *.obj généré après la compilation du programme source.

L'exemple d'exécution de la commande spécifie EX1Sample.obj et EX2Sample.obj, qui sont générés par la compilation de EX1Sample.mac et EX2Sample.mac, comme cibles d'exportation et les exporte dans le deuxième fichier argument.

Après avoir changé d'espace de noms, j'utilise le fichier XML exporté pour effectuer l'importation.

USER>do$system

Pour les classes (*.cls)

0
0 88
Article Iryna Mykhailova · Août 28, 2025 12m read

Nous présentons ici le processus d'utilisation de la célèbre solution Jaeger pour tracer les applications InterSystems IRIS. Jaeger est un produit open source permettant de suivre et d'identifier des problèmes, en particulier dans les environnements distribués et de microservices. Ce backend de traçage, apparu chez Uber en 2015, a été inspiré par Dapper de Google et OpenZipkin de Twitter. Il a ensuite rejoint la Fondation Cloud Native Computing (CNCF) en tant que projet en incubation en 2017, avant d'obtenir le statut gradué en 2019.

0
0 43
Article Guillaume Rongier · Jan 8 15m read

Salut la Communauté,

Dans la première partie de cette série, on a vu les bases de l'interopérabilité sur Python Interoperability on Python (IoP), et surtout comment ça nous permet de construire des éléments d'interopérabilité comme des services métier, des processus et des opérations uniquement à l'aide de Python.

Maintenant, on est prêts à aller plus loin. Les scénarios d'intégration dans le monde réel vont au-delà du simple transfert de messages. Ils impliquent des interrogations programmées, des structures de messages personnalisées, une logique de décision, un filtrage et une gestion de la configuration. Dans cet article, on va se pencher sur ces fonctionnalités IoP plus avancées et montrer comment créer et exécuter un flux d'interopérabilité plus complexe uniquement à l'aide de Python.

Pour que ce soit plus concret, on va construire un exemple complet: La Reddit Post Analyzer Production (production d'analyseur de posts Reddit). Le concept est simple : récupérer en continu les dernières publications d'un subreddit choisi, les filtrer en fonction de leur popularité, leur ajouter des balises supplémentaires et les envoyer pour stockage ou analyse plus approfondie.

L'objectif final est ici de disposer d'un pipeline d'ingestion de données fiable et autonome. Tous les éléments principaux (service métier, processus métier et opération métier) sont implémentés en Python, ce qui montre comment utiliser l'IoP à l'aide de la méthodologie d'intégration axée sur Python.

0
0 38
Article Adeline Icard · Oct 20, 2023 8m read

Bonjour à toutes et à tous !

InterSystems a sponsorisé le FHIR User Day qui a eu lieu lors de la semaine européenne de la e-santé. Et je voudrais partager avec vous mes notes de cet événement. Mais avant ça, j'ai le plaisir à vous infirmer que la journée a été entièrement filmée. Les vidéos des différentes interventions seront transmises dans les semaines à venir. Restez à l'écoute!

Sans perte de temps, voici toute l'info.

0
0 178
Article Iryna Mykhailova · Mai 13, 2024 1m read

Dans Studio, vous pouviez ouvrir une classe directement par son nom, sans avoir à parcourir l'arborescence du paquetage par de multiples clics jusqu'à ce que vous arriviez à la classe souhaitée.

Vous pouvez faire Ctrl + O ou (File -> Open) et taper simplement le nom de la classe, par exemple :

Appuyez sur la touche "Enter" et la classe est ouverte.

Comment y parvenir en VSCode ?

0
0 226
Article Lorenzo Scalese · Juin 1, 2022 9m read

Un système de stockage global d'aspect plus industriel

Dans le premier article de cette série, nous avons étudié le modèle entité-attribut-valeur (EAV) dans les bases de données relationnelles, et nous avons examiné les avantages et les inconvénients du stockage de ces entités, attributs et valeurs dans des tables. Nous avons appris que, malgré les avantages de cette approche en termes de flexibilité, elle présente de réels inconvénients, notamment une inadéquation fondamentale entre la structure logique des données et leur stockage physique, qui entraîne diverses difficultés.

Pour résoudre ces problèmes, nous avons décidé de voir si l'utilisation de globales - qui sont optimisées pour le stockage d'informations hiérarchiques - serait efficace pour les tâches que l'approche EAV traite habituellement.

Dans la Partie 1, nous avons créé un catalogue pour une boutique en ligne, d'abord en utilisant des tables, puis en utilisant une seule globale. Maintenant, essayons d'implémenter la même structure pour quelques globales.

Dans la première globale, ^catalog, nous allons stocker la structure du répertoire. Dans la deuxième globale, ^good, nous allons stocker les marchandises. Et dans la globale ^index, nous allons stocker les index. Puisque nos propriétés sont liées à un catalogue hiérarchique, nous ne créerons pas de globale séparée pour elles.

Avec cette approche, pour chaque entité (à l'exception des propriétés), nous avons une globale séparée, ce qui est bon du point de vue de la logique. Voici la structure du catalogue global :

0
0 467
Question Jean-Charles Cano · Oct 4, 2023

Bonjour,

Nous voulons créer une CD pour InterSystems. Nous avons créé un script IRIS qui permet de compiler automatiquement les fichiers .cls dans les bons namespaces et pour exécuter ce script, nous faisons la commande: iristerm /console=cn_ap:IRIS .\import.scr'

Cependant, cela va nous ouvrir un terminal IRIS dans une nouvelle fenêtre (GUI). Le problème, c'est que nous passons par un user SSH, en exécutant la commande : 

ssh user@hostname 'E: && iristerm /console=cn_ap:IRIS .\import.scr'
5
0 192
Article Sylvain Guilbaud · Fév 15, 2024 6m read

Dans cet article, nous allons voir comment utiliser le service de messagerie instantanée WhatsApp depuis InterSystems IRIS pour envoyer des messages à différents destinataires. Pour ce faire, nous devons créer et configurer un compte dans Meta et configurer une opération métier pour envoyer les messages que nous souhaitons.

Examinons chacune de ces étapes plus en détail.

Créer un compte sur Meta

C'est peut-être le point le plus compliqué de toute la configuration, puisque nous devrons configurer une série de comptes jusqu'à ce que nous puissions avoir la fonctionnalité de messagerie.

0
0 125