Introduction

L’objectif de ce document est de communiquer le métier de gestion des stages au sein de la faculté de médecine et de décrire le fonctionnement de l’application développée dans le but d’optimiser la charge de travail consacrée à l’affectation des stages.

Le document est organisé en deux parties:

  1. Les fonctionalités: la description du métier et comment celui-ci est couvert par l’application. Cette partie se concentre sur les activités du personnel administratif sur la gestion des stages de médecine.

  2. La platforme: la description technique de l’architecture logicielle, destinée aux développeurs qui prendront en charge la maintenance technique de l’application.

Ce document est très important pour le bon déroulement de l’application. Il s’est récemment prouvé utile pour la création annuelle de la cohorte par les utilisateurs, qui ont pu réaliser cela en toute autonomie. Chaque nouvelle personne qui débarque dans le projet se trouve confrontée aux mêmes questions ses prédécesseurs. Si celui-ce est bien fait et bien maintenu, ce document aidera la faculté de médecine à faire évoluer son application proprement et continuellement, indépendamment des changements apportés au sein de l’équipe, tout en protégeant l’investissement déjà accompli. Pour que la documentation soit tenue à jour, le personnel technique doit l’actualiser chaque fois qu’une modification affecte le comportement de l’application. De cette façon, documenter ne devient pas une tâche laborieuse.

Le contexte

La Faculté de médecine et médecine dentaire (MEDE) fait partie du Secteur des sciences de la santé (SSS) de l’Université catholique de Louvain (UCL). Leurs activités sont, en général, réalisées au campus de Woluwe, Bruxelles.

Les stages sont considérés comme une activité d’unité d’enseignement dans le programme annuelle de formation de l’université. C’est une activité complexe, gérée par la Commission de gestion des stages en médecine, qui s’assure de la qualité des stages proposés aux étudiants et fait des propositions pour leur amélioration, tant d’un point de vue de la qualité pédagogique que de celui du confort matériel et de la sécurité. Elle entretient une coordination avec le responsable académique mobilité et le responsable de la coopération avec les pays en voie de développement pour l’organisation de stages à l’étranger. Elle veille à une répartition des étudiants parmi les lieux de stages conforme à la justice, aux besoins pédagogiques individuels des étudiants, en tenant compte des besoins particuliers des divers maîtres de stage, et en veillant à un juste équilibre entre les stages extra-muros et ceux ayant lieu au sein même des cliniques universitaires. Elle apporte aux maîtres de stage son assistance pour l’évaluation des étudiants qui leur sont confiés.

Les acteurs

Les acteurs impliqués dans la gestion des stages sont:

  • les étudiants inscrits aux programmes de master en médecine

  • les gestionnaires des stages: le doyen et le personnel administratif

  • l’administrateur de système: la personne avec un rôle technique et bien informé sur le fonctionnement de l’application.

  • l’application: le logiciel responsable pour la gestion de données et des affectations automatiques.

Les acteurs sont classés en deux rôles bien distincts:

  • Gestionnaire des stages: L’accès est limité à l’application back office. Le back-office n’est accessible que dans le réseau de l’université.

  • Étudiant: L’accès est limité à l’application front-office.

  • Administrateur: Accès à l’administration des données bruts pour la resolution des problèmes non anticipés.

Une explication détaillée des applications back-office et front-office est disponible dans le chapitre 2.

1. Les fonctionnalités

1.1. L’affectation des stages

Chaque année des étudiants de la faculté de médecine doivent effectuer 12 périodes de stages (1 période par mois). Les stages sont divisés en 2 catégories:

  1. Stages obligatoires: des spécialités imposées à tous les étudiants avec des périodes de un à deux mois.

  2. Stages au choix: des spécialités au choix limités à 1 mois par spécialité. L’étudiant peut choisir 4 fois la même spécialité ou 4 spécialités différentes. La priorité est donnée aux étudiants qui présentent un concours dans la spécialité choisie pour le stage au choix. L’information concernant la spécialité du concours est fournie par l’étudiant au moment de l’inscription. Seulement 2 stages au choix sont prise en consideration pendant l’affectation. Les autres 2 choix sont des sauvegardes pour le cas ou il n’y a plus de places disponibles.

