helix.fhir.client.sdk 4.2.2__tar.gz → 4.2.3__tar.gz

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 (227) hide show
  1. {helix_fhir_client_sdk-4.2.2/helix.fhir.client.sdk.egg-info → helix_fhir_client_sdk-4.2.3}/PKG-INFO +2 -5
  2. helix_fhir_client_sdk-4.2.3/VERSION +1 -0
  3. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3/helix.fhir.client.sdk.egg-info}/PKG-INFO +2 -5
  4. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/SOURCES.txt +0 -3
  5. helix_fhir_client_sdk-4.2.3/helix.fhir.client.sdk.egg-info/requires.txt +8 -0
  6. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_auth_mixin.py +8 -13
  7. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_client.py +48 -64
  8. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_delete_mixin.py +2 -2
  9. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_merge_mixin.py +1 -1
  10. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_merge_resources_mixin.py +2 -2
  11. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_patch_mixin.py +1 -1
  12. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_update_mixin.py +1 -1
  13. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/simulated_graph_processor_mixin.py +1 -0
  14. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/queue/request_queue_mixin.py +4 -13
  15. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_client_protocol.py +1 -1
  16. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_get_response.py +1 -1
  17. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_response_processor.py +54 -73
  18. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_bundle_response.py +1 -1
  19. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_error_response.py +1 -0
  20. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_list_by_resource_type_response.py +1 -1
  21. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_list_response.py +1 -1
  22. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_response_factory.py +1 -0
  23. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/fhir_get_single_response.py +1 -1
  24. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/cache/request_cache.py +43 -32
  25. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_client.py +139 -150
  26. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_response.py +1 -2
  27. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/setup.py +1 -4
  28. helix_fhir_client_sdk-4.2.2/VERSION +0 -1
  29. helix_fhir_client_sdk-4.2.2/helix.fhir.client.sdk.egg-info/requires.txt +0 -11
  30. helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry/attribute_names.py +0 -4
  31. helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry/span_names.py +0 -8
  32. helix_fhir_client_sdk-4.2.2/tests_integration/__init__.py +0 -0
  33. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/LICENSE +0 -0
  34. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/MANIFEST.in +0 -0
  35. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/Makefile +0 -0
  36. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/README.md +0 -0
  37. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/dependency_links.txt +0 -0
  38. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/not-zip-safe +0 -0
  39. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix.fhir.client.sdk.egg-info/top_level.txt +0 -0
  40. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/__init__.py +0 -0
  41. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/dictionary_parser.py +0 -0
  42. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/dictionary_writer.py +0 -0
  43. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/__init__.py +0 -0
  44. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_get_exception.py +0 -0
  45. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_sender_exception.py +0 -0
  46. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/exceptions/fhir_validation_exception.py +0 -0
  47. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/fhir_bundle_appender.py +0 -0
  48. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/__init__.py +0 -0
  49. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/base_filter.py +0 -0
  50. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/identifier_filter.py +0 -0
  51. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/last_updated_filter.py +0 -0
  52. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/property_filter.py +0 -0
  53. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/property_missing_filter.py +0 -0
  54. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/security_access_filter.py +0 -0
  55. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/security_owner_filter.py +0 -0
  56. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/sort_field.py +0 -0
  57. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/source_filter.py +0 -0
  58. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/filters/version_filter.py +0 -0
  59. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/function_types.py +0 -0
  60. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/__init__.py +0 -0
  61. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/fhir_graph_mixin.py +0 -0
  62. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_definition.py +0 -0
  63. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_link_parameters.py +0 -0
  64. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/graph_target_parameters.py +0 -0
  65. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/__init__.py +0 -0
  66. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_graph_mixin.py +0 -0
  67. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin.py +0 -0
  68. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin_caching.py +0 -0
  69. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/py.typed +0 -0
  70. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/open_telemetry → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/queue}/__init__.py +0 -0
  71. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/queue → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses}/__init__.py +0 -0
  72. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/bundle_expander.py +0 -0
  73. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_delete_response.py +0 -0
  74. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_merge_response.py +0 -0
  75. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/fhir_update_response.py +0 -0
  76. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/get}/__init__.py +0 -0
  77. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/get → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/get/test}/__init__.py +0 -0
  78. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_bundle_response.py +0 -0
  79. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_error_response.py +0 -0
  80. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_list_by_resource_type_response.py +0 -0
  81. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_list_response.py +0 -0
  82. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_response_factory.py +0 -0
  83. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get/test/test_get_single_response.py +0 -0
  84. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/get_result.py +0 -0
  85. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/get/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/merge}/__init__.py +0 -0
  86. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/base_fhir_merge_resource_response_entry.py +0 -0
  87. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response.py +0 -0
  88. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_resource_response_entry.py +0 -0
  89. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/merge/fhir_merge_response_entry_issue.py +0 -0
  90. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/paging_result.py +0 -0
  91. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/resource_separator.py +0 -0
  92. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/merge → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/test}/__init__.py +0 -0
  93. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/responses/test/fhir_response_processor}/__init__.py +0 -0
  94. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_expand_or_separate_bundle_async.py +0 -0
  95. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200.py +0 -0
  96. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_non_streaming.py +0 -0
  97. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_non_streaming_separate_bundle.py +0 -0
  98. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming.py +0 -0
  99. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming_separate_bundle.py +0 -0
  100. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_200_streaming_separate_bundle_ndjson.py +0 -0
  101. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/fhir_response_processor/test_handle_response_404.py +0 -0
  102. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_bundle_expander.py +0 -0
  103. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_fhir_get_response.py +0 -0
  104. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/responses/test/test_resource_separator.py +0 -0
  105. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/responses/test/fhir_response_processor → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/structures}/__init__.py +0 -0
  106. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/structures/get_access_token_result.py +0 -0
  107. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/structures → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/test}/__init__.py +0 -0
  108. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_delete_mixin.py +0 -0
  109. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_fhir_auth_mixin.py +0 -0
  110. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_fhir_bundle_appender.py +0 -0
  111. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_merge_mixin.py +0 -0
  112. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/test/test_merge_mixin_resources.py +0 -0
  113. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities}/__init__.py +0 -0
  114. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/async_parallel_processor}/__init__.py +0 -0
  115. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/async_parallel_processor → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/async_parallel_processor/v1}/__init__.py +0 -0
  116. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/async_parallel_processor/v1/async_parallel_processor.py +0 -0
  117. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/async_runner.py +0 -0
  118. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/async_parallel_processor/v1 → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/cache}/__init__.py +0 -0
  119. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/cache/request_cache_entry.py +0 -0
  120. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_client_logger.py +0 -0
  121. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_helper.py +0 -0
  122. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_scope_parser.py +0 -0
  123. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_scope_parser_result.py +0 -0
  124. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/fhir_server_helpers.py +0 -0
  125. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/hash_util.py +0 -0
  126. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/list_chunker.py +0 -0
  127. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/ndjson_chunk_streaming_parser.py +0 -0
  128. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/practitioner_generator.py +0 -0
  129. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/retryable_aiohttp_url_result.py +0 -0
  130. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/cache → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/size_calculator}/__init__.py +0 -0
  131. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/size_calculator/size_calculator.py +0 -0
  132. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/size_calculator → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/utilities/test}/__init__.py +0 -0
  133. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_async_runner.py +0 -0
  134. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser.py +0 -0
  135. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser_can_parse_scopes.py +0 -0
  136. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_fhir_scope_parser_correct_allow.py +0 -0
  137. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_json_helpers.py +0 -0
  138. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_list_chunker.py +0 -0
  139. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_ndjson_chunk_streaming_parser.py +0 -0
  140. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/test/test_retryable_aiohttp_client.py +0 -0
  141. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/utilities/url_checker.py +0 -0
  142. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/utilities/test → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/validators}/__init__.py +0 -0
  143. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/async_fhir_validator.py +0 -0
  144. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/fhir_validator.py +0 -0
  145. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/validators → helix_fhir_client_sdk-4.2.3/helix_fhir_client_sdk/validators/test}/__init__.py +0 -0
  146. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/validators/test/test_async_fhir_validator.py +0 -0
  147. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/helix_fhir_client_sdk/well_known_configuration.py +0 -0
  148. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/pyproject.toml +0 -0
  149. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/setup.cfg +0 -0
  150. {helix_fhir_client_sdk-4.2.2/helix_fhir_client_sdk/validators/test → helix_fhir_client_sdk-4.2.3/tests}/__init__.py +0 -0
  151. {helix_fhir_client_sdk-4.2.2/tests → helix_fhir_client_sdk-4.2.3/tests/async}/__init__.py +0 -0
  152. {helix_fhir_client_sdk-4.2.2/tests/async → helix_fhir_client_sdk-4.2.3/tests/async/fhir_server}/__init__.py +0 -0
  153. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/fhir_server/test_async_real_fhir_server_get_graph_large.py +0 -0
  154. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/fhir_server/test_async_real_fhir_server_get_patients_large.py +0 -0
  155. {helix_fhir_client_sdk-4.2.2/tests/async/fhir_server → helix_fhir_client_sdk-4.2.3/tests/async/graph}/__init__.py +0 -0
  156. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph.py +0 -0
  157. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph_multiple_ids.py +0 -0
  158. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/graph/test_fhir_graph_multiple_ids_in_batches.py +0 -0
  159. {helix_fhir_client_sdk-4.2.2/tests/async/graph → helix_fhir_client_sdk-4.2.3/tests/async/simulated_graph}/__init__.py +0 -0
  160. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_async.py +0 -0
  161. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_async.py +0 -0
  162. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_input_cache_async.py +0 -0
  163. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_input_cache_if_modified_since_async.py +0 -0
  164. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_caching_scope_parser_async.py +0 -0
  165. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_separate_resources_async.py +0 -0
  166. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_errors_async.py +0 -0
  167. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_operation_outcomes_async.py +0 -0
  168. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph/test_fhir_simulated_graph_with_url_column_async.py +0 -0
  169. {helix_fhir_client_sdk-4.2.2/tests/async/simulated_graph → helix_fhir_client_sdk-4.2.3/tests/async/simulated_graph_practitioner}/__init__.py +0 -0
  170. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_async.py +0 -0
  171. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_in_one_call_async.py +0 -0
  172. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_multiple_practitioner_in_one_call_async_with_request_size.py +0 -0
  173. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_practitioner_async.py +0 -0
  174. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/simulated_graph_practitioner/test_fhir_simulated_graph_practitioner_separate_resources_async.py +0 -0
  175. {helix_fhir_client_sdk-4.2.2/tests/async/simulated_graph_practitioner → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle}/__init__.py +0 -0
  176. {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/not_expanded}/__init__.py +0 -0
  177. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/not_expanded/test_fhir_client_bundle_not_expanded.py +0 -0
  178. {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/not_expanded → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/not_separated}/__init__.py +0 -0
  179. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/not_separated/test_fhir_client_bundle_not_separated.py +0 -0
  180. {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/not_separated → helix_fhir_client_sdk-4.2.3/tests/async/test_async_fhir_client_bundle/separated}/__init__.py +0 -0
  181. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_bundle/separated/test_fhir_client_bundle_separated.py +0 -0
  182. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_fetch_response_in_chunks.py +0 -0
  183. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_by_id.py +0 -0
  184. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_by_identifier_missing.py +0 -0
  185. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_delete.py +0 -0
  186. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list.py +0 -0
  187. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail.py +0 -0
  188. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail_retry.py +0 -0
  189. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_auth_fail_retry_custom_refresh_function.py +0 -0
  190. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_resource_streaming.py +0 -0
  191. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_list_streaming.py +0 -0
  192. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_merge.py +0 -0
  193. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_merge_with_validate.py +0 -0
  194. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_fhir_client_patient_update.py +0 -0
  195. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_real_fhir_server_get_patients.py +0 -0
  196. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/async/test_async_real_fhir_server_get_patients_error.py +0 -0
  197. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/logger_for_test.py +0 -0
  198. {helix_fhir_client_sdk-4.2.2/tests/async/test_async_fhir_client_bundle/separated → helix_fhir_client_sdk-4.2.3/tests/sync}/__init__.py +0 -0
  199. {helix_fhir_client_sdk-4.2.2/tests/sync → helix_fhir_client_sdk-4.2.3/tests/sync/graph}/__init__.py +0 -0
  200. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/graph/test_fhir_graph.py +0 -0
  201. {helix_fhir_client_sdk-4.2.2/tests/sync/graph → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle}/__init__.py +0 -0
  202. {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/not_expanded}/__init__.py +0 -0
  203. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/not_expanded/test_fhir_client_bundle_not_expanded.py +0 -0
  204. {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/not_expanded → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/not_separated}/__init__.py +0 -0
  205. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/not_separated/test_fhir_client_bundle_not_separated.py +0 -0
  206. {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/not_separated → helix_fhir_client_sdk-4.2.3/tests/sync/test_fhir_client_bundle/separated}/__init__.py +0 -0
  207. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_bundle/separated/test_fhir_client_bundle_separated.py +0 -0
  208. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_logs_not_contains_secret_information.py +0 -0
  209. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_by_id.py +0 -0
  210. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_delete.py +0 -0
  211. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list.py +0 -0
  212. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list_auth_fail.py +0 -0
  213. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_list_auth_fail_retry.py +0 -0
  214. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_merge.py +0 -0
  215. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_update.py +0 -0
  216. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/sync/test_fhir_client_patient_update_patch.py +0 -0
  217. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests/test_get_nested_property.py +0 -0
  218. {helix_fhir_client_sdk-4.2.2/tests/sync/test_fhir_client_bundle/separated → helix_fhir_client_sdk-4.2.3/tests_integration}/__init__.py +0 -0
  219. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth.py +0 -0
  220. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth_aiohttp.py +0 -0
  221. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_aetna_server_auth_httpx.py +0 -0
  222. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_dev_server_auth.py +0 -0
  223. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_dev_server_no_auth.py +0 -0
  224. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_emr_server_auth.py +0 -0
  225. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_firely_fhir.py +0 -0
  226. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_merge_vs_smart_merge_behavior.py +0 -0
  227. {helix_fhir_client_sdk-4.2.2 → helix_fhir_client_sdk-4.2.3}/tests_integration/test_staging_server_graph.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: helix.fhir.client.sdk
