phenoml 0.0.2__py3-none-any.whl → 0.0.5__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.

Potentially problematic release.


This version of phenoml might be problematic. Click here for more details.

Files changed (68) hide show
  1. phenoml/agent/__init__.py +6 -8
  2. phenoml/agent/client.py +45 -75
  3. phenoml/agent/raw_client.py +37 -77
  4. phenoml/agent/types/__init__.py +6 -8
  5. phenoml/agent/types/agent_create_request.py +53 -0
  6. phenoml/agent/types/agent_create_request_provider.py +5 -0
  7. phenoml/agent/types/agent_template.py +3 -6
  8. phenoml/agent/types/agent_template_provider.py +5 -0
  9. phenoml/client.py +6 -0
  10. phenoml/core/client_wrapper.py +2 -2
  11. phenoml/fhir/__init__.py +36 -0
  12. phenoml/fhir/client.py +970 -0
  13. phenoml/fhir/errors/__init__.py +10 -0
  14. phenoml/fhir/errors/bad_request_error.py +10 -0
  15. phenoml/fhir/errors/internal_server_error.py +10 -0
  16. phenoml/fhir/errors/not_found_error.py +10 -0
  17. phenoml/fhir/errors/unauthorized_error.py +10 -0
  18. phenoml/fhir/raw_client.py +1385 -0
  19. phenoml/fhir/types/__init__.py +29 -0
  20. phenoml/{agent/types/chat_fhir_client_config.py → fhir/types/error_response.py} +11 -6
  21. phenoml/fhir/types/fhir_bundle.py +43 -0
  22. phenoml/fhir/types/fhir_bundle_entry_item.py +34 -0
  23. phenoml/{agent/types/agent_fhir_config.py → fhir/types/fhir_bundle_entry_item_request.py} +5 -11
  24. phenoml/fhir/types/fhir_bundle_entry_item_request_method.py +5 -0
  25. phenoml/fhir/types/fhir_bundle_entry_item_response.py +24 -0
  26. phenoml/fhir/types/fhir_patch_request_body_item.py +36 -0
  27. phenoml/fhir/types/fhir_patch_request_body_item_op.py +7 -0
  28. phenoml/fhir/types/fhir_resource.py +40 -0
  29. phenoml/fhir/types/fhir_resource_meta.py +28 -0
  30. phenoml/fhir/types/fhir_search_response.py +8 -0
  31. phenoml/fhir_provider/__init__.py +43 -0
  32. phenoml/fhir_provider/client.py +731 -0
  33. phenoml/fhir_provider/errors/__init__.py +11 -0
  34. phenoml/fhir_provider/errors/bad_request_error.py +10 -0
  35. phenoml/fhir_provider/errors/forbidden_error.py +10 -0
  36. phenoml/fhir_provider/errors/internal_server_error.py +10 -0
  37. phenoml/fhir_provider/errors/not_found_error.py +10 -0
  38. phenoml/fhir_provider/errors/unauthorized_error.py +10 -0
  39. phenoml/fhir_provider/raw_client.py +1445 -0
  40. phenoml/fhir_provider/types/__init__.py +35 -0
  41. phenoml/fhir_provider/types/auth_method.py +7 -0
  42. phenoml/fhir_provider/types/fhir_provider_auth_config.py +53 -0
  43. phenoml/fhir_provider/types/fhir_provider_delete_response.py +20 -0
  44. phenoml/fhir_provider/types/fhir_provider_list_response.py +22 -0
  45. phenoml/fhir_provider/types/fhir_provider_remove_auth_config_response.py +22 -0
  46. phenoml/fhir_provider/types/fhir_provider_response.py +22 -0
  47. phenoml/fhir_provider/types/fhir_provider_set_active_auth_config_response.py +22 -0
  48. phenoml/fhir_provider/types/fhir_provider_template.py +66 -0
  49. phenoml/fhir_provider/types/fhir_query_response.py +27 -0
  50. phenoml/fhir_provider/types/fhir_query_response_data.py +5 -0
  51. phenoml/fhir_provider/types/json_web_key.py +51 -0
  52. phenoml/fhir_provider/types/provider.py +8 -0
  53. phenoml/fhir_provider/types/service_account_key.py +35 -0
  54. phenoml/fhir_provider/types/smart_configuration.py +46 -0
  55. phenoml/tools/__init__.py +0 -8
  56. phenoml/tools/client.py +24 -60
  57. phenoml/tools/raw_client.py +18 -67
  58. phenoml/tools/types/__init__.py +0 -8
  59. phenoml-0.0.5.dist-info/LICENSE +21 -0
  60. {phenoml-0.0.2.dist-info → phenoml-0.0.5.dist-info}/METADATA +1 -1
  61. {phenoml-0.0.2.dist-info → phenoml-0.0.5.dist-info}/RECORD +62 -22
  62. phenoml/agent/types/agent_provider.py +0 -7
  63. phenoml/agent/types/provider_type.py +0 -5
  64. phenoml/tools/types/cohort_request_provider.py +0 -5
  65. phenoml/tools/types/fhir_client_config.py +0 -31
  66. phenoml/tools/types/lang2fhir_and_create_request_provider.py +0 -7
  67. phenoml/tools/types/lang2fhir_and_search_request_provider.py +0 -7
  68. {phenoml-0.0.2.dist-info → phenoml-0.0.5.dist-info}/WHEEL +0 -0
phenoml/tools/client.py CHANGED
@@ -6,13 +6,9 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
6
6
  from ..core.request_options import RequestOptions
7
7
  from .mcp_server.client import AsyncMcpServerClient, McpServerClient
8
8
  from .raw_client import AsyncRawToolsClient, RawToolsClient
9
- from .types.cohort_request_provider import CohortRequestProvider
10
9
  from .types.cohort_response import CohortResponse
11
- from .types.fhir_client_config import FhirClientConfig
12
- from .types.lang2fhir_and_create_request_provider import Lang2FhirAndCreateRequestProvider
13
10
  from .types.lang2fhir_and_create_request_resource import Lang2FhirAndCreateRequestResource
14
11
  from .types.lang2fhir_and_create_response import Lang2FhirAndCreateResponse
15
- from .types.lang2fhir_and_search_request_provider import Lang2FhirAndSearchRequestProvider
16
12
  from .types.lang2fhir_and_search_response import Lang2FhirAndSearchResponse
17
13
 
18
14
  # this is used as the default value for optional parameters
@@ -40,8 +36,7 @@ class ToolsClient:
40
36
  *,
