Le WordPress d'aujourd'hui, décodé pour les développeurs

Blocs Gutenberg

Bloc pour cabinet médical : rendez-vous conforme RGPD, sans plugin lourd

Retour sur un bloc dynamique de prise de contact pour un cabinet médical, pensé pour minimiser les données collectées plutôt que pour tout stocker par défaut.

Par WordPress Développement • 27 février 2021 • 4 min de lecture • Aucun commentaire
Bloc pour cabinet médical : rendez-vous conforme RGPD, sans plugin lourd

Un cabinet de kinésithérapie souhaitait un formulaire de prise de contact permettant à un patient de demander un rendez-vous, sans passer par un système de réservation en ligne complexe. La première maquette du client comportait onze champs, dont un champ libre « décrivez votre motif de consultation » — une donnée de santé au sens du RGPD, à ne jamais collecter sans base légale et sécurité renforcées correspondantes.

Le bloc finalement livré s’en tient à quatre champs : nom, téléphone, créneau souhaité, et un message optionnel volontairement recadré par un texte d’aide qui décourage toute mention de symptômes. Ce choix illustre un principe simple du RGPD trop souvent ignoré en phase de conception : on ne collecte que ce qui est nécessaire à la finalité annoncée, pas ce qui pourrait « être utile un jour ».

Le principe de minimisation appliqué à un formulaire de rendez-vous

L’article 5 du RGPD pose le principe de minimisation des données : elles doivent être « adéquates, pertinentes et limitées à ce qui est nécessaire ». Pour organiser un rendez-vous, un nom et un moyen de contact suffisent largement. Le motif de consultation, lui, relève du secret médical et n’a pas sa place dans un formulaire web non sécurisé au niveau attendu pour une donnée de santé.

Ce recadrage s’est fait en amont du développement, lors d’un échange avec le cabinet, qui envisageait initialement ce champ comme un gain de temps pour la praticienne. La solution retenue a consisté à conserver l’appel téléphonique pour toute précision médicale, le formulaire ne servant qu’à fixer un premier contact.

Structure du bloc

Le bloc reste volontairement simple côté attributs : aucun champ de configuration n’autorise l’ajout d’un champ libre supplémentaire côté éditeur, pour éviter qu’une bonne intention future ne réintroduise une collecte excessive.

{
  "apiVersion": 2,
  "name": "wpmoderne/prise-contact-cabinet",
  "title": "Prise de contact cabinet",
  "attributes": {
    "creneauxDisponibles": { "type": "array", "default": [] }
  },
  "render_callback": "wpmoderne_render_prise_contact"
}
L'essentiel à retenir : Collecte réduite au strict nécessaire pour organiser un rendez-vous ; Champs de motif de consultation volontairement absents ; Suppression automatique des demandes traitées après 30 jours

Traitement de la demande côté serveur

Les données soumises sont stockées dans un type de contenu personnalisé demande-rdv, avec un statut qui évolue de en-attente à traitee une fois la praticienne recontactée. Aucune donnée n’est transmise à un service tiers d’analyse ou de marketing.

function wpmoderne_enregistrer_demande_rdv( WP_REST_Request $request ) {
    $demande_id = wp_insert_post( array(
        'post_type'   => 'demande-rdv',
        'post_status' => 'publish',
        'post_title'  => sanitize_text_field( $request->get_param( 'nom' ) ),
        'meta_input'  => array(
            'telephone' => sanitize_text_field( $request->get_param( 'telephone' ) ),
            'creneau'   => sanitize_text_field( $request->get_param( 'creneau' ) ),
            'statut'    => 'en-attente',
        ),
    ) );

    return array( 'succes' => (bool) $demande_id );
}

Suppression automatique après traitement

Une tâche planifiée quotidienne (wp_schedule_event) supprime définitivement les demandes marquées comme traitées depuis plus de trente jours, une durée de conservation courte, cohérente avec la finalité unique du formulaire : organiser un rendez-vous, pas constituer un fichier client.

  • Aucune demande n’est conservée « au cas où » au-delà de ce délai.
  • La praticienne reçoit un e-mail récapitulatif immédiat, qui ne transite pas par un service d’envoi tiers non couvert par un accord de sous-traitance adapté.
  • Une mention claire sous le formulaire indique la finalité de la collecte et la durée de conservation, conformément à l’obligation d’information du RGPD.

Ce que ce bloc ne couvre pas

La téléconsultation, qui implique un tout autre niveau d’exigence technique (visioconférence chiffrée, authentification du patient), ne fait pas partie de ce périmètre. Le stockage de données de santé structurées, qui relèverait d’un hébergement certifié HDS (Hébergeur de Données de Santé), sort également du cadre : ce formulaire, précisément, a été conçu pour ne jamais avoir à en dépendre.

Notre verdict

Le meilleur formulaire RGPD n’est pas celui qui coche le plus de cases de conformité après coup, mais celui qui ne collecte tout simplement pas ce qui n’est pas nécessaire. Pour ce cabinet, quatre champs bien choisis ont suffi à remplacer une solution plus riche en apparence, mais plus risquée sur le fond.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi