medicafe 0.251023.2__py3-none-any.whl → 0.251027.0__py3-none-any.whl

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.

MediLink/MediLink_main.py CHANGED
@@ -22,7 +22,8 @@ if PERFORMANCE_LOGGING:
22
22
 
23
23
  # Now import core utilities after path setup
24
24
  from MediCafe.core_utils import get_shared_config_loader, setup_module_paths, extract_medilink_config
25
- from MediCafe.error_reporter import flush_queued_reports, collect_support_bundle, submit_support_bundle, capture_unhandled_traceback
25
+ from MediCafe.error_reporter import collect_support_bundle, capture_unhandled_traceback
26
+ from MediCafe.error_reporter import submit_support_bundle_email, list_queued_bundles, submit_all_queued_bundles, delete_all_queued_bundles
26
27
  setup_module_paths(__file__)
27
28
 
28
29
  # Import modules after path setup
@@ -72,8 +73,8 @@ def _tools_menu(config, medi):
72
73
  print("\nMaintenance Tools:")
73
74
  options = [
74
75
  "Rebuild submission index now",
75
- "Submit Error Report (online)",
76
- "Create Support Bundle (offline)",
76
+ "Submit Error Report (email)",
77
+ "Resolve Queued Error Reports",
77
78
  "Back"
78
79
  ]
79
80
  MediLink_UI.display_menu(options)
@@ -93,25 +94,37 @@ def _tools_menu(config, medi):
93
94
  print("Index rebuild error: {}".format(e))
94
95
  elif choice == '2':
95
96
  try:
96
- print("\nSubmitting Error Report (online)...")
97
- zip_path = collect_support_bundle(include_traceback=True)
98
- if not zip_path:
99
- print("Failed to create support bundle.")
97
+ if submit_support_bundle_email is None:
98
+ print("Email submission module not available.")
100
99
  else:
101
- ok = submit_support_bundle(zip_path)
102
- if not ok:
103
- print("Submission failed. Bundle saved at {} for later retry.".format(zip_path))
100
+ print("\nSubmitting Error Report (email)...")
101
+ zip_path = collect_support_bundle(include_traceback=True)
102
+ if not zip_path:
103
+ print("Failed to create support bundle.")
104
+ else:
105
+ ok = submit_support_bundle_email(zip_path)
106
+ if ok:
107
+ # Optional: remove the file upon success to avoid re-sending on next startup
108
+ try:
109
+ os.remove(zip_path)
110
+ except Exception:
111
+ pass
112
+ else:
113
+ print("Submission failed. Bundle saved at {} for manual handling.".format(zip_path))
104
114
  except Exception as e:
105
- print("Error during report submission: {}".format(e))
115
+ print("Error during email report submission: {}".format(e))
106
116
  elif choice == '3':
107
117
  try:
108
- zip_path = collect_support_bundle(include_traceback=True)
109
- if zip_path:
110
- print("Support bundle created: {}".format(zip_path))
118
+ queued = list_queued_bundles()
119
+ if not queued:
120
+ print("No queued bundles found.")
111
121
  else:
112
- print("Failed to create support bundle.")
122
+ print("Found {} queued bundle(s).".format(len(queued)))
123
+ print("Attempting to send now...")
124
+ sent, failed = submit_all_queued_bundles()
125
+ print("Queued send complete. Sent: {} Failed: {}".format(sent, failed))
113
126
  except Exception as e:
114
- print("Error creating support bundle: {}".format(e))
127
+ print("Error while processing queued bundles: {}".format(e))
115
128
  elif choice == '4':
116
129
  break
117
130
  else:
@@ -205,14 +218,7 @@ def main_menu():
205
218
  if PERFORMANCE_LOGGING:
206
219
  print("Welcome display completed in {:.2f} seconds".format(welcome_end - welcome_start))
207
220
 
208
- # Startup: flush any queued error reports (non-blocking style)
209
- try:
210
- print("\nChecking for queued error reports...")
211
- uploaded, total = flush_queued_reports()
212
- if total:
213
- print("Queued reports: {} | Uploaded now: {}".format(total, uploaded))
214
- except Exception as e:
215
- _safe_log("Queue flush skipped due to error: {}".format(e), level="WARNING")
221
+ # Startup: (removed) automatic HTTP queue flush for error reports to simplify UX
216
222
 
217
223
  # Show message if new records were found during boot-time scan. TODO we need this to use the 'Last acknowledgements update:' timestamp to decide if it has already run in the last day so
218
224
  # that we're not running it multiple times in rapid succession automatically. (user-initiated checks are fine like via selection of (1. Check for new remittances))
