Refactor Search Parameter Info Management#5400
Conversation
- Updated SearchParameterDefinitionBuilder to use ConcurrentDictionary<string, ConcurrentQueue<string>> for resource type lookups. - Modified methods to ensure consistent handling of search parameter URLs, including updates to GetOrCreateSearchParameterInfo and validation methods. - Enhanced SearchParameterDefinitionManager to support new dictionary structure and improve search parameter retrieval logic. - Added unit tests to verify behavior of search parameter resolution, including case sensitivity and overwriting of static definitions. - Adjusted SearchParameterInfo to ensure GetHashCode is consistent with Equals implementation. - Improved overall code readability and maintainability by reducing redundancy and clarifying method responsibilities.
src/Microsoft.Health.Fhir.Core/Features/Definition/SearchParameterDefinitionManager.cs
Fixed
Show fixed
Hide fixed
… for improved performance
|
"Updated SearchParameterDefinitionBuilder to use ConcurrentDictionary<string, ConcurrentQueue> for resource type lookups." |
This would be phase 1 which resolves the underlying issue of multiple objects being used and diverging. For the allowing concurrent writes, this would be next phase were we are addressing responsibility of cache updates to be performed solely by Background Refresh service. Additionally, we do currently have locks on search parameter updates at app and db layers. |
docs/arch/Proposals/adr-2602-searchparameter-definition-binding-separation.md
Outdated
Show resolved
Hide resolved
|
Should we update UrlLookup to UriLookup? |
3544d7b
|
/azp run |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Description
As suggested by Sergey in #5386 (comment)
Related issues
Addresses AB#183574.
Testing
Describe how this change was tested.
FHIR Team Checklist
Semver Change (docs)
Patch|Skip|Feature|Breaking (reason)