department-of-veterans-affairs / caseflow

Caseflow is a web application that enables the tracking and processing of appealed claims at the Board of Veterans' Appeals.
Other
52 stars 17 forks source link

[Tech-Spec] Deprecating DAS #7809

Closed mdbenjam closed 5 years ago

mdbenjam commented 5 years ago

Deprecating DAS

Queue's DAS integration is a constant thorn in our side. Some of the problems it has caused are: 1) DAS tasks do not have unique ids 2) Our frontend code is needlessly complex, handling both Caseflow and Legacy (DAS) tasks 3) While our Task model allows multiple tasks to be assigned at once, DAS does not 4) We have had several bugs with our integration (Duplicate DECASS recrods, OMO attorney credit, etc.)

Deprecating DAS will make our code simpler, more maintainable, reduce bugs, and move us one step towards our long term goal of deprecating all of VACOLS.

Steps to Deprecate

One of our hesitations with deprecating DAS is that we do not yet support all DAS flows in Caseflow. In fact we don't know what all the DAS flows are. We've been relying on our integration with DAS so that users could take actions in DAS if Caseflow did not support a particular user flow. Therefore deprecating the backwards compatibility comes with risk. To mitigate this risk, I believe the way forward consists of two phases:

Prep-phase

There are three things we know we need before we try to deprecate DAS.

OMO requests

We currently only allow OMO requests for legacy tasks. However, allowing them for Caseflow tasks should be relatively straightforward. We already record them in our (attorney|judge)_case_reviews table. The main change here is to use our tasks, while either still updating the location of the VACOLS record to be the OMO office, or to roll out a queue to the OMO team for them to monitor OMO requests.

Reassignment to Attorneys

Currently Caseflow allows judges to assign cases to attorneys, and then lets attorneys assign cases back to judges. However, if the judge finds errors in the attorney's work, there is no way for the judge to assign the case back to the attorney.

This will be relatively easy to fix especially with Caseflow tasks. We simply need to add an Assign back to attorney action on JudgeTasks. This will create a new child AttorneyTask of the JudgeTask that the attorney can work again.

Reporting

The main holdup in this transition seems to be reporting. Users of Caseflow need to know how many cases they're completing. These metrics are used by the board to determine employee productivity. Since this is such a high priority for the Board, we need to make this reporting work with Caseflow tasks. Of course we need to do this regardless of whether we deprecate DAS since AMA appeals also need metrics, and these appeals are only tracked with Caseflow tasks. With Looker we're already a good part of the way towards reporting. We simply need to create a handful of reports (Jed estimated 3-5 of the DAS reports are important).

Change-Over Phase

Even after doing the tasks listed above in the prep-phase, a successful transition from Legacy tasks to Caseflow tasks will be gradual. There are a lot of unknown unknowns. We don't know if we're missing significant workflows for DAS users. An easy way to figure this out is to pilot using Caseflow tasks for legacy appeals for a handful of users and iterate with them as we find gaps in our implementation.

Luckily, Automatic Case Distribution (ACD) provides us an easy way to start a few users off in this pilot. By making two changes to ACD we can bypass DAS. 1) For users in the pilot, change the location of the appeal to "CASEFLOW" instead of the judge's location. 1) For users in the pilot, create a JudgeTask assigned to them.

There are a few other things we'll need to consider for this pilot. 1) Currently all JudgeTasks are sent to QR. We'll need to add logic here to send all AMA Appeals' to QR and some subset of LegacyAppeals with JudgeTasks to QR. 1) Some of the logic in the (Attorney/Judge)CaseReview models relies on whether a case is legacy. This might need some adjustment. (i.e. we don't want to change the case's location to BVA dispatch, we'll probably just want to create a dispatch task).

This step is also reversible. If the pilot is a disaster, we can turn it off, and revert to using DAS until we fix the problems uncovered.

Summary

I believe we should tackle this problem soon. Our DAS integration is hurting our speed and credibility. Two of the three preparation tasks are needed anyway for AMA appeals (both assigning back to attorneys and reporting), so it seems like the extra lift is pretty minimal. I believe the advantage of making this conversion outweighs any upfront cost.

