Skip to content

Medical Examinations

Last Updated: March 2026 Target Audience: HR Managers, All Employees

Overview

The Medical Examinations module tracks employee medical exams -- annual physicals, DOT certifications, drug screenings, or any other health-related examination your organization requires. HR managers can generate examinations in bulk for entire departments or job positions using the batch wizard, then track each examination through its lifecycle from scheduling to completion. Employees can view their own examination records; HR managers have full visibility across the organization.

This is an OCA (Odoo Community Association) module (hr_employee_medical_examination) installed in the Scott Recycling Odoo instance.


Employees
└── Medical Examinations
    ├── View Medical Examinations
    └── Generate Medical Examinations  (HR Managers only)

The Medical Examinations menu appears under the top-level Employees menu. It contains two sub-items:

  • View Medical Examinations -- opens the list of all examination records you have access to
  • Generate Medical Examinations -- opens the batch-creation wizard (visible only to HR Managers)

Additionally, each employee's form has a Medical Examinations stat button (medkit icon) in the button box that links directly to that employee's examination records.


Examination Record

Each medical examination is a standalone record tied to one employee. It supports chatter (messages, followers, and activities) for communication and scheduling reminders.

Examination Fields

Field What It Means Example
Name Title of the examination. When created by the wizard, it follows the pattern "Exam Name on Employee Name". "2026 Annual Physical on John Smith"
Employee The employee this examination is for. Required. John Smith
Examination Date The scheduled or actual date of the examination. 03/15/2026
Year The year associated with this examination. Defaults to the current year; auto-updates when you change the Examination Date. 2026
Result Whether the employee passed or failed the examination. Set manually after the exam occurs. Passed
State The current lifecycle stage of this examination (see Status Workflow below). Pending
Note Free-text field for any additional details, instructions, or observations. "Employee needs to fast 12 hours before blood work."

Set the date before the result

Fill in the Examination Date first. The Year field auto-updates to match the date, keeping your records consistent for filtering and reporting.


Status Workflow

Every examination starts in Pending and can move to one of three terminal states. All three terminal states can be reversed back to Pending.

                ┌──────────┐
          ┌────>│   Done   │────┐
          │     └──────────┘    │
          │                     │
┌─────────┤     ┌──────────┐   │    ┌─────────┐
│ Pending │────>│Cancelled │───┼───>│ Pending │
└─────────┘     └──────────┘   │    └─────────┘
          │                     │
          │     ┌──────────┐    │
          └────>│ Rejected │────┘
                └──────────┘
Status Meaning Available Actions
Pending Examination is scheduled or awaiting completion. Mark as Done, Mark as Cancelled, Mark as Rejected
Done Examination has been completed. Back to Pending
Cancelled Examination was cancelled (e.g., scheduling conflict, no longer needed). Back to Pending
Rejected Examination was rejected (e.g., employee did not show up, paperwork issues). Back to Pending

All transitions are reversible

Unlike many Odoo workflows, every state can be returned to Pending using the "Back To Pending" button. This allows you to correct mistakes or re-open examinations that need to be rescheduled.

Set the Result field separately

The State (Pending/Done/Cancelled/Rejected) and the Result (Passed/Failed) are independent fields. Moving an examination to "Done" does not automatically set a result. You must explicitly set the Result to Passed or Failed after marking the exam as Done.


Viewing Medical Examinations

The examination list is available in three view modes:

List View

The default view shows examinations in a table with columns for Name, Employee, State, and Result. This is the best view for reviewing many records at once.

Kanban View

The kanban view shows examination cards grouped visually. Each card displays the examination name, employee name, date, and state badge. The "Done" state displays with a green success badge; all other states use the default badge.

Form View

The full detail form with all fields, status buttons in the header, and the chatter at the bottom for messages and activity scheduling.

Search and Filters

The search bar supports filtering by:

Filter What It Does
Name Search by examination name
Employee Search by employee name
State Search by state value
Passed Show only examinations with result = Passed
Failed Show only examinations with result = Failed
Pending Show only examinations in Pending state

Creating a Single Examination

  1. Navigate to Employees > Medical Examinations > View Medical Examinations
  2. Click New
  3. Enter a Name for the examination (e.g., "2026 DOT Physical")
  4. Select the Employee
  5. Set the Examination Date (the Year field auto-fills)
  6. Optionally add a Note with any relevant details
  7. Save the record

The examination is created in Pending state. When the exam is complete, use the header buttons to update the state and set the result.


Batch-Generating Examinations (Wizard)

The batch wizard lets HR managers create examination records for multiple employees at once -- ideal for annual physicals, company-wide screenings, or department-specific certifications.

Step-by-Step

  1. Navigate to Employees > Medical Examinations > Generate Medical Examinations
  2. Enter an Examination Name (e.g., "2026 Annual Physical")
  3. Confirm or change the Year
  4. Optionally set filters to narrow down which employees to include:
    • Department -- filters to employees in this department (including child departments)
    • Job -- filters to employees with this job position
  5. Click Populate -- the Employees list fills with all matching employees
  6. Review the employee list. You can manually remove employees who should not be included by clicking the delete icon on their row.
  7. Click Generate to create the examination records

