phenoml 0.0.7__py3-none-any.whl → 0.0.9__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.
Files changed (52) hide show
  1. phenoml/agent/client.py +38 -2
  2. phenoml/agent/raw_client.py +24 -0
  3. phenoml/client.py +7 -4
  4. phenoml/construe/__init__.py +2 -16
  5. phenoml/construe/client.py +0 -90
  6. phenoml/construe/raw_client.py +0 -180
  7. phenoml/construe/types/__init__.py +2 -20
  8. phenoml/construe/types/extract_request_config.py +33 -4
  9. phenoml/construe/types/extract_request_config_chunking_method.py +3 -1
  10. phenoml/construe/types/extract_request_config_validation_method.py +5 -0
  11. phenoml/construe/types/extract_request_system.py +2 -0
  12. phenoml/core/client_wrapper.py +8 -10
  13. phenoml/fhir/client.py +116 -14
  14. phenoml/fhir/raw_client.py +84 -0
  15. phenoml/fhir_provider/__init__.py +2 -0
  16. phenoml/fhir_provider/client.py +21 -4
  17. phenoml/fhir_provider/raw_client.py +23 -6
  18. phenoml/fhir_provider/types/__init__.py +2 -0
  19. phenoml/fhir_provider/types/auth_method.py +1 -1
  20. phenoml/fhir_provider/types/role.py +27 -0
  21. phenoml/summary/__init__.py +39 -0
  22. phenoml/summary/client.py +656 -0
  23. phenoml/summary/errors/__init__.py +11 -0
  24. phenoml/summary/errors/bad_request_error.py +10 -0
  25. phenoml/summary/errors/forbidden_error.py +10 -0
  26. phenoml/summary/errors/internal_server_error.py +10 -0
  27. phenoml/summary/errors/not_found_error.py +10 -0
  28. phenoml/summary/errors/unauthorized_error.py +10 -0
  29. phenoml/summary/raw_client.py +1190 -0
  30. phenoml/summary/types/__init__.py +31 -0
  31. phenoml/summary/types/create_summary_request_fhir_resources.py +8 -0
  32. phenoml/summary/types/create_summary_request_mode.py +5 -0
  33. phenoml/{construe/types/construe_cohort_response_queries_item_code_extract_results_item_codes_item.py → summary/types/create_summary_response.py} +7 -10
  34. phenoml/summary/types/create_summary_template_response.py +23 -0
  35. phenoml/summary/types/fhir_bundle.py +23 -0
  36. phenoml/{construe/types/bad_request_error_body.py → summary/types/fhir_bundle_entry_item.py} +3 -10
  37. phenoml/{construe/types/unauthorized_error_body.py → summary/types/fhir_resource.py} +5 -8
  38. phenoml/{construe/types/internal_server_error_body.py → summary/types/summary_delete_template_response.py} +3 -10
  39. phenoml/summary/types/summary_get_template_response.py +21 -0
  40. phenoml/summary/types/summary_list_templates_response.py +21 -0
  41. phenoml/summary/types/summary_template.py +41 -0
  42. phenoml/summary/types/summary_update_template_response.py +22 -0
  43. phenoml/tools/client.py +112 -6
  44. phenoml/tools/raw_client.py +82 -2
  45. {phenoml-0.0.7.dist-info → phenoml-0.0.9.dist-info}/METADATA +1 -1
  46. {phenoml-0.0.7.dist-info → phenoml-0.0.9.dist-info}/RECORD +48 -32
  47. phenoml/construe/types/construe_cohort_request_config.py +0 -37
  48. phenoml/construe/types/construe_cohort_response.py +0 -33
  49. phenoml/construe/types/construe_cohort_response_queries_item.py +0 -49
  50. phenoml/construe/types/construe_cohort_response_queries_item_code_extract_results_item.py +0 -31
  51. {phenoml-0.0.7.dist-info → phenoml-0.0.9.dist-info}/LICENSE +0 -0
  52. {phenoml-0.0.7.dist-info → phenoml-0.0.9.dist-info}/WHEEL +0 -0
@@ -31,6 +31,8 @@ class RawToolsClient:
31
31
  *,
32
32
  resource: Lang2FhirAndCreateRequestResource,
33
33
  text: str,
34
+ phenoml_on_behalf_of: typing.Optional[str] = None,
35
+ phenoml_fhir_provider: typing.Optional[str] = None,
34
36
  provider: typing.Optional[str] = OMIT,
35
37
  request_options: typing.Optional[RequestOptions] = None,
36
38
  ) -> HttpResponse[Lang2FhirAndCreateResponse]:
@@ -45,6 +47,14 @@ class RawToolsClient:
45
47
  text : str
46
48
  Natural language text to convert to FHIR resource
47
49
 
50
+ phenoml_on_behalf_of : typing.Optional[str]
51
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
52
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
53
+
54
+ phenoml_fhir_provider : typing.Optional[str]
55
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
56
+ Multiple FHIR provider integrations can be provided as comma-separated values.
57
+
48
58
  provider : typing.Optional[str]
49
59
  FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
50
60
 
@@ -66,6 +76,8 @@ class RawToolsClient:
66
76
  },
67
77
  headers={
68
78
  "content-type": "application/json",
79
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
80
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
69
81
  },
70
82
  request_options=request_options,
71
83
  omit=OMIT,
@@ -144,6 +156,8 @@ class RawToolsClient:
144
156
  self,
145
157
  *,
146
158
  text: str,
