Skip to content

Caseflow Hearings

minhazur9 edited this page May 29, 2024 · 73 revisions

See an archive of hearing planning/research docs here

About Board hearings

When a Veteran submits an appeal of a benefits decision to the Board Veterans' Appeals, they have the option to request a hearing with a Veterans Law Judge (VLJ) to provide testimony and submit new evidence in support of their appeal. The VLJ is an expert in Veterans law, and is bound by something called a duty to assist. The VLJ's role is not to cross-examine Veterans; their job is to understand the existing evidence and help Veterans understand what they need to do to prove their claim. (See What to expect at your Board hearing for more information)

Veterans can be assisted by a representative, who must be a VA-accredited attorney, claims agent, or someone from a Veterans Service Organization (VSO). View and search accredited representatives on the VA Office of General Counsel webpage.

After a hearing is conducted, the recordings are sent to the transcription office, and then entered into VBMS.

Hearing formats

There are four hearing formats conducted by the Board:

  • Virtual Tele-Hearing (VTH): the Veteran, the Veteran’s representative (if any) and witnesses (if any) attend the hearing via video conference from any location and using their own devices, like laptops or even mobile phones. The participants may be in the same location or different locations. The judge presides over the hearing via video conference.
  • Video hearing (also known as a Regional Office (RO) hearing): the Veteran, the Veteran’s representative (if any) and witnesses (if any) attend the hearing in a hearing room at a VA regional office or VA satellite location. The judge presides over the hearing via video conference.
  • Central Office (CO) hearing: the Veteran, the Veteran’s representative (if any), and witnesses (if any) attend the hearing in a hearing room at the Board’s headquarters in Washington, DC. The judge presides over the hearing in person.
  • Travel Board hearing: the Veteran, the Veteran’s representative (if any), and witnesses (if any) attend the hearing in a hearing room at a VA regional office. The judge presides over the hearing in person by traveling to the regional office.
    • _Travel Board hearings are available only for appeals in the Legacy appeal stream.

Hearing dispositions

See HEARING_DISPOSITION_TYPES.json

After a hearing is scheduled, it receives one of the following dispositions. These determine how Caseflow routes the appeal next.

Disposition Description
Held Veteran attends their hearing
Cancelled Veteran withdraws their hearing and no hearing will be held
Postponed Veteran postpones their hearing to a later date
No Show Veteran does not show up for their hearing and could reschedule or withdraw
Scheduled in Error Hearing was removed from the docket in Caseflow to correct a scheduling error. This disposition was introduced in February 2021.

ℹ️ Note — A hearing can be "withdrawn" before it is scheduled. From a Caseflow engineering perspective, "withdrawing" and "cancelling" a hearing are the same. However, Hearing Coordinators and Judges may consider these words to denote different actions.

Hearings Pages Overview

