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 :
- Type de règle (durée max, nombre max, espacement min)
- Paramètres (seuil, période, types de shifts concernés)
- 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 :
- Sélectionner le groupe A (ex : Juniors)
- Sélectionner le groupe B (ex : Seniors)
- 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
- 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 :
- Règles de placement individuel (les plus spécifiques)
- Règles inter-groupes où le participant est concerné
- Règles intra-groupe des groupes auxquels il appartient
- 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
- Participants — gestion des membres avant groupage
- Règles de planning — règles globales intra/inter-roulement
- Attribution — comment le solveur respecte les groupes
- Compétences — alternative aux groupes pour modéliser une habilitation
Pour aller plus loin
- Démarrage rapide
- Glossaire — définitions hard/soft constraint, ratio, groupe