medicafe 0.250723.2__tar.gz → 0.250723.4__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 medicafe might be problematic. Click here for more details.

Files changed (59) hide show
  1. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot.py +6 -3
  2. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_UI.py +14 -4
  3. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_837p_encoder_library.py +4 -4
  4. {medicafe-0.250723.2 → medicafe-0.250723.4}/PKG-INFO +1 -1
  5. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/PKG-INFO +1 -1
  6. {medicafe-0.250723.2 → medicafe-0.250723.4}/setup.py +1 -1
  7. {medicafe-0.250723.2 → medicafe-0.250723.4}/LICENSE +0 -0
  8. {medicafe-0.250723.2 → medicafe-0.250723.4}/MANIFEST.in +0 -0
  9. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot.bat +0 -0
  10. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_Charges.py +0 -0
  11. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_Crosswalk_Library.py +0 -0
  12. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_Post.py +0 -0
  13. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_Preprocessor.py +0 -0
  14. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_Preprocessor_lib.py +0 -0
  15. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_dataformat_library.py +0 -0
  16. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/MediBot_docx_decoder.py +0 -0
  17. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/PDF_to_CSV_Cleaner.py +0 -0
  18. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/__init__.py +0 -0
  19. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/update_json.py +0 -0
  20. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediBot/update_medicafe.py +0 -0
  21. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink.py +0 -0
  22. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_837p_cob_library.py +0 -0
  23. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_837p_encoder.py +0 -0
  24. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_837p_utilities.py +0 -0
  25. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_API_Generator.py +0 -0
  26. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_API_v2.py +0 -0
  27. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_API_v3.py +0 -0
  28. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_APIs.py +0 -0
  29. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Azure.py +0 -0
  30. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_ClaimStatus.py +0 -0
  31. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_ConfigLoader.py +0 -0
  32. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_DataMgmt.py +0 -0
  33. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Decoder.py +0 -0
  34. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Deductible.py +0 -0
  35. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Deductible_Validator.py +0 -0
  36. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Down.py +0 -0
  37. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Gmail.py +0 -0
  38. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_GraphQL.py +0 -0
  39. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Mailer.py +0 -0
  40. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Parser.py +0 -0
  41. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Scan.py +0 -0
  42. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Scheduler.py +0 -0
  43. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_UI.py +0 -0
  44. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_Up.py +0 -0
  45. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/MediLink_batch.bat +0 -0
  46. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/Soumit_api.py +0 -0
  47. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/__init__.py +0 -0
  48. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/openssl.cnf +0 -0
  49. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/test.py +0 -0
  50. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/test_cob_library.py +0 -0
  51. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/test_validation.py +0 -0
  52. {medicafe-0.250723.2 → medicafe-0.250723.4}/MediLink/webapp.html +0 -0
  53. {medicafe-0.250723.2 → medicafe-0.250723.4}/README.md +0 -0
  54. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/SOURCES.txt +0 -0
  55. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/dependency_links.txt +0 -0
  56. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/not-zip-safe +0 -0
  57. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/requires.txt +0 -0
  58. {medicafe-0.250723.2 → medicafe-0.250723.4}/medicafe.egg-info/top_level.txt +0 -0
  59. {medicafe-0.250723.2 → medicafe-0.250723.4}/setup.cfg +0 -0
@@ -393,9 +393,11 @@ if __name__ == "__main__":
393
393
 
394
394
  # Check if there are patients left to process
395
395
  if len(patients_to_process) == 0:
396
- proceed = input("\nAll patients have been processed. Continue anyway?: ").lower().strip() in ['yes', 'y']
396
+ print("\nAll patients have been processed. Continue anyway?: ", end='', flush=True)
397
+ proceed = input().lower().strip() in ['yes', 'y']
397
398
  else:
398
- proceed = input("\nDo you want to proceed with the {} remaining patient(s)? (yes/no): ".format(len(patients_to_process))).lower().strip() in ['yes', 'y']
399
+ print("\nDo you want to proceed with the {} remaining patient(s)? (yes/no): ".format(len(patients_to_process)), end='', flush=True)
400
+ proceed = input().lower().strip() in ['yes', 'y']
399
401
 
400
402
  # TODO: Here is where we need to add the step where we move to MediBot_Charges.
401
403
  # The return is an enriched dataset to be picked up by MediBot which means we need to return:
@@ -406,7 +408,8 @@ if __name__ == "__main__":
406
408
  print(" Press 'F8' to create a New Patient.")
407
409
  print(" Press 'F12' to begin data entry.")
408
410
  print(" Press 'F11' at any time to Pause.")
409
- input("\n*** Press [Enter] when ready to begin! ***\n")
411
+ print("\n*** Press [Enter] when ready to begin! ***")
412
+ input()
410
413
  MediLink_ConfigLoader.log("Opening Medisoft...")
411
414
  open_medisoft(app_control.get_medisoft_shortcut())
412
415
  app_control.set_pause_status(True)