159
+ phenoml_on_behalf_of: typing.Optional[str] = None,
160
+ phenoml_fhir_provider: typing.Optional[str] = None,
147
161
  patient_id: typing.Optional[str] = OMIT,
148
162
  practitioner_id: typing.Optional[str] = OMIT,
149
163
  count: typing.Optional[int] = OMIT,
@@ -158,6 +172,14 @@ class RawToolsClient:
158
172
  text : str
159
173
  Natural language text to convert to FHIR search parameters
160
174
 
175
+ phenoml_on_behalf_of : typing.Optional[str]
176
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
177
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
178
+
179
+ phenoml_fhir_provider : typing.Optional[str]
180
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
181
+ Multiple FHIR provider integrations can be provided as comma-separated values.
182
+
161
183
  patient_id : typing.Optional[str]
162
184
  Patient ID to filter results
163
185
 
@@ -190,6 +212,8 @@ class RawToolsClient:
190
212
  },
191
213
  headers={
192
214
  "content-type": "application/json",
215
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
216
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
193
217
  },
194
218
  request_options=request_options,
195
219
  omit=OMIT,
@@ -265,7 +289,13 @@ class RawToolsClient:
265
289
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
266
290
 
267
291
  def analyze_cohort(
268
- self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
292
+ self,
293
+ *,
294
+ text: str,
295
+ provider: str,
296
+ phenoml_on_behalf_of: typing.Optional[str] = None,
297
+ phenoml_fhir_provider: typing.Optional[str] = None,
298
+ request_options: typing.Optional[RequestOptions] = None,
269
299
  ) -> HttpResponse[CohortResponse]:
270
300
  """
271
301
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -278,6 +308,14 @@ class RawToolsClient:
278
308
  provider : str
279
309
  FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
280
310
 
311
+ phenoml_on_behalf_of : typing.Optional[str]
312
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
313
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
314
+
315
+ phenoml_fhir_provider : typing.Optional[str]
316
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
317
+ Multiple FHIR provider integrations can be provided as comma-separated values.
318
+
281
319
  request_options : typing.Optional[RequestOptions]
282
320
  Request-specific configuration.
283
321
 
@@ -295,6 +333,8 @@ class RawToolsClient:
295
333
  },
296
334
  headers={
297
335
  "content-type": "application/json",
336
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
337
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
298
338
  },
299
339
  request_options=request_options,
300
340
  omit=OMIT,
@@ -368,6 +408,8 @@ class AsyncRawToolsClient:
368
408
  *,
369
409
  resource: Lang2FhirAndCreateRequestResource,
370
410
  text: str,
411
+ phenoml_on_behalf_of: typing.Optional[str] = None,
412
+ phenoml_fhir_provider: typing.Optional[str] = None,
371
413
  provider: typing.Optional[str] = OMIT,
372
414
  request_options: typing.Optional[RequestOptions] = None,
373
415
  ) -> AsyncHttpResponse[Lang2FhirAndCreateResponse]:
@@ -382,6 +424,14 @@ class AsyncRawToolsClient:
382
424
  text : str
383
425
  Natural language text to convert to FHIR resource
384
426
 
427
+ phenoml_on_behalf_of : typing.Optional[str]
428
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
429
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
430
+
431
+ phenoml_fhir_provider : typing.Optional[str]
432
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
433
+ Multiple FHIR provider integrations can be provided as comma-separated values.
434
+
385
435
  provider : typing.Optional[str]
386
436
  FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
387
437
 
@@ -403,6 +453,8 @@ class AsyncRawToolsClient:
403
453
  },
404
454
  headers={
405
455
  "content-type": "application/json",
456
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
457
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
406
458
  },
407
459
  request_options=request_options,
408
460
  omit=OMIT,
@@ -481,6 +533,8 @@ class AsyncRawToolsClient:
481
533
  self,
482
534
  *,
483
535
  text: str,
536
+ phenoml_on_behalf_of: typing.Optional[str] = None,
537
+ phenoml_fhir_provider: typing.Optional[str] = None,
484
538
  patient_id: typing.Optional[str] = OMIT,
485
539
  practitioner_id: typing.Optional[str] = OMIT,
486
540
  count: typing.Optional[int] = OMIT,
@@ -495,6 +549,14 @@ class AsyncRawToolsClient:
495
549
  text : str
496
550
  Natural language text to convert to FHIR search parameters
497
551
 
552
+ phenoml_on_behalf_of : typing.Optional[str]
553
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
554
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
555
+
556
+ phenoml_fhir_provider : typing.Optional[str]
557
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
558
+ Multiple FHIR provider integrations can be provided as comma-separated values.
559
+
498
560
  patient_id : typing.Optional[str]
499
561
  Patient ID to filter results
500
562
 
@@ -527,6 +589,8 @@ class AsyncRawToolsClient:
527
589
  },
528
590
  headers={
529
591
  "content-type": "application/json",
592
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
593
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
530
594
  },
531
595
  request_options=request_options,
532
596
  omit=OMIT,
@@ -602,7 +666,13 @@ class AsyncRawToolsClient:
602
666
  raise ApiError(status_code=_response.status_code, headers=dict(_response.headers), body=_response_json)
603
667
 
604
668
  async def analyze_cohort(
605
- self, *, text: str, provider: str, request_options: typing.Optional[RequestOptions] = None
669
+ self,
670
+ *,
671
+ text: str,
672
+ provider: str,
673
+ phenoml_on_behalf_of: typing.Optional[str] = None,
674
+ phenoml_fhir_provider: typing.Optional[str] = None,
675
+ request_options: typing.Optional[RequestOptions] = None,
606
676
  ) -> AsyncHttpResponse[CohortResponse]:
607
677
  """