Voici le tableau qui montre un exemple des stages et leurs périodes respectives.

Table 1. Exemple de répartition des stages
Spécialité Périodes

Médecine interne (MI) 2 mois

P1, P2

Urgence (UR) 2 mois

P3, P4

Chirurgie (CH)

P5

Gynécologie-obstétrice (GO)

P6

Pédiatrie (PE)

P7

Médecine interne 1 mois

P8

Gériatrie

P9

Stages au choix

P10, P11

Pour affecter les étudiants aux différents stages offert par les hôpitaux dans les périodes bien déterminées, la faculté suivra le processus suivant une fois par an, au début de l’année, entre janvier et février:

Internship Business Process

En plus d’expliquer le business de manière explicite, le processus nous aide également à identifier les rôles et les tâches pour lesquels ils sont responsables. Avec cela, les autorisations peuvent être assignées correctement.

Voici une description détaillée des toutes les tâches du processus:

1.1.1. Création d’une cohorte

La Cohorte est utilisée pour définir la période annuelle d’organisation des stages. Cette période ne coïncide pas avec l’année académique et sa gestion est tout à fait spécifique au domaine des stages de médecine. Elle est crée un an a l’avance pour être bien planifié.

La création d’une cohorte est le premier pas vers l’affectation des stages. Presque toutes les données sont liées à celle-ci. À cette étape, le gestionnaire des stages va créer une cohorte en fournissant les informations telles que demandées par le formulaire suivant.

Création de cohort

Les dates d’ouverture et de fermeture permettent de contrôler l’accès aux inscriptions aux stages pour les étudiants disposant d’un matricule. La date de fermeture est toujours postérieure ou équivalente à la date d’ouverture. La date de publication, quant à elle postérieure à la date de fermeture des inscriptions, permet de publier les informations d’affectation aux étudiants. Après la date de publication, c’est ne plus possible d’affecter les étudiants automatiquement.

Le gestionnaire a l’option de créer une cohorte à partir d’une cohorte existante. Cela lui permet de réutiliser une bonne partie des données disponibles. Les données réutilisées sont les hôpitaux, les spécialités, les périodes, les types de stages et les maîtres de stages.

1.1.2. Importation des étudiants

Grâce à l’importation de données a partir d’un fichier XLS, il n’est pas nécessaire de demander aux étudiants de s’inscrire sur l’application. Le fichier provient de l’application de gestion de l’université et contient les étudiants inscrits sur le programme de master en médecine, essentiel pour la démarche du processus d’affectation.

Pas d’étudiant dans la cohorte

L’importation des étudiants est disponible dans la page de consultation des étudiants. En cliquant sur le bouton "Importer", une fenêtre modal s’ouvre pour permettre la sélection du fichier Excel (xlsx) disponible sur la machine de l’utilisateur. Après la sélection, cliquez sur le bouton "Importer" en bleu pour démarrer l’importation. Le temps d’importation dépend du nombre d’étudiants dans le fichier à importer.

Importation des étudiants

C’est important d’importer un fichier en format xlsx parce que l’application n’est pas compatible avec le format xls. Pour avoir un fichier xlsx à partir d’un fichier xls, vous pouvez ouvrir le ficher xls en Excel et Enregistrer sous le format xlsx en sélectionnant l’option Classeur Excel, qui est la premier dans la liste.

Convertion de xls vers xlsx

Après l’importation, les étudiants apparaissent dans la liste, comme illustré dans l’image suivante. C’est possible d’ajouter un nouveau étudiant an cliquant sur "Ajouter". C’est également possible de visualiser et modifier un étudiant existant en cliquant sur le bottom de la colonne "Détails". Plus tard dans le processus, c’est possible de modifier les choix fait par l’étudiant en cliquant sur le bottom dans la colonne "Modification des choix".

Les étudiants importés dans la cohorte
Warning

La réimportation des étudiants ira dissocier tous les étudiants existants de la cohorte, sauf les insérés à la main. Après la premier importation, c’est recommandé de maintenir les données des étudiants via les fonctionnalités disponible dans l’application.

1.1.3. Importation des offres de stages