name url
Hearing Schedule /hearings/schedule
users: judges, attorneys, coordinators, VSOs
A list of all upcoming Hearing Days. VSOs can only see days where they have veterans they are representing. Judges, by default, can only see days that they are assigned hearings but can toggle to see the full list by clicking Switch View > Full Hearing Schedule> Complete Hearing Schedule
Daily Docket hearings/schedule/docket/:hearing_day_id
Screenshot 2024-04-22 at 10 02 10 AM users: judges, attorneys, coordinators, VSOs
navigation: click any date link on Hearing Schedule
The complete list of hearings for a Hearing Day. Allows users to edit basic hearing details like disposition and hearing time. Judges and VSOs can only see hearings that are assigned to them.
Hearing Details hearings/:hearing_id/details
Screenshot 2024-04-22 at 10 11 19 AM users: coordinators, VSOs
navigation: Click Hearing Details and links link on hearing's row in daily docket or in hearings section of case details. These links are only visible to coordinators.
Main page that allows coordinator to edit all hearing data. Includes conference links (Webex or Pexip) for virtual and non-virtual hearings. If AMA hearing, renders editable transcription details. If Webex conference type (AMA or Legacy), renders transcription files table.
Hearing Worksheet hearings/:hearing_id/worksheet
users: judges, (some) attorneys
navigation: Click Edit VLJ Worksheet link on hearing's row in daily docket or in hearings section of case details. These links are only visible to judges.
Judges use the worksheet to take notes during the hearing. For legacy hearings, they can edit issues directly from this page. For AMA cases, they must edit issues from the Case Details page. See issue
Assign Hearings /hearings/schedule/assign?roValue=:ro_key
users: coordinators
navigation: from Hearing Schedule, click Schedule Veteran button then select an regional office from the dropdown
Grouping of veterans with open Schedule Hearing Tasks for a given RO. The left column lists all future Hearing Days with open slots. The first tab lists all veterans that have already been scheduled for that date. The "Waiting" tabs provides links for coordinators to navigate to case details page and schedule veterans with the RO and Hearing Date pre-populated.
Schedule Veteran (Case Details modal)
users: coordinators
navigation: From Assign Hearings click either Legacy Veterans Waiting or AMA Veterans Waiting tab then click any link to a veteran's case details page. A Schedule Veteran option will be listed under Case Actions
Allows coordinator to schedule a veteran for a given regional office. Hearing Locations show the list of facilities that the hearing can be held in and uses geomatching to find distances from the veteran to the regional office. Coordinators generally pick the closest location, although it is at their discretion.
Build Hearing Schedule /hearings/schedule/build
users: coordinators (admin)
navigation: From Hearing Schedule, click Build Schedule button. This button is only visible to hearing coordinator admins
Every 3 - 6 months an admin in the hearings department uploads a spreadsheet that lists what days a regional office and judge are not available. We use this data to determine how many hearing days to allocate per RO per day per judge. After the upload is complete the Hearing Schedule will be populated with hearing days for that time frame.

The Hearings Implementation

Hearing Days

Before 2020, video hearings were held at the Board’s headquarters in Washington, DC from hearing rooms equipped with a camera, a large monitor for the judge to view the veteran, and a desktop that the judge sits behind; after 2020, judges were able to join video hearings on their own devices from any location. A coordinator was responsible for setting up the equipment before hearings begin and also troubleshoots any technical issues. Each room will only hold hearings for a single regional office. Each regional office is assigned 1 room with the exception of St. Petersburg, FL which is assigned 2 rooms. Central office hearings are also held in 1 room.

A HearingDay organizes Hearings and LegacyHearings by regional office and hearing room. Generally, a hearing day is also only assigned to one judge, although hearing coordinators have the ability to override the hearing day's judge on the hearings table or in VACOLS by editing the hearing details.

Each room / HearingDay has a maximum number of hearings that can be held (slots) that are determined by the regional office's timezone. If a hearing day's slots are filled, the coordinator will receive a warning when scheduling a Veteran ("You are about to schedule this Veteran on a full docket. Please verify before scheduling") but will still be able to schedule if they so choose.

Build Hearing Schedule

To test in dev/demo, login as BVASYELLOW and go to http://localhost:3000/hearings/schedule/build

Background/Context

A hearing day, also knowns as docket day, groups hearings, both AMA and legacy, by a regional office or CO and a room at the BVA. Hearing Admin can create a hearing day either individually or in bulk at the begining of each quarter by uploading spreadsheets.

Before Build Hearing Schedule functionality was implemented, hearing coordinators would collect non-availibility days for ROs and judges, figure out how many days each RO needed to be allocated for, and manually assign hearings days and assign judges to them. Build Hearing Schedule automates that last step: assigning hearings days and assigning judges to those hearing days. Only users with Build HearSched role (hearing admins) are allowed to build schedules. User can downdload templates: RoAssignmentTemplate.xlxs and JudgeAssignmentTemplate.xlxs to fill out and upload.

