Skip to content
Get started

Webhooks

Unwrap
webhooks.unwrap()
Function
Unsafe Unwrap
webhooks.unsafe_unwrap()
Function
ModelsExpand Collapse
class ClinicalContextEnrichmentDocument:

Inline text document for clinical history synthesize

content: List[str]

Text chunks for the document

file_name: str
minLength1
maxLength500
class ClinicalContextEnrichmentDocumentURL:

Remote document URL (https) for Avara to fetch/summarize

url: str

Must use https://

formaturi
file_name: Optional[str]
minLength1
maxLength500
class ClinicalContextEnrichmentPriorReport:

External prior report metadata and text for clinical context

report_text: str

Full prior report text

maxLength50000
external_study_id: Optional[str]
maxLength256
modality: Optional[str]
maxLength100
study_date: Optional[str]

YYYY-MM-DD

study_description: Optional[str]
maxLength1000
class ClinicalContextEnrichmentRequestedEvent:

Soft synchronous webhook sent when AutoScribe needs clinical context from the partner EHR. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft clinical context enrichment when AutoScribe needs EHR context for a study

clinic_id: str

Clinic UUID

formatuuid
study_id: str

Raw study UUID v4 (not branded stu_…)

formatuuid
study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

mrn: Optional[str]

Medical record number when available

type: Literal["clinical_context.enrichment_requested"]

Event type identifier

class ClinicalContextEnrichmentRequestedEventData:

Event payload for soft clinical context enrichment when AutoScribe needs EHR context for a study

clinic_id: str

Clinic UUID

formatuuid
study_id: str

Raw study UUID v4 (not branded stu_…)

formatuuid
study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

mrn: Optional[str]

Medical record number when available

class ClinicalContextEnrichmentRequestedResponse:

Soft enrichment response. No authorized field — return any subset of fields (including {}).

clinical_indication: Optional[str]
documents: Optional[List[ClinicalContextEnrichmentDocument]]
content: List[str]

Text chunks for the document

file_name: str
minLength1
maxLength500
document_urls: Optional[List[ClinicalContextEnrichmentDocumentURL]]
url: str

Must use https://

formaturi
file_name: Optional[str]
minLength1
maxLength500
prior_reports: Optional[List[ClinicalContextEnrichmentPriorReport]]
report_text: str

Full prior report text

maxLength50000
external_study_id: Optional[str]
maxLength256
modality: Optional[str]
maxLength100
study_date: Optional[str]

YYYY-MM-DD

study_description: Optional[str]
maxLength1000
technologist_notes: Optional[List[str]]
technologist_technique: Optional[str]
class EphemeralAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for an ephemeral viewer session. This is a synchronous webhook — you must respond with the URLs within the request timeout. There is no Avara study; use retrievalId (and optional options) to resolve images.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for an ephemeral viewer session. retrievalId is the customer handle from mint. options is echoed verbatim when present; Avara does not read or edit it.

retrieval_id: str

Opaque customer handle for this view session. Not an Avara study ID.

minLength1
options: Optional[Dict[str, object]]

Optional JSON object echoed verbatim from mint. Avara does not read or edit it. Examples: studyInstanceUids or internal ids for multi-study reads. Not for URLs or manifests.

type: Literal["ephemeral.access_requested"]

Event type identifier

class EphemeralAccessRequestedEventData:

Event payload for an ephemeral viewer session. retrievalId is the customer handle from mint. options is echoed verbatim when present; Avara does not read or edit it.

retrieval_id: str

Opaque customer handle for this view session. Not an Avara study ID.

minLength1
options: Optional[Dict[str, object]]

Optional JSON object echoed verbatim from mint. Avara does not read or edit it. Examples: studyInstanceUids or internal ids for multi-study reads. Not for URLs or manifests.

class EphemeralAccessRequestedResponse:

Synchronous response with presigned DICOM URLs and optionally non-DICOM media. Optionally include a manifests array (one study per item) to improve progressive loading of legacy DICOM; it is not required.

authorized: bool

Whether access is authorized for this ephemeral session

urls: List[str]

Flat list of presigned URLs for DICOM images across the session.

error: Optional[str]

Error message if authorization failed or URLs cannot be provided

manifests: Optional[List[StudyAccessRequestedManifest]]

Optional sidecars, one study per item (an array, not a single object). Not required — omit if you do not have them. Recommended when you can provide them, especially for very large or multi-study legacy DICOM. Enables progressive loading so readers can scroll before every file is parsed. Invalid or incomplete values are ignored; URLs still load.

Planable series in this study. At least one must survive validation.

modality: str

Non-empty DICOM modality. Common: CT, MR, CR, DX, US, XA, PT, NM, MG. Secondary capture (SC) is not necessary.

series_description: str

Non-empty display string shown in the viewer sidebar.

series_instance_uid: str

