---
url: /res/oie/js/hl7.md
description: >-
  Manipuler du HL7 en JavaScript avec le moteur Rhino et E4X intégré à Mirth
  Connect et Open Integration Engine
---

## Format HL7

## Utilisation

Afin de traiter un flux HL7 en entrée (Fichier, MLLP, HTTP, etc.), il faut configurer le type de données d'entrée sur HL7.

Pour cela dans l'onglet summary, cliquer sur le bouton **Set Data Types**, ensuite vérifier susr la ligne **Source Connector**,
que la colonne Inbound soit sur `HL7 v2.X`

![Set Data Types](./properties_datatype_step1.png "Set data types")

Dans la partie **Inbound Properties**, vous avez la possibilité de régler finement le parsing du contenu HL7

## fonctions utiles

### Echapement de caractères spéciaux

En HL7, certains caractères spéciaux sont a remplacer par des valeurs spécifiques (la plupart de ces caractères étant utilisés comme séparateur, il faut absolument les convertir pour ne pas casser le parsing du contenu HL7)

| Caractère | converti en |
| :-------: | :---------: |
| \        | \E\         |
| |         | \F\         |
| ~         | \R\         |
| ^         | \S\         |
| &         | \T\         |
| \n       | .br\       |

```javascript
function hl7EscapeChars(str) {	
	str=str.replace(/\\/g, '\\E\\');
	str=str.replace(/\|/g, '\\F\\');
	str=str.replace(/~/g, '\\R\\');
	str=str.replace(/\^/g, '\\S\\');
	str=str.replace(/&/g, '\\T\\');
	str=str.replace(/\n/g, '\\.br\\');  
	return str;
}
```

ensuite utiliser la fonction comme ceci dans un traitement.

```javascript
tmp['PID']['PID.5']['PID.5.1'] = hl7EscapeChars(msg['PID']['PID.5']['PID.5.1'].toString());
tmp['PID']['PID.5']['PID.5.2'] = hl7EscapeChars(msg['PID']['PID.5']['PID.5.2'].toString());
```
