# Auto Scribe ## Domain Types ### Study Report Metadata - `class StudyReportMetadata: …` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` # Studies ## Create `auto_scribe.studies.create(StudyCreateParams**kwargs) -> StudyCreateResponse` **post** `/v1/autoScribe/studies` Creates a new study in the AutoScribe system with DICOM metadata and report generation information. The study can include patient demographics, scan details, and references to prior studies/reports for context. ### Parameters - `report_metadata: StudyReportMetadataParam` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `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') - `assigned_to: Optional[str]` User ID to assign the study to. Format: usr_{32-hex-chars} - `express_customer_id: Optional[str]` Express customer ID for the study. Format: cus_{32-hex-chars} - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[SequenceNotStr[str]]` - `prior_study_ids: Optional[SequenceNotStr[str]]` ### Returns - `class StudyCreateResponse: …` A study entity in the AutoScribe system with report workflow status - `cancelled_at: Optional[datetime]` Timestamp when the study was cancelled, null if not cancelled - `created_at: Optional[datetime]` Timestamp when the study was created - `is_cancelled: bool` Whether the study has been cancelled - `report_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `study_id: str` Unique study identifier. 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') - `study_report_status: Literal["unassigned", "assigned", "in_progress", 2 more]` Report workflow status. 'unassigned' = no radiologist assigned, 'assigned' = assigned but not started, 'in_progress' = actively being dictated, 'completed' = report signed, 'addendum_active' = addendum in progress - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` - `updated_at: Optional[datetime]` Timestamp when the study was last updated - `assigned_to: Optional[AssignedTo]` Reference to the assigned radiologist, null if unassigned - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `created_by_api_key: Optional[CreatedByAPIKey]` Reference to the API key used to create this study - `api_key_id: str` Unique API key identifier (UUIDv4 format) - `description: str` Human-readable description of the API key - `is_viewer_enabled: Optional[bool]` Whether this API key has access to the Viewer product - `created_by_user: Optional[CreatedByUser]` Reference to the user who created this study via dashboard - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `express_customer: Optional[ExpressCustomer]` Reference to the Express customer this study belongs to - `express_customer_id: str` Unique Express customer identifier. Format: cus_{32-hex-chars} - `express_customer_name: str` Name of the Express customer - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[List[str]]` Array of prior report texts to provide clinical context - `prior_study_ids: Optional[List[str]]` Array of prior study IDs for comparison context (format: stu_{32-hex-chars}) - `report_ids: Optional[List[ReportIDWithStatus]]` Array of report IDs associated with this study, including addendums - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) study = client.auto_scribe.studies.create( report_metadata={}, severity="normal", study_description="Brain MRI with Contrast", study_instance_uid="1.2.840.113619.2.55.3.604688119.868.1234567890.123", ) print(study.study_instance_uid) ``` ## List `auto_scribe.studies.list(StudyListParams**kwargs) -> SyncCursorStudies[StudyListResponse]` **get** `/v1/autoScribe/studies` Retrieves a paginated list of studies with optional filtering by assignment, severity, description, cancellation status, and report status. Returns up to 100 studies per request. ### Parameters - `assigned_to: Optional[str]` Filter by assigned user ID (null = explicitly unassigned). Format: usr_<32-hex-chars> - `cursor: Optional[str]` Base64 encoded cursor from previous response - `express_customer_id: Optional[str]` Filter by Express customer ID (null = studies with no customer). Format: cus_{32-hex-chars} - `is_cancelled: Optional[bool]` Filter by cancellation status - `limit: Optional[float]` Number of results to return (1-100) - `severity: Optional[Literal["normal", "high", "stat"]]` Filter by study severity - `"normal"` - `"high"` - `"stat"` - `study_description: Optional[str]` Filter by study description (contains match) - `study_report_status: Optional[List[Literal["unassigned", "assigned", "in_progress", 2 more]]]` Filter by report status(es) - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` ### Returns - `class StudyListResponse: …` A study entity in the AutoScribe system with report workflow status - `cancelled_at: Optional[datetime]` Timestamp when the study was cancelled, null if not cancelled - `created_at: Optional[datetime]` Timestamp when the study was created - `is_cancelled: bool` Whether the study has been cancelled - `report_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `study_id: str` Unique study identifier. 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') - `study_report_status: Literal["unassigned", "assigned", "in_progress", 2 more]` Report workflow status. 'unassigned' = no radiologist assigned, 'assigned' = assigned but not started, 'in_progress' = actively being dictated, 'completed' = report signed, 'addendum_active' = addendum in progress - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` - `updated_at: Optional[datetime]` Timestamp when the study was last updated - `assigned_to: Optional[AssignedTo]` Reference to the assigned radiologist, null if unassigned - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `created_by_api_key: Optional[CreatedByAPIKey]` Reference to the API key used to create this study - `api_key_id: str` Unique API key identifier (UUIDv4 format) - `description: str` Human-readable description of the API key - `is_viewer_enabled: Optional[bool]` Whether this API key has access to the Viewer product - `created_by_user: Optional[CreatedByUser]` Reference to the user who created this study via dashboard - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `express_customer: Optional[ExpressCustomer]` Reference to the Express customer this study belongs to - `express_customer_id: str` Unique Express customer identifier. Format: cus_{32-hex-chars} - `express_customer_name: str` Name of the Express customer - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[List[str]]` Array of prior report texts to provide clinical context - `prior_study_ids: Optional[List[str]]` Array of prior study IDs for comparison context (format: stu_{32-hex-chars}) - `report_ids: Optional[List[ReportIDWithStatus]]` Array of report IDs associated with this study, including addendums - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) page = client.auto_scribe.studies.list() page = page.studies[0] print(page.study_instance_uid) ``` ## Retrieve `auto_scribe.studies.retrieve(strstudy_id) -> StudyRetrieveResponse` **get** `/v1/autoScribe/studies/{studyId}` Retrieves a single study by its unique study ID. Returns the complete study object with all metadata, report status, and patient information. ### Parameters - `study_id: str` Unique study identifier. Format: stu_{32-hex-chars} ### Returns - `class StudyRetrieveResponse: …` A study entity in the AutoScribe system with report workflow status - `cancelled_at: Optional[datetime]` Timestamp when the study was cancelled, null if not cancelled - `created_at: Optional[datetime]` Timestamp when the study was created - `is_cancelled: bool` Whether the study has been cancelled - `report_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `study_id: str` Unique study identifier. 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') - `study_report_status: Literal["unassigned", "assigned", "in_progress", 2 more]` Report workflow status. 'unassigned' = no radiologist assigned, 'assigned' = assigned but not started, 'in_progress' = actively being dictated, 'completed' = report signed, 'addendum_active' = addendum in progress - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` - `updated_at: Optional[datetime]` Timestamp when the study was last updated - `assigned_to: Optional[AssignedTo]` Reference to the assigned radiologist, null if unassigned - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `created_by_api_key: Optional[CreatedByAPIKey]` Reference to the API key used to create this study - `api_key_id: str` Unique API key identifier (UUIDv4 format) - `description: str` Human-readable description of the API key - `is_viewer_enabled: Optional[bool]` Whether this API key has access to the Viewer product - `created_by_user: Optional[CreatedByUser]` Reference to the user who created this study via dashboard - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `express_customer: Optional[ExpressCustomer]` Reference to the Express customer this study belongs to - `express_customer_id: str` Unique Express customer identifier. Format: cus_{32-hex-chars} - `express_customer_name: str` Name of the Express customer - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[List[str]]` Array of prior report texts to provide clinical context - `prior_study_ids: Optional[List[str]]` Array of prior study IDs for comparison context (format: stu_{32-hex-chars}) - `report_ids: Optional[List[ReportIDWithStatus]]` Array of report IDs associated with this study, including addendums - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) study = client.auto_scribe.studies.retrieve( "stu_1234567890abcdef1234567890abcdef", ) print(study.study_instance_uid) ``` ## Update `auto_scribe.studies.update(strstudy_id, StudyUpdateParams**kwargs) -> StudyUpdateResponse` **patch** `/v1/autoScribe/studies/{studyId}` Updates a study's properties including description, severity, assignment, organization, metadata, and report metadata. All fields are optional - only provided fields will be updated. ### Parameters - `study_id: str` Unique study identifier. Format: stu_{32-hex-chars} - `assigned_to: Optional[str]` User ID to assign the study to, or null to unassign. Format: usr_{32-hex-chars} - `express_customer_id: Optional[str]` Express Customer ID for the study, or null to remove. Format: cus_{32-hex-chars} - `metadata: Optional[Dict[str, str]]` - `prior_report_texts: Optional[SequenceNotStr[str]]` - `prior_study_ids: Optional[SequenceNotStr[str]]` - `report_metadata: Optional[ReportMetadata]` - `age: Optional[str]` - `date_of_birth: Optional[str]` - `facility_name: Optional[str]` - `height: Optional[ReportMetadataHeight]` - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` - `patient_name: Optional[str]` - `referring_physician_name: Optional[str]` - `scan_date: Optional[str]` - `scan_time: Optional[str]` - `scan_type: Optional[str]` - `sex: Optional[Literal["male", "female", "other"]]` - `"male"` - `"female"` - `"other"` - `weight: Optional[ReportMetadataWeight]` - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Optional[Literal["normal", "high", "stat"]]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: Optional[str]` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') ### Returns - `class StudyUpdateResponse: …` A study entity in the AutoScribe system with report workflow status - `cancelled_at: Optional[datetime]` Timestamp when the study was cancelled, null if not cancelled - `created_at: Optional[datetime]` Timestamp when the study was created - `is_cancelled: bool` Whether the study has been cancelled - `report_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `study_id: str` Unique study identifier. 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') - `study_report_status: Literal["unassigned", "assigned", "in_progress", 2 more]` Report workflow status. 'unassigned' = no radiologist assigned, 'assigned' = assigned but not started, 'in_progress' = actively being dictated, 'completed' = report signed, 'addendum_active' = addendum in progress - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` - `updated_at: Optional[datetime]` Timestamp when the study was last updated - `assigned_to: Optional[AssignedTo]` Reference to the assigned radiologist, null if unassigned - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `created_by_api_key: Optional[CreatedByAPIKey]` Reference to the API key used to create this study - `api_key_id: str` Unique API key identifier (UUIDv4 format) - `description: str` Human-readable description of the API key - `is_viewer_enabled: Optional[bool]` Whether this API key has access to the Viewer product - `created_by_user: Optional[CreatedByUser]` Reference to the user who created this study via dashboard - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `express_customer: Optional[ExpressCustomer]` Reference to the Express customer this study belongs to - `express_customer_id: str` Unique Express customer identifier. Format: cus_{32-hex-chars} - `express_customer_name: str` Name of the Express customer - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[List[str]]` Array of prior report texts to provide clinical context - `prior_study_ids: Optional[List[str]]` Array of prior study IDs for comparison context (format: stu_{32-hex-chars}) - `report_ids: Optional[List[ReportIDWithStatus]]` Array of report IDs associated with this study, including addendums - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) study = client.auto_scribe.studies.update( study_id="stu_1234567890abcdef1234567890abcdef", ) print(study.study_instance_uid) ``` ## Cancel `auto_scribe.studies.cancel(StudyCancelParams**kwargs) -> StudyCancelResponse` **post** `/v1/autoScribe/studies/cancel` Marks a study as cancelled. Cancelled studies are preserved but flagged as inactive. Can be identified by either study ID or DICOM Study Instance UID. ### Parameters - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `class StudyCancelResponse: …` Response for cancelling a study in AutoScribe - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.studies.cancel() print(response.success) ``` ## Uncancel `auto_scribe.studies.uncancel(StudyUncancelParams**kwargs) -> StudyUncancelResponse` **post** `/v1/autoScribe/studies/uncancel` Restores a cancelled study to active status. The study must have been previously cancelled. Can be identified by either study ID or DICOM Study Instance UID. ### Parameters - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `class StudyUncancelResponse: …` Response for uncancelling a study in AutoScribe - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.studies.uncancel() print(response.success) ``` ## Reroute URL `auto_scribe.studies.reroute_url(StudyRerouteURLParams**kwargs) -> StudyRerouteURLResponse` **post** `/v1/autoScribe/studies/reroute-url` Generates a tokenized URL that redirects users to the AutoScribe interface (viewer + dictation) for the specified study and user. The URL includes authentication and is time-limited for security. ### Parameters - `assigned_to_user_id: str` User ID to assign study to. Format: usr_{32-hex-chars} - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `class StudyRerouteURLResponse: …` Response containing the generated reroute URL for AutoScribe (viewer + dictation) - `url: str` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.studies.reroute_url( assigned_to_user_id="usr_1234567890abcdef1234567890abcdef", ) print(response.url) ``` ## Viewer Only Reroute URL `auto_scribe.studies.viewer_only_reroute_url(StudyViewerOnlyRerouteURLParams**kwargs) -> StudyViewerOnlyRerouteURLResponse` **post** `/v1/autoScribe/studies/viewer-only-reroute-url` Generates a tokenized URL that redirects users to the viewer interface only (no dictation) for the specified study. Useful for read-only access or referring physicians. The URL includes authentication and is time-limited. ### Parameters - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') - `user_id: Optional[str]` Optional user ID for audit tracking. Format: usr_{32-hex-chars} ### Returns - `class StudyViewerOnlyRerouteURLResponse: …` Response containing the generated viewer-only reroute URL. Requires viewer to be configured. - `url: str` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.studies.viewer_only_reroute_url() print(response.url) ``` ## Retrieve By Uid `auto_scribe.studies.retrieve_by_uid(strstudy_instance_uid) -> StudyRetrieveByUidResponse` **get** `/v1/autoScribe/studies/by-uid/{studyInstanceUid}` Retrieves a single study by its DICOM Study Instance UID. This is useful when you have the DICOM UID but not the Avara study ID. ### Parameters - `study_instance_uid: str` DICOM Study Instance UID. Format: numbers and dots (e.g., 1.2.840.10008.5.1.4.1.1.2). ### Returns - `class StudyRetrieveByUidResponse: …` A study entity in the AutoScribe system with report workflow status - `cancelled_at: Optional[datetime]` Timestamp when the study was cancelled, null if not cancelled - `created_at: Optional[datetime]` Timestamp when the study was created - `is_cancelled: bool` Whether the study has been cancelled - `report_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `severity: Literal["normal", "high", "stat"]` Priority level of the study. 'normal' for routine, 'high' for urgent, 'stat' for immediate attention - `"normal"` - `"high"` - `"stat"` - `study_description: str` Description of the study/scan (e.g., 'Brain MRI with Contrast', 'Chest CT') - `study_id: str` Unique study identifier. 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') - `study_report_status: Literal["unassigned", "assigned", "in_progress", 2 more]` Report workflow status. 'unassigned' = no radiologist assigned, 'assigned' = assigned but not started, 'in_progress' = actively being dictated, 'completed' = report signed, 'addendum_active' = addendum in progress - `"unassigned"` - `"assigned"` - `"in_progress"` - `"completed"` - `"addendum_active"` - `updated_at: Optional[datetime]` Timestamp when the study was last updated - `assigned_to: Optional[AssignedTo]` Reference to the assigned radiologist, null if unassigned - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `created_by_api_key: Optional[CreatedByAPIKey]` Reference to the API key used to create this study - `api_key_id: str` Unique API key identifier (UUIDv4 format) - `description: str` Human-readable description of the API key - `is_viewer_enabled: Optional[bool]` Whether this API key has access to the Viewer product - `created_by_user: Optional[CreatedByUser]` Reference to the user who created this study via dashboard - `email: str` User's email address - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `first_name: Optional[str]` User's first name - `last_name: Optional[str]` User's last name - `middle_name: Optional[str]` User's middle name - `suffix1: Optional[str]` Name suffix (e.g., 'MD', 'Jr.') - `suffix2: Optional[str]` Additional name suffix - `express_customer: Optional[ExpressCustomer]` Reference to the Express customer this study belongs to - `express_customer_id: str` Unique Express customer identifier. Format: cus_{32-hex-chars} - `express_customer_name: str` Name of the Express customer - `metadata: Optional[Dict[str, str]]` Custom key-value metadata for the study. Maximum 50 pairs, keys up to 100 chars, values up to 1000 chars - `prior_report_texts: Optional[List[str]]` Array of prior report texts to provide clinical context - `prior_study_ids: Optional[List[str]]` Array of prior study IDs for comparison context (format: stu_{32-hex-chars}) - `report_ids: Optional[List[ReportIDWithStatus]]` Array of report IDs associated with this study, including addendums - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.studies.retrieve_by_uid( "1.2.840.10008.5.1.4.1.1.2", ) print(response.study_instance_uid) ``` ## Domain Types ### Report ID With Status - `class ReportIDWithStatus: …` A report ID paired with its current status - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `status: Literal["in_progress", "completed"]` Current status of the report - `"in_progress"` - `"completed"` # Users ## Invite `auto_scribe.users.invite(UserInviteParams**kwargs) -> UserInviteResponse` **post** `/v1/autoScribe/users` Creates a new user in the AutoScribe system and sends them an invitation email. The user will have the specified permissions including report creation and study management capabilities. NPI number is required for users who can create reports. ### Parameters - `can_create_reports: bool` - `can_manage_studies: bool` - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` User's clinical or organizational role - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `email: str` User's email address for login and notifications - `first_name: str` User's first name - `has_dashboard_access: bool` - `last_name: str` User's last name - `level: Literal["admin", "member"]` - `"admin"` - `"member"` - `middle_name: Optional[str]` User's middle name (optional) - `npi_number: Optional[str]` - `phone_number: Optional[str]` User's phone number (10-15 digits, optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `suffix2: Optional[str]` Additional name suffix (optional) ### Returns - `class UserInviteResponse: …` Response for inviting a user to AutoScribe. Level is restricted to admin/member since owners cannot be invited via API. - `can_create_reports: bool` Whether the user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the user has permission to create, update, and manage studies - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` User's clinical or organizational role - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the user was created - `email: str` User's email address for login and notifications - `first_name: str` User's first name - `has_dashboard_access: bool` Whether the user can access the dashboard interface. Required for admin users - `invited_source: Literal["dashboard", "api"]` How the user was invited - via dashboard UI or API - `"dashboard"` - `"api"` - `last_login_at: Optional[datetime]` Timestamp of user's last login, null if never logged in - `last_name: str` User's last name - `level: Literal["admin", "member"]` User access level. 'admin' can manage users/settings, 'member' has standard access - `"admin"` - `"member"` - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `middle_name: Optional[str]` User's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` User's phone number (10-15 digits, optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `suffix2: Optional[str]` Additional name suffix (optional) ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.users.invite( can_create_reports=True, can_manage_studies=True, clinic_role="Radiologist", email="dr.johnson@hospital.org", first_name="Sarah", has_dashboard_access=True, last_name="Johnson", level="member", ) print(response.middle_name) ``` ## List `auto_scribe.users.list(UserListParams**kwargs) -> SyncCursorUsers[UserListResponse]` **get** `/v1/autoScribe/users` Retrieves a paginated list of users with optional filtering by access level, email, name, invitation source, and report creation capability. Returns up to 100 users per request. ### Parameters - `can_create_reports: Optional[bool]` Filter by canCreateReports permission (AutoScribe-specific) - `cursor: Optional[str]` Base64 encoded cursor from previous response - `email: Optional[str]` Filter by exact email match - `first_name: Optional[str]` Filter by first name (contains match) - `invited_source: Optional[Literal["dashboard", "api"]]` Filter by invitation source - `"dashboard"` - `"api"` - `last_name: Optional[str]` Filter by last name (contains match) - `level: Optional[Literal["owner", "admin", "member"]]` Filter by user level - `"owner"` - `"admin"` - `"member"` - `limit: Optional[float]` Number of results to return (1-100) ### Returns - `class UserListResponse: …` A user in the AutoScribe system with report creation permissions - `can_create_reports: bool` Whether the user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the user has permission to create, update, and manage studies - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` User's clinical or organizational role - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the user was created - `email: str` User's email address for login and notifications - `first_name: str` User's first name - `has_dashboard_access: bool` Whether the user can access the dashboard interface. Required for admin users - `invited_source: Literal["dashboard", "api"]` How the user was invited - via dashboard UI or API - `"dashboard"` - `"api"` - `last_login_at: Optional[datetime]` Timestamp of user's last login, null if never logged in - `last_name: str` User's last name - `level: Literal["owner", "admin", "member"]` User access level. 'owner' has full control, 'admin' can manage users/settings, 'member' has standard access - `"owner"` - `"admin"` - `"member"` - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `middle_name: Optional[str]` User's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` User's phone number (10-15 digits, optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `suffix2: Optional[str]` Additional name suffix (optional) ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) page = client.auto_scribe.users.list() page = page.users[0] print(page.middle_name) ``` ## Retrieve `auto_scribe.users.retrieve(struser_id) -> UserRetrieveResponse` **get** `/v1/autoScribe/users/{userId}` Retrieves a single user by their unique user ID. Returns the complete user object with all profile information, permissions, AutoScribe-specific settings, and status. ### Parameters - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} ### Returns - `class UserRetrieveResponse: …` A user in the AutoScribe system with report creation permissions - `can_create_reports: bool` Whether the user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the user has permission to create, update, and manage studies - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` User's clinical or organizational role - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the user was created - `email: str` User's email address for login and notifications - `first_name: str` User's first name - `has_dashboard_access: bool` Whether the user can access the dashboard interface. Required for admin users - `invited_source: Literal["dashboard", "api"]` How the user was invited - via dashboard UI or API - `"dashboard"` - `"api"` - `last_login_at: Optional[datetime]` Timestamp of user's last login, null if never logged in - `last_name: str` User's last name - `level: Literal["owner", "admin", "member"]` User access level. 'owner' has full control, 'admin' can manage users/settings, 'member' has standard access - `"owner"` - `"admin"` - `"member"` - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `middle_name: Optional[str]` User's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` User's phone number (10-15 digits, optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `suffix2: Optional[str]` Additional name suffix (optional) ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) user = client.auto_scribe.users.retrieve( "usr_1234567890abcdef1234567890abcdef", ) print(user.middle_name) ``` ## Update `auto_scribe.users.update(struser_id, UserUpdateParams**kwargs) -> UserUpdateResponse` **patch** `/v1/autoScribe/users/{userId}` Updates a user's profile information, permissions, and AutoScribe-specific settings. All fields are optional - only provided fields will be updated. Email cannot be changed via API. NPI number is required if enabling report creation capability. ### Parameters - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `can_create_reports: Optional[bool]` - `can_manage_studies: Optional[bool]` - `clinic_role: Optional[Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]]` - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `first_name: Optional[str]` User's first name - `has_dashboard_access: Optional[bool]` Whether the user can access the dashboard interface. Required for admin users - `last_name: Optional[str]` User's last name - `level: Optional[Literal["admin", "member"]]` - `"admin"` - `"member"` - `middle_name: Optional[str]` - `npi_number: Optional[str]` - `phone_number: Optional[str]` - `suffix1: Optional[str]` - `suffix2: Optional[str]` ### Returns - `class UserUpdateResponse: …` A user in the AutoScribe system with report creation permissions - `can_create_reports: bool` Whether the user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the user has permission to create, update, and manage studies - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` User's clinical or organizational role - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the user was created - `email: str` User's email address for login and notifications - `first_name: str` User's first name - `has_dashboard_access: bool` Whether the user can access the dashboard interface. Required for admin users - `invited_source: Literal["dashboard", "api"]` How the user was invited - via dashboard UI or API - `"dashboard"` - `"api"` - `last_login_at: Optional[datetime]` Timestamp of user's last login, null if never logged in - `last_name: str` User's last name - `level: Literal["owner", "admin", "member"]` User access level. 'owner' has full control, 'admin' can manage users/settings, 'member' has standard access - `"owner"` - `"admin"` - `"member"` - `user_id: str` Unique user identifier. Format: usr_{32-hex-chars} - `middle_name: Optional[str]` User's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` User's phone number (10-15 digits, optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'Sr.', 'III') - optional - `suffix2: Optional[str]` Additional name suffix (optional) ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) user = client.auto_scribe.users.update( user_id="usr_1234567890abcdef1234567890abcdef", ) print(user.middle_name) ``` ## Revoke Access `auto_scribe.users.revoke_access(UserRevokeAccessParams**kwargs) -> UserRevokeAccessResponse` **post** `/v1/autoScribe/users/revoke-access` Deactivates a user's access to the system. The user will no longer be able to log in, create reports, or access studies. User data is preserved and can be reactivated later. ### Parameters - `user_id: str` User ID to revoke access for. Format: usr_{32-hex-chars} ### Returns - `class UserRevokeAccessResponse: …` Response for revoking user access in AutoScribe - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.users.revoke_access( user_id="usr_1234567890abcdef1234567890abcdef", ) print(response.success) ``` ## Reactivate `auto_scribe.users.reactivate(UserReactivateParams**kwargs) -> UserReactivateResponse` **post** `/v1/autoScribe/users/reactivate` Restores access for a previously deactivated user. The user will regain their original permissions including report creation and study management capabilities. ### Parameters - `user_id: str` User ID to reactivate. Format: usr_{32-hex-chars} ### Returns - `class UserReactivateResponse: …` Response for reactivating a user in AutoScribe - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.users.reactivate( user_id="usr_1234567890abcdef1234567890abcdef", ) print(response.success) ``` # Invitations ## List `auto_scribe.users.invitations.list(InvitationListParams**kwargs) -> SyncCursorInvitations[InvitationListResponse]` **get** `/v1/autoScribe/users/invitations` Retrieves a paginated list of user invitations with optional filtering by status, expiration, date range, and user ID. Returns up to 100 invitations per request. ### Parameters - `cursor: Optional[str]` Base64 encoded cursor from previous response - `end_date: Optional[str]` Filter invitations created on or before this date (YYYY-MM-DD) - `expired: Optional[Literal["all", "expired", "not-expired"]]` Filter by expiration status - `"all"` - `"expired"` - `"not-expired"` - `limit: Optional[float]` Number of results to return (1-100) - `start_date: Optional[str]` Filter invitations created on or after this date (YYYY-MM-DD) - `status: Optional[List[Literal["sent", "accepted", "rejected", "revoked"]]]` Filter by invitation status(es) - `"sent"` - `"accepted"` - `"rejected"` - `"revoked"` - `user_id: Optional[str]` Filter by user ID. Format: usr_{32-hex-chars} ### Returns - `class InvitationListResponse: …` A pending user invitation in the AutoScribe system - `can_create_reports: bool` Whether the invited user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the invited user will have permission to create, update, and manage studies - `clinic_id: str` UUID of the clinic this invitation belongs to - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` Clinical or organizational role for the invited user - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the invitation was created - `email: str` Email address the invitation was sent to - `expiry: Optional[datetime]` When the invitation expires, null if no expiration - `first_name: str` Invited user's first name - `has_dashboard_access: bool` Whether the invited user will have dashboard access - `invitation_id: str` Unique invitation identifier. Format: inv_{32-hex-chars} - `invited_source: Literal["dashboard", "api"]` How the invitation was created - 'dashboard' or 'api' - `"dashboard"` - `"api"` - `inviter_id: str` User ID of the person who sent the invitation. Format: usr_{32-hex-chars}. Null if invited via API - `last_name: str` Invited user's last name - `level: Literal["owner", "admin", "member"]` Access level for the invited user. 'admin' or 'member' when created via API - `"owner"` - `"admin"` - `"member"` - `status: Literal["sent", "accepted", "rejected", "revoked"]` Invitation status: 'sent', 'accepted', 'rejected', or 'revoked' - `"sent"` - `"accepted"` - `"rejected"` - `"revoked"` - `updated_at: Optional[datetime]` Timestamp when the invitation was last updated - `user_id: str` Pre-generated user ID for this invitation. Format: usr_{32-hex-chars}. This ID is assigned at invitation creation and will become the user's permanent ID upon acceptance - `invited_by_api_key_id: Optional[str]` UUID of the API key used to send this invitation. Null if sent via dashboard - `middle_name: Optional[str]` Invited user's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` Invited user's phone number (optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'MD') - optional - `suffix2: Optional[str]` Additional name suffix - optional ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) page = client.auto_scribe.users.invitations.list() page = page.invitations[0] print(page.middle_name) ``` ## Retrieve `auto_scribe.users.invitations.retrieve(strinvitation_id) -> InvitationRetrieveResponse` **get** `/v1/autoScribe/users/invitations/{invitationId}` Retrieves a single invitation by its unique invitation ID. Returns the complete invitation details including status, expiration, associated user information, and AutoScribe-specific permissions. ### Parameters - `invitation_id: str` Unique invitation identifier. Format: inv_{32-hex-chars} ### Returns - `class InvitationRetrieveResponse: …` A pending user invitation in the AutoScribe system - `can_create_reports: bool` Whether the invited user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the invited user will have permission to create, update, and manage studies - `clinic_id: str` UUID of the clinic this invitation belongs to - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` Clinical or organizational role for the invited user - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the invitation was created - `email: str` Email address the invitation was sent to - `expiry: Optional[datetime]` When the invitation expires, null if no expiration - `first_name: str` Invited user's first name - `has_dashboard_access: bool` Whether the invited user will have dashboard access - `invitation_id: str` Unique invitation identifier. Format: inv_{32-hex-chars} - `invited_source: Literal["dashboard", "api"]` How the invitation was created - 'dashboard' or 'api' - `"dashboard"` - `"api"` - `inviter_id: str` User ID of the person who sent the invitation. Format: usr_{32-hex-chars}. Null if invited via API - `last_name: str` Invited user's last name - `level: Literal["owner", "admin", "member"]` Access level for the invited user. 'admin' or 'member' when created via API - `"owner"` - `"admin"` - `"member"` - `status: Literal["sent", "accepted", "rejected", "revoked"]` Invitation status: 'sent', 'accepted', 'rejected', or 'revoked' - `"sent"` - `"accepted"` - `"rejected"` - `"revoked"` - `updated_at: Optional[datetime]` Timestamp when the invitation was last updated - `user_id: str` Pre-generated user ID for this invitation. Format: usr_{32-hex-chars}. This ID is assigned at invitation creation and will become the user's permanent ID upon acceptance - `invited_by_api_key_id: Optional[str]` UUID of the API key used to send this invitation. Null if sent via dashboard - `middle_name: Optional[str]` Invited user's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` Invited user's phone number (optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'MD') - optional - `suffix2: Optional[str]` Additional name suffix - optional ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) invitation = client.auto_scribe.users.invitations.retrieve( "inv_1234567890abcdef1234567890abcdef", ) print(invitation.middle_name) ``` ## Update `auto_scribe.users.invitations.update(strinvitation_id, InvitationUpdateParams**kwargs) -> InvitationUpdateResponse` **patch** `/v1/autoScribe/users/invitations/{invitationId}` Updates a pending invitation's user details, permissions, and AutoScribe-specific settings before it is accepted. Only valid for invitations that have not expired or been processed. NPI number is required if enabling report creation. ### Parameters - `invitation_id: str` Unique invitation identifier. Format: inv_{32-hex-chars} - `can_create_reports: Optional[bool]` Whether the invited user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: Optional[bool]` Whether the invited user will have permission to create, update, and manage studies - `clinic_role: Optional[Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]]` - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `first_name: Optional[str]` Invited user's first name - `has_dashboard_access: Optional[bool]` Whether the invited user will have dashboard access - `last_name: Optional[str]` Invited user's last name - `level: Optional[Literal["admin", "member"]]` - `"admin"` - `"member"` - `middle_name: Optional[str]` - `npi_number: Optional[str]` - `phone_number: Optional[str]` - `suffix1: Optional[str]` - `suffix2: Optional[str]` ### Returns - `class InvitationUpdateResponse: …` A pending user invitation in the AutoScribe system - `can_create_reports: bool` Whether the invited user can generate and sign radiology reports. Requires NPI number - `can_manage_studies: bool` Whether the invited user will have permission to create, update, and manage studies - `clinic_id: str` UUID of the clinic this invitation belongs to - `clinic_role: Literal["Radiologist", "Cardiologist", "Neurologist", 18 more]` Clinical or organizational role for the invited user - `"Radiologist"` - `"Cardiologist"` - `"Neurologist"` - `"Urologist"` - `"Gynecologist"` - `"Endocrinologist"` - `"Doctor"` - `"Surgeon"` - `"Physician"` - `"Physician Assistant"` - `"Nurse Practitioner"` - `"Registered Nurse"` - `"Patient Care Coordinator"` - `"Front Desk Operator"` - `"Imaging Technologist"` - `"PACS Administrator"` - `"Software Engineer"` - `"Revenue Cycle Manager"` - `"Administrative Director"` - `"Administrative Assistant"` - `"Other"` - `created_at: Optional[datetime]` Timestamp when the invitation was created - `email: str` Email address the invitation was sent to - `expiry: Optional[datetime]` When the invitation expires, null if no expiration - `first_name: str` Invited user's first name - `has_dashboard_access: bool` Whether the invited user will have dashboard access - `invitation_id: str` Unique invitation identifier. Format: inv_{32-hex-chars} - `invited_source: Literal["dashboard", "api"]` How the invitation was created - 'dashboard' or 'api' - `"dashboard"` - `"api"` - `inviter_id: str` User ID of the person who sent the invitation. Format: usr_{32-hex-chars}. Null if invited via API - `last_name: str` Invited user's last name - `level: Literal["owner", "admin", "member"]` Access level for the invited user. 'admin' or 'member' when created via API - `"owner"` - `"admin"` - `"member"` - `status: Literal["sent", "accepted", "rejected", "revoked"]` Invitation status: 'sent', 'accepted', 'rejected', or 'revoked' - `"sent"` - `"accepted"` - `"rejected"` - `"revoked"` - `updated_at: Optional[datetime]` Timestamp when the invitation was last updated - `user_id: str` Pre-generated user ID for this invitation. Format: usr_{32-hex-chars}. This ID is assigned at invitation creation and will become the user's permanent ID upon acceptance - `invited_by_api_key_id: Optional[str]` UUID of the API key used to send this invitation. Null if sent via dashboard - `middle_name: Optional[str]` Invited user's middle name (optional) - `npi_number: Optional[str]` National Provider Identifier - required for users who can create reports (10-digit number) - `phone_number: Optional[str]` Invited user's phone number (optional) - `suffix1: Optional[str]` Name suffix (e.g., 'Jr.', 'MD') - optional - `suffix2: Optional[str]` Additional name suffix - optional ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) invitation = client.auto_scribe.users.invitations.update( invitation_id="inv_1234567890abcdef1234567890abcdef", ) print(invitation.middle_name) ``` ## Revoke `auto_scribe.users.invitations.revoke(InvitationRevokeParams**kwargs) -> InvitationRevokeResponse` **post** `/v1/autoScribe/users/invitations/revoke` Revokes a pending invitation, preventing it from being accepted. Can revoke by invitation ID, user ID, or both. Useful for cancelling invitations sent in error. ### Parameters - `invitation_id: Optional[str]` Invitation ID to revoke. Format: inv_{32-hex-chars} - `user_id: Optional[str]` User ID whose pending invitation to revoke. Format: usr_{32-hex-chars} ### Returns - `class InvitationRevokeResponse: …` Response for revoking an invitation in AutoScribe - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.users.invitations.revoke() print(response.success) ``` # Reports ## List `auto_scribe.reports.list(ReportListParams**kwargs) -> ReportListResponse` **get** `/v1/autoScribe/reports` Retrieves all reports (including versions and addendums) for a specific study. Must provide either study ID or DICOM Study Instance UID. Returns report metadata including status, version, and timestamps. ### Parameters - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `class ReportListResponse: …` Response containing a list of reports for a study - `reports: List[Report]` Array of report objects with full details - `created_at: Optional[datetime]` Timestamp when the report was created - `is_addendum: bool` Whether this report is an addendum to a previous report - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `signed_at: Optional[datetime]` Timestamp when the report was signed, null if not yet signed - `snapshot_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `status: Literal["in_progress", "completed"]` Report status: 'in_progress' or 'completed' - `"in_progress"` - `"completed"` - `study_id: str` Study ID this report belongs to. Format: stu_{32-hex-chars} - `updated_at: Optional[datetime]` Timestamp when the report was last updated - `user_id: str` User ID of the radiologist who created/signed this report. Format: usr_{32-hex-chars} - `report_plain_text: Optional[str]` Plain text content of the report - `study_id: str` Study ID the reports belong to. 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') ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) reports = client.auto_scribe.reports.list() print(reports.study_instance_uid) ``` ## Text `auto_scribe.reports.text(ReportTextParams**kwargs) -> ReportTextResponse` **get** `/v1/autoScribe/reports/text` Retrieves the text content of a report. Can fetch a single report by report ID, or all reports for a study by study ID/DICOM UID. Returns plain text report content. ### Parameters - `report_id: Optional[str]` Unique report identifier. Format: rep_{32-hex-chars} - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `ReportTextResponse` Response containing a single report with its plain text - `class SingleReportTextResponse: …` Response containing a single report with its plain text - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `snapshot_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `study_id: str` Study ID this report belongs to. 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') - `plain_text: Optional[str]` Plain text content of the report - `class ListReportsTextResponse: …` Response containing a list of reports with their plain text - `reports: List[ListReportsTextResponseReport]` Array of report text items - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `snapshot_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `study_id: str` Study ID this report belongs to. 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') - `plain_text: Optional[str]` Plain text content of the report - `study_id: str` Study ID the reports belong to. 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') ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.reports.text() print(response) ``` ## Pdf `auto_scribe.reports.pdf(ReportPdfParams**kwargs) -> ReportPdfResponse` **get** `/v1/autoScribe/reports/pdf` Retrieves presigned URLs for accessing report PDFs. Can fetch a single report by report ID, or all reports for a study by study ID/DICOM UID. URLs are time-limited for security. ### Parameters - `report_id: Optional[str]` Unique report identifier. Format: rep_{32-hex-chars} - `study_id: Optional[str]` Unique study identifier. Format: stu_{32-hex-chars} - `study_instance_uid: Optional[str]` DICOM Study Instance UID. Must be a valid DICOM UID format (e.g., '1.2.840.10008.5.1.4.1.1.2') ### Returns - `ReportPdfResponse` Response containing a single report with its PDF download URL - `class SingleReportPdfResponse: …` Response containing a single report with its PDF download URL - `presigned_url: str` Time-limited presigned URL to download the PDF (expires after 1 hour) - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `snapshot_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `study_id: str` Study ID this report belongs to. 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 ListReportsPdfResponse: …` Response containing a list of reports with their PDF download URLs - `reports: List[ListReportsPdfResponseReport]` Array of report PDF items with download URLs - `presigned_url: str` Time-limited presigned URL to download the PDF (expires after 1 hour) - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} - `snapshot_metadata: StudyReportMetadata` Patient demographics and scan information for report generation - `age: Optional[str]` Patient's age at time of scan (e.g., '34.5 years', '2 months') - `date_of_birth: Optional[str]` Patient's date of birth. Format: YYYY-MM-DD (e.g., '1990-05-20') - `facility_name: Optional[str]` Name of the medical facility where the scan was performed - `height: Optional[Height]` Patient's height with unit (e.g., {value: 70, unit: 'inches'} or {value: 178, unit: 'cm'}) - `unit: Literal["in", "cm"]` - `"in"` - `"cm"` - `value: float` - `mrn: Optional[str]` Medical Record Number - unique patient identifier - `patient_name: Optional[str]` Full name of the patient - `referring_physician_name: Optional[str]` Name of the physician who referred the patient for this scan - `scan_date: Optional[str]` Date the scan was performed. Format: YYYY-MM-DD (e.g., '2024-01-15') - `scan_time: Optional[str]` Time the scan was performed. Format: HH:MM (e.g., '14:30') - `scan_type: Optional[str]` Type of scan or imaging modality (e.g., 'MRI', 'CT', 'X-Ray', 'Ultrasound') - `sex: Optional[Literal["male", "female", "other"]]` Patient's biological sex. Options: 'male', 'female', 'other' - `"male"` - `"female"` - `"other"` - `weight: Optional[Weight]` Patient's weight with unit (e.g., {value: 150, unit: 'lbs'} or {value: 68, unit: 'kg'}) - `unit: Literal["lbs", "kg"]` - `"lbs"` - `"kg"` - `value: float` - `study_id: str` Study ID this report belongs to. 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') - `study_id: str` Study ID the reports belong to. 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') ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.reports.pdf() print(response) ``` ## Addendum `auto_scribe.reports.addendum(strreport_id) -> ReportAddendumResponse` **post** `/v1/autoScribe/reports/{reportId}/addendum` Initiates the creation of an addendum to an existing completed report. The study status will change to 'addendum_active' allowing the radiologist to dictate additional findings. ### Parameters - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} ### Returns - `class ReportAddendumResponse: …` Response for creating a report addendum - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.reports.addendum( "rep_1234567890abcdef1234567890abcdef", ) print(response.success) ``` ## Cancel Addendum `auto_scribe.reports.cancel_addendum(strreport_id) -> ReportCancelAddendumResponse` **post** `/v1/autoScribe/reports/{reportId}/cancel-addendum` Cancels an in-progress addendum and reverts the study status to 'completed'. The original report remains unchanged. Only valid for active addendums. ### Parameters - `report_id: str` Unique report identifier. Format: rep_{32-hex-chars} ### Returns - `class ReportCancelAddendumResponse: …` Response for cancelling a report addendum - `success: bool` - `message: Optional[str]` ### Example ```python import os from avara import Avara client = Avara( api_key=os.environ.get("AVARA_API_KEY"), # This is the default and can be omitted ) response = client.auto_scribe.reports.cancel_addendum( "rep_1234567890abcdef1234567890abcdef", ) print(response.success) ```