DICOM Series Instance UID. Non-empty string.

series_number: Union[str, float]

Series number. String or number (1 or “1”).

One of the following:
str
float

SOPs in this series. At least one must survive validation.

sop_class_uid: str

DICOM SOP Class UID. Progressive load uses legacy single-frame image classes. Common: CT 1.2.840.10008.5.1.4.1.1.2, MR 1.2.840.10008.5.1.4.1.1.4, plus CR / DX / US / XA / PT. Enhanced multi-frame classes already load progressively from the single SOP — the sidecar is not used for them. SR / PR / KO do not need geometry.

sop_instance_uid: str

DICOM SOP Instance UID. Non-empty string.

bits_allocated: Optional[float]

Required on image SOPs. Planner uses 8, 16, or 32 (or the float flags). Typical CT/MR: 16.

bits_stored: Optional[float]

Optional. Typical CT/MR: 12 or 16.

columns: Optional[float]

Image columns. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

high_bit: Optional[float]

Optional. Typical 16-bit: 15.

instance_number: Optional[float]

Slice order (DICOM Instance Number). Omit or 0 if unknown; UID is the tie-break.

is_double_float_pixel_data: Optional[bool]

Set true only if pixel data is 64-bit float.

is_float_pixel_data: Optional[bool]

Set true only if pixel data is 32-bit float.

number_of_frames: Optional[float]

1 for single-frame files. Greater than 1 only if this SOP is multi-frame.

photometric_interpretation: Optional[str]

Required non-empty string on image SOPs. Common: MONOCHROME2 (CT/MR), MONOCHROME1 (often MG, inverted), RGB, PALETTE COLOR, YBR_FULL, YBR_FULL_422. Unknown strings are kept and treated as mono unless samplesPerPixel is 3. Wrong type (number/null) drops that SOP from optimized path.

pixel_representation: Optional[float]

0 unsigned, 1 signed. Typical CT: 0.

rescale_intercept: Optional[float]

Optional. Typical CT: -1024. Safe to omit.

rescale_slope: Optional[float]

Optional. Typical CT: 1. Safe to omit.

rows: Optional[float]

Image rows. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

samples_per_pixel: Optional[float]

Required on image SOPs. 1 grayscale, 3 color. 3 is treated as color even if photometric is unusual.

study_instance_uid: str

DICOM Study Instance UID for this study. Non-empty string. Must match the study being requested.

media_urls: Optional[List[StudyAccessRequestedMediaURL]]

Optional presigned URLs for non-DICOM media (images, PDFs, videos).

mime_type: str

MIME type of the media file (e.g., application/pdf, image/jpeg, video/mp4)

url: str

Presigned URL to download the media file

formaturi
file_name: Optional[str]

Optional display name for the media file

class ModalityWorklistItem:

One worklist item shaped for direct DICOM Dataset construction on the on-prem box. Field names are PascalCase DICOM-style intentionally.

accession_number: str

Accession number (DICOM SH, max 16)

maxLength16
modality: str
patient_birth_date: str

Patient birth date (DICOM DA: YYYYMMDD)

patient_id: str
patient_name: str

DICOM PN / HL7 format: LAST^FIRST[^MIDDLE^PREFIX^SUFFIX]

maxLength64
patient_sex: str

DICOM PatientSex: M, F, or O

patient_size: str

Height in meters. Empty string allowed; if set must be numeric (typical range 0.4–2.5).

patient_weight: str

Weight in kilograms. Empty string allowed; if set must be numeric (typical range 1–400).

protocol_name: str
requested_procedure_description: str
scheduled_procedure_step_sequence: List[ModalityWorklistScheduledStep]

Scheduled procedure steps for this worklist item. Most appointments/studies have a single step; include additional steps only when the RIS schedules multiple.

modality: str

Modality for this scheduled step

scheduled_procedure_step_description: str

Human-readable description of the scheduled step

scheduled_procedure_step_id: str

Scheduled procedure step identifier (DICOM SH, max 16)

maxLength16
scheduled_procedure_step_start_date: str

Scheduled start date (DICOM DA: YYYYMMDD)

scheduled_procedure_step_start_time: str

Scheduled start time (DICOM TM: HHMMSS)

study_description: str
study_instance_uid: str

Required from partner RIS today; do not omit.

class ModalityWorklistRequestedEvent:

Webhook event sent when an on-prem modality issues a C-FIND MWL. This is a synchronous webhook - you must respond with authorized + items within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for a modality worklist (C-FIND MWL) request

calling_ae: str

Calling AE title from the modality

clinic_id: str

Clinic UUID that owns the modality / worklist query

formatuuid
date_end: str

Inclusive worklist window end date (YYYY-MM-DD)

date_start: str

Inclusive worklist window start date (YYYY-MM-DD)

source_ip: str

Source IP observed by Avara for the modality request

modality: Optional[str]

Present when the modality C-FIND included a modality filter

type: Literal["modality_worklist.requested"]

Event type identifier

class ModalityWorklistRequestedEventData:

Event payload for a modality worklist (C-FIND MWL) request

calling_ae: str

Calling AE title from the modality

clinic_id: str

Clinic UUID that owns the modality / worklist query

formatuuid
date_end: str

Inclusive worklist window end date (YYYY-MM-DD)

date_start: str

Inclusive worklist window start date (YYYY-MM-DD)

source_ip: str

Source IP observed by Avara for the modality request

modality: Optional[str]

Present when the modality C-FIND included a modality filter

class ModalityWorklistRequestedResponse:

Response expected by Avara for modality worklist webhook. authorized:false surfaces as worklist failure; authorized:true with empty items means no scheduled exams.

authorized: bool

Whether the worklist query is authorized

Worklist items for the requested date window

accession_number: str

Accession number (DICOM SH, max 16)

maxLength16
modality: str
patient_birth_date: str

Patient birth date (DICOM DA: YYYYMMDD)

patient_id: str
patient_name: str

DICOM PN / HL7 format: LAST^FIRST[^MIDDLE^PREFIX^SUFFIX]

maxLength64
patient_sex: str

DICOM PatientSex: M, F, or O

patient_size: str

Height in meters. Empty string allowed; if set must be numeric (typical range 0.4–2.5).

patient_weight: str

Weight in kilograms. Empty string allowed; if set must be numeric (typical range 1–400).

protocol_name: str
requested_procedure_description: str
scheduled_procedure_step_sequence: List[ModalityWorklistScheduledStep]

Scheduled procedure steps for this worklist item. Most appointments/studies have a single step; include additional steps only when the RIS schedules multiple.

modality: str

Modality for this scheduled step

scheduled_procedure_step_description: str

Human-readable description of the scheduled step

scheduled_procedure_step_id: str

Scheduled procedure step identifier (DICOM SH, max 16)

maxLength16
scheduled_procedure_step_start_date: str

Scheduled start date (DICOM DA: YYYYMMDD)

scheduled_procedure_step_start_time: str

Scheduled start time (DICOM TM: HHMMSS)

study_description: str
study_instance_uid: str

Required from partner RIS today; do not omit.

error: Optional[str]

Error message if authorization failed

class ModalityWorklistScheduledStep:

Scheduled procedure step used to construct DICOM MWL datasets

modality: str

Modality for this scheduled step

scheduled_procedure_step_description: str

Human-readable description of the scheduled step

scheduled_procedure_step_id: str

Scheduled procedure step identifier (DICOM SH, max 16)

maxLength16
scheduled_procedure_step_start_date: str

Scheduled start date (DICOM DA: YYYYMMDD)

scheduled_procedure_step_start_time: str

Scheduled start time (DICOM TM: HHMMSS)

class PatientStudyEnrichmentRequestedEvent:

Soft synchronous webhook sent after Avara PACS seeds a study so the partner can enrich demographics and report headers. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft patient/study enrichment after Avara PACS seeds a study

clinic_id: str

Clinic UUID

formatuuid
study_instance_uid: str

DICOM Study Instance UID

accession_number: Optional[str]

Accession number from DICOM when available

patient_id: Optional[str]

Patient ID from DICOM when available

type: Literal["patient_study.enrichment_requested"]

Event type identifier

class PatientStudyEnrichmentRequestedEventData:

Event payload for soft patient/study enrichment after Avara PACS seeds a study

clinic_id: str

Clinic UUID

formatuuid
study_instance_uid: str

DICOM Study Instance UID

accession_number: Optional[str]

Accession number from DICOM when available

patient_id: Optional[str]

Patient ID from DICOM when available

class PatientStudyEnrichmentRequestedResponse:

Soft enrichment response. No authorized field — return any subset of fields (including {}). Avara merges per-field with DICOM light metadata then defaults. Optional expressCustomerId: if present and a valid cus_ id for this clinic, Avara sets it on the created study. If present but not usable, Avara ignores it, applies other fields, and logs a warning.

date_of_birth: Optional[str]

YYYY-MM-DD

express_customer_id: Optional[str]

Optional Express customer to attach to the created study. Format: cus_{32 hex chars}. Must belong to the clinic in the request. Omit to leave the study unscoped. If present but not usable, Avara ignores this field, applies any other enrichment fields, and logs a warning on the webhook event.

external_patient_id: Optional[str]
facility_name: Optional[str]
height: Optional[Height]
unit: Literal["in", "cm"]
One of the following:
"in"
"cm"
value: float
minimum0
mrn: Optional[str]
patient_name: Optional[str]
procedure: Optional[str]
referring_physician_name: Optional[str]
severity: Optional[Literal["normal", "high", "stat"]]
One of the following:
"normal"
"high"
"stat"
sex: Optional[Literal["male", "female", "other"]]
One of the following:
"male"
"female"
"other"
study_date: Optional[str]

YYYY-MM-DD

study_description: Optional[str]
study_time: Optional[str]

HH:MM or HH:MM:SS[.fff]; Avara may truncate to HH:MM

weight: Optional[Weight]
unit: Literal["lbs", "kg"]
One of the following:
"lbs"
"kg"
value: float
minimum0
class ReportDeliveredEvent:

Webhook event sent when a report is completed. This is an asynchronous notification - respond with a simple acknowledgment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing report and study information

is_critical: bool

Whether the report was marked critical at sign-off.

presigned_url: str

Presigned URL for PDF download. Time-limited, typically valid for 1 hour.

formaturi
report_id: str

Avara report ID. Format: rep_{32-hex-chars}

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

plain_text: Optional[str]

Report plain text content (optional). Contains the full report text.

type: Literal["report.delivered"]

Event type identifier

class ReportDeliveredEventData:

Event payload containing report and study information

is_critical: bool

Whether the report was marked critical at sign-off.

presigned_url: str

Presigned URL for PDF download. Time-limited, typically valid for 1 hour.

formaturi
report_id: str

Avara report ID. Format: rep_{32-hex-chars}

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

plain_text: Optional[str]

Report plain text content (optional). Contains the full report text.

class ReportDeliveredResponse:

Response expected by Avara for report delivery webhook. Simple acknowledgment.

success: bool

Acknowledgment of receipt. Return true to confirm delivery.

class SecondaryCaptureAccessRequestedEvent:

Webhook event sent when Avara needs presigned UPLOAD URLs for a secondary capture DICOM. This is a synchronous webhook - you must respond with the upload URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study + (optional) series/SOP information for a secondary capture upload

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

series_instance_uid: Optional[str]

DICOM Series Instance UID generated for the new secondary capture series (when available).

sop_instance_uid: Optional[str]

DICOM SOP Instance UID generated for the new secondary capture object (when available).

type: Literal["secondary_capture.access_requested"]

Event type identifier

class SecondaryCaptureAccessRequestedEventData:

Event payload containing study + (optional) series/SOP information for a secondary capture upload

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

series_instance_uid: Optional[str]

DICOM Series Instance UID generated for the new secondary capture series (when available).

sop_instance_uid: Optional[str]

DICOM SOP Instance UID generated for the new secondary capture object (when available).

class SecondaryCaptureAccessRequestedResponse:

Response expected by Avara for the secondary capture webhook. Provide presigned PUT URLs the viewer will upload the DICOM to.

authorized: bool

Whether the secondary capture upload is authorized for this study

upload_urls: List[str]

Presigned PUT URLs for uploading the secondary capture DICOM. The viewer uploads the same object to every URL.

content_creator_name: Optional[str]

Optional content creator name. Avara derives this server-side; this field is ignored if provided.

error: Optional[str]

Error message if authorization failed or upload URLs cannot be provided

class StudyAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for DICOM images. This is a synchronous webhook - you must respond with the URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study information

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

type: Literal["study.access_requested"]

Event type identifier

class StudyAccessRequestedEventData:

Event payload containing study information

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

class StudyAccessRequestedManifest:

Optional sidecar for this one study (one object, not an array). Not required — omit if you do not have it. Recommended when you can provide it, especially for very large studies. Enables progressive loading of legacy multi-SOP DICOM so readers can scroll before every file is parsed. Include only this study. Series you cannot describe can be left out. Invalid or incomplete values are ignored; URLs still load.

Planable series in this study. At least one must survive validation.

modality: str

Non-empty DICOM modality. Common: CT, MR, CR, DX, US, XA, PT, NM, MG. Secondary capture (SC) is not necessary.

series_description: str

Non-empty display string shown in the viewer sidebar.

series_instance_uid: str

DICOM Series Instance UID. Non-empty string.

series_number: Union[str, float]

Series number. String or number (1 or “1”).

One of the following:
str
float

SOPs in this series. At least one must survive validation.

sop_class_uid: str

DICOM SOP Class UID. Progressive load uses legacy single-frame image classes. Common: CT 1.2.840.10008.5.1.4.1.1.2, MR 1.2.840.10008.5.1.4.1.1.4, plus CR / DX / US / XA / PT. Enhanced multi-frame classes already load progressively from the single SOP — the sidecar is not used for them. SR / PR / KO do not need geometry.

sop_instance_uid: str

DICOM SOP Instance UID. Non-empty string.

bits_allocated: Optional[float]

Required on image SOPs. Planner uses 8, 16, or 32 (or the float flags). Typical CT/MR: 16.

bits_stored: Optional[float]

Optional. Typical CT/MR: 12 or 16.