After generation, the system opens the examination list filtered to show only the newly created records.

Wizard Fields

Field What It Means Example
Examination Name The base name for all generated examinations. Each record will be named "[Name] on [Employee Name]". Required. "2026 Annual Physical"
Year The year to assign to all generated examinations. Defaults to the current year. 2026
Department Optional filter. Includes employees in this department and all sub-departments. Operations
Job Optional filter. Includes only employees with this job position. CDL Driver
Employees The list of employees who will receive examination records. Populated by the Populate button; can be edited manually. (list of employee records)

Combine Department and Job filters

You can set both Department and Job to narrow results. For example, set Department to "Operations" and Job to "CDL Driver" to generate DOT physicals only for CDL drivers in the Operations department.

Populate replaces the list

Clicking Populate replaces the current employee list with a fresh search result. If you have manually added or removed employees, those changes will be lost. Always populate first, then make manual adjustments.

Generated Record Naming

Each examination record is automatically named using the pattern:

[Examination Name] on [Employee Name]

For example, if the Examination Name is "2026 Annual Physical" and the employee is "Jane Doe", the generated record will be named "2026 Annual Physical on Jane Doe".


Employee Form Integration

The module adds a stat button to each employee's form:

Element Description
Medical Examinations stat button Shows the count of examination records for this employee. Click to view the full list filtered to this employee. New examinations created from this view auto-populate the employee field.

The stat button uses a medkit icon and is visible to the employee themselves and to HR Managers.

Visibility rule for the stat button

The Medical Examinations button only appears on the employee form if you are either (a) the employee themselves (your Odoo user is linked to that employee record), or (b) an HR Manager. Other users will not see the button.


Common Tasks

Record an examination result after completion

  1. Navigate to Employees > Medical Examinations > View Medical Examinations
  2. Open the examination record
  3. Click Mark as Done in the header
  4. Set the Result field to Passed or Failed
  5. Optionally add details in the Note field
  6. Save

Reschedule a cancelled examination

  1. Open the cancelled examination record
  2. Click Back To Pending
  3. Update the Examination Date to the new date
  4. Save

Generate annual physicals for the whole company

  1. Navigate to Employees > Medical Examinations > Generate Medical Examinations
  2. Enter the name (e.g., "2026 Annual Physical")
  3. Leave Department and Job blank to include everyone
  4. Click Populate
  5. Review the list and remove any employees who are exempt
  6. Click Generate

View a specific employee's examination history

  1. Open the employee's form (Employees > Employees)
  2. Click the Medical Examinations stat button (medkit icon) in the button box
  3. The list shows all examinations for that employee

Schedule a follow-up activity on an examination

  1. Open the examination record
  2. In the chatter at the bottom, click Schedule Activity
  3. Set the activity type, due date, and assigned user
  4. Save the activity

The assigned user will receive a notification and the activity will appear in their activity queue.


Chatter and Activity Tracking

Each examination record includes full Odoo chatter support:

  • Messages -- post internal notes or send messages to followers about the examination
  • Followers -- add users who should be notified of changes to the examination
  • Activities -- schedule follow-up tasks with due dates (e.g., "Remind employee to schedule appointment by March 1")
  • Tracking -- changes to the Name, State, Date, Result, Employee, and Note fields are automatically logged in the chatter history

Security

Access Control

Group Read Create Edit Delete
All Employees (base.group_user) Yes No No No
HR Manager (hr.group_hr_manager) Yes Yes Yes Yes

Record Rules

Rule Who It Applies To What They See
Base User: Only own examinations All Employees Only examination records where the employee's linked Odoo user matches the current user
Manager: All Examinations HR Managers All examination records across the organization

Wizard Access

The Generate Medical Examinations menu item is restricted to the HR Manager group. Regular employees cannot see or access the batch wizard from the menu.

Regular employees have read-only access to their own exams

Non-manager employees can view their own examination records but cannot create, edit, or delete any examinations. All examination management (creation, state changes, result recording) must be performed by an HR Manager.


Frequently Asked Questions

Can I delete an examination record? Only HR Managers can delete examination records. Consider using the Cancelled state instead of deleting, to maintain an audit trail.

What happens if I generate examinations twice for the same employees? The wizard does not check for duplicates. Running it twice with the same parameters will create a second set of examination records. Review existing records before generating a new batch.

Can employees edit their own examinations? No. Employees have read-only access to their own examination records. Only HR Managers can create, edit, or change the state of examinations.

Is the Result field required? No. The Result (Passed/Failed) is optional and independent of the State. You can mark an examination as Done without setting a result, though it is recommended to always record the outcome.


Questions? Contact your supervisor or HR administrator.