Dans une entreprise marocaine, l’arrêt de travail pour maladie ou accident n’est pas seulement une parenthèse médicale : c’est aussi un moment où se croisent santé au travail, confiance managériale et conformité réglementaire. Lorsque l’employeur maintient une partie de la rémunération, une question s’invite vite dans les couloirs des ressources humaines : comment s’assurer que l’arrêt est fondé, et qu’il couvre une durée cohérente avec l’état de santé réel ? C’est précisément l’objet de la contre-visite médicale, un contrôle médical à l’initiative de l’employeur, encadré par des règles qui visent à éviter les abus… des deux côtés. Dans un contexte où l’absentéisme peut fragiliser l’organisation d’une équipe, mais où un salarié vulnérable doit être protégé, l’équilibre est délicat.

Depuis la clarification des modalités par un texte publié en 2024, la pratique se professionnalise : obligations d’information du salarié sur son lieu de repos, possibilité d’examen au domicile ou sur convocation au cabinet, transmission rapide des conclusions au circuit de la sécurité sociale et à l’employeur. Ce dispositif, souvent sensible, doit être manié avec méthode, tact et preuves documentées. Car au-delà du juridique, ce qui se joue est aussi la qualité du climat social : comment contrôler sans humilier ? Comment préserver l’activité sans soupçonner systématiquement ? Les réponses se trouvent dans une lecture opérationnelle des obligations et des bons réflexes de mise en œuvre.

En bref

  • 📌 La contre-visite médicale permet à l’employeur de vérifier la réalité et la durée d’un arrêt maladie ou accident, sous conditions d’éligibilité.
  • ⚖️ Le dispositif s’inscrit dans des obligations légales et une logique de conformité réglementaire : procédure, délais, traçabilité.
  • 🏢 En entreprise, le maintien de salaire ouvre la voie au contrôle, notamment pour les travailleurs ayant une ancienneté minimale prévue par les règles applicables.
  • 🩺 Le contrôle est réalisé par un médecin mandaté, distinct du prescripteur, et peut se faire au domicile/lieu de repos ou en cabinet (sur convocation).
  • ⏱️ Le rapport doit circuler vite : transmission sous 48h au service médical compétent et information du salarié sans délai.
  • 🔎 En cas d’arrêt jugé injustifié ou de contrôle impossible pour un motif imputable au salarié (absence/refus), l’employeur peut arrêter le complément de salaire.
  • 🧭 Une exécution respectueuse (confidentialité, neutralité, preuve) limite les tensions et sécurise la relation de travail.

Contre-visite médicale en entreprise : cadre et logique des obligations du droit marocain

La contre-visite médicale s’analyse comme un outil de vérification, déclenché par l’employeur lorsqu’un salarié est en arrêt pour maladie ou accident. Dans la vie réelle d’une entreprise, elle répond à une double nécessité : protéger l’organisation du travail (planning, continuité de service, remplacement) et préserver un principe d’équité entre travailleurs (éviter que certains portent durablement la charge des absences d’autrui). Mais ce contrôle n’a de légitimité que s’il respecte strictement les obligations légales et la dignité de la personne.

Le droit du travail, dans sa logique de protection, prévoit que l’employeur puisse être tenu de maintenir une partie de la rémunération pendant l’arrêt, en complément des prestations de sécurité sociale. En pratique, ce mécanisme crée un “donnant-donnant” : la solidarité financière de l’employeur s’accompagne d’un droit à vérifier le bien-fondé de l’arrêt, via un contrôle médical indépendant du médecin prescripteur.

Pour illustrer, imaginons une société de services à Casablanca, “Atlas Support”, confrontée à une hausse d’arrêts courts dans une équipe de support client. Le directeur d’agence observe une répétition d’absences les lundis et vendredis. Sans cadre, la tentation peut être de soupçonner, de “faire pression” ou d’adopter des décisions hâtives. Or l’approche conforme est tout autre : on documente, on applique la procédure, on s’appuie sur le médecin mandaté. Le contrôle ne sert pas à “punir”, mais à vérifier objectivement si l’état de santé justifie l’arrêt et, nouveauté importante, si la durée annoncée correspond à la réalité clinique.

Ce point est central : la discussion ne porte pas uniquement sur “malade ou pas malade”, mais aussi sur la proportionnalité de la durée. Un salarié peut être réellement souffrant, tout en ayant un arrêt trop long au regard de l’évolution médicale. Dans cette hypothèse, l’ajustement ne relève pas d’un débat managérial, mais d’une appréciation médicale.

5 bonnes pratiques pour une contre-visite réussie
  • Documentez tout

    Gardez une trace des dates, des convocations et des rapports médicaux. La preuve écrite est votre meilleure alliée en cas de contestation.

  • Respectez la confidentialité

    Les conclusions du médecin sont confidentielles. Ne les diffusez qu'aux personnes autorisées (RH, médecin du travail).

  • Respectez les délais

    Le médecin mandaté doit transmettre son rapport sous 48h. Vous devez informer le salarié sans délai des résultats.

  • Restez neutre et professionnel

    La contre-visite n'est pas une punition. Expliquez au salarié qu'il s'agit d'une procédure standard. Évitez tout ton accusateur.

  • Connaissez vos limites

    Vous ne pouvez pas exiger un médecin en particulier ni imposer un examen invasif. Le contrôle doit être objectif et proportionné.

Pourquoi ce dispositif est aussi un sujet de santé au travail, pas seulement de conformité

Réduire la contre-visite à une arme anti-fraude serait une erreur. Dans une politique mature de santé au travail, l’employeur doit aussi repérer les situations où l’arrêt révèle un problème organisationnel : surcharge, conflits, risques psychosociaux. Un contrôle bien géré peut amener à reposer la question : l’absence est-elle la conséquence d’un environnement délétère ? Si oui, la réponse ne se limite pas au médical ; elle implique prévention, écoute, et parfois réorganisation.

