Ressources
Healthcare Service
1. Présentation de la ressource
Il s’agit d’une ressource divisée en deux profils pour décrire les « activités de soins » et les « équipements sociaux » :
- HealthcareService-SocialEquipment pour les équipements sociaux : identifiant ARHGOS, date d’autorisation, date de première installation, active, référence à l’organisation, type d’équipement social, clientèle
- HealthcareService-HealthCareActivity pour les activités de soin : identifiant ARHGOS, date d’autorisation, période d’autorisation, active, modalité, forme, type
2. Caractéristiques techniques de la ressource
|
Endpoint |
https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService |
|
Header |
ESANTE-API-KEY |
|
Méthodes HTTP associées |
GET, POST |
|
Paramètres de requête |
_count, _include |
3. Paramètres de recherche
| Nom | Type | Description |
|---|---|---|
| _id | token | Recherche sur l’ID de la ressource HealthCare Service |
| _lastUpdated | date | Renvoie uniquement les ressources selon la date de mises à jour et le “modifier” utilisé (eq, ne, gt, lt, ge, le, ap). Plus d’informations sur les [dates] (https://www.hl7.org/fhir/R4/search.html#date) |
| _profile | uri | Sélectionner le profil de la ressource Healthcare Service |
| _since | date | |
| _total | string | |
| active | token | Recherche les ressources Healthcare Service actives |
| as-sp-data-information-system | token | Recherche sur le système d’information |
| characteristic | token | Recherche sur le type d’activité des équipements sociaux ou sur la forme d’activité des activités de soins |
| identifier | token | Recherche sur l’identifiant des équipements sociaux ou des activités de soins |
| organization | reference | Recherche tous les équipements sociaux ou activités de soins rattachés à une structure |
| service-category | token | Recherche sur la modalité des activités de soins |
| service-type | token | Recherche sur la discipline des équipements sociaux ou sur l’activité sanitaire régulée des activité de soins |
4. Recherche d’activité de soin et d’équipement social sur critères
Voici des exemples de requêtes sur les activités de soin et les équipements sociaux.
4.1 Rechercher tout
En tant que client de l’API, je souhaite récupérer l’ensemble des activités de soins et les équipements sociaux. On utilise ici le _profile pour récupérer exclusivement les activités de soins ou les équipements sociaux.
Exemples de requêtes :
GET [base]/HealthcareService
#récupère l'ensemble des HealthcareServices - activités de soins et équipements sociaux (actives et inactives)
GET [base]/HealthcareService?_profile=https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-dp-healthcareservice-social-equipment
# récupère l'ensemble des HealthcareServices filtrés sur le profil équipements sociaux (actives et inactives)
GET [base]/HealthcareService?_profile=https://interop.esante.gouv.fr/ig/fhir/annuaire/StructureDefinition/as-dp-healthcareservice-healthcare-activity
# récupère l'ensemble des HealthcareServices filtrés sur le profil activités de soins (actives et inactives)
GET [base]/HealthcareService?_include=HealthcareService:organization
# inclure les Organization qui sont référencées par les HealthcareService (HealthcareService + Organization)
GET [base]/HealthcareService?_include=*
# inclure toutes les ressources qui sont référencées par les HealthcareService
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService"// create the client:
var client = FhirTestUtils.createClient();
var bundle = client.search().forResource(HealthcareService.class).returnBundle(Bundle.class).execute();
for (var healthcareServiceEntry : bundle.getEntry()) {
// print HealthcareService data:
var healthcareService = (HealthcareService) healthcareServiceEntry.getResource();
logger.info("Healthcare Service found: id={}", healthcareService.getIdElement().getIdPart());
}// create the client:
var client = FhirTestUtils.CreateClient();
var bundle = client.Search<HealthcareService>();
foreach (var be in bundle.Entry)
{
// print HealthcareService data:
var healthcareService = be.Resource as HealthcareService;
Console.WriteLine($"Healthcare Service found: id={healthcareService.IdElement.Value}");
}4.2 Rechercher par identifiant (_id ou identifier)
En tant que client de l’API, je souhaite rechercher un service à partir de son identifiant.
Requête :
GET [base]/HealthcareService?_id=004-1014485-03
# récupère le HealthcareService en fonction de son identifiant technique
GET [base]/HealthcareService?identifier=52-52-49883
# récupère le HealthcareService en fonction de son identifiant métier
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService?identifier=52-52-49883"// create the client:
var client = FhirTestUtils.createClient();
var typeSearchClause = HealthcareService.IDENTIFIER.exactly().codes("52-52-49883");
var bundle = client.search()
.forResource(HealthcareService.class)
.where(typeSearchClause)
.returnBundle(Bundle.class).execute();
for (var healthcareServiceEntry : bundle.getEntry()) {
// print HealthcareService data:
var healthcareService = (HealthcareService) healthcareServiceEntry.getResource();
logger.info("Healthcare Service found: id={}", healthcareService.getIdentifierFirstRep().getValue());
}// create the client:
var client = FhirTestUtils.CreateClient();
var q = new SearchParams()
.Where("identifier=52-52-49883")
.LimitTo(50);
var bundle = client.Search<HealthcareService>(q);
foreach (var be in bundle.Entry)
{
// print HealthcareService data:
var healthcareService = be.Resource as HealthcareService;
Console.WriteLine($"Healthcare Service found: id={healthcareService.IdElement.Value}");
}4.3 Rechercher par type/forme d’activité (characteristic)
En tant que client de l’API, je souhaite rechercher toutes les activités de soin ayant comme forme la Chirurgie ambulatoire (code 07).
Remarque : Les codes d’activité sont disponibles dans les référentiels suivants des NOS :
Exemples de requêtes :
GET [base]/HealthcareService?characteristic=https://mos.esante.gouv.fr/NOS/TRE_R276-FormeActivite/FHIR/TRE-R276-FormeActivite%7C07
# Rechercher les HealthcareService selon la forme d'activité chirurgie ambulatoire (code: 07)
GET [base]/HealthcareService?characteristic=https://mos.esante.gouv.fr/NOS/TRE_R209-TypeActivite/FHIR/TRE-R209-TypeActivite%7C11
# Rechercher les HealthcareService selon le type d'hébergement complet ou internat (code: 11)
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService?characteristic=https%3A%2F%2Fmos.esante.gouv.fr%2FNOS%2FTRE_R276-FormeActivite%2FFHIR%2FTRE-R276-FormeActivite%7C07"
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService?characteristic=https%3A%2F%2Fmos.esante.gouv.fr%2FNOS%2FTRE_R209-TypeActivite%2FFHIR%2FTRE-R209-TypeActivite%7C11"// create the client:
var client = FhirTestUtils.createClient();
var characteristicSearchClause = HealthcareService.CHARACTERISTIC.exactly().codes(
"https://mos.esante.gouv.fr/NOS/TRE_R276-FormeActivite/FHIR/TRE-R276-FormeActivite",
"07"
);
var bundle = client.search()
.forResource(HealthcareService.class)
.where(characteristicSearchClause)
.returnBundle(Bundle.class).execute();
for (var healthcareServiceEntry : bundle.getEntry()) {
// print HealthcareService data:
var healthcareService = (HealthcareService) healthcareServiceEntry.getResource();
var healthcareServiceCoding = healthcareService.getCharacteristicFirstRep().getCodingFirstRep();
String characteristicData = healthcareServiceCoding.getSystem().concat("|").concat(healthcareServiceCoding.getCode());
logger.info("Healthcare Service found: id={} | characteristic={}", healthcareService.getIdElement().getIdPart(), characteristicData);
}// create the client:
var client = FhirTestUtils.CreateClient();
var q = new SearchParams()
.Where("characteristic=https://mos.esante.gouv.fr/NOS/TRE_R276-FormeActivite/FHIR/TRE-R276-FormeActivite|07")
.LimitTo(50);
var bundle = client.Search<HealthcareService>(q);
foreach (var be in bundle.Entry)
{
// print HealthcareService data:
var healthcareService = be.Resource as HealthcareService;
var healthcareServiceCoding = healthcareService.Characteristic[0].Coding[0];
Console.WriteLine($"Healthcare Service found: id={healthcareService.IdElement.Value} | characteristic={healthcareServiceCoding.System}|{healthcareServiceCoding.Code}");
}4.4 Rechercher par statut (active)
En tant que client de l’API, je souhaite rechercher les activités de soins ou les équipements sociaux selon le statut Active
Exemples de requêtes :
GET [base]/HealthcareService?active=true
# Recherche les HealthcareService qui sont actifs
GET [base]/HealthcareService?active=false
# Recherche les HealthcareService qui sont inactifs
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService?active=true"// create the client:
var client = FhirTestUtils.createClient();
var activeSearchClause = HealthcareService.ACTIVE.exactly().code("true");
var bundle = client.search()
.forResource(HealthcareService.class)
.where(activeSearchClause)
.returnBundle(Bundle.class).execute();
for (var healthcareServiceEntry : bundle.getEntry()) {
// print HealthcareService data:
var healthcareService = (HealthcareService) healthcareServiceEntry.getResource();
logger.info("Healthcare Service found: id={} | status={}", healthcareService.getIdElement().getIdPart(), healthcareService.getActive());
}// create the client:
var client = FhirTestUtils.CreateClient();
var q = new SearchParams()
.Where("active=true")
.LimitTo(50);
var bundle = client.Search<HealthcareService>(q);
foreach (var be in bundle.Entry)
{
// print HealthcareService data:
var healthcareService = be.Resource as HealthcareService;
Console.WriteLine($"Healthcare Service found: id={healthcareService.IdElement.Value} | status={healthcareService.Active.Value}");
}4.5 Rechercher par date de mise à jour (_lastUpdated)
En tant que client de l’API, je souhaite rechercher tous les services mis à jour depuis une certaine date ( >= ‘01/08/2025’ dans l’exemple ).
Exemples de requêtes :
GET [base]/HealthcareService?_lastUpdated=ge2025-08-01
# Rechercher les HealthcareService qui ont été mis à jour depuis le 01/08/2025 inclus
Exemples de code :
curl -H "ESANTE-API-KEY: XXXX-XXXX-XXXX-XXXXX" "https://gateway.api.esante.gouv.fr/fhir/v2/HealthcareService?_lastUpdated=ge2025-08-01"// create the client:
var client = FhirTestUtils.createClient();
// create the date search parameter :
var dateParam = new DateClientParam("_lastUpdated");
var bundle = client.search()
.forResource(HealthcareService.class)
.where(dateParam.afterOrEquals().day("2025-08-01"))
.returnBundle(Bundle.class).execute();
for (var healthcareServiceEntry : bundle.getEntry()) {
// cast entry :
var healthcareService = (HealthcareService) healthcareServiceEntry.getResource();
// print update date & id :
logger.info("HealthcarService found: id={} lastUpdate={}", healthcareService.getIdElement().getIdPart(), healthcareService.getMeta().getLastUpdated());
}// create the client:
var client = FhirTestUtils.CreateClient();
var q = new SearchParams()
.Where("_lastUpdated=ge2025-08-01")
.LimitTo(50);
var bundle = client.Search<HealthcareService>(q);
foreach (var be in bundle.Entry)
{
// print HealthcareService data:
var healthcareService = be.Resource as HealthcareService;
Console.WriteLine($"Healthcare Service found: id={healthcareService.IdElement.Value} lastUpdate={healthcareService.Meta.LastUpdated.Value}");
}Code source des exemples
Vous retrouverez le code source de ces exemples sur notre repository git: