helix.fhir.client.sdk 4.2.3__py3-none-any.whl → 4.2.19__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/fhir_auth_mixin.py +17 -10
- helix_fhir_client_sdk/fhir_client.py +152 -79
- helix_fhir_client_sdk/fhir_delete_mixin.py +62 -48
- helix_fhir_client_sdk/fhir_merge_mixin.py +188 -166
- helix_fhir_client_sdk/fhir_merge_resources_mixin.py +200 -15
- helix_fhir_client_sdk/fhir_patch_mixin.py +97 -84
- helix_fhir_client_sdk/fhir_update_mixin.py +71 -57
- helix_fhir_client_sdk/graph/simulated_graph_processor_mixin.py +147 -49
- helix_fhir_client_sdk/open_telemetry/__init__.py +0 -0
- helix_fhir_client_sdk/open_telemetry/attribute_names.py +7 -0
- helix_fhir_client_sdk/open_telemetry/span_names.py +12 -0
- helix_fhir_client_sdk/queue/request_queue_mixin.py +17 -12
- helix_fhir_client_sdk/responses/fhir_client_protocol.py +10 -6
- helix_fhir_client_sdk/responses/fhir_get_response.py +3 -4
- helix_fhir_client_sdk/responses/fhir_response_processor.py +73 -54
- helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py +49 -28
- helix_fhir_client_sdk/responses/get/fhir_get_error_response.py +0 -1
- helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py +1 -1
- helix_fhir_client_sdk/responses/get/fhir_get_list_response.py +1 -1
- helix_fhir_client_sdk/responses/get/fhir_get_response_factory.py +0 -1
- helix_fhir_client_sdk/responses/get/fhir_get_single_response.py +1 -1
- helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response_entry.py +30 -0
- helix_fhir_client_sdk/responses/resource_separator.py +35 -40
- helix_fhir_client_sdk/utilities/cache/request_cache.py +32 -43
- helix_fhir_client_sdk/utilities/retryable_aiohttp_client.py +185 -154
- helix_fhir_client_sdk/utilities/retryable_aiohttp_response.py +2 -1
- helix_fhir_client_sdk/validators/async_fhir_validator.py +3 -0
- helix_fhir_client_sdk-4.2.19.dist-info/METADATA +200 -0
- {helix_fhir_client_sdk-4.2.3.dist-info → helix_fhir_client_sdk-4.2.19.dist-info}/RECORD +36 -29
- tests/async/test_benchmark_compress.py +448 -0
- tests/async/test_benchmark_merge.py +506 -0
- tests/async/test_retryable_client_session_management.py +159 -0
- tests/test_fhir_client_clone.py +155 -0
- helix_fhir_client_sdk-4.2.3.dist-info/METADATA +0 -115
- {helix_fhir_client_sdk-4.2.3.dist-info → helix_fhir_client_sdk-4.2.19.dist-info}/WHEEL +0 -0
- {helix_fhir_client_sdk-4.2.3.dist-info → helix_fhir_client_sdk-4.2.19.dist-info}/licenses/LICENSE +0 -0
- {helix_fhir_client_sdk-4.2.3.dist-info → helix_fhir_client_sdk-4.2.19.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: helix.fhir.client.sdk
|
|
3
|
+
Version: 4.2.19
|
|
4
|
+
Summary: helix.fhir.client.sdk
|
|
5
|
+
Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
|
|
6
|
+
Author: Imran Qureshi
|
|
7
|
+
Author-email: imran@icanbwell.com
|
|
8
|
+
Classifier: Development Status :: 4 - Beta
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
|
+
Classifier: Operating System :: OS Independent
|
|
12
|
+
Requires-Python: >=3.10
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
License-File: LICENSE
|
|
15
|
+
Requires-Dist: furl
|
|
16
|
+
Requires-Dist: requests
|
|
17
|
+
Requires-Dist: urllib3
|
|
18
|
+
Requires-Dist: chardet
|
|
19
|
+
Requires-Dist: aiohttp
|
|
20
|
+
Requires-Dist: async-timeout>=4.0.3
|
|
21
|
+
Requires-Dist: python-dateutil
|
|
22
|
+
Requires-Dist: compressedfhir<3,>=1.0.13
|
|
23
|
+
Requires-Dist: certifi>=2025.1.31
|
|
24
|
+
Requires-Dist: opentelemetry-api>=1.39
|
|
25
|
+
Requires-Dist: multidict>=6
|
|
26
|
+
Dynamic: author
|
|
27
|
+
Dynamic: author-email
|
|
28
|
+
Dynamic: classifier
|
|
29
|
+
Dynamic: description
|
|
30
|
+
Dynamic: description-content-type
|
|
31
|
+
Dynamic: home-page
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
Dynamic: requires-dist
|
|
34
|
+
Dynamic: requires-python
|
|
35
|
+
Dynamic: summary
|
|
36
|
+
|
|
37
|
+
# helix.fhir.client.sdk
|
|
38
|
+
|
|
39
|
+
<p align="left">
|
|
40
|
+
<a href="https://github.com/icanbwell/helix.fhir.client.sdk/actions">
|
|
41
|
+
<img src="https://github.com/icanbwell/helix.fhir.client.sdk/workflows/Build%20and%20Test/badge.svg"
|
|
42
|
+
alt="Continuous Integration">
|
|
43
|
+
</a>
|
|
44
|
+
<a href="https://github.com/icanbwell/helix.fhir.client.sdk/releases/latest">
|
|
45
|
+
<img src="https://img.shields.io/github/v/release/icanbwell/helix.fhir.client.sdk?display_name=tag"
|
|
46
|
+
alt="Latest Release">
|
|
47
|
+
</a>
|
|
48
|
+
<a href="https://github.com/icanbwell/helix.fhir.client.sdk/blob/main/LICENSE">
|
|
49
|
+
<img src="https://img.shields.io/badge/license-Apache%202-blue"
|
|
50
|
+
alt="GitHub license">
|
|
51
|
+
</a>
|
|
52
|
+
</p>
|
|
53
|
+
|
|
54
|
+
Fluent API to call the FHIR server that handles:
|
|
55
|
+
|
|
56
|
+
1. Authentication to FHIR server
|
|
57
|
+
2. Renewing access token when they expire
|
|
58
|
+
3. Retry when there are transient errors
|
|
59
|
+
4. Un-bundling the resources received from FHIR server
|
|
60
|
+
5. Paging
|
|
61
|
+
6. Streaming
|
|
62
|
+
7. Logging
|
|
63
|
+
8. Simulating a $graph call when the server does not support it
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
# Usage
|
|
67
|
+
`pip install helix.fhir.client.sdk`
|
|
68
|
+
|
|
69
|
+
# Documentation
|
|
70
|
+
https://icanbwell.github.io/helix.fhir.client.sdk/
|
|
71
|
+
|
|
72
|
+
# Test Project using this
|
|
73
|
+
https://github.com/icanbwell/fhir-server-performance
|
|
74
|
+
|
|
75
|
+
# Python Version Support
|
|
76
|
+
* 1.x supports python 3.7+
|
|
77
|
+
* 2.x supports python 3.10+
|
|
78
|
+
* 3.x supports python 3.12+
|
|
79
|
+
|
|
80
|
+
# Asynchronous Support
|
|
81
|
+
When communicating with FHIR servers, a lot of time is spent waiting for the server to respond.
|
|
82
|
+
This is a good use case for using asynchronous programming.
|
|
83
|
+
This SDK supports asynchronous programming using the `async` and `await` keywords.
|
|
84
|
+
|
|
85
|
+
The return types are Python AsyncGenerators. Python makes it very easy to work with AsyncGenerators.
|
|
86
|
+
|
|
87
|
+
For example, if the SDK provides a function like this:
|
|
88
|
+
```python
|
|
89
|
+
|
|
90
|
+
async def get_resources(self) -> AsyncGenerator[FhirGetResponse, None]:
|
|
91
|
+
...
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
You can iterate over the results as they become available:
|
|
95
|
+
```python
|
|
96
|
+
response: Optional[FhirGetResponse]
|
|
97
|
+
async for response in client.get_resources():
|
|
98
|
+
print(response.resource)
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Or you can get a list of responses (which will return AFTER all the responses are received:
|
|
102
|
+
```python
|
|
103
|
+
|
|
104
|
+
responses: List[FhirGetResponse] = [response async for response in client.get_resources()]
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Or you can aggregate the responses into one response (which will return AFTER all the responses are received:
|
|
108
|
+
```python
|
|
109
|
+
|
|
110
|
+
response: Optional[FhirGetResponse] = await FhirGetResponse.from_async_generator(client.get_resources())
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
# Data Streaming
|
|
114
|
+
For FHIR servers that support data streaming (e.g., b.well FHIR server), you can just set the `use_data_streaming` parameter to stream the data as it is received.
|
|
115
|
+
The data will be streamed in AsyncGenerators as described above.
|
|
116
|
+
|
|
117
|
+
# Persistent Sessions (Connection Reuse)
|
|
118
|
+
By default, the SDK creates a new HTTP session for each request. For better performance (~4× faster),
|
|
119
|
+
you can use persistent sessions to reuse connections across multiple requests.
|
|
120
|
+
|
|
121
|
+
**Important**: When you provide a custom session factory using `use_http_session()`, YOU are responsible
|
|
122
|
+
for managing the session lifecycle, including closing it when done. The SDK will NOT automatically close
|
|
123
|
+
user-provided sessions.
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
import aiohttp
|
|
127
|
+
from helix_fhir_client_sdk.fhir_client import FhirClient
|
|
128
|
+
|
|
129
|
+
# Create a persistent session for connection reuse
|
|
130
|
+
session = aiohttp.ClientSession()
|
|
131
|
+
|
|
132
|
+
try:
|
|
133
|
+
# Configure FhirClient to use persistent session
|
|
134
|
+
fhir_client = (
|
|
135
|
+
FhirClient()
|
|
136
|
+
.url("https://fhir.example.com")
|
|
137
|
+
.resource("Patient")
|
|
138
|
+
.use_http_session(lambda: session) # User provides session factory
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
# Multiple requests reuse the same connection (~4× performance boost)
|
|
142
|
+
response1 = await fhir_client.get_async()
|
|
143
|
+
response2 = await fhir_client.clone().resource("Observation").get_async()
|
|
144
|
+
|
|
145
|
+
finally:
|
|
146
|
+
# User must close the session when done
|
|
147
|
+
await session.close()
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Session Lifecycle Rules**:
|
|
151
|
+
- **No custom factory** (default): SDK creates and closes the session automatically
|
|
152
|
+
- **Custom factory provided**: User is responsible for closing the session
|
|
153
|
+
|
|
154
|
+
# Storage Compression
|
|
155
|
+
The FHIR client SDK supports two types of compression:
|
|
156
|
+
|
|
157
|
+
1. **HTTP Compression** (`compress`): Compresses HTTP request body when sending data to the server. Default: **enabled**
|
|
158
|
+
2. **In-Memory Storage** (`storage_mode`): Controls how FHIR resources are stored in memory. Default: **raw (no compression)**
|
|
159
|
+
|
|
160
|
+
## Disabling HTTP Compression
|
|
161
|
+
HTTP compression (gzip) is enabled by default for request bodies. To disable it:
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
from helix_fhir_client_sdk.fhir_client import FhirClient
|
|
165
|
+
|
|
166
|
+
# Disable HTTP compression for requests
|
|
167
|
+
fhir_client = FhirClient().url("https://fhir.example.com").compress(False)
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## In-Memory Storage Modes
|
|
171
|
+
The SDK supports different storage modes for FHIR resources through the `set_storage_mode()` method.
|
|
172
|
+
By default, resources are stored as raw Python dictionaries (no compression).
|
|
173
|
+
|
|
174
|
+
```python
|
|
175
|
+
from helix_fhir_client_sdk.fhir_client import FhirClient
|
|
176
|
+
from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode import CompressedDictStorageMode
|
|
177
|
+
|
|
178
|
+
# Use raw storage (default) - no compression, resources stored as plain Python dicts
|
|
179
|
+
fhir_client = FhirClient().set_storage_mode(CompressedDictStorageMode(storage_type="raw"))
|
|
180
|
+
|
|
181
|
+
# Use msgpack storage - stores resources in msgpack format
|
|
182
|
+
fhir_client = FhirClient().set_storage_mode(CompressedDictStorageMode(storage_type="msgpack"))
|
|
183
|
+
|
|
184
|
+
# Use compressed msgpack storage - stores resources in compressed msgpack format
|
|
185
|
+
fhir_client = FhirClient().set_storage_mode(CompressedDictStorageMode(storage_type="compressed_msgpack"))
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
Available storage types:
|
|
189
|
+
- `raw`: Default. Resources are stored as standard Python dictionaries (no compression)
|
|
190
|
+
- `msgpack`: Resources are serialized using MessagePack for efficient storage
|
|
191
|
+
- `compressed_msgpack`: Resources are serialized using MessagePack and then compressed
|
|
192
|
+
|
|
193
|
+
## Getting Raw Python Dictionaries
|
|
194
|
+
To completely bypass the `compressedfhir` library and get plain Python dictionaries:
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
# Returns plain Python dicts, not FhirResource objects
|
|
198
|
+
result = await fhir_client.get_raw_resources_async()
|
|
199
|
+
resources = result["_resources"] # list[dict[str, Any]]
|
|
200
|
+
```
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
helix_fhir_client_sdk/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
2
|
helix_fhir_client_sdk/dictionary_parser.py,sha256=WrGkVAxMlUvVycRVrX7UZt2oP2e_Vk4-E8QibwTpHLM,3401
|
|
3
3
|
helix_fhir_client_sdk/dictionary_writer.py,sha256=V7Bx9Z69s0LRYF6Lc6Xp0d-Gj0BnAVKA1vBuwf3JORE,1486
|
|
4
|
-
helix_fhir_client_sdk/fhir_auth_mixin.py,sha256=
|
|
4
|
+
helix_fhir_client_sdk/fhir_auth_mixin.py,sha256=IZbqG_JtABVvN-_xxFrbupe97Hnc7cNoA2l0D3y0gf8,14549
|
|
5
5
|
helix_fhir_client_sdk/fhir_bundle_appender.py,sha256=t1hs7p_vXKC9MUFyUnN9dTuDhRF-kw-kkgVFtGHv9QQ,11749
|
|
6
|
-
helix_fhir_client_sdk/fhir_client.py,sha256=
|
|
7
|
-
helix_fhir_client_sdk/fhir_delete_mixin.py,sha256=
|
|
8
|
-
helix_fhir_client_sdk/fhir_merge_mixin.py,sha256=
|
|
9
|
-
helix_fhir_client_sdk/fhir_merge_resources_mixin.py,sha256=
|
|
10
|
-
helix_fhir_client_sdk/fhir_patch_mixin.py,sha256=
|
|
11
|
-
helix_fhir_client_sdk/fhir_update_mixin.py,sha256=
|
|
6
|
+
helix_fhir_client_sdk/fhir_client.py,sha256=G6arOw76vcwSkcfAgPHLbOK-B5eWymNMRNygoKIx6FA,37262
|
|
7
|
+
helix_fhir_client_sdk/fhir_delete_mixin.py,sha256=1vgbbBGxXGwp1ay58Du_jWI75BjgfMKtdm5E7A0Oo7U,7738
|
|
8
|
+
helix_fhir_client_sdk/fhir_merge_mixin.py,sha256=ubROibX14IC8iu7CyTKV3KbO34nCJTir3oCT8Gfah_I,18124
|
|
9
|
+
helix_fhir_client_sdk/fhir_merge_resources_mixin.py,sha256=Jynsew9iMWTPeNJ979Dm8EB6DLsc3ddDMeywmeAU6uU,36251
|
|
10
|
+
helix_fhir_client_sdk/fhir_patch_mixin.py,sha256=xFn4RIjGBwnZuIV4eD8E_Yk7lRbwkW6SBHkoNqMz_mk,7360
|
|
11
|
+
helix_fhir_client_sdk/fhir_update_mixin.py,sha256=NQ_6_UHzlFztnH_OrChl6dicC6hR-qBBnPToqZAe_X4,7588
|
|
12
12
|
helix_fhir_client_sdk/function_types.py,sha256=x95j6ix3Xa9b276Q741xX1jguqBuFT6EBLDw35_EoVM,3916
|
|
13
13
|
helix_fhir_client_sdk/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
helix_fhir_client_sdk/well_known_configuration.py,sha256=hwKpqZoJHkHuCEOowoXk07ywEMMhr_rcmQHNKCUEgVk,221
|
|
@@ -32,31 +32,34 @@ helix_fhir_client_sdk/graph/fhir_graph_mixin.py,sha256=z0j9FmO2bOnmzgQmczfkWC70u
|
|
|
32
32
|
helix_fhir_client_sdk/graph/graph_definition.py,sha256=FTa1GLjJ6oooAhNw7SPk-Y8duB-5WtJtnwADao-afaI,3878
|
|
33
33
|
helix_fhir_client_sdk/graph/graph_link_parameters.py,sha256=3rknHL6SBgpT2A1fr-AikEFrR_9nIJUotZ82XFzROLo,599
|
|
34
34
|
helix_fhir_client_sdk/graph/graph_target_parameters.py,sha256=fdYQpPZxDnyWyevuwDwxeTXOJoE2PgS5QhPaXpwtFcU,705
|
|
35
|
-
helix_fhir_client_sdk/graph/simulated_graph_processor_mixin.py,sha256=
|
|
35
|
+
helix_fhir_client_sdk/graph/simulated_graph_processor_mixin.py,sha256=CNXlqjkdrebypCY4JHmz1XbGT3kpcSpich9ourE76H0,66430
|
|
36
36
|
helix_fhir_client_sdk/graph/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
37
|
helix_fhir_client_sdk/graph/test/test_graph_mixin.py,sha256=LNd4LVjryVLgzWeTXMDpsbdauXl7u3LMfj9irnNfb_k,5469
|
|
38
38
|
helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin.py,sha256=EQDfhqJfUrP6SptXRP7ayEN7g5cZQMA00ccXzeXiSXM,46312
|
|
39
39
|
helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin_caching.py,sha256=WFzKKHtKDcOOXjXRMKkRyJ64whoJoo9M9ST88ayvEbY,16176
|
|
40
|
+
helix_fhir_client_sdk/open_telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
helix_fhir_client_sdk/open_telemetry/attribute_names.py,sha256=mcPcgpaRe-hZDmPu8gLQo51E_-rllAk2OXMC9uK6EmM,328
|
|
42
|
+
helix_fhir_client_sdk/open_telemetry/span_names.py,sha256=sEuzUXxE9pSoAZti2YVifBqbo3r4SLTPlIUW4F2EuP0,548
|
|
40
43
|
helix_fhir_client_sdk/queue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
-
helix_fhir_client_sdk/queue/request_queue_mixin.py,sha256=
|
|
44
|
+
helix_fhir_client_sdk/queue/request_queue_mixin.py,sha256=5Oc5lE-9Mu8R6gBcu6a3HUEvWllIzbF2OFXCTD6W2h8,21890
|
|
42
45
|
helix_fhir_client_sdk/responses/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
46
|
helix_fhir_client_sdk/responses/bundle_expander.py,sha256=ilR5eMgciSgzsdQvKB6bHtn9jtpvn3uS-EBz-hrahzo,1065
|
|
44
|
-
helix_fhir_client_sdk/responses/fhir_client_protocol.py,sha256=
|
|
47
|
+
helix_fhir_client_sdk/responses/fhir_client_protocol.py,sha256=IWM7LNQ1ZbgaySLGqpCwWAKyArT5HgBdNhkmSEivNMo,7100
|
|
45
48
|
helix_fhir_client_sdk/responses/fhir_delete_response.py,sha256=0K11vyfZ0LtL-G61NHzDqHrZgEHjMVZr00VWpWcktZA,2941
|
|
46
|
-
helix_fhir_client_sdk/responses/fhir_get_response.py,sha256=
|
|
49
|
+
helix_fhir_client_sdk/responses/fhir_get_response.py,sha256=v0ndKFb6o8PNqYYxGlLETzQnxGmwK3YympH4gotXpY4,17550
|
|
47
50
|
helix_fhir_client_sdk/responses/fhir_merge_response.py,sha256=uvUjEGJgMDlAkcc5_LjgAsTFZqREQMlV79sbxUZwtwE,2862
|
|
48
|
-
helix_fhir_client_sdk/responses/fhir_response_processor.py,sha256=
|
|
51
|
+
helix_fhir_client_sdk/responses/fhir_response_processor.py,sha256=fOSvqWjVI1BA6aDxxu9aqEvcKxtnFRmU2hMrgtmUCUM,34056
|
|
49
52
|
helix_fhir_client_sdk/responses/fhir_update_response.py,sha256=_6zZz85KQP69WFxejlX8BBWAKWtzsMGSJjR_zqhl_m4,2727
|
|
50
53
|
helix_fhir_client_sdk/responses/get_result.py,sha256=hkbZeu9h-01ZZckAuckn6UDR9GXGgRAIiKEN6ELRj80,1252
|
|
51
54
|
helix_fhir_client_sdk/responses/paging_result.py,sha256=tpmfdgrtaAmmViVxlw-EBHoe0PVjSQW9zicwRmhUVpI,1360
|
|
52
|
-
helix_fhir_client_sdk/responses/resource_separator.py,sha256=
|
|
55
|
+
helix_fhir_client_sdk/responses/resource_separator.py,sha256=7Ic0_SPNKCBAk6l07Ke2-AoObkBMnKdmtbbtBBCtVjE,2606
|
|
53
56
|
helix_fhir_client_sdk/responses/get/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
-
helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py,sha256=
|
|
55
|
-
helix_fhir_client_sdk/responses/get/fhir_get_error_response.py,sha256=
|
|
56
|
-
helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py,sha256=
|
|
57
|
-
helix_fhir_client_sdk/responses/get/fhir_get_list_response.py,sha256=
|
|
58
|
-
helix_fhir_client_sdk/responses/get/fhir_get_response_factory.py,sha256=
|
|
59
|
-
helix_fhir_client_sdk/responses/get/fhir_get_single_response.py,sha256=
|
|
57
|
+
helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py,sha256=8xqTTfD4qwzMXeuDOc0tlxeOs0_OwobTeGLu2sthL4w,18818
|
|
58
|
+
helix_fhir_client_sdk/responses/get/fhir_get_error_response.py,sha256=oNdKs_r7K4qRHD7fyeDhZz3v0wGTT2esAPPtDhxOyeI,12325
|
|
59
|
+
helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py,sha256=ssfb1IB2QTvqwWRzFs_VqPKH6mwcnWNo3iVh82M-Jso,13775
|
|
60
|
+
helix_fhir_client_sdk/responses/get/fhir_get_list_response.py,sha256=KT5g6MjB9yWWUaSZpx1jK9Tm2yVmcFyZMHBBnDDAPtU,11858
|
|
61
|
+
helix_fhir_client_sdk/responses/get/fhir_get_response_factory.py,sha256=OrizzAVoXvxnQbBxszeS9PUtbzg97RGNEJfD4PuOLig,6815
|
|
62
|
+
helix_fhir_client_sdk/responses/get/fhir_get_single_response.py,sha256=pLjjDyxBvA_FNI7sGU2hM9urue3Bzrrwo_RcrOD5yz8,9755
|
|
60
63
|
helix_fhir_client_sdk/responses/get/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
64
|
helix_fhir_client_sdk/responses/get/test/test_get_bundle_response.py,sha256=k66eMtb0e4QcWYeF_M3TUrwCXQgD5EOcpUaijzg7a2I,19545
|
|
62
65
|
helix_fhir_client_sdk/responses/get/test/test_get_error_response.py,sha256=8P4zGgeHe-6OaSX152ixFW4W0iG2scK89O0VY_YcxuY,7613
|
|
@@ -67,7 +70,7 @@ helix_fhir_client_sdk/responses/get/test/test_get_single_response.py,sha256=cDK6
|
|
|
67
70
|
helix_fhir_client_sdk/responses/merge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
68
71
|
helix_fhir_client_sdk/responses/merge/base_fhir_merge_resource_response_entry.py,sha256=0PKxQc6sfO2RJka6AS4cX3U_yFnHRR0nsfgva91WrYk,3734
|
|
69
72
|
helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response.py,sha256=jLHzg-mHYKYBMrAnsx_vnTaP0OCuHJoPEHODCHFxaXA,3226
|
|
70
|
-
helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response_entry.py,sha256=
|
|
73
|
+
helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response_entry.py,sha256=DyTCoix8MqD9_860I0-Ikl6wCiACzQFMOaEossxyTWc,4626
|
|
71
74
|
helix_fhir_client_sdk/responses/merge/fhir_merge_response_entry_issue.py,sha256=e7yKvYqdcb45YWblQafyoK1scf62j8Ux80AOdrkQbF4,2048
|
|
72
75
|
helix_fhir_client_sdk/responses/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
76
|
helix_fhir_client_sdk/responses/test/test_bundle_expander.py,sha256=-IMu42ZcRSif8pwDWI0SsBXDI-8gRmOAsshtNhmoROM,877
|
|
@@ -101,15 +104,15 @@ helix_fhir_client_sdk/utilities/hash_util.py,sha256=YNUy7-IC_OtC0l-T45UO9UkA-_ps
|
|
|
101
104
|
helix_fhir_client_sdk/utilities/list_chunker.py,sha256=2h2k5CCFmOhICaugOx6UI-9dh4q5w1lVdF7WQLX0LCM,1456
|
|
102
105
|
helix_fhir_client_sdk/utilities/ndjson_chunk_streaming_parser.py,sha256=3TCYfWVCEpJbqRxqlSDsGnFnraO4T9bxzYdShvu6Pos,1954
|
|
103
106
|
helix_fhir_client_sdk/utilities/practitioner_generator.py,sha256=gneCAXNDNEphBY-Nc2nMQBbEWJgHcjvv3S8JQ75yiJI,3778
|
|
104
|
-
helix_fhir_client_sdk/utilities/retryable_aiohttp_client.py,sha256=
|
|
105
|
-
helix_fhir_client_sdk/utilities/retryable_aiohttp_response.py,sha256=
|
|
107
|
+
helix_fhir_client_sdk/utilities/retryable_aiohttp_client.py,sha256=ytM4wSpxVLrAp30QtCWnu6SpPac4-Gzwv8d86GmtFgk,22827
|
|
108
|
+
helix_fhir_client_sdk/utilities/retryable_aiohttp_response.py,sha256=DvNX6WO1m2Hz6LoI5CwSPDECPd8oDsqRCVsyq_Oxf-0,3542
|
|
106
109
|
helix_fhir_client_sdk/utilities/retryable_aiohttp_url_result.py,sha256=Gdmvn6qIM2JF0YOhobQUHY41fCxvYyaths_CZs0iJfo,616
|
|
107
110
|
helix_fhir_client_sdk/utilities/url_checker.py,sha256=_JRSIvu7WNXh2OA79HJbEEiomGT-quGhAUGh44-9824,3580
|
|
108
111
|
helix_fhir_client_sdk/utilities/async_parallel_processor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
109
112
|
helix_fhir_client_sdk/utilities/async_parallel_processor/v1/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
110
113
|
helix_fhir_client_sdk/utilities/async_parallel_processor/v1/async_parallel_processor.py,sha256=DtjMJEnKiMuYhUbuEo6S8-w4s3hfqGmoOyJ5WCGl0Ak,5640
|
|
111
114
|
helix_fhir_client_sdk/utilities/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
112
|
-
helix_fhir_client_sdk/utilities/cache/request_cache.py,sha256=
|
|
115
|
+
helix_fhir_client_sdk/utilities/cache/request_cache.py,sha256=_9Ug7h22kH66jciHgTjaopB0m6nnVnknSafHh-eT6BI,5439
|
|
113
116
|
helix_fhir_client_sdk/utilities/cache/request_cache_entry.py,sha256=8e1Se21VVweNI4nSY1OxP8VQmB-d2ZP-bUvtVyOyKa4,477
|
|
114
117
|
helix_fhir_client_sdk/utilities/size_calculator/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
118
|
helix_fhir_client_sdk/utilities/size_calculator/size_calculator.py,sha256=NVIzgHjIIJODVV0q8rbOwdqIa1yfgLaJ3jqPAAWxK18,959
|
|
@@ -123,13 +126,14 @@ helix_fhir_client_sdk/utilities/test/test_list_chunker.py,sha256=n9J9UZqdluCp2AH
|
|
|
123
126
|
helix_fhir_client_sdk/utilities/test/test_ndjson_chunk_streaming_parser.py,sha256=scwktyIIHSRKpw_GTHI4Uj0SsKy3OY4Yf5v5rZGBZXk,5343
|
|
124
127
|
helix_fhir_client_sdk/utilities/test/test_retryable_aiohttp_client.py,sha256=EeYiYktiLUDTvp5jpJWi7-Qyip4gmI55BJzEhbLpGiE,19121
|
|
125
128
|
helix_fhir_client_sdk/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
126
|
-
helix_fhir_client_sdk/validators/async_fhir_validator.py,sha256=
|
|
129
|
+
helix_fhir_client_sdk/validators/async_fhir_validator.py,sha256=i1BC98hZF6JhMQQzolEAuxQXCP4CMiRewiuQ1ufe0yQ,3879
|
|
127
130
|
helix_fhir_client_sdk/validators/fhir_validator.py,sha256=HWBldSEB9yeKIcnLcV8R-LoTzwT_OMu8SchtUUBKzys,2331
|
|
128
131
|
helix_fhir_client_sdk/validators/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
132
|
helix_fhir_client_sdk/validators/test/test_async_fhir_validator.py,sha256=RmSowjPUdZee5nYuYujghxWyqJ20cu7U0lJFtFT-ZBs,3285
|
|
130
|
-
helix_fhir_client_sdk-4.2.
|
|
133
|
+
helix_fhir_client_sdk-4.2.19.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
131
134
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
132
135
|
tests/logger_for_test.py,sha256=UC-7F6w6fDsUIYf37aRnvUdiUUVk8qkJEUSuO17NQnI,1525
|
|
136
|
+
tests/test_fhir_client_clone.py,sha256=c5y1rWJ32nBSUnK1FfyymY005dNowd4Nf1xrbuQolNk,5368
|
|
133
137
|
tests/test_get_nested_property.py,sha256=dA7eNmPJuwzQTViORRmJkcn9RAZzxeajSxUghobHpAo,2381
|
|
134
138
|
tests/async/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
135
139
|
tests/async/test_async_fhir_client_fetch_response_in_chunks.py,sha256=Ql95DuOqaidFL6u553f-Bkp4Rsd662C__NA-5sw0KL0,3993
|
|
@@ -147,6 +151,9 @@ tests/async/test_async_fhir_client_patient_merge_with_validate.py,sha256=CRTfV0v
|
|
|
147
151
|
tests/async/test_async_fhir_client_patient_update.py,sha256=Q-hNO9D4FZ_r7oa62pyBG9keN-ZtkKvlsMK0hoE-5RA,1685
|
|
148
152
|
tests/async/test_async_real_fhir_server_get_patients.py,sha256=0oMnUJg1KEspJ5_4eBen8z12Ion5HXv-gKAzFAkyII0,3837
|
|
149
153
|
tests/async/test_async_real_fhir_server_get_patients_error.py,sha256=_s7chLogAg0yKgGpsq1o9_dDHBrzGaRWBAo8agFTN6U,1914
|
|
154
|
+
tests/async/test_benchmark_compress.py,sha256=q1gDG7qXvof-3uVAqJlZAW7uO8cR0vEeDfzl-iwIEtY,16470
|
|
155
|
+
tests/async/test_benchmark_merge.py,sha256=ME0Pow_IXpIaVGWvq3ii7dGltXcz-3DGxz2gGF4LmYQ,19830
|
|
156
|
+
tests/async/test_retryable_client_session_management.py,sha256=h6zTQCICbuz3NpShJc63V9yY_Aur9Fho16-LFDcb4oQ,5658
|
|
150
157
|
tests/async/fhir_server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
151
158
|
tests/async/fhir_server/test_async_real_fhir_server_get_graph_large.py,sha256=fM2MPF47nDF2Qwj2AkdTZ2CfvgUYGN4AVIS253KC9MQ,9430
|
|
152
159
|
tests/async/fhir_server/test_async_real_fhir_server_get_patients_large.py,sha256=rXRF8E8Al7XANCmef1d_WqxSA9TVQjVC7B41OZaEQlY,5583
|
|
@@ -206,7 +213,7 @@ tests_integration/test_emr_server_auth.py,sha256=2I4QUAspQN89uGf6JB2aVuYaBeDnRJz
|
|
|
206
213
|
tests_integration/test_firely_fhir.py,sha256=ll6-plwQrKfdrEyfbw0wLTC1jB-Qei1Mj-81tYTl5eQ,697
|
|
207
214
|
tests_integration/test_merge_vs_smart_merge_behavior.py,sha256=LrIuyxzw0YLaTjcRtG0jzy0M6xSv9qebmdBtMPDcacQ,3733
|
|
208
215
|
tests_integration/test_staging_server_graph.py,sha256=5RfMxjhdX9o4-n_ZRvze4Sm8u8NjRijRLDpqiz8qD_0,7132
|
|
209
|
-
helix_fhir_client_sdk-4.2.
|
|
210
|
-
helix_fhir_client_sdk-4.2.
|
|
211
|
-
helix_fhir_client_sdk-4.2.
|
|
212
|
-
helix_fhir_client_sdk-4.2.
|
|
216
|
+
helix_fhir_client_sdk-4.2.19.dist-info/METADATA,sha256=AIwal123TuQ7e5KU9XiJ-PO5PWMaKj-YAtcPn0xAgZA,7210
|
|
217
|
+
helix_fhir_client_sdk-4.2.19.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
218
|
+
helix_fhir_client_sdk-4.2.19.dist-info/top_level.txt,sha256=BRnDS6ceQxs-4u2jXznATObgP8G2cGAerlH0ZS4sJ6M,46
|
|
219
|
+
helix_fhir_client_sdk-4.2.19.dist-info/RECORD,,
|