Un dernier point mérite d’être posé : la contre-visite n’est pas la médecine du travail. La médecine du travail vise l’aptitude, la prévention et l’adaptation du poste. La contre-visite, elle, vise la vérification d’un arrêt. Confondre ces deux sphères crée des malentendus et expose à des écarts de conformité réglementaire. La frontière claire protège tout le monde, et c’est souvent là que se joue la qualité d’un dispositif durable.

Procédure de contre-visite médicale : étapes, preuves et points de vigilance pour l’employeur

Mettre en place une contre-visite médicale exige une mécanique précise. L’employeur doit raisonner comme en audit : qui fait quoi, quand, avec quelle preuve, et comment l’information circule sans violer la confidentialité ? Dans un environnement où les contestations sont possibles, la qualité du dossier est souvent ce qui fait la différence entre une démarche sécurisée et une situation conflictuelle.

La première étape est de vérifier l’éligibilité du salarié au dispositif et le contexte du maintien de salaire. Dans les textes de référence, l’accès au complément employeur est associé à une ancienneté minimale (souvent au moins un an) et à la production régulière des justificatifs. C’est à ce moment que l’employeur doit aussi aligner ses pratiques internes (règlement, notes de service, process paie) sur les obligations légales.

Le choix du médecin mandaté et l’indépendance du contrôle

Le contrôle médical est réalisé par un médecin mandaté par l’employeur, distinct de celui ayant prescrit l’arrêt. Cette séparation est un garde-fou : elle évite les conflits d’intérêts et protège la crédibilité du dispositif. Concrètement, une entreprise structurée met en place une liste de praticiens partenaires ou s’appuie sur un prestataire spécialisé, tout en s’assurant que les conditions d’indépendance et de déontologie sont respectées.

Dans l’exemple d’“Atlas Support”, le DRH décide de formaliser une procédure : une demande interne validée par la direction, puis une saisine d’un médecin contrôleur avec une lettre mission décrivant le périmètre (vérification de la justification et de la durée), sans détail intrusif sur la pathologie. La règle d’or : l’employeur n’a pas à connaître le diagnostic. Ce qui compte, ce sont les conclusions sur l’arrêt.

Domicile, lieu de repos ou cabinet : trois modalités, trois logiques de preuve

La contre-visite peut avoir lieu au domicile du salarié ou sur son lieu de repos si celui-ci a été communiqué. Dans ce cas, le médecin peut se présenter sans préavis, à condition de respecter les heures de présence prévues par l’arrêt. Si l’arrêt mentionne “sortie libre”, les heures de contrôle doivent être précisées par le salarié : cela oblige à une coordination minimale, utile pour éviter les contrôles “dans le vide”.

Autre possibilité : la convocation au cabinet du médecin. Ici, le formalisme est plus élevé : le salarié reçoit une convocation par tout moyen donnant date certaine. Cela implique une traçabilité (accusé, remise contre signature, notification horodatée). Si l’état de santé empêche le déplacement, le salarié doit informer le médecin et le justifier. Ce point est souvent source de tensions : une entreprise prudente distingue le refus (comportement) de l’impossibilité (santé), car les conséquences ne peuvent pas être les mêmes dans l’esprit d’une conformité réglementaire exigeante.

Élément 🔍 Visite domicile/lieu de repos 🏠 Convocation cabinet 🩺
Préavis ⏱️ Pas d’obligation de prévenir Convocation avec date certaine
Preuve principale 📄 Compte rendu de passage + respect des plages horaires Convocation + preuve de réception + constat de présence/absence
Risque de contestation ⚠️ Plage horaire, adresse, “sortie libre” mal cadrée Notification contestée, incapacité de déplacement
Bon réflexe ✅ Adresse confirmée par écrit, créneaux clairs Canal traçable, consigne de justificatif si impossibilité

Au fond, la procédure n’est pas qu’un enchaînement d’actes : c’est une façon d’éviter l’arbitraire. Une contre-visite “mal montée” fragilise autant l’employeur que le salarié, et finit souvent par dégrader la confiance interne, ce que toute entreprise cherche à éviter.

La suite logique est d’examiner ce qui est attendu du salarié : l’obligation d’information et la coopération raisonnable, sans renoncer à ses droits.

Obligations du salarié en arrêt : adresse, “sortie libre”, et coopération au contrôle médical

L’arrêt maladie place le salarié dans une situation paradoxale : il est temporairement éloigné de l’activité, mais reste lié par un contrat et par des obligations légales spécifiques. L’une des évolutions majeures des règles encadrant la contre-visite médicale est la mise en avant d’un devoir d’information simple mais décisif : indiquer où se déroule le repos, et rendre possible le contrôle médical dans des conditions claires.

Dans la pratique marocaine, beaucoup de litiges naissent d’un détail : le salarié ne se repose pas à son domicile habituel. Il part chez un parent, dans une autre ville, ou s’isole pour récupérer. Cette situation est humainement compréhensible. Elle devient juridiquement sensible si l’employeur ne peut pas localiser le lieu de repos pour organiser une visite. Le principe est donc le suivant : si le lieu de repos diffère de la résidence principale, le salarié informe l’employeur de l’adresse. Et si ce lieu change pendant l’arrêt, l’information doit être mise à jour sans délai.

Le cas particulier de la mention “sortie libre” : liberté ne veut pas dire invisibilité

Lorsque l’arrêt mentionne “sortie libre”, une confusion fréquente apparaît : certains y voient une permission de n’être joignable à aucun moment. Or, l’idée n’est pas d’empêcher la liberté de mouvement, mais de rendre le contrôle réalisable. Le salarié doit donc communiquer des plages horaires pendant lesquelles la contre-visite pourra s’effectuer. À défaut, des créneaux standards peuvent être appliqués par analogie de pratique, typiquement en matinée et en après-midi. L’objectif n’est pas la contrainte pour la contrainte, mais la possibilité matérielle de vérifier l’arrêt.

Reprenons “Atlas Support”. Une salariée, Samira, se met en arrêt pour lombalgie et part chez sa sœur à Mohammedia pour éviter les escaliers de son immeuble. Elle oublie d’en informer l’employeur. Le médecin mandaté se présente à Casablanca, constate l’absence, et remonte une impossibilité de contrôle imputable à la salariée. Résultat : tension, incompréhension, et une mesure financière potentielle. Pourtant, tout aurait pu être évité par un simple message formalisé (courrier, email RH, formulaire interne). L’exemple montre que la conformité n’est pas forcément complexe ; elle exige de la discipline.

