#Interopérabilité

0 Abonnés · 67 Publications

Dans le domaine de la santé, l'interopérabilité est la capacité de différents systèmes informatiques et applications logicielles à communiquer, à échanger des données et à utiliser les informations qui ont été échangées.

Article Iryna Mykhailova · Avr 29, 2024 12m read

Le défi du Lo-Code

Imaginons la scène.  Vous travaillez tranquillement au sein de Widgets Direct, le premier détaillant de Widgets et d'accessoires pour Widgets sur Internet.   Votre patron vous annonce une nouvelle désastreuse : certains clients ne sont peut-être pas satisfaits de leurs widgets et nous avons besoin d'une application d'assistance pour assurer le suivi de ces réclamations.   Pour rendre les choses plus intéressantes, il veut que cette application ait une très faible empreinte de code et vous demande de livrer une application en moins de 150 lignes de code à l'aide d'InterSystems IRIS.  Est-ce possible?

Avertissement : cet article présente la construction d'une application très basique et omet, par souci de concision, des éléments de détail tels que la Sécurité et la Gestion des erreurs.   Cette application ne doit être utilisée qu'à titre de référence ni pour une application de production.  Cet article utilise IRIS 2023.1 comme plate-forme de données, certaines fonctionnalités décrites ne sont pas disponibles dans les versions antérieures

Étape 1 – Définition d'un modèle de données

Nous commençons par définir un nouvel espace de noms propre - avec une base de données de codes et de données. Bien que tout soit regroupé dans une seule base de données, il est utile de diviser ces bases pour permettre l'actualisation des données.

0
0 92
Article Pierre LaFay · Avr 9, 2024 4m read

Introduction

Il existe une option d'assistant de procédure de liaison dans le portail de gestion (Système > SQL > Assistants > Procédure de liaison) avec laquelle j'ai eu des problèmes de fiabilité, j'ai donc décidé d'utiliser cette solution à la place.

Problème

0
0 68
Article Pierre LaFay · Avr 9, 2024 5m read

J'ai récemment eu besoin de surveiller depuis HealthConnect les enregistrements présents dans une base de données NoSQL dans le Cloud, plus précisément Cloud Firestore, déployé dans Firebase. D'un coup d'œil rapide, j'ai pu voir à quel point il serait facile de créer un adaptateur ad-hoc pour établir la connexion en tirant parti des capacités d'Embedded Python, et je me suis donc mis au travail.

Préparation de l'environnement

0
0 63
Article Pierre LaFay · Mars 21, 2024 1m read

InterSystems FAQ rubric

Record maps sont utilisés pour faire correspondre efficacement des fichiers contenant des enregistrements délimités ou des enregistrements de largeur fixe aux classes de messages utilisées par la fonction d'interopérabilité, et pour faire correspondre des fichiers de classes de messages de la fonction d'interopérabilité à des fichiers texte.

Le définitions de correspondace peuvent être créés à l'aide du portail de gestion, et nous fournissons également un assistant d'enregistrement CSV qui vous permet de définir tout en lisant un fichier CSV.

0
0 51
Article Sylvain Guilbaud · Fév 23, 2024 5m read

Dans cet article, je partagerai le thème que nous avons présenté lors du Global Summit 2023, dans la salle Tech Exchange. Moi et @Rochael Ribeiro

Lors de cette présentation, nous abordons les sujets suivants :

  • Outils Open Exchange pour des API rapides
  • Spécification de l'Open API
  • Développement d'API traditionnel ou Fast
  • API composite (interopérabilité)
  • Approche Spec-First ou Api-First
  • Gouvernance et surveillance des API
  • Démo (vidéo)

Outils Exchange ouverts pour des API Fast

0
0 106
Article Sylvain Guilbaud · Fév 12, 2024 10m read

