Segur

Preuves Ségur

Exigences Ségur

Afin d’apporter les preuves segur suivantes :

Description Exigence Scénario
Le système DOIT être en capacité d’intégrer automatiquement l’extraction publique « PS_LibreAcces_Personne_activite » de l’annuaire santé.fr, conformément au Dossier des Spécifications Fonctionnelles et Techniques Fichiers d’extraction des données en libre accès [ANN1]. ANN 1.1 L’éditeur DOIT exécuter le scénario de conformité suivant : 1 Charger les données en libre acès sur le site https://annuaire.sante.fr
Le Système DOIT permettre de paramétrer la fréquence d’intégration automatique de l’annuaire santé. ANN 4.1 L’éditeur DOIT exécuter le scénario de conformité suivant : 1. Paramétrer la fréquence d’intégration automatique de l’annuaire santé.
Le Système DOIT être en capacité de rechercher une adresse MSSanté d’un correspondant dans l’annuaire Santé, avec l’une des méthodes extraites du référentiel socle MSSanté #2 (Clients de Messageries Sécurisées de Santé) [MSS1]. ANN 5.1 “L’éditeur DOIT exécuter le scénario de conformité suivant : 1. Rechercher une adresse MSSanté d’un correspondant récupérée de l’annuaire Santé

ANN 1.1 et ANN 4.1 Mise à jour des données

Les données sont chargées chaque semaine via un cron paramétrable dans le fichier de configuration de l’annuaire. Par exemple pour le chargement des professionnels:

professionel:
  host: https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/PS_LibreAcces
  file: PS_LibreAcces_Personne_activite
  cron: ${PROFESSIONEL_CRON:0 0 2 * * 1}

Chaque mise à jour de données envoi aux administrateurs un rapport par mail: Mail

Les utilisateurs de l’annuaire dispose du service suivant /api/lastUpdated afin de connaitre la dernière mise à jour des données:

curl -X GET "https://annuaire-demo.devbox-sante.fr/api/lastUpdated" -H "accept: */*"
{
  "Finess": "2022-04-20",
  "Nomenclature": "2022-04-20",
  "Professionnels": "2022-04-20"
}

ANN 5.1

Dans le référentiel socle (ANS_MSS_Ref2_Clients_de_messageries_MSSanté_v1.0_20230131.pdf) on peut lire :

Les clients de messageries disposent de 3 méthodes pour rechercher une adresse MSSanté dans l’Annuaire santé :

  1. Interface LDAP afin d’effectuer en interactif des recherches de BAL, voir [AS-LDAP-MSS].
  2. Extraction publique des données de l’annuaire afin de constituer un annuaire local synchronisé avec l’annuaire national, voir [AS-EXTRAC-LIBRE],
  3. Interface FIHR, nouveau service permettant d’exposer des données des référentiels Personnes physiques/Personnes morales au format JSON, structurées selon le standard d’interopérabilité FHIR, voir [AS-API-FIHR].

L’offre annuaire de la DevBox-santé utilise la méthode numéro 2 pour obtenir l’adresse MSS, car cette extraction publique fait partie de l’intégration de cette offre.

mssante:
  host: https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/Extraction_Correspondance_MSSante
  file: Extraction_
  isZip: true
  forceDownload: true

Pour compléter cette methode la DevBox-Santé MSSanté permet d’utiliser la méthode numéro 1 en proposant une intégration de l’annuaire LDAP MSSanté. Il s’agit du service : https://mss-demo.devbox-sante.fr/swagger-ui/index.html#/mss-proxy/findUsers

Exemple de recherche par adresse MSS

