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 “Dossier des Spécifications Fonctionnelles et Techniques Fichiers d’extraction des données en libre accès de l’annuaire esanté.fr” [ANN1]. ANN 1.1 L’éditeur doit exécuter le scénario de conformité suivant : 1. Charger les données en libre accès sur le site https://annuaire.sante.fr (Extractions des données en libre accès des professionnels de santé)
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 #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"
}

Preuve

ANN.1.1.1

Dans le cas d’usage du téléchargement : fournir un exemple de log du chargement du fichier

2025-07-17 12:16:54.909  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ################# ImportAnnuaireProTask start
2025-07-17 12:16:54.910  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ####### downloadSourceFileTask start
2025-07-17 12:16:54.912  INFO 49872 --- [           main] f.d.a.loader.DownloadSourceFileTask      : download in C:\Users\djidj\AppData\Local\Temp\/asip.csv.zip from https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/PS_LibreAcces
2025-07-17 12:16:54.925  INFO 49872 --- [           main] f.d.a.loader.DownloadSourceFileTask      : save file ....
2025-07-17 12:17:58.122  INFO 49872 --- [           main] f.d.a.loader.DownloadSourceFileTask      : unzip PS_LibreAcces_Personne_activite
2025-07-17 12:18:05.939  INFO 49872 --- [           main] f.d.a.loader.DownloadSourceFileTask      : download file done (C:\Users\djidj\AppData\Local\Temp\/asip.csv / https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/PS_LibreAcces)
2025-07-17 12:18:05.939  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ####### downloadSourceFileTask ended
2025-07-17 12:18:07.357  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ####### loadRepositoryTask Source professionnel_demo_1752747414905 start
2025-07-17 12:18:13.419  INFO 49872 --- [           main] f.d.annuaire.utils.MsSanteUtils          : Load MS Santé DONE
2025-07-17 12:18:14.116  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulk :1, time=6755
2025-07-17 12:18:14.517  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulked :1, time=401
2025-07-17 12:18:29.523  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulk :2001, time=15006
2025-07-17 12:18:32.386  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulked :2001, time=2863
…
2025-07-17 12:44:47.955  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulked :2140001, time=1788
2025-07-17 12:44:48.013  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulk :2142001, time=58
2025-07-17 12:44:49.333  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulked :2142001, time=1320
2025-07-17 12:44:49.388  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulk :2144001, time=55
2025-07-17 12:44:50.622  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : Bulked :2144001, time=1234
2025-07-17 12:44:51.050  INFO 49872 --- [           main] f.d.annuaire.loader.LoadAnnuaireProTask  : LoadAnnuaireProTask DONE
2025-07-17 12:44:51.052  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ####### loadRepositoryTask Sourceprofessionnel_demo_1752747414905 ended
2025-07-17 12:44:51.308  INFO 49872 --- [           main] f.d.a.loader.SituationExerciceProTask    : *******************SituationExerciceProTask DONE**********************
2025-07-17 12:44:51.308  INFO 49872 --- [           main] f.d.a.loader.ImportAnnuaireProTask       : ###################### update professionnel_demo_1752747414905 ended
2025-07-17 12:44:55.025  INFO 49872 --- [           main] f.d.a.s.mail.ToolBoxMessageService       : send mail to contact@devcoop.fr subject [Annuaire] Import Professionnel success
ANN.4.1.1

Fournir une vidéo montrant le paramétrage de la fréquence de chargement de l’annuaire

Vidéo (Accès à nous demander)

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 à effectuer depuis votre application

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
}

Preuve

ANN.5.1.1

Etre en capacité de montrer que le service appelle les services de publication des adresses MSSanté depuis la source de référence pour les adresses MSSanté

2025-07-17 15:43:57.913  INFO 36792 --- [           main] f.d.annuaire.ImportMsSanteTaskTest       : Started ImportMsSanteTaskTest
2025-07-17 15:43:58.694  INFO 36792 --- [           main] f.d.a.loader.ImportAnnuaireMsSanteTask   : ################# ImportAnnuaireMssanteTask start
2025-07-17 15:43:58.694  INFO 36792 --- [           main] f.d.a.loader.ImportAnnuaireMsSanteTask   : ####### downloadSourceFileTask start
2025-07-17 15:43:58.701  INFO 36792 --- [           main] f.d.a.loader.DownloadSourceFileTask      : download in C:\Users\djidj\AppData\Local\Temp\/mssante.txt.zip from https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/Extraction_Correspondance_MSSante
2025-07-17 15:43:58.715  INFO 36792 --- [           main] f.d.a.loader.DownloadSourceFileTask      : save file ....
2025-07-17 15:44:04.151  INFO 36792 --- [           main] f.d.a.loader.DownloadSourceFileTask      : unzip Extraction_
2025-07-17 15:44:04.816  INFO 36792 --- [           main] f.d.a.loader.DownloadSourceFileTask      : download file done (C:\Users\djidj\AppData\Local\Temp\mssante.txt / https://service.annuaire.sante.fr/annuaire-sante-webservices/V300/services/extraction/Extraction_Correspondance_MSSante)
2025-07-17 15:44:04.816  INFO 36792 --- [           main] f.d.a.loader.ImportAnnuaireMsSanteTask   : ####### downloadSourceFileTask ended
2025-07-17 15:44:06.017  INFO 36792 --- [           main] f.d.a.loader.ImportAnnuaireMsSanteTask   : ####### loadRepositoryTask Sourcemssante_1752759838685 start
2025-07-17 15:44:06.477  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :1
2025-07-17 15:44:12.181  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :5001
2025-07-17 15:44:15.721  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :10001
2025-07-17 15:44:18.470  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :15001
2025-07-17 15:44:21.359  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :20001
...
2025-07-17 15:49:11.725  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :535001
2025-07-17 15:49:14.327  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :540001
2025-07-17 15:49:17.258  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Bulk :545001
2025-07-17 15:49:21.246  INFO 36792 --- [           main] f.d.a.loader.LoadAnnuaireMsSanteTask     : Load MS Santé DONE
2025-07-17 15:49:21.247  INFO 36792 --- [           main] f.d.a.loader.ImportAnnuaireMsSanteTask   : ####### loadRepositoryTask Sourcemssante_1752759838685 ended
2025-07-17 15:49:23.548  INFO 36792 --- [           main] f.d.a.s.mail.ToolBoxMessageService       : send mail to contact@devcoop.fr subject [Annuaire] Import MsSante success