helix.fhir.client.sdk 4.2.19__py3-none-any.whl → 4.2.21__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py +27 -2
- {helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/METADATA +1 -1
- {helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/RECORD +6 -6
- {helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/WHEEL +0 -0
- {helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/licenses/LICENSE +0 -0
- {helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/top_level.txt +0 -0
|
@@ -27,7 +27,7 @@ from helix_fhir_client_sdk.utilities.retryable_aiohttp_url_result import (
|
|
|
27
27
|
RetryableAioHttpUrlResult,
|
|
28
28
|
)
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
logger = logging.getLogger(__name__)
|
|
31
31
|
class FhirGetBundleResponse(FhirGetResponse):
|
|
32
32
|
"""
|
|
33
33
|
This class represents a response from a FHIR server.
|
|
@@ -133,8 +133,33 @@ class FhirGetBundleResponse(FhirGetResponse):
|
|
|
133
133
|
:param others: list of FhirGetResponse objects
|
|
134
134
|
:return: self
|
|
135
135
|
"""
|
|
136
|
+
if not others:
|
|
137
|
+
return self
|
|
138
|
+
|
|
139
|
+
# Optimization: Since duplicates are already filtered by cache,
|
|
140
|
+
# we can bypass ALL duplicate checking and directly extend the deque
|
|
141
|
+
import time
|
|
142
|
+
collect_start = time.perf_counter()
|
|
143
|
+
all_entries: list[FhirBundleEntry] = []
|
|
136
144
|
for other_response in others:
|
|
137
|
-
|
|
145
|
+
get_start = time.perf_counter()
|
|
146
|
+
other_response_entries: FhirBundleEntryList = other_response.get_bundle_entries()
|
|
147
|
+
get_time = time.perf_counter() - get_start
|
|
148
|
+
logger.info(f"[DEBUG] get_bundle_entries took {get_time:.3f}s for response with {len(other_response_entries)} entries")
|
|
149
|
+
if len(other_response_entries) > 0:
|
|
150
|
+
all_entries.extend(other_response_entries)
|
|
151
|
+
collect_time = time.perf_counter() - collect_start
|
|
152
|
+
print(f"[DEBUG] Collecting all entries from {len(others)} responses took {collect_time:.3f}s")
|
|
153
|
+
|
|
154
|
+
if all_entries:
|
|
155
|
+
if self._bundle_entries is None:
|
|
156
|
+
self._bundle_entries = FhirBundleEntryList()
|
|
157
|
+
|
|
158
|
+
extend_start = time.perf_counter()
|
|
159
|
+
from collections import deque
|
|
160
|
+
deque.extend(self._bundle_entries, all_entries)
|
|
161
|
+
extend_time = time.perf_counter() - extend_start
|
|
162
|
+
logger.info(f"[DEBUG] deque.extend of {len(all_entries)} entries took {extend_time:.3f}s")
|
|
138
163
|
|
|
139
164
|
return self
|
|
140
165
|
|
|
@@ -54,7 +54,7 @@ helix_fhir_client_sdk/responses/get_result.py,sha256=hkbZeu9h-01ZZckAuckn6UDR9GX
|
|
|
54
54
|
helix_fhir_client_sdk/responses/paging_result.py,sha256=tpmfdgrtaAmmViVxlw-EBHoe0PVjSQW9zicwRmhUVpI,1360
|
|
55
55
|
helix_fhir_client_sdk/responses/resource_separator.py,sha256=7Ic0_SPNKCBAk6l07Ke2-AoObkBMnKdmtbbtBBCtVjE,2606
|
|
56
56
|
helix_fhir_client_sdk/responses/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
-
helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py,sha256=
|
|
57
|
+
helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py,sha256=ouQlsnqbDgFkMvjxOHtdLh-BMRhmVmP76sqtAjWefro,20147
|
|
58
58
|
helix_fhir_client_sdk/responses/get/fhir_get_error_response.py,sha256=oNdKs_r7K4qRHD7fyeDhZz3v0wGTT2esAPPtDhxOyeI,12325
|
|
59
59
|
helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py,sha256=ssfb1IB2QTvqwWRzFs_VqPKH6mwcnWNo3iVh82M-Jso,13775
|
|
60
60
|
helix_fhir_client_sdk/responses/get/fhir_get_list_response.py,sha256=KT5g6MjB9yWWUaSZpx1jK9Tm2yVmcFyZMHBBnDDAPtU,11858
|
|
@@ -130,7 +130,7 @@ helix_fhir_client_sdk/validators/async_fhir_validator.py,sha256=i1BC98hZF6JhMQQz
|
|
|
130
130
|
helix_fhir_client_sdk/validators/fhir_validator.py,sha256=HWBldSEB9yeKIcnLcV8R-LoTzwT_OMu8SchtUUBKzys,2331
|
|
131
131
|
helix_fhir_client_sdk/validators/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
132
|
helix_fhir_client_sdk/validators/test/test_async_fhir_validator.py,sha256=RmSowjPUdZee5nYuYujghxWyqJ20cu7U0lJFtFT-ZBs,3285
|
|
133
|
-
helix_fhir_client_sdk-4.2.
|
|
133
|
+
helix_fhir_client_sdk-4.2.21.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
134
134
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
135
|
tests/logger_for_test.py,sha256=UC-7F6w6fDsUIYf37aRnvUdiUUVk8qkJEUSuO17NQnI,1525
|
|
136
136
|
tests/test_fhir_client_clone.py,sha256=c5y1rWJ32nBSUnK1FfyymY005dNowd4Nf1xrbuQolNk,5368
|
|
@@ -213,7 +213,7 @@ tests_integration/test_emr_server_auth.py,sha256=2I4QUAspQN89uGf6JB2aVuYaBeDnRJz
|
|
|
213
213
|
tests_integration/test_firely_fhir.py,sha256=ll6-plwQrKfdrEyfbw0wLTC1jB-Qei1Mj-81tYTl5eQ,697
|
|
214
214
|
tests_integration/test_merge_vs_smart_merge_behavior.py,sha256=LrIuyxzw0YLaTjcRtG0jzy0M6xSv9qebmdBtMPDcacQ,3733
|
|
215
215
|
tests_integration/test_staging_server_graph.py,sha256=5RfMxjhdX9o4-n_ZRvze4Sm8u8NjRijRLDpqiz8qD_0,7132
|
|
216
|
-
helix_fhir_client_sdk-4.2.
|
|
217
|
-
helix_fhir_client_sdk-4.2.
|
|
218
|
-
helix_fhir_client_sdk-4.2.
|
|
219
|
-
helix_fhir_client_sdk-4.2.
|
|
216
|
+
helix_fhir_client_sdk-4.2.21.dist-info/METADATA,sha256=YjnoCZPuhvIXjOWEC647V37vZ0IzeXqhn-xBeCbGhuE,7210
|
|
217
|
+
helix_fhir_client_sdk-4.2.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
218
|
+
helix_fhir_client_sdk-4.2.21.dist-info/top_level.txt,sha256=BRnDS6ceQxs-4u2jXznATObgP8G2cGAerlH0ZS4sJ6M,46
|
|
219
|
+
helix_fhir_client_sdk-4.2.21.dist-info/RECORD,,
|
|
File without changes
|
{helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{helix_fhir_client_sdk-4.2.19.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/top_level.txt
RENAMED
|
File without changes
|