41
37
  resource: Lang2FhirAndCreateRequestResource,
42
38
  text: str,
43
- provider: typing.Optional[Lang2FhirAndCreateRequestProvider] = OMIT,
44
- meta: typing.Optional[FhirClientConfig] = OMIT,
39
+ provider: typing.Optional[str] = OMIT,
45
40
  request_options: typing.Optional[RequestOptions] = None,
46
41
  ) -> Lang2FhirAndCreateResponse:
47
42
  """
@@ -55,10 +50,8 @@ class ToolsClient:
55
50
  text : str
56
51
  Natural language text to convert to FHIR resource
57
52
 
58
- provider : typing.Optional[Lang2FhirAndCreateRequestProvider]
59
- FHIR provider to use for storing the resource
60
-
61
- meta : typing.Optional[FhirClientConfig]
53
+ provider : typing.Optional[str]
54
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
62
55
 
63
56
  request_options : typing.Optional[RequestOptions]
64
57
  Request-specific configuration.
@@ -81,7 +74,7 @@ class ToolsClient:
81
74
  )
82
75
  """
83
76
  _response = self._raw_client.create_fhir_resource(
84
- resource=resource, text=text, provider=provider, meta=meta, request_options=request_options
77
+ resource=resource, text=text, provider=provider, request_options=request_options
85
78
  )
86
79
  return _response.data
87
80
 
@@ -92,8 +85,7 @@ class ToolsClient:
92
85
  patient_id: typing.Optional[str] = OMIT,
93
86
  practitioner_id: typing.Optional[str] = OMIT,
94
87
  count: typing.Optional[int] = OMIT,
95
- provider: typing.Optional[Lang2FhirAndSearchRequestProvider] = OMIT,
96
- meta: typing.Optional[FhirClientConfig] = OMIT,
88
+ provider: typing.Optional[str] = OMIT,
97
89
  request_options: typing.Optional[RequestOptions] = None,
98
90
  ) -> Lang2FhirAndSearchResponse:
99
91
  """
@@ -113,10 +105,8 @@ class ToolsClient:
113
105
  count : typing.Optional[int]
114
106
  Maximum number of results to return
115
107
 
116
- provider : typing.Optional[Lang2FhirAndSearchRequestProvider]
117
- FHIR provider to use for searching
118
-
119
- meta : typing.Optional[FhirClientConfig]
108
+ provider : typing.Optional[str]
109
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
120
110
 
121
111
  request_options : typing.Optional[RequestOptions]
122
112
  Request-specific configuration.
@@ -143,18 +133,12 @@ class ToolsClient:
143
133
  practitioner_id=practitioner_id,
144
134
  count=count,
145
135
  provider=provider,
146
- meta=meta,
147
136
  request_options=request_options,
148
137
  )
149
138
  return _response.data
150
139
 
151
140
  def analyze_cohort(
152
- self,
153
- *,
154
- text: str,
155
- provider: CohortRequestProvider,
156
- meta: typing.Optional[FhirClientConfig] = OMIT,
157
- request_options: typing.Optional[RequestOptions] = None,
141
+ self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
158
142
  ) -> CohortResponse:
159
143
  """
160
144
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -164,10 +148,8 @@ class ToolsClient:
164
148
  text : str
165
149
  Natural language text describing the patient cohort criteria
166
150
 
167
- provider : CohortRequestProvider
168
- FHIR provider to use for searching
169
-
170
- meta : typing.Optional[FhirClientConfig]
151
+ provider : str
152
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
171
153
 
172
154
  request_options : typing.Optional[RequestOptions]
173
155
  Request-specific configuration.
@@ -186,12 +168,10 @@ class ToolsClient:
186
168
  )
187
169
  client.tools.analyze_cohort(
188
170
  text="female patients over 20 with diabetes but not hypertension",
189
- provider="medplum",
171
+ provider="550e8400-e29b-41d4-a716-446655440000",
190
172
  )
191
173
  """
192
- _response = self._raw_client.analyze_cohort(
193
- text=text, provider=provider, meta=meta, request_options=request_options
194
- )
174
+ _response = self._raw_client.analyze_cohort(text=text, provider=provider, request_options=request_options)
195
175
  return _response.data
196
176
 
197
177
 
@@ -216,8 +196,7 @@ class AsyncToolsClient:
216
196
  *,
217
197
  resource: Lang2FhirAndCreateRequestResource,
218
198
  text: str,
219
- provider: typing.Optional[Lang2FhirAndCreateRequestProvider] = OMIT,
220
- meta: typing.Optional[FhirClientConfig] = OMIT,
199
+ provider: typing.Optional[str] = OMIT,
221
200
  request_options: typing.Optional[RequestOptions] = None,
222
201
  ) -> Lang2FhirAndCreateResponse:
223
202
  """
@@ -231,10 +210,8 @@ class AsyncToolsClient:
231
210
  text : str
232
211
  Natural language text to convert to FHIR resource
233
212
 
234
- provider : typing.Optional[Lang2FhirAndCreateRequestProvider]
235
- FHIR provider to use for storing the resource
236
-
237
- meta : typing.Optional[FhirClientConfig]
213
+ provider : typing.Optional[str]
214
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
238
215
 
239
216
  request_options : typing.Optional[RequestOptions]
240
217
  Request-specific configuration.
@@ -265,7 +242,7 @@ class AsyncToolsClient:
265
242
  asyncio.run(main())
266
243
  """
267
244
  _response = await self._raw_client.create_fhir_resource(
268
- resource=resource, text=text, provider=provider, meta=meta, request_options=request_options
245
+ resource=resource, text=text, provider=provider, request_options=request_options
269
246
  )
270
247
  return _response.data
271
248
 
@@ -276,8 +253,7 @@ class AsyncToolsClient:
276
253
  patient_id: typing.Optional[str] = OMIT,
277
254
  practitioner_id: typing.Optional[str] = OMIT,
278
255
  count: typing.Optional[int] = OMIT,
279
- provider: typing.Optional[Lang2FhirAndSearchRequestProvider] = OMIT,
280
- meta: typing.Optional[FhirClientConfig] = OMIT,
256
+ provider: typing.Optional[str] = OMIT,
281
257
  request_options: typing.Optional[RequestOptions] = None,
282
258
  ) -> Lang2FhirAndSearchResponse:
283
259
  """
@@ -297,10 +273,8 @@ class AsyncToolsClient:
297
273
  count : typing.Optional[int]
298
274
  Maximum number of results to return