lpciferri commented 5 years ago

I agree wholeheartedly with the urgency.


Adding @sneha-pai's synthesis of why attorneys/judges are still using DAS from user research done in September 2018.

From that user feedback, I think we'd benefit from two things before deprecating DAS, for user satisfaction:

  1. Looking into and if possible, improving Caseflow loading times
  2. Allowing judges and attorneys to see if a case is part of a Specialty Case Team (https://github.com/department-of-veterans-affairs/caseflow/issues/5565)

Other pieces of feedback, like prior attorneys if the case was a remand, can be accessed in VACOLS.

OMO requests

Reassignment to Attorneys

Reporting

Changeover Phase

marvokdolor-gov commented 5 years ago

Thanks Mark and LP.

The key risk is that the Board will continue to be overly dependent on us for reports that we don’t have the bandwidth to own.

That said, I think there’s a path forward where we make a good faith effort to provide the most critical reports, in exchange for them giving us the space to focus on building crucial functionality in time for Feb.

Unfortunately, I’ll miss the new version of the “Reporting” meeting tomorrow, W at 11am, where there’ll be more Board staff (a Chief and Jebby) present. Sunil has been leading this effort from the engineering perspective and I’ll be sure to touch base with him.

anyakhvost commented 5 years ago

If we continued updating the VACOLS location to OMO, when OMO assigns the case back to the judge would we update the VACOLS location to the judge's location?

Unfortunately, if we don't have OMO queue in place, we have no way of OMO office marking Caseflow task as in-progress. The only thing they can do is to charge the appeal back to the judge in Vacols and Caseflow will have no way of tracking that. In order for this to work correctly, we need queue for the OMO office.

anyakhvost commented 5 years ago

Currently all JudgeTasks are sent to QR. We'll need to add logic here to send all AMA Appeals' to QR and some subset of LegacyAppeals with JudgeTasks to QR.

Yes, we will have to adjust the number of legacy cases we send to QR. Currently we send a total of 137. We will need to figure out how to adjust this number. If we have 2 pilot users, how can we determine how many appeals they will be dispatching. We can ask Chris Given for help.

mdbenjam commented 5 years ago

Hmmm @aroltsch makes a good point around needing an OMO queue. @laurjpeterson how difficult do you think this will be from a process perspective?

lpciferri commented 5 years ago

It'll be similar to our other queue rollouts. Note that OMO will not have any AMA cases, only legacy.

We'll have to do the following:

  1. union notification
  2. user training and validation that our generic functionality will suffice
  3. determine if Caseflow needs to provide productivity reporting, or if we can be backwards compatible with VACOLS locations for this so their VACOLS reports won't break. (we need to be able to show them who completed what tasks so their performance can be evaluated)

I'm willing to get this started, but realize that they are a lower priority queue because they do not work AMA cases.

mdbenjam commented 5 years ago

Do you know anything about their workflow. Do they use VACOLS for anything besides getting what tasks they need to do?

lpciferri commented 5 years ago

Here's what we know about Outside Medical Opinion office:

They definitely track their work using VACOLS locations, assign cases to individuals in the OMO office using VACOLS, and use VACOLS location reports to see their work. I would have to ask them if they also use VACOLS diaries.

mdbenjam commented 5 years ago

Gah so it looks like they use locations to communicate with VHA outside of the board? That makes it way more complex. That means we'd need a Queue for people at VHA. What about this.

Ask OMO users to use a Queue as well VACOLS for a little while. When we create an OMO request we put a task in their queue and move the case to location 20. When the OMO is complete they need to complete the OMO task in Caseflow and we'll move the location back to "CASEFLOW".

Or we could some how auto detect when they've moved the case back to the judge. Like a job that runs daily looking for OMO tasks. See when the move from location 20, back to a judge or "CASEFLOW", then we can close the OMO task.

lpciferri commented 5 years ago
lpciferri commented 5 years ago

closing in favor of this more recent ticket - https://github.com/department-of-veterans-affairs/caseflow/issues/9588