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.
@@ -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(all_entries)
149
- else:
150
- self._bundle_entries.extend(all_entries)
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: helix.fhir.client.sdk
3
- Version: 4.2.20
3
+ Version: 4.2.21
4
4
  Summary: helix.fhir.client.sdk
5
5
  Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
6
6
  Author: Imran Qureshi
@@ -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=PA1bzR4DkF91uTBM5tZCZ_AB0ovE49EJjq4O-1-Ya90,19357
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.20.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
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.20.dist-info/METADATA,sha256=A2csXjl7i8RJGVOVOi3hJgkOm68CGpDUNudPitzq_EA,7210
217
- helix_fhir_client_sdk-4.2.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
218
- helix_fhir_client_sdk-4.2.20.dist-info/top_level.txt,sha256=BRnDS6ceQxs-4u2jXznATObgP8G2cGAerlH0ZS4sJ6M,46
219
- helix_fhir_client_sdk-4.2.20.dist-info/RECORD,,
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,,