Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ki/APPEALS-24495 WIP - Seed Additional AMA Remanded Appeals for Demo #19249

Merged
merged 14 commits into from
Sep 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions db/seeds.rb
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ def seed
call_and_log_seed_step Seeds::Notifications
call_and_log_seed_step Seeds::CavcDashboardData
call_and_log_seed_step Seeds::VbmsExtClaim
call_and_log_seed_step Seeds::AdditionalRemandedAppeals
# Always run this as last one
call_and_log_seed_step Seeds::StaticTestCaseData
call_and_log_seed_step Seeds::StaticDispatchedAppealsTestData
Expand Down
354 changes: 354 additions & 0 deletions db/seeds/additional_remanded_appeals.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,354 @@
# frozen_string_literal: true

module Seeds
class AdditionalRemandedAppeals < Base
def initialize
initial_id_values
end

def seed!
create_ama_appeals_decision_ready_es
create_ama_appeals_decision_ready_hr
create_ama_appeals_decision_ready_dr
create_ama_appeals_ready_to_dispatch_remanded_es
create_ama_appeals_ready_to_dispatch_remanded_hr
create_ama_appeals_ready_to_dispatch_remanded_dr
create_ama_appeals_ready_to_dispatch_remanded_multiple_es
create_ama_appeals_ready_to_dispatch_remanded_multiple_hr
create_ama_appeals_ready_to_dispatch_remanded_multiple_dr
end

private

def initial_id_values
@file_number ||= 500_000_000
@participant_id ||= 900_000_000
while Veteran.find_by(file_number: format("%<n>09d", n: @file_number + 1))
@file_number += 2000
@participant_id += 2000
end
end

def create_veteran(options = {})
@file_number += 1
@participant_id += 1
params = {
file_number: format("%<n>09d", n: @file_number),
participant_id: format("%<n>09d", n: @participant_id)
}
create(:veteran, params.merge(options))
end

def judge
@judge ||= User.find_by_css_id("BVAAABSHIRE")
end

def attorney
@attorney ||= User.find_by_css_id("BVASCASPER1")
end

def decision_reason_remand_list
[
"no_notice_sent",
"incorrect_notice_sent",
"legally_inadequate_notice",
"va_records",
"private_records",
"service_personnel_records",
"service_treatment_records",
"other_government_records",
"medical_examinations",
"medical_opinions",
"advisory_medical_opinion",
"due_process_deficiency",
#New Remand Reasons not implemented yet - need actual IDs, not just text output
=begin
"No medical examination",
"Inadequate medical examination",
"No medical opinion",
"Inadequate medical opinion",
"Advisory medical opinion",
"Inextricably intertwined",
"Error satisfying regulatory or statutory duty",
"Other",
=end
]
end

def create_ama_remand_reason_variable(remand_code)
[create(:ama_remand_reason, code: remand_code)]
end

def create_allowed_request_issue_1(appeal)
nca = BusinessLine.find_by(name: "National Cemetery Administration")
description = "Service connection for pain disorder is granted with an evaluation of 25\% effective August 1 2020"
notes = "Pain disorder with 25\% evaluation per examination"

board_grant_task = create(:board_grant_effectuation_task,
status: "assigned",
assigned_to: nca,
appeal: appeal)

request_issues = create_list(:request_issue, 1,
:nonrating,
contested_issue_description: "#{description}",
notes: "#{notes}",
benefit_type: nca.url,
decision_review: board_grant_task.appeal)

request_issues.each do |request_issue|
# create matching decision issue
create(:decision_issue,
:nonrating,
disposition: "allowed",
decision_review: board_grant_task.appeal,
request_issues: [request_issue],
rating_promulgation_date: 2.months.ago,
benefit_type: request_issue.benefit_type)
end
end

def create_allowed_request_issue_2(appeal)
education = BusinessLine.find_by(name: "Education")
description = "Service connection for pain disorder is granted with an evaluation of 50\% effective August 2 2021"
notes = "Pain disorder with 50\% evaluation per examination"

board_grant_task = create(:board_grant_effectuation_task,
status: "assigned",
assigned_to: education,
appeal: appeal)

request_issues = create_list(:request_issue, 1,
:nonrating,
contested_issue_description: "#{description}",
notes: "#{notes}",
benefit_type: education.url,
decision_review: board_grant_task.appeal)

request_issues.each do |request_issue|
# create matching decision issue
create(:decision_issue,
:nonrating,
disposition: "allowed",
decision_review: board_grant_task.appeal,
request_issues: [request_issue],
rating_promulgation_date: 1.month.ago,
benefit_type: request_issue.benefit_type)
end
end