2 upload options on the UI:

  • RO/CO hearings Using RoAssignmentTemplate.xlxs, you can upload a spreadsheet to create desired video and central hearing days. The algorithm takes non-availibility days for ROs and CO and the number of allocations for the ROs and assigns hearing days for each RO/CO within a date range (usually uploaded every quarter). User is presented with the result to review the assignments. If confirmed, hearing days are created according to the results from the algo.
  • Judge non-availability Given that RO/CO hearing days were created(meaning above step was completed), using JudgeAssignmentTemplate.xlxs you can upload a spreadsheet to assign judges to those hearing days. The algorithm takes blackout days for each judge and assigns judges to hearing days. Each judge is required to have 2.5 hearing days per month, or 2 in one month and 3 the next, about 6-7 hearing days every quarter. User is presented with the result to review the assignments. If confirmed, judges are assigned to the hearing days.

Spreadsheet validations

Can be found in validate_ro_spreadsheet.rb

General
  1. The headers much match the template exactly.
  2. All dates should all be in this format: mm/dd/yyyy.
  3. All dates should be within the date range specified by the hearing coordinator.
RO and CO Assignment
RO Non-Availibility
  1. All RO identifiers(e.g RO01) in BFREGOFF column and city and state in RO City, State column should match what we have in REGIONAL_OFFICE_INFORMATION.json
  2. Every RO that hold hearings should have a column.
  3. The dates listed for each RO should be unique.
CO Non-Availability
  1. The dates should be unique.
Judge Assignment
Judge Non-Availability
  1. The CSS id and judge name should match what we already have stored in our database.
  2. The blackout dates for each judge should be unique.
  3. Judges have to be exist in database.

Algorithms

Tech-Spec of original implementation

RO and CO Allocation Algorithm

can be found in generate_hearing_days_schedule.rb

The algorithm takes all available days for ROs and CO and assigns hearing days according to the number of allocations desired for each RO and CO within the specified schedule period.

CO Assignment

Sources of non-available dates

  • Federal Reserve Holidays and weekends
  • Board Non-Availability days

Assigning CO docket days is simple: create desired number of CO hearing days while taking board non-availibility days into account. Currently the algo creates 1 docket day per week within the schedule period.

RO Allocation

Sources of non-available dates

  • Federal Reserve Holidays and weekends
  • Non-Available days specified in RoAssignment spreadsheet
  • Travel board hearing days; Since a Travel Board hearing day can have a start and end date, we accout for that range of dates when calculating non-available dates.

Allocating desired RO hearing days is more complicated. It follows a set of steps (outlined in the tech-spec) to most optimally assign hearing days for each RO. The key points:

  • The RO allocations for the schedule period are evenly distributed across the months within the period.
  • The monthly RO allocations are then distributed across available dates for the RO in each month.
  • For a date, you can assign up to MAX_NUMBER_OF_BOARD_ROOMS hearing days. For example, if there are 23 board rooms, you can assign 23 hearing days for that date (across all ROs, not for an individual RO).
  • Dates are allocated to in order of co-occurences (number of ROs available on a date), least to most.
  • The algo allocates in above order to the 1st of each month, then the 2nd of each month, then the 3rd, and so on until all days are allocated for the RO or iterated 31 times (max number of days in a month).
  • An RO has rooms, to which docket days are assigned. Most ROs have one, but some have two.
  • Each room is available for one docket day assignment for each available date, so an RO can allocate a maximum of (RO number of rooms * RO available dates) docket days in total.
  • The algo will will fail if the RO has less available days than the number allocated to it.
  • Allocate the maximum possible number of docket days for a date, which is the minimum of the following:
    • remaining number of rooms at the board (above point, currently up to 23)
    • the number of rooms this RO has (most have 1)
    • the remaining allocations for this RO
  • assign room number for each allocated docket day
Judge Assignment Algorithm

This algorithm takes all unassigned hearing days for a schedule period and tries to assign judges to those hearing days while taking into account the blackout days each judge has.

Sources of unavailable days
  • Judge blackout days in JudgeAssignment spreadsheet
  • Travel board hearing days that judges are assigned to. Travel board hearing days have a start and end date. Judges cannot be assigned to hearing days 3 business days before and after after the travel hearing days.