La nouveauté de la version 2023.3 (d'InterSystems IRIS for Health) est une fonctionnalité permettant d'effectuer une validation basée sur le profil FHIR.

 (*)

Dans cet article, je vais fournir un aperçu de base de cette fonctionnalité.

Si FHIR est important pour vous, vous devriez absolument essayer cette nouvelle fonctionnalité, alors poursuivez votre lecture.

0
0 89
Article Pierre LaFay · Fév 7, 2024 8m read

Introduction

Il n'y a pas si longtemps, j'ai vu l'idée de using Python Class Definition Syntax to create IRIS classes

sur le portail d'idées d'InterSystems. Elle a attiré mon attention car l'intégration d'un maximum de syntaxes donne de la visibilité aux produits d'InterSystems pour les programmeurs ayant de l'expérience dans de nombreux langages.

0
0 52
Article Guillaume Rongier · Jan 17, 2024 7m read

Bienvenue dans le prochain chapitre de ma série CI/CD, où nous discutons des approches possibles vers le développement de logiciels avec les technologies InterSystems et GitLab. Aujourd'hui, nous reprenons la discussion sur l'interopérabilité, et plus particulièrement sur le suivi de vos déploiements d'interopérabilité. Si vous ne l'avez pas encore fait, configurez Alerte pour toutes vos productions d'interopérabilité afin de recevoir des alertes sur les erreurs et l'état de la production dans son ensemble.

Le paramètre de délais d'inactivité Inactivity Timeout est commun pour tous les hôtes métier d'interopérabilité (Interoperability Business Hosts). Un hôte métier possède le statut Inactif lorsqu'il n'a reçu aucun message pendant le nombre de secondes spécifié dans le champ de délai d'inactivité " Inactivity Timeout ". La fonction de surveillance de la production " Monitor Service " examine périodiquement l'état des services et des opérations métier au sein de la production et marque les éléments comme étant inactifs s'ils n'ont rien fait pendant le délai d'inactivité. La valeur par défaut est 0 (zéro). Si ce paramètre est 0, l'hôte métier ne sera jamais marqué comme Inactif, quelle que soit la durée de son inactivité.

Ce paramètre est extrêmement utile, car il génère des alertes qui, associées aux alertes configurées, permettent de signaler les problèmes de production en temps réel. Le fait que l'élément "Business Host" soit inactif signifie qu'il peut y avoir des problèmes de production, d'intégration ou de connectivité réseau qui nécessitent d'être examinés. Cependant, le Business Host ne peut avoir qu'un seul paramètre constant pour le délai d'inactivité, ce qui peut générer des alertes inutiles pendant les périodes connues de faible trafic : nuits, week-ends, vacances, etc. Dans cet article, je décrirai plusieurs approches pour la mise en œuvre dynamique des délais d'inactivité (Inactivity Timeout). Bien que je fournisse un exemple fonctionnel (qui fonctionne actuellement en production pour l'un de nos clients), cet article est plutôt un guide pour votre propre mise en œuvre dynamique des délais d'inactivité, donc ne considérez pas la solution proposée comme la seule alternative.

0
0 56
Article Pierre LaFay · Jan 9, 2024 3m read

Bonjour la communauté,

Lors de l'utilisation d'un Business Service de type SQL, il peut arriver que nous ayons besoin de rejouer certaines lignes de la table source.

Prenons comme exemple le Service Métier "from customer SQL" utilisant la classe générique

EnsLib.SQL.Service.GenericService

Différents cas se présentent, selon les paramètres utilisés sur ce Business Service

Premier cas :

Si le Business Service utilise uniquement KeyFieldName

0
0 34
Article Sylvain Guilbaud · Jan 8, 2024 3m read

Bonjour La Communauté,

en utilisant un Business Service de type SQL, il peut arriver que nous ayons besoin de rejouer certaines lignes de la table source.

Prenons comme exemple le Business Service "from customer SQL"  utilisant la classe générique EnsLib.SQL.Service.GenericService

Différents cas se présentent, en fonction des paramétres utilisés sur ce Business Service.

Premier cas :

Si le Business Service utilise uniquement un champ clé (KeyFieldName)

0
0 44
Article Guillaume Rongier · Jan 8, 2024 14m read

Bienvenue dans le prochain chapitre de ma série CI/CD, où nous discutons des approches possibles vers le développement de logiciels avec les technologies InterSystems et GitLab.

Aujourd'hui, parlons d'interopérabilité.

Problème

Lorsque vous avez une production d'interopérabilité active, vous avez deux flux de processus distincts : une production active qui traite les messages et un flux de processus CI/CD qui met à jour le code, la configuration de la production et les paramètres par défaut du système.

De toute évidence, le processus CI/CD affecte l'interopérabilité. Mais il y a des questions :

  • Que se passe-t-il exactement lors d'une mise à jour ?
  • Que devons-nous faire pour minimiser ou éliminer les temps d'arrêt de la production lors d'une mise à jour ?
0
0 76
Question Cyril Grosjean · Déc 12, 2023

Bonjour,

Nous avons voulu mettre en pré-production un flux 100% python, cependant lorsqu'on a lancé la commande iop pour tester avec l'utilisateur qui va déployer via une CI/CD le code, voici ce qu'on obtient:

