ModulesDrug & Alcohol Reports

Drug & Alcohol Reports

Drug & Alcohol (D&A) reports live under Health & Safety → Drug & Alcohol. The page has three tabs: Reports, sampled from a day’s sign-ons, Tests, logged one at a time, and Devices, the breathalysers and drug kits tests are taken on.

Reports and tests are managed in the web app. The field app has no Drug & Alcohol screen.

Each report takes a random sample of a day’s signed-on workers for drug & alcohol testing, freezes that selection, and lets a tester record each line’s results and notes.

Generating a report

Click New D&A report, choose a date, a sample percentage, and which Tests the report covers — Drugs, Alcohol, or Drugs and alcohol — and optionally narrow the population with the Locations and Supervisors multi-select filters (both restrict the sign-on population before the random sample is drawn; select none for “all sign-ons”). On Generate, the report:

  • Gathers every sign-on for that date (both prestart-linked and standalone), ordered by sign-on time.
  • Randomly selects ceil(population × sample%) of them for testing.
  • Freezes the selection — the sampled set is stored, never recomputed, so a report always reflects who was picked at generation time.

If the chosen date and filters match no sign-ons, generation is refused with a graceful message — an empty report is never created.

Results

Each selected line carries one result per test the report covers. The model uses the industry-standard terms:

ResultMeaningColour
UnidentifiedNo result recorded yet (the unset state).Neutral
Non-NegativeFailed the screening — a substance was detected, pending lab confirmation.Red
NegativeNo substance detected — the “clean” outcome.Green

A line’s overall result is Non-Negative if either test is non-negative, Negative when every test that applies is negative, and Unidentified until then.

On a draft report, a manager sets each applicable test’s result with a three-segment control and can add notes. Publishing the report freezes it read-only.

Columns

The entries table shows, per line:

  • Worker — name and mobile number.
  • Role.
  • Supervisor — the supervisor of the sign-on’s prestart. Standalone sign-ons (a worker who signed on without a prestart) have no supervisor and show —.
  • Sign-On Location and Signed At.
  • A green tick — the worker declared they are fit for work at sign-on.
  • Selected, then Drug and Alcohol — or a single Result on a report covering one test.
  • Device — which device took the reading.
  • Notes.
  • 📷 N — photo count badge for lines that have attached photos. Clicking it opens the line’s photo panel.
  • Declaration — the worker’s declaration, when the project has declaration wording.
  • The project’s own Drug & Alcohol fields, as extra columns after the declaration.

Result photos

Testers can attach one or more photos to any selected test line — typically used to document a Non-Negative result (e.g. a photo of the test strip or device readout), but available on any line regardless of result.

Attaching and removing photos

  • The 📷 N cell appears in the entries table after the Notes column. Clicking it opens the line’s photo panel — a thumbnail grid plus (for editable draft reports) an upload control.
  • In the panel, use the Add photo control to upload from the device camera roll or file system. Multiple photos can be attached to the same line.
  • Photos are processed through the standard Temporal photo pipeline: thumbnails are generated asynchronously and appear in the grid once ready. Click a ready thumbnail to open it full-screen in the lightbox.
  • To remove a photo, hover its thumbnail in the panel and click the Delete icon.

Permissions

ActionRequired permission
Attach or remove photosdrugalcohol.manage
View photosdrugalcohol.view

Users with only drugalcohol.view can see all attached photos but cannot add or remove them.

Draft-only constraint

Photo attachment and removal are only available while the report is in draft status. Once a report is published, the photo set is frozen along with the rest of the report — no photos can be added or removed from a published report.

CSV export

Export CSV downloads the report with one row per line: User Name, Mobile, Role, Supervisor, Sign-On Location, Signed At, Selected, Result, Drug Result, Alcohol Result, Notes, Photos, Marked By, Marked At, Test Type, Acknowledgement Declared, Device, Declaration, followed by one column per Drug & Alcohol field the project has added. The Photos column contains the count of photos attached to that line. Standalone sign-ons export a blank Supervisor.

Signed At and Marked At are the project’s time with its offset, for example 2026-04-07T08:10:00+10:00. See Dates & Times.

Lifecycle

Reports are draft (results and notes editable) until published, which freezes them as a permanent read-only snapshot. The location filter and sign-on-time ordering are preserved from the report’s generation criteria.

Standalone tests

The Tests tab records a test that is not part of a sampled report — a worker tested after an incident, or under suspicion.

Log test records the worker, when they were tested (on the project’s clock), the reason (Incident, Suspicion or Other), which tests were taken, and each result. A test belongs to no report. To correct one — the worker, the time, the reason, which tests were taken, a result or a note — use Edit on its row. Narrowing the tests removes the result of the test no longer covered.

Photos attach from the row’s 📷 cell once the test is logged.

ActionRequired permission
View testsdrugalcohol.view
Log or edit testsdrugalcohol.manage

Devices

The Devices tab is the register of breathalysers and drug kits.

Add device records its name, type, make, model and serial, and the dates its calibration and certificate run out. Edit changes any of them.

Devices belong to the organisation and are shared by every project.

Retire takes a device out of use. A retired device can’t be picked, but it stays on the results it already took. Turn on Show retired to see it again, or Reactivate it.

ActionRequired permission
View devicesdrugalcohol.view
Add, edit, retiredrugalcohol.manage

Certificates

Open a device to see its calibration certificates.

Upload certificate takes a PDF, JPEG, PNG or WEBP up to 20 MB.

The issuer, certificate number, serial and dates are read from the certificate automatically. Check them — the row says Reading… while it is being read, Read when it is done, and Could not read when it isn’t. A low-confidence read is marked Check these dates.

A date you type on the device is never replaced by a certificate. A date that came from a certificate is marked From certificate.

You’re warned 30 days before a certificate expires, and again once it has expired.

Download opens the file through a link that lasts a few minutes.

Non-negative notifications

Choose who is notified in Settings. Only people who can see drug and alcohol results can be chosen. Someone who later loses that access, or leaves the project, stops being notified.

The app notification says only that a result needs review on the project.

The email names the worker and the result, and links to Drug & Alcohol. Open it from that project.

Correcting the result clears the alert.

Declarations

Set the wording in Settings. It is shown to workers picked for testing.

Each worker picked for testing, and each standalone test, gets a declaration once the project has wording or its own D&A Declaration fields — on reports and tests made from then on. Add the project’s own D&A Declaration fields under Config → Custom Fields to ask for anything else.

Mark declared from the Declaration column. It can’t be undone, and the wording is kept as it stood at the time.

Your own fields

A project can add its own Drug & Alcohol fields under Config → Custom Fields, filtered to Drug & Alcohol.

They appear as extra columns on a report’s entries table and on the Tests tab, on the Log test form, and in the CSV export.

A Drug & Alcohol field can be text, text area, number, checkbox, dropdown, radio, multi-select, date or time. A required field must be filled in to log a test.

On a row, a typed value saves when you click away or press Enter. A multi-select saves when its list closes.