发布新帖

查找

文章
· 四月 30, 2024 阅读大约需 3 分钟

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
讨论 (0)1
登录或注册以继续
文章
· 四月 30, 2024 阅读大约需 3 分钟

LowCode simple demo transforming HL7 SIU messages to Kafka, then consuming Kafka messages to store them into IRIS via SQL

Gitter

Production Configuration

This demo has an interoperability production with 16 items. 

Production Configuration HL7 + Kafka Producer

The first part of this demonstration consists of sending an HL7 SIU file which will be transmitted to the 2 other HL7 flows (HTTP and TCP), and transformed and transmitted to the Kafka server. HTTP and TCP flows will transform HL7 messages in the same way before sending them to Kafka as well.

  • 3 HL7 Business Services
  • 1 HL7 router
  • 2 HL7 Business Operations
  • one Business Operation sending the transformed messages to Kafka

Business Rule

The production has a business process with is a HL7 router, which transforms and sends HL7 message to Kafka. 

Data Transformation

The Data Transformation Builder allows the edition of the definition of a transformation between HL7v2 SIU sources into Kafka Messages. Data Transformation 

Visual Trace

After an HL7 message has been processed, ie: by copying some messages from /data/HL7/test into /data/HL7/in directory), you can see its Visual Trace   You can see here the message with I/O and the HL7 ACK 

Kafka Manager

Then, you can check the messages in Kafka, using KafkaManager interface and fetching data from the different topics.  And the content of one topic : 

Production Configuration Kafka Consumer + SQL IRIS

The second part of this demonstration consists of consuming Kafka messages and route them to IRIS tables through SQL components.

  • 3 Kafka Business Services consuming 3 Topics of Kafka
  • 1 router
  • 3 SQL Business Operations inserting data into IRIS database

Business Rule

The production has a business process with is a Kafka router, which sends Kafka messages to IRIS SQL components. 

Visual Trace

Each time a Kafka topic is consumed, it is sent to the Kafka router process which performs content-based routing of Kafka messages, to the appropriate SQL tables into IRIS. If you look carefully to the messages, you can notice that the message is sent directly to IRIS without being transformed (same message ID).   You can see here the message with I/O and the SQL insert result 

SQL

You can then see the results inside IRIS database through SQL queries.

  • TrakCare table

* Surg table

* And thanks to inheritance, you can also query all the data by just querying the root table, here data.kafka

ClassExplorer

The Class Explorer allow you to see the data model of IRIS classes. 

Default Settings

In order to simplify the process of copying a production definition from one environment to another, and ensure watertight separation between the parameters of the different environments, it is recommended to set settings outside of the production class, in the system default settings.  So you will see the settings in blue in the production configuration 

Prerequisites

Make sure you have git and Docker desktop installed.

Installation: ZPM

Open IRIS Namespace with Interoperability Enabled. Open Terminal and call: USER>zpm "install hl7v2-to-kafka"

Installation: Docker

1. Clone/git pull the repo into any local directory

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

2. Open the terminal in this directory and run:

$ docker-compose build

3. Run the IRIS container with your project:

$ docker-compose up -d

How to Run the Sample

  1. copy some HL7 messages from /data/HL7/test into /data/HL7/in
  2. check the Visual Trace
  3. see a full trace
  4. go to Kafka Manager and fetch data from the different topics
3 Comments
讨论 (3)1
登录或注册以继续
文章
· 四月 30, 2024 阅读大约需 2 分钟

Monitoring InterSystems IRIS environments with Red Hat Insights

InterSystems worked closely with the Red Hat Insights team to implement a curated set of recommendations for system administrators to ensure the best experience running InterSystems IRIS on Red Hat Enterprise Linux (RHEL). Included with all RHEL subscriptions, the Insights service proactively identifies potential issues with monitored platforms and applications running on RHEL. Through our joint collaboration, Insights now watches for common scenarios that decrease the performance of IRIS in most cases and offers an InterSystems-approved recommendation for consideration.  

Ten recommendations are currently implemented and can be found under the “InterSystems” topic within the Insights Advisor service.  Advisor recommendations help in areas including:

  1. Performance Tuning Guidance. We provide best practices for configuring HugePages, Transparent HugePages (THP), swappiness, shmmax kernel parameters, and more.
  2. Product Compatibility. Insights highlights which versions of InterSystems products are encouraged to be used to provide the best experience.
  3. Journaling and High-availability Configuration Suggestions, like Write Image Journaling (WIJ) drive mapping, identifying an arbiter to support automatic failure, or enabling FreezeOnError for better integrity and recoverability of InterSystems IRIS database.

Every recommendation contains details about the detected RHEL version, InterSystems IRIS instance information, and system-specific step-by-step instructions to remediate the detected issue.  Links to the InterSystems documentation are also provided for further reference.

Enable Insights with InterSystems today.

Registering your systems with Red Hat Insights is very straightforward and typically requires only a single command to be executed. Alternatively, the Red Hat registration assistant application can be used to complete the necessary steps based on your setup. Analysis of InterSystems IRIS workloads does not require additional steps and is enabled once systems are registered with Insights. Specific recommendations can easily be turned off if they are not applicable to your environment.  

Head to Red Hat Insights to learn more about the service and get started with the registration assistant.

Talk with Red Hat experts at InterSystems Global Summit 2024.

Red Hat will be exhibiting at InterSystems Global Summit June 9-12 and available to discuss Insights and other Red Hat capabilities.

2 Comments
讨论 (2)3
登录或注册以继续
问题
· 四月 30, 2024

Error when trying to set up an SSL/TLS configuration

I'm trying to configure an SSL/TSL configuration in our test environment so we can send ADT messages to an external server. I've verified connectivity/firewall to the external server.

type is set to Client, Server certificate verification is set to Require.

I have received a certificate from the external supplier and linked that in the "File containing trusted Certificate Authjority certificate" field. (I've also imported it into the cert store and tried using %OSCertificateStore).

My client certificate is in PEM format, the decrypted key was extracted using SSLOpen. Protocol enabled is TLSv1.2 (I've tried with the others as well.)

When running a test I get this error:- ERROR #988: SSL connection failed. SSL/TLS error in SSL_connect(), SSL_ERROR_SSL: protocol error, error:14094416:SSL routines:ssl3_read_bytes:sslv3 alert certificate unknown

Is anyone able to assist in deciphering this error, or helping me sort the configuration out?

Many thanks

2 Comments
讨论 (2)1
登录或注册以继续
问题
· 四月 29, 2024

Export a Production class where the Xdata block items are consistently sorted?

When using something like BeyondCompare when working with production class exports, the XData block "items" content very rarely if ever wind up in the same order making Beyond compare a total mess.

Is there a way of either sorting it on the export, or would I have to find (or write) some XSLT-based tool to go into the exported class and sort all the items? Does anyone know of a tool like that available?

Thanks!

讨论 (0)1
登录或注册以继续