608
678
  Uses LLM to extract search concepts from natural language and builds patient cohorts with inclusion/exclusion criteria
@@ -615,6 +685,14 @@ class AsyncRawToolsClient:
615
685
  provider : str
616
686
  FHIR provider ID - must be a valid UUID from existing FHIR providers. also supports provider by name (e.g. medplum)
617
687
 
688
+ phenoml_on_behalf_of : typing.Optional[str]
689
+ Optional header for on-behalf-of authentication. Used when making requests on behalf of another user or entity.
690
+ Must be in the format: Patient/{uuid} or Practitioner/{uuid}
691
+
692
+ phenoml_fhir_provider : typing.Optional[str]
693
+ Optional header for FHIR provider authentication. Contains credentials in the format {fhir_provider_id}:{oauth2_token}.
694
+ Multiple FHIR provider integrations can be provided as comma-separated values.
695
+
618
696
  request_options : typing.Optional[RequestOptions]
619
697
  Request-specific configuration.
620
698
 
@@ -632,6 +710,8 @@ class AsyncRawToolsClient:
632
710
  },
633
711
  headers={
634
712
  "content-type": "application/json",
713
+ "X-Phenoml-On-Behalf-Of": str(phenoml_on_behalf_of) if phenoml_on_behalf_of is not None else None,
714
+ "X-Phenoml-Fhir-Provider": str(phenoml_fhir_provider) if phenoml_fhir_provider is not None else None,
635
715
  },
636
716
  request_options=request_options,
637
717
  omit=OMIT,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phenoml
3
- Version: 0.0.7
3
+ Version: 0.0.9
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
2
  phenoml/agent/__init__.py,sha256=oHLnXLJ_uzj3zAtpAUaoXuWZcxl1K8cQh2ommFsp1Kg,1433
3
- phenoml/agent/client.py,sha256=sUG48L4bRFlh8v2ZcwvpqODCoQbKJpFDB-A_HnXBkQg,25347
3
+ phenoml/agent/client.py,sha256=ITjohJGQ0RqsAlFFhCX1Dl7h4GKg0XfncbRSh2uxvqE,27597
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,7 +13,7 @@ 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=OHMWL-GT2MDyBP_tnO8-vwXX5C3eOO72u4tbH5RE3h8,64230
16
+ phenoml/agent/raw_client.py,sha256=7Yx79x2NTWMVbz3UzWC04v1lhPLvAXozaF5k4uAMzfw,65988
17
17
  phenoml/agent/types/__init__.py,sha256=jMiQhVO3NTKEv5Qm6ZyAeBueWCEFJUzAd78FSsetdME,1566
18
18
  phenoml/agent/types/agent_chat_response.py,sha256=GqPcv7lyZlsypeqFwf1ecouik9A-9xDde0sckYOc8lA,862
19
19
  phenoml/agent/types/agent_create_request.py,sha256=zHEnDylu2M6ZcgfxwWJvXTdMa70UqJ6tTYhLMRK151E,1411
@@ -47,7 +47,7 @@ phenoml/authtoken/raw_client.py,sha256=85R3SJneFJ-fxGXzYOz_Se01pJ9bKXDTB_BP903PL
47
47
  phenoml/authtoken/types/__init__.py,sha256=ruKn1OfqKNJmeB1h39vh7-8srePTRpWsqGQzCH9_vok,260
48
48
  phenoml/authtoken/types/bad_request_error_body.py,sha256=9D69GH2JTNatHxwC7fDlFhTmRKIJ3jRojQP3MwmJ1KI,672
49
49
  phenoml/authtoken/types/unauthorized_error_body.py,sha256=fqqAo2_kWj0nNwLjm1fd-2lQPu5QhPuJP0yB7yE8sRw,674
50
- phenoml/client.py,sha256=yy49_tjGWvQPD7QbdVUa82NDSAS22HjmdU0urgpzS84,7702
50
+ phenoml/client.py,sha256=jc98KWXJuLEAyDq9bCobbzQATmEbi-RioE_K49ExbxI,7835
51
51
  phenoml/cohort/__init__.py,sha256=T7swsjx17aidvorMPqyak0JeX13MT4itAEQvNHNOxuE,320
52
52
  phenoml/cohort/client.py,sha256=4bA8cffE6EvLZVMveJ2_aGu90vtXUHYTfO0E9EQuN9U,3312
53
53
  phenoml/cohort/errors/__init__.py,sha256=su56D86txLO0suHwq_Yixg4EaMbSyaB00cma1beOFGE,312
@@ -58,34 +58,27 @@ phenoml/cohort/raw_client.py,sha256=yhquYZ6fNyhAJG_-6YwQqLMOcIP_JvojryxOEXt_Qfc,
58
58
  phenoml/cohort/types/__init__.py,sha256=zNq1Pom_534srvUJxnEcFPoUK98Cr4oYzPxvL_ifBmc,218
59
59
  phenoml/cohort/types/cohort_response.py,sha256=A0ekTeNT6jh_yMRAcdnMoavcrqUGKZuy_6-k4YwoFmk,981
60
60
  phenoml/cohort/types/search_concept.py,sha256=yIGRoIp8ASZ0I0G-9UA6eTseoZPwHrUuvRRQMamf4yA,1041