3
- Version: 4.2.2
3
+ Version: 4.2.3
4
4
  Summary: helix.fhir.client.sdk
5
5
  Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
6
6
  Author: Imran Qureshi
@@ -19,10 +19,7 @@ Requires-Dist: chardet
19
19
  Requires-Dist: aiohttp
20
20
  Requires-Dist: async-timeout>=4.0.3
21
21
  Requires-Dist: python-dateutil
22
- Requires-Dist: compressedfhir>=1.0.13
23
- Requires-Dist: certifi>=2025.1.31
24
- Requires-Dist: opentelemetry-api>=1.39
25
- Requires-Dist: multidict>=6
22
+ Requires-Dist: compressedfhir>=1.0.3
26
23
  Dynamic: author
27
24
  Dynamic: author-email
28
25
  Dynamic: classifier
@@ -0,0 +1 @@
1
+ 4.2.3
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: helix.fhir.client.sdk
3
- Version: 4.2.2
3
+ Version: 4.2.3
4
4
  Summary: helix.fhir.client.sdk
5
5
  Home-page: https://github.com/icanbwell/helix.fhir.client.sdk
6
6
  Author: Imran Qureshi
@@ -19,10 +19,7 @@ Requires-Dist: chardet
19
19
  Requires-Dist: aiohttp
