Datathon InterHop 2024 - FINESS+

Créer un référentiel FINESS amélioré aligné sur le Référentiel National du Batiment

Introduction

La santé prend le virage des parcours coordonnés de soin. Cette ambition nécessite d’avoir des données concernant l’offre de soin qui soient à jour.

Il s’agit, à terme, de tenir à jour les données géographiques élémentaires (géolocalisation des 100 000 établissements de soins recensés au FINESS) dans des systèmes ouverts comme OpenStreetMap (OSM) de sorte que ces informations restent exactes et interopérables (tags et iconographies documentés et à jour).

Ce maintien à jour pourra être fait (au moins en partie) au sein de l’association Toobib.org et de sa plateforme éponyme.

Le datathon de Rennes est l’occasion de créer un référentiel FINESS amélioré aligné sur le Référentiel National du Batiment (RNB).

Un tel alignement doit permettre:

  • d’identifier des problèmes de qualité dans le FINESS sur les champs adresses ou sur les champs de géolocalisations
  • de proposer des corrections sur les champs adresses ou sur les champs de géolocalisations
  • d’accéder via l’identifiant pivot rnb_id à des référentiels métiers plus complets dans leurs domaines respectifs (BDTOPO batiment…) en vue d’obtenir des informations utiles supplémentaires au secteur de la santé (performances énergétiques des bâtiments par GHT, données d’accessibilité, présence d’ascenceurs…) et de démontrer l’intérêt des données liées.

La faisabilité d’un tel alignement est “visualisable” avec QGIS par exemple.

Ce FINESS+ servira de base aux implémentations Toobib mentionnées plus haut requêter les pharmacies sur un territoire donné par exemple et de base de discussions avec les différents responsables des référentiels source en vue de les améliorer.

Matériels et méthodes

Le challenge retenu consiste donc à aligner le FINESS et le RNB. Cette section synthétise les informations essentielles à connaître sur ces référentiels.

FINESS

Description du FINESS

Voir par exemple:

Données géolocalisées du FINESS

Des données récentes géolocalisées du FINESS sont disponibles dans ce .zip au format GeoJSON en WGS84.

Les données FINESS au format OWL et OMOP sont disponibles sur framagit.org/terminos/irene/-/blob/main/finess.

Traitement du FINESS en Python

Le code source du projet BQSS de la HAS traite le fichier FINESS en Python, avec notamment :

def convert_coordinates_to_wgs84(finess_df: pd.DataFrame) -> pd.DataFrame:
    ...

Sa documentation est disponible ici.

Traitement du FINESS en R

Le projet FINESS etalab traite le FINESS avec R.

Référentiel National des Bâtiments (RNB)

Description du RNB

Le site du RNB pointe vers la documentation technique facilitant l’utilisation du RNB et de ses API, sachant que la création du RNB a nécessité un travail de définition du bâtiment.

Données du RNB

Le RNB est disponible en téléchargement CSV sur le site data.gouv.fr.

Les champs sont les suivants :

Champs Type et Taille Description
rnb_id varchar(12) L’identifiant RNB du bâtiment
point geometry eWKT La géométrie d’un point sur le bâtiment
shape geometry eWKT La géométrie du bâtiment
status varchar() Le statut du bâtiment
ext_ids json Identifiants du bâtiment dans la BDNB et la BDTOPO
addresses array Tableau des adresses du bâtiment
code_dept varchar(3) (optionnel, fonction export national versus export par département) Code du département du point

Exemple de géométrie ponctuelle au format eWKT :

SRID=4326;POINT(5.057550620559569 45.84776805257559)

API RNB

Référentiel BD TOPO

Description de la BD TOPO

Disponible en PDF et notamment BDTOPO Batiment page 63.

Données de la BD TOPO

La BD TOPO est alignée sur le RNB (champ “identifiants_rnb”).

Ses champs pour le volet “bâtiments” sont :

Champ Type
cleabs xsd:string
nature xsd:string
usage_1 xsd:string
usage_2 xsd:string
construction_legere xsd:boolean
etat_de_l_objet xsd:string
date_creation xsd:dateTIme
date_modification xsd:dateTIme
date_d_apparition xsd:date
date_de_confirmation xsd:date
sources xsd:string
identifiants_sources xsd:string
methode_d_acquisition_planimetrique xsd:string
methode_d_acquisition_altimetrique xsd:string
precision_planimetrique xsd:double
precision_altimetrique xsd:double
nombre_de_logements xsd:int
nombre_d_etages xsd:int
materiaux_des_murs xsd:string
materiaux_de_la_toiture xsd:string
hauteur xsd:double
altitude_minimale_sol xsd:double
altitude_minimale_toit xsd:double
altitude_maximale_toit xsd:double
altitude_maximale_sol xsd:double
origine_du_batiment xsd:string
appariement_fichiers_fonciers xsd:string
identifiants_rnb xsd:string