@@ -147,7 +147,8 @@ def display_patient_selection_menu(csv_data, reverse_mapping, proceed_as_medicar
147
147
  selected_indices, selected_patient_ids = display_patient_list(csv_data, reverse_mapping, exclude_medicare=True)
148
148
 
149
149
  print("-" * 60)
150
- proceed = input("\nDo you want to proceed with the selected patients? (yes/no): ").lower().strip() in ['yes', 'y']
150
+ print("\nDo you want to proceed with the selected patients? (yes/no): ", end='', flush=True)
151
+ proceed = input().lower().strip() in ['yes', 'y']
151
152
 
152
153
  if not proceed:
153
154
  display_menu_header("Patient Selection for Today's Data Entry")
@@ -156,7 +157,8 @@ def display_patient_selection_menu(csv_data, reverse_mapping, proceed_as_medicar
156
157
 
157
158
  while True:
158
159
  while True:
159
- selection = input("\nEnter the number(s) of the patients you wish to proceed with \n(e.g., 1,3,5): ").strip()
160
+ print("\nEnter the number(s) of the patients you wish to proceed with \n(e.g., 1,3,5): ", end='', flush=True)
161
+ selection = input().strip()
160
162
  if not selection:
161
163
  print("Invalid entry. Please provide at least one number.")
162
164
  continue
@@ -194,6 +196,8 @@ def display_menu_header(title):
194
196
  print("\n" + "-" * 60)
195
197
  print(title)
196
198
  print("-" * 60)
199
+ # Force flush for Windows XP compatibility
200
+ sys.stdout.flush()
197
201
 
198
202
  def handle_user_interaction(interaction_mode, error_message):
199
203
  # Import here to avoid circular imports
@@ -228,7 +232,8 @@ def handle_user_interaction(interaction_mode, error_message):
228
232
  print("3: Go back two patients and redo")
229
233
  print("4: Exit script")
230
234
  print("-" * 60)
231
- choice = input("Enter your choice (1/2/3/4): ").strip()
235
+ print("Enter your choice (1/2/3/4): ", end='', flush=True)
236
+ choice = input().strip()
232
237
 
233
238
  if choice == '1':
234
239
  print("Selected: 'Retry last entry'. Please press 'F12' to continue.")
@@ -254,10 +259,15 @@ def user_interaction(csv_data, interaction_mode, error_message, reverse_mapping)
254
259
 
255
260
  if interaction_mode == 'triage':
256
261
  display_menu_header(" =(^.^)= Welcome to MediBot! =(^.^)=")
262
+
263
+ # Force flush for Windows XP compatibility
264
+ sys.stdout.flush()
257
265
 
258
266
  while True:
259
267
  try:
260
- response = input("\nAm I processing Medicare patients? (yes/no): ").lower().strip()
268
+ # Use a more explicit prompt format for Windows XP
269
+ print("\nAm I processing Medicare patients? (yes/no): ", end='', flush=True)
270
+ response = input().lower().strip()
261
271
  if response:
262
272
  if response in ['yes', 'y']:
263
273
  app_control.load_paths_from_config(medicare=True)
@@ -993,7 +993,7 @@ def validate_claim_data_for_837p(parsed_data, config, crosswalk):
993
993
  # Update the crosswalk dictionary with the new pairing of diagnosis_code and medisoft_code
994
994
  crosswalk['diagnosis_to_medisoft'][diagnosis_code] = medisoft_code
995
995
  MediLink_ConfigLoader.log("Updated crosswalk with new diagnosis code: {}, for Medisoft code {}".format(diagnosis_code, medisoft_code), config, level="INFO")
996
- print("\n Added '{}' -> '{}' to crosswalk".format(diagnosis_code, medisoft_code))
996
+ print("\n[SUCCESS] Added '{}' -> '{}' to crosswalk".format(diagnosis_code, medisoft_code))
997
997
  print(" IMPORTANT: You must manually save this to crosswalk.json to persist the change!")
998
998
  # TODO This needs to actually save the .json though which right now I'd like to route through the dedicated function for updating the crosswalk.
999
999
  # TODO This should have been a validation exercise upstream and not a last minute check like this.
@@ -1030,7 +1030,7 @@ def validate_claim_data_for_837p(parsed_data, config, crosswalk):
1030
1030
  crosswalk.setdefault('procedure_to_diagnosis', {})[procedure_code] = []
1031
1031
  crosswalk['procedure_to_diagnosis'][procedure_code].append(diagnosis_code)
1032
1032
  MediLink_ConfigLoader.log("Updated crosswalk with new procedure code: {}, for diagnosis code {}".format(procedure_code, diagnosis_code), config, level="INFO")
1033
- print("\n Added '{}' -> ['{}'] to crosswalk".format(procedure_code, diagnosis_code))
1033
+ print("\n[SUCCESS] Added '{}' -> ['{}'] to crosswalk".format(procedure_code, diagnosis_code))
1034
1034
  print(" IMPORTANT: You must manually save this to crosswalk.json to persist the change!")
1035
1035
  # TODO This needs to actually save the .json though which right now I'd like to route through the dedicated function for updating the crosswalk.
1036
1036
  # TODO This should have been a validation exercise upstream and not a last minute check like this.
@@ -1063,9 +1063,9 @@ def validate_claim_data_for_837p(parsed_data, config, crosswalk):
1063
1063
  raise ValueError("Cannot proceed without {} for patient {}".format(description, chart_number))
1064
1064
 
1065
1065
  validated_data[field] = new_value
1066
- print("\n Updated {} to '{}'".format(field, new_value))
1066
+ print("\n[SUCCESS] Updated {} to '{}'".format(field, new_value))
1067
1067
 
1068
- print("\n All claim data validated for patient {}".format(chart_number))
1068
+ print("\n[SUCCESS] All claim data validated for patient {}".format(chart_number))
1069
1069
  return validated_data
1070
1070
 
1071
1071
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250723.2
3
+ Version: 0.250723.4
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2
6
6
  Author: Daniel Vidaud
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250723.2
3
+ Version: 0.250723.4
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2
6
6
  Author: Daniel Vidaud
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='medicafe',
5
- version="0.250723.2",
5
+ version="0.250723.4",
6
6
  description='MediCafe',
7
7
  long_description="""
8
8
  # Project Overview: MediCafe
File without changes
File without changes
File without changes
File without changes