columns: Optional[float]

Image columns. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

high_bit: Optional[float]

Optional. Typical 16-bit: 15.

instance_number: Optional[float]

Slice order (DICOM Instance Number). Omit or 0 if unknown; UID is the tie-break.

is_double_float_pixel_data: Optional[bool]

Set true only if pixel data is 64-bit float.

is_float_pixel_data: Optional[bool]

Set true only if pixel data is 32-bit float.

number_of_frames: Optional[float]

1 for single-frame files. Greater than 1 only if this SOP is multi-frame.

photometric_interpretation: Optional[str]

Required non-empty string on image SOPs. Common: MONOCHROME2 (CT/MR), MONOCHROME1 (often MG, inverted), RGB, PALETTE COLOR, YBR_FULL, YBR_FULL_422. Unknown strings are kept and treated as mono unless samplesPerPixel is 3. Wrong type (number/null) drops that SOP from optimized path.

pixel_representation: Optional[float]

0 unsigned, 1 signed. Typical CT: 0.

rescale_intercept: Optional[float]

Optional. Typical CT: -1024. Safe to omit.

rescale_slope: Optional[float]

Optional. Typical CT: 1. Safe to omit.

rows: Optional[float]

Image rows. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

samples_per_pixel: Optional[float]

Required on image SOPs. 1 grayscale, 3 color. 3 is treated as color even if photometric is unusual.

study_instance_uid: str

DICOM Study Instance UID for this study. Non-empty string. Must match the study being requested.

class StudyAccessRequestedManifestSeries:

One series in the optional study manifest. Series you cannot describe can be left out. Secondary capture is not necessary. Enhanced multi-frame series already load progressively without this sidecar. A series with no surviving SOPs is dropped.

modality: str

Non-empty DICOM modality. Common: CT, MR, CR, DX, US, XA, PT, NM, MG. Secondary capture (SC) is not necessary.

series_description: str

Non-empty display string shown in the viewer sidebar.

series_instance_uid: str

DICOM Series Instance UID. Non-empty string.

series_number: Union[str, float]

Series number. String or number (1 or “1”).

One of the following:
str
float

SOPs in this series. At least one must survive validation.

sop_class_uid: str

DICOM SOP Class UID. Progressive load uses legacy single-frame image classes. Common: CT 1.2.840.10008.5.1.4.1.1.2, MR 1.2.840.10008.5.1.4.1.1.4, plus CR / DX / US / XA / PT. Enhanced multi-frame classes already load progressively from the single SOP — the sidecar is not used for them. SR / PR / KO do not need geometry.

sop_instance_uid: str

DICOM SOP Instance UID. Non-empty string.

bits_allocated: Optional[float]

Required on image SOPs. Planner uses 8, 16, or 32 (or the float flags). Typical CT/MR: 16.

bits_stored: Optional[float]

Optional. Typical CT/MR: 12 or 16.

columns: Optional[float]

Image columns. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

high_bit: Optional[float]

Optional. Typical 16-bit: 15.

instance_number: Optional[float]

Slice order (DICOM Instance Number). Omit or 0 if unknown; UID is the tie-break.

is_double_float_pixel_data: Optional[bool]

Set true only if pixel data is 64-bit float.

is_float_pixel_data: Optional[bool]

Set true only if pixel data is 32-bit float.

number_of_frames: Optional[float]

1 for single-frame files. Greater than 1 only if this SOP is multi-frame.

photometric_interpretation: Optional[str]

Required non-empty string on image SOPs. Common: MONOCHROME2 (CT/MR), MONOCHROME1 (often MG, inverted), RGB, PALETTE COLOR, YBR_FULL, YBR_FULL_422. Unknown strings are kept and treated as mono unless samplesPerPixel is 3. Wrong type (number/null) drops that SOP from optimized path.

pixel_representation: Optional[float]

0 unsigned, 1 signed. Typical CT: 0.

rescale_intercept: Optional[float]

Optional. Typical CT: -1024. Safe to omit.

rescale_slope: Optional[float]

Optional. Typical CT: 1. Safe to omit.

rows: Optional[float]

Image rows. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

samples_per_pixel: Optional[float]

Required on image SOPs. 1 grayscale, 3 color. 3 is treated as color even if photometric is unusual.

class StudyAccessRequestedManifestSop:

One SOP in the optional study manifest. Identity (sopInstanceUID, sopClassUID) is always required. For image SOPs, also include rows, columns, bitsAllocated, photometricInterpretation, and samplesPerPixel or that SOP is dropped. SR / PR / KO do not need geometry. Wrong types or missing required fields drop that SOP only; sibling SOPs and URLs still load.

sop_class_uid: str