20
20
  Requires-Dist: async-timeout>=4.0.3
21
21
  Requires-Dist: python-dateutil
22
- Requires-Dist: compressedfhir>=1.0.13
23
- Requires-Dist: certifi>=2025.1.31
24
- Requires-Dist: opentelemetry-api>=1.39
25
- Requires-Dist: multidict>=6
22
+ Requires-Dist: compressedfhir>=1.0.3
26
23
  Dynamic: author
27
24
  Dynamic: author-email
28
25
  Dynamic: classifier
@@ -51,9 +51,6 @@ helix_fhir_client_sdk/graph/test/__init__.py
51
51
  helix_fhir_client_sdk/graph/test/test_graph_mixin.py
52
52
  helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin.py
53
53
  helix_fhir_client_sdk/graph/test/test_simulate_graph_processor_mixin_caching.py
54
- helix_fhir_client_sdk/open_telemetry/__init__.py
55
- helix_fhir_client_sdk/open_telemetry/attribute_names.py
56
- helix_fhir_client_sdk/open_telemetry/span_names.py
57
54
  helix_fhir_client_sdk/queue/__init__.py
58
55
  helix_fhir_client_sdk/queue/request_queue_mixin.py
59
56
  helix_fhir_client_sdk/responses/__init__.py
@@ -0,0 +1,8 @@
1
+ furl
2
+ requests
3
+ urllib3
4
+ chardet
5
+ aiohttp
6
+ async-timeout>=4.0.3
7
+ python-dateutil
8
+ compressedfhir>=1.0.3
@@ -8,13 +8,11 @@ from threading import Lock
8
8
  from typing import TYPE_CHECKING, Any, cast
