<h1>Kafka Consumer Workflow for creating Claim Review Records (HLR/Supplemental Claims) within Caseflow</h1>
## Acceptance Criteria
1. Documentation exists that identifies all **datapoints needed from Decision Review Created Kafka Event** for caseflow to create an HLR or Supplemental Claim record.
2. Documentation exists that outlines the **conversion of datapoints from Decision Review Created Kafka Event message into Caseflow** ingestible datapoints.
3. Documentation exists that outlines irreconcilable issues and **risks between caseflow workflow** of creating and completing an HLR or Supplemental Claim record **and VBMS workflow of Decision Review** Created event.
## DecisionReviewCreated avro
```
{
""name"": ""DecisionReviewCreated"",
""type"": ""record"",
""namespace"": ""gov.va.bip.cest.decisionreview.avro"",
""doc"": ""An event that represents a new Decision Review created in the VBMS system"",
""fields"": [
{
""name"": ""claimId"",
""type"": ""long"",
""doc"": ""The ID of the claim created to work this decision review""
},
{
""name"": ""decisionReviewType"",
""type"": [
""null"",
""string""
],
""default"": null,
""doc"": ""The type of decision review (higher level review, supplemental)""
},
{
""name"": ""veteranParticipantId"",
""type"": ""string"",
""doc"": ""The Participant ID of the Veteran""
},
{
""name"": ""claimantParticipantId"",
""type"": ""string"",
""doc"": ""The Participant ID of the claimant filing the Decision Review""
},
{
""name"": ""epCode"",
""type"": ""string"",
""doc"": ""The type of decision review that was created""
},
{
""name"": ""claimReceivedDate"",
""type"": {
""type"": ""int"",
""connect.version"": 1,
""connect.name"": ""org.apache.kafka.connect.data.Date"",
""logicalType"": ""date""
},
""doc"": ""The date that this decision review application was received""
},
{
""name"": ""informalConferenceRequested"",
""type"": ""boolean"",
""doc"": ""Whether an informal conference was requested by the claimant""
},
{
""name"": ""sameStationReviewRequested"",
""type"": ""boolean"",
""doc"": ""Whether the claimant requested that this decision review be performed at the same station that handled the original claim""
},
{
""name"": ""intakeCreationTime"",
""type"": {
""type"": ""long"",
""connect.version"": 1,
""connect.name"": ""org.apache.kafka.connect.data.Timestamp"",
""logicalType"": ""timestamp-millis""
},
""doc"": ""The time at which this decision review intake was created""
},
{
""name"": ""claimCreationTime"",
""type"": {
""type"": ""long"",
""connect.version"": 1,
""connect.name"": ""org.apache.kafka.connect.data.Timestamp"",
""logicalType"": ""timestamp-millis""
},
""doc"": ""The time at which this decision review claim was created""
},
{
""name"": ""createdByUsername"",
""type"": ""string"",
""doc"": ""The user who created this decision review in the system""
},
{
""name"": ""createdByStation"",
""type"": ""string"",
""doc"": ""The station number of the user who created the decision review""
},
{
""name"": ""createdByApplication"",
""type"": ""string"",
""doc"": ""The application that the user used to create this decision review""
},
{
""name"": ""decisionReviewIssues"",
""type"": {
""type"": ""array"",
""items"": {
""name"": ""DecisionReviewIssue"",
""type"": ""record"",
""fields"": [
{
""name"": ""contentionId"",
""type"": [
""null"",
""long""
],
""doc"": ""The ID of the contention created to track this issue. Will be null for ineligible issues""
},
{
""name"": ""associatedRequestIssueId"",
""type"": [
""null"",
""long""
],
""default"": null,
""doc"": ""The ID of the associated request issue from Caseflow. This corresponds to RequestIssue.id in Caseflow.""
},
{
""name"": ""unidentified"",
""type"": ""boolean"",
""doc"": ""Indicates whether this issue was unidentified. If true, both PriorRatingDecisionId and PriorNonRatingDecisionId will be null.""
},
{
""name"": ""priorRatingDecisionId"",
""type"": [
""null"",
""long""
],
""default"": null,
""doc"": ""The identifier of the prior rating decision that this issue is appealing. This is associated with RequestIssue.contested_rating_decision_reference_id in Caseflow. This value will be null if the issue is unidentified or is a non-rating issue.""
},
{
""name"": ""priorNonRatingDecisionId"",
""type"": [
""null"",
""long""
],
""default"": null,
""doc"": ""The identifier of the prior non-rating decision that this issue is appealing. This is associated with RequestIssue.nonrating_issue_bgs_id in Caseflow. This value will be null if the issue is unidentified or is a rating issue.""
},
{
""name"": ""priorDecisionText"",
""type"": ""string"",
""doc"": ""The description of the prior decision that is being reviewed by this issue.""
},
{
""name"": ""priorDecisionType"",
""type"": [
""null"",
""string""
],
""default"": null,
""doc"": ""The type of decision that this issue is appealing""
},
{
""name"": ""priorDecisionNotificationDate"",
""type"": {
""type"": ""int"",
""connect.version"": 1,
""connect.name"": ""org.apache.kafka.connect.data.Date"",
""logicalType"": ""date""
},
""doc"": ""The date at which the claimant was notified of the prior decision. If its a rating issue, its the promulgation date plus one day. If its a non-rating issue, its the authorization date. If its an unidentified issue, its the user provided date.""
},
{
""name"": ""priorDecisionDiagnosticCode"",
""type"": [
""null"",
""string""
],
""default"": null,
""doc"": ""The diagnostic code(s) of the prior decision that is being reviewed by this issue""
},
{
""name"": ""priorDecisionRatingPercentage"",
""type"": [
""null"",
""string""
],
""default"": null,
""doc"": ""The rating percentage of the prior decision that is being reviewed by this issue""
},
{
""name"": ""eligible"",
""type"": ""boolean"",
""doc"": ""Indicates whether this issue was eligible for appeal. If true, a contention was created for it. Otherwise, false.""
},
{
""name"": ""eligibilityResult"",
""type"": {
""type"": ""enum"",
""name"": ""EligibilityResultEnum"",
""symbols"": [
""ELIGIBLE"",
""ELIGIBLE_LEGACY"",
""TIME_RESTRICTION"",
""PENDING_LEGACY_APPEAL"",
""LEGACY_TIME_RESTRICTION"",
""NO_SOC_SSOC"",
""CONTESTED"",
""PENDING_HLR"",
""COMPLETED_HLR"",
""PENDING_BOARD"",
""COMPLETED_BOARD"",
""PENDING_SUPPLEMENTAL""
]
},
""doc"": ""The specific reason why this issue is eligible or ineligible""
},
{
""name"": ""timeOverride"",
""type"": [
""null"",
""boolean""
],
""default"": null,
""doc"": ""Whether this issue was ineligible due to the time restriction but that restriction was overridden""
},
{
""name"": ""timeOverrideReason"",
""type"": [
""null"",
""string""
],
""default"": null,
""doc"": ""Optional reason why the user granted the time restriction override to the claimant""
},
{
""name"": ""contested"",
""type"": [
""null"",
""boolean""
],
""default"": null,
""doc"": ""Whether or not this issue is being contested by another claimant. Only relevant for certain Prior Decision types""
},
{
""name"": ""socOptIn"",
""type"": [
""null"",
""boolean""
],
""default"": null,
""doc"": ""Whether or not the claimant is opting in from the legacy appeals system""
},
{
""name"": ""legacyAppealId"",
""type"": [
""null"",
""long""
],
""default"": null,
""doc"": ""The ID of the legacy VACOLS appeal that is being opted-in from. This is associated with VacolsIssue.vacols_id in Caseflow. ""
},
{
""name"": ""legacyAppealIssueId"",
""type"": [
""null"",
""long""
],
""default"": null,
""doc"": ""The ID of the legacy VACOLS issue that is being opted-in from. This is associated with VacolsIssue.vacols_sequence_id in Caseflow. This issue should be closed out in VACOLS""
}
]
}
}
}
]
}
```
# Caseflow Tables
* bold text indicates Caseflow factory default fields
* italicized text indicates table indexes
## Caseflow Higher Level Reviews (HLR)
| name | datatype | cannot be null | populated upon creation | VBMS payload equivalent |
|:------------------------------- |:-------- |:--------------:|:-----------------------:|:----------------------------------------------------:|
| **benefit_type** | string | | ✓ | ep_code? |
| created_at | datetime | | ✓ | claimCreationTime? |
| establishment_attempted_at | datetime | | ✓ | |
| establishment_canceled_at | datetime | | | |
| establishment_error | string | | | |
| establishment_last_submitted_at | datetime | | ✓ | |
| establishment_processed_at | datetime | | ✓ | |
| establishment_submitted_at | datetime | | ✓ | |
| filed_by_va_gov | boolean | | | ? |
| informal_conference | boolean | | | informalConferenceRequested |
| legacy_opt_in_approved | boolean | | | socOptIn |
| **receipt_date** | date | | ✓ | claimReceivedDate |
| same_office | boolean | | | sameStationReviewRequested |
| ***updated_at*** | datetime | | ✓ | |
| ***uuid*** | uuid | ✓ | ✓ | |
| ***veteran_file_number*** | string | ✓ | ✓ | veteranFileNumber (will be added) |
| veteran_is_not_claimant | boolean | | | compare veteranParticipantId & claimantParticipantId |
## Caseflow Supplemental Claims
| name | datatype | cannot be null | populated upon creation | VBMS payload equivalent |
| ----------------------------------- |:-------- |:--------------:|:-----------------------:|:----------------------------------------------------:|
| **benefit_type** | string | | ✓ | ep_code? |
| created_at | datetime | | ✓ | claimCreationTime? |
| decision_review_remanded_id | bigint | | | |
| ***decision_review_remanded_type*** | string | | | |
| establishment_attempted_at | datetime | | ✓ | |
| establishment_canceled_at | datetime | | | |
| establishment_error | string | | | |
| establishment_last_submitted_at | datetime | | ✓ | |
| establishment_processed_at | datetime | | ✓ | |
| establishment_submitted_at | datetime | | ✓ | |
| filed_by_va_gov | boolean | | | ? |
| legacy_opt_in_approved | boolean | | | socOptIn |
| **receipt_date** | date | | ✓ | claimReceivedDate |
| ***updated_at*** | datetime | | ✓ | |
| ***uuid*** | uuid | ✓ | ✓ | |
| ***veteran_file_number*** | string | ✓ | ✓ | veteranFileNumber (will be added) |
| veteran_is_not_claimant | boolean | | | compare veteranParticipantId & claimantParticipantId |