curl -X 'GET' \
  'https://annuaire-demo.devbox-sante.fr/annuaire/professionnels?page=0&size=20&email=infirmier.mssante.fr' \
  -H 'accept: */*' \
  -H 'Authorization: Basic XXXXXX'
{
  "content": [
    {
      "id": "XXXX",
      "idPP": {
        "valeur": "XXXX"
      },
      "typeIdNat_PP": {
        "valeur": "8",
        "libelle": "N° RPPS",
        "libelleCourt": "N° RPPS",
        "lang": "fr",
        "identifiantNomenclature": "1.2.250.1.71.1.2.15",
        "nomNomenclature": "TRE_G08-TypeIdentifiantPersonne",
        "versionNomenclature": "20101104000000",
        "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_G08-TypeIdentifiantPersonne"
      },
      "idNat_PS": {
        "valeur": "XXX"
      },
      "civilite": {
        "valeur": "M",
        "libelle": "Monsieur",
        "libelleCourt": "M",
        "lang": "fr",
        "identifiantNomenclature": "1.2.250.1.213.1.6.1.69",
        "nomNomenclature": "TRE_R81-Civilite",
        "versionNomenclature": "20130628000000",
        "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_R81-Civilite"
      },
      "nomExercice": {
        "valeur": "XXX"
      },
      "prenomExercice": {
        "valeur": "DAVID"
      },
      "profession": {
        "valeur": "60",
        "libelle": "Infirmier",
        "libelleCourt": "Infirmier",
        "lang": "fr",
        "identifiantNomenclature": "1.2.250.1.71.1.2.7",
        "nomNomenclature": "TRE_G15-ProfessionSante",
        "versionNomenclature": "20120618000000",
        "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_G15-ProfessionSante"
      },
      "categorieProfessionnelle": {
        "valeur": "C",
        "libelle": "Civil",
        "libelleCourt": "Civil",
        "lang": "fr",
        "identifiantNomenclature": "1.2.250.1.213.1.6.1.10",
        "nomNomenclature": "TRE_R09-CategorieProfessionnelle",
        "versionNomenclature": "20080320092455",
        "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle"
      },
      "nomComplet": {
        "valeur": "XXXX DAVID"
      },
      "situationExercice": {
        "identifiantEG": {
          "valeur": "XXXXXX"
        },
        "denominationEG": {
          "valeur": "CABINET XXXXX DAVID"
        },
        "adresse": {
          "adresseGeocodee": {
            "valeur": "12 rue des lilas 33000 Bordeaux"
          },
          "adresseComplete": {
            "valeur": "12 rue des lilas 33000 Bordeaux"
          },
          "location": {
            "lat": 43.013235,
            "lon": 1.344305
          },
          "exacteLocationGps": true,
          "numeroVoie": {
            "valeur": "12"
          },
          "libelleVoie": {
            "valeur": "rue des lilas"
          },
          "codePostal": {
            "valeur": "33000"
          },
          "localite": {
            "valeur": "Bordeaux"
          },
          "internationPays": {
            "valeur": "99000"
          },
          "cogcommune": {
            "valeur": "33063",
            "libelle": "Bordeaux",
            "nomNomenclature": "TRE_R13-CommuneOM"
          }
        },
        "telecommunication": [
          {
            "canal": {
              "valeur": "3",
              "libelle": "Courrier électronique",
              "libelleCourt": "MAIL",
              "nomNomenclature": "TRE_R200-CanalCommunication"
            },
            "adresseTelecom": {
              "valeur": "xxxx@infirmier.xx.mssante.fr"
            },
            "typeMessagerie": {
              "valeur": "MSSANTE",
              "libelle": "MSSANTE",
              "libelleCourt": "MSSANTE",
              "nomNomenclature": "TRE_R256-TypeMessagerie"
            },
            "utilisation": {
              "valeur": "PER"
            }
          }
        ],
        "secteurActivite": {
          "valeur": "SA07",
          "libelle": "Cabinet individuel",
          "libelleCourt": "Cabinet individuel",
          "lang": "fr",
          "identifiantNomenclature": "1.2.250.1.71.4.2.4",
          "nomNomenclature": "TRE_R02-SecteurActivite",
          "versionNomenclature": "20070725150444",
          "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_R02-SecteurActivite"
        }
      },
      "modeExercice": {
        "valeur": "L",
        "libelle": "Libéral, indépendant, artisan, commerçant",
        "libelleCourt": "Libéral,indép,artisan,commerç",
        "lang": "fr",
        "identifiantNomenclature": "1.2.250.1.213.1.6.1.18",
        "nomNomenclature": "TRE_R23-ModeExercice",
        "versionNomenclature": "20070725150443",
        "urinomenclature": "https://mos.esante.gouv.fr/NOS/TRE_R23-ModeExercice"
      }
    },
    {},
    {},
    {},
    {}
  ],
  "pageable": {
    "sort": {
      "unsorted": false,
      "sorted": true,
      "empty": false
    },
    "pageNumber": 0,
    "pageSize": 5,
    "offset": 0,
    "paged": true,
    "unpaged": false
  },
  "last": true,
  "totalPages": 1,
  "totalElements": 5,
  "sort": {
    "unsorted": false,
    "sorted": true,
    "empty": false
  },
  "first": true,
  "number": 0,
  "numberOfElements": 5,
  "size": 5,
  "empty": false
}