61
- phenoml/construe/__init__.py,sha256=xcr0GYiTR5j3lLDWQ0Z9v4m4XCxjG2c_XckxTHZ08Lg,1424
62
- phenoml/construe/client.py,sha256=ASwUxceI3zpaF8OGcljueyEchCIv9JMD5T0kpEDjGXA,12058
61
+ phenoml/construe/__init__.py,sha256=cn_KBBh2epzr6fQAEc8WYPK4RtD2gT2tZmz-FfHFAQM,870
62
+ phenoml/construe/client.py,sha256=VdITc7hZo_ihFPX5_S6sDaxaYoxhRNIYMmTLs8UCSv8,9395
63
63
  phenoml/construe/errors/__init__.py,sha256=vqkSMWgMY6cxAgnI7Gij9m9UwXrlDWmMS12HylhMSi4,455
64
64
  phenoml/construe/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
65
65
  phenoml/construe/errors/conflict_error.py,sha256=NyA4yoleBcQcrDK2rF79eVs62xclhih2kpEIBlAToow,337
66
66
  phenoml/construe/errors/failed_dependency_error.py,sha256=eXiqG062inkUF7fs2Newhx9uAKReK6fosz29PMD4gVw,345
67
67
  phenoml/construe/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
68
68
  phenoml/construe/errors/unauthorized_error.py,sha256=h8T6QhXuTo0GLL9MKfIM5p--wDqlB1-ZkMp3lY-aM3E,341
69
- phenoml/construe/raw_client.py,sha256=syLoJNB4K50jDL4CJoeQeNDWu1hZaL2A8gJlWShDw40,27878
70
- phenoml/construe/types/__init__.py,sha256=lYfjtftwp0Vou6qTWRon1ZCgEHfr3qZ3axVHXIkFazg,1794
71
- phenoml/construe/types/bad_request_error_body.py,sha256=YQ-qSOtzI9G3La2W-xCRbYJCM-rlVct6F6T9Yu8EvCQ,716
72
- phenoml/construe/types/construe_cohort_request_config.py,sha256=W-9C8RieHtMy1AmhNVK1ITtjJykFvsy34SFH-IQLH24,1272
73
- phenoml/construe/types/construe_cohort_response.py,sha256=NDJB5ZKUiXyaq5x8OMtNDDuLBN5S0SkOiIwK7dvxi2o,1201
74
- phenoml/construe/types/construe_cohort_response_queries_item.py,sha256=g5N89Hbh4kXAo5wwj6RczpmzixKHG_Mk7LMIr4ZAHtI,1561
75
- phenoml/construe/types/construe_cohort_response_queries_item_code_extract_results_item.py,sha256=SFsD7pLvYTqRC4TzqxDL2FV9eXjX9WwpfcRFBb7t2Ho,1120
76
- phenoml/construe/types/construe_cohort_response_queries_item_code_extract_results_item_codes_item.py,sha256=wpXzzwabEE2hO0Q5gSFEBcn9EWSYnX0LV6RaCRzbK_Q,893
69
+ phenoml/construe/raw_client.py,sha256=xXhtTmLzDELw9TEXWSKk9ZK2UXYNKMfp3IAk2EKxzl0,20722
70
+ phenoml/construe/types/__init__.py,sha256=Id0OJ58ZEQX9Ut-7iMwWEv49MTJLTTmNPH9es1ya8Cw,900
77
71
  phenoml/construe/types/construe_upload_code_system_response.py,sha256=s0m5EHpkhkp7hYiC5zLZeIeqQ4mrwXlPI1Msihb-ZGo,566
78
72
  phenoml/construe/types/extract_codes_result.py,sha256=DbVDLWqtmt9TyD5MC0q8grgnNXPnXq4eJnLDinTe0uc,701
79
- phenoml/construe/types/extract_request_config.py,sha256=r0HBi3YPCKzvy0zjP6lRvEMar2u1b-NB1lAjF0Ds1YU,844
80
- phenoml/construe/types/extract_request_config_chunking_method.py,sha256=7tl9HJ3ZryBEsg3O95mVexEwQ3gfX6ApYCgxaot2ljo,201
81
- phenoml/construe/types/extract_request_system.py,sha256=1jEgawo7XAJAv4E46hdhFRAhDCE5DXHcTIIYcDg2Klg,1141
73
+ phenoml/construe/types/extract_request_config.py,sha256=-N_yPxXcWeuFx2JNOJIGHjtyJNSFMOGslmLbjYxMh18,1831
74
+ phenoml/construe/types/extract_request_config_chunking_method.py,sha256=AmVPPj0oT5r0pwWUoFxG_K8s5g8xaGYIRsPt3VvqSXQ,209
75
+ phenoml/construe/types/extract_request_config_validation_method.py,sha256=6uUqKn8DXF34EDtNKPa6KLW07DsxgQF2aR5BGdG5Fd4,199
76
+ phenoml/construe/types/extract_request_system.py,sha256=50qkxvinJKS5y1_glr-OFe5tQRyMWLYpeny1NZ9gFzw,1191
82
77
  phenoml/construe/types/extracted_code_result.py,sha256=LmhaQYFeLXBWR_NWcF1c-qt3OqwWQduefvInJRHcvio,1121
