compressedfhir 1.0.5__tar.gz → 1.0.7__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.

Potentially problematic release.


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

Files changed (69) hide show
  1. {compressedfhir-1.0.5/compressedfhir.egg-info → compressedfhir-1.0.7}/PKG-INFO +1 -1
  2. compressedfhir-1.0.7/VERSION +1 -0
  3. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_resource.py +8 -0
  4. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/compressed_dict.py +5 -1
  5. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/test/test_type_preservation_serializer.py +9 -4
  6. {compressedfhir-1.0.5 → compressedfhir-1.0.7/compressedfhir.egg-info}/PKG-INFO +1 -1
  7. compressedfhir-1.0.5/VERSION +0 -1
  8. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/LICENSE +0 -0
  9. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/MANIFEST.in +0 -0
  10. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/Makefile +0 -0
  11. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/README.md +0 -0
  12. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/__init__.py +0 -0
  13. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/__init__.py +0 -0
  14. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/base_resource_list.py +0 -0
  15. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle.py +0 -0
  16. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle_entry.py +0 -0
  17. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle_entry_list.py +0 -0
  18. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle_entry_request.py +0 -0
  19. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle_entry_response.py +0 -0
  20. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_bundle_entry_search.py +0 -0
  21. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_identifier.py +0 -0
  22. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_link.py +0 -0
  23. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_meta.py +0 -0
  24. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_resource_list.py +0 -0
  25. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/fhir_resource_map.py +0 -0
  26. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/__init__.py +0 -0
  27. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_bundle_entry.py +0 -0
  28. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_bundle_entry_list.py +0 -0
  29. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_bundle_entry_request.py +0 -0
  30. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_bundle_entry_response.py +0 -0
  31. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_fhir_bundle.py +0 -0
  32. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_fhir_resource.py +0 -0
  33. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_fhir_resource_list.py +0 -0
  34. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/fhir/test/test_fhir_resource_map.py +0 -0
  35. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/py.typed +0 -0
  36. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/__init__.py +0 -0
  37. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/__init__.py +0 -0
  38. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/__init__.py +0 -0
  39. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/compressed_dict_access_error.py +0 -0
  40. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/compressed_dict_storage_mode.py +0 -0
  41. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/test/__init__.py +0 -0
  42. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/compressed_dict/v1/test/test_compressed_dict.py +0 -0
  43. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/fhir_json_encoder.py +0 -0
  44. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_helpers.py +0 -0
  45. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/__init__.py +0 -0
  46. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/test/__init__.py +0 -0
  47. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/test/test_type_preservation_decoder.py +0 -0
  48. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/test/test_type_preservation_encoder.py +0 -0
  49. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/type_preservation_decoder.py +0 -0
  50. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/type_preservation_encoder.py +0 -0
  51. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/json_serializers/type_preservation_serializer.py +0 -0
  52. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/ordered_dict_to_dict_converter/__init__.py +0 -0
  53. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/ordered_dict_to_dict_converter/ordered_dict_to_dict_converter.py +0 -0
  54. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/string_compressor/__init__.py +0 -0
  55. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/string_compressor/v1/__init__.py +0 -0
  56. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/string_compressor/v1/string_compressor.py +0 -0
  57. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/string_compressor/v1/test/__init__.py +0 -0
  58. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/string_compressor/v1/test/test_string_compressor.py +0 -0
  59. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/test/__init__.py +0 -0
  60. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/test/test_fhir_json_encoder.py +0 -0
  61. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir/utilities/test/test_json_helpers.py +0 -0
  62. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir.egg-info/SOURCES.txt +0 -0
  63. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir.egg-info/dependency_links.txt +0 -0
  64. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir.egg-info/not-zip-safe +0 -0
  65. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir.egg-info/requires.txt +0 -0
  66. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/compressedfhir.egg-info/top_level.txt +0 -0
  67. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/setup.cfg +0 -0
  68. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/setup.py +0 -0
  69. {compressedfhir-1.0.5 → compressedfhir-1.0.7}/tests/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressedfhir
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: Stores FHIR JSON resources in compressed form in memory
5
5
  Home-page: https://github.com/icanbwell/compressed-fhir
6
6
  Author: Imran Qureshi
@@ -0,0 +1 @@
1
+ 1.0.7
@@ -156,3 +156,11 @@ class FhirResource(CompressedDict[str, Any]):
156
156
  raw_dict
157
157
  )
158
158
  return json.dumps(obj=raw_dict, cls=FhirJSONEncoder)