9
9
 
10
10
  from furl import furl
11
- from opentelemetry import trace
12
11
 
13
12
  from helix_fhir_client_sdk.function_types import (
14
13
  RefreshTokenFunction,
15
14
  RefreshTokenResult,
16
15
  )
17
- from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
18
16
  from helix_fhir_client_sdk.responses.fhir_client_protocol import FhirClientProtocol
19
17
  from helix_fhir_client_sdk.structures.get_access_token_result import (
20
18
  GetAccessTokenResult,
@@ -33,9 +31,6 @@ if TYPE_CHECKING:
33
31
  from helix_fhir_client_sdk.fhir_client import FhirClient
34
32
 
35
33
 
36
- TRACER = trace.get_tracer(__name__)
37
-
38
-
39
34
  class FhirAuthMixin(FhirClientProtocol):
40
35
  _time_to_live_in_secs_for_cache: int = 10 * 60
41
36
 
@@ -124,15 +119,15 @@ class FhirAuthMixin(FhirClientProtocol):
124
119
  access_token=self._access_token,
125
120
  expiry_date=self._access_token_expiry_date,
126
121
  )
127
- with TRACER.start_as_current_span(FhirClientSdkOpenTelemetrySpanNames.GET_ACCESS_TOKEN):
128
- refresh_token_result: RefreshTokenResult = await self._refresh_token_function(
129
- url=None, status_code=0, current_token=None, expiry_date=None, retry_count=0
130
- )
131
- assert isinstance(refresh_token_result, RefreshTokenResult)
132
122
 
133
- self.set_access_token(refresh_token_result.access_token)
134
- self.set_access_token_expiry_date(refresh_token_result.expiry_date)
135
- return GetAccessTokenResult(access_token=self._access_token, expiry_date=self._access_token_expiry_date)
123
+ refresh_token_result: RefreshTokenResult = await self._refresh_token_function(
124
+ url=None, status_code=0, current_token=None, expiry_date=None, retry_count=0
125
+ )
126
+ assert isinstance(refresh_token_result, RefreshTokenResult)
127
+
128
+ self.set_access_token(refresh_token_result.access_token)
129
+ self.set_access_token_expiry_date(refresh_token_result.expiry_date)
130
+ return GetAccessTokenResult(access_token=self._access_token, expiry_date=self._access_token_expiry_date)
136
131
 
137
132
  def authenticate_async_wrapper(self) -> RefreshTokenFunction:
138
133
  """
@@ -26,8 +26,6 @@ from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode im
26
26
  CompressedDictStorageMode,
27
27
  )
28
28
  from furl import furl
29
- from opentelemetry import trace
30
- from opentelemetry.trace import Status, StatusCode
31
29
  from requests.adapters import BaseAdapter
32
30
 
33
31
  from helix_fhir_client_sdk.dictionary_writer import convert_dict_to_str
@@ -48,7 +46,6 @@ from helix_fhir_client_sdk.graph.fhir_graph_mixin import FhirGraphMixin
48
46
  from helix_fhir_client_sdk.graph.simulated_graph_processor_mixin import (
49
47
  SimulatedGraphProcessorMixin,
50
48
  )
51
- from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
52
49
  from helix_fhir_client_sdk.queue.request_queue_mixin import RequestQueueMixin
53
50
  from helix_fhir_client_sdk.responses.fhir_client_protocol import FhirClientProtocol
54
51
  from helix_fhir_client_sdk.responses.fhir_get_response import FhirGetResponse
@@ -58,8 +55,6 @@ from helix_fhir_client_sdk.structures.get_access_token_result import (
58
55
  from helix_fhir_client_sdk.utilities.async_runner import AsyncRunner
59
56
  from helix_fhir_client_sdk.utilities.fhir_client_logger import FhirClientLogger
60
57
 
61
- TRACER = trace.get_tracer(__name__)
62
-
63
58
 
64
59
  class FhirClient(
65
60
  SimulatedGraphProcessorMixin,
@@ -611,34 +606,33 @@ class FhirClient(
611
606
 
612
607
  :return: response
613
608
  """