Coopérer sans se mettre en danger : les limites raisonnables

La coopération attendue ne signifie pas que le salarié doit se déplacer coûte que coûte. S’il est convoqué au cabinet et qu’il ne peut pas s’y rendre en raison de son état, il doit prévenir le médecin et le justifier. C’est un point d’équilibre : le système sanctionne le refus et l’esquive, mais reconnaît l’impossibilité objective liée à la santé. C’est aussi une forme de protection de la personne, cohérente avec l’esprit de santé au travail.

Dans une entreprise, il est utile de traduire ces obligations en consignes simples, partagées dès l’embauche ou via un livret RH. Une règle mal connue est une règle mal appliquée, et le terrain est alors propice aux conflits. Les organisations qui s’en sortent le mieux sont celles qui expliquent sans menacer : “voici ce qui est attendu, voici comment faire, voici qui contacter”.

  • 📍 Informer l’employeur de l’adresse réelle de repos si différente du domicile.
  • 🔁 Signaler tout changement d’adresse pendant l’arrêt sans attendre.
  • 🕒 En “sortie libre”, transmettre des créneaux de disponibilité pour le contrôle.
  • 📨 Répondre aux convocations et conserver les preuves (réception, échanges).
  • 🧾 En cas d’impossibilité de déplacement, prévenir et justifier auprès du médecin.

Au-delà des règles, une question demeure : que se passe-t-il concrètement après le contrôle, et qui décide de quoi ? C’est là que l’articulation avec la sécurité sociale devient déterminante.

Pour visualiser les délais et les embranchements possibles, un outil chronologique aide souvent les équipes RH et les managers à parler le même langage.

Frise chronologique interactive — Contre-visite médicale en entreprise (Maroc)

Naviguez étape par étape pour comprendre le déroulement, les obligations et les issues possibles (contenu 100 % en français).

étapes affichées | Astuce : utilisez les touches et Entrée
Remarque : cette frise est pédagogique et doit être adaptée à votre contexte.
Étapes
Cliquez une étape pour afficher le détail.
Détail de l’étape

Sélectionnez une étape

Utilisez la liste à gauche ou les boutons “Précédent / Suivant”.

Check-list rapide
  • Sélectionnez une étape pour afficher la check-list.
