Report Recall Admin Config

Configure the Report Recall (Oops Factor) feature to add a safety delay between signing and publishing reports to external systems.

Overview

Report Recall adds a configurable countdown timer after radiologists sign reports, delaying publication to external systems (RIS/PACS/EHR) and giving users a window to catch errors and cancel publication.

This feature is particularly valuable for:

  • Reducing the rate of addenda due to minor errors

  • Providing a safety net for trainees and new users

  • Accommodating organizational quality assurance workflows

  • Meeting regulatory requirements for review periods

Configuration Options

Setting Location

Navigate to: SettingsGeneralReport Recall

Available Parameters

Parameter
Type
Description
Default
Constraints

Is Enabled

Boolean

Master switch for the entire feature

false

Must have integration enabled

Delay Seconds

Integer

How long to wait before publishing

60

Min: 20, Max: 120

Allow Immediate Sign

Boolean

Let users bypass the delay with "Publish Now"

true

-

Configuration Schema

{
  "report_recall": {
    "is_enabled": true,
    "delay_seconds": 60,
    "allow_immediate_sign": true
  }
}

Parameter Details

Is Enabled

Type: boolean Default: false

Controls whether Report Recall is active for your organization.

When enabled:

  • All sign actions create a publication schedule instead of publishing immediately

  • Users see countdown timers after signing

  • Reports publish automatically when timers expire

  • Users can cancel and return reports to draft

When disabled:

  • Reports publish immediately upon signing (traditional behavior)

  • No countdown timers appear

  • No "Publish Now" or "Cancel Publish" buttons

Use cases:

  • Enable for organizations prioritizing quality and error reduction

  • Enable for teaching institutions with trainees

  • Disable for high-volume practices where speed is critical

  • Disable if your downstream systems cannot handle delayed publishing

You can enable this feature for a trial period and monitor cancellation rates to assess its value.


Delay Seconds

Type: integer Default: 60 Range: 20 to 120 (inclusive)

The number of seconds to wait after signing before automatically publishing the report.

Validation:

  • Minimum: 20 seconds (prevents too-short windows)

  • Maximum: 120 seconds (2 minutes, prevents excessive delays)

  • Must be an integer

Choosing the right delay:

Delay
Best For
Trade-offs

20-30s

High-volume practices, urgent care

Short window; may miss complex errors

45-60s

Balanced workflows, mixed complexity

Good compromise; most common choice

60-90s

Teaching hospitals, quality-focused orgs

Ample review time; slows throughput slightly

90-120s

Complex cases, multi-reader review

Maximum safety; impacts TAT metrics

Recommendations:

  • Start with 60 seconds as a baseline

  • Monitor cancellation rates after 2-4 weeks

  • Adjust based on user feedback and error reduction data

  • Consider your organization's average report complexity

Example calculation:

  • If 5% of reports are cancelled during the delay

  • And fixing those reports post-publication takes 15 minutes each

  • Then 60 seconds × 95% reports = ~60 seconds added TAT

  • But saves 15 minutes × 5% reports = significant time and quality improvement


Allow Immediate Sign

Type: boolean Default: true

Determines whether users can bypass the delay and publish reports immediately via a "Publish Now" button.

When enabled (true):

  • "Publish Now" button appears during countdown

  • Users can expedite publication for urgent cases

  • Critical findings can be communicated faster

  • Users have more control over workflow

When disabled (false):

  • No "Publish Now" button

  • All reports must wait for full delay period

  • Enforces mandatory review window

  • Prevents premature publication

Use cases for enabling:

  • Organizations with frequent critical/urgent findings

  • Practices where radiologists need flexibility

  • Workflows with varying urgency levels

  • Empowering experienced radiologists

Use cases for disabling:

  • Enforcing quality assurance policies

  • Training environments requiring mandatory reviews

  • Organizations with high error rates

  • Regulatory compliance requirements

Middle ground approach:

  • Enable for certain user roles (via permission system)

  • Monitor usage patterns

  • Adjust based on abuse vs. legitimate use

Technical Implementation

How It Works

1

User signs report

Frontend calls:

POST /api/v1/reports/{id}/sign

and user sign action is recorded.

2

Backend creates schedule

  • Report status updates immediately (e.g., to "signed")

  • ReportPublishSchedule record is created with status "scheduled"

  • Task is enqueued with countdown = delay_seconds

3

Countdown runs

  • Frontend polls /api/v1/reports/{id}/publish/status for updates

  • Timer counts down on client side

  • Background task waits on server side

4

Timer expires

  • Worker executes publish_report task

  • Schedule status changes to "executed"

  • report.published event is triggered

  • Webhook is sent to RIS/PACS with final report data

Event Tracking

Report Recall generates these events:

Event Type
When Triggered
Payload

report.signed