614
- with TRACER.start_as_current_span(FhirClientSdkOpenTelemetrySpanNames.GET):
615
- instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
616
- if self._logger:
617
- # self._logger.info(f"LOGLEVEL: {self._log_level}")
618
- self._logger.debug(f"parameters: {instance_variables_text}")
619
- else:
620
- self._internal_logger.debug(f"LOGLEVEL (InternalLogger): {self._log_level}")
621
- self._internal_logger.debug(f"parameters: {instance_variables_text}")
622
- ids: list[str] | None = None
623
- if self._id:
624
- ids = self._id if isinstance(self._id, list) else [self._id]
625
- # actually make the request
626
- full_response: FhirGetResponse | None = None
627
- async for response in self._get_with_session_async(
628
- ids=ids,
629
- fn_handle_streaming_chunk=data_chunk_handler,
630
- page_number=None,
631
- id_above=None,
632
- additional_parameters=None,
633
- resource_type=None,
634
- ):
635
- if response:
636
- if full_response:
637
- full_response = full_response.append(response)
638
- else:
639
- full_response = response
640
- assert full_response
641
- return full_response
609
+ instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
610
+ if self._logger:
611
+ # self._logger.info(f"LOGLEVEL: {self._log_level}")
612
+ self._logger.debug(f"parameters: {instance_variables_text}")
613
+ else:
614
+ self._internal_logger.debug(f"LOGLEVEL (InternalLogger): {self._log_level}")
615
+ self._internal_logger.debug(f"parameters: {instance_variables_text}")
616
+ ids: list[str] | None = None
617
+ if self._id:
618
+ ids = self._id if isinstance(self._id, list) else [self._id]
619
+ # actually make the request
620
+ full_response: FhirGetResponse | None = None
621
+ async for response in self._get_with_session_async(
622
+ ids=ids,
623
+ fn_handle_streaming_chunk=data_chunk_handler,
624
+ page_number=None,
625
+ id_above=None,
626
+ additional_parameters=None,
627
+ resource_type=None,
628
+ ):
629
+ if response:
630
+ if full_response:
631
+ full_response = full_response.append(response)
632
+ else:
633
+ full_response = response
634
+ assert full_response
635
+ return full_response
642
636
 
643
637
  async def get_raw_resources_async(
644
638
  self,
@@ -679,37 +673,27 @@ class FhirClient(
679
673
 
680
674
  :return: async generator of responses
681
675
  """
682
- span = TRACER.start_span(FhirClientSdkOpenTelemetrySpanNames.GET_STREAMING)
683
- try:
684
- instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
685
- if self._logger:
686
- # self._logger.info(f"LOGLEVEL: {self._log_level}")
687
- self._logger.info(f"parameters: {instance_variables_text}")
688
- else:
689
- self._internal_logger.info(f"LOGLEVEL (InternalLogger): {self._log_level}")
690
- self._internal_logger.info(f"parameters: {instance_variables_text}")
691
- ids: list[str] | None = None
692
- if self._id:
693
- ids = self._id if isinstance(self._id, list) else [self._id]
694
- # actually make the request
695
- response: FhirGetResponse | None
696
- async for response in self._get_with_session_async(
697
- ids=ids,
698
- fn_handle_streaming_chunk=data_chunk_handler,
699
- page_number=None,
700
- id_above=None,
701
- additional_parameters=None,
702
- resource_type=None,
703
- ):
704
- yield response
705
- except BaseException as exc: # propagate cancellation/errors but keep span informative
706
- # Record exception in span
707
- span.record_exception(exc)
708
- span.set_status(Status(StatusCode.ERROR, str(exc)))
709
- raise
710
- finally:
711
- # Ensure span is ended after generator is exhausted or error occurs
712
- span.end()
676
+ instance_variables_text = convert_dict_to_str(FhirClientLogger.get_variables_to_log(vars(self)))
677
+ if self._logger:
678
+ # self._logger.info(f"LOGLEVEL: {self._log_level}")
679
+ self._logger.info(f"parameters: {instance_variables_text}")
680
+ else:
681
+ self._internal_logger.info(f"LOGLEVEL (InternalLogger): {self._log_level}")
682
+ self._internal_logger.info(f"parameters: {instance_variables_text}")
683
+ ids: list[str] | None = None
684
+ if self._id:
685
+ ids = self._id if isinstance(self._id, list) else [self._id]
686
+ # actually make the request
687
+ response: FhirGetResponse | None
688
+ async for response in self._get_with_session_async(
689
+ ids=ids,
690
+ fn_handle_streaming_chunk=data_chunk_handler,
691
+ page_number=None,
692
+ id_above=None,
693
+ additional_parameters=None,
694
+ resource_type=None,
695
+ ):
696
+ yield response
713
697
 
714
698
  def get(self) -> FhirGetResponse:
715
699
  """
@@ -62,7 +62,7 @@ class FhirDeleteMixin(FhirClientProtocol):
62
62
  ) as client:
63
63
  response: RetryableAioHttpResponse = await client.delete(url=full_uri.tostr(), headers=headers)
64
64
  request_id = response.response_headers.get("X-Request-ID", None)
65
- self._internal_logger.debug(f"X-Request-ID={request_id}")
65
+ self._internal_logger.info(f"X-Request-ID={request_id}")
66
66
  if response.status == 200:
67
67
  if self._logger:
68
68
  self._logger.info(f"Successfully deleted: {full_uri}")
@@ -131,7 +131,7 @@ class FhirDeleteMixin(FhirClientProtocol):
131
131
  ) as client:
