medicafe 0.250812.2__tar.gz → 0.250812.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 (76) hide show
  1. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_837p_encoder.py +11 -2
  2. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_837p_encoder_library.py +12 -2
  3. {medicafe-0.250812.2 → medicafe-0.250812.3}/PKG-INFO +1 -1
  4. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/PKG-INFO +1 -1
  5. {medicafe-0.250812.2 → medicafe-0.250812.3}/setup.py +1 -1
  6. {medicafe-0.250812.2 → medicafe-0.250812.3}/LICENSE +0 -0
  7. {medicafe-0.250812.2 → medicafe-0.250812.3}/MANIFEST.in +0 -0
  8. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot.bat +0 -0
  9. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot.py +0 -0
  10. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Charges.py +0 -0
  11. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  12. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
  13. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Post.py +0 -0
  14. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Preprocessor.py +0 -0
  15. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  16. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_UI.py +0 -0
  17. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_dataformat_library.py +0 -0
  18. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_docx_decoder.py +0 -0
  19. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/MediBot_smart_import.py +0 -0
  20. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/__init__.py +0 -0
  21. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/get_medicafe_version.py +0 -0
  22. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/update_json.py +0 -0
  23. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediBot/update_medicafe.py +0 -0
  24. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/MediLink_ConfigLoader.py +0 -0
  25. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/__init__.py +0 -0
  26. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/__main__.py +0 -0
  27. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/api_core.py +0 -0
  28. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/api_core_backup.py +0 -0
  29. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/api_factory.py +0 -0
  30. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/api_utils.py +0 -0
  31. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/core_utils.py +0 -0
  32. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/graphql_utils.py +0 -0
  33. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/logging_config.py +0 -0
  34. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/logging_demo.py +0 -0
  35. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/migration_helpers.py +0 -0
  36. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediCafe/smart_import.py +0 -0
  37. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_837p_cob_library.py +0 -0
  38. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_837p_utilities.py +0 -0
  39. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_API_Generator.py +0 -0
  40. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Azure.py +0 -0
  41. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_ClaimStatus.py +0 -0
  42. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_DataMgmt.py +0 -0
  43. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Decoder.py +0 -0
  44. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Deductible.py +0 -0
  45. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Deductible_Validator.py +0 -0
  46. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Display_Utils.py +0 -0
  47. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Down.py +0 -0
  48. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Gmail.py +0 -0
  49. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Mailer.py +0 -0
  50. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Parser.py +0 -0
  51. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_PatientProcessor.py +0 -0
  52. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Scan.py +0 -0
  53. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Scheduler.py +0 -0
  54. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_UI.py +0 -0
  55. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_Up.py +0 -0
  56. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_insurance_utils.py +0 -0
  57. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_main.py +0 -0
  58. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/MediLink_smart_import.py +0 -0
  59. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/Soumit_api.py +0 -0
  60. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/__init__.py +0 -0
  61. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/gmail_http_utils.py +0 -0
  62. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/gmail_oauth_utils.py +0 -0
  63. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/insurance_type_integration_test.py +0 -0
  64. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/openssl.cnf +0 -0
  65. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/test.py +0 -0
  66. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/test_cob_library.py +0 -0
  67. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/test_timing.py +0 -0
  68. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/test_validation.py +0 -0
  69. {medicafe-0.250812.2 → medicafe-0.250812.3}/MediLink/webapp.html +0 -0
  70. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/SOURCES.txt +0 -0
  71. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/dependency_links.txt +0 -0
  72. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/entry_points.txt +0 -0
  73. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/not-zip-safe +0 -0
  74. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/requires.txt +0 -0
  75. {medicafe-0.250812.2 → medicafe-0.250812.3}/medicafe.egg-info/top_level.txt +0 -0
  76. {medicafe-0.250812.2 → medicafe-0.250812.3}/setup.cfg +0 -0
@@ -255,9 +255,18 @@ def read_and_validate_claims(file_path, config):
255
255
  # Iterate over data in the file
256
256
  for personal_info, insurance_info, service_info, service_info_2, service_info_3 in read_fixed_width_data(file_path):
257
257
  # Process reserved 5-line Medisoft record (currently using 3 lines, 2 reserved)
258
- parsed_data = parse_fixed_width_data(personal_info, insurance_info, service_info, service_info_2, service_info_3, extract_medilink_config(config))
258
+ medi_cfg = extract_medilink_config(config)
259
+ parsed_data = parse_fixed_width_data(personal_info, insurance_info, service_info, service_info_2, service_info_3, medi_cfg)
259
260
  # Validate the parsed data
260
- is_valid, errors = validate_claim_data(parsed_data, config)
261
+ try:
262
+ is_valid, errors = validate_claim_data(parsed_data, config)
263
+ except Exception as e:
264
+ import traceback as _tb
265
+ try:
266
+ MediLink_ConfigLoader.log("validate_claim_data crashed: {}\n{}".format(e, _tb.format_exc()), config, level="ERROR")
267
+ except Exception:
268
+ pass
269
+ raise
261
270
  if is_valid:
262
271
  valid_claims.append(parsed_data) # Add valid data to the list
263
272
  else:
@@ -1163,6 +1163,13 @@ def validate_claim_data_for_837p(parsed_data, config, crosswalk):
1163
1163
  Returns:
1164
1164
  - Dictionary with validated claim data, or raises ValueError if validation fails
1165
1165
  """
1166
+ # Normalize parsed_data to a dict to avoid NoneType errors downstream
1167
+ if not isinstance(parsed_data, dict):
1168
+ try:
1169
+ MediLink_ConfigLoader.log("validate_claim_data_for_837p received non-dict parsed_data of type {}".format(type(parsed_data)), config, level="ERROR")
1170
+ except Exception:
1171
+ pass
1172
+ parsed_data = {}
1166
1173
  validated_data = parsed_data.copy()
1167
1174
  chart_number = parsed_data.get('CHART', 'UNKNOWN')
1168
1175
 
@@ -1257,8 +1264,11 @@ def validate_claim_data_for_837p(parsed_data, config, crosswalk):
1257
1264
  # - MediCafe/MediLink_ConfigLoader.py (configuration management)
1258
1265
  # - Current file (encoder_library.py) for existing patterns
1259
1266
  #
1260
- # TESTING REQUIREMENTS:
1267
+ # TESTING REQUIREMENTS:
1261
1268
  # - Verify crosswalk changes persist across application restarts
1262
1269
  # - Test concurrent access scenarios
1263
1270
  # - Verify backup/restore functionality
1264
- # - Test with invalid JSON syntax in crosswalk file
1271
+ # - Test with invalid JSON syntax in crosswalk file
1272
+
1273
+ # Always return the validated (or minimally normalized) data structure
1274
+ return validated_data
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250812.2
3
+ Version: 0.250812.3
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250812.2
3
+ Version: 0.250812.3
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -54,7 +54,7 @@ if long_description_text is None:
54
54
 
55
55
  setup(
56
56
  name='medicafe',
57
- version="0.250812.2",
57
+ version="0.250812.3",
58
58
  description='MediCafe',
59
59
  long_description=long_description_text,
60
60
  long_description_content_type='text/markdown',
File without changes
File without changes
File without changes