83
- phenoml/construe/types/internal_server_error_body.py,sha256=LbZ3C6FayIwL-0oBJAcsSoLF6F4lcz2d3osoNPBCM44,720
84
- phenoml/construe/types/unauthorized_error_body.py,sha256=j7msnWr6ENYKxLVrfi2ZTg4eh1b1rSyd1VNSsBbOIAc,718
85
78
  phenoml/construe/types/upload_request_format.py,sha256=5mJhMM7R7hn6gGQNDJT9lxPDsRpUkRzqNxtRU0Nnlls,158
86
79
  phenoml/core/__init__.py,sha256=lTcqUPXcx4112yLDd70RAPeqq6tu3eFMe1pKOqkW9JQ,1562
87
80
  phenoml/core/api_error.py,sha256=44vPoTyWN59gonCIZMdzw7M1uspygiLnr3GNFOoVL2Q,614
88
- phenoml/core/client_wrapper.py,sha256=NV5qStQ5OxhK6wEWWaxsk1MllbDh9bGHb2HB74UeRPg,2809
81
+ phenoml/core/client_wrapper.py,sha256=G0rdPUowZQHvCLjiF-pS4NXjXKlLAT9VbkywHyrcpAg,2641
89
82
  phenoml/core/datetime_utils.py,sha256=nBys2IsYrhPdszxGKCNRPSOCwa-5DWOHG95FB8G9PKo,1047
90
83
  phenoml/core/file.py,sha256=d4NNbX8XvXP32z8KpK2Xovv33nFfruIrpz0QWxlgpZk,2663
91
84
  phenoml/core/force_multipart.py,sha256=awxh5MtcRYe74ehY8U76jzv6fYM_w_D3Rur7KQQzSDk,429
@@ -99,13 +92,13 @@ phenoml/core/request_options.py,sha256=h0QUNCFVdCW_7GclVySCAY2w4NhtXVBUCmHgmzaxp
99
92
  phenoml/core/serialization.py,sha256=ECL3bvv_0i7U4uvPidZCNel--MUbA0iq0aGcNKi3kws,9818
100
93
  phenoml/environment.py,sha256=x2TB5u9AblwVCke6_38YZmVhcjjHLE5gXBo5TMeaeO8,164
101
94
  phenoml/fhir/__init__.py,sha256=CGOe2OSGyiryHY66fcRyZXsSMHiM5Y_GkTNPUqzwTP8,910
102
- phenoml/fhir/client.py,sha256=gcPfXFlpzIrQxK17mJbVhnfpM-6YsnovJXrsGVDFG7w,34747
95
+ phenoml/fhir/client.py,sha256=1hQSCDOYsC89zPlPWHJIKgVBa-j8mRT_97lDHFJ3jN8,43581
103
96
  phenoml/fhir/errors/__init__.py,sha256=1K_bceYvXUdWyvhH-WRwOEcc1gkiT_K6kGrs3VKg3PA,372
104
97
  phenoml/fhir/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
105
98
  phenoml/fhir/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
106
99
  phenoml/fhir/errors/not_found_error.py,sha256=hQ1KdyGQJCBQqo6iLu2-szlKJdzaoV5odq_7kdXAEbc,337
107
100
  phenoml/fhir/errors/unauthorized_error.py,sha256=h8T6QhXuTo0GLL9MKfIM5p--wDqlB1-ZkMp3lY-aM3E,341
108
- phenoml/fhir/raw_client.py,sha256=T2yO55UzMc2hyTPsp_2PgXQ_hyURSjA3DQhjZMQs9uY,60044
101
+ phenoml/fhir/raw_client.py,sha256=XZE1iWjujv5hSROSSo8kdG773l6T_vKV66iZYqcvNks,66380
109
102
  phenoml/fhir/types/__init__.py,sha256=J9Gj1h5TZ5mNjBYE-Vn2bVPR3VCRwRIf1BrS5DHQrV4,1054
110
103
  phenoml/fhir/types/error_response.py,sha256=Vw1veSbj51ki93gmYml3fRjB6XAEwvnkcYkSNhyLDeU,897
111
104
  phenoml/fhir/types/fhir_bundle.py,sha256=p_CsuL2U1q7Qzmkdu6vCBtNZLznWmHXw5WtMzDnstdE,1373
@@ -118,17 +111,17 @@ phenoml/fhir/types/fhir_patch_request_body_item_op.py,sha256=qOU6uYuWoscQ876W58a
118
111
  phenoml/fhir/types/fhir_resource.py,sha256=kZxeWoOMiGqwfwdxgdWg3NUjFFTuVKCAv6Ty80myhuI,1223
119
112
  phenoml/fhir/types/fhir_resource_meta.py,sha256=9nXzZ7V7u0x9ehDyjoydmVl7leXzzvIOzxSQJSYmHbk,934
120
113
  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
114
+ phenoml/fhir_provider/__init__.py,sha256=eJCs8myQf5vFvBw61XfbU2zREeU2Twq_epJYlX6ldE4,1142
115
+ phenoml/fhir_provider/client.py,sha256=htt7uajiTavAIUe5-45ucaAX0evxcEulHaFV1Hcgaug,23429
123
116
  phenoml/fhir_provider/errors/__init__.py,sha256=Wnvf4XPELmAIZ-jVxx2t-dBNZ-X9PcDxPSL5EHqJr1Q,434
124
117
  phenoml/fhir_provider/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
125
118
  phenoml/fhir_provider/errors/forbidden_error.py,sha256=ek8-sffTy9gY3F0zyaSkcskDVvq9puXP_YvvB2BJYbA,338
126
119
  phenoml/fhir_provider/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
