Basic Iframe Integration Guide (Coming Soon)
This guide provides instructions for embedding RADPAIR within your application using the simplified iframe integration. This integration is designed for new partners who want to get started quickly with minimal complexity.
This guide covers basic, single-author workflows only. For multi-author workflows, advanced event handling, or complex organizational structures, please refer to the Advanced Integration Guide.
Overview
The Basic Integration is designed to:
Minimize complexity — Reports flow in via HL7 integration, then open them by MRN and accession number
Use industry-standard identifiers — MRN and accession number ensure report uniqueness (no internal report IDs needed)
Handle user management internally — RADPAIR manages user metadata, roles, and authentication
Provide essential status updates — Five core events: opened, closed, saved, discarded, and signed
Integration Workflow (Summary)
HL7 Integration (Handled by Interoperability Partner)
Reports are created and pre-cached via HL7/DICOM before users need them.
Embed Iframe
Add RADPAIR iframe to your application to render the reader UI.
Authenticate
Wait for the
app_readyevent from the iframe.Send the access token.
Wait for
sign_in_successful.
Open Report
Send the MRN, accession number and site id to open the pre-cached report in the iframe.
Listen for Events
Handle core reporting events (opened, saved, signed, discarded, closed).
Step 1: HL7 Integration (Handled by Interoperability Partner)
Report data flows into RADPAIR through our HL7/DICOM interoperability partner. This integration handles the creation and pre-caching of reports before users access them, ensuring instant load times and proper metadata association.
You do not need to implement this step directly. Your RADPAIR representative will coordinate the HL7 integration setup with your interoperability partner.
Report Delivery
When reports are signed, RADPAIR sends report events to the interoperability partner, who transforms them into HL7 ORU (Observation Result) messages for delivery to your downstream systems (PACS, EMR). This includes support for:
Standard reports — Delivered upon signature (or after recall window if enabled)
Linked reports — Multiple studies can be linked to a single report; when signed, events are sent for all linked studies
Data Flow Overview
Endpoint:
Headers:
Request Body:
Required Fields:
mrn
string
Medical Record Number — patient identifier
accession_number
string
Accession number — unique study identifier
site_id
string
Site identifier — used in multi-site organizations to ensure the report is routed to the correct site
Together, MRN and accession number ensure report uniqueness within a site. For multi-site organizations, use the site_id parameter to specify which site the report belongs to.
Optional Metadata Fields
studyDescription
string
Description of the imaging study
clinical_notes
string
Clinical history or reason for exam
laterality
string
Side of body (e.g., "Left", "Right", "Bilateral")
views
string
Imaging views obtained
comparison
string
Prior studies available for comparison
symptom
string
Patient's presenting symptoms
modality
string
Imaging modality (e.g., "CT", "MR", "XR", "US")
contrast
string
Contrast administration details
patient_age
string
Patient's age
patient_gender
string
Patient's gender
pre_findings
string
DICOM SR data or AI-detected findings
findings
string
Pre-populated findings text
Organization Hierarchy in RADPAIR
RADPAIR uses a parent-child organization structure to support multi-site deployments. This is particularly important for healthcare systems with multiple facilities that may have different EMR/HIS systems.
Site ID Purpose and Requirements
The site_id field serves as a critical identifier that:
Maps to HL7 MSH.4 field — Ensures consistency between your HIS/EMR and RADPAIR
Ensures report uniqueness — Prevents duplicate MRN+Accession combinations across sites
Routes reports correctly — Directs reports to the appropriate sub-organization
Required Setup: A parent organization (the one with the API key) must have at least one sub-organization created in RADPAIR. Each sub-organization's name must match the site_id value you'll use in API calls.
Multi-Site Example
Consider a regional health system with multiple campuses, each running different EMR systems:
Parent Organization: Regional Health System API Key: Issued to parent organization Sub-Organizations:
East Campus (site_id:
EAST_MAIN_CAMPUS)West Campus (site_id:
WEST_SATELLITE)Downtown Clinic (site_id:
DOWNTOWN_URGENT)
When sending reports via HL7 integration:
This ensures that even if two different campuses have a patient with the same MRN and coincidentally the same accession number, they'll be treated as separate, unique reports.
Setting Up Sub-Organizations
Single-Site Organizations: If you're operating a single facility, you still need to create one sub-organization under your parent organization. The site_id can be a simple identifier like "MAIN" or your facility code.
Step 2: Embed the Iframe
Add the RADPAIR iframe to your application:
Iframe Attributes
allow="microphone; hid"
Required for dictation and hardware devices (e.g., SpeechMike)
credentialless
Isolates session storage to prevent conflicts with multiple instances
?headless=true
Hides RADPAIR navigation UI for embedded use
Advanced Workflow Control: The Basic Integration covers standard report opening and event listening. For fine-grained control of the RADPAIR interface—such as programmatically controlling dictation recording, signing reports, managing report state (save/discard/close), adding addendums, customizing UI visibility, or configuring notifications—see Further Iframe Interactions during Reporting in the Advanced Integration Guide.
Step 3: Authentication
Obtaining an API Key
Navigate to your organization's settings page in RADPAIR
Click the options menu (⋮) and select "API Keys"
Click "Create New API Key"
Copy and securely store the generated key — it will only be shown once
Creating an Access Token
Endpoint:
Headers:
Request Body:
user_email
string
✅
Email of the user
first_name
string
❌
User's first name
last_name
string
❌
User's last name
Response:
Access tokens expire after 24 hours. User metadata (NPI, roles, unique IDs) is managed within RADPAIR — you do not need to pass these during authentication.
Authenticating the Iframe
Step 4: Open Reports
Once authenticated, open a report by sending both the MRN, accession number and site id:
Required Fields:
mrn
string
Medical Record Number — patient identifier
accession_number
string
Accession number — unique study identifier
site_id
string
Site identifier — used in multi-site organizations to ensure the report is routed to the correct site
Ensuring Report Uniqueness: MRN and accession number together uniquely identify the report within a site. For multi-site organizations where these identifiers may overlap, you can provide the site_id parameter to specify which site the report belongs to.
Example:
Closing Reports
To close the currently open report:
Step 4a: Linking Multiple Reports
RADPAIR supports linking multiple studies from the same patient into a single combined report. This is useful when a radiologist needs to read and report on multiple related studies together (e.g., multiple body parts from the same examination, or comparison studies).
How Report Linking Works
To link multiple reports, send the same MRN with multiple accession numbers. RADPAIR will automatically link these studies together in the system, allowing the radiologist to view and report on them as a unified report.
Opening and Linking Multiple Reports
Required Fields for Linked Reports:
mrn
string
Medical Record Number — must be the same for all linked reports
accession_numbers
string[]
Array of accession numbers to link together
site_id
string
Site identifier — used in multi-site organizations to ensure the report is routed to the correct site
Important: All reports being linked must belong to the same patient (same MRN) and must have been pre-cached via HL7 integration. The studies will be linked together in RADPAIR's system, and when the radiologist signs the combined report, events will be sent for all linked accession numbers.
Example: Linking Three Studies
Events for Linked Reports
When a linked report is signed, RADPAIR will send separate report.signed events for each linked accession number. Your application should handle these events individually:
Step 5: Listen for Events
RADPAIR sends events to notify your application of report state changes. For basic integrations, you only need to handle five core events.
Core Events
report.opened
Report was opened
User opens a report
report.closed
Report was closed
User closes or navigates away from report
report.saved
Report saved as draft
User saves work in progress
report.discarded_completely
Report was discarded
User discards the report (unassigns it, making it available for others)
report.signed
Report was signed
User signs the report (triggers downstream delivery)
Note on report.published: A report.published event also exists, but you can ignore it — report delivery to downstream systems (PACS, EMR) is handled automatically by our HL7 interoperability partner.
Note on Report Recall: If Report Recall is enabled, you will receive a report.signed event at the beginning of the recall period, and then again when the recall window has elapsed (or if the user clicks "Sign Now"). If a user recalls a report during that time, you will receive a report.opened event with a report status of draft.
Event Listener Example
Event Payload Structure
All events include both MRN, accession number and site id for identification:
Key Payload Fields:
mrn
The Medical Record Number
accession_number
The accession number
report_status
Signature type: preliminary, signed, or addendum
user_info
Information about the user who signed
timestamp
Unix timestamp of the event
site_id
The site id
Events return the same mrn , accession_number and site_id from the HL7 integration. You do not need to track internal report IDs.
Complete Integration Example
Report Status Values
Events include a report_status field indicating the current state:
draft
Report is being worked on, not yet signed
preliminary
Preliminary read (resident/trainee signature)
signed
Final signature by attending radiologist
addendum
Addendum added to a signed report
Troubleshooting
Use the expandable items below to view common troubleshooting scenarios.
"Not authenticated" errors
Verify the access token is valid (tokens expire after 24 hours)
Ensure you received
sign_in_successfulbefore opening reports
Report not opening
Verify the report exists (was received via HL7 integration)
Check that both MRN and accession number match exactly
Ensure the user belongs to the organization where the report was created
In rare cases with complex multi-site organizations, verify the
org_pathis correctFor linked reports, ensure all accession numbers have been pre-cached and belong to the same MRN
Events not received
Confirm event listener is checking the correct origin
Ensure iframe is loaded before adding the listener
Linked reports not working
Verify all accession numbers belong to the same patient (same MRN)
Ensure all studies have been pre-cached via HL7 integration
Check that you're using the
accession_numbersarray (plural) for linked reports
Support
For integration support, contact your RADPAIR representative or email [email protected].
Last updated
