helix.fhir.client.sdk 4.2.20__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 +17 -5
- {helix_fhir_client_sdk-4.2.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/METADATA +1 -1
- {helix_fhir_client_sdk-4.2.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/RECORD +6 -6
- {helix_fhir_client_sdk-4.2.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/WHEEL +0 -0
- {helix_fhir_client_sdk-4.2.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/licenses/LICENSE +0 -0
- {helix_fhir_client_sdk-4.2.20.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.
|
|
@@ -136,18 +136,30 @@ class FhirGetBundleResponse(FhirGetResponse):
|
|
|
136
136
|
if not others:
|
|
137
137
|
return self
|
|
138
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()
|
|
139
143
|
all_entries: list[FhirBundleEntry] = []
|
|
140
144
|
for other_response in others:
|
|
145
|
+
get_start = time.perf_counter()
|
|
141
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")
|
|
142
149
|
if len(other_response_entries) > 0:
|
|
143
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")
|
|
144
153
|
|
|
145
|
-
# Now extend with all entries at once instead of one response at a time
|
|
146
154
|
if all_entries:
|
|
147
155
|
if self._bundle_entries is None:
|
|
148
|
-
self._bundle_entries = FhirBundleEntryList(
|
|
149
|
-
|
|
150
|
-
|
|
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")
|
|
151
163
|
|
|
152
164
|
return self
|
|
153
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.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{helix_fhir_client_sdk-4.2.20.dist-info → helix_fhir_client_sdk-4.2.21.dist-info}/top_level.txt
RENAMED
|
File without changes
|