Article
· Avr 30 3m de lecture

Simple démo Low Code transformant les messages HL7 SIU en Kafka, puis consommant les messages Kafka pour les stocker dans IRIS via SQL

Gitter

Configuration de Production

Cette démo comporte une production d'interopérabilité contenant 16 composants. 

Configuration de Production HL7 + Kafka Producer

La première partie de cette démonstration consiste à envoyer un fichier HL7 SIU qui sera transmis aux 2 autres flux HL7 (HTTP et TCP), et transformé et transmis au serveur Kafka. Les flux HTTP et TCP transformeront les messages HL7 de la même manière avant de les envoyer également à Kafka.

  • 3 Services Métier HL7
  • 1 routeur HL7
  • 2 Opérations Métier HL7 
  • 1 Opération Métier envoyant les messages transformés à Kafka

Règle Métier 

La production a un processus métier avec un routeur HL7, qui transforme et envoie le message HL7 à Kafka.

Tranformation de Données

Le Data Transformation Builder permet l'édition de la définition d'une transformation entre sources HL7v2 SIU en Messages Kafka. Data Transformation 

Visual Trace

Après le traitement d'un message HL7, c'est à dire : en copiant certains messages de /data/HL7/test vers le répertoire /data/HL7/in), vous pouvez voir son traitement via Visual Trace   

Vous pouvez voir ici le message avec les E/S et le message HL7 d'acquittement  

Gestionnaire Kafka

Ensuite, vous pouvez vérifier les messages dans Kafka, en utilisant l'interface KafkaManager et en récupérant les données des différents sujets. 

Et le contenu d'un sujet en particulier :

Configuration de Production Kafka Consumer + SQL IRIS

La deuxième partie de cette démonstration consiste à consommer des messages Kafka et à les acheminer vers des tables IRIS via des composants SQL.

  • 3 Service Métier Kafka consommant les 3 Topics de Kafka
  • 1 routeur générique
  • 3 Opérations Métier SQL insérant les données dans la base de données IRIS 

Règle Métier

La production utilise un processus métier avec un routeur Kafka, qui envoie des messages Kafka aux composants IRIS SQL.

Visual Trace

Chaque fois qu'un sujet Kafka est consommé, il est envoyé au processus du routeur Kafka qui effectue le routage basé sur le contenu des messages Kafka vers les tables SQL appropriées dans IRIS. Si vous regardez attentivement les messages, vous remarquerez que le message est envoyé directement à IRIS sans être transformé (même ID de message).

   

Vous pouvez voir ici le message avec les E/S et le résultat de l'insertion SQL :

SQL

Vous pouvez ensuite voir les résultats dans la base de données IRIS via des requêtes SQL.

  • table TrakCare

* table Surg

* Et grâce à l'héritage, vous pouvez également interroger toutes les données en interrogeant simplement la table racine, ici data.kafka

ClassExplorer

L'application Class Explorer vous permet de voir le modèle de données des classes IRIS.

Paramètres Système par Défaut

Afin de simplifier le processus de copie d'une définition de production d'un environnement à un autre, et d'assurer une séparation étanche entre les paramètres des différents environnements, il est recommandé de définir des paramètres en dehors de la classe de production, dans les paramètres par défaut du système.

 

Vous verrez dès lors les paramètres en bleu dans la configuration de production :  

Prérequis

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

Installation: ZPM

Ouvrez l'espace de noms IRIS avec l'interopérabilité activée. Ouvrez le Terminal et appelez :

USER>zpm "install hl7v2-to-kafka"

Installation: Docker

1. Clone/git l'extrait de dépôt dans n'importe quel répertoire local

$ git clone https://github.com/SylvainGuilbaud/hl7v2-to-kafka.git

2. Ouvrez le terminal dans ce répertoire et exécutez :

$ docker-compose build

3. Exécutez le conteneur IRIS avec votre projet :

$ docker-compose up -d

Comment exécuter l'exemple

  1. copier des messages HL7 de /data/HL7/test vers /data/HL7/in
  2. regarder le résultat dans Visual Trace
  3. regarder une trace complète 
  4. aller dans Kafka Manager et récupérer des données sur les différents sujets
Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer