Utilisez un noeud GenericHL7Output pour préparer un message pour l'application de destination.
Il est conseillé d'utiliser si possible le noeud HL7DFDLOutput pour les applications nouvelles et mises à jour car le modèle de message DFDL présente les avantages ci-dessous.
Pour plus d'informations sur le noeud HL7DFDLOutput, voir Noeud HL7DFDLOutput.
Le noeud GenericHL7Output reçoit un message HL7 dans le domaine MRM et ouvre des connexions à une application de destination qui écoute sur un port TCP/IP. Lorsque la connexion est établie, le message HL7 est envoyé avec une fin d'enregistrement qui est définie sur le délimiteur de propriété Octets MLLP de fin dont la valeur par défaut est 1C0D. Si les données n'ont pas été envoyées avec succès dans la limite de temps indiquée par la propriété Délai d'attente pour l'envoi de données (secondes) du noeud, le message est transmis au terminal Echec.
Après l'envoi du message, le noeud GenericHL7Output attend l'accusé de réception de l'application de destination. Un accusé de réception HL7, une fois les octets MLLP retirés, est analysé et le code retour est vérifié. Si une erreur se produit dans le noeud GenericHL7Output, le message est transmis au terminal Relance du journal ou au terminal Echec.
Si la livraison aboutit et qu'un code AR est renvoyé dans l'accusé de réception, et si la limite de relance n'est pas dépassée, le message est transmis au terminal Relance du journal.
Si le message est livré et qu'un code AE est renvoyé dans l'accusé de réception ou si aucun accusé de réception valide n'est reçu, le message est transmis au terminal Echec.
Si le message n'est pas livré, le système considère que la destination n'est pas disponible et, si la limite de relance n'a pas été dépassée, le message est transmis au terminal Relance du journal.
Si le terminal Relance du journal n'est pas connecté ou si le chemin se termine par un succès, une nouvelle tentative de livraison est effectuée. Si le terminal Relance du journal est connecté et qu'une exception est émise en aval, aucune nouvelle tentative n'est effectuée et le message est transmis au terminal Echec.
Si le terminal Echec n'est pas connecté, une exception est émise.
Pour plus d'informations sur HL7, voir Health Level Seven International.
Le noeud GenericHL7Output est contenu dans le tiroir Healthcare de la palette de noeuds de flux de messages et il est représenté dans IBM Integration Toolkit par l'icône suivante :
Un exemple d'utilisation du noeud GenericHL7Output est présenté dans le modèle intégré Healthcare: HL7 to HL7 dans la catégorie Healthcare dans la vue Explorateur de modèles.
Lorsqu'un noeud GenericHL7Output est utilisé dans un flux de messages, le noeud s'attend à trouver un message dans l'arborescence HL7 qui a été analysé par rapport au message dans l'ensemble de messages HL7v25P. Si vous ne savez pas si les messages transmis au noeud GenericHL7Output sont corrects, vous pouvez définir la propriété Valider pour forcer l'analyse avant le début du traitement. Si le message est envoyé avec succès à la destination configurée et qu'un accusé de réception indiquant le succès du traitement est renvoyé par la destination, cet accusé de réception est transmis au terminal Sortie du noeud.
Pour que noeud tente à nouveau d'envoyer le message à la suite d'un échec, vous devez définir la valeur de la propriété Limite de relance sur le nombre de tentatives à effectuer. Le noeud effectue une nouvelle tentative toutes les 10 secondes, mais vous pouvez modifier cet intervalle en modifiant la propriété Intervalle de relance (secondes). Pour consigner chaque relance, sélectionnez la propriété Relance du journal. Lorsque cette dernière est sélectionnée, le message est transmis au terminal Relance du journal pour chaque tentative. L'environnement contient les valeurs que vous voulez utiliser dans le message de journal. Voir le tableau Environnement ci-dessous.
Si vous connectez le terminal Relance du journal, l'unité d'exécution du flux de messages se termine avec succès et d'autres relances sont effectuées. Si des exceptions non interceptées sont émises sur cette unité d'exécution, aucune nouvelle tentative n'est effectuée.
Si un message est transmis au terminal Echec, le comportement du flux de messages dépend des procédures de traitement d'erreurs en vigueur. Le terminal Echec doit être connecté afin que l'erreur soit consignée. Ensuite, soit les données sont sauvegardées, soit une exception est émise, ou les deux. Si ce terminal n'est pas connecté, l'erreur entraîne un échec silencieux, aucune exception n'est émise et aucun événement n'est enregistré dans le journal des événements. Pour obtenir les codes d'erreur et d'autres informations utilisables lors du traitement d'erreurs, voir le tableau Erreur ci-dessous.
Si un échec s'est produit sur le noeud GenericHL7Output, le message est transmis au terminal Echec. LocalEnvironment.HL7 contient les zones qui apparaissent dans le tableau Environnement ci-dessous. Ces zones fournissent des informations servant à générer un accusé de réception négatif (NACK) ou à créer un message d'erreur.
Zone | Description |
---|---|
FlowMilestoneReached | Indique où l'erreur s'est produite |
Relance | Indique si cette acton peut être relancée |
ErrorCondition | Fournit une description de l'erreur |
Tentative | Si l'erreur se produit dans une boucle de relance, cette variable contient le texte suivant : Tentative <i> de <n> |
RetryCount | Indique la relance en cours |
RetryLimit | Indique le nombre de relances autorisées |
Le tableau Erreur suivant indique les codes d'erreur qui peuvent être générés.
Erreur | Terminal | Relance | Code | Texte d'erreur |
---|---|---|---|---|
Le noeud n'a pas pu analyser le message entrant en utilisant l'ensemble de messages HL7v25P et le format de message HL7. | Echec | Non | BADHL7 MESSAGE | Le message HL7 entrant ne peut pas être analysé. |
Le noeud n'a pas pu envoyer le message à la destination configurée. | Relance du journal | Oui | SENDHL7 | Erreur TCP/IP. Le message HL7 n'a pas été envoyé. |
Le noeud n'a pas pu analyser l'accusé de réception. | Echec | Non | ACKPARSE ERROR | Erreur MSH au cours de l'analyse du message ACK. |
L'accusé de réception a été reçu mais il n'est pas présent. | Echec | Non | ACKERROR | Erreur d'analyse ou de validation MSA : MSA 1. Le code d'accusé de réception est null. L'accusé de réception (ACK) contient le message d'erreur suivant : message_erreur |
L'accusé de réception a été reçu, mais aucun ID de contrôle de message n'est présent. | Echec | Non | ACKERROR | Erreur d'analyse ou de validation MSA : MSA 2. Le MessageControlID est null. L'accusé de réception (ACK) a envoyé le message d'erreur suivant : message_erreur |
Aucun accusé de réception n'a été reçu dans le délai indiqué. | Echec | Non | TIMEOUT | Le noeud n'a pas reçu un message d'accusé de réception (ACK) dans le délai indiqué. |
Le noeud n'a pas reçu l'accusé de réception. | Echec | Non | RECEIVE ACK | Erreur TCP/IP. Le noeud n'a pas reçu le message ACK. |
Le noeud a tenté de livrer le message, mais il a atteint la limite de relance configurée. | Echec | Non | SENDHL7 TOOMANY REPEATS | Le noeud n'a pas reçu le message ACK. |
Le noeud a reçu des accusés de réception AR, mais il a atteint la limite de relance configurée. | Echec | Non | ACKAR TOOMANY REPEATS | Le noeud a tenté d'envoyer le message, mais l'opération a échoué. |
Après avoir ajouté une instance d'un noeud GenericHL7Output à un flux de messages, vous pouvez la configurer
Toutes les propriétés obligatoires pour lesquelles vous devez entrer une valeur (celles qui ne comportent pas de valeur par défaut) sont marquées par un astérisque.
Terminal | Description |
---|---|
Entrée | Terminal d'entrée qui accepte le message HL7 pour traitement par le noeud. |
Echec | Terminal de sortie vers lequel le message est acheminé si le noeud ne peut pas envoyer ce dernier ni recevoir un accusé de réception indiquant la réussite du traitement. |
Sortie | Terminal de sortie vers lequel l'accusé de réception est acheminé si un message a été envoyé avec succès à la destination et si un accusé de réception indiquant la réussite du traitement est reçu. |
Relance du journal | Terminal de sortie vers lequel le message est acheminé si le noeud ne peut pas envoyer ce dernier ou recevoir un accusé de réception indiquant la réussite du traitement et si le nombre de relances n'est pas dépassé. |
Les tableaux suivants décrivent les propriétés du noeud. La colonne ayant l'en-tête O indique si la propriété est obligatoire (marquée d'un astérisque si vous devez obligatoirement entrer une valeur si aucune valeur par défaut n'est définie). La colonne ayant l'en-tête C indique si la propriété est configurable (vous pouvez modifier la valeur lors de l'ajout du flux de messages au fichier BAR à des fins de déploiement).
Propriété | O | C | Portée par défaut | Description |
---|---|---|---|---|
Nom du noeud | Non | Non | GenericHL7Output | Nom du noeud. |
Description abrégée | Non | Non | Courte description du noeud. | |
Description détaillée | Non | Non | Texte qui décrit à quoi sert le noeud dans le flux de messages. |
Propriété | O | C | Portée par défaut | Description |
---|---|---|---|---|
Caractéristiques de la connexion | Oui | Oui | localhost:2222 | Connexion TCP/IP pour l'application de destination, au format nomhôte:port |
Délai d'attente pour l'envoi de données (secondes) | Oui | Oui | 60 | Délai d'attente du noeud, en secondes, lors de la tentative d'envoi de données ou de réception d'un accusé de réception. |
Octets MLLP de début | Oui | Oui | 0B | Octet MLLP de début qui est ajouté aux enregistrements HL7 sortants et supprimé des accusés de réception entrants. |
Limite de relance | Oui | Oui | 5 | Nombre maximal de fois où le noeud tente de livrer un message HL7 à l'application de destination. |
Intervalle de relance (secondes) | Oui | Oui | 10 | Intervalle, en secondes, entre chaque tentative de livraison d'un message HL7 à l'application de destination. |
Relance du journal | Oui | Oui | Non sélectionné | Indique si chaque tentative de livraison d'un message est transmise au terminal Relance du journal en vue de la consignation. |
Propriété | O | C | Portée par défaut | Description |
---|---|---|---|---|
Délimiteur | Non | Non | Délimiteur personnalisé | Cette propriété n'est pas modifiable. |
Octets MLLP de fin | Oui | Oui | 1C0D | Octets MLLP de fin utilisés comme délimiteur d'enregistrement HL7. Ils sont ajoutés par le noeud TCPIPClientOutput. |
Propriété | O | C | Portée par défaut | Description |
---|---|---|---|---|
Délimiteur | Non | Non | Délimiteur personnalisé | Cette propriété n'est pas modifiable. |
Octets MLLP de fin (accusé de réception) | Oui | Non | 1C0D | Délimiteur HL7 utilisé pour détecter la fin des accusés de réception entrants. |
Propriété | O | C | Portée par défaut | Description |
---|---|---|---|---|
Valider | Non | Oui | Aucune | Cette propriété détermine le niveau de validation du message HL7 entrant dans le domaine MRM. Les valeurs valides sont :
|