medicafe 0.250806.14__tar.gz → 0.250809.0__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.
- medicafe-0.250809.0/MediBot/MediBot.bat +842 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot.py +122 -18
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Preprocessor_lib.py +14 -2
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_UI.py +7 -3
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_docx_decoder.py +19 -6
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/update_medicafe.py +36 -25
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/MediLink_ConfigLoader.py +166 -160
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/__init__.py +3 -3
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/api_core.py +59 -15
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/logging_config.py +20 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_837p_encoder_library.py +16 -2
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_837p_utilities.py +5 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_DataMgmt.py +15 -9
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Decoder.py +9 -4
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Deductible.py +9 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Gmail.py +16 -1
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_PatientProcessor.py +6 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_UI.py +7 -11
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Up.py +12 -3
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_main.py +49 -13
- {medicafe-0.250806.14 → medicafe-0.250809.0}/PKG-INFO +1 -1
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/PKG-INFO +1 -1
- {medicafe-0.250806.14 → medicafe-0.250809.0}/setup.py +1 -1
- medicafe-0.250806.14/MediBot/MediBot.bat +0 -464
- {medicafe-0.250806.14 → medicafe-0.250809.0}/LICENSE +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MANIFEST.in +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Charges.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Crosswalk_Library.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Crosswalk_Utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Post.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_Preprocessor.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_dataformat_library.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/MediBot_smart_import.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/__init__.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/get_medicafe_version.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediBot/update_json.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/__main__.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/api_core_backup.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/api_factory.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/api_utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/core_utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/graphql_utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/logging_demo.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/migration_helpers.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediCafe/smart_import.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_837p_cob_library.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_837p_encoder.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_API_Generator.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Azure.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_ClaimStatus.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Deductible_Validator.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Display_Utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Down.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Mailer.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Parser.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Scan.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_Scheduler.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_insurance_utils.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/MediLink_smart_import.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/Soumit_api.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/__init__.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/insurance_type_integration_test.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/openssl.cnf +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/test.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/test_cob_library.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/test_timing.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/test_validation.py +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/MediLink/webapp.html +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/SOURCES.txt +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/dependency_links.txt +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/entry_points.txt +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/not-zip-safe +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/requires.txt +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/medicafe.egg-info/top_level.txt +0 -0
- {medicafe-0.250806.14 → medicafe-0.250809.0}/setup.cfg +0 -0
@@ -0,0 +1,842 @@
|
|
1
|
+
::MediBot.bat - Streamlined version with coordinated debug system
|
2
|
+
@echo off
|
3
|
+
setlocal enabledelayedexpansion
|
4
|
+
|
5
|
+
:: Debug mode selection
|
6
|
+
echo ========================================
|
7
|
+
echo MediCafe Launcher
|
8
|
+
echo ========================================
|
9
|
+
echo.
|
10
|
+
echo Choose your mode:
|
11
|
+
echo 1. Normal Mode - Production
|
12
|
+
echo 2. Debug Mode - Full diagnostics (Interactive)
|
13
|
+
echo 3. Debug Mode - Full diagnostics (Non-Interactive)
|
14
|
+
echo.
|
15
|
+
set /p debug_choice="Enter your choice (1-3): "
|
16
|
+
|
17
|
+
if "!debug_choice!"=="1" goto start_normal_mode
|
18
|
+
if "!debug_choice!"=="2" goto start_debug_interactive
|
19
|
+
if "!debug_choice!"=="3" goto start_debug_noninteractive
|
20
|
+
goto start_normal_mode
|
21
|
+
|
22
|
+
:start_debug_interactive
|
23
|
+
echo.
|
24
|
+
echo ========================================
|
25
|
+
echo DEBUG MODE (INTERACTIVE)
|
26
|
+
echo ========================================
|
27
|
+
echo Running full diagnostic suite...
|
28
|
+
echo.
|
29
|
+
set "SKIP_CLS_AFTER_DEBUG=1"
|
30
|
+
call "%~dp0full_debug_suite.bat" /interactive
|
31
|
+
echo.
|
32
|
+
goto normal_mode
|
33
|
+
|
34
|
+
:start_debug_noninteractive
|
35
|
+
echo.
|
36
|
+
echo ========================================
|
37
|
+
echo DEBUG MODE (NON-INTERACTIVE)
|
38
|
+
echo ========================================
|
39
|
+
echo Running full diagnostic suite...
|
40
|
+
echo.
|
41
|
+
set "SKIP_CLS_AFTER_DEBUG=1"
|
42
|
+
call "%~dp0full_debug_suite.bat"
|
43
|
+
echo.
|
44
|
+
goto normal_mode
|
45
|
+
|
46
|
+
:start_normal_mode
|
47
|
+
echo Starting Normal Mode...
|
48
|
+
goto normal_mode
|
49
|
+
|
50
|
+
:normal_mode
|
51
|
+
:: Normal production mode - streamlined without excessive debug output
|
52
|
+
if not defined SKIP_CLS_AFTER_DEBUG cls
|
53
|
+
set "SKIP_CLS_AFTER_DEBUG="
|
54
|
+
echo ========================================
|
55
|
+
echo MediBot Starting
|
56
|
+
echo ========================================
|
57
|
+
echo.
|
58
|
+
|
59
|
+
:: Define paths with local fallbacks for F: drive dependencies
|
60
|
+
set "source_folder=C:\MEDIANSI\MediCare"
|
61
|
+
set "target_folder=C:\MEDIANSI\MediCare\CSV"
|
62
|
+
set "python_script=C:\Python34\Lib\site-packages\MediBot\update_json.py"
|
63
|
+
set "python_script2=C:\Python34\Lib\site-packages\MediBot\Medibot.py"
|
64
|
+
set "medicafe_package=medicafe"
|
65
|
+
|
66
|
+
:: Priority order: 1) Local relative path, 2) F: drive path (legacy)
|
67
|
+
set "upgrade_medicafe_local=MediBot\update_medicafe.py"
|
68
|
+
set "upgrade_medicafe_legacy=F:\Medibot\update_medicafe.py"
|
69
|
+
|
70
|
+
:: Storage and config paths with local fallbacks
|
71
|
+
set "local_storage_legacy=F:\Medibot\DOWNLOADS"
|
72
|
+
set "local_storage_local=MediBot\DOWNLOADS"
|
73
|
+
set "config_file_legacy=F:\Medibot\json\config.json"
|
74
|
+
set "config_file_local=MediBot\json\config.json"
|
75
|
+
set "temp_file_legacy=F:\Medibot\last_update_timestamp.txt"
|
76
|
+
set "temp_file_local=MediBot\last_update_timestamp.txt"
|
77
|
+
|
78
|
+
:: FIXED: Always prioritize local file if it exists
|
79
|
+
if exist "%upgrade_medicafe_local%" (
|
80
|
+
set "upgrade_medicafe=%upgrade_medicafe_local%"
|
81
|
+
set "use_local_update=1"
|
82
|
+
) else (
|
83
|
+
set "use_local_update=0"
|
84
|
+
)
|
85
|
+
|
86
|
+
:: Determine which paths to use based on availability
|
87
|
+
if exist "F:\Medibot" (
|
88
|
+
set "local_storage_path=%local_storage_legacy%"
|
89
|
+
set "config_file=%config_file_legacy%"
|
90
|
+
set "temp_file=%temp_file_legacy%"
|
91
|
+
|
92
|
+
:: Only use F: drive update script if local doesn't exist
|
93
|
+
if "!use_local_update!"=="0" (
|
94
|
+
if exist "%upgrade_medicafe_legacy%" (
|
95
|
+
set "upgrade_medicafe=%upgrade_medicafe_legacy%"
|
96
|
+
)
|
97
|
+
)
|
98
|
+
) else (
|
99
|
+
set "local_storage_path=%local_storage_local%"
|
100
|
+
set "config_file=%config_file_local%"
|
101
|
+
set "temp_file=%temp_file_local%"
|
102
|
+
:: Ensure local directories exist
|
103
|
+
if not exist "MediBot\json" mkdir "MediBot\json" 2>nul
|
104
|
+
if not exist "MediBot\DOWNLOADS" mkdir "MediBot\DOWNLOADS" 2>nul
|
105
|
+
)
|
106
|
+
|
107
|
+
set "firefox_path=C:\Program Files\Mozilla Firefox\firefox.exe"
|
108
|
+
set "claims_status_script=..\MediLink\MediLink_ClaimStatus.py"
|
109
|
+
set "deductible_script=..\MediLink\MediLink_Deductible.py"
|
110
|
+
set "package_version="
|
111
|
+
set PYTHONWARNINGS=ignore
|
112
|
+
|
113
|
+
:: Check if Python is installed
|
114
|
+
python --version >nul 2>&1
|
115
|
+
if %errorlevel% neq 0 (
|
116
|
+
echo [ERROR] Python is not installed or not added to PATH.
|
117
|
+
echo Please run in Debug Mode to diagnose Python issues.
|
118
|
+
pause
|
119
|
+
exit /b 1
|
120
|
+
)
|
121
|
+
|
122
|
+
:: Check if critical directories exist
|
123
|
+
if not exist "%source_folder%" (
|
124
|
+
echo [WARNING] Source folder not found at: %source_folder%
|
125
|
+
set /p provide_alt_source="Enter 'Y' to provide alternate path, or any other key to continue: "
|
126
|
+
if /i "!provide_alt_source!"=="Y" (
|
127
|
+
set /p alt_source_folder="Enter the alternate source folder path: "
|
128
|
+
if not "!alt_source_folder!"=="" set "source_folder=!alt_source_folder!"
|
129
|
+
)
|
130
|
+
)
|
131
|
+
|
132
|
+
if not exist "%target_folder%" (
|
133
|
+
mkdir "%target_folder%" 2>nul
|
134
|
+
)
|
135
|
+
|
136
|
+
:: Check if the MediCafe package is installed
|
137
|
+
python -c "import pkg_resources; print('MediCafe=='+pkg_resources.get_distribution('medicafe').version)" 2>nul
|
138
|
+
if errorlevel 1 (
|
139
|
+
echo [WARNING] MediCafe package not found. Attempting to install...
|
140
|
+
python -m pip install medicafe --upgrade
|
141
|
+
if errorlevel 1 (
|
142
|
+
echo [ERROR] Failed to install MediCafe package.
|
143
|
+
echo Please run in Debug Mode to diagnose package issues.
|
144
|
+
pause
|
145
|
+
exit /b 1
|
146
|
+
)
|
147
|
+
)
|
148
|
+
|
149
|
+
:: Determine installed MediCafe version
|
150
|
+
set "package_version="
|
151
|
+
set "medicafe_version="
|
152
|
+
python -c "import pkg_resources; print('MediCafe=='+pkg_resources.get_distribution('medicafe').version)" > temp.txt 2>nul
|
153
|
+
set /p package_version=<temp.txt
|
154
|
+
if exist temp.txt del temp.txt
|
155
|
+
if not defined package_version (
|
156
|
+
rem Fallback: try importing MediCafe and reading __version__
|
157
|
+
python -c "import sys;\ntry:\n import MediCafe;\n print('MediCafe=='+getattr(MediCafe, '__version__','unknown'))\nexcept Exception as e:\n print('')" > temp.txt 2>nul
|
158
|
+
set /p package_version=<temp.txt
|
159
|
+
if exist temp.txt del temp.txt
|
160
|
+
)
|
161
|
+
if defined package_version (
|
162
|
+
for /f "tokens=2 delims==" %%a in ("%package_version%") do set "medicafe_version=%%a"
|
163
|
+
) else (
|
164
|
+
set "medicafe_version=unknown"
|
165
|
+
)
|
166
|
+
|
167
|
+
:: Check for internet connectivity
|
168
|
+
ping -n 1 google.com >nul 2>&1
|
169
|
+
if errorlevel 1 (
|
170
|
+
set "internet_available=0"
|
171
|
+
) else (
|
172
|
+
set "internet_available=1"
|
173
|
+
echo Internet connection detected.
|
174
|
+
)
|
175
|
+
|
176
|
+
:: Common pre-menu setup
|
177
|
+
echo Setting up the environment...
|
178
|
+
if not exist "%config_file%" (
|
179
|
+
echo Configuration file missing.
|
180
|
+
echo.
|
181
|
+
echo Expected configuration file path: %config_file%
|
182
|
+
echo.
|
183
|
+
echo Would you like to provide an alternate path for the configuration file?
|
184
|
+
set /p provide_alt="Enter 'Y' to provide alternate path, or any other key to exit: "
|
185
|
+
if /i "!provide_alt!"=="Y" (
|
186
|
+
echo.
|
187
|
+
echo Please enter the full path to your configuration file.
|
188
|
+
echo Example: C:\MediBot\config\config.json
|
189
|
+
echo Example with spaces: "G:\My Drive\MediBot\config\config.json"
|
190
|
+
echo.
|
191
|
+
echo Note: If your path contains spaces, please include quotes around the entire path.
|
192
|
+
echo.
|
193
|
+
set /p alt_config_path="Enter configuration file path: "
|
194
|
+
:: Remove any surrounding quotes from user input and re-add them for consistency
|
195
|
+
set "alt_config_path=!alt_config_path:"=!"
|
196
|
+
if exist "!alt_config_path!" (
|
197
|
+
echo Configuration file found at: !alt_config_path!
|
198
|
+
set "config_file=!alt_config_path!"
|
199
|
+
goto config_check_complete
|
200
|
+
) else (
|
201
|
+
echo Configuration file not found at: !alt_config_path!
|
202
|
+
echo.
|
203
|
+
set /p retry="Would you like to try another path? (Y/N): "
|
204
|
+
if /i "!retry!"=="Y" (
|
205
|
+
goto retry_config_path
|
206
|
+
) else (
|
207
|
+
goto end_script
|
208
|
+
)
|
209
|
+
)
|
210
|
+
) else (
|
211
|
+
goto end_script
|
212
|
+
)
|
213
|
+
) else (
|
214
|
+
goto config_check_complete
|
215
|
+
)
|
216
|
+
|
217
|
+
:retry_config_path
|
218
|
+
echo.
|
219
|
+
echo Please enter the full path to your configuration file.
|
220
|
+
echo Example: C:\MediBot\config\config.json
|
221
|
+
echo Example with spaces: "G:\My Drive\MediBot\config\config.json"
|
222
|
+
echo.
|
223
|
+
echo Note: If your path contains spaces, please include quotes around the entire path.
|
224
|
+
echo.
|
225
|
+
set /p alt_config_path="Enter configuration file path: "
|
226
|
+
:: Remove any surrounding quotes from user input and re-add them for consistency
|
227
|
+
set "alt_config_path=!alt_config_path:"=!"
|
228
|
+
if exist "!alt_config_path!" (
|
229
|
+
echo Configuration file found at: !alt_config_path!
|
230
|
+
set "config_file=!alt_config_path!"
|
231
|
+
) else (
|
232
|
+
echo Configuration file not found at: !alt_config_path!
|
233
|
+
echo.
|
234
|
+
set /p retry="Would you like to try another path? (Y/N): "
|
235
|
+
if /i "!retry!"=="Y" (
|
236
|
+
goto retry_config_path
|
237
|
+
) else (
|
238
|
+
goto end_script
|
239
|
+
)
|
240
|
+
)
|
241
|
+
|
242
|
+
:config_check_complete
|
243
|
+
|
244
|
+
:: Check if the file exists and attempt to copy it to the local directory
|
245
|
+
echo Checking for the update script...
|
246
|
+
ping -n 2 127.0.0.1 >nul
|
247
|
+
|
248
|
+
:: Continue with existing logic but with enhanced error reporting
|
249
|
+
:: First check if we already have it locally
|
250
|
+
if exist "%upgrade_medicafe_local%" (
|
251
|
+
echo Found update_medicafe.py in local directory. No action needed.
|
252
|
+
ping -n 2 127.0.0.1 >nul
|
253
|
+
) else (
|
254
|
+
if exist "C:\Python34\Lib\site-packages\MediBot\update_medicafe.py" (
|
255
|
+
echo Found update_medicafe.py in site-packages. Copying to local directory...
|
256
|
+
ping -n 2 127.0.0.1 >nul
|
257
|
+
:: Ensure MediBot directory exists
|
258
|
+
if not exist "MediBot" mkdir "MediBot"
|
259
|
+
copy "C:\Python34\Lib\site-packages\MediBot\update_medicafe.py" "%upgrade_medicafe_local%" >nul 2>&1
|
260
|
+
if %errorlevel% neq 0 (
|
261
|
+
echo Copy to local directory failed. Error code: %errorlevel%
|
262
|
+
echo [DIAGNOSTIC] Attempting copy to F: drive - detailed error reporting
|
263
|
+
ping -n 2 127.0.0.1 >nul
|
264
|
+
:: Ensure F:\Medibot directory exists (only if F: drive is accessible)
|
265
|
+
if exist "F:\" (
|
266
|
+
if not exist "F:\Medibot" (
|
267
|
+
echo [DIAGNOSTIC] Creating F:\Medibot directory...
|
268
|
+
mkdir "F:\Medibot" 2>nul
|
269
|
+
if not exist "F:\Medibot" (
|
270
|
+
echo [ERROR] Failed to create F:\Medibot - Permission denied or read-only drive
|
271
|
+
)
|
272
|
+
)
|
273
|
+
if exist "F:\Medibot" (
|
274
|
+
echo [DIAGNOSTIC] Attempting file copy to F:\Medibot...
|
275
|
+
copy "C:\Python34\Lib\site-packages\MediBot\update_medicafe.py" "%upgrade_medicafe_legacy%" 2>nul
|
276
|
+
if %errorlevel% neq 0 (
|
277
|
+
echo [ERROR] Copy to F:\Medibot failed with error code: %errorlevel%
|
278
|
+
echo [ERROR] Possible causes:
|
279
|
+
echo - Permission denied [insufficient write access]
|
280
|
+
echo - Disk full
|
281
|
+
echo - File locked by another process
|
282
|
+
echo - Antivirus blocking the operation
|
283
|
+
) else (
|
284
|
+
echo [SUCCESS] File copied to F:\Medibot successfully
|
285
|
+
)
|
286
|
+
)
|
287
|
+
) else (
|
288
|
+
echo [ERROR] F: drive not accessible - skipping F: drive copy attempt
|
289
|
+
)
|
290
|
+
) else (
|
291
|
+
echo File copied to local directory successfully.
|
292
|
+
ping -n 2 127.0.0.1 >nul
|
293
|
+
)
|
294
|
+
) else (
|
295
|
+
if exist "%upgrade_medicafe_legacy%" (
|
296
|
+
echo Found update_medicafe.py in legacy F: drive location.
|
297
|
+
echo [DIAGNOSTIC] Verifying F: drive file accessibility...
|
298
|
+
type "%upgrade_medicafe_legacy%" | find "#update_medicafe.py" >nul 2>&1
|
299
|
+
if %errorlevel% equ 0 (
|
300
|
+
echo [OK] F: drive file is accessible and readable
|
301
|
+
) else (
|
302
|
+
echo [ERROR] F: drive file exists but cannot be read [permission/lock issue]
|
303
|
+
)
|
304
|
+
ping -n 2 127.0.0.1 >nul
|
305
|
+
) else (
|
306
|
+
echo update_medicafe.py not detected in any known location.
|
307
|
+
echo.
|
308
|
+
echo Checked locations:
|
309
|
+
echo - Site-packages: C:\Python34\Lib\site-packages\MediBot\update_medicafe.py
|
310
|
+
echo - Local: %upgrade_medicafe_local%
|
311
|
+
echo - Legacy: %upgrade_medicafe_legacy%
|
312
|
+
echo.
|
313
|
+
echo [DIAGNOSTIC] Current working directory:
|
314
|
+
cd
|
315
|
+
echo [DIAGNOSTIC] Current directory contents:
|
316
|
+
dir /b
|
317
|
+
echo.
|
318
|
+
echo [DIAGNOSTIC] MediBot directory contents:
|
319
|
+
dir /b MediBot\ 2>nul || echo MediBot directory not found
|
320
|
+
echo.
|
321
|
+
echo Continuing without update script...
|
322
|
+
ping -n 2 127.0.0.1 >nul
|
323
|
+
)
|
324
|
+
)
|
325
|
+
)
|
326
|
+
|
327
|
+
:: Main menu
|
328
|
+
:main_menu
|
329
|
+
cls
|
330
|
+
echo Version: %medicafe_version%
|
331
|
+
echo --------------------------------------------------------------
|
332
|
+
echo .//* Welcome to MediBot *\\.
|
333
|
+
echo --------------------------------------------------------------
|
334
|
+
echo.
|
335
|
+
|
336
|
+
if "!internet_available!"=="0" (
|
337
|
+
echo NOTE: No internet detected. Options 1-5 require internet.
|
338
|
+
echo.
|
339
|
+
)
|
340
|
+
echo Please select an option:
|
341
|
+
echo.
|
342
|
+
echo 1. Update MediCafe
|
343
|
+
echo.
|
344
|
+
echo 2. Download Email de Carol
|
345
|
+
echo.
|
346
|
+
echo 3. MediLink Claims
|
347
|
+
echo.
|
348
|
+
echo 4. ^[United^] Claims Status
|
349
|
+
echo.
|
350
|
+
echo 5. ^[United^] Deductible
|
351
|
+
echo.
|
352
|
+
echo 6. Run MediBot
|
353
|
+
echo.
|
354
|
+
echo 7. Troubleshooting
|
355
|
+
echo.
|
356
|
+
echo 9. Toggle Performance Logging (session)
|
357
|
+
echo.
|
358
|
+
echo 8. Exit
|
359
|
+
echo.
|
360
|
+
set /p choice=Enter your choice:
|
361
|
+
|
362
|
+
:: Update option numbers
|
363
|
+
if "!choice!"=="8" goto end_script
|
364
|
+
if "!choice!"=="7" goto troubleshooting_menu
|
365
|
+
if "!choice!"=="6" goto medibot_flow
|
366
|
+
if "!choice!"=="5" goto united_deductible
|
367
|
+
if "!choice!"=="4" goto united_claims_status
|
368
|
+
if "!choice!"=="3" goto medilink_flow
|
369
|
+
if "!choice!"=="2" goto download_emails
|
370
|
+
if "!choice!"=="1" goto check_updates
|
371
|
+
if "!choice!"=="9" goto toggle_perf_logging
|
372
|
+
if "!choice!"=="0" goto end_script
|
373
|
+
|
374
|
+
echo Invalid choice. Please try again.
|
375
|
+
pause
|
376
|
+
goto main_menu
|
377
|
+
|
378
|
+
:: Medicafe Update
|
379
|
+
:check_updates
|
380
|
+
if "!internet_available!"=="0" (
|
381
|
+
echo [WARNING] No internet connection available.
|
382
|
+
goto main_menu
|
383
|
+
)
|
384
|
+
|
385
|
+
echo ========================================
|
386
|
+
echo Starting MediCafe Update Process
|
387
|
+
echo ========================================
|
388
|
+
echo.
|
389
|
+
|
390
|
+
:: Step 1: Check if update_medicafe.py exists in expected location
|
391
|
+
echo.
|
392
|
+
echo ========================================
|
393
|
+
echo DEBUG STEP 1: Checking for update script
|
394
|
+
echo ========================================
|
395
|
+
echo.
|
396
|
+
echo Checking for update script - priority: local first, then legacy path
|
397
|
+
if exist "%upgrade_medicafe_local%" (
|
398
|
+
echo [SUCCESS] Found update script at: %upgrade_medicafe_local%
|
399
|
+
echo File size:
|
400
|
+
dir "%upgrade_medicafe_local%" | find "update_medicafe.py"
|
401
|
+
set "upgrade_medicafe=%upgrade_medicafe_local%"
|
402
|
+
) else (
|
403
|
+
if exist "%upgrade_medicafe_legacy%" (
|
404
|
+
echo [SUCCESS] Found update script at legacy location: %upgrade_medicafe_legacy%
|
405
|
+
echo File size:
|
406
|
+
dir "%upgrade_medicafe_legacy%" | find "update_medicafe.py"
|
407
|
+
set "upgrade_medicafe=%upgrade_medicafe_legacy%"
|
408
|
+
) else (
|
409
|
+
echo [FAILED] Update script not found in either location:
|
410
|
+
echo - Local: %upgrade_medicafe_local%
|
411
|
+
echo - Legacy: %upgrade_medicafe_legacy%
|
412
|
+
echo.
|
413
|
+
echo Available files in current directory:
|
414
|
+
dir /b
|
415
|
+
echo.
|
416
|
+
echo Available files in MediBot directory:
|
417
|
+
dir /b MediBot\ 2>nul || echo MediBot directory not found
|
418
|
+
)
|
419
|
+
)
|
420
|
+
echo.
|
421
|
+
echo Press Enter to continue to step 2...
|
422
|
+
pause >nul
|
423
|
+
|
424
|
+
:: Step 2: Verify Python installation and path
|
425
|
+
echo.
|
426
|
+
echo ========================================
|
427
|
+
echo DEBUG STEP 2: Python Environment Check
|
428
|
+
echo ========================================
|
429
|
+
echo.
|
430
|
+
echo Checking Python installation...
|
431
|
+
python --version
|
432
|
+
if %errorlevel% neq 0 (
|
433
|
+
echo [ERROR] Python not found in PATH
|
434
|
+
echo Current PATH: %PATH%
|
435
|
+
) else (
|
436
|
+
echo [SUCCESS] Python found
|
437
|
+
echo Python executable:
|
438
|
+
python -c "import sys; print(sys.executable)"
|
439
|
+
echo Python version:
|
440
|
+
python --version
|
441
|
+
)
|
442
|
+
echo.
|
443
|
+
echo Checking pip installation...
|
444
|
+
python -m pip --version
|
445
|
+
if %errorlevel% neq 0 (
|
446
|
+
echo [ERROR] pip not found
|
447
|
+
) else (
|
448
|
+
echo [SUCCESS] pip found
|
449
|
+
echo pip version:
|
450
|
+
python -m pip --version
|
451
|
+
)
|
452
|
+
echo.
|
453
|
+
echo Press Enter to continue to step 3...
|
454
|
+
pause >nul
|
455
|
+
|
456
|
+
:: Step 3: Check MediCafe package installation
|
457
|
+
echo.
|
458
|
+
echo ========================================
|
459
|
+
echo DEBUG STEP 3: MediCafe Package Check
|
460
|
+
echo ========================================
|
461
|
+
echo.
|
462
|
+
echo Checking MediCafe package installation...
|
463
|
+
python -c "import pkg_resources; print('MediCafe=='+pkg_resources.get_distribution('medicafe').version)" 2>nul
|
464
|
+
if %errorlevel% neq 0 (
|
465
|
+
echo [ERROR] MediCafe package not found or error accessing
|
466
|
+
echo.
|
467
|
+
echo Checking if MediCafe is importable...
|
468
|
+
python -c "import MediCafe; print('MediCafe module found')" 2>nul
|
469
|
+
if %errorlevel% neq 0 (
|
470
|
+
echo [ERROR] MediCafe module not importable
|
471
|
+
) else (
|
472
|
+
echo [SUCCESS] MediCafe module is importable
|
473
|
+
)
|
474
|
+
) else (
|
475
|
+
echo [SUCCESS] MediCafe package found
|
476
|
+
echo Package version: %package_version%
|
477
|
+
)
|
478
|
+
echo.
|
479
|
+
echo Press Enter to continue to step 4...
|
480
|
+
pause >nul
|
481
|
+
|
482
|
+
:: Step 4: Check internet connectivity
|
483
|
+
echo.
|
484
|
+
echo ========================================
|
485
|
+
echo DEBUG STEP 4: Internet Connectivity
|
486
|
+
echo ========================================
|
487
|
+
echo.
|
488
|
+
echo Testing internet connectivity...
|
489
|
+
ping -n 1 google.com >nul 2>&1
|
490
|
+
if %errorlevel% neq 0 (
|
491
|
+
echo [ERROR] No internet connection detected
|
492
|
+
echo Cannot proceed with update without internet
|
493
|
+
echo.
|
494
|
+
echo Press Enter to return to main menu...
|
495
|
+
pause >nul
|
496
|
+
goto main_menu
|
497
|
+
)
|
498
|
+
|
499
|
+
echo Starting update process...
|
500
|
+
echo Update script: %upgrade_medicafe%
|
501
|
+
echo.
|
502
|
+
|
503
|
+
:: Check if update_medicafe.py exists using the new priority system
|
504
|
+
if exist "%upgrade_medicafe_local%" (
|
505
|
+
echo [INFO] Using local update script at: %upgrade_medicafe_local%
|
506
|
+
echo Command: python "%upgrade_medicafe_local%" %package_version%
|
507
|
+
|
508
|
+
:: Pre-execution diagnostics
|
509
|
+
echo.
|
510
|
+
echo [DIAGNOSTIC] Pre-execution checks for local script:
|
511
|
+
echo [DIAGNOSTIC] File size and permissions:
|
512
|
+
dir "%upgrade_medicafe_local%" 2>nul || echo [!] Cannot read file details
|
513
|
+
echo [DIAGNOSTIC] Testing Python access to file:
|
514
|
+
python -c "import os; print('[OK] Python can access file') if os.path.exists('%upgrade_medicafe_local%') else print('[ERROR] Python cannot access file')" 2>nul || echo [!] Python test failed
|
515
|
+
|
516
|
+
echo.
|
517
|
+
echo Press Enter to execute update command...
|
518
|
+
pause >nul
|
519
|
+
echo.
|
520
|
+
echo Executing update command...
|
521
|
+
echo.
|
522
|
+
echo The update window will open and show detailed progress.
|
523
|
+
echo All output will be displayed on screen.
|
524
|
+
echo.
|
525
|
+
start "Medicafe Update" cmd /v:on /c "echo [DIAGNOSTIC] About to execute: python \"%upgrade_medicafe_local%\" %package_version% & echo. & python \"%upgrade_medicafe_local%\" %package_version% & echo. & echo [DIAGNOSTIC] Python exit code: !ERRORLEVEL! & echo Update process completed. Press any key to close... & pause >nul" && (
|
526
|
+
echo %DATE% %TIME% Upgrade initiated successfully - local. >> "%temp_file%"
|
527
|
+
echo [SUCCESS] Update process started successfully
|
528
|
+
echo All output will be displayed in the update window.
|
529
|
+
) || (
|
530
|
+
echo %DATE% %TIME% Update failed - local. >> "%temp_file%"
|
531
|
+
echo [ERROR] Upgrade failed. Check the update window for details.
|
532
|
+
echo [DIAGNOSTIC] Possible causes for local script failure:
|
533
|
+
echo - Python not in PATH
|
534
|
+
echo - Script syntax error
|
535
|
+
echo - Missing Python dependencies
|
536
|
+
echo - File corruption
|
537
|
+
)
|
538
|
+
) else (
|
539
|
+
if exist "%upgrade_medicafe_legacy%" (
|
540
|
+
echo [INFO] Using legacy update script at: %upgrade_medicafe_legacy%
|
541
|
+
echo Command: python "%upgrade_medicafe_legacy%" %package_version%
|
542
|
+
|
543
|
+
:: Pre-execution diagnostics for F: drive
|
544
|
+
echo.
|
545
|
+
echo [DIAGNOSTIC] Pre-execution checks for F: drive script:
|
546
|
+
echo [DIAGNOSTIC] File size and permissions:
|
547
|
+
dir "%upgrade_medicafe_legacy%" 2>nul || echo [!] Cannot read file details
|
548
|
+
echo [DIAGNOSTIC] Testing Python access to F: drive file:
|
549
|
+
python -c "import os; print('[OK] Python can access F: drive file') if os.path.exists('%upgrade_medicafe_legacy%') else print('[ERROR] Python cannot access F: drive file')" 2>nul || echo [!] Python F: drive test failed
|
550
|
+
echo [DIAGNOSTIC] Testing file read permissions:
|
551
|
+
type "%upgrade_medicafe_legacy%" | find "#update_medicafe.py" >nul 2>&1 && echo [OK] File content readable || echo [ERROR] Cannot read file content
|
552
|
+
|
553
|
+
echo.
|
554
|
+
echo Press Enter to execute update command...
|
555
|
+
pause >nul
|
556
|
+
echo.
|
557
|
+
echo Executing update command...
|
558
|
+
start "Medicafe Update" cmd /v:on /c "echo [DIAGNOSTIC] About to execute: python \"%upgrade_medicafe_legacy%\" %package_version% & echo [DIAGNOSTIC] F: drive accessibility test... & dir F:\ ^| find \"Directory of\" ^>nul 2^>^&1 ^&^& echo [OK] F: drive accessible ^|^| echo [ERROR] F: drive access lost & echo. & python \"%upgrade_medicafe_legacy%\" %package_version% & echo. & echo [DIAGNOSTIC] Python exit code: !ERRORLEVEL! & echo Update process completed. Press any key to close... & pause >nul" && (
|
559
|
+
echo %DATE% %TIME% Upgrade initiated successfully - legacy. >> "%temp_file%"
|
560
|
+
echo [SUCCESS] Update process started successfully
|
561
|
+
echo All output will be displayed in the update window.
|
562
|
+
) || (
|
563
|
+
echo %DATE% %TIME% Update failed - legacy. >> "%temp_file%"
|
564
|
+
echo [ERROR] Upgrade failed. Check the update window for details.
|
565
|
+
echo [DIAGNOSTIC] Possible causes for F: drive script failure:
|
566
|
+
echo - F: drive disconnected during execution
|
567
|
+
echo - Permission denied accessing F: drive
|
568
|
+
echo - F: drive file locked by antivirus
|
569
|
+
echo - Network drive timeout
|
570
|
+
echo - Python cannot access network paths
|
571
|
+
)
|
572
|
+
) else (
|
573
|
+
echo [ERROR] update_medicafe.py not found in either location
|
574
|
+
echo Expected locations:
|
575
|
+
echo - Local: %upgrade_medicafe_local%
|
576
|
+
echo - Legacy: %upgrade_medicafe_legacy%
|
577
|
+
echo.
|
578
|
+
echo Current directory contents:
|
579
|
+
dir /b
|
580
|
+
echo.
|
581
|
+
echo MediBot directory contents:
|
582
|
+
dir /b MediBot\ 2>nul || echo MediBot directory not found
|
583
|
+
echo.
|
584
|
+
echo %DATE% %TIME% Update failed - script not found. >> "%temp_file%"
|
585
|
+
echo.
|
586
|
+
echo Press Enter to return to main menu...
|
587
|
+
pause >nul
|
588
|
+
goto main_menu
|
589
|
+
)
|
590
|
+
|
591
|
+
echo.
|
592
|
+
echo Update process has been initiated.
|
593
|
+
echo All output will be displayed in the update window.
|
594
|
+
echo.
|
595
|
+
pause
|
596
|
+
goto main_menu
|
597
|
+
|
598
|
+
:: Download Carol's Emails
|
599
|
+
:download_emails
|
600
|
+
if "!internet_available!"=="0" (
|
601
|
+
echo [WARNING] No internet connection available.
|
602
|
+
goto main_menu
|
603
|
+
)
|
604
|
+
|
605
|
+
call "%~dp0process_csvs.bat"
|
606
|
+
cls
|
607
|
+
echo Starting email download via MediCafe...
|
608
|
+
cd /d "%~dp0.."
|
609
|
+
python -m MediCafe download_emails
|
610
|
+
if errorlevel 1 (
|
611
|
+
echo [ERROR] Failed to download emails.
|
612
|
+
pause
|
613
|
+
)
|
614
|
+
|
615
|
+
pause
|
616
|
+
goto main_menu
|
617
|
+
|
618
|
+
:: MediBot Flow
|
619
|
+
:medibot_flow
|
620
|
+
cls
|
621
|
+
echo Starting MediBot flow...
|
622
|
+
cd /d "%~dp0.."
|
623
|
+
python -m MediCafe medibot
|
624
|
+
if errorlevel 1 (
|
625
|
+
echo [ERROR] Failed to start MediBot flow.
|
626
|
+
pause
|
627
|
+
)
|
628
|
+
|
629
|
+
pause
|
630
|
+
goto main_menu
|
631
|
+
|
632
|
+
:: MediLink Flow
|
633
|
+
:medilink_flow
|
634
|
+
cls
|
635
|
+
echo Starting MediLink flow...
|
636
|
+
cd /d "%~dp0.."
|
637
|
+
python -m MediCafe medilink
|
638
|
+
if errorlevel 1 (
|
639
|
+
echo [ERROR] Failed to start MediLink flow.
|
640
|
+
pause
|
641
|
+
)
|
642
|
+
|
643
|
+
pause
|
644
|
+
goto main_menu
|
645
|
+
|
646
|
+
:toggle_perf_logging
|
647
|
+
cls
|
648
|
+
echo ========================================
|
649
|
+
echo Performance Logging (session toggle)
|
650
|
+
echo ========================================
|
651
|
+
echo.
|
652
|
+
if /I "%MEDICAFE_PERFORMANCE_LOGGING%"=="1" (
|
653
|
+
set "MEDICAFE_PERFORMANCE_LOGGING=0"
|
654
|
+
echo Turned OFF performance logging for this session.
|
655
|
+
) else (
|
656
|
+
set "MEDICAFE_PERFORMANCE_LOGGING=1"
|
657
|
+
echo Turned ON performance logging for this session.
|
658
|
+
)
|
659
|
+
echo.
|
660
|
+
echo Note: This affects current session only. To persist, set in config.json.
|
661
|
+
pause
|
662
|
+
goto main_menu
|
663
|
+
|
664
|
+
:: United Claims Status
|
665
|
+
:united_claims_status
|
666
|
+
cls
|
667
|
+
echo Starting United Claims Status...
|
668
|
+
cd /d "%~dp0.."
|
669
|
+
python -m MediCafe claims_status
|
670
|
+
if errorlevel 1 (
|
671
|
+
echo [ERROR] Failed to start United Claims Status.
|
672
|
+
pause
|
673
|
+
)
|
674
|
+
|
675
|
+
pause
|
676
|
+
goto main_menu
|
677
|
+
|
678
|
+
:: United Deductible
|
679
|
+
:united_deductible
|
680
|
+
cls
|
681
|
+
echo Starting United Deductible...
|
682
|
+
cd /d "%~dp0.."
|
683
|
+
python -m MediCafe deductible
|
684
|
+
if errorlevel 1 (
|
685
|
+
echo [ERROR] Failed to start United Deductible.
|
686
|
+
pause
|
687
|
+
)
|
688
|
+
|
689
|
+
pause
|
690
|
+
goto main_menu
|
691
|
+
|
692
|
+
:: Process CSV Files moved to external script
|
693
|
+
:process_csvs
|
694
|
+
call "%~dp0process_csvs.bat"
|
695
|
+
goto :eof
|
696
|
+
|
697
|
+
REM [removed legacy :clear_cache block in favor of :clear_cache_menu]
|
698
|
+
|
699
|
+
REM [removed duplicate :clear_cache quick block; use :clear_cache_menu instead]
|
700
|
+
|
701
|
+
:: Clear Cache submenu (Quick vs Deep)
|
702
|
+
:clear_cache_menu
|
703
|
+
cls
|
704
|
+
echo ========================================
|
705
|
+
echo Clear Python Cache
|
706
|
+
echo ========================================
|
707
|
+
echo.
|
708
|
+
echo 1. Quick clear - compileall + delete __pycache__
|
709
|
+
echo 2. Deep clear via update_medicafe.py
|
710
|
+
echo 3. Back
|
711
|
+
echo.
|
712
|
+
set /p cc_choice=Enter your choice:
|
713
|
+
if "%cc_choice%"=="1" goto clear_cache_quick
|
714
|
+
if "%cc_choice%"=="2" goto clear_cache_deep
|
715
|
+
if "%cc_choice%"=="3" goto troubleshooting_menu
|
716
|
+
echo Invalid choice. Press any key to continue...
|
717
|
+
pause >nul
|
718
|
+
goto clear_cache_menu
|
719
|
+
|
720
|
+
:clear_cache_quick
|
721
|
+
echo Running quick cache clear...
|
722
|
+
call "%~dp0clear_cache.bat" --quick
|
723
|
+
pause
|
724
|
+
goto troubleshooting_menu
|
725
|
+
|
726
|
+
:clear_cache_deep
|
727
|
+
cls
|
728
|
+
echo Deep cache clear using update_medicafe.py...
|
729
|
+
echo.
|
730
|
+
call "%~dp0clear_cache.bat" --deep
|
731
|
+
pause
|
732
|
+
goto troubleshooting_menu
|
733
|
+
|
734
|
+
:: Troubleshooting Submenu
|
735
|
+
:troubleshooting_menu
|
736
|
+
cls
|
737
|
+
echo Troubleshooting Options:
|
738
|
+
echo.
|
739
|
+
echo 1. Open Latest Log File
|
740
|
+
echo 2. Clear Python Cache
|
741
|
+
echo 3. Forced MediCafe version rollback - no dependencies
|
742
|
+
echo 4. Back to Main Menu
|
743
|
+
echo.
|
744
|
+
set /p tchoice=Enter your choice:
|
745
|
+
if "%tchoice%"=="1" goto open_latest_log
|
746
|
+
if "%tchoice%"=="2" goto clear_cache_menu
|
747
|
+
if "%tchoice%"=="3" goto forced_version_rollback
|
748
|
+
if "%tchoice%"=="4" goto main_menu
|
749
|
+
echo Invalid choice. Please try again.
|
750
|
+
pause
|
751
|
+
goto troubleshooting_menu
|
752
|
+
|
753
|
+
:: Open Latest Log (streamlined)
|
754
|
+
:open_latest_log
|
755
|
+
echo Opening the latest log file...
|
756
|
+
set "latest_log="
|
757
|
+
for /f "delims=" %%a in ('dir /b /a-d /o-d "%local_storage_path%\*.log" 2^>nul') do (
|
758
|
+
set "latest_log=%%a"
|
759
|
+
goto open_log_found
|
760
|
+
)
|
761
|
+
|
762
|
+
echo No log files found in %local_storage_path%.
|
763
|
+
pause
|
764
|
+
goto troubleshooting_menu
|
765
|
+
|
766
|
+
:: End Script
|
767
|
+
:end_script
|
768
|
+
echo Exiting MediBot
|
769
|
+
exit /b 0
|
770
|
+
|
771
|
+
:: Full Debug Mode moved to external script full_debug_suite.bat
|
772
|
+
|
773
|
+
:: Opened log file handling and helpers
|
774
|
+
:open_log_found
|
775
|
+
echo Found log file: %latest_log%
|
776
|
+
start notepad "%local_storage_path%\%latest_log%" >nul 2>&1
|
777
|
+
if %errorlevel% neq 0 (
|
778
|
+
start write "%local_storage_path%\%latest_log%" >nul 2>&1
|
779
|
+
)
|
780
|
+
if %errorlevel% neq 0 (
|
781
|
+
call :tail "%local_storage_path%\%latest_log%" 50
|
782
|
+
)
|
783
|
+
pause
|
784
|
+
goto troubleshooting_menu
|
785
|
+
|
786
|
+
:: Forced version rollback for MediCafe (hardcoded version placeholder)
|
787
|
+
:forced_version_rollback
|
788
|
+
cls
|
789
|
+
echo ========================================
|
790
|
+
echo Forced MediCafe Version Rollback
|
791
|
+
echo ========================================
|
792
|
+
echo.
|
793
|
+
if "!internet_available!"=="0" (
|
794
|
+
echo No internet connection available.
|
795
|
+
echo Cannot proceed with rollback without internet.
|
796
|
+
pause >nul
|
797
|
+
goto troubleshooting_menu
|
798
|
+
)
|
799
|
+
set "rollback_version=0.250529.2"
|
800
|
+
echo Forcing reinstall of %medicafe_package%==%rollback_version% with no dependencies...
|
801
|
+
python -m pip install --no-deps --force-reinstall %medicafe_package%==%rollback_version%
|
802
|
+
if errorlevel 1 (
|
803
|
+
echo.
|
804
|
+
echo [ERROR] Forced rollback failed.
|
805
|
+
pause >nul
|
806
|
+
goto troubleshooting_menu
|
807
|
+
)
|
808
|
+
|
809
|
+
:: Refresh displayed MediCafe version
|
810
|
+
set "package_version="
|
811
|
+
python -c "import pkg_resources; print('MediCafe=='+pkg_resources.get_distribution('medicafe').version)" > temp.txt 2>nul
|
812
|
+
set /p package_version=<temp.txt
|
813
|
+
if exist temp.txt del temp.txt
|
814
|
+
if defined package_version (
|
815
|
+
for /f "tokens=2 delims==" %%a in ("%package_version%") do (
|
816
|
+
set "medicafe_version=%%a"
|
817
|
+
)
|
818
|
+
)
|
819
|
+
echo.
|
820
|
+
echo Rollback complete. Current MediCafe version: %medicafe_version%
|
821
|
+
pause >nul
|
822
|
+
goto troubleshooting_menu
|
823
|
+
|
824
|
+
:: Subroutine to display the last N lines of a file
|
825
|
+
:tail
|
826
|
+
:: Usage: call :tail filename number_of_lines
|
827
|
+
setlocal
|
828
|
+
set "file=%~1"
|
829
|
+
set /a lines=%~2
|
830
|
+
|
831
|
+
:: Get total line count robustly (avoid prefixed output)
|
832
|
+
set "count=0"
|
833
|
+
for /f %%a in ('type "%file%" ^| find /v /c ""') do set count=%%a
|
834
|
+
|
835
|
+
:: Compute starting line; clamp to 1
|
836
|
+
set /a start=count-lines+1
|
837
|
+
if !start! lss 1 set start=1
|
838
|
+
|
839
|
+
for /f "tokens=1* delims=:" %%a in ('findstr /n .* "%file%"') do (
|
840
|
+
if %%a geq !start! echo %%b
|
841
|
+
)
|
842
|
+
endlocal & goto :eof
|