ediverse Explorer la plateforme

À la une PEPPOL BIS Billing 3.0 L’obligation européenne d’e-invoicing arrive : France sept 2026, Belgique janv 2026, Allemagne 2025.

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

ChampTypeCardinalitéRôle
identifierIdentifier[]0..*Identifiants externes (numéro de séjour, IEP, visit number côté SIH).
statuscode1..1planned, in-progress, on-hold, discharged, completed, cancelled, discontinued, entered-in-error, unknown.
classCodeableConcept[]0..*Classification du séjour (IMP=inpatient, AMB=ambulatory, EMER=emergency, HH=home health, VR=virtual…).
priorityCodeableConcept0..1Priorité (R=routine, EM=emergency…).
typeCodeableConcept[]0..*Type spécifique (SNOMED CT).
serviceTypeCodeableReference(HealthcareService)[]0..*Service produit (cardiologie, urgences…).
subjectReference(Patient | Group)0..1Patient ou groupe.
subjectStatusCodeableConcept0..1Statut du sujet (arrived, triaged, departed…).
episodeOfCareReference(EpisodeOfCare)[]0..*Épisode de soin parent (chaîne de séjours).
basedOnReference[]0..*ServiceRequest / CarePlan à l'origine du séjour.
participantBackboneElement[]0..*Participants (médecin attendant, admettant, infirmier…) avec leur rôle.
appointmentReference(Appointment)[]0..*Rendez-vous associé.
actualPeriodPeriod0..1Période réelle de l'Encounter (start, end).
plannedStartDatedateTime0..1Date planifiée d'admission.
lengthDuration0..1Durée du séjour.
reasonBackboneElement[]0..*Motif (code SNOMED + référence Condition).
diagnosisBackboneElement[]0..*Diagnostic(s) avec rôle (AD=admission, DD=discharge, CC=chief complaint, billing…).
accountReference(Account)[]0..*Compte de facturation.
admissionBackboneElement0..1Détails d'admission (preAdmissionIdentifier, origin, admitSource, destination, dischargeDisposition).
locationBackboneElement[]0..*Lieux successifs occupés (chambre, lit…).
serviceProviderReference(Organization)0..1Organisation responsable.
partOfReference(Encounter)0..1Encounter 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.

json encounter-example.json
{
  "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).
  • participant de type ATND (attender) référence un Practitioner.
  • diagnosis avec rôle AD (admission diagnosis) pointe vers une Condition.
  • location avec status=active indique 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

ProfilRégulateurRestrictions
US Core EncounterHL7 US RealmDoit porter status, class, type, subject, actualPeriod, et un participant avec rôle.
IPS EncounterHL7 + CEN/TC 251Cardinalité minimale + valueSets internationaux.
FR Core EncounterANSDoit porter identifier (IEP) et lier l'Organization au FINESS.

Pièges courants

  • class mal codée : utiliser SNOMED CT pour class au lieu de v3-ActCode rend la requête class=IMP impossible. Toujours utiliser v3-ActCode.
  • Confusion status / subjectStatus : status est administratif (planned, in-progress…), subjectStatus est le statut métier du patient (arrived, triaged, departed…).
  • Multiple actualPeriod.start sans end : un Encounter qui reste in-progress indéfiniment pollue les requêtes. Toujours fermer (status=discharged + actualPeriod.end) à la sortie.
  • Pas d'identifier cô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 location avec son propre period. Une seule entrée doit avoir status=active.
  • Reference vers Patient absent : un Encounter sans subject est 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 v2ADT^A01 segment PV1.