Ces données sont disponibles par département et par thèmes sur le site de l’IGN.

API BD TOPO

Voir la doc irene/finess pour l’intégration de BDTOPO dans QGis par exemple.

Autres données et API d’intérêt

Outils d’intérêts

GIS (Geographic information system) : jOSM et QGIS.

Résultats

L’algorithme d’alignement produit un CSV FINESS auquel est ajouté les 6 colonnes suivantes:

  • finesset_latitude : latitude de l’ES en WGS84 issue de la conversion depuis les données FINESS, ex. 46.22274483202441
  • finesset_longitude : longitude de l’ES en WGS84 issue de la conversion depuis les données FINESS, ex. 5.2085961326419605
  • rnb_id : id RNB proposé par l’algorithme d’alignement, ex. “QBAAG16VCJWA”
  • rnb_score : score “interne” assigné à l’alignement RNB proposé, ex. 1.0
  • rnb_relation : relation d’alignement proposée par l’algorithme, prise dans le jeu de valeur hwww.hl7.org/fhir/valueset-concept-map-relationship.html union build.fhir.org/valueset-iana-link-relations.html, ex. hl7.org/fhir/concept-map-relationship
  • rnb_algo : GUID identifiant l’algorithme utilisé pour proposer l’alignement RNB, ex. “a174b42a-f2ff-49cc-9765-37b28cf3737a”

Le nom du fichier de sortie est du type :

etalab-cs1100507-stock-20240717-0337___RNB_datagouvfr_publication_2024-03-07_16-28-06.csv (concatenation via des ___ des x fichiers sources utilisés).

Le fichier de sortie est un CSV encodé en UTF-8 qui contient donc les colonnes suivantes:

Colonne Remarque
structureet
nofinesset
nofinessej
rs
rslongue
complrs
compldistrib
numvoie
typvoie
voie
compvoie
lieuditbp
commune
departement
libdepartement
ligneacheminement
telephone
telecopie
categetab
libcategetab
categagretab
libcategagretab
siret
codeape
codemft
libmft
codesph
libsph
dateouv
dateautor
datemaj
numuai
finesset_latitude latitude de l’ES en WGS84 issue de la conversion depuis les données FINESS, ex. 46.22274483202441
finesset_longitude longitude de l’ES en WGS84 issue de la conversion depuis les données FINESS, ex. 5.2085961326419605
rnb_id id RNB proposé par l’algorithme d’alignement, ex. “QBAAG16VCJWA”
rnb_score score “interne” assigné à l’alignement RNB proposé, ex. 1.0
rnb_relation relation d’alignement proposée par l’algorithme, prise dans le jeu de valeur (hl7.org/fhir/valueset-concept-map-relationship.html unionbuild.fhir.org/valueset-iana-link-relations.html), ex. {“system”: “hl7.org/fhir/concept-map-relationship”, “code”:“equivalent”, “display”:“Equivalent”}
rnb_algo GUID identifiant l’algorithme utilisé pour proposer l’alignement RNB, ex. “a174b42a-f2ff-49cc-9765-37b28cf3737a”

Le code source produit est mis à disposition sur framagit LOv2 à l’adresse suivante framagit.org/interhop/challenges/datathon-2024.

Les ressources produites alimenteront les pages “réutilisation de données” de data.gouv.fr pour les référentiels utilisés (FINESS, RNB, BDTOPO…) mentionnant les pages du datathon.

Une mesure de la performance de l’alignement (F-Measure) est proposée.

Discussion

Le choix de l’implémentation de l’algorithme est libre :

  • langage de programmation utilisé
  • “pipe” d’alignement : via l’adresse, puis via les coordonnées WGS83, ou l’inverse, en best effort sur le Bounding box, par approche lexicale ou structurelle, par proximité sémantique, par apprentissage / embedding…
  • l’ajout de colonnes supplémentaires est possible (pour signifier la détection d’un problème dans les données FINESS d’origine, pour debugger, pour proposer une correction, pour préciser la source / le JSONPath de l’alignement proposé…)

L’exercice peut être limité lors du datathon à un sous-ensemble de données (par exemple à un département ou une région) si l’exercice devait s’avérer être trop long en temps d’exécution. Dans ce cas, l’algorithme conçu doit démontrer sa scalabilité potentielle (mesure du temps d’exécution, règles de 3/anticipation des temps sur les datasets complets).

L’exercice peut être complété par le même type d’exercice d’alignement sur le RPPS afin d’avoir une base de données géolocalisée de “lieux de soins”.

Passé le datathon, le travail peut être complété (alignement avec les ressources européennes de INSPIRE, définition de référentiels syntaxiques “communs” - FHIR address, schema.org/Place ou schema.org/Organization…) et faire l’objet d’une publication.

Dernière modification 14.10.2024: Update README #5 (40becc8)