Il est préférable de gérer les offres de stages (la quantité de places disponibles dans chaque hôpital pour chaque spécialité) dans un fichier Excel. Cette fonctionnalité permet d’exploiter les données du fichier dans l’application.

Importation des offres de stage

En cas de changement de la quantité des places disponibles, les modifications sont faites dans le même fichier Excel et réimportés dans l’application. En option, les quantités peuvent être modifiés directement dans l’application, mais en cas de réimportation du fichier Excel les données modifiés manuellement seront écrasés.

Le fichier Excel avec des places disponibles
Note
Malgré l’ordre d’importation de données afficher dans le processus et documenté dans les sections 1.1.2 et 1.1.3, les étudiants et les offres peuvent être importé n’importe en quel ordre, parce que les données ne sont pas initialement associés. Ils seront associés seulement après les choix et les affectations des étudiants.

1.1.4. Définition des périodes, des hôpitaux et des stages

Avec l’intention d’organiser la cohorte pour permettre le bon choix des étudiants est l’affectation en suite, le gestionnaire des stages s’occupe de déterminer les dates de debut et fin de la période des choix des stages et la date de début de publication des résultats. Les dates sont déterminés dans l’écran d’édition de la cohorte.

Warning
Les quatre dernières tâches (1.1.1, 1.1.2, 1.1.3, 1.1.4) devraient se terminer avant la date de debut de la période de choix des stages.

1.1.5. Choix des stages obligatoires et au choix

Précisément à la date de debut de la période de choix, l’application est ouverte aux étudiants de médecine qui devront faire leurs choix de stages. L’application reste ouverte jusqu’à la fin de la période. Pendant ce temps là, les étudiants peuvent changer librement leurs choix et le gestionnaire des stages peux consulter les choix fait, mais pas les modifier avant la fin de la période d’inscription.

L’étudiant a accès a l’application seulement s’il:

  • est régulièrement inscrit comme étudiant à l’université

  • a un compte utilisateur pour accéder le réseau et les services en ligne du portail

  • est régulièrement inscrit dans une des cohortes existants.

Lorsque l’étudiant se rend sur la page d’accueil du portail, il a accès a une liste de fonctionnalités: le choix des stages, la liste des hôpitaux, le bilan de choix de stage et d’affectation finale.

Sur le choix des stages, les onglets des différentes spécialités sont présentés.

Pour les spécialités obligatoires, dans chacun de ces onglets se présentent plusieurs hôpitaux. L’étudiant doit effectuer 4 choix d’hôpital (du 1er au 4ème choix) selon sa ordre de préférence). Une fois ces 4 choix effectués dans chaque onglet, il faut cliquer sur le bouton "Soumettre" qui se trouve au bas de la page pour enregistrer les choix. Un erreur se produit si l’utilisateur fait plus de 4 choix ou deux fois le même choix.

Pour les stages au choix, il est possible de faire 4 choix de spécialités. Pour chaque une, l’application propose à l’étudiant les hôpitaux disponibles pour ce stage au choix. Les choix sont limités à 4 hôpitaux. Si le système ne propose rien, c’est que cette spécialité n’est pas disponible. Si l’étudiant sélectionne un stage en médecine générale, il faut choisir l’hôpital "Médecine générale" en premier choix puisqu’il n’y a pas d’autre possibilité. Idem pour les spécialités où il n’existe qu’un hôpital. Ce "premier choix" concerne bien l’hôpital et pas la spécialité, la préférence de celle-ci étant déterminée par le numéro du stage au choix.

Lorsque l’étudiant sélectionne un hôpital dans une spécialité, un compteur l’informe sur le nombre de places totales disponibles et le nombre d’étudiants ayant déjà choisi cet hôpital en premier choix. Plus la demande dépasse l’offre, plus la probabilité d’obtenir cette affectation est faible.

1.1.6. Affectation des stages aux étudiants prioritaires

Une fois que les inscriptions sont fini, l’affectation des étudiants prioritaires commencent. Les étudiants sont reconnus comme prioritaires par le service d’aide aux étudiants. Cela donne une priorité adaptée au besoin particulaire de chaque étudiant, mais il n’y a pas d’assurance de recevoir les premiers choix. Le plus souvent, c’est de prioriser les stages proches du domicile légal ou dans un hôpital avec logement.