Judges are assigned to the the unassigned Video(RO) and CO hearing days that were created with above RO and CO Allocation algorithm within a schedule period. Some key points:

  • Unassigned hearing days are shuffled.
  • Judges are evenly assigned to unassigned hearing days.
  • Judges are first sorted in order of their non-available dates, most to least.
  • The algo assigns a maximum of (total_number_of_unassigned_days/total_number_of_judges) days to each judge
  • A hearing day cannot be assigned to a judge under the following conditions:
    • the date is a blackout day for the judge
    • the hearing day was already assigned
    • the judge was assigned a different hearing day which falls within 3 days before or after this hearing day
    • this hearing day is a CO hearing day and the judge was already assigned to 1 CO hearing day
  • Any remaining unassigned hearing days are assigned to judges, prioritizing assignment to judges with least number of assigned hearing days
  • run the above steps up to 20 times or until all hearing days are assigned
  • The algo will fail if it cannot assign judges to all hearing days

Hearings Task Model

Hearing Task Tree
Image is generated from svgbob using the below source
                                              +-------------------------------+                                                              
                                              |                               |                                                              
                                              |      DistributionTask /       |                                                              
                                              |       RootTask(Legacy)        |                                                              
                                              |                               |                                                              
                                              +-------------------------------+                                                              
                                                              |                                                                              
                                                              |                                                                              
                                              +-------------------------------+                                                              
                                              |                               |                                                              
                                              |          HearingTask          |                                                              
                                              |       BVA Organization        |                                                              
                                              |                               |                                                              
                                              +-------------------------------+                                                              
                                                              |                                                                              
                                +-----------------------------|-------------------------+                                                    
                                |                             |                         |                                                    
                                |                             |                         |                                                    
                                |                             |                         |                                                    
                   +-------------------------+ +-------------------------+ +-------------------------+                                       
                   |   ScheduleHearingTask   | |  AssignDispositionTask  | |  ChangeDispositionTask  |                                       
                   |    Hearing Management   | |    BVA Organization     | |      Hearing Admin      |                                       
                   |-------------------------| |-------------------------| |-------------------------|                                       
                   |                         | |                         | |                         |                                       
                   | - Schedule hearing      | | - Postpone Hearing      | | - Change Hearing        |                                       
                   | - Withdraw Hearing      | | - Add Admin Action      | | Disposition             |                                       
                   | Request                 | |                         | | - Assign to Hearing     |                                       
                   | - Add Admin Action      | |                         | | Admin Member            |                                       
                   |                         | |                         | | - Toggle time hold      |                                       
                   |                         | |                         | | - Add Admin Action      |                                       
                   |                         | |                         | |                         |                                       
                   |                         | |                         | |                         |                                       
                   |                         | |                         | |                         |                                       
                   +-------------------------+ +-------------------------+ +-------------------------+                                       
                                |                           |                            |                                                   
                                |                           |                            |                                                   
             +------------------+                           +--------------+-------------+                                                   
             |+-------------------------------+----------------------------|------------------------------+                                  
             ||                               |                            |                              |                                  
+------------------------+       +-------------------------++------------------------------++--------------------------+                     
|    HearingAdminTask    |       |    TranscriptionTask    || EvidenceSubmissionWindowTask ||     NoShowHearingTask    |                     
|      Hearing Admin     |       |   Transcription Team    ||           Mail Team          ||       Hearing Admin      |                     
|------------------------|       |------------------------ ||------------------------------|| ------------------------ |                     
|                        |       |                         ||                              ||                          |                     
|                        |       | - Reschedule Hearing    || - (Timeable Task             ||  - Reschedule Hearing    |                     
+------------------------+       | - Toggle timed hod      || expires after 90 days)       ||  - Create                |                     
                                 | - Create                ||                              ||  ChangeDispositionTask   |                     
                                 | ChangeDispostionTask    ||                              ||  - Cancel Hearing        |                     
                                 |                         ||                              ||  (complete no show task) |                     
                                 |                         ||                              ||                          |                     
                                 +-------------------------++------------------------------++--------------------------+                                                                                                                                                                                

1. Initial Hearing Task Tree