@@ -497,33 +503,48 @@ if __name__ == "__main__":
497
503
  print("\nOperation cancelled by user.")
498
504
  exit_code = 1
499
505
  except Exception as e:
500
- # Unexpected error: still avoid full traceback, present succinct notice
501
506
  sys.stderr.write("An unexpected error occurred; process halted.\n")
502
507
  sys.stderr.write(str(e) + "\n")
503
- # Offer to create and submit an error report
504
- try:
505
- ans = input("Create and submit an error report now? (y/N): ").strip().lower()
506
- except Exception:
507
- ans = 'n'
508
- if ans in ['y', 'yes']:
509
- try:
510
- from MediCafe.error_reporter import collect_support_bundle, submit_support_bundle
511
- zip_path = collect_support_bundle(include_traceback=True)
512
- if not zip_path:
513
- print("Failed to create support bundle.")
508
+ from MediCafe.error_reporter import collect_support_bundle
509
+ zip_path = collect_support_bundle(include_traceback=True)
510
+ if not zip_path:
511
+ print("Failed to create bundle - exiting.")
512
+ exit_code = 1
513
+ else:
514
+ from MediLink.MediLink_Up import check_internet_connection
515
+ online = check_internet_connection()
516
+ if online:
517
+ success = submit_support_bundle_email(zip_path)
518
+ if success:
519
+ # On success, remove the bundle
520
+ try:
521
+ os.remove(zip_path)
522
+ except Exception:
523
+ pass
514
524
  else:
515
- ok = submit_support_bundle(zip_path)
516
- if ok:
517
- print("Report submitted successfully.")
525
+ # Preserve bundle for manual retry
526
+ print("Send failed - bundle preserved at {} for retry.".format(zip_path))
527
+ else:
528
+ ans = input("Offline. Connect to internet, then press Y to retry or N to discard: ").strip().lower()
529
+ if ans == 'y':
530
+ online = check_internet_connection()
531
+ if online:
532
+ success = submit_support_bundle_email(zip_path)
533
+ if success:
534
+ try:
535
+ os.remove(zip_path)
536
+ except Exception:
537
+ pass
538
+ else:
539
+ print("Send failed - bundle preserved at {} for retry.".format(zip_path))
518
540
  else:
519
- print("Submission failed. Bundle saved at {} for later retry.".format(zip_path))
520
- except Exception as _erre:
521
- print("Error while creating/submitting report: {}".format(_erre))
522
- sys.stderr.write("\nPress Enter to exit...\n")
523
- try:
524
- input()
525
- except Exception:
526
- pass
541
+ print("Still offline - preserving bundle at {} for retry.".format(zip_path))
542
+ else:
543
+ print("Discarding bundle at user request.")
544
+ try:
545
+ os.remove(zip_path)
546
+ except Exception:
547
+ pass
527
548
  exit_code = 1
528
549
  finally:
529
550
  if exit_code == 0 and PERFORMANCE_LOGGING:
MediLink/__init__.py CHANGED
@@ -22,7 +22,7 @@ Smart Import Integration:
22
22
  datamgmt = get_components('medilink_datamgmt')