L’étudiant devra faire ses 4 choix de manière réfléchie et se présenter à la faculté dans une période bien définie afin de discuter avec le secretariat des critères qui lui sont propres. Après cette discussion, le secretariat déterminera parmi les choix faits par l’étudiant celui ou ceux que l’application devra obligatoirement prendre en compte. Le gestionnaire de stages reserve le droit d’imposer un stage selon les disponibilités réel, mais toujours en adéquation avec le besoin de l’étudiant.

La date qui determine la fin de l’affectation aux étudiants prioritaires et les autres affectations n’est pas bien precise. Tout la partie des affectations se déroule après la date de fin des inscriptions e date de debut des publications.

1.1.7. Affectation des stages aux autres étudiants

Pour les étudiants non-prioritaires, les affectations sont faites automatiquement par l’application. L’algorithme essaye de trouver une solution optimale pour chaque étudiant en terme de spécialité et période. Certaines contraintes empêchent de respecter le premier choix de tous les étudiants. Par exemple, si le nombre d’étudiants est plus grand que le nombre de places disponibles. Pour satisfaire au mieux toutes les demandes des étudiants avec les offres limitées, nous essayons de trouver une solution satisfaisant le coût le plus faible possible et qui satisfait les différentes contraintes, tout en respectant le mieux possible les souhaits des étudiants.

1.1.8. Correction des stages avec problème d’affectation

L’affectation automatique peux rencontrer des difficultés pour affecter certains étudiants à cause des contraintes existantes. Les étudiants sont alors affectés temporairement à un hôpital fictif (hôpital erreur) pour être facilement identifiés pour une affectation manuel à la suite.

Le but de cette tache c’est de trouver une solution pour les étudiants avec problème d’affectation. Le gestionnaire de stages change manuellement les affectations existants.

Toutes les affectations devrons être réalisées avant la date de publication des résultats.

1.1.9. Publication des résultats

À la date de publication des résultats, définie dans le cohorte, tous les résultats sons publiés en même temps sur le portail de l’université et mis à disposition des étudiants impliqués.

1.1.10. Consultation des résultats

Les étudiants se connectent sur le portail pour consulter les résultats des affectations. Les données sont disponibles en mode lecture. En cas de correction ou de modification en général, une demande devra être fait au secretariat.

1.2. La gestion journalière

La gestion journalière couvre toutes les fonctionnalités de maintenance de données en dehors de l’exécution du processus. Ce sont les fonctionnalités utilisées au cours de l’année par le gestionnaire des stages.

1.2.1. Les hôpitaux

La gestion des hôpitaux ne se contente pas uniquement de maintenir les données des hôpitaux à jour.

Pour accéder aux rapports en format Excel pour les hôpitaux, cliquez sur le bouton vert indiquant les résultats de l’affectation.

La liste des hôpitaux

Dans l’écran de résultats de l’affectation, deux boutons sont disponibles pour produire le rapport:

  1. pour les mètres de stage avec les affectations groupés par spécialité et période.

  2. pour l’hôpital avec une liste des tous les affectation trié par période.

Les rapports pour l’hôpital

Le rapport pour l’hôpital peux être configuré dans le formulaire de l’hôpital afin de prendre en compte les besoins de chacun.

Un champ numérique est disponible pour chaque donnée concernant les hôpitaux. Ces champs contiennent la sequence dans lequelle les données doivent être affichées. Les champs laissés vides sont ignorés.

La configuration de rapport pour l’hôpital

1.2.2. Les spécialités

La gestion des spécialités consiste à maintenir les données des spécialités d’une cohorte. Généralement, les spécialités sont créées automatiquement au moment de la création d’une cohorte a partir d’une cohorte existant. Il suffit ensuite d’adapter la liste au cohorte actuelle en supprimant ou ajoutant des spécialités.