159
+
160
+ def to_fhir_dict(self) -> Dict[str, Any]:
161
+ """
162
+ Convert the resource to a FHIR-compliant dictionary.
163
+
164
+ :return: A dictionary representation of the resource.
165
+ """
166
+ return cast(Dict[str, Any], json.loads(self.json()))
@@ -429,6 +429,7 @@ class CompressedDict[K, V](MutableMapping[K, V]):
429
429
  """
430
430
  Returns the raw dictionary. Deserializes if necessary.
431
431
  Note that this dictionary preserves the python types so it is not FHIR friendly.
432
+ For example, datetime will be represented as a datetime object instead of iso format string per FHIR.
432
433
  Use dict() if you want a FHIR friendly version.
433
434
 
434
435
  Returns:
@@ -437,12 +438,14 @@ class CompressedDict[K, V](MutableMapping[K, V]):
437
438
  if self._working_dict:
438
439
  return self._working_dict
439
440
  else:
440
- # if the working dict is not None, return it but don't store it in the self._working_dict to keep memory low
441
+ # if the working dict is None, create and return it but don't store it
442
+ # in the self._working_dict to keep memory low
441
443
  return self.create_working_dict()
442
444
 
443
445
  def dict(self) -> OrderedDict[K, V]:
444
446
  """
445
447
  Convert to a FHIR friendly dictionary where the python types like datetime are converted to string versions
448
+ For example, datetime will be represented as a iso format string per FHIR instead of a python datetime object.
446
449
 
447
450
  Returns:
448
451
  FHIR friendly dictionary
@@ -585,6 +588,7 @@ class CompressedDict[K, V](MutableMapping[K, V]):
585
588
  """
586
589
  # Create a new instance with the same storage mode
587
590
  new_instance = CompressedDict(
591
+ # we use raw_dict() instead of dict() so we can preserve python data types like datetime
588
592
  initial_dict=copy.deepcopy(self.raw_dict()),
589
593
  storage_mode=self._storage_mode,
590
594
  properties_to_cache=self._properties_to_cache,
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from collections import OrderedDict
2
3
  from datetime import datetime, timezone, date
3
4
  from decimal import Decimal
4
5
  from logging import Logger
@@ -68,6 +69,8 @@ def test_nested_dict() -> None:
68
69
  """
69
70
  logger: Logger = logging.getLogger(__name__)
70
71
  nested_dict = {
72
+ "resourceType": "Coverage",
73
+ "id": "3456789012345670304",
71
74
  "beneficiary": {"reference": "Patient/1234567890123456703", "type": "Patient"},
72
75
  "class": [
73
76
  {
@@ -94,7 +97,6 @@ def test_nested_dict() -> None:
94
97
  },
95
98
  }
96
99
  ],
97
- "id": "3456789012345670304",
98
100
  "identifier": [
99
101
  {
100
102
  "system": "https://sources.aetna.com/coverage/identifier/membershipid/59",
@@ -144,7 +146,6 @@ def test_nested_dict() -> None:
144
146
  }
145
147
  ]
146
148
  },
147
- "resourceType": "Coverage",
148
149
  "status": "active",
149
150
  "subscriber": {"reference": "Patient/1234567890123456703", "type": "Patient"},
150
151
  "subscriberId": "435679010300",
@@ -160,12 +161,16 @@ def test_nested_dict() -> None:
160
161
  }
161
162
 
162
163
  logger.info("-------- Serialized --------")
163
- serialized = TypePreservationSerializer.serialize(nested_dict)
164
+ serialized: str = TypePreservationSerializer.serialize(nested_dict)
164
165
  logger.info(serialized)
165
166
  logger.info("-------- Deserialized --------")
166
- deserialized = TypePreservationSerializer.deserialize(serialized)
167
+ deserialized: OrderedDict[str, Any] = TypePreservationSerializer.deserialize(
168
+ serialized
169
+ )
167
170
  logger.info(deserialized)
168
171
 
172
+ assert isinstance(deserialized, OrderedDict)
173
+
169
174
  assert isinstance(deserialized["period"]["start"], date)
170
175
  assert isinstance(deserialized["period"]["end"], date)
171
176
  assert nested_dict == deserialized
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: compressedfhir
3
- Version: 1.0.5
3
+ Version: 1.0.7
4
4
  Summary: Stores FHIR JSON resources in compressed form in memory
5
5
  Home-page: https://github.com/icanbwell/compressed-fhir
6
6
  Author: Imran Qureshi
@@ -1 +0,0 @@
1
- 1.0.5
File without changes
File without changes
File without changes
File without changes
File without changes