Changes
Applicable to Azure API for FHIR and FHIR service in the Healthcare APIs
c8fd591 Set max item count in search options in SearchParameterDefinitionManager (#2141) [ #84143 ]
- Sets a value for MaxItemCount in searchOptions when searching for SearchParameter resources in SearchParameterDefinitionManager.
- Downstream users of the searchOptions object expect a non-zero value to be populated in this field. When it was left at zero, a bug would be encountered which generated an invalid continuationToken causing searches to fail.
ea20b3a Added retry logic while Deleting SearchParameter (#2121) - Adding a retry logic while Deleting SearchParameter. When there are multiple instances of the fhir-server running, it could take some time for the search parameter/reindex updates to propogate to all instances. Hence we added some retries below to account for that delay.
cd0fa28 Adds final reindex count check. (#2099) [ #12345 ]
- At the end of a reindexing operation, the count of resources that are not reindexed should always be zero. This adds an additional check for this for patient safety reasons.
e6f7b19 Allows for search history bundles with PATCH requests (#2156)
- Allows for search history bundles with PATCH requests
a9d5a0a Adds Binary encoded JSON Patch in Bundles. (#2143)
- Currently, when you submit Bundle there is no good way to pass PATCH operation. Main reason is Bundle can work only with FHIR resources, and our PATCH implementation is based on JsonPatch (where we pass json string of operations to be applied to resource) and not FhirPathPatch (where you pass Parameters object with operations to be applied, which is FHIR resource)
- This is workaround, where instead of implementing FhirPatchPatch we treat Binary resource as base64 encoding of json string and pass it to the server.
67075f2 Break cycle dependency between search service and search definition manager (#2130)
- Move search definition manager from search service. Previously we used definition manager in search service, and search service used to load search parameters into definition manager.
3e1453b Addresses issue with delete CustomSearch parameter, adds back one ValidateTest (#2133) [ #82428 ]
- Fixes issue with deleting CustomSearch parameter and syncing value.
- Adds back one missing test case on Validate tests
2e7b850 Added boundaries to re-index parameters (#2103)
- Added boundaries to reindex parameters. Previously there wa no upper boundary for how much time between reindexing calls.
- Currently, we have below ranges for different parameters based on prior experience:
- MaximumConcurrency: 10
- QueryDelayIntervalInMilliseconds: 5 - 500000
- MaximumNumberOfResourcesPerQuery: 1 - 5000
- TargetDataStoreUsagePercentage: 0 - 100
33f4fa3 Reindex parameter boundaries updates + Unit test (#2109)
- Updates Display Error message and adds unit tests for 2e7b850
a5af835 Refine JsonSerializer To Disable Implicit Resource Validation (#2096)
- Refine JSON serializer. Instead of converting element to FHIR resource before serializing, we can directly serialize element nodes to json format.
Applicable to the Azure API for FHIR only
f62b327 Retry 503 error from Cosmos DB (#2106) [ #83327 ]
- The cosmos SDK will sometimes return a 503 Service Unavailable error after an underlying timeout occurs. This change will retry this error to see if we can get past this problem.
Applicable to the FHIR service in the Azure Healthcare APIs only
58f35a4 Updates SQL batch reindex retry logic (#2118). [ #79925 ]
- Prior to this PR, when one resource failed to reindex due to a versioning conflict, the entire batch would fail.
- Now, the remaining resources in the batch are reindexed. The query will be retried, fetching the most recent version of the failed resource from the database. In the rare scenario where all consecutive retry attempts fail, the reindexing operation will fail with the following error message:
4852df8 Refactoring related to continuation token. (#2120)
- Adds ContinuationTokenConverter class as single place to keep logic related to encoding/decoding continuation token.
- Move ContinuationToken from Core project to SqlServer since it's SqlServer specific.
Test Updates
63713cd Add tests for anonymizer unit tests (#2104)
40805ea Update e2e pipeline (#2151)
- Remove redundant e2e test scripts.
- Addresses https://microsofthealth.visualstudio.com/Health/_workitems/edit/80652
2070875 Makes ConditionalDelete tests more durable (#2134)
de6e518 Custom Search tests should be marked as Skippable facts (#2132) [ #84032 ]
- Two custom search tests should be marked as skippable facts to avoid issues when reindex is not enabled.
2f0d55d Update anonymized export e2e tests category (#2115)
ba38944 Build: Update client app admin consent flow (#2105)
- This changes the way we set up permissions for the client application that we use for tests. Instead of using admin consent flow, we are granting specific delegated permissions to the client app.
Other Updates
- As part of the PR, auth tests were re-enabled (which were disabled in #2085 ) for the PR pipeline.
6b3b435 Fix Authors
tag (#2142)
Package Updates
45f9d2e Bump HealthcareSharedPackageVersion from 3.0.16 to 3.1.0 (#2101)
0e3ca9b Bump converter package to 4.1.154.5 (#2123)
894b860 Bump Microsoft.IO.RecyclableMemoryStream from 2.1.2 to 2.1.3 (#2112)
5aee445 Bump Microsoft.AspNetCore.JsonPatch from 2.2.0 to 5.0.8 (#2097)
82124fb Bump IdentityModelVersion from 6.11.1 to 6.12.0 (#2108)
25f7ab1 Bump AspNetPackageVersion from 5.0.7 to 5.0.8 (#2086)
a206302 Bump Microsoft.ApplicationInsights.AspNetCore from 2.17.0 to 2.18.0 (#2128)
d1011b4 Bump HealthcareSharedPackageVersion from 3.1.0 to 3.1.10 (#2131)
d363fad Bump HealthcareSharedPackageVersion from 3.1.13 to 3.1.14 (#2153)
6f3c6a9 Bump HealthcareSharedPackageVersion from 3.1.10 to 3.1.13 (#2144)
Contributors
Thank you to those who contributed to this release:
@moria97
@sowu880
This list of changes was auto generated.