Les spécialités
  • Les offres de stages: maintenir les places disponibles dans les différentes spécialités des hôpitaux.

  • Les stages: maintenir les différents types de stages.

  • Gestion des maîtres de stage: pas encore disponible, mais bientôt le gestionnaire pourra maintenir les données des maîtres de stage.

  • Bilan des assignations: un rapport comprenant les affectations des étudiants dans les hôpitaux, classé par spécialité.

  • Assignation des stages: les modifications dans les affectations de stages selon les particularités de chaque étudiant, principalement les cas de permutation des stages.

2. La technique

2.1. La conception de l’application

2.1.1. L’algorithme d’affectation

Afin de satisfaire toutes les demandes des étudiants,nous essayons de trouver une solution satisfaisant les différentes contraintes avec un coût le plus faible possible. Le coût est mesuré par la somme de tous les points d’une solution. Des points sont ajoutés à une solution quand les contraintes ne sont pas respectées. La pondération des différentes contraintes est la suivante:

Table 2. Pondération des contraintes
Choix Point

Premier

0

Deuxième

1

Troisième

2

Quatrième

3

Hors choix

10

Quand les desiderata des étudiants ne peuvent pas être respectés, un autre lieu de stage doit être imposé. L’étudiant sera placé dans l’hôpital proche de son adresse légale. Cette solution ajoute 10 points (hors choix) + 1 point par 50 kilomètre entre son adresse légale et l’adresse de l’hôpital.

Chaque étudiant doit choisir 6 stages au choix, par ordre de préférence, de 1 à 6. Seulement 4 stages seront pris. S’il est impossible de respecter les 4 premiers choix on va ajouter 2 points pour le choix 5 et 3 points pour le choix 6.

Il existe également des contraintes souples. Par exemple, l’étudiant doit faire au minimum 2 mois dans le même hôpital. Si ces contraintes ne sont pas respectées, on ajoute 5 points.

Les définitions
  • L’offre est représentée par un ensemble de stages proposés par les différents acteurs. Chaque stage possède une spécialité, un lieu, une période et un nombre de places minimales et maximales.

  • La demande est représentée par un ensemble de choix des étudiants. Elle est divisée en 2 catégories:

    • Les stages obligatoires: chaque étudiant pour chaque spécialité obligatoire doit donner une liste ordonnée de 4 lieux de stages, par ordre de préférence allant de de 1 à 4.

    • Les stages au choix: chaque étudiant doit choisir 6 spécialités au choix, par ordre de préférence allant de 1 à 6. Si l’étudiant le souhaite, il peut choisir plusieurs fois la même spécialité. Ensuite, pour chaque spécialité, l’étudiant doit fournir une liste ordonnée de 4 lieux de stages, par ordre de préférence allant de 1 à 4.

  • Une solution est un ensemble des différents choix qui satisfont au mieux toutes les demandes des étudiants. Elle doit respecter toutes les contraintes fortes et un maximum de contraintes souples. Dans une solution on retrouve, pour chaque étudiant, un triplet qui contient une spécialité, un lieu et une période.

  • Les contraintes fortes

    • Chaque étudiant doit avoir 12 périodes (P) de stages attribuées et réparties sur 12 mois (1 période par mois). Les stages se répartissent obligatoirement comme suite en "stages obligatoires" (8 P) et "stages au choix" (4 P).

    • Les stages obligatoires doivent se dérouler dans la première partie de l’année (janvier – août) et être suivis par les stages au choix (septembre – décembre).

    • Pour les stages au choix, la priorité doit être donnée aux étudiants qui présentent un concours dans la spécialité choisie relative à ces stages.

    • Pour les étudiants prioritaires, il faut pouvoir attribuer manuellement certains stages (spécialité, lieu, période), avant l’attribution par le logiciel, des stages aux étudiants. Pour certains étudiants prioritaires, le lieu est unique pour certaines spécialités et doit impérativement être respecté. Ces modifications manuelles ne pourront pas être modifiées par le logiciel.

    • Les 2 périodes de stage obligatoire "Urgence", doivent être effectuées l’une à la suite de l’autre dans un même hôpital.

  • Les contraintes souples

    • Il faut éviter que l’étudiant ne passe qu’un mois dans un même hôpital. Si cette contrainte n’est pas respectée on ajoute une pénalité de 5 points.

    • L’étudiant émet des desiderata concernant le lieu du stage obligatoire et concernant la spécialité et les lieux des stages au choix. Ces desiderata devraient être respectés au mieux en fonction d’un ordre de préférence allant de 1 à 4. Si le 1er choix n’est pas respecté, on ajoute:

      • 1 point de pénalité si le 2ème choix est affecté

      • 2 points de pénalité si le 3ème choix est affecté

      • 3 points de pénalité si le 4ème choix est affecté

    • En cas d’impossibilité de respecter les desiderata des étudiants, un autre lieu de stage doit être imposé. L’étudiant sera placé dans l’hôpital proche de son adresse légale. On ajoute une pénalité de 10 points + 1 point par 50 kilomètre entre son adresse légale et l’adresse de l’hôpital.

    • Chaque étudiant doit sélectionner 6 stages au choix, par ordre de préférence allant de 1 à 6. Seulement 4 stages seront pris, s’il est impossible de respecter les 4 premiers choix de stage on va ajouter:

      • 2 points de pénalité si le choix 5 est affecté

      • 3 points de pénalité si le choix 6 est affecté

    • Si l’offre est plus petite que la demande, certains étudiants seront ajoutés dans un hôpital fictif nommé "error", cet hôpital possède une capacité infinie. Si cette contrainte n’est pas respectée (offre < demande) on ajoute une pénalité de 1000 points.