299
275
 
300
- provider : typing.Optional[Lang2FhirAndSearchRequestProvider]
301
- FHIR provider to use for searching
302
-
303
- meta : typing.Optional[FhirClientConfig]
276
+ provider : typing.Optional[str]
277
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
304
278
 
305
279
  request_options : typing.Optional[RequestOptions]
306
280
  Request-specific configuration.
@@ -335,18 +309,12 @@ class AsyncToolsClient:
335
309
  practitioner_id=practitioner_id,
336
310
  count=count,
337
311
  provider=provider,
338
- meta=meta,
339
312
  request_options=request_options,
340
313
  )
341
314
  return _response.data
342
315
 
343
316
  async def analyze_cohort(
344
- self,
345
- *,
346
- text: str,
347
- provider: CohortRequestProvider,
348
- meta: typing.Optional[FhirClientConfig] = OMIT,
349
- request_options: typing.Optional[RequestOptions] = None,
317
+ self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
350
318
  ) -> CohortResponse:
351
319
  """
352
320
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -356,10 +324,8 @@ class AsyncToolsClient:
356
324
  text : str
357
325
  Natural language text describing the patient cohort criteria
358
326
 
359
- provider : CohortRequestProvider
360
- FHIR provider to use for searching
361
-
362
- meta : typing.Optional[FhirClientConfig]
327
+ provider : str
328
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
363
329
 
364
330
  request_options : typing.Optional[RequestOptions]
365
331
  Request-specific configuration.
@@ -383,13 +349,11 @@ class AsyncToolsClient:
383
349
  async def main() -> None:
384
350
  await client.tools.analyze_cohort(
385
351
  text="female patients over 20 with diabetes but not hypertension",
386
- provider="medplum",
352
+ provider="550e8400-e29b-41d4-a716-446655440000",
387
353
  )
388
354
 
389
355
 
390
356
  asyncio.run(main())
391
357
  """
392
- _response = await self._raw_client.analyze_cohort(
393
- text=text, provider=provider, meta=meta, request_options=request_options
394
- )
358
+ _response = await self._raw_client.analyze_cohort(text=text, provider=provider, request_options=request_options)
395
359
  return _response.data
@@ -8,19 +8,14 @@ from ..core.client_wrapper import AsyncClientWrapper, SyncClientWrapper
8
8
  from ..core.http_response import AsyncHttpResponse, HttpResponse
9
9
  from ..core.pydantic_utilities import parse_obj_as
10
10
  from ..core.request_options import RequestOptions
11
- from ..core.serialization import convert_and_respect_annotation_metadata
12
11
  from .errors.bad_request_error import BadRequestError
13
12
  from .errors.failed_dependency_error import FailedDependencyError
14
13
  from .errors.forbidden_error import ForbiddenError
15
14
  from .errors.internal_server_error import InternalServerError
16
15
  from .errors.unauthorized_error import UnauthorizedError
17
- from .types.cohort_request_provider import CohortRequestProvider
18
16
  from .types.cohort_response import CohortResponse
19
- from .types.fhir_client_config import FhirClientConfig
20
- from .types.lang2fhir_and_create_request_provider import Lang2FhirAndCreateRequestProvider
21
17
  from .types.lang2fhir_and_create_request_resource import Lang2FhirAndCreateRequestResource
22
18
  from .types.lang2fhir_and_create_response import Lang2FhirAndCreateResponse
23
- from .types.lang2fhir_and_search_request_provider import Lang2FhirAndSearchRequestProvider
24
19
  from .types.lang2fhir_and_search_response import Lang2FhirAndSearchResponse
25
20
 
26
21
  # this is used as the default value for optional parameters
@@ -36,8 +31,7 @@ class RawToolsClient:
36
31
  *,
37
32
  resource: Lang2FhirAndCreateRequestResource,
38
33
  text: str,
39
- provider: typing.Optional[Lang2FhirAndCreateRequestProvider] = OMIT,
40
- meta: typing.Optional[FhirClientConfig] = OMIT,
34
+ provider: typing.Optional[str] = OMIT,
41
35
  request_options: typing.Optional[RequestOptions] = None,
42
36
  ) -> HttpResponse[Lang2FhirAndCreateResponse]:
43
37
  """
@@ -51,10 +45,8 @@ class RawToolsClient:
51
45
  text : str
52
46
  Natural language text to convert to FHIR resource
53
47
 
54
- provider : typing.Optional[Lang2FhirAndCreateRequestProvider]
55
- FHIR provider to use for storing the resource
56
-
57
- meta : typing.Optional[FhirClientConfig]
48
+ provider : typing.Optional[str]
49
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
58
50
 
59
51
  request_options : typing.Optional[RequestOptions]
60
52
  Request-specific configuration.
@@ -71,9 +63,6 @@ class RawToolsClient:
71
63
  "resource": resource,
72
64
  "text": text,
73
65
  "provider": provider,
74
- "meta": convert_and_respect_annotation_metadata(
75
- object_=meta, annotation=FhirClientConfig, direction="write"
76
- ),
77
66
  },
78
67
  headers={
79
68
  "content-type": "application/json",
@@ -158,8 +147,7 @@ class RawToolsClient:
158
147
  patient_id: typing.Optional[str] = OMIT,
159
148
  practitioner_id: typing.Optional[str] = OMIT,
160
149
  count: typing.Optional[int] = OMIT,
161
- provider: typing.Optional[Lang2FhirAndSearchRequestProvider] = OMIT,
162
- meta: typing.Optional[FhirClientConfig] = OMIT,
150
+ provider: typing.Optional[str] = OMIT,
163
151
  request_options: typing.Optional[RequestOptions] = None,
164
152
  ) -> HttpResponse[Lang2FhirAndSearchResponse]:
165
153
  """
@@ -179,10 +167,8 @@ class RawToolsClient:
179
167
  count : typing.Optional[int]
180
168
  Maximum number of results to return
181
169
 
182
- provider : typing.Optional[Lang2FhirAndSearchRequestProvider]
183
- FHIR provider to use for searching
184
-
185
- meta : typing.Optional[FhirClientConfig]
170
+ provider : typing.Optional[str]
171
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
186
172
 
187
173
  request_options : typing.Optional[RequestOptions]
188
174
  Request-specific configuration.
@@ -201,9 +187,6 @@ class RawToolsClient:
201
187
  "practitioner_id": practitioner_id,
202
188
  "count": count,
203
189
  "provider": provider,
