LNK-4455: Fhir List Configuration Changes for POI - #1245
Conversation
WalkthroughThe PR refactors the FHIR List configuration form to support a new POI data structure, replacing measure ID and list ID fields with status, time frame, and FHIR ID. The component logic, template, styles, and interface are updated to populate and manage a predefined matrix of status and time frame combinations with associated FHIR identifiers. Changes
Sequence DiagramsequenceDiagram
participant User
participant Component
participant Form as FormArray
User->>Component: Open configuration (ngOnInit/ngOnChanges)
Component->>Component: populateAllCombinations()
loop For each status × timeFrame combination
Component->>Form: createPatientFormGroup()
Form-->>Component: FormGroup {status, timeFrame, fhirId}
end
Component->>Component: Initialize patientListControl
User->>Component: Enter FHIR IDs and Submit
Component->>Form: Iterate form controls
loop For each patient form
Form->>Component: Extract {status, timeFrame, fhirId}
end
Component->>Component: submitConfiguration()
Component-->>User: Send ehrPatientLists
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes
Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
Web/Admin.UI/src/app/components/tenant/facility-edit/facility-edit.component.ts (1)
348-349: Verify dialog dimension consistency across the component.The FHIR List config dialog now uses
50vwdimensions, deviating from the75%width pattern used inshowFacilityDialog(),showCensusDialog(),showQueryDispatchDialog(), andshowDataAcqFhirQueryDialog(). OnlyshowOperationDialog()(line 521) currently matches this pattern.Consider whether this narrower width is intentional for the FHIR List form, or if all similar dialogs should be standardized for consistency. If this is a deliberate change to accommodate the form's layout, document the reasoning or ensure visual testing validates the responsiveness across viewport sizes.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
Disabled knowledge base sources:
- Jira integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
📒 Files selected for processing (5)
Web/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.html(2 hunks)Web/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.scss(1 hunks)Web/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.ts(6 hunks)Web/Admin.UI/src/app/components/tenant/facility-edit/facility-edit.component.ts(1 hunks)Web/Admin.UI/src/app/interfaces/data-acquisition/data-acquisition-fhir-list-config-model.interface.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
**
⚙️ CodeRabbit configuration file
**: Pull requests that have "TECH_DEBT" in the title should only contain changes related to typos, unused code, linter/IDE suggestions, swagger specification updates,
and logging improvements. These TECH_DEBT PRs must not affect core functionality. All PRs that are not considered technical debt must include information on what
testing was performed in the description of the PR. If it does not, ask the author to provide details on what testing was performed.
When reviewing code, suggest unit tests using XUnit in the following scenarios:
- If/Else or Switch/Case blocks are introduced or modified — ensure each branch has a corresponding unit test.
- Logic that depends on service or interface configuration — suggest tests to validate different implementations are correctly resolved.
- No network activity (HTTP calls, sockets, etc.) should appear in unit tests. Recommend using mocks (via Moq) for any external communication.
Large unit tests should be avoided; keeping unit tests small and focused on targeted business logic (i.e. string sanitization)
**: Pull requests that have DOCS in the title should only contain changes related to documentation within the /docs folder or in .md files through-out the code-base. The description
of the PR should specify what documentation was updated. Documentation updates should use EventCatalog.dev structure, where service-specific functionality should be described
in the service's index.mdx (i.e. /services/XXX/index.mdx or /domains/XXX/services/YYY/index.mdx). Configurations that are shared by multiple services should be
reflected in the /docs/docs/config files.
Files:
Web/Admin.UI/src/app/components/tenant/facility-edit/facility-edit.component.tsWeb/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.scssWeb/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.tsWeb/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.htmlWeb/Admin.UI/src/app/interfaces/data-acquisition/data-acquisition-fhir-list-config-model.interface.ts
🧬 Code graph analysis (1)
Web/Admin.UI/src/app/components/data-acquisition/data-acquisition-fhir-list-config-form/data-acquisition-fhir-list-config-form.component.ts (1)
Web/Admin.UI/src/app/interfaces/data-acquisition/data-acquisition-fhir-list-config-model.interface.ts (1)
IEhrPatientListModel(11-15)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (csharp)
🛠️ Description of Changes
Fhir List Configuration Changes for POI
🧪 Testing Performed
Tested locally
🧑🔬 Unit Testing
📓 Documentation Updated
Please update any relevant sections in the project documentation that were impacted by the changes in the PR.
Summary by CodeRabbit
New Features
Refactor