All appeals on the hearing docket are given initial tasks of a HearingTask with a child ScheduleHearingTask. For AMA cases, the initial hearing tasks are created as a children of the DistributionTask after intake. For legacy cases, the geomatching job is responsible for finding all appeals in VACOLS ready to be scheduled and creating a hearing task tree as a child of the RootTask.

ℹ️ In VACOLS, appeals that were ready to be scheduled were placed in location 57. The geomatching job looks for all cases in location 57 and creates the initial hearing tasks. If there was a user error that resulted in the hearing task tree getting to a wrong state, hearing coordinators have on occasion manually placed appeals in 57 to recreate the initial hearing task tree.

2. Schedule Veteran

Appeals with schedule hearing tasks are shown on the assign hearings page (see pages overview). Here, coordinators navigate to the case details page and schedule veterans. A coordinator can block scheduling by adding a HearingAdminActionTask if any of the following are true about the veteran:

  • Does not have a valid address
  • Lives outside the United States
  • Is incarcerated
  • Is missing forms
  • Does not have an assigned representative or power of attorney
  • Is a contested claimant
  • Has submitted a FOIA privacy request

In addition, a hearing coordinator can withdraw the hearing. For AMA cases this means no hearing needs to be held and is moved to the evidence submission period (see step 4.). For legacy cases, the case is placed in case storage.

After scheduling, we create an AssignHearingDispositionTask and a new hearing. That hearing is associated to the HearingTask with an HearingTaskAssociation.

3. Assign a Disposition

In the period between when the hearing is scheduled and the hearing date, a hearing coordinator can postpone a hearing. Postponing cancels the current hearing task and recreates the initial hearing task tree. The coordinator can choose to either reschedule immediately or schedule later, which would return the appeal to step 2.

ℹ️ Hearing coordinators often use "postpone" hearing to correct clerical errors in scheduling. Strictly speaking, postponements are only changes to a hearing date that the veteran requested.

A coordinator or judge can change the hearing's disposition on the daily docket up until 24 hours after the hearing date (see locking a hearing). At that point, the HearingDispositionChangeJob finds all appeals with hearings in the last 24 hours and an open AssignHearingDispositionTask and completes the task based on the disposition.

A held or canceled hearing moves on to the next step. Postponed hearings are given fresh initial hearing tasks (same as if a coordinator postponed manually), and no-show hearings are given a NoShowHearingTask. No-show veterans are given 25 days to request a new hearing date through the mail. Otherwise, the hearing is considered canceled.

ℹ️ Note that if NoShowHearingTask or TranscriptionTask are created in error, a coordinator can create a ChangeHearingDispositionTask. A Hearing Admin can then update the hearings disposition by completing this task on the case details pages. (see update_from_params)

4. Transcription / Evidence Submission

After a disposition is assigned, AMA appeals must complete a TranscriptionTask and an EvidenceSubmissionWindowTask. The evidence task gives the veteran an additional 90 days to submit evidence before the case is distributed.

5. Case Distribution

When all above hearing tasks are completed, a case is ready for distribution to judge because its DistributionTask is moved from on_hold to assigned (AMA cases) or the case is in case storage location 81 (legacy cases). See also automatic case distribution.

Geomatching

See Hearing Geomatching

The Hearing Schedule and The Daily Docket

The hearing schedule organizes Hearing Days by regional office and date and is the entry point into each Hearing Day's Daily Docket. A Daily Docket is a list of all the hearings for that day at a given regional office. A subset of hearings data (DailyDocketRowInputs.jsx) is available to edit on this page. For Judges, this is primarily used to update the hearing's disposition or mark the case Advance on Docket (AOD). Hearing coordinators may update disposition but will more often use it to update the hearing's time.

The Daily Docket contains a handful of edit options at the top of the page (DailyDocketEditLinks.jsx) that allows admins to edit the hearing day's judge or assigned coordinator, delete the hearing day altogether (if there are no hearings associated), or lock the hearing.

Locking a hearing