204
- "meta": convert_and_respect_annotation_metadata(
205
- object_=meta, annotation=FhirClientConfig, direction="write"
206
- ),
207
190
  },
208
191
  headers={
209
192
  "content-type": "application/json",
@@ -282,12 +265,7 @@ class RawToolsClient:
282
265
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
283
266
 
284
267
  def analyze_cohort(
285
- self,
286
- *,
287
- text: str,
288
- provider: CohortRequestProvider,
289
- meta: typing.Optional[FhirClientConfig] = OMIT,
290
- request_options: typing.Optional[RequestOptions] = None,
268
+ self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
291
269
  ) -> HttpResponse[CohortResponse]:
292
270
  """
293
271
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -297,10 +275,8 @@ class RawToolsClient:
297
275
  text : str
298
276
  Natural language text describing the patient cohort criteria
299
277
 
300
- provider : CohortRequestProvider
301
- FHIR provider to use for searching
302
-
303
- meta : typing.Optional[FhirClientConfig]
278
+ provider : str
279
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
304
280
 
305
281
  request_options : typing.Optional[RequestOptions]
306
282
  Request-specific configuration.
@@ -316,9 +292,6 @@ class RawToolsClient:
316
292
  json={
317
293
  "text": text,
318
294
  "provider": provider,
319
- "meta": convert_and_respect_annotation_metadata(
320
- object_=meta, annotation=FhirClientConfig, direction="write"
321
- ),
322
295
  },
323
296
  headers={
324
297
  "content-type": "application/json",
@@ -395,8 +368,7 @@ class AsyncRawToolsClient:
395
368
  *,
396
369
  resource: Lang2FhirAndCreateRequestResource,
397
370
  text: str,
398
- provider: typing.Optional[Lang2FhirAndCreateRequestProvider] = OMIT,
399
- meta: typing.Optional[FhirClientConfig] = OMIT,
371
+ provider: typing.Optional[str] = OMIT,
400
372
  request_options: typing.Optional[RequestOptions] = None,
401
373
  ) -> AsyncHttpResponse[Lang2FhirAndCreateResponse]:
402
374
  """
@@ -410,10 +382,8 @@ class AsyncRawToolsClient:
410
382
  text : str
411
383
  Natural language text to convert to FHIR resource
412
384
 
413
- provider : typing.Optional[Lang2FhirAndCreateRequestProvider]
414
- FHIR provider to use for storing the resource
415
-
416
- meta : typing.Optional[FhirClientConfig]
385
+ provider : typing.Optional[str]
386
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
417
387
 
418
388
  request_options : typing.Optional[RequestOptions]
419
389
  Request-specific configuration.
@@ -430,9 +400,6 @@ class AsyncRawToolsClient:
430
400
  "resource": resource,
431
401
  "text": text,
432
402
  "provider": provider,
433
- "meta": convert_and_respect_annotation_metadata(
434
- object_=meta, annotation=FhirClientConfig, direction="write"
435
- ),
436
403
  },
437
404
  headers={
438
405
  "content-type": "application/json",
@@ -517,8 +484,7 @@ class AsyncRawToolsClient:
517
484
  patient_id: typing.Optional[str] = OMIT,
518
485
  practitioner_id: typing.Optional[str] = OMIT,
519
486
  count: typing.Optional[int] = OMIT,
520
- provider: typing.Optional[Lang2FhirAndSearchRequestProvider] = OMIT,
521
- meta: typing.Optional[FhirClientConfig] = OMIT,
487
+ provider: typing.Optional[str] = OMIT,
522
488
  request_options: typing.Optional[RequestOptions] = None,
523
489
  ) -> AsyncHttpResponse[Lang2FhirAndSearchResponse]:
524
490
  """
@@ -538,10 +504,8 @@ class AsyncRawToolsClient:
538
504
  count : typing.Optional[int]
539
505
  Maximum number of results to return
540
506
 
541
- provider : typing.Optional[Lang2FhirAndSearchRequestProvider]
542
- FHIR provider to use for searching
543
-
544
- meta : typing.Optional[FhirClientConfig]
507
+ provider : typing.Optional[str]
508
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
545
509
 
546
510
  request_options : typing.Optional[RequestOptions]
547
511
  Request-specific configuration.
@@ -560,9 +524,6 @@ class AsyncRawToolsClient:
560
524
  "practitioner_id": practitioner_id,
561
525
  "count": count,
562
526
  "provider": provider,
563
- "meta": convert_and_respect_annotation_metadata(
564
- object_=meta, annotation=FhirClientConfig, direction="write"
565
- ),
566
527
  },
567
528
  headers={
568
529
  "content-type": "application/json",
@@ -641,12 +602,7 @@ class AsyncRawToolsClient:
641
602
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
642
603
 
643
604
  async def analyze_cohort(
644
- self,
645
- *,
646
- text: str,
647
- provider: CohortRequestProvider,
648
- meta: typing.Optional[FhirClientConfig] = OMIT,
649
- request_options: typing.Optional[RequestOptions] = None,
605
+ self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
650
606
  ) -> AsyncHttpResponse[CohortResponse]:
651
607
  """
652
608
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -656,10 +612,8 @@ class AsyncRawToolsClient:
656
612
  text : str
657
613
  Natural language text describing the patient cohort criteria
658
614
 
659
- provider : CohortRequestProvider
660
- FHIR provider to use for searching
661
-
662
- meta : typing.Optional[FhirClientConfig]
615
+ provider : str
616
+ FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
663
617
 
664
618
  request_options : typing.Optional[RequestOptions]
665
619
  Request-specific configuration.
@@ -675,9 +629,6 @@ class AsyncRawToolsClient:
675
629
  json={
676
630
  "text": text,
677
631
  "provider": provider,
678
- "meta": convert_and_respect_annotation_metadata(
679
- object_=meta, annotation=FhirClientConfig, direction="write"
680
- ),
681
632
  },
