medicafe 0.250725.5__tar.gz → 0.250725.7__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.250725.5 → medicafe-0.250725.7}/MediBot/MediBot.py +4 -4
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_UI.py +49 -11
- {medicafe-0.250725.5 → medicafe-0.250725.7}/PKG-INFO +1 -1
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/PKG-INFO +1 -1
- {medicafe-0.250725.5 → medicafe-0.250725.7}/setup.py +1 -1
- {medicafe-0.250725.5 → medicafe-0.250725.7}/LICENSE +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MANIFEST.in +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot.bat +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_Charges.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_Crosswalk_Library.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_Post.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_Preprocessor.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_Preprocessor_lib.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_dataformat_library.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/MediBot_docx_decoder.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/PDF_to_CSV_Cleaner.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/__init__.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/update_json.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediBot/update_medicafe.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_837p_cob_library.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_837p_encoder.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_837p_encoder_library.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_837p_utilities.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_API_Generator.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_API_v2.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_API_v3.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_APIs.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Azure.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_ClaimStatus.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_ConfigLoader.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_DataMgmt.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Decoder.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Deductible.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Deductible_Validator.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Down.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Gmail.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_GraphQL.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Mailer.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Parser.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Scan.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Scheduler.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_UI.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_Up.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/MediLink_batch.bat +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/Soumit_api.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/__init__.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/openssl.cnf +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/test.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/test_cob_library.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/test_validation.py +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/MediLink/webapp.html +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/README.md +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/SOURCES.txt +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/dependency_links.txt +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/not-zip-safe +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/requires.txt +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/medicafe.egg-info/top_level.txt +0 -0
- {medicafe-0.250725.5 → medicafe-0.250725.7}/setup.cfg +0 -0
|
@@ -433,8 +433,8 @@ if __name__ == "__main__":
|
|
|
433
433
|
# Flush console input buffer to remove any stray CR/LF
|
|
434
434
|
flush_console_input_buffer()
|
|
435
435
|
|
|
436
|
-
# Use
|
|
437
|
-
proceed =
|
|
436
|
+
# Use input() for more reliable input on Windows XP
|
|
437
|
+
proceed = input().lower().strip() in ['yes', 'y']
|
|
438
438
|
else:
|
|
439
439
|
print("\nDo you want to proceed with the {} remaining patient(s)? (yes/no): ".format(len(patients_to_process)), end='', flush=True)
|
|
440
440
|
# Force flush and wait for Windows XP console buffer synchronization
|
|
@@ -444,8 +444,8 @@ if __name__ == "__main__":
|
|
|
444
444
|
# Flush console input buffer to remove any stray CR/LF
|
|
445
445
|
flush_console_input_buffer()
|
|
446
446
|
|
|
447
|
-
# Use
|
|
448
|
-
proceed =
|
|
447
|
+
# Use input() for more reliable input on Windows XP
|
|
448
|
+
proceed = input().lower().strip() in ['yes', 'y']
|
|
449
449
|
|
|
450
450
|
# TODO: Here is where we need to add the step where we move to MediBot_Charges.
|
|
451
451
|
# The return is an enriched dataset to be picked up by MediBot which means we need to return:
|
|
@@ -27,15 +27,38 @@ def flush_console_input_buffer():
|
|
|
27
27
|
if sys.platform != "win32":
|
|
28
28
|
return # no-op on non-Windows
|
|
29
29
|
|
|
30
|
+
print("DEBUG: Starting flush_console_input_buffer()")
|
|
31
|
+
|
|
32
|
+
# Check what's in the buffer before flushing
|
|
33
|
+
chars_in_buffer = []
|
|
34
|
+
while msvcrt.kbhit():
|
|
35
|
+
ch = msvcrt.getch()
|
|
36
|
+
chars_in_buffer.append(ch)
|
|
37
|
+
|
|
38
|
+
if chars_in_buffer:
|
|
39
|
+
print("DEBUG: Found {} chars in buffer before flush: {}".format(len(chars_in_buffer), chars_in_buffer))
|
|
40
|
+
else:
|
|
41
|
+
print("DEBUG: No chars found in buffer before flush")
|
|
42
|
+
|
|
30
43
|
try:
|
|
31
44
|
kernel32 = ctypes.WinDLL('kernel32', use_last_error=True)
|
|
32
45
|
STD_INPUT_HANDLE = -10
|
|
33
46
|
h_stdin = kernel32.GetStdHandle(STD_INPUT_HANDLE)
|
|
34
|
-
kernel32.FlushConsoleInputBuffer(h_stdin)
|
|
35
|
-
|
|
47
|
+
result = kernel32.FlushConsoleInputBuffer(h_stdin)
|
|
48
|
+
print("DEBUG: FlushConsoleInputBuffer API call result: {}".format(result))
|
|
49
|
+
except Exception as e:
|
|
50
|
+
print("DEBUG: FlushConsoleInputBuffer API failed: {}".format(e))
|
|
36
51
|
# Fallback: drain any leading newlines manually
|
|
52
|
+
fallback_chars = []
|
|
37
53
|
while msvcrt.kbhit():
|
|
38
|
-
msvcrt.getch()
|
|
54
|
+
ch = msvcrt.getch()
|
|
55
|
+
fallback_chars.append(ch)
|
|
56
|
+
if fallback_chars:
|
|
57
|
+
print("DEBUG: Fallback removed {} chars: {}".format(len(fallback_chars), fallback_chars))
|
|
58
|
+
else:
|
|
59
|
+
print("DEBUG: Fallback found no chars to remove")
|
|
60
|
+
|
|
61
|
+
print("DEBUG: flush_console_input_buffer() completed")
|
|
39
62
|
|
|
40
63
|
def discard_leading_blank():
|
|
41
64
|
"""
|
|
@@ -185,8 +208,8 @@ def display_patient_selection_menu(csv_data, reverse_mapping, proceed_as_medicar
|
|
|
185
208
|
# Flush console input buffer to remove any stray CR/LF
|
|
186
209
|
flush_console_input_buffer()
|
|
187
210
|
|
|
188
|
-
# Use
|
|
189
|
-
proceed =
|
|
211
|
+
# Use input() for more reliable input on Windows XP
|
|
212
|
+
proceed = input().lower().strip() in ['yes', 'y']
|
|
190
213
|
|
|
191
214
|
if not proceed:
|
|
192
215
|
display_menu_header("Patient Selection for Today's Data Entry")
|
|
@@ -203,8 +226,8 @@ def display_patient_selection_menu(csv_data, reverse_mapping, proceed_as_medicar
|
|
|
203
226
|
# Flush console input buffer to remove any stray CR/LF
|
|
204
227
|
flush_console_input_buffer()
|
|
205
228
|
|
|
206
|
-
# Use
|
|
207
|
-
selection =
|
|
229
|
+
# Use input() for more reliable input on Windows XP
|
|
230
|
+
selection = input().strip()
|
|
208
231
|
if not selection:
|
|
209
232
|
print("Invalid entry. Please provide at least one number.")
|
|
210
233
|
continue
|
|
@@ -286,8 +309,8 @@ def handle_user_interaction(interaction_mode, error_message):
|
|
|
286
309
|
# Flush console input buffer to remove any stray CR/LF
|
|
287
310
|
flush_console_input_buffer()
|
|
288
311
|
|
|
289
|
-
# Use
|
|
290
|
-
choice =
|
|
312
|
+
# Use input() for more reliable input on Windows XP
|
|
313
|
+
choice = input().strip()
|
|
291
314
|
|
|
292
315
|
if choice == '1':
|
|
293
316
|
print("Selected: 'Retry last entry'. Please press 'F12' to continue.")
|
|
@@ -328,8 +351,23 @@ def user_interaction(csv_data, interaction_mode, error_message, reverse_mapping)
|
|
|
328
351
|
sys.stdout.flush()
|
|
329
352
|
time.sleep(0.2) # Increased delay for Windows XP
|
|
330
353
|
|
|
331
|
-
|
|
332
|
-
|
|
354
|
+
print("DEBUG: About to call input() - waiting for user...")
|
|
355
|
+
# Use input() for more reliable input on Windows XP
|
|
356
|
+
response = input().lower().strip()
|
|
357
|
+
|
|
358
|
+
# Debug: Print what we actually got
|
|
359
|
+
print("DEBUG: Got response: '{}' (length: {})".format(response, len(response)))
|
|
360
|
+
print("DEBUG: Response type: {}, repr: {}".format(type(response), repr(response)))
|
|
361
|
+
|
|
362
|
+
# If we got an empty response, it means there was a stray newline
|
|
363
|
+
# Let's try one more time after clearing the buffer again
|
|
364
|
+
if not response:
|
|
365
|
+
print("Empty response detected - clearing buffer and trying again...")
|
|
366
|
+
print("DEBUG: About to flush buffer again...")
|
|
367
|
+
flush_console_input_buffer()
|
|
368
|
+
print("DEBUG: About to call input() for second attempt...")
|
|
369
|
+
response = input().lower().strip()
|
|
370
|
+
print("DEBUG: Second attempt got: '{}' (length: {})".format(response, len(response)))
|
|
333
371
|
|
|
334
372
|
if response:
|
|
335
373
|
if response in ['yes', 'y']:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|