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.
- MediBot/MediBot.bat +867 -835
- MediBot/__init__.py +1 -1
- MediCafe/MediLink_ConfigLoader.py +8 -1
- MediCafe/__init__.py +1 -1
- MediCafe/error_reporter.py +219 -148
- MediLink/MediLink_Gmail.py +28 -4
- MediLink/MediLink_main.py +68 -47
- MediLink/__init__.py +1 -1
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/METADATA +1 -1
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/RECORD +14 -14
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/LICENSE +0 -0
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/WHEEL +0 -0
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/entry_points.txt +0 -0
- {medicafe-0.251023.2.dist-info → medicafe-0.251027.0.dist-info}/top_level.txt +0 -0
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
|
|
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 (
|
|
76
|
-
"
|
|
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
|
-
|
|
97
|
-
|
|
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
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
109
|
-
if
|
|
110
|
-
print("
|
|
118
|
+
queued = list_queued_bundles()
|
|
119
|
+
if not queued:
|
|
120
|
+
print("No queued bundles found.")
|
|
111
121
|
else:
|
|
112
|
-
print("
|
|
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
|
|
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
|
|
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
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
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
|
-
|
|
516
|
-
|
|
517
|
-
|
|
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("
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
MediBot/MediBot.bat,sha256=
|
|
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
|
|
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=
|
|
25
|
-
MediCafe/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
73
|
-
medicafe-0.
|
|
74
|
-
medicafe-0.
|
|
75
|
-
medicafe-0.
|
|
76
|
-
medicafe-0.
|
|
77
|
-
medicafe-0.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|