# Lire les séparateurs et les positions des champs HL7

Explorez un message HL7 v2 synthétique : inspection liée, chemins précis, numérotation MSH, répétitions et séparateurs personnalisés.

Espace de travail 0.5.0 · Modules analyseur, formatage et vérification 0.1.0 · Mis à jour le 18 septembre 2026

[Lire ce guide en HTML](https://hl7tools.io/fr/guides/hl7-delimiters.html)

## Commencer par l’en-tête

Ouvrez l’[analyseur de messages HL7](https://hl7tools.io/fr/hl7-message-analyzer.html) et collez le message synthétique ci-dessous. Cet exemple sert à l’inspection ; il ne représente pas un message clinique complet et ne prouve pas la conformité.

`MSH-1` est le séparateur de champs lui-même. `MSH-2` contient les caractères de codage ; `MSH-3` désigne l’application émettrice. Compter tous les éléments séparés par une barre verticale comme des champs ordinaires décale l’en-tête. La [référence MSH de HL7 (anglais)](https://hl7.org/fhir/uv/v2mappings/ConceptMap-segment-msh-source-to-provenance.html) décrit ces positions.

```hl7
MSH|^~\&|SYNTHETIC|LOCAL|RECEIVER|LOCAL|202609140900||ADT^A01|GUIDE-001|T|2.5.1
PID|1||SYN-001^^^LOCAL^MR~SYN-002^^^OTHER^MR||EXAMPLE^SYNTHETIC
NTE|1||Encoded separator: \F\
```

## Inspecter un champ répété

Choisissez `PID`, puis développez `PID#1-3`. Avec ces séparateurs, `~` sépare les répétitions, `^` les composants et `&` les sous-composants. Les composants vides gardent leur position : le deuxième identifiant contient `OTHER` dans le composant 4. Résultat attendu, conservé dans sa forme d’origine :

```text
MSH-1: |
MSH-2: ^~\&
MSH-3: SYNTHETIC
PID-3 repetitions: 2
PID-3[2].4: OTHER
NTE-3: Encoded separator: \F\
```

Les adresses de l’espace de travail précisent les occurrences de segments : `PID#1-3[2].4` désigne le composant 4 de la répétition 2 du champ 3 du premier PID. `OBX#2-5[1].1` désigne le deuxième OBX. Recherchez dans tout le message par chemin, nom ou valeur ; sélectionner un résultat ouvre cette position.

La sélection dans la hiérarchie surligne la position exacte dans le message normalisé en lecture seule. Sélectionner une position du texte ouvre aussi son inspection. Les valeurs vides gardent leur place. Les listes longues sont paginées. L’éditeur original reste distinct : relancez l’analyse après une modification.

Dans le module, appelez `inspectField(segment, 3)` avec le segment original renvoyé par `analyzeHL7`. Ses chemins commencent à 1 et décrivent répétitions, composants et sous-composants. Relancez l’analyse d’un résultat sérialisé ou cloné avant de l’inspecter.

Les chemins du module restent `PID-3[2].4` pour préserver la compatibilité ; l’objet segment distingue les segments répétés. Les adresses incluant l’occurrence dans l’interface servent uniquement à la navigation.

Le résumé indique le type et l’événement du message, sa version déclarée, les systèmes émetteur et destinataire, ainsi que les remarques de l’analyseur. Les indications sur les composants couvrent uniquement MSH-9 (MSG), PID-3 (CX) et PID-5 (XPN) pour la version déclarée 2.5.1 : [référence HAPI (anglais)](https://hapifhir.github.io/hapi-hl7v2/v251/apidocs/ca/uhn/hl7v2/model/v251/datatype/package-summary.html). Les autres champs et versions conservent des libellés numériques. Il ne s’agit pas d’un dictionnaire complet ni d’une validation de conformité.

## Lire les séparateurs déclarés

L’analyseur accepte des signes de ponctuation ASCII visibles et distincts comme séparateurs. Cet exemple équivalent utilise `*` pour les champs ; MSH-2 déclare ensuite, dans cet ordre, les séparateurs de composants, de répétitions, d’échappement et de sous-composants.

```hl7
MSH*$%!@*SYNTHETIC*LOCAL*RECEIVER*LOCAL*202609140900**ADT$A01*GUIDE-002*T*2.5.1
PID*1**SYN-001$$$LOCAL$MR%SYN-002$$$OTHER$MR**EXAMPLE$SYNTHETIC
```

```text
Delimiters: field=* component=$ repetition=% escape=! subcomponent=@
PID-3 repetitions: 2
PID-5[1].1: EXAMPLE
```

## Respecter les limites de codage et de transport

- Les séquences d’échappement restent codées : `\F\` reste `\F\`. Les échappements appariés empêchent la séparation des délimiteurs qu’ils contiennent. L’analyseur ne les décode pas et ne vérifie pas toute leur grammaire. Un échappement non apparié produit un avertissement.
- Un cinquième caractère de troncature dans MSH-2 est conservé avec un avertissement ; la sémantique de troncature n’est pas interprétée.
- Un message avec des fins de segment CR, LF ou CRLF est accepté, y compris une seule trame MLLP. Les messages multiples, les enveloppes de lot et les préfixes de journal sont rejetés.
- Copier et Télécharger utilisent le message normalisé : l’encadrement pris en charge et les lignes vides sont supprimés, les segments utilisent CR et un CR final est ajouté. Les octets du transport d’origine ne sont pas préservés.
- Limites : 1 MiB d’entrée UTF-8, 2 000 segments et 50 000 éléments structurels. Les vérifications d’en-tête et les noms de champs courants ne prouvent pas la conformité de structure, de type de données, de terminologie ou de profil.

Tous les exemples sont synthétiques et conservés dans leur forme d’origine. [Parcourir les guides](https://hl7tools.io/fr/guides.html).
