QRY^A19 — Patient Query
L'ancêtre HL7 v2 du GET /Patient/123 FHIR : une requête synchrone
pour récupérer la démographie complète d'un patient — toujours en service sur la
grande majorité des SIH.
Objet du message
QRY^A19 demande au SIH : « Donne-moi tout ce que tu sais sur le patient MRN567890 ». La réponse est un ADR^A19 (Acknowledgment Response, structure A19) qui porte un ou plusieurs PID + PV1. C'est le canal HL7 v2 classique pour :
- vérifier l'identité d'un patient avant de soumettre des résultats ;
- récupérer la démographie complète pour pré-remplir un formulaire EHR ;
- réconcilier des identifiants entre systèmes lors d'une fusion ou d'une migration.
Note : depuis v2.5, HL7 recommande QBP^Q22/RSP^K22 (Find Candidates) pour cette logique, plus rigoureuse. QRY^A19 reste largement utilisé pour la rétro-compatibilité.
Structure segmentaire
QRY_A19
MSH Message Header (mandatoire)
QRD Query Definition (mandatoire) — porte les paramètres
[ QRF ] Query Filter — bornes temporelles, source MSH — Message Header
- MSH-9 :
QRY^A19^QRY_A19. - MSH-11 :
Pen production.
QRD — Query Definition
Segment central :
- QRD-1 : date/heure de la requête.
- QRD-2 : format de réponse demandé (table 0106 :
R=Record-oriented,D=Display,T=Tabular). - QRD-3 : priorité (
I=Immediate,D=Deferred). - QRD-4 : identifiant de la requête (clé pour corréler la réponse).
- QRD-7 : nombre/type d'unités attendus en réponse.
- QRD-8 : identifiants patient cibles (CX, répétable : MRN, SSN, INS-NIR).
- QRD-9 : nature de l'information demandée (table 0048 :
DEM=Demographics,OTH=Other).
QRF — Query Filter
Optionnel mais courant pour borner :
- QRF-1 : où chercher (système, application).
- QRF-3 : date début.
- QRF-4 : date fin.
Réponse ADR^A19 / RSP^K11
Le SIH répond avec un message ADR^A19 :
- MSH (avec MSH-9 =
ADR^A19^ADR_A19) ; - MSA (acquittement de la requête — AA si trouvé, AE si erreur, AR si refus) ;
- QRD + QRF répétés (les paramètres de la requête, pour corrélation) ;
- EVN (typage A19 de l'événement) ;
- 0..n blocs (PID + PD1 + NK1 + PV1 + PV2 + DB1 + OBX + AL1 + DG1 + …) — un par patient match.
Si plusieurs patients matchent les critères, le SIH peut retourner plusieurs PID (typique en cas d'homonyme).
Exemple réel
Requête démographique sur MRN567890 entre janvier et mai 2026 :
MSH|^~\&|EHR|CLINIC02|HIS|HOSP01|20260515094500||QRY^A19^QRY_A19|MSG00005001|P|2.5.1|||AL|NE
QRD|20260515094500|R|I|Q001|||1^RD&Records&HL70394|MRN567890^^^HOSP^MR|DEM^Demographics^HL70048
QRF|HIS||20260101|20260515 Réponse ADR^A19 du SIH :
MSH|^~\&|HIS|HOSP01|EHR|CLINIC02|20260515094501||ADR^A19^ADR_A19|MSG00005002|P|2.5.1|||AL|NE
MSA|AA|MSG00005001
QRD|20260515094500|R|I|Q001|||1^RD&Records&HL70394|MRN567890^^^HOSP^MR|DEM^Demographics^HL70048
QRF|HIS||20260101|20260515
EVN|A19|20260515094501
PID|1||MRN567890^^^HOSP^MR||DOE^JOHN^A^^MR.||19720515|M|||100 MAIN ST^^ANYTOWN^CA^90210^USA||(555)555-1234|||S||ACCT123456
PV1|1|I|ICU^101^A^HOSP01|EM|||DRSMITH^Smith^James^A^^DR.|||CAR|||1|||DRSMITH^Smith^James^A^^DR.|ADM|VIP Erreurs fréquentes
- QRD-8 sans type d'identifiant :
MRN567890seul est ambigu. Toujours typer en CX :MRN567890^^^HOSP^MR. - QRD-4 réutilisé : chaque requête doit avoir un identifiant unique pour corréler la réponse avec la requête.
- Pas de timeout côté client : une QRY synchrone qui ne reçoit pas de réponse en 30s bloque indéfiniment.
- Migration vers FHIR sans plan : QRY^A19 est très en service ; planifier la coexistence avec FHIR REST avant de désactiver.
- Plusieurs réponses non gérées : en cas d'homonyme, le client doit pouvoir afficher la liste, pas planter sur le 1er PID.
Équivalent FHIR
En FHIR R5, l'équivalent de QRY^A19 est :
GET [base]/Patient?identifier=urn:oid:1.2.34|MRN567890&_include=Patient:general-practitioner
avec une réponse Bundle type=searchset. Les bénéfices : pagination
native, filtres standardisés, parsers JSON disponibles partout. Voir
FHIR Patient.