-
Notifications
You must be signed in to change notification settings - Fork 40
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
16148: update FHIR reciever logic to be simpler #16370
base: master
Are you sure you want to change the base?
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.OpenSSF Scorecard
Scanned Manifest Files |
Test Results1 246 tests - 5 1 242 ✅ - 5 7m 32s ⏱️ +9s Results for commit b71dca1. ± Comparison against base commit 7c97376. This pull request removes 5 tests.
|
Quality Gate passedIssues Measures |
Integration Test Results 53 files 53 suites 28m 59s ⏱️ Results for commit b71dca1. |
@@ -296,28 +276,6 @@ class ReportStreamEventService( | |||
).send() | |||
} | |||
|
|||
override fun sendSubmissionProcessingError( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This didn't align with how the other reports were going to work and likely would have led to confusion as this was inverting parameters compared to other builders
// Handle case where sender is not found | ||
return if (sender == null) { | ||
// Send an error event | ||
reportEventService.sendSubmissionProcessingError( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rather than emit an event, we're now adding an item to the poison queue which will cause an alert and enables the engagement team to fix the configuration and requeue the message.
null | ||
} else { | ||
// Handle case where sender is inactive | ||
if (sender.customerStatus == CustomerStatus.INACTIVE) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dropped this since the UP via the ReportFunction silently just drops a message. I'm of the opinion that if a sender is not suppose to sending reports we should revoke there access rather than have a flag that gets checked so late in the process.
val report: Report | ||
val sources = listOf(ClientSource(organization = sender.organizationName, client = sender.name)) | ||
|
||
when (sender.format) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This checking is robustly handled in the convert step and does not need to be duplicated here.
This PR simplifies the FHIR receiver and removes the few bugs in sender parsing and event tracking. The simplification can be done because the FHIR Converter handles the same cases more robustly
Test Steps:
Changes
Checklist
Testing
./prime test
or./gradlew testSmoke
against local Docker ReportStream container?npm run lint:write
?Process
Linked Issues
To Be Done
TBD: but there might be another follow up ticket to address this more efficiently and remove the FHIR Receiver step, but it would require some updates to the how the item lineage works
Specific Security-related subjects a reviewer should pay specific attention to