ssh.gitlab est notre utilisateur, nous sommes sur un serveur Windows 10 et ssh.gitlab est admin.

Y a-t-il des modifications à faire sur le portail d'IRIS ? (Un utilisateur est créé pour la CI/CD suite à ce post)

Merci d'avance !

Cordialement,

Cyril

2
0 59
Question Laurent Vilcoq · Nov 16, 2023

Bonjour,

Je dois récupérer quotidiennement la totalité des données d'une vue SQL externe pour générer un fichier csv unique. J'étais partie sur l'utilisation d'un service de type EnsLib.SQL.Service.GenericService mais cela ne me convient pas puisque chaque ligne de résultat de la requête SQL génère un message et une trace différents. Dois-je passer par une table de lien ? Créer un service de toute pièce en implémentant le OnProcessInput() ? Autre ?

Merci par avance pour votre aide.

Bien cordialement,

2
1 144
Question Cyril Grosjean · Oct 11, 2023

Bonjour,

J'ai un soucis depuis quelques jours que je n'arrive pas à régler après pas mal de recherche sur le forum communautaire français et anglais, ainsi que la documentation InterSystems. J'ai deux namespaces : "TEST" et "SUPPLY_CHAIN" ainsi qu'une fonction en python identique compilée dans les deux namespaces :

ClassMethod testPython() As%Status [ Language = python ]

{

    print("Ok")

}

Lorsque j'appelle depuis le terminal iris cette fonction comme ceci:

do##class(TEST.maclasse).testPython()


Cela me retourne bien "ok"

7
0 144
Question Julia Pertin · Sept 18, 2023

Bonjour à tous, 

Pour un interop je dois récupérer en entrée un json d'une API REST. J'essaie donc de passer le %Net.HttpRequest or j'obtiens cette erreur : 

J'ai mis cette classe en entrée du business process et j'ai un business service qui appel à intervalle régulier ce business process : 

Pouvez-vous m'aider s'il vous plait ? 

1
1 79
Article Sylvain Guilbaud · Sept 14, 2023 8m read

Aperçu

La documentation en ligne contient une référence expliquant comment définir et utiliser les requêtes de classes.

La personnalisation des procédures stockées en ObjectScript s'est avérée utile pour accéder au stockage NoSQL et à la messagerie externe via l'intégration, afin de présenter la sortie sous forme de tableau.

Par exemple : une application qui utilise déjà 90 % d'interaction SQL depuis un frontal peut alors également étendre cet accès aux 10 % restants des fonctionnalités requises de la plate-forme, via le même accès SQL.

0
0 90
Article Guillaume Rongier · Juil 24, 2023 7m read

Je suis fier d'annoncer la nouvelle version du logiciel iris-pex-embedded-python (v2.3.1) avec une nouvelle interface en ligne de commande.

Cette ligne de commande est appelée iop et signifie Interoperability On Python (interopérabilité sur Python).

Tout d'abord, j'aimerais présenter en quelques mots le projet et les principaux changements depuis la version 1.

Un bref historique du projet

La version 1.0 était une preuve de concept visant à montrer comment le cadre d'interopérabilité d'IRIS peut être utilisé avec une approche python first (priorité à Python) tout en restant compatible avec n'importe quel code ObjectScript existant.

Qu'est-ce que cela signifie ? Cela signifie que tout développeur python peut utiliser le cadre d'interopérabilité d'IRIS sans aucune connaissance d'ObjectScript.

Exemple :

from grongier.pex import BusinessOperation

class MyBusinessOperation(BusinessOperation):

    def on_message(self, request):
        self.log.info("Demande reçue")

Formidable, n'est-ce pas ?

0
0 72
Article Guillaume Rongier · Juil 12, 2023 4m read

L' adaptateur Telegram pour InterSystems IRIS sert de pont entre la populaire plateforme de messagerie Telegram et InterSystems IRIS, facilitant une communication et un échange de données transparents. En exploitant les capacités de l'API Telegram, l'adaptateur permet aux développeurs de créer des chatbots robustes, d'automatiser des tâches et d'intégrer Telegram aux applications d'InterSystems IRIS.

Les scénarios les plus courants dans lesquels l'adaptateur Telegram peut être utilisé sont les suivants :

0
0 106
Article Irène Mykhailova · Mars 15, 2023 2m read

Bonjour à tous !

Je partage avec vous un outil d'ingestion de données que nous avons utilisé dans certains projets.