Any user with the ability to Edit HearSched or Build HearSched can "lock" a hearing. This prevents any additional hearing from being added to the hearing day, as if the hearing day were full (HearingDay#hearing_day_full?). In addition, the HearingDispositionChangeJob automatically locks a Hearing Day 24 hours after the hearing date.

Virtual Hearings

Virtual hearings are a new type of hearing we are in the process of integrating into Caseflow. Virtual hearings allow the Veteran, representative, and VLJ to be in different locations and attend their hearing and and alleviates reliance on a Veteran's ability to travel to a designated RO. The Board has a large inventory of hearings that are reliant on spatial capacity of hearing rooms in the Washington D.C. offices. Once there is wider adoption, and once the new virtual type is fully integrated, the Board can begin to realize the benefits of moving beyond room constraints. The broad goals and integration points: Caseflow users should be able to:

  • Build quarterly and yearly expanded schedules that include virtual-only days
  • Build one-off virtual only days for a variety of VLJs to be able to pick up capacity
  • Intake a hearing request as virtual from the start of the appeals process
  • Mark that a Veteran has requested or opted-in to a virtual hearing in advance of scheduling their hearing
  • Find virtual-eligible Veterans in a scheduling queue
  • Schedule a virtual hearing for a Veteran who has a requested virtual for their hearing type
  • Convert a hearing to virtual for any Veteran who had previously opted for another hearing type

Hearing Conference Provider

Prior to the implementation of Hearing Record and Transcribe (see HRT for details), Caseflow hosted remote conferences for virtual and non-virtual hearings exclusively via Pexip, an external service. HRT introduced Webex as an additional conference provider, with the intention of phasing out Pexip. Until the point where Caseflow no longer schedules Pexip hearings, a hearing's conference_provider may either be pexip or webex.

Conference Links

As of the implementation of HRT, conference links for virtual and non-virtual hearings may be found on the Hearing Details page, which displays three different link types under the Hearing Links section. Pexip hearings require a pin. Webex hearings do not. In addition, within a hearing's row on the Daily Docket, there exists a link (virtual) or button (non-virtual) through which the VLJ may connect to the conference.

Screenshot 2024-04-22 at 11 45 56 AM
Link Types
  • Host Link: The link through which the VLJ joins the virtual or non-virtual hearing.
  • Co-Host Link: The link through which the hearing coordinator joins the virtual or non-virtual hearing. For Webex hearings, the co-host link is unique. For Pexip hearings, the co-host link and the host link are identical but displayed as separately to maintain consistency.
  • Guest Link: The link through which the appellant and/or their representative join the virtual hearing. For a non-virtual hearing at which the appellant would be physically present, the guest link may be used by the appellant's representative to join remotely.

Hearing Request Type

With the incorporation of virtual hearings, the logic to retrieve the hearing request type is complex -- here is why.

Unscheduled hearings

A case waiting for a hearing to be scheduled will have an open ScheduleHearingTask, meaning the status field of the task record should be assigned, in_progress, or on_hold.

For AMA cases, Caseflow does not know the hearing request type until it is scheduled by the Hearing Coordinator.

For legacy cases, a ScheduleHearingTask is created by HearingTaskTreeInitializer and it is triggered by existence of some VACOLS fields bfhr: "1", bfcurloc: "57" or bfhr: "2", bfdocind: "V", bfcurloc: "57" (cases_that_need_hearings). For VACOLS cases that do not have any hearing information, the hourly job FetchHearingLocationsForVeteransJob finds all legacy appeals that need ScheduleHearingTask.

Schedule Veterans page

As user BVASYELLOW, go to Schedule Veterans demo page.

From the Regional Office dropdown, Hearing Coordinator selects an RO or Central, which determines the hearing type (either Video or Central). Select an unscheduled case to go to the Case Details page; select "Schedule Veteran" action; and choose another hearing type (such as Virtual) if desired by Appellant.

Case Details page

For unscheduled AMA appeals, the hearing type in the Case Details page will show as Video or Central depending on the Veteran’s closest Regional Office (closest_regional_office), which is stored in the appeals table. This closest_regional_office is set by a hourly job that geomatches the veteran address against the available ROs.

For an AMA case:

  • If the appellant’s closest regional office is C (Central Office), the hearing type defaults to Central.
  • If the appellant’s closest regional office is ROxx (e.g., RO01), the hearing type defaults to Video.
  • If the appellant’s closest regional office is null , then hearing request type is not shown -- appeal.rb.

For a Legacy case -- legacy_appeal.rb:

  • If legacy_appeals.changed_request_type is not null, then the Case Details page shows this value. Note: This is set only when the previous requested hearing type is travel board and a ChangeHearingRequestTypeTask is created (by a hearing coordinator in the Case Details page) - ChangeHearingRequestTypeTask code. The new hearing type would be video or virtual.
  • Otherwise VACOLS is queried for the hearing_request_type (VACOLS::Case::HEARING_REQUEST_TYPES[case_record.bfhr] appeal_repository.rb and case.rb)
    • If VACOLS returns 2 (aka travel_board) and case_record.bfdocind == "V" (.video_hearing_requested is true), then the Case Details page shows Video.
    • If VACOLS returns 2 (aka travel_board) and case_record.bfdocind != "V" (.video_hearing_requested is false), then the Case Details page shows Travel.
    • IF VACOLS returns 1 (aka central_office), then the case details page shows Central
    • If VACOLS returns 5 (aka none), then the Case Details page does not show a hearing type.
    • Rails code for exploration
    sql="LEFT JOIN legacy_appeals ON legacy_appeals.id=tasks.appeal_id"
    tasks=ScheduleHearingTask.joins(sql).active.where(appeal_type: :LegacyAppeal).where("legacy_appeals.closest_regional_office IS NULL").first(10)
    tasks.map{|t| [t.appeal.closest_regional_office, t.appeal.hearing_request_type, t.appeal.video_hearing_requested, t.appeal.vacols_id, t.appeal.id]}

Scheduled hearings

For an AMA case: Once a hearing is scheduled, check the hearings record associated with the completed ScheduleHearingTask via the hearing_task_associations table.

  • The hearing request type is virtual if there is a virtual_hearings record associated the hearings record and the request_cancelled field on the virtual hearing record is set to false. If it is true, then the virtual hearing was cancelled, and the hearing type is determined by the the associated hearing_days record -- see next bullet.
  • Otherwise, use the request_type value (video or central) of the associated hearing_days record.
  • Note: Caseflow does not currently support travel hearing types for AMA cases.

For a Legacy case:

  • VACOLS is queried
    • legacy_hearings#request_type = current value of HEARSCHED.HEARING_TYPE in VACOLS; 'R', 'T', 'V', 'C' case_hearing.rb
  • Notes
    • legacy_hearings.original_vacols_request_type = the original request type of the hearing in VACOLS; the value of HEARSCHED.HEARING_TYPE before type was changed to virtual
Hearing Disposition

Scheduled hearings can have a disposition of nil, held, no_show, cancelled or postponed. A hearing with nil disposition means that the hearing is scheduled for future date and the disposition has not been set yet. A hearing with held disposition would indicate that it's a completed hearing.

  • For an AMA case,
    • this is a field (disposition) on hearings
  • For a Legacy Case,
    • this is a field (hearing_disp) that we write to and read from in VACOLS
    • legacy_hearings#disposition = current value of HEARSCHED.HEARING_DISP in VACOLS; 'H', 'C', 'P', 'N' (hearing_repository.rb and case_hearing.rb)

Virtual hearing

Once a virtual hearing is scheduled, the associated record in hearing_days is not changed because a record in the hearing_days table represents the whole day, which consists of different types of hearings (e.g., video and virtual). In other words, many hearing types are associated with that hearing_days record, so hearing_days.request_type should not be changed. This is an artifact of how the virtual hearings feature was introduced into Caseflow, i.e., as a conversion of video hearings into virtual hearings.

virtual_hearings, virtual_hearing_establishments, and sent_hearing_email_events table descriptions

Clone this wiki locally