0
votes

Comment puis-je utiliser un Mirth-JavaScript pour supprimer les pauses de ligne dans les messages HL7?

Un message HL7 entre en joie et jette une erreur "Traitement". Au fond du message du format RAW est une ligne partielle qui a été séparée de la ligne au-dessus de celle-ci. Je dois corriger manuellement cela à chaque fois. J'espère utiliser un mirth-javascript comme filtre de message qui peut résoudre ce problème afin que tout s'écoule sans intervention humaine.

Sous le message Snippet déclenche l'erreur. Dans cet exemple, c'est la dernière ligne du message HL7. P>

OBX|68|FT|PT1103&IMP^PET/CT Imaging Whole Body||||||||F|||20190327101958|||


5 commentaires

Le séparateur de segment n'est pas négociable. C'est toujours un retour chariot


Que se passe-t-il si vous désactivez "Convertir les pauses de la ligne" dans vos propriétés de type de données entrantes? Si les pauses de ligne supplémentaires sont \ n caractères au lieu de \ r Cela pourrait les laisser passer.


J'ai désactivé Convertir des pauses de ligne et il suffit de traiter le message sans erreur, mais ne résout pas le problème ... cela l'ignore simplement. J'ai vu que vous pouvez cliquer avec le bouton droit de la souris sur le message et "Afficher les fins de la ligne" et tous les segments se terminent par \ r et il apparaît que "d'une manière ou d'une autre" la dernière ligne d'OBX.5 A \ N est insérée en quelque sorte casse la rupture du segment .. . Un collègue pense que peut-être qu'un expéditeur a une ancienne interface (comme une vieille modalité comme une ancienne machine Xray) et sa sortie l'a dit ...


Si c'est le traitement du message, quel est le problème? Quelque chose en aval a-t-il aussi un problème avec cela? Si vous avez besoin de vous pouvez utiliser Mirth pour supprimer ou remplacer les caractères \ N dans OBX-5.


Cela ne traite pas le message tel quel. Il jette une erreur comme indiqué dans le poste original ci-dessus. J'essaie de trouver un moyen de nier l'erreur afin que l'intervention manuelle n'est pas nécessaire. Lorsque vous dites Retirer \ N, vous dites que je peux ajouter un filtre JavaScript qui remplacerait toutes les \ n avec \ r ... Un JavaScript voit que depuis que les \ n et \ r sont cachés?


7 Réponses :


0
votes

Supprimez tous les freins de ligne dans le pré-processeur ou le script de fixation du canal, puis insérez-les en fonction des noms de segment. Le meilleur moyen serait d'arrêter le message générant des freins à insertion système dans le champ OBX.5.


1 commentaires

Je suis nouveau à Mirth, donc je ne suis pas sûr de savoir comment y aller. Je peux le tester sur un canal de test assez facile, mais les étapes que vous donnez pourriez-vous élaborer un peu s'il vous plaît?



0
votes

De votre question, le champ HL7 qui contient des pauses de ligne est obx (5,1) qui doit contenir une valeur d'observation.

La valeur d'observation peut contenir des pauses de ligne dans le cadre de données. Line Break ( ou ASCII 13 ) est le séparateur de segment par défaut. Si cela est reçu dans le cadre des données, il y aura des problèmes lors de l'analyse de message. C'est la cause première du problème que vous avez mentionné dans la question.

Le séparateur de segment n'est pas négociable . C'est toujours un retour en calèche. J'ai expliqué cela dans plus de détails dans Cette réponse.

Idéalement, ces pauses de ligne doivent être remplacées avec sa séquence d'échappement tout en construisant le message HL7. Plus de détails à ce sujet sont déjà donnés dans l'une de mes réponses précédentes ici .

Alors, votre entrant message xxx

doit être en réalité xxx

sur votre question actuelle sur laquelle faire cela avec Mirth / JavaScript, il devrait ne pas être besoin dans votre cas d'utilisation particulière. Cette conversion doit être effectuée avant d'envoyer un message à la joie. Donc, celui qui vous envoie ce message devrait vous construire comme ceci.

Tout en affichant une valeur d'observation sur l'interface utilisateur, vous devez faire le processus inverse.

EDIT:

Si la pause de la ligne est différente de (ASCII 13), puis une hexagone respective doit être remplacée dans \ x0d \ . Les détails sont mentionnés dans ma réponse liée; Je ne répète pas ceux ici.


0 commentaires

0
votes

Suppression de toutes les pauses de la ligne serait une approche, mais cela pourrait être un problème plus tard, vous pouvez configurer un script de remplacement, que, au lieu de '/ N', recherche '| / n |' Ou une chaîne similaire, de cette façon, cela résumerait ce problème particulier, ainsi que toute autre ligne indésirable entre les séparateurs verticaux, il ne serait pas utile s'il a cassé n'importe où ailleurs, alors gardez cela à l'esprit.


0 commentaires

1
votes

Cela a fonctionné. Mettez ce qui suit dans le préprocesseur.

message = message.replace(/[\r\n]+(?![A-Z][A-Z][A-Z0-9]\|)/g, "");

return message;


0 commentaires

0
votes

Mettez cet extrait de code dans votre script de préprocesseur. Cela a fonctionné pour moi xxx


0 commentaires

0
votes

Le processeur de Mirth attend chaque ligne Les 3 premiers caractères doivent contenir des segments HL7 valides, sinon la mirtrette jette une erreur.

Pour supprimer les pauses de ligne non valides dans le message HL7, vous devez suivre les étapes ci-dessous.

1.Channel -> scripts -> Préprocesseur.

  1. Coller le code ci-dessous haut du "message de retour;" déclaration message = message.replace (/ [\ r \ n] + (?! [A-Z] [A-Z] [A-Z0-9] \ |) / g, ""); // Cette ligne est pour les pauses de ligne non valides dans le message entrant Ajout au segment précédent.
  2. Enregistrez les modifications et déployez le canal pour de nouvelles modifications touchées.

0 commentaires

0
votes

J'ai eu le problème similaire d'avoir des lignes vierges entre les segments et j'ai résolu cela a aimé cela:

content = content.replace(/^\s*\n/gm, '');


0 commentaires