DICOM SOP Class UID. Progressive load uses legacy single-frame image classes. Common: CT 1.2.840.10008.5.1.4.1.1.2, MR 1.2.840.10008.5.1.4.1.1.4, plus CR / DX / US / XA / PT. Enhanced multi-frame classes already load progressively from the single SOP — the sidecar is not used for them. SR / PR / KO do not need geometry.

sop_instance_uid: str

DICOM SOP Instance UID. Non-empty string.

bits_allocated: Optional[float]

Required on image SOPs. Planner uses 8, 16, or 32 (or the float flags). Typical CT/MR: 16.

bits_stored: Optional[float]

Optional. Typical CT/MR: 12 or 16.

columns: Optional[float]

Image columns. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

high_bit: Optional[float]

Optional. Typical 16-bit: 15.

instance_number: Optional[float]

Slice order (DICOM Instance Number). Omit or 0 if unknown; UID is the tie-break.

is_double_float_pixel_data: Optional[bool]

Set true only if pixel data is 64-bit float.

is_float_pixel_data: Optional[bool]

Set true only if pixel data is 32-bit float.

number_of_frames: Optional[float]

1 for single-frame files. Greater than 1 only if this SOP is multi-frame.

photometric_interpretation: Optional[str]

Required non-empty string on image SOPs. Common: MONOCHROME2 (CT/MR), MONOCHROME1 (often MG, inverted), RGB, PALETTE COLOR, YBR_FULL, YBR_FULL_422. Unknown strings are kept and treated as mono unless samplesPerPixel is 3. Wrong type (number/null) drops that SOP from optimized path.

pixel_representation: Optional[float]

0 unsigned, 1 signed. Typical CT: 0.

rescale_intercept: Optional[float]

Optional. Typical CT: -1024. Safe to omit.

rescale_slope: Optional[float]

Optional. Typical CT: 1. Safe to omit.

rows: Optional[float]

Image rows. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

samples_per_pixel: Optional[float]

Required on image SOPs. 1 grayscale, 3 color. 3 is treated as color even if photometric is unusual.

class StudyAccessRequestedMediaURL:

Presigned URL for non-DICOM media (images, PDFs, videos)

mime_type: str

MIME type of the media file (e.g., application/pdf, image/jpeg, video/mp4)

url: str

Presigned URL to download the media file

formaturi
file_name: Optional[str]

Optional display name for the media file

class StudyAccessRequestedResponse:

Response expected by Avara for study access webhook. Provide presigned URLs for DICOM images and optionally non-DICOM media. Optionally include a study manifest to improve progressive loading of legacy DICOM; it is not required.

authorized: bool

Whether access is authorized for this study

urls: List[str]

Flat list of presigned URLs for DICOM images. Include all image URLs for the study.

error: Optional[str]

Error message if authorization failed or URLs cannot be provided

manifest: Optional[StudyAccessRequestedManifest]

Optional sidecar for this one study (one object, not an array). Not required — omit if you do not have it. Recommended when you can provide it, especially for very large studies. Enables progressive loading of legacy multi-SOP DICOM so readers can scroll before every file is parsed. Invalid or incomplete values are ignored; URLs still load.

Planable series in this study. At least one must survive validation.

modality: str

Non-empty DICOM modality. Common: CT, MR, CR, DX, US, XA, PT, NM, MG. Secondary capture (SC) is not necessary.

series_description: str

Non-empty display string shown in the viewer sidebar.

series_instance_uid: str

DICOM Series Instance UID. Non-empty string.

series_number: Union[str, float]

Series number. String or number (1 or “1”).

One of the following:
str
float

SOPs in this series. At least one must survive validation.

sop_class_uid: str

DICOM SOP Class UID. Progressive load uses legacy single-frame image classes. Common: CT 1.2.840.10008.5.1.4.1.1.2, MR 1.2.840.10008.5.1.4.1.1.4, plus CR / DX / US / XA / PT. Enhanced multi-frame classes already load progressively from the single SOP — the sidecar is not used for them. SR / PR / KO do not need geometry.

sop_instance_uid: str

DICOM SOP Instance UID. Non-empty string.

bits_allocated: Optional[float]

Required on image SOPs. Planner uses 8, 16, or 32 (or the float flags). Typical CT/MR: 16.

bits_stored: Optional[float]

Optional. Typical CT/MR: 12 or 16.

columns: Optional[float]

Image columns. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

high_bit: Optional[float]

Optional. Typical 16-bit: 15.

instance_number: Optional[float]

Slice order (DICOM Instance Number). Omit or 0 if unknown; UID is the tie-break.

is_double_float_pixel_data: Optional[bool]

Set true only if pixel data is 64-bit float.

is_float_pixel_data: Optional[bool]

Set true only if pixel data is 32-bit float.

number_of_frames: Optional[float]

1 for single-frame files. Greater than 1 only if this SOP is multi-frame.

photometric_interpretation: Optional[str]