def create_remanded_request_issue_1(appeal, num)
vha = BusinessLine.find_by(name: "Veterans Health Administration")
description = "Service connection for pain disorder is granted with an evaluation of 75\% effective February 3 2021"
notes = "Pain disorder with 75\% evaluation per examination"

board_grant_task = create(:board_grant_effectuation_task,
status: "assigned",
assigned_to: vha,
appeal: appeal)

request_issues = create_list(:request_issue, 1,
:nonrating,
contested_issue_description: "#{description}",
notes: "#{notes}",
benefit_type: vha.url,
decision_review: board_grant_task.appeal)

request_issues.each do |request_issue|
# create matching decision issue
create(:decision_issue,
:nonrating,
remand_reasons: create_ama_remand_reason_variable(decision_reason_remand_list[num]),
decision_review: board_grant_task.appeal,
request_issues: [request_issue],
rating_promulgation_date: 1.month.ago,
benefit_type: request_issue.benefit_type)
end
end

def create_remanded_request_issue_2(appeal, num)
insurance = BusinessLine.find_by(name: "Insurance")
description = "Service connection for pain disorder is granted with an evaluation of 100\% effective February 4 2021"
notes = "Pain disorder with 100\% evaluation per examination"

board_grant_task = create(:board_grant_effectuation_task,
status: "assigned",
assigned_to: insurance,
appeal: appeal)

request_issues = create_list(:request_issue, 1,
:nonrating,
contested_issue_description: "#{description}",
notes: "#{notes}",
benefit_type: insurance.url,
decision_review: board_grant_task.appeal)

request_issues.each do |request_issue|
# create matching decision issue
create(:decision_issue,
:nonrating,
remand_reasons: create_ama_remand_reason_variable(decision_reason_remand_list[num]),
disposition: "remanded",
decision_review: board_grant_task.appeal,
request_issues: [request_issue],
rating_promulgation_date: 1.month.ago,
benefit_type: request_issue.benefit_type)
end
end


#Appeals Ready for Decision - Attorney Step
#Evidence Submission
def create_ama_appeals_decision_ready_es
Timecop.travel(30.days.ago)
15.times do
appeal = create(:appeal,
:evidence_submission_docket,
:at_attorney_drafting,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
end
Timecop.return
end

#Hearing
def create_ama_appeals_decision_ready_hr
Timecop.travel(90.days.ago)
15.times do
appeal = create(:appeal,
:hearing_docket,
:at_attorney_drafting,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
end
Timecop.return
end

#Direct Review
def create_ama_appeals_decision_ready_dr
Timecop.travel(60.days.ago)
15.times do
appeal = create(:appeal,
:direct_review_docket,
:at_attorney_drafting,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
end
Timecop.return
end

def link_request_issues(appeal, num)
create_allowed_request_issue_1(appeal)
create_allowed_request_issue_2(appeal)
create_remanded_request_issue_1(appeal, num)
end

#Appeals Ready for Decision with 1 Remand
#Evidence Submission
def create_ama_appeals_ready_to_dispatch_remanded_es
Timecop.travel(35.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:evidence_submission_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
link_request_issues(appeal, num)
end
Timecop.return
end

#Hearing
def create_ama_appeals_ready_to_dispatch_remanded_hr
Timecop.travel(95.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:hearing_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
link_request_issues(appeal, num)
end
Timecop.return
end

#Direct Review
def create_ama_appeals_ready_to_dispatch_remanded_dr
Timecop.travel(65.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:direct_review_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 3,
veteran: create_veteran)
link_request_issues(appeal, num)
end
Timecop.return
end


#Appeals Ready for Decision with Multiple(2) Remands
#Evidence Submission
def create_ama_appeals_ready_to_dispatch_remanded_multiple_es
Timecop.travel(40.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:evidence_submission_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 4,
veteran: create_veteran)
link_request_issues(appeal, num)
create_remanded_request_issue_2(appeal, num)
end
Timecop.return
end

#Hearing
def create_ama_appeals_ready_to_dispatch_remanded_multiple_hr
Timecop.travel(100.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:hearing_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 4,
veteran: create_veteran)
link_request_issues(appeal, num)
create_remanded_request_issue_2(appeal, num)
end
Timecop.return
end

#Direct Review
def create_ama_appeals_ready_to_dispatch_remanded_multiple_dr
Timecop.travel(70.days.ago)
(0..11).each do |num|
appeal = create(:appeal,
:direct_review_docket,
:at_judge_review,
associated_judge: judge,
associated_attorney: attorney,
issue_count: 4,
veteran: create_veteran)
link_request_issues(appeal, num)
create_remanded_request_issue_2(appeal, num)
end
Timecop.return
end
end
end
Loading