Répertoire national de l’Offre et des Ressources en santé et accompagnement médico-social
0.5.0-snapshot-1 - ci-build

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

## Consignes fiche de saisie de l'offre

### Construction de la requête de base

Interaction FHIR | Create[1] Update[2] `draft` | Search[3]
Méthode http associée | POST PUT `draft` | GET
Ressource(s) ciblée(s) | Questionnaire | Questionnaire
Construction requête de base | `POST [base]/Questionnaire {?_format=[mime-type]}` `PUT [base]/Questionnaire/[id]{?&_format=[mime-type]}` `draft` | `GET [base]/Questionnaire{?[parameters]{&_format=[mime-type]}}`

[1] https://hl7.org/fhir/R4/http.html#create et https://www.hl7.org/fhir/R4/http.html#general

[2] https://hl7.org/fhir/R4/http.html#update et http://hl7.org/fhir/R4/http.html#general

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

> A noter que le PUT (update) n'est pas disponible dans la version 3.2 du ROR National. Son implémentation est programmée pour la version 3.3.

### Construction de la réponse de base

#### Create, Update

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

Lien vers la spécification FHIR : https://www.hl7.org/fhir/R4/http.html

Si la création est un succès, le serveur répond en renvoyant a minima:

- Un header avec un code 201 Created HTTP.
- Un header Location contenant le nouvel identifiant technique et l’identifiant de version de la ressource créée.
- L’identifiant fonctionnel de la ressouce créée.

##### Réponse de base – Echec

Lien vers la spécification FHIR : https://www.hl7.org/fhir/R4/operationoutcome.html

Si la création é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

#### Search

##### 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 Measure 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.

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 pour Search

Les critères de recherche applicables pour RORQuestionnaire sont accesible ici : paragraphe dédié.

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 : Création d’une fiche de consignes de saisie

Description du scénario : Un consommateur souhaite créer une nouvelle fiche de consignes de saisie pour un cabinet de ville de médecine générale.

Exemple de ressource : Example Questionnaire: Cabinet de ville de médecine générale

Requête :

N.B.: Exemple de ressource fictif pour illustration, ces ressources ne sont pas validées par le guide d’implémentation et sont donc sujettes aux erreurs. Pour l’implémentation se baser sur les profils.

    POST [BASE]/Questionnaire
    {
      {
      "resourceType": "Questionnaire",
      "version": "0.1",
      "name": "FDS-109",
      "title": "Consignes fiche de saisie Cabinet de ville de médecine générale",
      "identifier": [
        {
          "use": "official",
          "value": "FDS-109"
        }
      ],
      "status": "draft",
      "experimental": true,
      "date": "2023-12-05",
      "publisher": "ANS",
      "description": "Dans le ROR, les cabinets de ville et les centres de santé prennent la forme d'une Entité Juridique, et d’un Établissement Géographique (EG), puis d’une unité élémentaire par professionnel. Ce document propose la description type d’un cabinet de ville de médecine générale.\n Vous pouvez télécharger le json [ici](Questionnaire-ror-questionnaire-offre-de-ville.json) et l'importer dans [https://lhcformbuilder.nlm.nih.gov/](https://lhcformbuilder.nlm.nih.gov/) pour le tester et le faire évoluer via cet IHM.",
      "jurisdiction": [
        {
          "coding": [
            {
              "code": "FR",
              "system": "urn:iso:std:iso:3166",
              "display": "FRANCE"
            }
          ]
        }
      ],
      "subjectType": [
        "HealthcareService",
        "Organization",
        "Practitioner",
        "Location",
        "PractitionerRole"
      ],
      "lastReviewDate": "2023-12-05",
      "purpose": "Dans le ROR, l'offre de soins de ville comprend celle des cabinets et celle des centres de santé. Concernant les soins de médecine générale, le ROR référencera l’offre des médecins généralistes, qu’ils aient ou non une spécialité, dans leur cabinet, individuel ou de groupe, et les centres de santé.",
      "code": [
        {
          "code": "SA05",
          "system": "https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite/FHIR/TRE-R02-SecteurActivite"
        },
        {
          "code": "SA07",
          "system": "https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite/FHIR/TRE-R02-SecteurActivite"
        },
        {
          "code": "SA08",
          "system": "https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite/FHIR/TRE-R02-SecteurActivite"
        }
      ],
      "item": [
        {
          "linkId": "TypeOffreInfoEJ",
          "prefix": "1",
          "text": "Valeurs de description spécifiques d’un cabinet de ville de médecine générale. Information sur l'EJ",
          "type": "group",
          "item": [
            {
              "linkId": "idNatstruct-EJ",
              "prefix": "1.1",
              "text": "IdNat_Struct (Identification nationale des Entités Juridiques définie dans le CI-SIS)",
              "definition": "https://interop.esante.gouv.fr/ig/fhir/ror/StructureDefinition/ror-organization#Organization.identifier:idNatSt.value",
              "type": "string",
              "required": true,
              "readOnly": true
            }
          ]
        }
      ]
    }
    }

Vous pouvez télécharger le json ici et l’importer dans https://lhcformbuilder.nlm.nih.gov/ pour le tester et le faire évoluer via cet IHM.

#### Scénario 2 : Un consommateur souhaite récupérer l’ensemble des fiches

Description du scénario : Un consommateur souhaite récupérer l’ensemble des fiches.

Requête :

`GET [BASE]/Questionnaire`

Requête expliquée :

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

#### Scénario 3 : Un consommateur souhaite récupérer une fiche `draft`

Description du scénario : Un consommateur souhaite récupérer une fiche

Requête :

`GET [BASE]/Questionnaire?identifier=XXX`

Requête expliquée :

    GET [BASE]/Questionnaire?identifier=XXX #critère de recherche sur l’identifiant de la fiche

#### Scénario 4 : Un consommateur souhaite récupérer un ensemble de fiches de saisie sur un critère donné `draft`

Description du scénario : Un consommateur souhaite récupérer un ensemble de fiches de saisie pour une catégorie d’EG donnée. Par exemple, un Centre de santé.

Requête :

`GET [BASE]/Questionnaire?context=https://mos.esante.gouv.fr/NOS/TRE_R66-CategorieEtablissement/FHIR/TRE-R66-CategorieEtablissement|124`

Requête expliquée :

    GET [BASE]/Questionnaire?context=https://mos.esante.gouv.fr/NOS/TRE_R66-CategorieEtablissement/FHIR/TRE-R66-CategorieEtablissement|124 # critère permettant de rechercher les fiches utilisée pour la catégorie d'EG 'Centre de santé' (voir binding)

#### Autres scénarios

Pour construire d’autres requêtes selon vos besoins :

- vous pouvez consulter les spécifications du standard FHIR Http - FHIR v4.0.1 (hl7.org)
- utiliser les critères de recherche défini au paragraphe dédié