medicafe 0.250822.1__tar.gz → 0.250822.2__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 (87) hide show
  1. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/__init__.py +1 -1
  2. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/__init__.py +1 -1
  3. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Deductible.py +52 -2
  4. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/__init__.py +1 -1
  5. {medicafe-0.250822.1/medicafe.egg-info → medicafe-0.250822.2}/PKG-INFO +1 -1
  6. {medicafe-0.250822.1 → medicafe-0.250822.2/medicafe.egg-info}/PKG-INFO +1 -1
  7. {medicafe-0.250822.1 → medicafe-0.250822.2}/setup.py +1 -1
  8. {medicafe-0.250822.1 → medicafe-0.250822.2}/LICENSE +0 -0
  9. {medicafe-0.250822.1 → medicafe-0.250822.2}/MANIFEST.in +0 -0
  10. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot.bat +0 -0
  11. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot.py +0 -0
  12. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Charges.py +0 -0
  13. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  14. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
  15. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Notepad_Utils.py +0 -0
  16. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Post.py +0 -0
  17. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Preprocessor.py +0 -0
  18. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  19. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_UI.py +0 -0
  20. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_dataformat_library.py +0 -0
  21. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_debug.bat +0 -0
  22. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_docx_decoder.py +0 -0
  23. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/MediBot_smart_import.py +0 -0
  24. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/clear_cache.bat +0 -0
  25. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/crash_diagnostic.bat +0 -0
  26. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/f_drive_diagnostic.bat +0 -0
  27. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/full_debug_suite.bat +0 -0
  28. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/get_medicafe_version.py +0 -0
  29. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/process_csvs.bat +0 -0
  30. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/update_json.py +0 -0
  31. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediBot/update_medicafe.py +0 -0
  32. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/MediLink_ConfigLoader.py +0 -0
  33. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/__main__.py +0 -0
  34. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/api_core.py +0 -0
  35. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/api_core_backup.py +0 -0
  36. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/api_factory.py +0 -0
  37. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/api_utils.py +0 -0
  38. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/core_utils.py +0 -0
  39. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/graphql_utils.py +0 -0
  40. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/logging_config.py +0 -0
  41. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/logging_demo.py +0 -0
  42. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/migration_helpers.py +0 -0
  43. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/smart_import.py +0 -0
  44. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediCafe/submission_index.py +0 -0
  45. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/InsuranceTypeService.py +0 -0
  46. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_837p_cob_library.py +0 -0
  47. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_837p_encoder.py +0 -0
  48. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_837p_encoder_library.py +0 -0
  49. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_837p_utilities.py +0 -0
  50. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_API_Generator.py +0 -0
  51. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Azure.py +0 -0
  52. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Charges.py +0 -0
  53. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_ClaimStatus.py +0 -0
  54. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_DataMgmt.py +0 -0
  55. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Decoder.py +0 -0
  56. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Deductible_Validator.py +0 -0
  57. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Display_Utils.py +0 -0
  58. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Down.py +0 -0
  59. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Gmail.py +0 -0
  60. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Mailer.py +0 -0
  61. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Parser.py +0 -0
  62. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_PatientProcessor.py +0 -0
  63. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Scan.py +0 -0
  64. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Scheduler.py +0 -0
  65. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_UI.py +0 -0
  66. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_Up.py +0 -0
  67. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_insurance_utils.py +0 -0
  68. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_main.py +0 -0
  69. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/MediLink_smart_import.py +0 -0
  70. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/Soumit_api.py +0 -0
  71. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/gmail_http_utils.py +0 -0
  72. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/gmail_oauth_utils.py +0 -0
  73. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/insurance_type_integration_test.py +0 -0
  74. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/openssl.cnf +0 -0
  75. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/test.py +0 -0
  76. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/test_cob_library.py +0 -0
  77. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/test_timing.py +0 -0
  78. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/test_validation.py +0 -0
  79. {medicafe-0.250822.1 → medicafe-0.250822.2}/MediLink/webapp.html +0 -0
  80. {medicafe-0.250822.1 → medicafe-0.250822.2}/README.md +0 -0
  81. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/SOURCES.txt +0 -0
  82. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/dependency_links.txt +0 -0
  83. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/entry_points.txt +0 -0
  84. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/not-zip-safe +0 -0
  85. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/requires.txt +0 -0
  86. {medicafe-0.250822.1 → medicafe-0.250822.2}/medicafe.egg-info/top_level.txt +0 -0
  87. {medicafe-0.250822.1 → medicafe-0.250822.2}/setup.cfg +0 -0
@@ -19,7 +19,7 @@ Smart Import Integration:
19
19
  medibot_main = get_components('medibot_main')