DataPipe est un framework d'interopérabilité pour l'ingestion de données dans InterSystems IRIS de manière flexible. Il vous permet de recevoir des données de sources externes, de normaliser et de valider les informations et enfin d'effectuer toutes les opérations dont vous avez besoin avec vos données.

Modèle

En premier lieu, vous devez définir un modèle. Un modèle est simplement une classe qui s'étend à partir de DataPipe.Model où vous devez implémenter quelques méthodes :

0
0 109
Article Irène Mykhailova · Jan 12, 2023 3m read

Voulez-vous être sûr que vos transformations de données fonctionnent comme prévu avec une seule commande ? Et que diriez-vous d'écrire des tests unitaires pour vos transformations de données de manière simple et rapide ? 

Les transformations de données sont généralement très présentes lorsqu'on parle d'interopérabilité. Ces transformations de données sont utilisées pour convertir les données entre différents systèmes ou applications dans votre code, et elles ont donc un rôle très important à jouer.

Les stratégies de test

0
0 106
Article Guillaume Rongier · Jan 4, 2023 11m read

Les systèmes EHR (Electronic Health Record) sont modélisés dans un format/structure propriétaire et ne sont pas basés sur des modèles du marché tels que FHIR ou HL7. Certains de ces systèmes peuvent interopérer des données dans un format propriétaire pour FHIR et d'autres modèles de marché, mais pas tous. InterSystems dispose de deux plateformes capables d'interopérer des formats propriétaires pour ceux du marché : InterSystems HealthShare Connect et InterSystems IRIS for Health. La fonctionnalité de transformation (DTL - Data Transformation Language) de ces plateformes peut recevoir des données dans n'importe quel format, structure ou canal de communication (CSV, JSON, XML, et autres via FTP, File, HTTP, etc.) et les transformer directement en formats du marché (FHIR, CDA, HL7, etc.). Cependant, InterSystems dispose d'un format intermédiaire appelé SDA (Summary Document Architecture) qui est utilisé par ces plateformes pour générer sans effort des FHIR STU, R3, R4, HL7v2, HL7v3, etc. En outre, lorsqu'elles sont au format SDA, les données de santé peuvent être conservées dans le RCU HealthShare. Ainsi, le format propriétaire/personnel est d'abord transformé en SDA, puis les données peuvent être automatiquement converties dans n'importe quel format du marché, ainsi que sauvegardées dans HealthShare. Dans cet article, nous allons vous montrer comment transformer des données propriétaires/personnalisées en SDA à l'aide d'IRIS for Health. L'exemple de données que nous avons utilisé a été généré par le projet de génération de données en masse SYNTHEA (https://synthea.mitre.org/downloads). Nous allons convertir 1000 patients d'un fichier CSV en SDA, en utilisant les fonctions d'interopérabilité d'IRIS for Health.

0
0 126
Article Lorenzo Scalese · Déc 9, 2022 3m read

Une production simple qui permet de charger des paquets de transactions FHIR dans le serveur FHIR® d'InterSystems® via Box et Dropbox.&nbsp ; En utilisant les composants de connexion MFT inclus et un processus personnalisé Custom Business Process de 14 lignes, cette production traitera vos paquets de transactions vers les ressources FHIR pour une consommation immédiate à la manière magique digne d'Harry Potter.  Idéal pour les Hackathons, la recherche et les cocktails FHIR®.

0
0 71
Article Lorenzo Scalese · Déc 7, 2022 9m read

Salut la communauté,

J’aimerais profiter de notre sujet sur la capture pour les Entrepôts de Données de Santé (EDS) pour vous présenter comment créer rapidement des clients HTTP SOAP et REST.  IRIS ainsi que des applications disponibles sur Open Exchange proposent des solutions permettant de les générer à partir d’un WSDL ou d’une spécification swagger.

Client SOAP

0
0 123
Article Guillaume Rongier · Déc 5, 2022 15m read

FTP ( Protocole de transfert de fichiers) est un protocole de réseau permettant de transmettre des fichiers sur des connexions TCP/IP dans un réseau (y compris l'Internet) configuré pour transférer des fichiers via ce protocole. Dans une transaction FTP, un expéditeur de fichiers est appelé hôte local. Un récepteur de fichiers impliqué dans le FTP est un hôte distant, et il s'agit généralement d'un serveur. Bien que de nombreux transferts de fichiers puissent être effectués à l'aide du protocole HTTP (Hypertext Transfer Protocol), le FTP est encore couramment utilisé pour transférer des

0
0 189