Confidentialité : ne stockez pas de données médicales dans vos outils RH au-delà de ce qui est nécessaire.
Lecture : l’étape 6A et 6B sont deux modalités possibles (domicile/lieu de repos ou convocation au cabinet).
Outil autonome : aucun appel réseau requis.
/* Styles légers et accessibles (sans images) */ #cvme-timeline-tool .cvme-chip{ border-color: rgb(226 232 240); color: rgb(51 65 85); background: rgb(255 255 255); } #cvme-timeline-tool .cvme-chip[data-active= »true »]{ border-color: rgb(148 163 184); background: rgb(241 245 249); color: rgb(15 23 42); } /* Vertical line */ #cvme-timeline-tool #cvme-timeline::before{ content: » »; position:absolute; left: 11px; top: 6px; bottom: 6px; width: 2px; background: linear-gradient(to bottom, rgb(226 232 240), rgb(203 213 225), rgb(226 232 240)); border-radius: 9999px; } /* Reduce motion for users who prefer it */ @media (prefers-reduced-motion: reduce){ #cvme-timeline-tool *{ scroll-behavior: auto !important; transition: none !important; animation: none !important; } } /** * API externe (optionnelle) — 100% gratuite, sans clé : * – Non utilisée par défaut (outil autonome). * – Si vous voulez charger la timeline depuis un JSON distant, vous pouvez remplacer DATA par fetch(URL). * * Exemple d’API gratuite possible (placeholder) : * URL: https://jsonplaceholder.typicode.com/posts/1 * Exemple de réponse JSON: * { * « userId »: 1, * « id »: 1, * « title »: « sunt aut facere repellat provident occaecati excepturi optio reprehenderit », * « body »: « quia et suscipitnsuscipit recusandae consequuntur expedita et cumnreprehenderit molestiae ut ut quas totamnnostrum rerum est autem sunt rem eveniet architecto » * } * * Remarque : votre outil n’en a pas besoin ; les données sont intégrées ci-dessous. */ (function(){ // ————————— // 1) Textes (FR) éditables // ————————— const UI = { roleLabels: { « salarié »: « Côté salarié », « employeur »: « Côté employeur », « médecin »: « Médecin mandaté », « sécurité-sociale »: « Sécurité sociale », « rh »: « RH / Archivage » }, pillStep: (code) => « Étape  » + code, count: (n) => n.toString() }; // ————————— // 2) Données timeline (FR) // ————————— const DATA = [ { code: « 1 », titre: « Arrêt maladie ou accident déclaré », resume: « Le salarié déclare un arrêt de travail (maladie ou accident) et fournit les justificatifs requis. », roles: [« salarié »], checklist: [ « Transmettre l’avis d’arrêt selon les délais internes/usuels. », « Vérifier que l’adresse/lieu de repos indiqué est exact. », « Conserver une copie des documents transmis. » ], detail: [ « Point de départ : l’arrêt de travail est déclaré et justifié. », « Dans la pratique, la qualité des informations (dates, coordonnées, justificatifs) conditionne la suite (maintien de salaire, contrôle, etc.). » ] }, { code: « 2 », titre: « Maintien partiel de salaire si conditions remplies », resume: « L’employeur peut maintenir partiellement le salaire si les conditions sont réunies (ancienneté, justificatifs…). », roles: [« employeur », « salarié »], checklist: [ « Vérifier les conditions applicables (ancienneté, pièces justificatives). », « Tracer la décision de maintien (note interne, paie). », « Informer le salarié des modalités si nécessaire. » ], detail: [ « Le maintien de salaire (ou complément employeur) dépend de conditions (ex. ancienneté, conformité des documents, règles internes/collectives). », « C’est typiquement ce complément qui est exposé à suspension en cas de contre-visite concluant à un arrêt injustifié. » ] }, { code: « 3 », titre: « Information du lieu de repos et des créneaux (si sortie libre) », resume: « Le salarié communique son lieu de repos et, en cas de sortie libre, les créneaux où il peut être contrôlé. », roles: [« salarié »], checklist: [ « Déclarer clairement le lieu de repos (domicile ou autre). », « Si sorties libres : préciser des plages réalistes de présence/contrôle. », « Mettre à jour l’employeur en cas de changement. » ], detail: [ « L’objectif est de permettre un contrôle effectif, sans ambiguïté sur le lieu où le salarié se trouve pendant l’arrêt. », « En cas de sorties libres, indiquer des créneaux utiles limite les situations de « constat d’impossibilité ». » ] }, { code: « 4 », titre: « Décision de l’employeur de diligenter un contrôle », resume: « L’employeur décide de lancer une contre-visite médicale pour vérifier la justification de l’arrêt. », roles: [« employeur »], checklist: [ « Documenter la décision (raison, date, procédure). », « Vérifier que le contrôle respecte la confidentialité et les règles applicables. », « Choisir la modalité : visite au lieu de repos ou convocation au cabinet. » ], detail: [ « La contre-visite est un mécanisme de contrôle de l’arrêt, souvent lié au versement du complément employeur. », « La décision doit être gérée avec prudence (traçabilité, non-discrimination, respect de la vie privée). » ] }, { code: « 5 », titre: « Choix du médecin mandaté », resume: « L’employeur mandate un médecin pour effectuer le contrôle. », roles: [« employeur », « médecin »], checklist: [ « Mandater un médecin et fixer le cadre de la mission. », « S’assurer que seules les informations nécessaires sont partagées. », « Prévoir la modalité de contrôle (domicile vs cabinet). » ], detail: [ « Le médecin mandaté intervient pour apprécier la justification médicale de l’arrêt. », « Le partage d’informations doit rester minimal : l’employeur n’a pas vocation à recevoir des détails médicaux sensibles. » ] }, { code: « 6A », titre: « Visite au domicile / lieu de repos (sans préavis) », resume: « Le contrôle peut se faire au lieu déclaré, sans préavis, dans les plages autorisées. », roles: [« médecin », « salarié », « employeur »], checklist: [ « S’assurer de la disponibilité dans les créneaux déclarés (si sortie libre). », « Permettre l’accès au lieu (interphone, contact). », « Conserver une preuve de présence/absence si contestation. » ], detail: [ « Modalité 6A : le médecin se déplace au domicile/lieu de repos déclaré. », « Le contrôle est en général sans préavis afin d’être efficace, mais doit rester dans les plages autorisées/prévues. » ] }, { code: « 6B », titre: « Convocation au cabinet (date certaine) », resume: « Alternative : convocation du salarié au cabinet, avec une date certaine. », roles: [« médecin », « salarié », « employeur »], checklist: [ « Vérifier la réception/traçabilité de la convocation (date certaine). », « Prévoir un délai raisonnable et des modalités pratiques. », « Conserver les éléments de convocation (preuve d’envoi/réception). » ], detail: [ « Modalité 6B : le salarié est convoqué à une date déterminée (traçable). », « Cette option réduit certains aléas logistiques (adresse imprécise, accès impossible), mais suppose une convocation correctement notifiée. » ] }, { code: « 7 », titre: « Réalisation du contrôle ou constat d’impossibilité imputable au salarié », resume: « Le contrôle a lieu, ou le médecin constate une impossibilité due au salarié (absence, non-présentation…). », roles: [« médecin », « salarié »], checklist: [ « En cas d’absence : vérifier si elle est justifiée (urgence, consultation, etc.). », « Tracer les circonstances constatées (date, heure, lieu). », « Éviter toute collecte de détails médicaux non nécessaires. » ], detail: [ « Deux issues immédiates : soit le médecin examine et évalue la justification de l’arrêt, soit il établit un constat d’impossibilité imputable au salarié (ex. non-présentation au cabinet, introuvable au lieu déclaré). », « Ce constat peut entraîner des conséquences sur le complément employeur et déclencher des suites auprès de la sécurité sociale. » ] }, { code: « 8 », titre: « Rapport transmis sous 48h (sécurité sociale et employeur) », resume: « Le médecin transmet son rapport sous 48 heures au service médical de la sécurité sociale et à l’employeur. », roles: [« médecin », « sécurité-sociale », « employeur »], checklist: [ « Respecter le délai de transmission (48h). », « Transmettre uniquement les éléments nécessaires au bon traitement. », « Archiver la preuve de transmission (sans divulgation excessive). » ], detail: [ « Le rapport doit circuler rapidement pour limiter l’incertitude (paie, indemnités, suites). », « L’employeur reçoit en principe une information utile à la décision (ex. arrêt justifié / non justifié), sans détails médicaux superflus. » ] }, { code: « 9 », titre: « Information du salarié sans délai », resume: « L’employeur informe le salarié dès que possible des conclusions et des suites envisagées. », roles: [« employeur », « salarié »], checklist: [ « Informer sans délai et par un canal traçable si possible. », « Expliquer clairement les conséquences pratiques (paie, démarches). », « Rappeler les options du salarié et le cadre de contestation si applicable. » ], detail: [ « Une communication rapide réduit les tensions et permet au salarié de prendre des décisions (reprise, poursuite d’arrêt, échanges avec la sécurité sociale). », « La forme écrite est souvent préférable pour la traçabilité. » ] }, { code: « 10 », titre: « Conséquences possibles (employeur & sécurité sociale) », resume: « Selon les conclusions : aucune conséquence si arrêt justifié ; sinon, suspension du complément employeur et possibles suites côté sécurité sociale. », roles: [« employeur », « sécurité-sociale », « salarié »], checklist: [ « Si arrêt justifié : maintenir les dispositions prévues. », « Si arrêt jugé injustifié : appliquer les règles internes/legales au complément employeur. », « Anticiper une action de la sécurité sociale (suspension IJ, nouveau contrôle). » ], detail: [ « Si l’arrêt est justifié : la situation peut rester inchangée. », « Si l’arrêt est jugé injustifié : l’employeur peut arrêter le complément employeur. », « La sécurité sociale peut également agir (ex. suspension des indemnités journalières ou nouveau contrôle), selon ses procédures. » ] }, { code: « 11 », titre: « Options du salarié : reprise ou maintien en arrêt », resume: « Le salarié peut reprendre ou rester en arrêt ; le refus de reprise n’est pas automatiquement une faute. », roles: [« salarié », « employeur »], checklist: [ « Évaluer les options avec prudence (santé, formalités). », « En cas de reprise : informer l’employeur et préparer le retour. », « En cas de maintien : sécuriser la justification et les échanges nécessaires. » ], detail: [ « Le salarié conserve des options : reprendre le travail ou maintenir l’arrêt (selon sa situation et les démarches). », « Important : un refus de reprise ne constitue pas mécaniquement une faute ; l’analyse dépend du contexte et des justificatifs. » ] }, { code: « 12 », titre: « Traçabilité et archivage RH (confidentialité) », resume: « L’entreprise archive les éléments nécessaires, en respectant la confidentialité et le principe de minimisation. », roles: [« rh », « employeur »], checklist: [ « Archiver les preuves utiles (convocation, rapport synthétique, décisions). », « Limiter l’accès (besoin d’en connaître) et éviter les détails médicaux. », « Fixer une durée de conservation cohérente avec les obligations internes. » ], detail: [ « La traçabilité est essentielle : décisions, dates, preuves d’envoi/réception, conclusions utiles. », « La confidentialité est un impératif : restreindre l’accès et éviter toute diffusion de données de santé non nécessaires. » ] } ]; // ————————— // 3) Helpers DOM // ————————— const $ = (sel, root=document) => root.querySelector(sel); const $$ = (sel, root=document) => Array.from(root.querySelectorAll(sel)); const root = $(« #cvme-timeline-tool »); const elTimeline = $(« #cvme-timeline », root); const elSearch = $(« #cvme-search », root); const elCount = $(« #cvme-count », root); const btnPrev = $(« #cvme-btn-prev », root); const btnNext = $(« #cvme-btn-next », root); const btnReset = $(« #cvme-btn-reset », root); const btnExpand = $(« #cvme-btn-expand », root); const btnCollapse = $(« #cvme-btn-collapse », root); const elDetailTitle = $(« #cvme-detail-title », root); const elDetailBody = $(« #cvme-detail-body », root); const elDetailTags = $(« #cvme-detail-tags », root); const elDetailChecklist = $(« #cvme-detail-checklist », root); const elDetailPill = $(« #cvme-detail-pill », root); const chips = $$(« .cvme-chip », root); // ————————— // 4) State // ————————— const state = { activeIndex: -1, query: «  », filter: « tout », expandedAll: false }; function normalize(str){ return (str || «  ») .toLowerCase() .normalize(« NFD ») .replace(/[u0300-u036f]/g, «  »); } function matches(item){ const q = normalize(state.query.trim()); const inFilter = (state.filter === « tout ») ? true : item.roles.includes(state.filter); if(!q) return inFilter; const hay = normalize( [item.code, item.titre, item.resume, …(item.detail||[]), …(item.checklist||[]), …(item.roles||[]).map(r=>UI.roleLabels[r]||r)] .join( » | « ) ); return inFilter && hay.includes(q); } function visibleItems(){ return DATA .map((item, originalIndex) => ({ item, originalIndex })) .filter(({item}) => matches(item)); } function roleBadge(role){ const label = UI.roleLabels[role] || role; let cls = « border-slate-200 bg-white text-slate-700 »; if(role === « employeur ») cls = « border-amber-200 bg-amber-50 text-amber-900 »; if(role === « salarié ») cls = « border-sky-200 bg-sky-50 text-sky-900 »; if(role === « médecin ») cls = « border-violet-200 bg-violet-50 text-violet-900 »; if(role === « sécurité-sociale ») cls = « border-emerald-200 bg-emerald-50 text-emerald-900 »; if(role === « rh ») cls = « border-slate-200 bg-slate-50 text-slate-900 »; const span = document.createElement(« span »); span.className = « inline-flex items-center rounded-full border px-2.5 py-1 text-xs font-semibold  » + cls; span.textContent = label; return span; } function makeTimelineItem({item, originalIndex}, visibleIndex){ const li = document.createElement(« li »); li.className = « relative pb-4 »; li.dataset.originalIndex = String(originalIndex); li.dataset.visibleIndex = String(visibleIndex); const dot = document.createElement(« div »); dot.className = « absolute left-[3px] top-[6px] h-4 w-4 rounded-full border border-slate-300 bg-white shadow-sm »; const card = document.createElement(« div »); card.className = « ml-6 rounded-2xl border border-slate-200 bg-white hover:bg-slate-50 transition-colors »; const btn = document.createElement(« button »); btn.type = « button »; btn.className = « w-full text-left p-4 focus:outline-none focus:ring-2 focus:ring-slate-300 rounded-2xl »; btn.setAttribute(« aria-expanded », « false »); const top = document.createElement(« div »); top.className = « flex items-start justify-between gap-3 »; const left = document.createElement(« div »); left.className = « min-w-0 »; const title = document.createElement(« div »); title.className = « flex items-center gap-2 flex-wrap »; const step = document.createElement(« span »); step.className = « inline-flex items-center rounded-full border border-slate-200 bg-white px-2.5 py-1 text-xs font-semibold text-slate-700 »; step.textContent = UI.pillStep(item.code); const h = document.createElement(« h4 »); h.className = « text-sm sm:text-base font-semibold text-slate-900 truncate »; h.textContent = item.titre; title.appendChild(step); title.appendChild(h); const summary = document.createElement(« p »); summary.className = « mt-1 text-sm text-slate-600 »; summary.textContent = item.resume; left.appendChild(title); left.appendChild(summary); const chevron = document.createElement(« span »); chevron.className = « shrink-0 mt-1 text-slate-500 text-xs font-semibold »; chevron.textContent = « Détail ↵ »; top.appendChild(left); top.appendChild(chevron); const badges = document.createElement(« div »); badges.className = « mt-3 flex flex-wrap gap-2 »; item.roles.forEach(r => badges.appendChild(roleBadge(r))); const collapse = document.createElement(« div »); collapse.className = « px-4 pb-4 hidden »; collapse.dataset.collapse = « true »; const detail = document.createElement(« div »); detail.className = « text-sm text-slate-700 leading-relaxed »; detail.innerHTML = (item.detail || []).map(p => « 

 » + escapeHtml(p) + « 