Required non-empty string on image SOPs. Common: MONOCHROME2 (CT/MR), MONOCHROME1 (often MG, inverted), RGB, PALETTE COLOR, YBR_FULL, YBR_FULL_422. Unknown strings are kept and treated as mono unless samplesPerPixel is 3. Wrong type (number/null) drops that SOP from optimized path.

pixel_representation: Optional[float]

0 unsigned, 1 signed. Typical CT: 0.

rescale_intercept: Optional[float]

Optional. Typical CT: -1024. Safe to omit.

rescale_slope: Optional[float]

Optional. Typical CT: 1. Safe to omit.

rows: Optional[float]

Image rows. Required on image SOPs. Positive integer. Common: 256, 512, 1024.

samples_per_pixel: Optional[float]

Required on image SOPs. 1 grayscale, 3 color. 3 is treated as color even if photometric is unusual.

study_instance_uid: str

DICOM Study Instance UID for this study. Non-empty string. Must match the study being requested.

media_urls: Optional[List[StudyAccessRequestedMediaURL]]

Optional presigned URLs for non-DICOM media (images, PDFs, videos) associated with the study.

mime_type: str

MIME type of the media file (e.g., application/pdf, image/jpeg, video/mp4)

url: str

Presigned URL to download the media file

formaturi
file_name: Optional[str]

Optional display name for the media file

Union of all Avara webhook event types. Use the ‘type’ field to discriminate between event types. Events: study.access_requested (synchronous), ephemeral.access_requested (synchronous), report.delivered (asynchronous), secondary_capture.access_requested (synchronous), modality_worklist.requested (synchronous), patient_study.enrichment_requested (synchronous soft), clinical_context.enrichment_requested (synchronous soft).

One of the following:
class StudyAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for DICOM images. This is a synchronous webhook - you must respond with the URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study information

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

type: Literal["study.access_requested"]

Event type identifier

class EphemeralAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for an ephemeral viewer session. This is a synchronous webhook — you must respond with the URLs within the request timeout. There is no Avara study; use retrievalId (and optional options) to resolve images.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for an ephemeral viewer session. retrievalId is the customer handle from mint. options is echoed verbatim when present; Avara does not read or edit it.

retrieval_id: str

Opaque customer handle for this view session. Not an Avara study ID.

minLength1
options: Optional[Dict[str, object]]

Optional JSON object echoed verbatim from mint. Avara does not read or edit it. Examples: studyInstanceUids or internal ids for multi-study reads. Not for URLs or manifests.

type: Literal["ephemeral.access_requested"]

Event type identifier

class ReportDeliveredEvent:

Webhook event sent when a report is completed. This is an asynchronous notification - respond with a simple acknowledgment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing report and study information

is_critical: bool

Whether the report was marked critical at sign-off.

presigned_url: str

Presigned URL for PDF download. Time-limited, typically valid for 1 hour.

formaturi
report_id: str

Avara report ID. Format: rep_{32-hex-chars}

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

plain_text: Optional[str]

Report plain text content (optional). Contains the full report text.

type: Literal["report.delivered"]

Event type identifier

class SecondaryCaptureAccessRequestedEvent:

Webhook event sent when Avara needs presigned UPLOAD URLs for a secondary capture DICOM. This is a synchronous webhook - you must respond with the upload URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study + (optional) series/SOP information for a secondary capture upload

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

series_instance_uid: Optional[str]

DICOM Series Instance UID generated for the new secondary capture series (when available).

sop_instance_uid: Optional[str]

DICOM SOP Instance UID generated for the new secondary capture object (when available).

type: Literal["secondary_capture.access_requested"]

Event type identifier

class ModalityWorklistRequestedEvent:

Webhook event sent when an on-prem modality issues a C-FIND MWL. This is a synchronous webhook - you must respond with authorized + items within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for a modality worklist (C-FIND MWL) request

calling_ae: str

Calling AE title from the modality

clinic_id: str

Clinic UUID that owns the modality / worklist query

formatuuid
date_end: str

Inclusive worklist window end date (YYYY-MM-DD)

date_start: str

Inclusive worklist window start date (YYYY-MM-DD)

source_ip: str

Source IP observed by Avara for the modality request

modality: Optional[str]

Present when the modality C-FIND included a modality filter

type: Literal["modality_worklist.requested"]

Event type identifier

class PatientStudyEnrichmentRequestedEvent:

Soft synchronous webhook sent after Avara PACS seeds a study so the partner can enrich demographics and report headers. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft patient/study enrichment after Avara PACS seeds a study

clinic_id: str

Clinic UUID

formatuuid
study_instance_uid: str

DICOM Study Instance UID

accession_number: Optional[str]

Accession number from DICOM when available

patient_id: Optional[str]

Patient ID from DICOM when available

type: Literal["patient_study.enrichment_requested"]

Event type identifier

