# Un avertissement de conservation légale sur un dossier médical qui expire

> Signaler dans l'administration les dossiers dont le délai réglementaire de conservation approche de sa fin évite un oubli aux conséquences juridiques réelles.

- Auteur : Clément Hadrot
- Publié le : 2025-05-14
- Mis à jour le : 2025-05-14
- Catégorie : Tips
- URL : https://wpmoderne.dev.wordpress-developpement.fr/tips/avertissement-conservation-legale-dossier-medical/

## L’essentiel

- Calcul de l'échéance à la création du dossier, pas à chaque affichage
- Bandeau d'alerte gradué selon la proximité de l'échéance
- Export d'audit mensuel pour le responsable conformité

« Les données de santé à caractère personnel ne doivent pas être conservées au-delà de la durée strictement nécessaire aux finalités pour lesquelles elles ont été collectées », rappelle la doctrine de la CNIL sur les durées de conservation en santé. Pour un cabinet de kinésithérapie utilisant une extension métier maison bâtie sur WordPress pour la gestion de ses dossiers patients, cette phrase s'est traduite très concrètement par une demande simple : ne plus jamais découvrir, six mois trop tard, qu'un dossier aurait dû être purgé ou archivé.

Voici la checklist que nous avons construite avec le responsable conformité du cabinet, dans l'ordre où chaque étape a été implémentée, avec les raisons de cet ordre précis.

## 1. Fixer une échéance dès la création du dossier

La première erreur à éviter est de calculer l'échéance de conservation au moment de l'affichage : cela oblige à recalculer la même date à chaque chargement de page, pour un résultat identique. L'échéance doit être posée une seule fois, en meta du dossier, dès sa création, avec la durée réglementaire applicable au type de document.

```
function agence_fixer_echeance_conservation( int $dossier_id, string $type_document ) {
    $durees = array(
        'consultation'  => 20, // années
        'bilan_initial' => 20,
        'facturation'   => 10,
    );

    $duree = $durees[ $type_document ] ?? 10;
    $echeance = strtotime( "+{$duree} years", get_the_date( 'U', $dossier_id ) );

    update_post_meta( $dossier_id, '_agence_echeance_conservation', $echeance );
}
```

## 2. Distinguer trois seuils d'alerte, pas un seul

> L'essentiel à retenir : Calcul de l'échéance à la création du dossier, pas à chaque affichage ; Bandeau d'alerte gradué selon la proximité de l'échéance ; Export d'audit mensuel pour le responsable conformité

Un simple message binaire « expiré / non expiré » laisse trop peu de temps pour agir. Trois seuils gradués donnent au responsable conformité une marge de manœuvre réaliste :

1. **Quatre-vingt-dix jours avant l'échéance** : mention discrète dans la colonne dédiée de la liste des dossiers.
2. **Trente jours avant l'échéance** : bandeau orange visible dans le dossier lui-même, avec un lien vers la procédure d'archivage interne.
3. **Échéance dépassée** : bandeau rouge non permanent, rappelé une fois par semaine par e-mail tant que le dossier n'a pas été traité.

## 3. Planifier une vérification quotidienne, pas manuelle

Une tâche `wp_schedule_event` quotidienne parcourt l'ensemble des dossiers actifs, compare leur échéance à la date du jour, et met à jour une meta de statut consultée ensuite par l'affichage :

```
add_action( 'agence_verification_echeances', 'agence_verifier_echeances_dossiers' );

function agence_verifier_echeances_dossiers() {
    $dossiers = get_posts( array(
        'post_type'   => 'dossier_patient',
        'numberposts' => -1,
        'meta_key'    => '_agence_echeance_conservation',
    ) );

    foreach ( $dossiers as $dossier ) {
        $echeance = (int) get_post_meta( $dossier->ID, '_agence_echeance_conservation', true );
        $jours_restants = ( $echeance - time() ) / DAY_IN_SECONDS;

        $statut = 'ok';
        if ( $jours_restants <= 0 ) {
            $statut = 'expire';
        } elseif ( $jours_restants <= 30 ) {
            $statut = 'alerte';
        } elseif ( $jours_restants <= 90 ) {
            $statut = 'a_surveiller';
        }

        update_post_meta( $dossier->ID, '_agence_statut_conservation', $statut );
    }
}
```

## 4. Ajouter une colonne dédiée dans la liste des dossiers

Via `manage_dossier_patient_posts_columns` et son pendant `manage_dossier_patient_posts_custom_column`, une colonne « Conservation » affiche le statut calculé, triable, pour que le responsable conformité puisse filtrer d'un coup d'œil les dossiers à traiter en priorité.

## 5. Prévoir un export mensuel pour la traçabilité

Un rapport CSV, généré automatiquement le premier de chaque mois et envoyé par e-mail au responsable conformité, liste tous les dossiers passés en statut « alerte » ou « expiré » durant le mois écoulé, avec la date et l'action réalisée si elle a été renseignée. Ce document sert de preuve de diligence en cas de contrôle.

## 6. Ne jamais automatiser la suppression elle-même

Dernier point, non négociable avec le cabinet : le système alerte, il ne supprime rien automatiquement. La décision d'archiver, d'anonymiser ou de purger un dossier reste une action humaine et documentée, l'automatisation se limitant strictement à la détection de l'échéance.

> Un système d'alerte réglementaire qui agit tout seul finit toujours par supprimer, un jour, ce qu'il n'aurait pas fallu supprimer. Mieux vaut un humain qui clique en connaissance de cause.

## Pour aller plus loin

Cette mécanique de seuils gradués, calculée en amont et vérifiée quotidiennement par une tâche planifiée, s'applique à bien d'autres obligations de conservation : contrats commerciaux, factures, ou données RH. Seule change la durée réglementaire associée à chaque type de document.
