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:
- framagit.org/terminos/irene/-/blob/main/finess/doc/README.md
- framagit.org/terminos/irene/-/blob/main/finess/doc/README-jsom.md
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
- API “Identification de bâtiment” par “address” et par “point”
- API de recherche de bâtiments par “Bounding box”
- API de récupération des détails d’un bâtiment
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
- geo.api.gouv.fr
- gateway.api.esante.gouv.fr/fhir
- api.gouv.fr/les-api/base-adresse-nationale
- adresse.data.gouv.fr/api-doc/adresse
- smt.esante.gouv.fr/fhir/CodeSystem/
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.22274483202441finesset_longitude
: longitude de l’ES en WGS84 issue de la conversion depuis les données FINESS, ex. 5.2085961326419605rnb_id
: id RNB proposé par l’algorithme d’alignement, ex. “QBAAG16VCJWA”rnb_score
: score “interne” assigné à l’alignement RNB proposé, ex. 1.0rnb_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-relationshiprnb_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.