class ClinicalContextEnrichmentRequestedEvent:

Soft synchronous webhook sent when AutoScribe needs clinical context from the partner EHR. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft clinical context enrichment when AutoScribe needs EHR context for a study

clinic_id: str

Clinic UUID

formatuuid
study_id: str

Raw study UUID v4 (not branded stu_…)

formatuuid
study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

mrn: Optional[str]

Medical record number when available

type: Literal["clinical_context.enrichment_requested"]

Event type identifier

Webhook event sent when Avara needs presigned URLs for an ephemeral viewer session. This is a synchronous webhook — you must respond with the URLs within the request timeout. There is no Avara study; use retrievalId (and optional options) to resolve images.

One of the following:
class EphemeralAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for an ephemeral viewer session. This is a synchronous webhook — you must respond with the URLs within the request timeout. There is no Avara study; use retrievalId (and optional options) to resolve images.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for an ephemeral viewer session. retrievalId is the customer handle from mint. options is echoed verbatim when present; Avara does not read or edit it.

retrieval_id: str

Opaque customer handle for this view session. Not an Avara study ID.

minLength1
options: Optional[Dict[str, object]]

Optional JSON object echoed verbatim from mint. Avara does not read or edit it. Examples: studyInstanceUids or internal ids for multi-study reads. Not for URLs or manifests.

type: Literal["ephemeral.access_requested"]

Event type identifier

class StudyAccessRequestedEvent:

Webhook event sent when Avara needs presigned URLs for DICOM images. This is a synchronous webhook - you must respond with the URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study information

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

type: Literal["study.access_requested"]

Event type identifier

class ReportDeliveredEvent:

Webhook event sent when a report is completed. This is an asynchronous notification - respond with a simple acknowledgment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing report and study information

is_critical: bool

Whether the report was marked critical at sign-off.

presigned_url: str

Presigned URL for PDF download. Time-limited, typically valid for 1 hour.

formaturi
report_id: str

Avara report ID. Format: rep_{32-hex-chars}

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

plain_text: Optional[str]

Report plain text content (optional). Contains the full report text.

type: Literal["report.delivered"]

Event type identifier

class SecondaryCaptureAccessRequestedEvent:

Webhook event sent when Avara needs presigned UPLOAD URLs for a secondary capture DICOM. This is a synchronous webhook - you must respond with the upload URLs within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload containing study + (optional) series/SOP information for a secondary capture upload

study_id: str

Avara study ID. Format: stu_{32-hex-chars}

study_instance_uid: str

DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., ‘1.2.840.10008.5.1.4.1.1.2’)

series_instance_uid: Optional[str]

DICOM Series Instance UID generated for the new secondary capture series (when available).

sop_instance_uid: Optional[str]

DICOM SOP Instance UID generated for the new secondary capture object (when available).

type: Literal["secondary_capture.access_requested"]

Event type identifier

class ModalityWorklistRequestedEvent:

Webhook event sent when an on-prem modality issues a C-FIND MWL. This is a synchronous webhook - you must respond with authorized + items within the request timeout.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for a modality worklist (C-FIND MWL) request

calling_ae: str

Calling AE title from the modality

clinic_id: str

Clinic UUID that owns the modality / worklist query

formatuuid
date_end: str

Inclusive worklist window end date (YYYY-MM-DD)

date_start: str

Inclusive worklist window start date (YYYY-MM-DD)

source_ip: str

Source IP observed by Avara for the modality request

modality: Optional[str]

Present when the modality C-FIND included a modality filter

type: Literal["modality_worklist.requested"]

Event type identifier

class PatientStudyEnrichmentRequestedEvent:

Soft synchronous webhook sent after Avara PACS seeds a study so the partner can enrich demographics and report headers. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft patient/study enrichment after Avara PACS seeds a study

clinic_id: str

Clinic UUID

formatuuid
study_instance_uid: str

DICOM Study Instance UID

accession_number: Optional[str]

Accession number from DICOM when available

patient_id: Optional[str]

Patient ID from DICOM when available

type: Literal["patient_study.enrichment_requested"]

Event type identifier

class ClinicalContextEnrichmentRequestedEvent:

Soft synchronous webhook sent when AutoScribe needs clinical context from the partner EHR. Failures / timeouts / invalid bodies are treated as empty enrichment.

id: str

Unique webhook event ID. Format: whe_{32-hex-chars}

Event payload for soft clinical context enrichment when AutoScribe needs EHR context for a study

clinic_id: str

Clinic UUID

formatuuid
study_id: str

Raw study UUID v4 (not branded stu_…)

formatuuid
study_instance_uid: str

DICOM Study Instance UID

external_patient_id: Optional[str]

External patient identifier when available

mrn: Optional[str]

Medical record number when available

type: Literal["clinical_context.enrichment_requested"]

Event type identifier