127
120
  phenoml/fhir_provider/errors/not_found_error.py,sha256=hQ1KdyGQJCBQqo6iLu2-szlKJdzaoV5odq_7kdXAEbc,337
128
121
  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
122
+ phenoml/fhir_provider/raw_client.py,sha256=h1f9kQiyzKos3HD-qc0Daw4IuJLRQR3_yYn5101TLd4,60286
123
+ phenoml/fhir_provider/types/__init__.py,sha256=nI5cnzergAlcDXfQkIAtJOEibdOqQ2BYTZGQrLAm2E4,1356
124
+ phenoml/fhir_provider/types/auth_method.py,sha256=Ox5c5SQo1EHAwkhBNOJHEovgE6U2OoSvgXHLlqgk9-U,230
132
125
  phenoml/fhir_provider/types/fhir_provider_auth_config.py,sha256=-SGF8RiYF7tdttGCmagmZsO5OxL-Gz0sXV8OaYow9SA,1651
133
126
  phenoml/fhir_provider/types/fhir_provider_delete_response.py,sha256=mye_IDz2hAw7BxuzeRjkPjuFAeeEsdFk0RQrSP4ZzjM,603
134
127
  phenoml/fhir_provider/types/fhir_provider_list_response.py,sha256=ZoJMAhVgFAONuY0rt7glykjdWOskoSxi6_8JXVEf1_I,736
@@ -140,6 +133,7 @@ phenoml/fhir_provider/types/fhir_query_response.py,sha256=fOy_oCRexu2iZgDWW6sRIR
140
133
  phenoml/fhir_provider/types/fhir_query_response_data.py,sha256=TfQ94GSU7NUfkxpy1VNFwOoUmFn4OxZxqFVkQDADsMk,169
141
134
  phenoml/fhir_provider/types/json_web_key.py,sha256=ouUPhdvlASdBSJyazqecjQ64A9V9aqvtSt1wt2K3MLg,1615
142
135
  phenoml/fhir_provider/types/provider.py,sha256=AmGOmoy5Cv9W0km4rAf3mxqH3g3UUnj_xC4FopPMdAk,238
136
+ phenoml/fhir_provider/types/role.py,sha256=Igag80s-KaGOc4nWfrGWyT81HU__c6_WJ-1oV7DOVdE,638
143
137
  phenoml/fhir_provider/types/service_account_key.py,sha256=uup1Xl0HSc_B3278i0CS-ygCroShLS5_q0KtqXI96HY,1085
144
138
  phenoml/fhir_provider/types/smart_configuration.py,sha256=bG_J1yNFEWWo9kjxF0s2Ik9rXehB1JHcQ2fTn6dht6k,1174
145
139
  phenoml/lang2fhir/__init__.py,sha256=R8VOE03BLTk90GJVBfpiUXHeODUNX3rZLkRIC21s1ow,694
@@ -159,8 +153,30 @@ phenoml/lang2fhir/types/fhir_resource.py,sha256=EprHErQgwP_MkaCrul94OhkOWQcbvUjM
159
153
  phenoml/lang2fhir/types/lang2fhir_upload_profile_response.py,sha256=X41WiVztePQtZOcNRzNsder-h3rQTj94Y622HQ1izP8,721
160
154
  phenoml/lang2fhir/types/search_response.py,sha256=xM3jNTIl7XuxzCfvaYCzXiBryGXT4siH9UVCpbo0UgI,1019
161
155
  phenoml/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
+ phenoml/summary/__init__.py,sha256=0CioBmGauOx0MxDnrqvq3xVwi1XqmCKtwe2XEDmGYfs,1066
157
+ phenoml/summary/client.py,sha256=2Q8SkqSHUgNl659voCUPT6UasbX27IxkaHq8vU0fiRA,18744
158
+ phenoml/summary/errors/__init__.py,sha256=Wnvf4XPELmAIZ-jVxx2t-dBNZ-X9PcDxPSL5EHqJr1Q,434
159
+ phenoml/summary/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
160
+ phenoml/summary/errors/forbidden_error.py,sha256=ek8-sffTy9gY3F0zyaSkcskDVvq9puXP_YvvB2BJYbA,338
161
+ phenoml/summary/errors/internal_server_error.py,sha256=biBHJfSP1_zWF5CJgxY4B8wrL1uC18RSccQ-BCKmYNs,343
162
+ phenoml/summary/errors/not_found_error.py,sha256=hQ1KdyGQJCBQqo6iLu2-szlKJdzaoV5odq_7kdXAEbc,337
163
+ phenoml/summary/errors/unauthorized_error.py,sha256=h8T6QhXuTo0GLL9MKfIM5p--wDqlB1-ZkMp3lY-aM3E,341
164
+ phenoml/summary/raw_client.py,sha256=ar7TGzWoGM0XE0d5pZQFdu67NJ-PwQp0Bx0rOEvrbLg,47420
165
+ phenoml/summary/types/__init__.py,sha256=Cef3yEm0KM3HM0lnBut2uTLNgAhX1yocxrwA1ubNCdI,1231
166
+ phenoml/summary/types/create_summary_request_fhir_resources.py,sha256=afdDyX3UPCFrEjynP8XL_w9ulDbgojw8nAFVgZAolvE,232
167
+ phenoml/summary/types/create_summary_request_mode.py,sha256=YvRzzEGxaewryCyqGvJvpoOInjuB5GU1_1Mv3f2UODg,172
168
+ phenoml/summary/types/create_summary_response.py,sha256=8I4AVApJSZCzjIKvZUCIIQ5jBhO2IQBZqVV1VXKzavU,862
169
+ phenoml/summary/types/create_summary_template_response.py,sha256=mOujukt5jMKpTYTovvUagDjdvRIO3LJB2P0lCBzr5yc,751
170
+ phenoml/summary/types/fhir_bundle.py,sha256=ZP4LkXXUs18FQJyCvL1cSdQTas0mKWIYao815eM7qoU,798
171
+ phenoml/summary/types/fhir_bundle_entry_item.py,sha256=nhXcR4Rb68PFL0-l4oMH6kCKaAgTC3k4BXD984ly4gU,604
172
+ phenoml/summary/types/fhir_resource.py,sha256=GUtFqdTEyGJCGA2AOlZPLrwK3JA1dix20TtqBAvqjuU,726
173
+ phenoml/summary/types/summary_delete_template_response.py,sha256=xmgY1Eh6HgVj8y2n2lob7-cmhvbesy4syOd3Dy38rAs,606
174
+ phenoml/summary/types/summary_get_template_response.py,sha256=u71jGARazI2XECeqmRGk4hjF5X7sD3zm5z8eFUsWl7g,662
175
+ phenoml/summary/types/summary_list_templates_response.py,sha256=go45lFGp3KktaZq4lCGN5KV6SYbaik5bNvn5NkTV6xI,678
176
+ phenoml/summary/types/summary_template.py,sha256=eCM6BVMZC4jxp7d2PoIfcluflAMXa07oZcXf0nzytXM,1269
177
+ phenoml/summary/types/summary_update_template_response.py,sha256=1i_2LELTdulyXLNaEaN10Phy9KZfmGUBQCcj_9eZZy4,706
162
178
  phenoml/tools/__init__.py,sha256=tWbUCa1RVpte1Ov53WgLExOXvGT72Mol2JM1Ul3nj3M,989