132
132
  response: RetryableAioHttpResponse = await client.delete(url=full_url, headers=headers)
133
133
  request_id = response.response_headers.get("X-Request-ID", None)
134
- self._internal_logger.debug(f"X-Request-ID={request_id}")
134
+ self._internal_logger.info(f"X-Request-ID={request_id}")
135
135
  if response.status == 200:
136
136
  if self._logger:
137
137
  self._logger.info(f"Successfully deleted: {full_uri}")
@@ -193,7 +193,7 @@ class FhirMergeMixin(FhirClientProtocol):
193
193
  )
194
194
  response_status = response.status
195
195
  request_id = response.response_headers.get("X-Request-ID", None)
196
- self._internal_logger.debug(f"X-Request-ID={request_id}")
196
+ self._internal_logger.info(f"X-Request-ID={request_id}")
197
197
  if response and response.status == 200:
198
198
  response_text = await response.get_text_async()
199
199
  if response_text:
@@ -136,7 +136,7 @@ class FhirMergeResourcesMixin(FhirClientProtocol):
136
136
  )
137
137
  response_status = response.status
138
138
  request_id = response.response_headers.get("X-Request-ID", None)
139
- self._internal_logger.debug(f"X-Request-ID={request_id}")
139
+ self._internal_logger.info(f"X-Request-ID={request_id}")
140
140
  if response and response.status == 200:
141
141
  response_text = await response.get_text_async()
142
142
  if response_text:
@@ -355,7 +355,7 @@ class FhirMergeResourcesMixin(FhirClientProtocol):
355
355
  )
356
356
  response_status = response.status
357
357
  request_id = response.response_headers.get("X-Request-ID", None)
358
- self._internal_logger.debug(f"X-Request-ID={request_id}")
358
+ self._internal_logger.info(f"X-Request-ID={request_id}")
359
359
  if response and response.status == 200:
360
360
  response_text = await response.get_text_async()
361
361
  if response_text:
@@ -82,7 +82,7 @@ class FhirPatchMixin(FhirClientProtocol):
82
82
  response_status = response.status
83
83
  response_text = await response.get_text_async()
84
84
  request_id = response.response_headers.get("X-Request-ID", None)
85
- self._internal_logger.debug(f"X-Request-ID={request_id}")
85
+ self._internal_logger.info(f"X-Request-ID={request_id}")
86
86
 
87
87
  if response_status == 200:
88
88
  if self._logger:
@@ -112,7 +112,7 @@ class FhirUpdateMixin(FhirClientProtocol):
112
112
  ) as client:
113
113
  response = await client.put(url=full_uri.url, data=json_data, headers=headers)
114
114
  request_id = response.response_headers.get("X-Request-ID", None)
115
- self._internal_logger.debug(f"X-Request-ID={request_id}")
115
+ self._internal_logger.info(f"X-Request-ID={request_id}")
116
116
  if response.status == 200:
117
117
  if self._logger:
118
118
  self._logger.info(f"Successfully updated: {full_uri}")
@@ -250,6 +250,7 @@ class SimulatedGraphProcessorMixin(ABC, FhirClientProtocol):
250
250
 
251
251
  # Combine and process responses
252
252
  parent_response = cast(FhirGetBundleResponse, parent_response.extend(child_responses))
253
+ parent_response = parent_response.remove_duplicates()
253
254
 
254
255
  # Optional resource sorting
255
256
  if sort_resources:
@@ -74,15 +74,6 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
74
74
  request_id: str | None = None
75
75
  total_results = 0 # total number of resources returned so far
76
76
 
77
- limit_count: int | None = self._limit
78
-
79
- # if _count parameter is present in additional_parameters then set limit_count to it
80
- if additional_parameters:
81
- for param in additional_parameters:
82
- if self._limit is None:
83
- if param.startswith("_count="):
84
- limit_count = int(param.split("=")[1])
85
-
86
77
  # create url and query to request from FHIR server
87
78
  resources_json: str = ""
88
79
  full_url = await self.build_url(
@@ -177,7 +168,7 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
177
168
  )
178
169
 
179
170
  request_id = response.response_headers.get("X-Request-ID", None)
180
- self._internal_logger.debug(f"X-Request-ID={request_id}")
171
+ self._internal_logger.info(f"X-Request-ID={request_id}")
181
172
 
