Encounter — Interaction de soin
Le contexte clinique dans lequel se déroule toute prestation : consultation, hospitalisation, urgence, téléconsultation. Tout résultat, prescription, document référence un Encounter pour s'inscrire dans un séjour.
Objet de la ressource
Encounter représente une interaction entre un patient et un prestataire de soin à des fins d'évaluation, de traitement ou de prestation de services. La ressource couvre toute la durée — depuis l'enregistrement jusqu'à la sortie — et tous les types : visite en cabinet, hospitalisation MCO, urgences, hospitalisation à domicile, téléconsultation, EHPAD, hôpital de jour.
Encounter est le contenant administratif de la donnée clinique. Une
Observation, une Condition, une MedicationRequest, un Procedure pointent vers
l'Encounter via leur champ encounter pour s'inscrire dans le séjour.
Cette modélisation permet à un EHR de rassembler facilement toutes les données d'un
épisode.
Champs clés
| Champ | Type | Cardinalité | Rôle |
|---|---|---|---|
identifier | Identifier[] | 0..* | Identifiants externes (numéro de séjour, IEP, visit number côté SIH). |
status | code | 1..1 | planned, in-progress, on-hold, discharged, completed, cancelled, discontinued, entered-in-error, unknown. |
class | CodeableConcept[] | 0..* | Classification du séjour (IMP=inpatient, AMB=ambulatory, EMER=emergency, HH=home health, VR=virtual…). |
priority | CodeableConcept | 0..1 | Priorité (R=routine, EM=emergency…). |
type | CodeableConcept[] | 0..* | Type spécifique (SNOMED CT). |
serviceType | CodeableReference(HealthcareService)[] | 0..* | Service produit (cardiologie, urgences…). |
subject | Reference(Patient | Group) | 0..1 | Patient ou groupe. |
subjectStatus | CodeableConcept | 0..1 | Statut du sujet (arrived, triaged, departed…). |
episodeOfCare | Reference(EpisodeOfCare)[] | 0..* | Épisode de soin parent (chaîne de séjours). |
basedOn | Reference[] | 0..* | ServiceRequest / CarePlan à l'origine du séjour. |
participant | BackboneElement[] | 0..* | Participants (médecin attendant, admettant, infirmier…) avec leur rôle. |
appointment | Reference(Appointment)[] | 0..* | Rendez-vous associé. |
actualPeriod | Period | 0..1 | Période réelle de l'Encounter (start, end). |
plannedStartDate | dateTime | 0..1 | Date planifiée d'admission. |
length | Duration | 0..1 | Durée du séjour. |
reason | BackboneElement[] | 0..* | Motif (code SNOMED + référence Condition). |
diagnosis | BackboneElement[] | 0..* | Diagnostic(s) avec rôle (AD=admission, DD=discharge, CC=chief complaint, billing…). |
account | Reference(Account)[] | 0..* | Compte de facturation. |
admission | BackboneElement | 0..1 | Détails d'admission (preAdmissionIdentifier, origin, admitSource, destination, dischargeDisposition). |
location | BackboneElement[] | 0..* | Lieux successifs occupés (chambre, lit…). |
serviceProvider | Reference(Organization) | 0..1 | Organisation responsable. |
partOf | Reference(Encounter) | 0..1 | Encounter parent (séjour de séjour, transfert). |
Statuts et classes
Le couple status + class est le sémantique le plus
utilisé :
status=planned + class=IMP— admission programmée prévue.status=in-progress + class=IMP— patient hospitalisé.status=in-progress + class=EMER— patient aux urgences.status=in-progress + class=AMB— consultation en cours.status=in-progress + class=VR— téléconsultation.status=discharged + class=IMP— patient sorti d'hospitalisation, dossier non finalisé.status=completed— dossier finalisé, archivé.
Exemple JSON
Admission d'urgence en ICU pour douleur thoracique, statut in-progress, classe inpatient, priorité emergency.
{
"resourceType": "Encounter",
"id": "example",
"status": "in-progress",
"class": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
"code": "IMP",
"display": "inpatient encounter"
}]
}],
"priority": {
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ActPriority",
"code": "EM",
"display": "emergency"
}]
},
"type": [{
"coding": [{
"system": "http://snomed.info/sct",
"code": "183807002",
"display": "Inpatient stay 9 days"
}]
}],
"subject": { "reference": "Patient/example" },
"participant": [{
"type": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
"code": "ATND",
"display": "attender"
}]
}],
"actor": { "reference": "Practitioner/example" }
}],
"actualPeriod": {
"start": "2026-05-14T10:25:30+01:00"
},
"reason": [{
"value": [{
"concept": {
"coding": [{
"system": "http://snomed.info/sct",
"code": "29857009",
"display": "Chest pain"
}]
}
}]
}],
"diagnosis": [{
"condition": [{ "reference": { "reference": "Condition/example" } }],
"use": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/diagnosis-role",
"code": "AD",
"display": "Admission diagnosis"
}]
}]
}],
"location": [{
"location": { "reference": "Location/icu-101a", "display": "ICU room 101 bed A" },
"status": "active"
}],
"serviceProvider": { "reference": "Organization/hosp01" }
} class=IMP(inpatient encounter),priority=EM(emergency).participantde typeATND(attender) référence un Practitioner.diagnosisavec rôleAD(admission diagnosis) pointe vers une Condition.locationavecstatus=activeindique la position courante (ICU 101 bed A).
API REST
GET /Encounter/example— fetch direct.GET /Encounter?patient=example&status=in-progress— séjours actifs du patient.GET /Encounter?patient=example&date=ge2026-05-01— séjours récents.GET /Encounter?patient=example&class=IMP— hospitalisations.GET /Encounter/example/$everything— opération composite qui retourne toutes les ressources rattachées à l'Encounter.
Profils
| Profil | Régulateur | Restrictions |
|---|---|---|
| US Core Encounter | HL7 US Realm | Doit porter status, class, type, subject, actualPeriod, et un participant avec rôle. |
| IPS Encounter | HL7 + CEN/TC 251 | Cardinalité minimale + valueSets internationaux. |
| FR Core Encounter | ANS | Doit porter identifier (IEP) et lier l'Organization au FINESS. |
Pièges courants
classmal codée : utiliser SNOMED CT pourclassau lieu de v3-ActCode rend la requêteclass=IMPimpossible. Toujours utiliserv3-ActCode.- Confusion
status/subjectStatus:statusest administratif (planned, in-progress…),subjectStatusest le statut métier du patient (arrived, triaged, departed…). - Multiple
actualPeriod.startsansend: un Encounter qui reste in-progress indéfiniment pollue les requêtes. Toujours fermer (status=discharged + actualPeriod.end) à la sortie. - Pas d'
identifiercôté SIH : sans l'IEP / visit number, impossible de corréler avec les flux v2 (PV1-19). Toujours porter un identifier typé. - Location en doublon : chaque déplacement (transfert chambre, lit) ajoute une entrée dans
locationavec son propreperiod. Une seule entrée doit avoirstatus=active. - Reference vers Patient absent : un Encounter sans
subjectest anonyme et illégal en production (ANS, FDA).
Ressources liées
- Patient — sujet du séjour.
- Practitioner — référencé par
participant. - Condition — diagnostic du séjour.
- Observation — données cliniques liées par
encounter. - EpisodeOfCare — épisode parent (plusieurs Encounter d'un même problème).
- Appointment — rendez-vous à l'origine.
- Account — facturation associée.
- Equivalent HL7 v2 — ADT^A01 segment PV1.