Répertoire national de l’Offre et des Ressources en santé et accompagnement médico-social
0.6.0 - trial-implementation

Répertoire national de l’Offre et des Ressources en santé et accompagnement médico-social - Local Development build (v0.6.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Recherche d'offre via une technique « Full text »

`draft`

Cette partie de la spécification est en cours de construction et n'est pas implémentée. Elle est disponible, à titre d'information sur les travaux en cours au niveau du ROR National.

### Construction de la requête de base

Interaction FHIR | Search[1]
Méthode http associée | GET
Ressource recherchée | HealthcareService
Construction requête de base | `GET [base]/HealthcareService{?[parameters]{&_format=[mime-type]}}`

[1] http://hl7.org/fhir/R4/http.html#search et http://hl7.org/fhir/R4/http.html#general

### Construction de la réponse de base

#### Réponse de base – Succès

Lien vers la spécification FHIR : http://hl7.org/fhir/R4/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 corespondant aux critères de recherche plus les ressources incluses correspondant aux critères de recherche. Un score compris entre 0 et 1 est associé à chaque ressource, permettant de classer les ressources selon leur pertinence (0 correspondant au moins pertinent, 1 correspondant au plus pertinent).\ Le service développé renvoie les 200 premiers résultats et 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 : http://hl7.org/fhir/R4/http.html

#### Réponse de base – Echec

Lien vers la spécification FHIR : http://hl7.org/fhir/R4/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 : http://hl7.org/fhir/R4/http.html

### Critères de recherche

En complément, vous pouvez accéder aux Capability Statements ici

### Paramètres et modificateurs de requêtes FHIR

Les paramètres et modificateurs de requêtes sont décrits ici.

### Exemple de requêtes

#### Scénario 1 : Recherche des offres opérationnelles référençant le texte "cardio" `draft`

Description du scénario : Un consommateur recherche les offres opérationnelles contenant une chaine de caractères libre («cardio » par exemple).

Requête :

    GET [BASE]/HealthcareService?_content=cardio&_include=HealthcareService:organization&_include:iterate=Organization:partof&_include=HealthcareService:location&_revinclude=PractitionerRole:service&_include=PractitionerRole:practitioner

Requête expliquée :

    GET [BASE]/HealthcareService?_content=cardio #filtre sur le contenu textuel des ressources HealthcareService
    &_include=HealthcareService:organization #inclus les Organization référencées par Healthcare Service
    &_include:iterate=Organization:partof #inclus TOUTES (iterate) les Organization liées aux Organization référencées par Healthcare Service
    &_include=HealthcareService:location #inclus les Location référencées par HealthcareService
    &_revinclude=PractitionerRole:service #inclus les PractitionerRole qui référencent le HealthcareService
    &_include=PractitionerRole:practitioner #inclus les Practitioner référencés par PractitionerRole

#### Scénario 2 : Recherche des offres opérationnelles ou des lieux de réalisation de l’offre référençant le texte "cardio" `draft`

Description du scénario : Un consommateur recherche les offres opérationnelles ou les lieux de réalisation de l’offre liés contenant une chaine de caractères libre (« cardio » par exemple).

Requête :

    GET [BASE]/HealthcareService?_filter=(_content=cardio or location._content=cardio)&_include=HealthcareService:organization&_include:iterate=Organization:partof&_include=HealthcareService:location&_revinclude=PractitionerRole:service&_include=PractitionerRole:practitioner

Requête expliquée :

    GET [BASE]/HealthcareService?_filter=(_content=cardio or location._content=cardio) #filtre sur le contenu textuel des ressources HealthcareService ou Location liées
    &_include=HealthcareService:organization #inclus les Organization référencées par Healthcare Service
    &_include:iterate=Organization:partof #inclus TOUTES (iterate) les Organization liées aux Organization référencées par Healthcare Service
    &_include=HealthcareService:location #inclus les Location référencées par HealthcareService
    &_revinclude=PractitionerRole:service #inclus les PractitionerRole qui référencent le HealthcareService
    &_include=PractitionerRole:practitioner #inclus les Practitioner référencés par PractitionerRole