« ).join(«  »); const mini = document.createElement(« div »); mini.className = « mt-3 rounded-2xl border border-slate-200 bg-slate-50 p-3 »; const miniTitle = document.createElement(« div »); miniTitle.className = « text-xs font-semibold text-slate-700 »; miniTitle.textContent = « À retenir »; const miniUl = document.createElement(« ul »); miniUl.className = « mt-2 space-y-1.5 text-sm text-slate-700 list-disc pl-5 »; (item.checklist || []).slice(0,3).forEach(t => { const li2 = document.createElement(« li »); li2.textContent = t; miniUl.appendChild(li2); }); mini.appendChild(miniTitle); mini.appendChild(miniUl); collapse.appendChild(detail); collapse.appendChild(mini); btn.appendChild(top); btn.appendChild(badges); card.appendChild(btn); card.appendChild(collapse); li.appendChild(dot); li.appendChild(card); // Interaction btn.addEventListener(« click », () => { selectByOriginalIndex(originalIndex, {scrollIntoView:true, focusDetail:true}); toggleCollapse(li); }); btn.addEventListener(« keydown », (e) => { if(e.key === « Enter » || e.key ===  » « ){ e.preventDefault(); selectByOriginalIndex(originalIndex, {scrollIntoView:false, focusDetail:true}); toggleCollapse(li); } }); return li; } function escapeHtml(s){ return String(s) .replaceAll(« & », »& ») .replaceAll(«  », »> ») .replaceAll(‘ »‘, »" ») .replaceAll(« ‘ », »' »); } function toggleCollapse(li, force){ const collapse = li.querySelector(« [data-collapse=’true’] »); const btn = li.querySelector(« button »); const isOpen = !collapse.classList.contains(« hidden »); const next = (typeof force === « boolean ») ? force : !isOpen; collapse.classList.toggle(« hidden », !next); btn.setAttribute(« aria-expanded », next ? « true » : « false »); } function setActiveStyles(){ // Reset styles $$(« #cvme-timeline li », root).forEach(li => { li.querySelector(« div.absolute »).classList.remove(« bg-slate-900 »); li.querySelector(« div.absolute »).classList.add(« bg-white »); li.querySelector(« .ml-6 > div »).classList.remove(« border-slate-400 »); li.querySelector(« .ml-6 > div »).classList.add(« border-slate-200″); }); if(state.activeIndex div »); card.classList.add(« border-slate-400 »); card.classList.remove(« border-slate-200 »); } function render(){ const visible = visibleItems(); elTimeline.innerHTML = «  »; visible.forEach((pack, idx) => elTimeline.appendChild(makeTimelineItem(pack, idx))); elCount.textContent = UI.count(visible.length); // Keep active index in range if(visible.length === 0){ state.activeIndex = -1; renderDetail(null); return; } if(state.activeIndex >= visible.length) state.activeIndex = visible.length – 1; // If none selected, auto-select first for better UX if(state.activeIndex === -1) state.activeIndex = 0; const activePack = visible[state.activeIndex]; renderDetail(activePack.item); // Apply expand/collapse all if(state.expandedAll){ $$(« #cvme-timeline li », root).forEach(li => toggleCollapse(li, true)); } setActiveStyles(); } function renderDetail(item){ if(!item){ elDetailTitle.textContent = « Aucune étape à afficher »; elDetailBody.innerHTML = « 

