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

## Consultation d'anomalie

### Construction de la requête de base

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

[1] https://www.hl7.org/fhir/R4/http.html#search et https://www.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 : https://www.hl7.org/fhir/R4/http.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 HealthcareService corespondant aux critères de recherche plus les ressources incluses correspondant aux critères de recherche. 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.

#### Réponse de base – Echec

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

### Critères de recherche

Les critères de recherche applicables sont définis sur la page dédiée pour :

- StructureDefinition-ror-task
- StructureDefinition-ror-healthcareservice (critères de recherche applicables à la ressource Task, grâce au chainage. Pour cela utiliser la syntaxe suivante : `focus:HealthcareService:[NOM CRITERE]`)
- Structuredefinition-ror-organization (critères de recherche applicables à la ressource Task, grâce au chainage. Pour cela utiliser la syntaxe suivante : `focus:Organization:[NOM CRITERE]`)
- StructureDefinition-ror-location (critères de recherche applicables à la ressource Task, grâce au chainage. Pour cela utiliser la syntaxe suivante : `focus:Location:[NOM CRITERE]`)
- ​StructureDefinition-ror-practioner (critères de recherche applicables à la ressource ressource Task, grâce au chainage. Pour cela utiliser la syntaxe suivante : `focus:Practitioner:[NOM CRITERE]`)
- ​StructureDefinition-ror-practionerrole (critères de recherche applicables à la ressource Task, grâce au chainage. Pour cela utiliser la syntaxe suivante : `focus:PractitionerRole:[NOM CRITERE]`)

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 : Consultation du statut d’une anomalie

Description du scénario : Un responsable qualité ou un système numérique consommateur souhaite consulter le statut d’une anomalie.

Exemple : Recherche de l’anomalie ayant pour identifiant technique 687

Requête :

`GET [BASE]/Task/687`

Requête expliquée :

    GET [BASE]/Task/687 #recherche d'une anomalie à partir de son identifiant technique

#### Scénario 2 : Consultation de la liste des anomalies `draft`

Description du scénario : Un responsable qualité ou le moteur de règle souhaite consulter la liste des anomalies d’un élément dont l’identifiant est XXX.

Requête :

`GET [BASE]/Task?focus:HealthcareService:identifier=XXX`

Requête expliquée :

    GET [BASE]/Task?focus:HealthcareService.identifier=XXX #critère de recherche sur l’identifiant de l’élément référencé par l’anomalie

#### Scénario 3 : Consultation de la liste des anomalies sur un périmètre `draft`

Description du scénario : un responsable qualité souhaite consulter la liste des anomalies sur son périmètre : région = XXX.

Requête :

`GET [BASE]/Task?focus:[Ressource]:_tag=https://mos.esante.gouv.fr/NOS/TRE_R30-RegionOM/FHIR/TRE-R30-RegionOM|XXX`

Requête expliquée : Exemple avec HealthcareService :

    GET [BASE]/Task?focus:HealthcareService:_tag=https://mos.esante.gouv.fr/NOS/TRE_R30-RegionOM/FHIR/TRE-R30-RegionOM|XXX #critère de recherche sur la région source
    Exemple avec Organization :
    GET [BASE]/Task?focus:Organization:_tag=https://mos.esante.gouv.fr/NOS/TRE_R30-RegionOM/FHIR/TRE-R30-RegionOM|XXX #critère de recherche sur la région source

#### Scénario 4 : Consommation de toutes les anomalies

Description du scénario : le BI consomme toutes les anomalies pour faire des tableaux de suivi.

Requête :

`GET [BASE]/Task`

Requête expliquée :

    GET [BASE]/Task #recherche sans critère pour récupérer toutes les anomalies