Share via


Encodage de caractères à l’aide de texte libre

À compter de BizTalk Server 2013 R2, « FreeText » peut être utilisé dans un champ ou un segment. Les données du champ/segment « FreeText » ne sont pas analysées.

Bon à savoir

Séparateur Comportement Exemple
~ : Séparateur de répétition Dans un champ, répétition (~) est traitée comme un délimiteur répétitif. Dans un segment non libre, répétition (~) est traitée comme un délimiteur répétitif. Dans un segment libre, la répétition (~) est traitée comme faisant partie du texte libre, et non comme une nouvelle répétition. Dans l’exemple suivant, FRE est segment libre. Il peut avoir n’importe quel caractère en texte libre, y compris ~. Les répétitions supplémentaires (~) ne sont pas considérées comme un délimiteur de répétition et sont traitées comme du contenu de texte libre. La validation réussit même si l’enfant du segment libre n’est pas reproductible et contient une répétition (~). Exemple FRE :

FRE| Foo&^|Foo&^|Foo&^|Foo&^~Foo&^|Foo&^|Foo&^|Foo&^

Dans l’exemple suivant, EVN4 est défini en tant que texte libre, car il contient &^. Lorsque le délimiteur « | » est rencontré, il est traité comme la fin du texte libre actuel. Exemple EVN :

EVN||||Foo&^Foo&^Foo&^Foo&^Foo&^||

Dans l’exemple suivant, le premier enfant d’EVN5 est défini en tant que texte libre, car il contient &. Lorsque le délimiteur « ^ » est rencontré, il est traité comme la fin du texte libre actuel. Exemple EVN5 :

EVN|||| | Foo&Foo&Foo&Foo&Foo&^5.2|

Dans l’exemple suivant, 5.2.1 et 5.2.2 ne peuvent pas avoir de délimiteurs en tant que texte libre, même s’ils sont définis comme FreeText dans le schéma. Exemple 5.2.1 et 5.2.2 :

EVN|||| | Foo1^5.2.1&5.2.2|

Dans l’exemple suivant, supposons qu’EVN4 peut être répété et qu’il est de type Texte libre. Foo1&^ est traité comme la première répétition et Foo2&^ est traité comme la deuxième répétition. Si EVN4 n’est pas reproductible (MaxOccurs = 1), la validation échoue si elle contient ~, même si elle est de type Texte libre (comme dans le cas des champs texte non libre). Exemple EVN4 :

EVN |||| Foo1&^~ Foo2&^ ||
| : Séparateur de champs Si un délimiteur de champ est manquant après la balise de segment d’un segment libre, la validation réussit. Dans les exemples suivants, FRE est un type de texte libre. Le contenu de texte libre peut être démarré immédiatement après la balise de segment FRE, avec ou sans délimiteur de champ « | ». Les deux exemples réussissent :

FREabc
FRE|abc

Dans les exemples suivants, la validation réussit :

Message d’entrée pour DASM : FRE|abcd
Sortie de DASM : <SegmentData>|abcd</SegmentData>
Sortie d’ASM : FRE|abcd

Message d’entrée pour DASM : FREabcd
Sortie de DASM : <SegmentData>abcd</SegmentData>
Sortie d’ASM : FREabcd
Parent-Child facultatif Les règles de validation facultatives parent-enfant s’appliquent toujours. Supposons que le parent est facultatif et que l’un de ses enfants soit obligatoire, puis :

- Si aucun des autres enfants et l’enfant obligatoire ne sont renseignés, la validation du message réussit.
- Si au moins un enfant est renseigné, l’enfant obligatoire doit également l’être. Sinon, la validation des messages échoue.

Dans l’exemple suivant, le champ 1 est facultatif. Son enfant 1.a est facultatif et est de type Texte libre. Son enfant 1.b est obligatoire :

xyz|1.a^1.b|2

Dans l’exemple de message suivant, dfssdf&sdf est considéré comme un seul élément : 1.a. L’analyseur vérifie si 1.b existe. Lorsque le est atteint, il suppose que 1.b n’est pas renseigné et que la validation du | message échoue :

xyz|dfssdf&sdf|2
Segments MSH, FSH et BSH Le texte libre est ignoré pour tous les champs. Ces segments correspondent à la section d’en-tête. La validation se produit comme elle le ferait normalement, même si elles sont définies en tant que texte libre.
\ : Caractère d’échappement S’il existe un nombre pair de « \ » dans l’élément, la validation réussit (même si elles ne sont pas contiguës). S’il existe un nombre impair, la validation échoue. Le même comportement se poursuit pour les champs de texte non libre. Avec les champs de texte libre, il n’y a aucune validation sur le nombre ; il a été traité comme du contenu de texte libre.

Délimiteurs de messages fournit plus d’informations sur les séparateurs dans ces exemples.

Utilisation de texte libre

  1. Dans le projet dans Visual Studio, ouvrez le schéma.

  2. Cliquez avec le bouton droit sur un enregistrement, sélectionnez Insérer un nœud de schéma, puis sélectionnez Élément champ enfant.

  3. Dans Propriétés, sélectionnez Type de données, puis Texte libre (SimpleType).

Voir aussi

Traitement des messages HL7