182
173
  async for r in FhirResponseProcessor.handle_response(
183
174
  internal_logger=self._internal_logger,
@@ -207,9 +198,9 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
207
198
  total_results += resource_count
208
199
 
209
200
  # Stop if limit reached
210
- if limit_count and total_results >= limit_count:
201
+ if self._limit and total_results >= self._limit:
211
202
  self._internal_logger.info(
212
- f"Reached limit={limit_count} after collecting {total_results} "
203
+ f"Reached limit={self._limit} after collecting {total_results} "
213
204
  f"resources, stopping pagination"
214
205
  )
215
206
  return
@@ -348,7 +339,7 @@ class RequestQueueMixin(ABC, FhirClientProtocol):
348
339
  )
349
340
 
350
341
  request_id = response.response_headers.get("X-Request-ID", None)
351
- self._internal_logger.debug(f"X-Request-ID={request_id}")
342
+ self._internal_logger.info(f"X-Request-ID={request_id}")
352
343
 
353
344
  if response.status == 200:
354
345
  response_next_url = None
@@ -124,7 +124,7 @@ class FhirClientProtocol(Protocol):
124
124
 
125
125
  _log_all_response_urls: bool
126
126
 
127
- _storage_mode: CompressedDictStorageMode
127
+ _storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw()
128
128
  """ storage mode to store the responses """
129
129
 
130
130
  _create_operation_outcome_for_error: bool | None
@@ -119,7 +119,7 @@ class FhirGetResponse:
119
119
  """ Count of cache hits """
120
120
  self.results_by_url: list[RetryableAioHttpUrlResult] = results_by_url
121
121
  """ Count of errors in the response by status """
122
- self.storage_mode: CompressedDictStorageMode = storage_mode
122
+ self.storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw()
123
123
  """ Storage mode for the response """
124
124
 
125
125
  @abstractmethod
@@ -11,13 +11,10 @@ from aiohttp.streams import AsyncStreamIterator
11
11
  from compressedfhir.utilities.compressed_dict.v1.compressed_dict_storage_mode import (
12
12
  CompressedDictStorageMode,
13
13
  )
14
- from opentelemetry import trace
15
- from opentelemetry.trace import Status, StatusCode
16
14
 
17
15
  from helix_fhir_client_sdk.function_types import (
18
16
  HandleStreamingChunkFunction,
19
17
  )