Ajustez la recherche ou les filtres.

« ; elDetailTags.innerHTML = «  »; elDetailChecklist.innerHTML = « 
  • « ; elDetailPill.classList.add(« hidden »); return; } elDetailTitle.textContent = item.titre; elDetailPill.textContent = UI.pillStep(item.code); elDetailPill.classList.remove(« hidden »); elDetailTags.innerHTML = «  »; item.roles.forEach(r => elDetailTags.appendChild(roleBadge(r))); elDetailBody.innerHTML = [ « 
    « , « 

    Résumé :  » + escapeHtml(item.resume) + « 

    « , « 
    « , (item.detail || []).map(p => « 

     » + escapeHtml(p) + « 

    « ).join(«  »), « 
    « , « 
     » ].join(«  »); elDetailChecklist.innerHTML = «  »; (item.checklist || []).forEach(t => { const li = document.createElement(« li »); li.className = « flex gap-2 »; li.innerHTML = «  » + escapeHtml(t) + « « ; elDetailChecklist.appendChild(li); }); } function selectByOriginalIndex(originalIndex, opts){ const options = Object.assign({scrollIntoView:true, focusDetail:false}, opts || {}); const visible = visibleItems(); const idx = visible.findIndex(v => v.originalIndex === originalIndex); if(idx === -1) return; state.activeIndex = idx; renderDetail(visible[idx].item); setActiveStyles(); if(options.scrollIntoView){ const li = elTimeline.querySelector(`li[data-original-index= »${originalIndex} »]`); if(li) li.scrollIntoView({behavior: « smooth », block: « nearest »}); } if(options.focusDetail){ elDetailTitle.setAttribute(« tabindex », »-1″); elDetailTitle.focus({preventScroll:true}); } } function move(delta){ const visible = visibleItems(); if(visible.length === 0) return; if(state.activeIndex { state.query = e.target.value || «  »; state.activeIndex = -1; // reselect first visible render(); }); chips.forEach(chip => { chip.addEventListener(« click », () => { const filter = chip.dataset.filter; state.filter = filter; state.activeIndex = -1; chips.forEach(c => c.dataset.active = « false »); chip.dataset.active = « true »; render(); }); }); btnPrev.addEventListener(« click », () => move(-1)); btnNext.addEventListener(« click », () => move(1)); btnReset.addEventListener(« click », () => { state.query = «  »; state.filter = « tout »; state.activeIndex = -1; state.expandedAll = false; elSearch.value = «  »; chips.forEach(c => c.dataset.active = (c.dataset.filter === « tout ») ? « true » : « false »); render(); }); btnExpand.addEventListener(« click », () => { state.expandedAll = true; $$(« #cvme-timeline li », root).forEach(li => toggleCollapse(li, true)); }); btnCollapse.addEventListener(« click », () => { state.expandedAll = false; $$(« #cvme-timeline li », root).forEach(li => toggleCollapse(li, false)); }); // Keyboard navigation (global for this tool) root.addEventListener(« keydown », (e) => { if(e.key === « ArrowLeft »){ e.preventDefault(); move(-1); } if(e.key === « ArrowRight »){ e.preventDefault(); move(1); } // Enter toggles collapse on active item when focus is within the tool (and not in input) if(e.key === « Enter »){ const activeEl = document.activeElement; if(activeEl && activeEl === elSearch) return; const visible = visibleItems(); const pack = visible[state.activeIndex]; if(!pack) return; const li = elTimeline.querySelector(`li[data-original-index= »${pack.originalIndex} »]`); if(li) toggleCollapse(li); } }); // ————————— // 6) Init // ————————— // Set default active chip chips.forEach(c => c.dataset.active = (c.dataset.filter === « tout ») ? « true » : « false »); render(); })();

    Conséquences de la contre-visite : maintien de salaire, sécurité sociale et gestion des situations sensibles

    Une contre-visite médicale n’a d’intérêt que si ses effets sont compris à l’avance. Les tensions naissent souvent d’attentes contradictoires : l’employeur pense pouvoir “annuler” l’arrêt, le salarié pense qu’aucune conséquence n’est possible. La réalité est plus structurée : le médecin contrôleur rend des conclusions, puis des décisions financières peuvent suivre, en articulation avec la sécurité sociale, tout en restant dans le périmètre des obligations légales.

    Lorsque le médecin mandaté termine sa mission, un rapport est transmis rapidement au service médical compétent (dans un délai resserré, typiquement 48 heures) et communiqué à l’employeur. Celui-ci doit ensuite informer le salarié sans délai. Ce point est essentiel : le salarié ne doit pas découvrir indirectement une suspension de complément sur sa fiche de paie. Une communication rapide, factuelle, et respectueuse est un marqueur de conformité réglementaire autant que de management responsable.

    Deux issues principales : arrêt justifié vs arrêt non justifié

    Premier scénario : l’arrêt est jugé justifié. Cela ne “récompense” pas le salarié ; cela confirme que le système fonctionne. L’employeur continue le maintien de salaire selon les règles internes et les textes applicables, et l’activité s’organise autour de l’absence. Dans “Atlas Support”, cette issue peut amener la direction à se concentrer sur l’organisation (renfort, priorisation), plutôt que de s’enfermer dans la suspicion.

    Deuxième scénario : le médecin conclut que l’arrêt n’est pas justifié, ou que sa durée n’est pas fondée. Dans ce cas, l’employeur peut cesser le versement des indemnités complémentaires (le complément employeur) pour la période restant à courir à compter du jour du contrôle. Il ne s’agit pas d’une sanction disciplinaire automatique, mais d’un ajustement financier lié au résultat du contrôle médical.

    Contrôle impossible imputable au salarié : absence, refus, ou manœuvre dilatoire

    Autre cas délicat : le médecin ne peut pas réaliser la contre-visite pour un motif imputable au salarié, par exemple absence au domicile pendant les heures prévues, refus de se présenter au cabinet, ou obstruction. Dans ce cas, le médecin informe l’employeur et la sécurité sociale de l’impossibilité. L’employeur peut alors, selon les règles applicables, suspendre le complément de salaire, car l’échange “maintien contre contrôle possible” est rompu.

    Les entreprises matures distinguent toutefois l’imputable du non imputable. Une hospitalisation imprévue, une urgence médicale, ou une impossibilité justifiée de déplacement ne devraient pas être traitées comme un refus. Dans la gestion quotidienne, cette nuance évite des crises inutiles.

    Rôle de la sécurité sociale : suspension d’indemnités ou nouveau contrôle

    Le rapport n’est pas un document “interne”. Il alimente aussi la décision de la sécurité sociale concernant les indemnités journalières. À réception, l’organisme peut suspendre le versement des prestations, ou diligenter un nouveau contrôle par ses propres services. Un point important : si la contre-visite n’a pas pu avoir lieu (par exemple absence lors de la visite), un contrôle institutionnel peut être déclenché, ce qui renforce l’importance, pour le salarié, de rendre la vérification possible.

    Une question revient souvent : le salarié doit-il reprendre immédiatement si le contrôle conclut à un arrêt injustifié ? En pratique, la situation n’est pas toujours binaire. Des références jurisprudentielles, dans d’autres systèmes de droit, rappellent qu’un refus de reprise après une contre-visite défavorable n’est pas automatiquement une faute disciplinaire. Cette logique, transposable dans l’esprit au contexte local, invite à la prudence : le terrain disciplinaire exige des éléments solides, une procédure contradictoire, et une analyse au cas par cas. Le bon pilotage consiste à sécuriser le volet paie et à ouvrir un dialogue RH, sans confondre gestion financière et reproche moral.

    Au final, l’enjeu n’est pas de “gagner” contre le salarié : c’est de protéger l’entreprise et les travailleurs par une application stable des règles. Et lorsque la mécanique est claire, elle devient un outil de pacification plutôt qu’un accélérateur de conflit.

    {« @context »: »https://schema.org », »@type »: »FAQPage », »mainEntity »:[{« @type »: »Question », »name »: »La contre-visite mu00e9dicale est-elle automatique du00e8s quu2019un salariu00e9 est en arru00eat ? », »acceptedAnswer »:{« @type »: »Answer », »text »: »Non. Elle ru00e9sulte du2019une du00e9cision de lu2019employeur, gu00e9nu00e9ralement lorsque lu2019entreprise verse un complu00e9ment de ru00e9munu00e9ration (maintien partiel de salaire) et souhaite vu00e9rifier la justification et/ou la duru00e9e de lu2019arru00eat, dans le respect des obligations lu00e9gales et de la conformitu00e9 ru00e9glementaire. »}},{« @type »: »Question », »name »: »Le mu00e9decin mandatu00e9 peut-il venir sans pru00e9venir au domicile du salariu00e9 ? », »acceptedAnswer »:{« @type »: »Answer », »text »: »Oui, lorsque la contre-visite est ru00e9alisu00e9e au domicile ou au lieu de repos communiquu00e9, le contru00f4le peut intervenir sans pru00e9avis, u00e0 condition de respecter les plages horaires pru00e9vues par lu2019arru00eat. En cas de mention u201csortie libreu201d, les cru00e9neaux communiquu00e9s par le salariu00e9 servent de ru00e9fu00e9rence. »}},{« @type »: »Question », »name »: »Que risque un salariu00e9 absent lors de la visite ou qui ne se pru00e9sente pas u00e0 la convocation ? », »acceptedAnswer »:{« @type »: »Answer », »text »: »Si lu2019impossibilitu00e9 de contru00f4le est imputable au salariu00e9 (absence injustifiu00e9e, refus, non-pru00e9sentation), lu2019employeur peut cesser le versement du complu00e9ment de salaire u00e0 compter du jour du contru00f4le. Le rapport peut aussi conduire la su00e9curitu00e9 sociale u00e0 ru00e9examiner le versement des indemnitu00e9s journaliu00e8res. »}},{« @type »: »Question », »name »: »Lu2019employeur a-t-il le droit de connau00eetre la pathologie du salariu00e9 ? », »acceptedAnswer »:{« @type »: »Answer », »text »: »Non. Le contru00f4le mu00e9dical porte sur la justification de lu2019arru00eat et sa duru00e9e, pas sur la divulgation du2019un diagnostic. Pour pru00e9server la santu00e9 au travail et la confidentialitu00e9, lu2019entreprise doit se limiter aux conclusions utiles u00e0 la gestion (arru00eat justifiu00e9 ou non, duru00e9e cohu00e9rente ou non). »}},{« @type »: »Question », »name »: »Quelle est la diffu00e9rence entre contre-visite mu00e9dicale et mu00e9decine du travail ? », »acceptedAnswer »:{« @type »: »Answer », »text »: »La contre-visite mu00e9dicale est un contru00f4le demandu00e9 par lu2019employeur pour vu00e9rifier un arru00eat maladie/accident. La mu00e9decine du travail relu00e8ve de la pru00e9vention, du suivi de la santu00e9 au travail et de lu2019aptitude au poste. Mu00e9langer les deux expose u00e0 des erreurs de conformitu00e9 ru00e9glementaire et u00e0 des tensions inutiles. »}}]}

    La contre-visite médicale est-elle automatique dès qu’un salarié est en arrêt ?

    Non. Elle résulte d’une décision de l’employeur, généralement lorsque l’entreprise verse un complément de rémunération (maintien partiel de salaire) et souhaite vérifier la justification et/ou la durée de l’arrêt, dans le respect des obligations légales et de la conformité réglementaire.

    Le médecin mandaté peut-il venir sans prévenir au domicile du salarié ?

    Oui, lorsque la contre-visite est réalisée au domicile ou au lieu de repos communiqué, le contrôle peut intervenir sans préavis, à condition de respecter les plages horaires prévues par l’arrêt. En cas de mention “sortie libre”, les créneaux communiqués par le salarié servent de référence.

    Que risque un salarié absent lors de la visite ou qui ne se présente pas à la convocation ?

    Si l’impossibilité de contrôle est imputable au salarié (absence injustifiée, refus, non-présentation), l’employeur peut cesser le versement du complément de salaire à compter du jour du contrôle. Le rapport peut aussi conduire la sécurité sociale à réexaminer le versement des indemnités journalières.

    L’employeur a-t-il le droit de connaître la pathologie du salarié ?

    Non. Le contrôle médical porte sur la justification de l’arrêt et sa durée, pas sur la divulgation d’un diagnostic. Pour préserver la santé au travail et la confidentialité, l’entreprise doit se limiter aux conclusions utiles à la gestion (arrêt justifié ou non, durée cohérente ou non).

    Quelle est la différence entre contre-visite médicale et médecine du travail ?

    La contre-visite médicale est un contrôle demandé par l’employeur pour vérifier un arrêt maladie/accident. La médecine du travail relève de la prévention, du suivi de la santé au travail et de l’aptitude au poste. Mélanger les deux expose à des erreurs de conformité réglementaire et à des tensions inutiles.

    Ce qui inquiète vraiment les lecteurs

    Est-ce que mon employeur peut me convoquer chez un médecin de son choix pendant mon arrêt ?

    Oui, c'est le principe de la contre-visite. Il mandate un médecin indépendant pour vérifier votre état. Vous devez vous y soumettre, sinon le complément de salaire peut être suspendu.

    Je suis en arrêt depuis 2 semaines, mon employeur a-t-il le droit de demander une contre-visite ?

    Oui, dès le premier jour d'arrêt si votre convention collective le permet. Le déclenchement dépend surtout du maintien de salaire et des soupçons d'abus.

    Que se passe-t-il si je suis absent lors du passage du médecin mandaté ?

    L'absence non justifiée peut être considérée comme un refus. L'employeur peut alors arrêter de vous verser le complément de salaire. Mieux vaut prévenir votre employeur si vous devez vous absenter.

    Le médecin de la contre-visite peut-il remettre en cause mon traitement ou mon diagnostic ?

    Non, il vérifie uniquement la réalité de l'incapacité de travail et la cohérence de la durée. Il ne se substitue pas à votre médecin traitant.

    Un point à ajouter ou à nuancer ? Direction les commentaires

    Laisser un commentaire