163
- phenoml/tools/client.py,sha256=bEyLqb871q0juD2KmTstnIb4x4LpmCv-72-rqpEC_kg,11571
179
+ phenoml/tools/client.py,sha256=JRLj2mUGWuJ_ClRiSRimSKxx55hWQOLtPACpvFFVqxw,18261
164
180
  phenoml/tools/errors/__init__.py,sha256=nIzg981R3USgSar0WuuVrpDVg-H5vIp2AceEzbhphGw,458
165
181
  phenoml/tools/errors/bad_request_error.py,sha256=nv0bK4gtOnTon6a2NdVxJxHBje_O_7wIoRtXLZHovUQ,339
166
182
  phenoml/tools/errors/failed_dependency_error.py,sha256=eXiqG062inkUF7fs2Newhx9uAKReK6fosz29PMD4gVw,345
@@ -173,7 +189,7 @@ phenoml/tools/mcp_server/raw_client.py,sha256=AVnepraHeEuI4zl1eBeHC3_-mkc7zfEIeY
173
189
  phenoml/tools/mcp_server/tools/__init__.py,sha256=_VhToAyIt_5axN6CLJwtxg3-CO7THa_23pbUzqhXJa4,85
174
190
  phenoml/tools/mcp_server/tools/client.py,sha256=iu-AclviqNB9NWfkS_h7LY9exfzPGmAjOG3MIbQgtuk,9807
175
191
  phenoml/tools/mcp_server/tools/raw_client.py,sha256=FC_OQZ526AGrN1lAnYLvtr-s8NrHfcKUpxM_YLKZgos,26380
176
- phenoml/tools/raw_client.py,sha256=7ElVS3AkkDZM38zMVsTQAQC3jgXXMBLw4Kkfeage8Go,28092
192
+ phenoml/tools/raw_client.py,sha256=AdHQW0jlx-QtysAT2lo8DuxFZE1rsU_ji8EbPfLrVPc,33432
177
193
  phenoml/tools/types/__init__.py,sha256=Q9a9RbiUDz9jFLZi_43I40t8ZZuolzaDtluYJWV8yN8,1021
178
194
  phenoml/tools/types/cohort_response.py,sha256=Nft1eLyFhNrKDNYOhQxzSH1o35JS7UdZlTgI9ndjdVM,1503
179
195
  phenoml/tools/types/lang2fhir_and_create_request_resource.py,sha256=mIBUXOfKrweiYsCu-vxboK_uDu43GQUEdKWlVLHMOyU,608
@@ -220,7 +236,7 @@ phenoml/workflows/types/workflows_delete_response.py,sha256=izcubUOnSNOgThD9Ozo6
220
236
  phenoml/workflows/types/workflows_get_response.py,sha256=gfNyUs14JSynprRwT-fuq4IDsGrPZmUSsK3WmgqIEi8,891
221
237
  phenoml/workflows/types/workflows_update_response.py,sha256=FEvQpC9ZRk8dV1oaIAwV5bSDD2tkXZ5fG4mozRjibuQ,1046
222
238
  phenoml/wrapper_client.py,sha256=JYTdhXgju4tOsata06wQY_ZbMsuMj3qaxkgvDzpY068,5022