20
- from helix_fhir_client_sdk.open_telemetry.span_names import FhirClientSdkOpenTelemetrySpanNames
21
18
  from helix_fhir_client_sdk.responses.bundle_expander import (
22
19
  BundleExpander,
23
20
  BundleExpanderResult,
@@ -40,8 +37,6 @@ from helix_fhir_client_sdk.utilities.retryable_aiohttp_response import (
40
37
  RetryableAioHttpResponse,
41
38
  )
42
39
 
43
- TRACER = trace.get_tracer(__name__)
44
-
45
40
 
46
41
  class FhirResponseProcessor:
47
42
  """
@@ -98,74 +93,60 @@ class FhirResponseProcessor:
98
93
 
99
94
  :return: An async generator of FhirGetResponse objects.
100
95
  """
101
- span = TRACER.start_span(FhirClientSdkOpenTelemetrySpanNames.HANDLE_RESPONSE)
102
- try:
103
- # if request is ok (200) then return the data
104
- if response.ok:
105
- async for r in FhirResponseProcessor._handle_response_200(
106
- full_url=full_url,
107
- request_id=request_id,
108
- response=response,
109
- response_headers=response_headers,
110
- fn_handle_streaming_chunk=fn_handle_streaming_chunk,
111
- access_token=access_token,
112
- resources_json=resources_json,
113
- resource=resource,
114
- id_=id_,
115
- logger=logger,
116
- use_data_streaming=use_data_streaming,
117
- chunk_size=chunk_size,
118
- extra_context_to_return=extra_context_to_return,
119
- expand_fhir_bundle=expand_fhir_bundle,
120
- url=url,
121
- separate_bundle_resources=separate_bundle_resources,
122
- storage_mode=storage_mode,
123
- create_operation_outcome_for_error=create_operation_outcome_for_error,
124
- ):
125
- yield r
126
- elif response.status == 404: # not found
127
- async for r in FhirResponseProcessor._handle_response_404(
128
- full_url=full_url,
129
- request_id=request_id,
130
- response=response,
131
- response_headers=response_headers,
132
- extra_context_to_return=extra_context_to_return,
133
- resource=resource,
134
- logger=logger,
135
- id_=id_,
136
- access_token=access_token,
137
- storage_mode=storage_mode,
138
- create_operation_outcome_for_error=create_operation_outcome_for_error,
139
- ):
140
- yield r
141
- else: # unknown response
142
- async for r in FhirResponseProcessor._handle_response_unknown(
143
- full_url=full_url,
144
- request_id=request_id,
145
- response=response,
146
- response_headers=response_headers,
147
- resource=resource,
148
- logger=logger,
149
- access_token=access_token,
150
- extra_context_to_return=extra_context_to_return,
151
- id_=id_,
152
- internal_logger=internal_logger,
153
- storage_mode=storage_mode,
154
- create_operation_outcome_for_error=create_operation_outcome_for_error,
155
- ):
156
- yield r
157
- # Mark span as successful
158
- span.set_status(Status(StatusCode.OK))
159
-
160
- except Exception as e:
161
- # Record exception in span
162
- span.record_exception(e)
163
- span.set_status(Status(StatusCode.ERROR, str(e)))
164
- raise
165
-
166
- finally:
167
- # Ensure span is ended after generator is exhausted or error occurs
168
- span.end()
96
+ # if request is ok (200) then return the data
97
+ if response.ok:
98
+ async for r in FhirResponseProcessor._handle_response_200(
99
+ full_url=full_url,
100
+ request_id=request_id,
101
+ response=response,
102
+ response_headers=response_headers,
103
+ fn_handle_streaming_chunk=fn_handle_streaming_chunk,
104
+ access_token=access_token,
105
+ resources_json=resources_json,
106
+ resource=resource,
107
+ id_=id_,
108
+ logger=logger,
109
+ use_data_streaming=use_data_streaming,
110
+ chunk_size=chunk_size,
111
+ extra_context_to_return=extra_context_to_return,
112
+ expand_fhir_bundle=expand_fhir_bundle,
113
+ url=url,
114
+ separate_bundle_resources=separate_bundle_resources,
115
+ storage_mode=storage_mode,
116
+ create_operation_outcome_for_error=create_operation_outcome_for_error,
117
+ ):
118
+ yield r
119
+ elif response.status == 404: # not found
120
+ async for r in FhirResponseProcessor._handle_response_404(
121
+ full_url=full_url,
122
+ request_id=request_id,
123
+ response=response,
124
+ response_headers=response_headers,
125
+ extra_context_to_return=extra_context_to_return,
126
+ resource=resource,
127
+ logger=logger,
128
+ id_=id_,
129
+ access_token=access_token,
130
+ storage_mode=storage_mode,
131
+ create_operation_outcome_for_error=create_operation_outcome_for_error,
132
+ ):
133
+ yield r
134
+ else: # unknown response
135
+ async for r in FhirResponseProcessor._handle_response_unknown(
136
+ full_url=full_url,
137
+ request_id=request_id,
138
+ response=response,
139
+ response_headers=response_headers,
140
+ resource=resource,
141
+ logger=logger,
142
+ access_token=access_token,
143
+ extra_context_to_return=extra_context_to_return,
144
+ id_=id_,
145
+ internal_logger=internal_logger,
146
+ storage_mode=storage_mode,
147
+ create_operation_outcome_for_error=create_operation_outcome_for_error,
148
+ ):
149
+ yield r
169
150
 
170
151
  @staticmethod
171
152
  async def _handle_response_unknown(
@@ -59,7 +59,7 @@ class FhirGetBundleResponse(FhirGetResponse):
59
59
  chunk_number: int | None = None,
60
60
  cache_hits: int | None = None,
61
61
  results_by_url: list[RetryableAioHttpUrlResult],
62
- storage_mode: CompressedDictStorageMode,
62
+ storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
63
63
  ) -> None:
64
64
  super().__init__(
65
65
  request_id=request_id,
@@ -67,6 +67,7 @@ class FhirGetErrorResponse(FhirGetResponse):
67
67
  storage_mode: CompressedDictStorageMode,
68
68
  create_operation_outcome_for_error: bool | None,
69
69
  ) -> None:
70
+ storage_mode or CompressedDictStorageMode.raw()
70
71
  super().__init__(
71
72
  request_id=request_id,
72
73
  url=url,
@@ -57,7 +57,7 @@ class FhirGetListByResourceTypeResponse(FhirGetResponse):
57
57
  chunk_number: int | None = None,
58
58
  cache_hits: int | None = None,
59
59
  results_by_url: list[RetryableAioHttpUrlResult],
60
- storage_mode: CompressedDictStorageMode,
60
+ storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
61
61
  ) -> None:
62
62
  super().__init__(
63
63
  request_id=request_id,
@@ -59,7 +59,7 @@ class FhirGetListResponse(FhirGetResponse):
59
59
  chunk_number: int | None = None,
60
60
  cache_hits: int | None = None,
61
61
  results_by_url: list[RetryableAioHttpUrlResult],
62
- storage_mode: CompressedDictStorageMode,
62
+ storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
63
63
  ) -> None:
64
64
  super().__init__(
65
65
  request_id=request_id,
@@ -50,6 +50,7 @@ class FhirGetResponseFactory:
50
50
  storage_mode: CompressedDictStorageMode,
51
51
  create_operation_outcome_for_error: bool | None,
52
52
  ) -> FhirGetResponse:
53
+ storage_mode = storage_mode or CompressedDictStorageMode.raw()
53
54
  try:
54
55
  if not error and response_text:
55
56
  # test if responses is valid json
@@ -59,7 +59,7 @@ class FhirGetSingleResponse(FhirGetResponse):
59
59
  chunk_number: int | None = None,
60
60
  cache_hits: int | None = None,
61
61
  results_by_url: list[RetryableAioHttpUrlResult],
62
- storage_mode: CompressedDictStorageMode,
62
+ storage_mode: CompressedDictStorageMode = CompressedDictStorageMode.raw(),
63
63
  ) -> None:
64
64
  super().__init__(
65
65
  request_id=request_id,