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
54 stars 18 forks source link

[Backend] Add hearing integration code for Daily Docket page. Persist updates to daily docket back to VACOLS #2221

Closed joofsh closed 7 years ago

joofsh commented 7 years ago

Save daily docket information back to VACOLS hearsched table

the UI for context:

screen shot 2017-06-11 at 9 46 14 pm

This is the parent issue for each of the following five issues:

cmgiven commented 7 years ago

Well there's a lot going on here. From Jed, I haven't read through yet:

The program loops through all the entries and Updates the Team, Room number, and user and date last updated. You’ll need to add the room number to you screen.

do until cnt > totalrows
    ls_mem  = dw_1.GetItemString(cnt, "board_member")
    setnull(ls_team)
   SELECT STITLE into :ls_team from STAFF where SATTYID = :ls_mem;

     dw_1.SetItem(cnt, "team", ls_team)
    dw_1.SetItem(cnt, "room", ls_index)
    dw_1.SetItem(cnt, "mduser", upper(sqlca.logid))
     dw_1.SetItem(cnt, "mdtime", gd_sysdate)
     cnt ++
loop

If the AOD is granted the a ‘B’ diary gets generated, if the VSO is ‘G’ (Paralyzed Vets of America) then a second ‘B1’ diary gets generated.

                if ls_aod = 'G' then
                                f_diary_add_vd(ls_folder, 'B', '', 'AOD granted on Record during hearing.', 0)
                                if ls_bfso = 'G' then // PVA
                                                f_diary_add_vd(ls_folder, 'B1', '', 'AOD granted on Record during hearing.', 0)
                                end if
                end if

If Hold Days > 0 then add 5 days to the selected value (30 +5, 60 +5, 90 +5) and create an ‘A’ diary

                                if li_days > 0 then
                                                li_days = li_days + 5
                                                f_diary_add_vd(ls_folder, 'A', '', 'Record held open by VLJ at hearing for additonal evidence.', li_days)
                                end if

The BRIEFF.BFHA column gets updated based on the type of hearing and disposition of hearing.

                                if gs_vdtype = 'VIDEO' then
                                                ls_hrtype = '6'
else
                                                ls_hrtype = '2'
end if

                                if not isnull(ls_disp) then
                                                if ls_disp = 'H' then
                                                                ls_bfha = ls_hrtype
                                                elseif ls_disp = 'P' then
                                                                setnull(ls_bfha)
                                                else
                                                                ls_bfha = '5'
                                                end if
                                end if

                                UPDATE BRIEFF set BFHA = :ls_bfha   where BFKEY = :ls_folder;
                                COMMIT;

f_diary_add_vd function

Values passed to function in_folder, in_code, in_assignee, in_desc, in_days

datetime ld_due, ld_issdcls
integer n, acnt, dcnt, li_days
string ls_days, ls_tskrqact, ls_assignee
Check to see if diary already exists
Select count(*) into :acnt from ASSIGN where tsktknm = :in_folder and tskactcd = :in_code;
if acnt > 0 then
                return 0
end if

Generate unique primary key

FOR n = 1 TO 99
                gs_tasknum = trim(in_folder) + 'D' + string(n)
                Select count(*) into :dcnt from ASSIGN where TASKNUM = :gs_tasknum;
                if dcnt = 0 then Exit
NEXT

setnull(ls_tskrqact)
setnull(ls_assignee)

Get default days and assignee, use these if not passed to function

Select ACTCDTC, ACSPARE1 into :ls_days, :ls_assignee from ACTCODE where ACTCKEY = :in_code;

if len(trim(in_desc)) > 0     then ls_tskrqact = in_desc
if len(trim(in_assignee)) > 0 then ls_assignee = in_assignee

if in_days > 0 then
                li_days = in_days
else
                li_days = integer(ls_days)
end if

ld_due = datetime(relativedate(date(gd_sysdate), li_days))

INSERT into ASSIGN (tasknum, tsktknm, tskdassn, tskstown,
                tskactcd, tskstfas, tskdtc, tskddue, tskstat, tskrqact, tskadusr, tskadtm)
                values (:gs_tasknum, :in_folder, :gd_sysdate, upper(:sqlca.logid),
                  :in_code, :ls_assignee, :li_days, :ld_due, 'P', :ls_tskrqact, upper(:sqlca.logid), :gd_sysdate);
COMMIT;
anyakhvost commented 7 years ago

From Chris:

notes = `HEARSCHED.NOTES1` (note this has a 100 character max)
disposition = `HEARSCHED.HEARING_DISP` (`H` is held, `C` is canceled, `P` is postponed, and `N` is no-show)
hold open = `HEARSCHED.HOLDAYS` (I'm going to check on this one and make sure that VACOLS doesn't also open a diary, VACOLS currently uses null instead of 0 for those not held open)
aod = `HEARSCHED.AOD` (null if false, `Y` if true)
transcript requested = `HEARSCHED.TRANREQ` (null if false, `Y` if true) (edit
cmgiven commented 7 years ago

Updated the description to reference the five child issues.

ghost commented 7 years ago

PASSED I guess all the other tickets passed? or something... not sure why the UI is here