2.1.2. Modèles de données

Les données sont organisées dans la base de données selon le modèle de données suivant.

OSIS-Internship

Le modèle de base de données OSIS-Internship represent la totalité des données géré par l’application Internship.

Internship Entity Relationship Model
OSIS-Portal-Internship

Le modèle de base de données OSIS-Internship-Portal est limité aux données accessible aux étudiants de médecine. Le modèle est similaire a celui d’OSIS, mais avec mois de tables et moins de champs dans certains tables.

Internship Portal Entity Relationship Model
Comparaison

Pour répresenter toutes les données d’Internship, OSIS contient 14 tables. OSIS-Portal contient 9 tables, 5 en moins que OSIS. De 9 tables, 4 contiennent moins de colonnes que OSIS et 5 sons exactement les mêmes.

Table 3. Comparaison des modèles
OSIS (14) OSIS-Portal (9) Tables simplifiées (4)
  • affectation_generation_time

  • cohort

  • internship

  • internship_choice

  • internship_enrollment

  • internship_master

  • internship_offer

  • internship_speciality

  • internship_student_affectation_stat

  • internship_student_information

  • master_allocation

  • organization

  • period

  • period_internship_places

  • cohort

  • internship

  • internship_choice

  • internship_offer

  • internship_speciality

  • internship_student_affectation_stat

  • internship_student_information

  • organization

  • period

  • cohort

  • internship

  • internship_speciality

  • organization

2.1.3. L’architecture logiciel

