Article Lorenzo Scalese · Août 22, 2024 5m read

Dans l'article précédent, nous avons présenté l'application d[IA]gnosis développée pour soutenir le codage des diagnostics CIM-10. Dans le présent article, nous verrons comment InterSystems IRIS for Health nous fournit les outils nécessaires à la génération de vecteurs à partir de la liste des codes CIM-10 au moyen d'un modèle de langage pré-entraîné, à leur stockage et à la recherche ultérieure de similitudes sur tous ces vecteurs générés.

Introduction

L'une des principales fonctionnalités apparues avec le développement des modèles d'IA est ce que nous appelons RAG (Retrieval-Augmented

0
1 60
Article Lorenzo Scalese · Août 20, 2024 8m read

Avec l'introduction des types de données vectorielles et de la fonctionnalité de recherche vectorielle dans IRIS, tout un univers de possibilités de développement d'applications s'ouvre et un exemple de ces applications est celui que j'ai récemment vu publié dans un appel d'offres public du Ministère régional de la santé de Valence demandant un outil d'aide au codage de la CIM-10 à l'aide de modèles d'IA.

Comment pourrions-nous mettre en œuvre une application similaire à celle demandée? Voyons ce dont nous aurions besoin:

  1. Liste des codes CIM-10, que nous utiliserons comme contexte de notre
0
1 57
Article Lorenzo Scalese · Août 8, 2024 3m read

Parfois, nous devons convertir le message FHIR en HL7 V2, par exemple pour enregistrer un patient dans le système PACS.
Dans cet article, les étapes à suivre pour obtenir les résultats souhaités en utilisant la production du serveur IRIS FHIR seront expliquées.

Voici les étapes à suivre:

  1. Assurez-vous que la production du serveur FHIR est démarrée.
  2. Enregistrez le service métier avec le point de terminaison FHIRServer.
  3. Définissez les processus métier pour convertir les messages FHIR en SDA, puis convertissez SDA en HL7 v2.
  4. Publiez la ressource JSON sur le point de terminaison FHIRServer et obtenez la réponse HL7 V2.

Examinons les étapes en détail.
 

Étape 1. Assurez-vous que la production du serveur FHIR est démarrée

Ouvrez la page de production et assurez-vous que la Production est démarrée. À l'étape suivante, nous devons nous assurer que le service commercial HS.FHIRServer.Interop.Service est enregistré auprès de FHIRServer

0
0 79
Article Lorenzo Scalese · Juil 29, 2024 9m read

Supposons que vous ayez une application qui permette aux utilisateurs d'écrire des articles et de les commenter. (Attendez...  ça me dit quelque chose...)

L'objectif est de répertorier, pour un utilisateur donné, tous les messages publiés avec lesquels il a interagi, c'est-à-dire dont il est l'auteur ou qu'il a commentés. Comment faites-vous cela aussi vite que possible?

Voici à quoi pourraient ressembler les définitions de notre classe %Persistent comme point de départ (les définitions de stockage sont importantes, mais omises par souci de concision):

Class DC.Demo.Post Extends%Persistent
{

Pro

0
0 48
Article Lorenzo Scalese · Juil 2, 2024 7m read

Enfin et avec un peu de retard, nous concluons cette série d'articles sur notre moteur de Workflow en montrant un exemple de connexion que nous pourrions établir à partir d'une application mobile.

Dans l'article précédent, nous avons présenté un exemple d'application permettant un contrôle détaillé d'une pathologie chronique telle que l'hypertension, tant pour le patient que pour son médecin associé.

0
0 69
Article Lorenzo Scalese · Juin 20, 2024 7m read

Dans notre article précédent, nous avons présenté les concepts généraux ainsi que le problème que nous voulions résoudre en utilisant le moteur de tâches intégré dans InterSystems IRIS. Dans l'article d'aujourd'hui, nous verrons comment configurer une production d'interopérabilité pour fournir une solution.

Configuration du moteur de workflow

Tout d'abord, nous allons définir les rôles des tâches à gérer. Dans notre exemple, nous allons définir deux types de tâches:

  • AutomaticBloodPressureRole: pour créer des tâches automatiques qui ne nécessitent aucune intervention de la part de l'utilisateur.
0
0 58
Article Lorenzo Scalese · Juin 18, 2024 6m read

Cela fait un certain temps que j'ai l'intention de faire une sorte de démonstration de concept avec la fonctionnalité Workflow (flux de travail), qui, comme beaucoup d'autres fonctionnalités disponibles dans IRIS, tend à passer inaperçue aux yeux de nos clients (et je fais ici mon mea culpa). C'est pourquoi j'ai décidé il y a quelques jours de développer un exemple de configuration et d'exploitation de cette fonctionnalité en la connectant à une interface utilisateur développée en Angular.

Pour ne pas faire un article trop long et le rendre plus accessible, je vais le diviser en 3 parties.

0
0 71
Article Lorenzo Scalese · Juin 14, 2024 5m read

Nous concluons cette série d'articles SMART On FHIR avec Auth0 et le référentiel FHIR d'InterSystems IRIS en passant en revue notre application développée en Angular 16.

Rappelons à quoi ressemble l'architecture définie pour notre solution:

Notre application qui servira de front-end correspond à la deuxième colonne et comme vous pouvez le voir, elle sera en charge de deux choses:

  1. Redirigez la demande de connexion vers Auth0 et recevez la réponse.
  2. Envoyez et recevez la réponse des requêtes via REST envoyées au serveur FHIR.

Angular

Angular est un cadre d'application web développé en TypeScript,

0
0 65
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 67
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é.

SMART On FHIR

Voyons ce que Google nous dit sur SMART On FHIR:

SMART on FHIR est un standard de données qui permet aux applications d'accéder aux informations contenues

0
0 87
Article Lorenzo Scalese · Avr 25, 2024 7m read

En tant que modèle linguistique d'IA, ChatGPT est capable d'effectuer une variété de tâches telles que traduire, écrire des chansons, répondre à des questions de recherche et même générer du code informatique. Avec ses capacités impressionnantes, ChatGPT est rapidement devenu un outil populaire pour diverses applications, des chatbots à la création de contenu.
Mais malgré ses capacités avancées, ChatGPT n'est pas en mesure d'accéder à vos données personnelles. Mais malgré ses capacités avancées, ChatGPT n'est pas en mesure d'accéder à vos données personnelles. Ainsi, dans cet article, je vais démontrer les étapes suivantes pour construire une IA ChatGPT personnalisée en utilisant le LangChain Framework:

1
0 333
Article Lorenzo Scalese · Nov 9, 2023 14m read

Salut les devs,

Actuellement, je travaille sur un projet qui requiert une gestion hautement dynamique des événements. Dans le contexte du langage de programmation Java, mon premier choix aurait été d'opter instinctivement pour l'utilisation du "Observer Pattern". Le "Observer Pattern" représente une approche pour gérer les interactions entre les objets en établissant un mécanisme de notification. Il permet à plusieurs observateurs de réagir de manière autonome aux changements d'état d'un sujet, favorisant ainsi la flexibilité et la modularité du code. Si vous n'êtes pas familier avec ce modèle de conception, vous pouvez trouver de plus amples informations à ce sujet sur ceWikipedia

Bien que ce soit naturel et couramment utilisé dans certains langages de programmations comme le Java ou le C++, en ObjectScript pas du tout. 

2
1 171
Article Lorenzo Scalese · Oct 24, 2023 22m read

Notre objectif

Aujourd'hui, nous poursuivons le développement de notre dernier article et présentons des informations sur certaines fonctionnalités que nous avons ajoutées à notre portail. Nous inclurons une petite partie de CSS pour mieux visualiser les données disponibles et les exporter. Enfin, nous examinerons comment ajouter des options de filtrage et de classement. Lorsque vous aurez terminé cet article, vous pourrez afficher une requête simple et complète de manière élégante.

Précédemment, dans "Un portail pour gérer la mémoire réalisé avec Django"...

Il nous faut reprendre là où nous

0
0 100
Article Lorenzo Scalese · Oct 4, 2023 8m read

Description du cas

Imaginons que vous soyez un développeur en Python ou que vous disposiez d'une équipe bien formée et spécialisée en Python, mais que le délai qui vous est imparti pour analyser certaines données dans IRIS soit serré. Bien sûr, InterSystems offre de nombreux outils pour toutes sortes d'analyses et de traitements. Cependant, dans le scénario donné, il est préférable de faire le travail en utilisant le bon vieux Pandas et de laisser IRIS pour une autre fois.
    Dans la situation décrite ci-dessus et dans bien d'autres cas, il se peut que vous souhaitiez extraire des tables

0
0 163
Article Lorenzo Scalese · Sept 27, 2023 16m read

Cette publication soutient la démonstration au Global Summit 2023 "Demos and Drinks" avec des détails très probablement perdus dans le bruit de l'événement. Il s'agit d'une démonstration sur la façon dont on peut utiliser les capacités FHIR SQL d'InterSystems du Serveur FHIR avec la solution Super Awesome Identity and Resolution, Zingg.ai pour détecter les enregistrements en double dans votre référentiel FHIR, et l'idée de base derrière la remédiation de ces ressources avec le PID^TOO|| en cours de construction actuellement inscrit dans le programme Incubateur d'InterSystems. Si vous êtes

0
0 87
Article Lorenzo Scalese · Sept 21, 2023 12m read

Salut les devs,

Aujourd’hui j’aimerais aborder un sujet qui m’a fait passer des moments difficiles (j’en suis convaincu, celà a déjà dû être le cas d’un bon nombre d’entre-vous) “le bottleneck”.  C’est un sujet très vaste, cet article se concentrera sur l’identification des requêtes HTTP entrantes qui pourraient être à l’origine de problèmes de lenteur.  Je vous mettrai aussi à disposition un petit outil que j’ai développé pouvant aider à leur identification.

Nos logiciels deviennent de plus en plus complexes, traitent un grand nombre de requêtes provenant de différentes sources, il peut s’agir d'applications front-end ou de tiers applications back-end. Pour garantir des performances optimales, il est essentiel de disposer d'un système de log capable de prendre quelques mesures clés telles que le temps de réponse, le nombre de global référence et le nombre de lignes de code exécutées pour chaque réponse HTTP.  Dans le cadre de mon travail, je suis impliqué dans le développement d’un logiciel dossier patient informatisé ainsi que sur l’analyse des incidents. La charge utilisateur provient essentiellement de requêtes HTTP (API REST ou application CSP), la nécessité de disposer de ce type de mesure lorsque des problèmes de lenteur généralisée se produisent est devenu une évidence.

0
0 563
Article Lorenzo Scalese · Sept 15, 2023 6m read

Salut les développeurs,

Dans cet article, je vais vous montrer comment exécuter du code au moment de la compilation avec les macros ObjectScript.

Voici un cas d'utilisation qui m'a récemment amené à utiliser cette fonctionnalité :

Dans le cadre d'une application médicale développée depuis plus de 20 ans, nous avons un grand nombre de paramètres. Bien que nous disposions de procédures pour documenter ces paramètres, il peut être utile d'avoir une vue rapide sur les paramètres réellement utilisés par le code de l'application.

Pour obtenir cette vue, nous pourrions effectuer une recherche dans le

0
0 104
Article Lorenzo Scalese · Sept 5, 2023 9m read

Hibernate est le framework le plus populaire pour réaliser des projets ORM (Mapping Objet-Relationnel).Avec Hibernate, un logiciel peut utiliser les principaux SGBD du marché, et même changer de fournisseur de base de données à tout moment, sans impact sur le code source.Cela est possible car Hibernate prend en charge les dialectes.Chaque produit de base de données a un dialecte différent qui peut être assigné dans un fichier de configuration.

0
0 66
Article Lorenzo Scalese · Août 14, 2023 2m read

InterSystems IRIS propose plusieurs façons de profiler votre code. Dans la plupart des cas, il produit suffisamment d'informations pour trouver les endroits où l'on passe le plus de temps ou les ensembles les plus globaux. Mais il est parfois difficile de comprendre le flux d'exécution et comment il s'est terminé à ce point-là. Pour résoudre ce problème, j'ai décidé d'implémenter un moyen de construire un rapport d'une certaine manière, de sorte qu'il est possible de naviguer par pile vers le bas.

 

0
0 62
Article Lorenzo Scalese · Juil 31, 2023 11m read

Notre objectif

Dans le dernier article, nous avons parlé de quelques éléments de démarrage pour Django. Nous avons appris à commencer le projet, à nous assurer que nous disposons de tous les éléments requis et à créer une matrice CRUD. Cependant, aujourd'hui, nous allons un peu plus loin.
Aujourd'hui, nous allons donc connecter IRIS à un environnement Python, construire quelques fonctions et les afficher sur une page web. Ce sera similaire à la dernière discussion, mais nous irons assez loin pour que vous puissiez faire quelque chose de nouveau, mais pas assez pour que vous vous sentiez perdus.

0
0 190
Article Lorenzo Scalese · Juin 30, 2023 5m read

Si vous déployez dans plus d'un environnement/région/cloud/client, vous rencontrerez inévitablement le problème de la gestion de la configuration.

Alors que tous vos déploiements (ou juste certains) peuvent partager le même code source, certaines parties, telles que la configuration (paramètres, mots de passe) diffèrent d'un déploiement à l'autre et doivent être gérées différemment.

Dans cet article, j'essaierai d'offrir quelques conseils à ce sujet. Cet article traite principalement des déploiements de conteneurs.

0
0 69
Article Lorenzo Scalese · Juin 23, 2023 8m read

Si vous utilisez IRIS dans une configuration miroir pour HA dans AWS, la question de la fourniture d'un Miroir VIP (IP virtuelle) devient pertinente. L'IP virtuelle permet aux systèmes en aval d'interagir avec IRIS en utilisant une seule adresse IP. Même en cas de basculement, les systèmes en aval peuvent se reconnecter à la même adresse IP et continuer à travailler.

Le principal problème, lors du déploiement sur AWS, est qu'un VIP IRIS exige que les deux membres du miroir soient dans le même sous-réseau, d'après les docs :

Pour utiliser un miroir VIP, les deux membres du basculement doivent

0
0 142
Article Lorenzo Scalese · Mai 31, 2023 5m read

Les systèmes de bases de données ont des exigences de sauvegarde très spécifiques qui, dans les déploiements d'entreprise, nécessitent une réflexion et une planification préalables. Pour les systèmes de bases de données, l'objectif opérationnel d'une solution de sauvegarde est de créer une copie des données dans un état équivalent à celui de l'arrêt de l'application en douceur.  Les sauvegardes cohérentes avec les applications répondent à ces exigences et Caché fournit un ensemble d'API qui facilitent l'intégration avec des solutions externes pour atteindre ce niveau de cohérence des sauvegardes.

0
0 75
Article Lorenzo Scalese · Mai 17, 2023 16m read

Nos clients ont souvent besoin de configurer HealthShare HealthConnect et IRIS en mode haute disponibilité.

D'autres moteurs d'intégration sur le marché sont souvent présentés comme ayant des configurations de "haute disponibilité", mais ce n'est pas vraiment le cas. En général, ces solutions fonctionnent avec des bases de données externes et donc, si celles-ci ne sont pas configurées en haute disponibilité, lorsqu'un crash de la base de données se produit ou que la connexion à celle-ci est perdue, l'ensemble de l'outil d'intégration devient inutilisable.

Dans le cas des solutions InterSystems,

0
0 182
Article Lorenzo Scalese · Mai 12, 2023 5m read

Selon le dictionnaire de Cambridge, tokéniser des données signifie "remplacer un élément de données privé par un jeton (= un élément de données différent qui représente le premier), afin d'empêcher que des renseignements privés soient vus par quelqu'un qui n'est pas autorisé à le faire" (https://dictionary.cambridge.org/pt/dicionario/ingles/tokenize).

0
0 91
Article Lorenzo Scalese · Avr 21, 2023 5m read

picture

Créer un Chatbot avec IRIS et Python

Dans cet article, je vais montrer comment intégrer la base de données IRIS d'InterSystems avec Python pour servir un Modèle d'apprentissage automatique du traitement du langage naturel (NLP).

Pourquoi Python ?

Avec une large adoption et utilisation dans le monde, Python a une grande communauté et un grand nombre d'accélérateurs et de bibliothèques pour déployer n'importe quel type d'application. Vous pouvez également consulter : https://www.python.org/about/apps/ pour en savoir plus.

Globales Iris

Lorsque j'ai commencé à me familiariser avec les globales

0
0 344
Article Lorenzo Scalese · Avr 17, 2023 7m read

Il y a quelque temps, GitHub a annoncé une nouvelle fonctionnalité, les Codespaces GitHub Codespaces. Elle permet d'exécuter VSCode dans le navigateur, avec presque la même puissance que s'il était exécuté localement sur votre machine, mais aussi avec la puissance des nuages, de sorte que vous pouvez choisir le type de machine avec jusqu'à 32 cœurs de CPU et 64 Go de RAM.

C'est impressionnant, n'est-ce pas ? Mais comment cela peut-il nous aider à travailler sur des projets pilotés par InterSystems IRIS ? Voyons comment le configurer pour nous.

0
0 75
Article Lorenzo Scalese · Mars 13, 2023 4m read

Ce Template s'agit d'un modèle de l' application API REST construite avec ObjectScript dans Intersystems IRIS. Il dispose également d'une spécification OPEN API, peut être développé avec Docker et VSCode et peut être déployé en tant que module IPM.

Conditions préalables

Assurez-vous que vous avez installé git et Docker desktop.

Installation avec IPM

zpm:USER>install rest-api-template

Installation pour le développement

Créez votre référentiel à partir d'un modèle.

Clonez/git le dépôt dans n'importe quel répertoire local, par exemple comme indiqué ci-dessous (je montre ici tous les exemples liés à ce

0
0 165
Article Lorenzo Scalese · Mars 3, 2023 9m read

Bonjour à la communauté,

Dans la première partie, nous avons décrit tous les packages, les bibliothèques utilisées et les services REST.  J'aimerais maintenant détailler un peu plus les services convertisseur et validateur.  Par défaut, OpenAPI-Suite envoie une requête HTTP  converter.swagger.io si a spécification est de version inférieure à 3.0 et une autre requête HTTP à validator.swagger.io pour simplifier la structure de la spécification.  

Bien que l'utilisation d'utilitaires en ligne soit pratique, dans certains cas, nous pourrions préférer avoir notre propre instance du convertisseur et du validateur.  Par exemple, si OpenAPI-Suite est mis à disposition sur un serveur dans une organisation pour les développeurs ObjectScript, il peut être préférable d'éviter les requêtes vers les services externes (confidentialité, éviter les limites de taux de demande,...).  Ceux-ci sont disponibles en images Docker, il suffit d'exécuter : 

docker run -d -p 8085:8080 --name swagger-converter swaggerapi/swagger-converter:latest
docker run -d -p 8086:8080 --name swagger-validator-v2 swaggerapi/swagger-validator-v2:latest
0
0 67
Article Lorenzo Scalese · Fév 27, 2023 18m read

Salut la communauté,

J'aimerais vous présenter ma dernière application OpenAPI-Suite, c'est un ensemble d'outils permettant de générer du code ObjectScript à partir d'une specification OpenAPI version 3.0. L'application permet de:

  • Générer les classes serveur REST.  C'est assez similaire au code généré par ^%RESTla valeur ajoutée est le support de la version 3.0.
  • Générer les classes pour un client HTTP.
  • Générer une production cliente (business services, business operation, business process, Ens.Request, Ens.Response).
  • Disposer d'une interface web pour générer et télécharger le code ou générer et compiler directement sur le serveur.
  • Convertir les spécifications de version 1.x, 2.x en version 3.0.

Aperçu

OpenAPI-Suite est divisée en plusieurs packages et utilise différentes bibliothèques de la communauté des développeurs ainsi que des services REST publics.  Vous pouvez voir sur le schéma ci-dessous, tous les packages développés et les bibliothèques et services web utilisés:
 

0
0 217