28 déc. 2023, 13:45:33 Magali Lemaire

Prise de rendez-vous connectée à l’ANTS

Depuis juillet 2023, l’Agence nationale des titres sécurisés (ANTS) propose une plateforme d’agrégation des rendez-vous pour la demande de titres d’identité (Carte Nationale d’Identité ou passeport). Ce projet répond à deux besoins, d’une part, réduire la difficulté pour les usagers à trouver des rendez-vous, en proposant un seul site de recherche et d’autre part lutter contre l’absentéisme aux rendez-vous. Le numéro de pré-demande devient un prérequis pour prendre rendez-vous en ligne et ne peut être utilisé que pour un seul créneau de rendez-vous quel que soit l’application de prise de rendez-vous utilisée, à condition qu’elle soit connectée à la base d’agrégat de l’ANTS.

En pratique, nos développements côté Lutece ont mené à la création de trois modules :

  • Le module appointment-rest qui permet d’exposer les données de créneaux de rendez-vous en API et de répondre aux requêtes de l’ANTS
  • Le module appointment-ants qui permet de contrôler la validité des numéros de pré-demande (en interrogeant l’API de l’ANTS) afin de s’assurer qu’ils sont valides
  • Le module workflow-appointmentants qui permet d’alimenter la base de données de l’ANTS afin de signaler l’utilisation d’un numéro de pré-demande par un usager, ou de signaler l’annulation du rendez-vous permettant les contrôles de multi-prise de rendez-vous.

Table des matières

Exposition d’une API REST

La participation des services offrant de la prise de rendez-vous en ligne à une plateforme d’agrégation passe par l’exposition des données nécessaires à la prise de rendez-vous pour chaque service de prise de rendez-vous. Le module appointment-rest est développé pour cela. Ce module expose une API REST pour récupérer les créneaux de rendez-vous disponibles ainsi que la localisation des différents lieux de rendez-vous. Ce module permet d’extraire des données d’un serveur Solr ou directement de la base de données du plugin “appointment” en utilisant les services exposés par ce dernier.

Contrôle de validité des numéros de pré-demande - Module appointment-ants

Ce module a pour rôle de gérer le parcours d’un utilisateur en front-office via la page /jsp/site/Portal.jsp?page=appointmentants et ce formulaire ne nécessite aucun paramétrage back-office. Les règles de gestion décrites ci-dessous relèvent du module.

Page front office pour la saisie en cas de connexion avec l'ANTS

Règles de gestion

L’utilisateur front-office est invité à saisir :

  • Un nombre de créneaux consécutifs souhaités pour le rendez-vous à réserver
  • Un ou plusieurs numéro(s) de pré-demande valide(s)

Front office - Autant de numéros de pré-demande que de personnes prévues au rendez-vous

Via cette page, plusieurs éléments de saisie sont vérifiés :

  • Le nombre de numéros de pré-demande correspond au nombre de personnes concernées par le rendez-vous.
  • Le ou les numéros de pré-demande saisis sont des chaînes de caractères correspondant au format attendu (10 caractères, chiffres ou lettres capitales).
  • Le ou les numéros de pré-demande saisis sont connus dans la base de données de l’ANTS et dans un statut valide (le numéro n’est pas périmé ou consommé en préfecture).
  • Le ou les numéros de pré-demande saisis n’ont pas de rendez-vous déjà associé dans la base de données de l’ANTS (contrôle anti-multi-prise de rendez-vous).

Enregistrement du numéro de pré-demande à la prise de rendez-vous

Afin d’enregistrer le ou les numéros de pré-demande saisis à la page appointmentants, il est possible d’ajouter un champ (generic attribute) de type session au(x) formulaire(s) de prise de rendez-vous. Ce champ doit être configuré pour récupérer l’attribut de session “APPOINTMENT_CODE_PREDEMANDE”. Si plusieurs numéros de pré-demande ont été saisis alors ils seront séparés d’une virgule.

Cet enregistrement des numéros de pré-demande permettra à la fois d’utiliser le contrôle d’accès décrit ci-dessous et de participer à la base de données de l’ANTS via le module workflow-appointmentants.

Ajout d'un champ de type session à un formulaire de prise de rendez-vous

Contrôles supplémentaires lors de la navigation sur le site - Plugin accesscontrol

Le plugin access-control a été implémenté dans le module appointment-ants afin d’ajouter un contrôle d’accès aux formulaires de prise de rendez-vous assurant la constante validité de la première règle de gestion décrite ci-dessus. Via l’adminFeature de Gestion des contrôles d’accès (/jsp/admin/plugins/accesscontrol/ManageAccessControls.jsp?view=manageAccessControls), il est ainsi désormais possible de créer un contrôle d’accès utilisant le paramètre “Nombre de slots”. Le contrôle servira à vérifier que le nombre de slots en cours de réservation sur un rendez-vous est égal au nombre de numéros de pré-demande enregistré dans le champ generic attribute de type session.

Le contrôle d’accès créé doit être associé au formulaire dans la configuration de chaque formulaire devant l’utiliser.

Alimenter la base de données ANTS - Module workflow-appointmentants

Deux tâches de workflow ont été créées dans ce module afin de créer de la donnée dans la base de données de l’ANTS pour la première et d’en supprimer pour la seconde.

Les deux tâches à ajouter à certaines actions sont :

  • “Ajouter un rendez-vous à la base de données de l’ANTS” : cette tâche est à ajouter à la première action de validation du rendez-vous.
  • “Supprimer un rendez-vous de la base de données de l’ANTS” : cette tâche est à ajouter à l’action d’annulation du rendez-vous.

Configuration de la tâche de workflow pour pointer sur le champ contenant les numéros de pré-demande

Usages

En ajoutant ces tâches au workflow habituel de prise de rendez-vous, les fonctionnalités suivantes d’interaction avec l’ANTS sont rendues possibles :

  • Pour un numéro de pré-demande utilisé pour prendre rendez-vous dans vos services, toute collectivité interrogeant la base de l’ANTS en sera avertie. Si un contrôle est mis en place, deux rendez-vous ne pourront pas être pris pour le même numéro de pré-demande.
  • sur le site de l’ANTS, l’usager peut consulter les informations liées au rendez-vous (date, heure et lieu) en saisissant son numéro de pré-demande.