682
633
  headers={
683
634
  "content-type": "application/json",
@@ -2,13 +2,9 @@
2
2
 
3
3
  # isort: skip_file
4
4
 
5
- from .cohort_request_provider import CohortRequestProvider
6
5
  from .cohort_response import CohortResponse
7
- from .fhir_client_config import FhirClientConfig
8
- from .lang2fhir_and_create_request_provider import Lang2FhirAndCreateRequestProvider
9
6
  from .lang2fhir_and_create_request_resource import Lang2FhirAndCreateRequestResource
10
7
  from .lang2fhir_and_create_response import Lang2FhirAndCreateResponse
11
- from .lang2fhir_and_search_request_provider import Lang2FhirAndSearchRequestProvider
12
8
  from .lang2fhir_and_search_response import Lang2FhirAndSearchResponse
13
9
  from .mcp_server_response import McpServerResponse
14
10
  from .mcp_server_response_data import McpServerResponseData
@@ -18,13 +14,9 @@ from .mcp_server_tool_response_data import McpServerToolResponseData
18
14
  from .search_concept import SearchConcept
19
15
 
20
16
  __all__ = [
21
- "CohortRequestProvider",
22
17
  "CohortResponse",
23
- "FhirClientConfig",
24
- "Lang2FhirAndCreateRequestProvider",
25
18
  "Lang2FhirAndCreateRequestResource",
26
19
  "Lang2FhirAndCreateResponse",
27
- "Lang2FhirAndSearchRequestProvider",
28
20
  "Lang2FhirAndSearchResponse",
29
21
  "McpServerResponse",
30
22
  "McpServerResponseData",
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 PhenoML
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phenoml
3
- Version: 0.0.2
3
+ Version: 0.0.5
4
4
  Summary:
5
5
  Requires-Python: >=3.8,<4.0
6
6
  Classifier: Intended Audience :: Developers
@@ -1,6 +1,6 @@
1
1
  phenoml/__init__.py,sha256=SeYOCP1ABPA3aB2UDDPr5DOYT4UKKQcw1CHW49I51X8,778
2
- phenoml/agent/__init__.py,sha256=2qedw1NC1vC72HCh6nGKOKixF6MK78q2EMpSzt8Ts5I,1437
3
- phenoml/agent/client.py,sha256=p-5otm-wzfW9z-rdk02JSq88Na4CJoa202Ps_fthmms,26052
2
+ phenoml/agent/__init__.py,sha256=oHLnXLJ_uzj3zAtpAUaoXuWZcxl1K8cQh2ommFsp1Kg,1433
3
+ phenoml/agent/client.py,sha256=-A7Mp-W8veSh61Hzc1BgHuy-r1l3Ba7Pl43TU87tYmU,25043
4
4
  phenoml/agent/errors/__init__.py,sha256=Wnvf4XPELmAIZ-jVxx2t-dBNZ-X9PcDxPSL5EHqJr1Q,434
5
5
  phenoml/agent/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
6
6
  phenoml/agent/errors/forbidden_error.py,sha256=ek8-sffTy9gY3F0zyaSkcskDVvq9puXP_YvvB2BJYbA,338
@@ -13,26 +13,25 @@ phenoml/agent/prompts/raw_client.py,sha256=n2R6TL8Rjix8ewpA3b3J68hy_sqlBOxMYMNcV
13
13
  phenoml/agent/prompts/types/__init__.py,sha256=N-qiOKtvTg2c7r8DaBddWQDaqjAEve1W-K-yCRLCi84,259
14
14
  phenoml/agent/prompts/types/prompts_delete_response.py,sha256=hG7Y3lEyBAF2-cIIicRO5RVoBNOajNR9PHQ-1L2kMK8,599
15
15
  phenoml/agent/prompts/types/prompts_list_response.py,sha256=7OzSEUyw2frge0HO7BiZf-I_DJBF0o5e20qsmK1-24s,714
16
- phenoml/agent/raw_client.py,sha256=0-5mGXN6E9IKPAaf6MRN1zUgN-vN3j2tm8qkJwedz8A,66163
17
- phenoml/agent/types/__init__.py,sha256=qWZt3TeWXxp8omwLlvQn4BY1U4akHzNGSd9e4szxC-o,1574
16
+ phenoml/agent/raw_client.py,sha256=OHMWL-GT2MDyBP_tnO8-vwXX5C3eOO72u4tbH5RE3h8,64230
17
+ phenoml/agent/types/__init__.py,sha256=jMiQhVO3NTKEv5Qm6ZyAeBueWCEFJUzAd78FSsetdME,1566
18
18
  phenoml/agent/types/agent_chat_response.py,sha256=GqPcv7lyZlsypeqFwf1ecouik9A-9xDde0sckYOc8lA,862
19
+ phenoml/agent/types/agent_create_request.py,sha256=zHEnDylu2M6ZcgfxwWJvXTdMa70UqJ6tTYhLMRK151E,1411
20
+ phenoml/agent/types/agent_create_request_provider.py,sha256=SsObiEY03YzReBAuvzevB5gwR1SjXtxxdKuXHtYJ6zg,145
19
21
  phenoml/agent/types/agent_delete_response.py,sha256=9lZoZdvn6iBzqkC_jAZlPzJ9ZuEe9XX1_zZNII6pJJA,596
20
- phenoml/agent/types/agent_fhir_config.py,sha256=7ZyTO8dAja-TEjU9TlIjolBDSpETys0hVoMM35loTNI,867
21
22
  phenoml/agent/types/agent_get_chat_messages_request_order.py,sha256=LUV7Ngo98ZfHUIsC1P1hL5J_OVfEsW9iruvJAQSwGOU,171
22
23
  phenoml/agent/types/agent_get_chat_messages_response.py,sha256=R5wS7akcqIfFJ96TYCfvsDTZqOUu_zfsxEmtcMvPev8,731
23
24
  phenoml/agent/types/agent_list_response.py,sha256=NuEoSkEo5sd2Wu77TRrJeGB8IdtJbgxVx_uNIcl1qww,699
24
25
  phenoml/agent/types/agent_prompts_response.py,sha256=sXkclmfF6FI7q9a35T1CkyYjBnHm0n6QABSOYb4ICBY,690
25
- phenoml/agent/types/agent_provider.py,sha256=nO_HL6F0jJFy_Ur9zLLC5KP36rSrNZSrfqjOKOBY0jg,191
26
26
  phenoml/agent/types/agent_response.py,sha256=bcLl5OAGrcGEgL6AIbVIiEpptoYk7R6Ydxw8t48ZP0U,680
27
- phenoml/agent/types/agent_template.py,sha256=kyUAvm4HDN5Ra6XDXtezu9dcK2apj09AjPMaZCzqtEc,1631
28
- phenoml/agent/types/chat_fhir_client_config.py,sha256=lsfY3hZbe7QSEVMtU6AKOB2-8F-f2bLjTe8bPM-mJ5o,892
27
+ phenoml/agent/types/agent_template.py,sha256=0hJSVS1hsn2JNiaJNxrgWfTJQCRiLGKd4TPLI0n2yOU,1561
28
+ phenoml/agent/types/agent_template_provider.py,sha256=GSTBqYxeng63IArMCABsTAp__aWd282MMqCcglV6DAw,140
29
29
  phenoml/agent/types/chat_message_template.py,sha256=CV0ZB8LjhtK8J9mNBvSuY0dp3tYrrK-o1RSQIETSXTc,1737
30
30
  phenoml/agent/types/chat_session_template.py,sha256=7mdd4KgknpEwRbqSuzQhRcmk-8PAdKPZKJb4eOKe110,1567
31
31
  phenoml/agent/types/json_patch.py,sha256=pRf6g-LPfIpIfxhcFaVN7PyZ0eJ33fzTOyeMEGuw_18,178
32
32
  phenoml/agent/types/json_patch_operation.py,sha256=c7AZWK78bqER3tKg_vnxXIY1Kn5YJNk_dEylc9EaWWQ,1200
33
33
  phenoml/agent/types/json_patch_operation_op.py,sha256=mFp29lZK5-CnHFfVy1KnDjJ0wGqLHXY-80d_whSuueI,196
34
34
  phenoml/agent/types/prompt_template.py,sha256=drYxmwZnYkX5Wr7N8GCgu0hATK3xBaDPU55-H54PEcw,1273
35
- phenoml/agent/types/provider_type.py,sha256=1PB2nzacvJPqJb19q2lp_UknkwwQ1V-GuHVXDPS6yoE,186
36
35
  phenoml/agent/types/success_response.py,sha256=VtvPZu4RVHCqqk1pltxU0wjusCGt4vBG71iWCHIkDAU,592
37
36
  phenoml/authtoken/__init__.py,sha256=kVdBaOUSVWEGVP13qw7RRQYiSjFH9wlLz8m-e-PYOLE,429
38
37
  phenoml/authtoken/auth/__init__.py,sha256=wrtu-e5kFkgFyHwKjM0A-zUVPrSMSdLSY6zkalwLoEY,171
@@ -48,7 +47,7 @@ phenoml/authtoken/raw_client.py,sha256=85R3SJneFJ-fxGXzYOz_Se01pJ9bKXDTB_BP903PL
48
47
  phenoml/authtoken/types/__init__.py,sha256=ruKn1OfqKNJmeB1h39vh7-8srePTRpWsqGQzCH9_vok,260
49
48
  phenoml/authtoken/types/bad_request_error_body.py,sha256=9D69GH2JTNatHxwC7fDlFhTmRKIJ3jRojQP3MwmJ1KI,672
50
49
  phenoml/authtoken/types/unauthorized_error_body.py,sha256=fqqAo2_kWj0nNwLjm1fd-2lQPu5QhPuJP0yB7yE8sRw,674
51
- phenoml/client.py,sha256=xozoVP-oxG--8_RDg0yRoC2NO91BdEnCmFO_oj6dozo,6944
50
+ phenoml/client.py,sha256=hNR2MyQBKBc0c7u669OtiCsZVrCNfBGbMQcXD22oQhA,7391
52
51
  phenoml/cohort/__init__.py,sha256=T7swsjx17aidvorMPqyak0JeX13MT4itAEQvNHNOxuE,320
53
52
  phenoml/cohort/client.py,sha256=4bA8cffE6EvLZVMveJ2_aGu90vtXUHYTfO0E9EQuN9U,3312
54
53
  phenoml/cohort/errors/__init__.py,sha256=su56D86txLO0suHwq_Yixg4EaMbSyaB00cma1beOFGE,312
@@ -86,7 +85,7 @@ phenoml/construe/types/unauthorized_error_body.py,sha256=j7msnWr6ENYKxLVrfi2ZTg4
86
85
  phenoml/construe/types/upload_request_format.py,sha256=5mJhMM7R7hn6gGQNDJT9lxPDsRpUkRzqNxtRU0Nnlls,158
87
86
  phenoml/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
88
87
  phenoml/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
89
- phenoml/core/client_wrapper.py,sha256=yHJX4rKVE_tBWjEdcN4I-TYsTORipw6JN_5jRfXeVAM,2641
88
+ phenoml/core/client_wrapper.py,sha256=Mc5XySoWMeUXWQfmYTmFzZ7JWE1wMqRIxs43KHP7GBo,2641
90
89
  phenoml/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
91
90
  phenoml/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
92
91
  phenoml/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -99,6 +98,50 @@ phenoml/core/remove_none_from_dict.py,sha256=EU9SGgYidWq7SexuJbNs4-PZ-5Bl3Vppd86
99
98
  phenoml/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxpcg,1681
100
99
  phenoml/core/serialization.py,sha256=ECL3bvv_0i7U4uvPidZCNel--MUbA0iq0aGcNKi3kws,9818
101
100
  phenoml/environment.py,sha256=x2TB5u9AblwVCke6_38YZmVhcjjHLE5gXBo5TMeaeO8,164
101
+ phenoml/fhir/__init__.py,sha256=CGOe2OSGyiryHY66fcRyZXsSMHiM5Y_GkTNPUqzwTP8,910
102
+ phenoml/fhir/client.py,sha256=qZocq0n_cutgHMU3whdqaT1nB3LgjuN4Xr1VAVB32k4,34527
103
+ phenoml/fhir/errors/__init__.py,sha256=1K_bceYvXUdWyvhH-WRwOEcc1gkiT_K6kGrs3VKg3PA,372
104
+ phenoml/fhir/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
105
+ phenoml/fhir/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
106
+ phenoml/fhir/errors/not_found_error.py,sha256=hQ1KdyGQJCBQqo6iLu2-szlKJdzaoV5odq_7kdXAEbc,337
107
+ phenoml/fhir/errors/unauthorized_error.py,sha256=h8T6QhXuTo0GLL9MKfIM5p--wDqlB1-ZkMp3lY-aM3E,341
108
+ phenoml/fhir/raw_client.py,sha256=T2yO55UzMc2hyTPsp_2PgXQ_hyURSjA3DQhjZMQs9uY,60044
109
+ phenoml/fhir/types/__init__.py,sha256=J9Gj1h5TZ5mNjBYE-Vn2bVPR3VCRwRIf1BrS5DHQrV4,1054
110
+ phenoml/fhir/types/error_response.py,sha256=Vw1veSbj51ki93gmYml3fRjB6XAEwvnkcYkSNhyLDeU,897
111
+ phenoml/fhir/types/fhir_bundle.py,sha256=p_CsuL2U1q7Qzmkdu6vCBtNZLznWmHXw5WtMzDnstdE,1373
112
+ phenoml/fhir/types/fhir_bundle_entry_item.py,sha256=FA5C1viHSkBmvJEP7ASv-IXqrKeZB6rEwB8m1CZOG_0,1157
113
+ phenoml/fhir/types/fhir_bundle_entry_item_request.py,sha256=rYw9vXf8C0h6KVR_OivNDhILZ-pF2wSTYpnNyMrqIL4,781
114
+ phenoml/fhir/types/fhir_bundle_entry_item_request_method.py,sha256=Hi7sa873FIofanOQkqXHnb2rJ4HTApZ4JBqqNV_yzPM,197
115
+ phenoml/fhir/types/fhir_bundle_entry_item_response.py,sha256=6YwD_9moflsY-aRBgYN540Uevsu2xJP-Jy_lQFoKsE4,684
116
+ phenoml/fhir/types/fhir_patch_request_body_item.py,sha256=R0sHS8VRbOcGLm_K8eWpXCG4J0BDEarGxFU5o23zZjI,1117
117
+ phenoml/fhir/types/fhir_patch_request_body_item_op.py,sha256=qOU6uYuWoscQ876W58aUvIQKbqnMotzl3siEyeWU0vI,208
118
+ phenoml/fhir/types/fhir_resource.py,sha256=kZxeWoOMiGqwfwdxgdWg3NUjFFTuVKCAv6Ty80myhuI,1223
119
+ phenoml/fhir/types/fhir_resource_meta.py,sha256=9nXzZ7V7u0x9ehDyjoydmVl7leXzzvIOzxSQJSYmHbk,934
120
+ phenoml/fhir/types/fhir_search_response.py,sha256=rUuRN_iECtOyETTKGx4WNBinrvC0XU4ivsPipI6OyHw,217
121
+ phenoml/fhir_provider/__init__.py,sha256=UPXzyoYkXqIrbgkMnx8lDFN4n9H1InYHcwNQ6s8Qm8M,1120
122
+ phenoml/fhir_provider/client.py,sha256=5alBWSZ6gpsIvPQXLjSeE_hzlle-h2NFWGr-DbLOazs,22040
123
+ phenoml/fhir_provider/errors/__init__.py,sha256=Wnvf4XPELmAIZ-jVxx2t-dBNZ-X9PcDxPSL5EHqJr1Q,434
124
+ phenoml/fhir_provider/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
125
+ phenoml/fhir_provider/errors/forbidden_error.py,sha256=ek8-sffTy9gY3F0zyaSkcskDVvq9puXP_YvvB2BJYbA,338
126
+ phenoml/fhir_provider/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
127
+ phenoml/fhir_provider/errors/not_found_error.py,sha256=hQ1KdyGQJCBQqo6iLu2-szlKJdzaoV5odq_7kdXAEbc,337
128
+ phenoml/fhir_provider/errors/unauthorized_error.py,sha256=h8T6QhXuTo0GLL9MKfIM5p--wDqlB1-ZkMp3lY-aM3E,341
129
+ phenoml/fhir_provider/raw_client.py,sha256=qZt8eVc0oZk-u4AFbxGhZ_sBy-DnvOyAieIfSLJgDcU,58883
130
+ phenoml/fhir_provider/types/__init__.py,sha256=rigqiWwEfwDhPPX3i42fjHWn4lzT2jlKaToSMGG44zs,1321
131
+ phenoml/fhir_provider/types/auth_method.py,sha256=5ToMMmvGIssVlUezB7EsRsPyVaezZHdpoW3piKoPrCw,209
132
+ phenoml/fhir_provider/types/fhir_provider_auth_config.py,sha256=-SGF8RiYF7tdttGCmagmZsO5OxL-Gz0sXV8OaYow9SA,1651
133
+ phenoml/fhir_provider/types/fhir_provider_delete_response.py,sha256=mye_IDz2hAw7BxuzeRjkPjuFAeeEsdFk0RQrSP4ZzjM,603
134
+ phenoml/fhir_provider/types/fhir_provider_list_response.py,sha256=ZoJMAhVgFAONuY0rt7glykjdWOskoSxi6_8JXVEf1_I,736
135
+ phenoml/fhir_provider/types/fhir_provider_remove_auth_config_response.py,sha256=iZcKAKcqjmxzNj3cmUhT0GdQAEfTVTeLcyoN-sAX1-E,725
136
+ phenoml/fhir_provider/types/fhir_provider_response.py,sha256=gvhGBHxrpo0GtNKYZAQGEllRvBOOTvl5EkeDzCOKAjc,709
137
+ phenoml/fhir_provider/types/fhir_provider_set_active_auth_config_response.py,sha256=2_CPZsJef245S4kETwiDXwYygGP5Lnr7I6qQV4wilU8,728
138
+ phenoml/fhir_provider/types/fhir_provider_template.py,sha256=4X86rNs_RhVFLL3-bWzjUIVepnJbluHrjuWRKSLIcq0,1852
139
+ phenoml/fhir_provider/types/fhir_query_response.py,sha256=fOy_oCRexu2iZgDWW6sRIRZm7PtNetsDzc4F2lsM-Pw,842
140
+ phenoml/fhir_provider/types/fhir_query_response_data.py,sha256=TfQ94GSU7NUfkxpy1VNFwOoUmFn4OxZxqFVkQDADsMk,169
141
+ phenoml/fhir_provider/types/json_web_key.py,sha256=ouUPhdvlASdBSJyazqecjQ64A9V9aqvtSt1wt2K3MLg,1615
142
+ phenoml/fhir_provider/types/provider.py,sha256=AmGOmoy5Cv9W0km4rAf3mxqH3g3UUnj_xC4FopPMdAk,238
143
+ phenoml/fhir_provider/types/service_account_key.py,sha256=uup1Xl0HSc_B3278i0CS-ygCroShLS5_q0KtqXI96HY,1085
144
+ phenoml/fhir_provider/types/smart_configuration.py,sha256=bG_J1yNFEWWo9kjxF0s2Ik9rXehB1JHcQ2fTn6dht6k,1174
102
145
  phenoml/lang2fhir/__init__.py,sha256=R8VOE03BLTk90GJVBfpiUXHeODUNX3rZLkRIC21s1ow,694
103
146
  phenoml/lang2fhir/client.py,sha256=4OA_WMG1TYI-PVdp_mKgFOV85loY9Mu1p2e9q1L8T0o,12708
104
147
  phenoml/lang2fhir/errors/__init__.py,sha256=nIzg981R3USgSar0WuuVrpDVg-H5vIp2AceEzbhphGw,458
@@ -116,8 +159,8 @@ phenoml/lang2fhir/types/fhir_resource.py,sha256=EprHErQgwP_MkaCrul94OhkOWQcbvUjM
116
159
  phenoml/lang2fhir/types/lang2fhir_upload_profile_response.py,sha256=X41WiVztePQtZOcNRzNsder-h3rQTj94Y622HQ1izP8,721
117
160
  phenoml/lang2fhir/types/search_response.py,sha256=xM3jNTIl7XuxzCfvaYCzXiBryGXT4siH9UVCpbo0UgI,1019
118
161
  phenoml/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
119
- phenoml/tools/__init__.py,sha256=A7kNOdDJH9VJK8_0GHLdHw457YPoBMn3dJyoEM2NsB4,1251
120
- phenoml/tools/client.py,sha256=SGt-mGbmY1DkFqIDzH8QzD-5w7HUeEpdlnTtHkfUcWY,12499
162
+ phenoml/tools/__init__.py,sha256=tWbUCa1RVpte1Ov53WgLExOXvGT72Mol2JM1Ul3nj3M,989
163
+ phenoml/tools/client.py,sha256=bEyLqb871q0juD2KmTstnIb4x4LpmCv-72-rqpEC_kg,11571
121
164
  phenoml/tools/errors/__init__.py,sha256=nIzg981R3USgSar0WuuVrpDVg-H5vIp2AceEzbhphGw,458
122
165
  phenoml/tools/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
123
166
  phenoml/tools/errors/failed_dependency_error.py,sha256=eXiqG062inkUF7fs2Newhx9uAKReK6fosz29PMD4gVw,345
@@ -130,15 +173,11 @@ phenoml/tools/mcp_server/raw_client.py,sha256=AVnepraHeEuI4zl1eBeHC3_-mkc7zfEIeY
130
173
  phenoml/tools/mcp_server/tools/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
131
174
  phenoml/tools/mcp_server/tools/client.py,sha256=iu-AclviqNB9NWfkS_h7LY9exfzPGmAjOG3MIbQgtuk,9807
132
175
  phenoml/tools/mcp_server/tools/raw_client.py,sha256=FC_OQZ526AGrN1lAnYLvtr-s8NrHfcKUpxM_YLKZgos,26380
133
- phenoml/tools/raw_client.py,sha256=fr637spDlS-MhYUmEydtZ_f0toI4VADL9K7vwtkNS-w,30007
134
- phenoml/tools/types/__init__.py,sha256=df6ORc-pMpBRpkL5IOEQGgCxMYCGeMqmF2Wjcq1RxeU,1434
135
- phenoml/tools/types/cohort_request_provider.py,sha256=m-Xln8ZuKKyRZuJ_mb_74BgtD9nagtxIXtCqOLZVwn0,195
176
+ phenoml/tools/raw_client.py,sha256=7ElVS3AkkDZM38zMVsTQAQC3jgXXMBLw4Kkfeage8Go,28092
177
+ phenoml/tools/types/__init__.py,sha256=Q9a9RbiUDz9jFLZi_43I40t8ZZuolzaDtluYJWV8yN8,1021
136
178
  phenoml/tools/types/cohort_response.py,sha256=Nft1eLyFhNrKDNYOhQxzSH1o35JS7UdZlTgI9ndjdVM,1503
137
- phenoml/tools/types/fhir_client_config.py,sha256=npuwI3AJd0wljagTyxqiwt8g-sQccYF_Sg1k9pGxhEI,976
138
- phenoml/tools/types/lang2fhir_and_create_request_provider.py,sha256=KRPZWGujbzshxwjTJGxQLAbwfragPg2ffTvfPWpIw58,213
139
179
  phenoml/tools/types/lang2fhir_and_create_request_resource.py,sha256=mIBUXOfKrweiYsCu-vxboK_uDu43GQUEdKWlVLHMOyU,608
140
180
  phenoml/tools/types/lang2fhir_and_create_response.py,sha256=jyEYZ_A3JSgVz0dwmlvbzKVMhj4C4SbmeOWbtVDV9uo,971
141
- phenoml/tools/types/lang2fhir_and_search_request_provider.py,sha256=Xrv-AzJgvLqXlcoNgYaiYr9fUqbyIsFmB0U2pIapBWQ,213
142
181
  phenoml/tools/types/lang2fhir_and_search_response.py,sha256=RaJ5zd-D1yFxRyINjksvcefGc81RfIFw_5WmhE4T7HQ,1146
143
182
  phenoml/tools/types/mcp_server_response.py,sha256=aNG9ifrDZCJcfsBh3hPtQBS6QGNk_XdNhovttYv6j6E,923
144
183
  phenoml/tools/types/mcp_server_response_data.py,sha256=BRHrH4sVp4kkxRFb_HLsy3UJvKdI2A0k3ZfaJII05fk,1244
@@ -148,6 +187,7 @@ phenoml/tools/types/mcp_server_tool_response_data.py,sha256=mGFHazpGukicAkB3sBpm
148
187
  phenoml/tools/types/search_concept.py,sha256=Y_Hbx6NOdk1m83jTMxeUBy-e5h8jt0tUjvi92J34zRE,1104
149
188
  phenoml/version.py,sha256=5HhaEGv3OL_Nw9_mC28UFdsvpQrZpjr14na7Pmw8pFY,74
150
189
  phenoml/wrapper_client.py,sha256=JYTdhXgju4tOsata06wQY_ZbMsuMj3qaxkgvDzpY068,5022
151
- phenoml-0.0.2.dist-info/METADATA,sha256=YCmaDG0lBpgztR2WUkT6Ff4d1WFKHVXezK_X-hIGRRk,5330
152
- phenoml-0.0.2.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
153
- phenoml-0.0.2.dist-info/RECORD,,
190
+ phenoml-0.0.5.dist-info/LICENSE,sha256=Am1fNNveR2gcmOloSWQTsnUw2SQEF8HtowFqIvlagfk,1064
191
+ phenoml-0.0.5.dist-info/METADATA,sha256=ZNj5MIzoqdCnvngVK3BkhaESggWaZ85eK4eM_hBzQy8,5330
192
+ phenoml-0.0.5.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
193
+ phenoml-0.0.5.dist-info/RECORD,,