User clicks Sign

Sign type, timestamp, report snapshot

report.published

Timer expires or user clicks Publish Now

Sign context, publish context, idempotency key

report.publish_cancelled

User cancels scheduled publication

Cancellation reason, remaining time

Event payload structure:

{
  "sign_context": {
    "sign_type": "SIGN",
    "new_status": "signed",
    "signed_at": "2025-10-14T15:30:00Z",
    "sign_payload": { /* extracted fields */ }
  },
  "publish_context": {
    "trigger": "timer_expired",  // or "user_overridden" or "recall_disabled"
    "delay_seconds": 60,
    "published_at": "2025-10-14T15:31:00Z"
  },
  "idempotency_key": "report_12345_SIGN"
}

API Endpoints

Get publication status:

GET /api/v1/reports/{report_id}/publish/status

Response:

{
  "schedule": {
    "scheduled": true,
    "published": false,
    "status": "scheduled",
    "remaining_seconds": 45,
    "scheduled_at": "2025-10-14T15:31:00Z",
    "delay_seconds": 60,
    "can_cancel": true,
    "is_running": false
  },
  "can_complete_now": true
}

Cancel scheduled publication:

POST /api/v1/reports/{report_id}/publish/cancel
  • Marks schedule as "cancelled"

  • Revokes task

  • Returns report to draft status

  • Clears latest sign event

  • Emits report.publish_cancelled event

Publish immediately:

POST /api/v1/reports/{report_id}/publish/complete
  • Requires allow_immediate_sign: true

  • Marks schedule as "cancelled"

  • Calls publish_report_now() directly

  • Emits report.published event with user_overridden trigger

Integration with Other Features

Report Linking

When Report Recall is combined with Report Linking:

  • Shared schedule: All linked reports have one publication schedule

  • Group-level countdown: Timer applies to entire group

  • Synchronized publishing: All reports publish together when timer expires

  • Unified cancellation: Cancelling returns all reports to draft

  • Group ownership: Schedule is owned by group owner

Example:

  1. User links 3 reports (ACC001, ACC002, ACC003)

  2. User signs the group

  3. One schedule is created for all 3 reports

  4. Countdown begins

  5. If cancelled: all 3 return to draft

  6. If expires: all 3 publish simultaneously via single webhook

Multi-Author Workflows

If your organization has multiple radiologist types (attendings, residents):

  • Schedules respect ownership rules

  • Only report owner can cancel publication

  • Ownership transfer is blocked during countdown

  • Permissions are checked at sign time, not publish time

Addendum Workflow

When creating addendums on signed reports:

  • Original report remains published

  • Addendum gets its own independent schedule

  • Addendum countdown does not affect original

  • Can cancel addendum without affecting base report

Webhook Delivery

Report Recall changes when webhooks fire:

Without Recall (immediate):

sign_report() → report.signed event → report.published event → webhook

With Recall (delayed):

sign_report() → report.signed event → [delay timer] → report.published event → webhook

Critical difference:

  • Your RIS/PACS receives the final report only when report.published fires

  • report.signed is internal workflow status only

  • Adjust your integration to wait for report.published before updating RIS

Security and Permissions

Who Can Cancel?

  • Report owner: Can always cancel

  • Organization admin: Can cancel on behalf of users (via admin interface)

  • Other radiologists: Cannot cancel others' schedules

Who Can Use "Publish Now"?

  • Controlled by allow_immediate_sign configuration

  • If enabled: all users with sign permissions

  • If disabled: no users (hard block)

  • Cannot be overridden by individual user permissions

Audit Trail

All actions are logged:

  • Schedule creation: report.signed event

  • Cancellation: report.publish_cancelled event

  • Manual publish: report.published event with user_overridden trigger

  • Automatic publish: report.published event with timer_expired trigger

Best Practices

Configuration Recommendations

  1. Start conservative: 60-90 seconds, allow immediate sign

  2. Monitor metrics: Cancellation rate, delay utilization, user feedback

  3. Adjust gradually: Change delay in 15-second increments

  4. Document decisions: Keep record of why parameters were chosen

Integration Testing

Before enabling in production:

  1. Test sign → delay → publish flow in staging

  2. Verify webhook timing with RIS/PACS team

  3. Test cancellation and verify rollback behavior

  4. Test immediate publish bypass

  5. Test linked reports publication

FAQ

Q: Does this delay affect turnaround time metrics?

A: It depends on how you measure TAT. The "signed at" timestamp is immediate, but "published at" is delayed. Configure your metrics accordingly.

Q: Can users adjust their own delay times?

A: No. Delay is organization-wide. Future enhancement could support role-based delays.

Q: Does this work with all sign types?

A: Yes. Prelim sign, final sign, addendum prelim, and addendum sign all support Report Recall.

Last updated