Service d'Accès aux Soins
1.1.0 - trial-implementation
This page is part of the Service d'Accès aux Soins (v1.1.0: trial-use - Mixed Normative and STU) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
Cette requête s’appuie sur le flux 3A du volet d’agenda partagé du CI-SIS volet Gestion Agenda Partagés.
Endpoint |
|
Header |
Accept: application/json+fhir |
Encodage |
UTF-8 |
Version FHIR |
4.0.1 |
Version package |
|
Publication |
|
Interaction FHIR |
Search[1] |
Méthode http associée |
GET |
Ressource recherchée |
Schedule |
Construction requête de base |
|
[1] https://www.hl7.org/fhir/http.html#search et https://www.hl7.org/fhir/http.html#general
Cette réponse s’appuie sur le flux 4A du volet d’agenda partagé du CI-SIS.
Lien vers la spécification FHIR : https://www.hl7.org/fhir/bundle.html
Si la recherche est un succès, le serveur répond :
Un header avec un code 200 OK HTTP
Un body contenant une ressource Bundle dont le type =
searchset.
Le bundle encapsule 0 à n ressources Slot corespondant aux
critères de recherche plus les ressources incluses correspondant aux
critères de recherche.
Le service indique le total trouvé dans une balise total
.
Dans le cas où il n’y a pas de résultat le service renvoie total
: 0.
Remarque : la recherche est un succès à partir du moment où la requête peut être exécutée. Il peut il y avoir 0 à n correspondances.
Plus de précision sur la spécification FHIR : https://www.hl7.org/fhir/http.html
Lien vers la spécification FHIR : https://www.hl7.org/fhir/operationoutcome.html
Si la recherche échoue, le serveur doit répondre :
Un header avec un un code erreur HTTP 4XX ou 5XX
Un body contenant une ressource OperationOutcome qui donne les détails sur la raison de l’échec
Remarque : l’échec d’une recherche est la non-possibilité d’exécuter la requête, ce qui est différent d’aucune correspondance à la recherche. Plus de précision sur la spécification FHIR : https://www.hl7.org/fhir/http.html
ID |
Description |
Paramètre |
Type |
Obligatoire |
Cardinalité |
1 |
Date de début de la recherche de créneaux |
start |
date |
Oui |
1..1 |
2 |
Date de fin de la recherche de créneaux |
start |
date |
Oui |
1..1 |
3 |
Liste des identifiants nationaux de structure des associations SOS Médecins(SIRET avec préfixe correspondant) |
actor:Location |
token |
Oui |
1..25 |
4 |
Statut des créneaux |
status |
token |
Oui |
1..1 |
Par ailleurs, en complément des ressources Slot, afin de récupérer l’ensemble des informations qui leur sont rattachées et qui seront potentiellement exploitées par le SAS, deux paramètres supplémentaires sont exploités :
_revinclude=Slot:schedule
indique qu’il est nécessaire de transmettre les ressources Slot associées au Schedule_include=Schedule:actor:Location
indique qu’il est nécessaire de transmettre la ressource Location associée au Schedule. La présence de cette ressource est nécessaire pour permettre de faire le lien entre l’agenda (Schedule) et l’association SOS Médecins (Organization) associée_include:iterate=Location:Organization
indique qu’il est nécessaire de transmettre la ressource Organization référencée dans Location.managingOrganization_has:Slot:schedule:[paramètre]
permet l’utilisation des éléments de la ressource Slot comme critères de recherche (start, status)La requête ci-dessous correspond à une recherche de créneaux disponibles entre le 18 août 2023 à 10h et le 20 août 2023 à 9h pour les associations SOS Médecins correspondants aux SIRET suivants :334173748400020 et 340426662900033
Requête :
get[BASE]/Schedule?_revinclude=Slot:schedule&_include=Schedule:actor:Location&_include:iterate=Location:organization&_has:Slot:schedule:start=ge2023-08-18T10:00:00+02:00
&_has:Slot:schedule:start=le2023-08-20T09:00:00+02:00&_has:Slot:schedule:status=free&actor:Location.organization.identifier=urn:oid:1.2.250.1.71.4.2.27C334173748400020
,urn:oid:1.2.250.1.71.4.2.2%7C340426662900033
Réponse simplifiée :
HTTP 200 OK resourceType: Bundle type: searchset total: 4 Slot1 (match) Schedule1 Location1 Organization1 Slot2 (match) Schedule2 Location2 Organization2 Slot3 (match) Schedule3 Location3 Organization3 Slot4 (match)
Corps de la réponse complète :
La réponse ci-dessous correspond à :
Pour consulter l’exemple en plein écran, cliquer ici.
Cette section détaille les nomenclatures à utiliser afin de renseigner les différents éléments codifiés de la réponse.
free
.origin
à l’URL transmise par l’éditeur au moment de la redirection pour identifier la provenance.3
IDNST
et type.coding.system à http://interopsante.org/fhir/CodeSystem/fr-location-identifier-type
IDNST
et type.coding.system à http://interopsante.org/fhir/CodeSystem/fr-location-identifier-type
INTRN
et type.coding.system à http://interopsante.org/fhir/CodeSystem/fr-location-identifier-type
Le validateur mis à disposition des développeurs dans le cadre du projet SAS offre la possibilité tester le format des bundles de réponse générés. Il permet de vérifier que les réponses sont correctement formatées, que l’ensemble des informations obligatoires sont bien présentes et que les données codifiées exploitent les bonnes nomenclatures. Pour que le validateur puisse effectuer correctement les contrôles au niveau de la structure, il est nécessaire de renseigner pour chacun des “resourceType” correspondant, le meta.profile “URL” ci-dessous :
Ci-dessous un exemple :
"resourceType": "Bundle",
"id": "8cbb33dc-779e-45e9-a5f6-ea66101288c5",
"meta": {
"profile": [
"https://interop.esante.gouv.fr/ig/fhir/sas/StructureDefinition/sas-sos-bundle-aggregator"
]
},
Le validateur est disponible sur l’espace de test de l’ANS : https://interop.esante.gouv.fr/evs/fhir/validator.seam?standard=37. Pour faciliter les tests et conserver l’historique, nous vous recommandons de créer votre compte sur la plateforme.
Afin de tester un fichier, il suffit de sélectionner le format JSON
, d’ajouter le fichier via le bouton Add…
, de sélectionner le modèle BundleAgregateurSOS
puis de cliquer sur valider
:
![]() |
Figure 1 - Accès au validateur agrégateur de créneaux |
Vous obtiendrez alors un rapport de test mettant en valeur les erreurs bloquantes et les différents warnings :
![]() |
Figure 2 - Rapport validateur agrégateur de créneaux |