La gestion des stages est une app Django. Elle ne tourne pas tout seule, mais elle depend d’un projet Django pour fonctionner. Pour le moment, elle dépend du projet Django OSIS (https://github.com/uclouvain/osis), spécifiquement de l’application base, qui est commune à toutes les autres applications. Ce couplage est tel que la gestion des stages est classée comme un "satelite" d’OSIS. Heureusement, l’application est conçue de manière à pouvoir être facilement découplée à l’avenir en utilisant, par exemple, des services web parce que la demande de données est très faible.

2.1.4. Sécurité

Toutes les fonctionnalités de l’application sont limitées à des utilisateurs aux responsabilités bien connues. De ce fait, la sécurité de l’application est organisée en deux parties:

L’authentification

OSIS utilise le single-sign-on de l’UCL qui est integré avec le cadastre unique des utilisateurs informatique de l’université. L’application Internship hérite de ce mécanisme d’OSIS pour s’assurer que tous les accès soient connus de l’institution. Il n’y a aucun moyen de créer de nouveaux utilisateurs dans l’application, sans passer par les processus standard de l’université.

L’autorisation

L’autorisation est gérée par Django, qui organise les utilisateurs dans des groupes correspondant aux rôles définis par l’application. Il y a deux rôles actuellement:

  • Gestionaire de stages: il peut accéder aux fonctionnalités liées à la gestion des stages du côté du back office de OSIS, mais pas à la partie de choix des stages du coté front office de OSIS. L’accès au back office est limité au réseau de l’université.

  • Étudiant: il peut accéder aux fonctionnalités liées aux choix des stages du coté front office de OSIS, mais pas à la partie de gestion des stages du coté back office de OSIS. L’accès au front office est intégré au portail de l’université, il est donc ouvert au monde extérieur.

2.1.5. Déploiement

Déploiement de l’application

Les annexes

Greedy

La construction de la solution se faire en 5 étapes. A chaque étape on parcourt chacune des modalités de stage. Pour chaque spécialité on parcourt tous les étudiants. Pour éviter que les étudiants au début de la liste aient toujours leur premier choix (premier arrivé, premier servi), nous allons commencer le parcours à un endroit choisi au hasard. La suite des opérations est différente pour chaque étape.

Étape 1: Stages obligatoires - Etudiants prioritaires Erasmus

Pour ces étudiants les stages (la spécialité, le lieu et la période) sont fixés. On les ajouté dans la solution initiale tel quel. Pour chaque stage ajouté on met à jour le nombre de places disponibles pour un lieu / période / spécialité donné (table de stages).

Étape 2: Stages obligatoires - Etudiants prioritaires sociaux

Ces étudiants ont déjà une spécialité et un lieu choisis. L’algorithme doit choisir seulement la période de stage. Pour le choix de période on favorise les solutions qui permettent d’avoir au moins 2 mois de stage consécutifs dans un même hôpital.

Pour chaque période disponible, l’algorithme va regarder les périodes P – 1 et P + 1 et vérifier si une de ces périodes périodes est déjà attribuée à l’étudiant dans ce même hôpital. Si ce’est le cas, la période est candidate. Ensuite parmi les périodes candidates, on va choisir les périodes qui ont plus grand nombre de places disponibles. Si plusieurs périodes on le même nombre d’offres, on choisit une période au hasard. Pour fini on met à jour la table de stages.

Voici un exemple:

  • Si c’est le premier stage de l’étudiant dans cet hôpital, on choisit les périodes dont P-1 et P+1 sont encore libres (afin de favoriser les deux mois consécutifs dans un même hôpital). Si ex-equo, on choisit la période qui a le plus grande nombre de places. Dans l’exemple c’est sont les périodes P2, P5 et P6 (bleu) avec à chaque fois 23 places disponibles. Ensuite on choisit une période au hasard parmi P2, P5 et P6 et on décrémente le nombre de places disponibles. Les périodes en rouge ne sont pas disponibles, par exemple si une spécialité n’est pas disponible.

Example 1
  • Si l’étudiant a déjà d’autres stages dans l’hôpital, on va favoriser les périodes qui sont adjacentes avec les autres périodes de l’étudiant dans cet hôpital. Dans l’exemple on voit que l’étudiant a déjà fait 3 autres stages pendant les périodes P1, P4 et P8 (en vert), dans ce cas-là on va favoriser les stages P2, P5 et P7 (en bleu). Ensuite parmi ces 3, on va choisir les périodes qui ont la plus grande nombre de places disponibles (P2 et P4). Elles ont toutes les deux 23 places disponibles, dans ce cas on choisit une période au hasard parmi ces deux-là.

Example 2

Étape 3: Stages obligatoires pour les étudiant régulière

Pour ces étudiants, pour la spécialité concernée, l’algorithme doit choisir un lieu et une période. Premièrement, il faut choisir un lieu. L’algorithme va toujours essayer de faire un choix qui minimise le coût total de la solution. Par exemple le premier choix n’est pas toujours le meilleur option, parfois c’est mieux de choisir le 2ème, 3ème ou même 4ème choix et avoir 2 stages consécutifs. Ensuite, la période est choisie de même manière que précédemment (→ Stages obligatoires - Etudiants prioritaires sociaux). Pour finir on met à jour la table de stages.

YDE : On pourrait être proactif et favoriser un second ou 3ème choix qui permet d’avoir deux mois consécutif dans le même hôpital.