SuperPagr

Groupes de membres et règles avancées

Dans un service hospitalier, les contraintes de planning ne s'appliquent pas uniformément à tout le monde : un senior ne peut pas faire trop de nuits de suite, un interne doit être supervisé, une collègue enceinte est exemptée de certaines gardes, un FFI ne peut prendre certaines responsabilités. Le module Groupes de membres permet de modéliser ces sous-ensembles et de leur appliquer des règles spécifiques ou inter-groupes.

Pourquoi grouper les membres

Sans groupes, chaque règle particulière demande de nommer chaque membre concerné individuellement, ce qui devient ingérable au-delà de 5 personnes. Avec les groupes :

  • on déclare une fois "qui est senior" et "qui est junior"
  • on applique des règles au groupe entier (pas à chaque membre)
  • les nouveaux arrivants héritent automatiquement des contraintes du groupe
  • le solveur d'attribution respecte les contraintes de groupe lors de la génération

Créer un groupe de membres

Depuis Planning > Participants > Groupes > Nouveau groupe :

  • Nom (ex : Seniors, Juniors, FFI, Femmes enceintes, Internes phase socle)
  • Description courte
  • Couleur (pour la visualisation dans les calendriers)

Ajouter ou retirer des membres

Une fois le groupe créé, ouvrez sa fiche et utilisez Ajouter des membres. Sélectionnez parmi les participants du planning. Un même membre peut appartenir à plusieurs groupes (ex : "Senior" et "Femme enceinte").

Règles intra-groupe

Une règle intra-groupe s'applique à l'intérieur du groupe : tous les membres du groupe sont soumis aux mêmes contraintes.

Exemples typiques

  • Seniors : maximum 1 nuit par semaine
  • Juniors : minimum 1 garde supervisée par senior tous les 7 jours
  • Femmes enceintes : aucune garde après 22h
  • FFI : pas plus de 2 gardes consécutives

Configurer une règle intra-groupe

Depuis Planning > Participants > Groupes > [groupe] > Règles :

  1. Type de règle (durée max, nombre max, espacement min)
  2. Paramètres (seuil, période, types de shifts concernés)
  3. Niveau (hard / soft)

Une règle hard est respectée absolument par le solveur ; une règle soft est minimisée mais peut être violée si nécessaire avec un coût.

Règles inter-groupes

Les règles inter-groupes définissent des contraintes entre deux groupes différents. C'est le mécanisme le plus puissant pour modéliser une équipe à plusieurs niveaux.

Exemples typiques

  • Senior + Junior : à chaque garde du junior, un senior doit être de garde simultanément
  • Internes phase socle + Internes phase approfondissement : pas plus de deux internes même phase en même temps
  • Médecins étrangers en stage + Médecin traducteur : doivent être appariés sur les gardes des premiers mois

Configurer une règle inter-groupes

Depuis Planning > Règles > Inter-groupes > Nouvelle règle :

  1. Sélectionner le groupe A (ex : Juniors)
  2. Sélectionner le groupe B (ex : Seniors)
  3. Choisir le type de relation :
    • Co-présence : un membre de B doit être présent à chaque garde de A
    • Exclusion mutuelle : pas de membre de A et B en même temps
    • Ratio : ex 1 senior pour 2 juniors
  4. Définir le niveau (hard / soft) et le coût si soft

Règles de placement individuel

Au-delà des groupes, certaines contraintes restent individuelles. Le module Règles de placement par participant permet de :

  • forcer un participant à être de garde une date donnée (ex : couvrir un événement spécifique)
  • interdire une période (ex : congé sans solde déjà acté)
  • préférer un placement (ex : grouper les gardes du Dr X en début de mois pour libérer la fin)

Configurer une règle individuelle

Depuis Planning > Participants > [participant] > Règles de placement :

  • Type (forcer, interdire, préférer)
  • Période (date unique, plage)
  • Roulements concernés (un, plusieurs, ou tous)
  • Motif (texte libre, archivé pour traçabilité)

Ces règles sont prises en compte par le solveur d'attribution automatique avec une priorité supérieure aux règles de groupe.

Articulation et priorité

Quand plusieurs règles s'appliquent au même participant, le solveur applique les priorités suivantes :

  1. Règles de placement individuel (les plus spécifiques)
  2. Règles inter-groupes où le participant est concerné
  3. Règles intra-groupe des groupes auxquels il appartient
  4. Règles globales du planning (intra/inter-roulement classiques)

En cas de conflit entre règles hard, le solveur déclare le planning infaisable et fournit un certificat d'infaisabilité. En cas de conflit entre règles soft, il minimise la somme pondérée des coûts.

Visualisation et debug

Depuis Planning > Règles > Vue d'ensemble, vous voyez le graphe complet des règles appliquées :

  • chaque groupe est un nœud
  • chaque règle inter-groupe est une arête
  • les règles intra apparaissent comme attributs des nœuds
  • les conflits potentiels sont mis en évidence

Cette vue est précieuse pour comprendre pourquoi un planning est infaisable ou pourquoi une attribution surprenante a été choisie.

Cas d'usage

Service de réanimation : seniors / juniors

Deux groupes principaux. Règle inter-groupe : "à chaque garde junior, un senior co-garde". Règles intra : seniors max 8 nuits par mois, juniors max 12. Le solveur respecte ces contraintes lors de la génération.

Service de gynécologie avec médecins enceintes

Un groupe "Femmes enceintes" recevant une règle intra : "aucune garde après 22h". Quand une membre quitte le groupe (post-accouchement), elle redevient automatiquement éligible à toutes les gardes.

Pédiatrie multi-niveaux

Quatre groupes (DESM phase 1, 2, 3 et chefs). Règles inter-groupes complexes : superviseurs requis, ratios maintenus. Les nouveaux arrivants chaque semestre sont ajoutés au groupe correspondant et héritent immédiatement des règles.

Articulation avec les autres modules

Pour aller plus loin