20
20
  """
21
21
 
22
- __version__ = "0.250822.1"
22
+ __version__ = "0.250822.2"
23
23
  __author__ = "Daniel Vidaud"
24
24
  __email__ = "daniel@personalizedtransformation.com"
25
25
 
@@ -27,7 +27,7 @@ Smart Import System:
27
27
  api_suite = get_api_access()
28
28
  """
29
29
 
30
- __version__ = "0.250822.1"
30
+ __version__ = "0.250822.2"
31
31
  __author__ = "Daniel Vidaud"
32
32
  __email__ = "daniel@personalizedtransformation.com"
33
33
 
@@ -116,9 +116,59 @@ except ImportError as e:
116
116
 
117
117
  # Function to check if the date format is correct
118
118
  def validate_and_format_date(date_str):
119
- for fmt in ('%Y-%m-%d', '%m/%d/%Y', '%d-%b-%Y', '%d-%m-%Y'):
119
+ # Comprehensive list of common DOB date formats
120
+ date_formats = [
121
+ # 4-digit year formats
122
+ '%Y-%m-%d', # 1990-01-15
123
+ '%m/%d/%Y', # 01/15/1990
124
+ '%m-%d-%Y', # 01-15-1990
125
+ '%d-%m-%Y', # 15-01-1990
126
+ '%d/%m/%Y', # 15/01/1990
127
+ '%d-%b-%Y', # 15-Jan-1990
128
+ '%d %b %Y', # 15 Jan 1990
129
+ '%b %d, %Y', # Jan 15, 1990
130
+ '%b %d %Y', # Jan 15 1990
131
+ '%B %d, %Y', # January 15, 1990
132
+ '%B %d %Y', # January 15 1990
133
+ '%Y/%m/%d', # 1990/01/15
134
+ '%Y%m%d', # 19900115
135
+
136
+ # 2-digit year formats
137
+ '%m/%d/%y', # 01/15/90
138
+ '%m-%d-%y', # 01-15-90
139
+ '%d/%m/%y', # 15/01/90
140
+ '%d-%m-%y', # 15-01-90
141
+ '%d %b %y', # 15 Jan 90
142
+ '%b %d, %y', # Jan 15, 90
143
+ '%b %d %y', # Jan 15 90
144
+ '%y/%m/%d', # 90/01/15
145
+ '%y-%m-%d', # 90-01-15
146
+ '%y%m%d', # 900115
147
+
148
+ # Single digit formats (no leading zeros)
149
+ '%m/%d/%Y', # 1/15/1990 (already covered above)
150
+ '%m-%d-%Y', # 1-15-1990 (already covered above)
151
+ '%d/%m/%Y', # 15/1/1990 (already covered above)
152
+ '%d-%m-%Y', # 15-1-1990 (already covered above)
153
+ '%m/%d/%y', # 1/15/90 (already covered above)
154
+ '%m-%d-%y', # 1-15-90 (already covered above)
155
+ '%d/%m/%y', # 15/1/90 (already covered above)
156
+ '%d-%m-%y', # 15-1-90 (already covered above)
157
+ ]
158
+
159
+ for fmt in date_formats:
120
160
  try:
121
- formatted_date = datetime.strptime(date_str, fmt).strftime('%Y-%m-%d')
161
+ # For 2-digit years, assume 20th/21st century
162
+ if '%y' in fmt:
163
+ parsed_date = datetime.strptime(date_str, fmt)
164
+ # Handle year 00-99: assume 1950-2049 range
165
+ if parsed_date.year < 50:
166
+ parsed_date = parsed_date.replace(year=parsed_date.year + 2000)
167
+ elif parsed_date.year < 100:
168
+ parsed_date = parsed_date.replace(year=parsed_date.year + 1900)
169
+ formatted_date = parsed_date.strftime('%Y-%m-%d')
170
+ else:
171
+ formatted_date = datetime.strptime(date_str, fmt).strftime('%Y-%m-%d')
122
172
  return formatted_date
123
173
  except ValueError:
124
174
  continue
@@ -22,7 +22,7 @@ Smart Import Integration:
22
22
  datamgmt = get_components('medilink_datamgmt')
23
23
  """
24
24
 
25
- __version__ = "0.250822.1"
25
+ __version__ = "0.250822.2"
26
26
  __author__ = "Daniel Vidaud"
27
27
  __email__ = "daniel@personalizedtransformation.com"
28
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250822.1
3
+ Version: 0.250822.2
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.250822.1
3
+ Version: 0.250822.2
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.250822.1",
57
+ version="0.250822.2",
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
File without changes