23
23
  """
24
24
 
25
- __version__ = "0.251023.2"
25
+ __version__ = "0.251027.0"
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.251023.2
3
+ Version: 0.251027.0
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -1,4 +1,4 @@
1
- MediBot/MediBot.bat,sha256=dWBZ2__t1uPvEuN76ETOD_mDo7368rP3tDrJd4MHCFY,26306
1
+ MediBot/MediBot.bat,sha256=vWcKZK7MdNIAnGpvpaSglN5DiAlKJVBpdtYwfQfpSQA,28234
2
2
  MediBot/MediBot.py,sha256=ABSqWikb_c1VSuR4n8Vh5YfOqzDCi2jnnp3sg_xOYg0,51092
3
3
  MediBot/MediBot_Charges.py,sha256=a28if_f_IoazIHiqlaFosFnfEgEoCwb9LQ6aOyk5-D0,10704
4
4
  MediBot/MediBot_Crosswalk_Library.py,sha256=6LrpRx2UKVeH3TspS9LpR93iw5M7nTqN6IYpC-6PPGE,26060
@@ -12,7 +12,7 @@ MediBot/MediBot_dataformat_library.py,sha256=D46fdPtxcgfWTzaLBtSvjtozzZBNqNiODgu
12
12
  MediBot/MediBot_debug.bat,sha256=F5Lfi3nFEEo4Ddx9EbX94u3fNAMgzMp3wsn-ULyASTM,6017
13
13
  MediBot/MediBot_docx_decoder.py,sha256=9BSjV-kB90VHnqfL_5iX4zl5u0HcHvHuL7YNfx3gXpQ,33143
14
14
  MediBot/MediBot_smart_import.py,sha256=Emvz7NwemHGCHvG5kZcUyXMcCheidbGKaPfOTg-YCEs,6684
15
- MediBot/__init__.py,sha256=dPNOUvjpXvuTuVBWE9fsFD9JlzmST_kpKn23irpVGSQ,3192
15
+ MediBot/__init__.py,sha256=-jRkSW8hwPcsIRgIbVZXszXOveBY6yd98PLefrUquLI,3192
16
16
  MediBot/clear_cache.bat,sha256=F6-VhETWw6xDdGWG2wUqvtXjCl3lY4sSUFqF90bM8-8,1860
17
17
  MediBot/crash_diagnostic.bat,sha256=j8kUtyBg6NOWbXpeFuEqIRHOkVzgUrLOqO3FBMfNxTo,9268
18
18
  MediBot/f_drive_diagnostic.bat,sha256=4572hZaiwZ5wVAarPcZJQxkOSTwAdDuT_X914noARak,6878
@@ -21,15 +21,15 @@ MediBot/get_medicafe_version.py,sha256=uyL_UIE42MyFuJ3SRYxJp8sZx8xjTqlYZ3FdQuxLd
21
21
  MediBot/process_csvs.bat,sha256=3tI7h1z9eRj8rUUL4wJ7dy-Qrak20lRmpAPtGbUMbVQ,3489
22
22
  MediBot/update_json.py,sha256=vvUF4mKCuaVly8MmoadDO59M231fCIInc0KI1EtDtPA,3704
23
23
  MediBot/update_medicafe.py,sha256=G1lyvVOHYuho1d-TJQNN6qaB4HBWaJ2PpXqemBoPlRQ,17937
24
- MediCafe/MediLink_ConfigLoader.py,sha256=NoLb2YiJwlkrRYCt2PHvcFJ7yTIRWQCrsvkZIJWreM4,11141
25
- MediCafe/__init__.py,sha256=EbjYBfXYlsgkgfg7G1p3VQBbhgCCs1ffVkQvJF_VoJk,5721
24
+ MediCafe/MediLink_ConfigLoader.py,sha256=5AWsiy99WFcESXkzKbftT5afAoMygmb5-d0bER9TZSU,11419
25
+ MediCafe/__init__.py,sha256=Y8OIiSNkXxugmC4qzCGqUfVhAoBqDaPQKWObOxOLkQQ,5721
26
26
  MediCafe/__main__.py,sha256=mRNyk3D9Ilnu2XhgVI_rut7r5Ro7UIKtwV871giAHI8,12992
27
27
  MediCafe/api_core.py,sha256=wLAdRNZdmovKReXvzsmAgKrbYon4-wbJbGCyOm_C3AU,89896
28
28
  MediCafe/api_factory.py,sha256=I5AeJoyu6m7oCrjc2OvVvO_4KSBRutTsR1riiWhTZV0,12086
29
29
  MediCafe/api_utils.py,sha256=KWQB0q1k5E6frOFFlKWcFpHNcqfrS7KJ_82672wbupw,14041
30
30
  MediCafe/core_utils.py,sha256=XKUpyv7yKjIQ8iNrhD76PIURyt6GZxb98v0daiI7aaw,27303
31
31
  MediCafe/deductible_utils.py,sha256=-ixDYwI3JNAyACrFjKqoX_hD3Awzownq441U0PSrwXw,64932
32
- MediCafe/error_reporter.py,sha256=YFp1kNWBw_8zVCd0YW6VV142-l9SrJ5LhNYdmKgu5uU,8326
32
+ MediCafe/error_reporter.py,sha256=mKC6zbQN0rJHO91ASgrVgHHTCaUOFmCPisbwJiyn8gc,12296
33
33
  MediCafe/graphql_utils.py,sha256=jo4CboMb9i5_qD0jkfrLbL87_Q3aFiwOntZhjF9fMsI,51928
34
34
  MediCafe/logging_config.py,sha256=auT65LN5oDEXVhkMeLke63kJHTWxYf2o8YihAfQFgzU,5493
35
35
  MediCafe/logging_demo.py,sha256=TwUhzafna5pMdN3zSKGrpUWRqX96F1JGGsSUtr3dygs,1975
@@ -51,7 +51,7 @@ MediLink/MediLink_Deductible.py,sha256=opGa5YQ6tfowurlf8xDWRtAtQMmoNYout0gYe3R5f
51
51
  MediLink/MediLink_Deductible_Validator.py,sha256=x6tHJOi88TblUpDPSH6QhIdXXRgr3rXI7kYPVGZYCgU,24998
52
52
  MediLink/MediLink_Display_Utils.py,sha256=MonsX6VPbdvqwY_V8sHUYrXCS0fMKc4toJvG0oyr-V4,24872
53
53
  MediLink/MediLink_Down.py,sha256=s4_z-RaqHYanjwbQCl-OSkg4XIpcIQ2Q6jXa8-q_QXw,28111
54
- MediLink/MediLink_Gmail.py,sha256=KnTm7Z_Q5B1n9hNtCR00wDWWWmRVf86f-JtKdZKRKpA,28637
54
+ MediLink/MediLink_Gmail.py,sha256=jS1mbqhndJ8emhMshd1qeOegF6k_3V_YeCGUNerqdqA,29394
55
55
  MediLink/MediLink_Mailer.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
56
  MediLink/MediLink_Parser.py,sha256=eRVZ4ckZ5gDOrcvtCUZP3DOd3Djly66rCIk0aYXLz14,12567
57
57
  MediLink/MediLink_PatientProcessor.py,sha256=9r2w4p45d30Tn0kbXL3j5574MYOehP83tDirNOw_Aek,19977
@@ -60,18 +60,18 @@ MediLink/MediLink_Scheduler.py,sha256=UJvxhDvHraqra2_TlQVlGeh5jRFrrfK6nCVUHnKOEM
60
60
  MediLink/MediLink_UI.py,sha256=ZEJ14EGh7pDu1XjAdORDFiay4UtTsLNWwNSJ0prHFWg,10381
61
61
  MediLink/MediLink_Up.py,sha256=rzhzmWa4F_el37bDlSauFl_08m-dWz2xiflf-vVRkwg,38453
62
62
  MediLink/MediLink_insurance_utils.py,sha256=g741Fj2K26cMy0JX5d_XavMw9LgkK6hjaUJYfysT7t8,9301
63
- MediLink/MediLink_main.py,sha256=jWxh1ydNwBi07T4Aw9CRalBporvxpd1Akjfk_vbDuWY,25548
63
+ MediLink/MediLink_main.py,sha256=1nmDtbJ9IfPwLnFhCZvDtBPSG_8gzj6LneuoV60l4IQ,26736
64
64
  MediLink/MediLink_smart_import.py,sha256=ZUXvAkIA2Pk2uuyLZazKfKK8YGdkZt1VAeZo_ZSUyxk,9942
65
65
  MediLink/Soumit_api.py,sha256=5JfOecK98ZC6NpZklZW2AkOzkjvrbYxpJpZNH3rFxDw,497
66
- MediLink/__init__.py,sha256=2HPx8UKtk3Z9x0KyPywpO3joJsn3qQeGQFHix0VkW-U,3888
66
+ MediLink/__init__.py,sha256=B5c6Br7N8Atuqt1JytB7vQCaH3YvoY63wxLmL_I7Hgs,3888
67
67
  MediLink/gmail_http_utils.py,sha256=mYChIhkbA1oJaAJA-nY3XgHQY-H7zvZJUZPhUagomsI,4047
68
68
  MediLink/gmail_oauth_utils.py,sha256=Ugr-DEqs4_RddRMSCJ_dbgA3TVeaxpbAor-dktcTIgY,3713
69
69
  MediLink/openssl.cnf,sha256=76VdcGCykf0Typyiv8Wd1mMVKixrQ5RraG6HnfKFqTo,887
70
70
  MediLink/test.py,sha256=DM_E8gEbhbVfTAm3wTMiNnK2GCD1e5eH6gwTk89QIc4,3116
71
71
  MediLink/webapp.html,sha256=DwDYjVvluGJ7eDdvEogfKN4t24ZJRoIUuSBfCYCL-3w,21252
72
- medicafe-0.251023.2.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
73
- medicafe-0.251023.2.dist-info/METADATA,sha256=YQON26aUVR0hZH8rnIods-XTvRvJGxJF0yAkaFe_hQ4,3414
74
- medicafe-0.251023.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
75
- medicafe-0.251023.2.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
76
- medicafe-0.251023.2.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
77
- medicafe-0.251023.2.dist-info/RECORD,,
72
+ medicafe-0.251027.0.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
73
+ medicafe-0.251027.0.dist-info/METADATA,sha256=tiejqiQylg170c66T_tZWiIpdwt93jEHpzIe5ppzoZA,3414
74
+ medicafe-0.251027.0.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
75
+ medicafe-0.251027.0.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
76
+ medicafe-0.251027.0.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
77
+ medicafe-0.251027.0.dist-info/RECORD,,