223
- phenoml-0.0.7.dist-info/LICENSE,sha256=Am1fNNveR2gcmOloSWQTsnUw2SQEF8HtowFqIvlagfk,1064
224
- phenoml-0.0.7.dist-info/METADATA,sha256=Iu2IZeO82Ggtc5m7-v79JQHlGfGuNcT6YoshIa9JEFQ,5330
225
- phenoml-0.0.7.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
226
- phenoml-0.0.7.dist-info/RECORD,,
239
+ phenoml-0.0.9.dist-info/LICENSE,sha256=Am1fNNveR2gcmOloSWQTsnUw2SQEF8HtowFqIvlagfk,1064
240
+ phenoml-0.0.9.dist-info/METADATA,sha256=21ZdYAdAMn0JWaTIySZ6VT5QbTRFsMU1wc4QEAC0vMs,5330
241
+ phenoml-0.0.9.dist-info/WHEEL,sha256=Zb28QaM1gQi8f4VCBhsUklF61CTlNYfs9YAZn-TOGFk,88
242
+ phenoml-0.0.9.dist-info/RECORD,,
@@ -1,37 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
7
-
8
-
9
- class ConstrueCohortRequestConfig(UniversalBaseModel):
10
- include_extract_results: typing.Optional[bool] = pydantic.Field(default=None)
11
- """
12
- When enabled, includes detailed information about medical codes extracted from the text.
13
- """
14
-
15
- include_rationale: typing.Optional[bool] = pydantic.Field(default=None)
16
- """
17
- When enabled, includes AI-generated explanations for each query component and code extraction.
18
- """
19
-
20
- exclude_deceased: typing.Optional[bool] = pydantic.Field(default=None)
21
- """
22
- Controls whether deceased patients should be excluded from the cohort.
23
- """
24
-
25
- sql_syntax: typing.Optional[typing.Literal["bigquery"]] = pydantic.Field(default=None)
26
- """
27
- Specifies the SQL dialect for query generation. Currently, only "bigquery" is supported.
28
- """
29
-
30
- if IS_PYDANTIC_V2:
31
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
32
- else:
33
-
34
- class Config:
35
- frozen = True
36
- smart_union = True
37
- extra = pydantic.Extra.allow
@@ -1,33 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
- from .construe_cohort_response_queries_item import ConstrueCohortResponseQueriesItem
10
-
11
-
12
- class ConstrueCohortResponse(UniversalBaseModel):
13
- queries: typing.Optional[typing.List[ConstrueCohortResponseQueriesItem]] = None
14
- sql: typing.Optional[str] = pydantic.Field(default=None)
15
- """
16
- Generated SQL query when `sql_syntax` is specified. Variables in curly braces need to be replaced with your actual table names.
17
- """
18
-
19
- cohort_description: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="cohortDescription")] = (
20
- pydantic.Field(default=None)
21
- )
22
- """
23
- Echo of the input text description for reference.
24
- """
25
-
26
- if IS_PYDANTIC_V2:
27
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
28
- else:
29
-
30
- class Config:
31
- frozen = True
32
- smart_union = True
33
- extra = pydantic.Extra.allow
@@ -1,49 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
- from .construe_cohort_response_queries_item_code_extract_results_item import (
10
- ConstrueCohortResponseQueriesItemCodeExtractResultsItem,
11
- )
12
-
13
-
14
- class ConstrueCohortResponseQueriesItem(UniversalBaseModel):
15
- resource: typing.Optional[str] = pydantic.Field(default=None)
16
- """
17
- FHIR resource type (e.g., "Patient", "Condition").
18
- """
19
-
20
- search_params: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="searchParams")] = (
21
- pydantic.Field(default=None)
22
- )
23
- """
24
- FHIR search parameters.
25
- """
26
-
27
- exclude: typing.Optional[bool] = pydantic.Field(default=None)
28
- """
29
- Indicates if this is an exclusion criteria.
30
- """
31
-
32
- rationale: typing.Optional[str] = pydantic.Field(default=None)
33
- """
34
- AI-generated explanation for the query component.
35
- """
36
-
37
- code_extract_results: typing_extensions.Annotated[
38
- typing.Optional[typing.List[ConstrueCohortResponseQueriesItemCodeExtractResultsItem]],
39
- FieldMetadata(alias="codeExtractResults"),
40
- ] = None
41
-
42
- if IS_PYDANTIC_V2:
43
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
44
- else:
45
-
46
- class Config:
47
- frozen = True
48
- smart_union = True
49
- extra = pydantic.Extra.allow
@@ -1,31 +0,0 @@
1
- # This file was auto-generated by Fern from our API Definition.
2
-
3
- import typing
4
-
5
- import pydantic
6
- import typing_extensions
7
- from ...core.pydantic_utilities import IS_PYDANTIC_V2, UniversalBaseModel
8
- from ...core.serialization import FieldMetadata
9
- from .construe_cohort_response_queries_item_code_extract_results_item_codes_item import (
10
- ConstrueCohortResponseQueriesItemCodeExtractResultsItemCodesItem,
11
- )
12
-
13
-
14
- class ConstrueCohortResponseQueriesItemCodeExtractResultsItem(UniversalBaseModel):
15
- system_name: typing_extensions.Annotated[typing.Optional[str], FieldMetadata(alias="systemName")] = pydantic.Field(
16
- default=None
17
- )
18
- """
19
- Name of the coding system (e.g., "SNOMED_CT_US_LITE").
20
- """
21
-
22
- codes: typing.Optional[typing.List[ConstrueCohortResponseQueriesItemCodeExtractResultsItemCodesItem]] = None
23
-
24
- if IS_PYDANTIC_V2:
25
- model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
26
- else:
27
-
28
- class Config:
29
- frozen = True
30
- smart_union = True
31
- extra = pydantic.Extra.allow