medicafe 0.250820.7__py3-none-any.whl → 0.250822.1__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.
@@ -221,7 +221,7 @@ def manual_deductible_lookup():
221
221
 
222
222
  # Use the current mode setting for validation
223
223
  run_validation = DEBUG_MODE
224
- eligibility_data = get_eligibility_info(client, payer_id, provider_last_name, formatted_dob, member_id, npi, run_validation=run_validation)
224
+ eligibility_data = get_eligibility_info(client, payer_id, provider_last_name, formatted_dob, member_id, npi, run_validation=run_validation, is_manual_lookup=True)
225
225
  if eligibility_data:
226
226
  found_data = True
227
227
  # Generate unique output file for manual request
@@ -255,7 +255,7 @@ def manual_deductible_lookup():
255
255
 
256
256
 
257
257
  # Function to get eligibility information
258
- def get_eligibility_info(client, payer_id, provider_last_name, date_of_birth, member_id, npi, run_validation=False):
258
+ def get_eligibility_info(client, payer_id, provider_last_name, date_of_birth, member_id, npi, run_validation=False, is_manual_lookup=False):
259
259
  try:
260
260
  # Log the parameters being sent to the function
261
261
  MediLink_ConfigLoader.log("Calling eligibility check with parameters:", level="DEBUG")
@@ -286,52 +286,72 @@ def get_eligibility_info(client, payer_id, provider_last_name, date_of_birth, me
286
286
  except Exception as e:
287
287
  MediLink_ConfigLoader.log("Super Connector API failed: {}".format(e), level="ERROR")
288
288
 
289
- # Run validation if we have both responses
290
- # BUG: XP doesn't give shit about generating the validation report or opening the notepad. So we need to fix this.
291
- if legacy_eligibility and super_connector_eligibility:
292
- validation_file_path = os.path.join(os.getenv('TEMP'), 'validation_report_{}_{}.txt'.format(member_id, date_of_birth))
293
- try:
289
+ # Run validation if we have at least one response
290
+ # Generate validation report even if one API fails - this helps with debugging
291
+ validation_file_path = os.path.join(os.getenv('TEMP'), 'validation_report_{}_{}.txt'.format(member_id, date_of_birth))
292
+ try:
293
+ if legacy_eligibility and super_connector_eligibility:
294
+ # Both APIs returned data - run full comparison
294
295
  validation_report = MediLink_Deductible_Validator.run_validation_comparison(
295
296
  legacy_eligibility, super_connector_eligibility, validation_file_path
296
297
  )
297
- if os.path.exists(validation_file_path):
298
- print("\nValidation report generated: {}".format(validation_file_path))
299
-
300
- # Log any Super Connector API errors
301
- if "rawGraphQLResponse" in super_connector_eligibility:
302
- raw_response = super_connector_eligibility.get('rawGraphQLResponse', {})
303
- errors = raw_response.get('errors', [])
304
- if errors:
305
- print("Super Connector API returned {} error(s):".format(len(errors)))
306
- for i, error in enumerate(errors):
307
- error_code = error.get('code', 'UNKNOWN')
308
- error_desc = error.get('description', 'No description')
309
- print(" Error {}: {} - {}".format(i+1, error_code, error_desc))
310
-
311
- # Check for data in error extensions (some APIs return data here)
312
- extensions = error.get('extensions', {})
313
- if extensions and 'details' in extensions:
314
- details = extensions.get('details', [])
315
- if details:
316
- print(" Found {} detail records in error extensions".format(len(details)))
317
- # Log first detail record for debugging
318
- if details:
319
- first_detail = details[0]
320
- print(" First detail: {}".format(first_detail))
298
+ print("\nValidation report generated (both APIs): {}".format(validation_file_path))
299
+ elif legacy_eligibility:
300
+ # Only legacy API returned data
301
+ validation_report = MediLink_Deductible_Validator.run_validation_comparison(
302
+ legacy_eligibility, None, validation_file_path
303
+ )
304
+ print("\nValidation report generated (legacy only): {}".format(validation_file_path))
305
+ elif super_connector_eligibility:
306
+ # Only Super Connector API returned data
307
+ validation_report = MediLink_Deductible_Validator.run_validation_comparison(
308
+ None, super_connector_eligibility, validation_file_path
309
+ )
310
+ print("\nValidation report generated (Super Connector only): {}".format(validation_file_path))
311
+ else:
312
+ # Neither API returned data
313
+ print("\nNo validation report generated - both APIs failed")
314
+ validation_file_path = None
321
315
 
322
- # Check status code
323
- status_code = super_connector_eligibility.get('statuscode')
324
- if status_code and status_code != '200':
325
- print("Super Connector API status code: {} (non-200 indicates errors)".format(status_code))
326
-
327
- # Open validation report in Notepad
316
+ # Log any Super Connector API errors if we have that data
317
+ if super_connector_eligibility and "rawGraphQLResponse" in super_connector_eligibility:
318
+ raw_response = super_connector_eligibility.get('rawGraphQLResponse', {})
319
+ errors = raw_response.get('errors', [])
320
+ if errors:
321
+ print("Super Connector API returned {} error(s):".format(len(errors)))
322
+ for i, error in enumerate(errors):
323
+ error_code = error.get('code', 'UNKNOWN')
324
+ error_desc = error.get('description', 'No description')
325
+ print(" Error {}: {} - {}".format(i+1, error_code, error_desc))
326
+
327
+ # Check for data in error extensions (some APIs return data here)
328
+ extensions = error.get('extensions', {})
329
+ if extensions and 'details' in extensions:
330
+ details = extensions.get('details', [])
331
+ if details:
332
+ print(" Found {} detail records in error extensions".format(len(details)))
333
+ # Log first detail record for debugging
334
+ if details:
335
+ first_detail = details[0]
336
+ print(" First detail: {}".format(first_detail))
337
+
338
+ # Check status code
339
+ if super_connector_eligibility:
340
+ status_code = super_connector_eligibility.get('statuscode')
341
+ if status_code and status_code != '200':
342
+ print("Super Connector API status code: {} (non-200 indicates errors)".format(status_code))
343
+
344
+ # Open validation report in Notepad (only for manual lookups, not batch processing)
345
+ if validation_file_path and os.path.exists(validation_file_path):
346
+ # Only open in manual mode - batch processing will handle this separately
347
+ if is_manual_lookup: # Check if we're in manual lookup mode
328
348
  ret = os.system('notepad.exe "{}"'.format(validation_file_path))
329
349
  if ret != 0:
330
350
  print("Failed to open Notepad (exit code: {}). Please open manually: {}".format(ret, validation_file_path))
331
- else:
332
- print("\nValidation report file was not created: {}".format(validation_file_path))
333
- except Exception as e:
334
- print("\nError generating validation report: {}".format(str(e)))
351
+ elif validation_file_path:
352
+ print("\nValidation report file was not created: {}".format(validation_file_path))
353
+ except Exception as e:
354
+ print("\nError generating validation report: {}".format(str(e)))
335
355
 
336
356
  # Return legacy response for consistency
337
357
  eligibility = legacy_eligibility
@@ -878,6 +898,7 @@ if __name__ == "__main__":
878
898
  errors = []
879
899
  validation_reports = []
880
900
  processed_count = 0
901
+ validation_files_created = [] # Track validation files that were actually created
881
902
 
882
903
  for dob, member_id in patients:
883
904
  processed_count += 1
@@ -890,10 +911,18 @@ if __name__ == "__main__":
890
911
  try:
891
912
  # Run with validation enabled only in debug mode
892
913
  run_validation = DEBUG_MODE
893
- eligibility_data = get_eligibility_info(client, payer_id, provider_last_name, dob, member_id, npi, run_validation=run_validation)
914
+ eligibility_data = get_eligibility_info(client, payer_id, provider_last_name, dob, member_id, npi, run_validation=run_validation, is_manual_lookup=False)
894
915
  if eligibility_data is not None:
895
916
  display_eligibility_info(eligibility_data, dob, member_id, output_file)
896
917
  patient_processed = True
918
+
919
+ # Track validation file creation in debug mode
920
+ if DEBUG_MODE:
921
+ validation_file_path = os.path.join(os.getenv('TEMP'), 'validation_report_{}_{}.txt'.format(member_id, dob))
922
+ if os.path.exists(validation_file_path):
923
+ validation_files_created.append(validation_file_path)
924
+ print(" Validation report created: {}".format(os.path.basename(validation_file_path)))
925
+
897
926
  break # Stop trying other payer_ids for this patient once we get a response
898
927
  except Exception as e:
899
928
  # Continue trying other payer_ids
@@ -924,9 +953,26 @@ if __name__ == "__main__":
924
953
  print("\n" + "=" * 80)
925
954
  print("VALIDATION SUMMARY")
926
955
  print("=" * 80)
927
- print("Validation reports have been generated for each patient processed.")
928
- print("Each report compares the legacy API response with the Super Connector API response.")
929
- print("Check the TEMP directory for validation_report_*.txt files.")
956
+ if validation_files_created:
957
+ print("Validation reports generated: {} files".format(len(validation_files_created)))
958
+ print("Files created:")
959
+ for file_path in validation_files_created:
960
+ print(" - {}".format(os.path.basename(file_path)))
961
+
962
+ # Ask if user wants to open validation reports
963
+ open_validation = input("\nOpen validation reports in Notepad? (Y/N): ").strip().lower()
964
+ if open_validation in ['y', 'yes']:
965
+ for file_path in validation_files_created:
966
+ print("Opening: {}".format(os.path.basename(file_path)))
967
+ ret = os.system('notepad.exe "{}"'.format(file_path))
968
+ if ret != 0:
969
+ print("Failed to open Notepad for: {}".format(os.path.basename(file_path)))
970
+ else:
971
+ print("No validation reports were generated.")
972
+ print("This may be because:")
973
+ print(" - Super Connector API calls failed")
974
+ print(" - Both APIs didn't return data for the same patients")
975
+ print(" - Validation report generation encountered errors")
930
976
  print("=" * 80)
931
977
 
932
978
  # Ask if user wants to continue
@@ -424,9 +424,16 @@ def generate_validation_report(validation_report, output_file_path):
424
424
  f.write("Recommendation: {}\n".format(issue['recommendation']))
425
425
  f.write("\n")
426
426
 
427
+ # API Status Information
428
+ if "legacy_api_status" in validation_report["super_connector_analysis"]:
429
+ f.write("\nAPI STATUS:\n")
430
+ f.write("-" * 50 + "\n")
431
+ f.write("Legacy API: {}\n".format(validation_report["super_connector_analysis"]["legacy_api_status"]))
432
+ f.write("Super Connector API: {}\n".format(validation_report["super_connector_analysis"]["super_connector_api_status"]))
433
+
427
434
  # Super Connector structure analysis
428
435
  if "structure" in validation_report["super_connector_analysis"]:
429
- f.write("SUPER CONNECTOR RESPONSE STRUCTURE:\n")
436
+ f.write("\nSUPER CONNECTOR RESPONSE STRUCTURE:\n")
430
437
  f.write("-" * 50 + "\n")
431
438
  for path, description in validation_report["super_connector_analysis"]["structure"].items():
432
439
  f.write("{}: {}\n".format(path, description))
@@ -468,12 +475,42 @@ def run_validation_comparison(legacy_data, super_connector_data, output_file_pat
468
475
  """
469
476
  Main function to run the validation comparison
470
477
  """
471
- # Extract values from legacy response
478
+ # Handle cases where one or both APIs failed
479
+ if not legacy_data and not super_connector_data:
480
+ # Both APIs failed - create a minimal report
481
+ validation_report = {
482
+ "timestamp": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
483
+ "legacy_values": {},
484
+ "super_connector_analysis": {"error": "Both APIs failed to return data"},
485
+ "missing_values": [],
486
+ "found_values": [],
487
+ "data_quality_issues": [{
488
+ "type": "API Failure",
489
+ "field": "Both APIs",
490
+ "issue": "Both Legacy API and Super Connector API failed to return data",
491
+ "recommendation": "Check API connectivity and credentials"
492
+ }]
493
+ }
494
+ generate_validation_report(validation_report, output_file_path)
495
+ return validation_report
496
+
497
+ # Extract values from legacy response (handles None gracefully)
472
498
  legacy_values = extract_legacy_values_for_comparison(legacy_data)
473
499
 
474
- # Validate Super Connector response
500
+ # Validate Super Connector response (handles None gracefully)
475
501
  validation_report = validate_super_connector_response(legacy_values, super_connector_data)
476
502
 
503
+ # Add API status information
504
+ if not legacy_data:
505
+ validation_report["super_connector_analysis"]["legacy_api_status"] = "Failed"
506
+ else:
507
+ validation_report["super_connector_analysis"]["legacy_api_status"] = "Success"
508
+
509
+ if not super_connector_data:
510
+ validation_report["super_connector_analysis"]["super_connector_api_status"] = "Failed"
511
+ else:
512
+ validation_report["super_connector_analysis"]["super_connector_api_status"] = "Success"
513
+
477
514
  # Generate report
478
515
  generate_validation_report(validation_report, output_file_path)
479
516
 
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.250820.7"
25
+ __version__ = "0.250822.1"
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.250820.7
3
+ Version: 0.250822.1
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -1,18 +1,18 @@
1
1
  MediBot/MediBot.bat,sha256=dWBZ2__t1uPvEuN76ETOD_mDo7368rP3tDrJd4MHCFY,26306
2
- MediBot/MediBot.py,sha256=j6yGetDQxonIepD_J-bJ5L_WiW9XRxOkIHiVAM_blfE,47083
3
- MediBot/MediBot_Charges.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ MediBot/MediBot.py,sha256=sx6nZYUhFMnr4UcBR07BcrSo-IgmL1xaYRF_C-bwDAU,48243
3
+ MediBot/MediBot_Charges.py,sha256=a28if_f_IoazIHiqlaFosFnfEgEoCwb9LQ6aOyk5-D0,10704
4
4
  MediBot/MediBot_Crosswalk_Library.py,sha256=jIaYdoxfT9YgQ5dWZC4jmTYxRX1Y14X-AJ6YEjR58Gc,25158
5
5
  MediBot/MediBot_Crosswalk_Utils.py,sha256=hTLPioU9A5XfdTZ7LqeOiYXdsi8Bwf9fuMJGxofyTmg,38983
6
6
  MediBot/MediBot_Notepad_Utils.py,sha256=fOsjyfoSpgmQyc8TcnLm53faLMOUUL18cspo5PZqJK4,8719
7
7
  MediBot/MediBot_Post.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  MediBot/MediBot_Preprocessor.py,sha256=gQRVAWbRHx_PMK6a7q93tp7Z-Dhjn5r0lJz3d0wAzeU,19067
9
9
  MediBot/MediBot_Preprocessor_lib.py,sha256=lyl2Q5V1MQHiZ54kmTYPxor3pm2gf8mAq-IwYu7FX2c,87236
10
- MediBot/MediBot_UI.py,sha256=iG8UK71aHYBmB0lkjwl-C6L9DbsOyLaq-wt9kChV0jo,23781
10
+ MediBot/MediBot_UI.py,sha256=tQISM2gULmQVc4JbeVsn4pjgOYsQZiJpx1_IU407rO8,25870
11
11
  MediBot/MediBot_dataformat_library.py,sha256=D46fdPtxcgfWTzaLBtSvjtozzZBNqNiODgu4vKMZrBg,10746
12
12
  MediBot/MediBot_debug.bat,sha256=F5Lfi3nFEEo4Ddx9EbX94u3fNAMgzMp3wsn-ULyASTM,6017
13
13
  MediBot/MediBot_docx_decoder.py,sha256=gn7I7Ng5khVIzU0HTTOqi31YSSn1yW8Pyk-i_P9r1oA,32472
14
14
  MediBot/MediBot_smart_import.py,sha256=Emvz7NwemHGCHvG5kZcUyXMcCheidbGKaPfOTg-YCEs,6684
15
- MediBot/__init__.py,sha256=7l_wPSbz_1FzE6t7dCqwQAlUq_9I4bZgqjj3Nra7WUM,3192
15
+ MediBot/__init__.py,sha256=AKa6bkDecCaUCTu1GAZubZfHlwrlayAE6ji5kPHDat8,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
@@ -20,20 +20,20 @@ MediBot/full_debug_suite.bat,sha256=b3Euz-VbRaPE6tWmgpjApfv4_cB5-Rk8BLNlLrp2bpo,
20
20
  MediBot/get_medicafe_version.py,sha256=uyL_UIE42MyFuJ3SRYxJp8sZx8xjTqlYZ3FdQuxLduY,728
21
21
  MediBot/process_csvs.bat,sha256=3tI7h1z9eRj8rUUL4wJ7dy-Qrak20lRmpAPtGbUMbVQ,3489
22
22
  MediBot/update_json.py,sha256=vvUF4mKCuaVly8MmoadDO59M231fCIInc0KI1EtDtPA,3704
23
- MediBot/update_medicafe.py,sha256=J5ktFGq6gTsov0NCrMhq3nmyiiIsUqnH28LoeDWg-hg,16072
23
+ MediBot/update_medicafe.py,sha256=G1lyvVOHYuho1d-TJQNN6qaB4HBWaJ2PpXqemBoPlRQ,17937
24
24
  MediCafe/MediLink_ConfigLoader.py,sha256=fNBFnPbh1YRVCs9WvZp6tPsKTUFzK3f38ePeUQ00QrQ,10161
25
- MediCafe/__init__.py,sha256=X4wLG18AuSdcVndULAIHMcldP3GsnAGf0dmqGIl2SDk,5721
25
+ MediCafe/__init__.py,sha256=8Xf73Nd0OC0Srfz45t2CcQku9oQOLBSj9TUrnSyoocc,5721
26
26
  MediCafe/__main__.py,sha256=mRNyk3D9Ilnu2XhgVI_rut7r5Ro7UIKtwV871giAHI8,12992
27
- MediCafe/api_core.py,sha256=IZaBXnP4E7eHzxVbCk2HtxywiVBuhaUyHeaqss8llgY,66378
27
+ MediCafe/api_core.py,sha256=TyJU-gC5iOpgnagKPrIZuE5MU-qZBq5fb0J2UtyEHAk,73536
28
28
  MediCafe/api_core_backup.py,sha256=Oy_Fqt0SEvGkQN1Oqw5iUPVFxPEokyju5CuPEb9k0OY,18686
29
29
  MediCafe/api_factory.py,sha256=I5AeJoyu6m7oCrjc2OvVvO_4KSBRutTsR1riiWhTZV0,12086
30
30
  MediCafe/api_utils.py,sha256=KWQB0q1k5E6frOFFlKWcFpHNcqfrS7KJ_82672wbupw,14041
31
31
  MediCafe/core_utils.py,sha256=r2Kbmp6aioBwTNEpEOYJLLdzBVALXl2S3eAs5IAD1-w,27165
32
- MediCafe/graphql_utils.py,sha256=P8zkY7eqTcFVIw_0P7A0tiFct200STOZeHeYVER2UJk,39438
32
+ MediCafe/graphql_utils.py,sha256=xrREl0mqktEBkV6SZeAImuuDc8Sp2Q80rWxKIh-zD7Q,44499
33
33
  MediCafe/logging_config.py,sha256=auT65LN5oDEXVhkMeLke63kJHTWxYf2o8YihAfQFgzU,5493
34
34
  MediCafe/logging_demo.py,sha256=TwUhzafna5pMdN3zSKGrpUWRqX96F1JGGsSUtr3dygs,1975
35
35
  MediCafe/migration_helpers.py,sha256=48GnP4xcgvDNNlzoWsKASCpF4H0KnyveHPbz6kjQy50,17737
36
- MediCafe/smart_import.py,sha256=KJtjmEvaiZ2ChQMjSb09_TFtz1DChU5KQCvTiK2gOKw,20495
36
+ MediCafe/smart_import.py,sha256=sv7aszDbA99LjhtbbAJWnvcBvjLHA_CGnkckjWvP8kQ,20577
37
37
  MediCafe/submission_index.py,sha256=35gz8Anx1dIqG1I14GvuLY0nTO4dSBr2YsZwof9aIQg,11175
38
38
  MediLink/InsuranceTypeService.py,sha256=FKWC1nRfKV_OtCDUtZustauXNhmCYDFiY9jsAGHPPUM,2178
39
39
  MediLink/MediLink_837p_cob_library.py,sha256=glc7SJBDx0taCGmwmCs81GFJJcvA_D7nycIkTfmIuwE,30650
@@ -42,11 +42,12 @@ MediLink/MediLink_837p_encoder_library.py,sha256=VzOpzbYF3i133vdqqxYB6JVMd9N5Qzf
42
42
  MediLink/MediLink_837p_utilities.py,sha256=AJ0F22LoF8du20zPBH4TZXgsdXCD-1qYKBnHJM-mXl0,16260
43
43
  MediLink/MediLink_API_Generator.py,sha256=VZBL9W8yFTMJ4ikSwbUI8ANtaJCLnUyqoF8xQEJQn_E,11176
44
44
  MediLink/MediLink_Azure.py,sha256=Ow70jctiHFIylskBExN7WUoRgrKOvBR6jNTnQMk6lJA,210
45
+ MediLink/MediLink_Charges.py,sha256=82fnqHGvT7tfdfjucnFHiLdUE0WhHDXrcS0k_Ln3c8U,19951
45
46
  MediLink/MediLink_ClaimStatus.py,sha256=75LzWfYaxrLWelId-8rHHN_lchHXxAe34pRgvKPdP2o,22118
46
47
  MediLink/MediLink_DataMgmt.py,sha256=9hc5jyWU65nYT66afDybOyYAcW-DvEYuHpWTun96U50,52407
47
48
  MediLink/MediLink_Decoder.py,sha256=1gzdybNg4Vv69s5PNbX8bPNrXT_N_kPpFpt2HpkauWA,16430
48
- MediLink/MediLink_Deductible.py,sha256=ur2gEy286HarC66yuKD917Q3dMgFhTbKJZFfUMHHTk4,46445
49
- MediLink/MediLink_Deductible_Validator.py,sha256=EL1U4dv08aSmDr6badx4MQbF2d_1oZP1pJ9L4EIt6rc,22850
49
+ MediLink/MediLink_Deductible.py,sha256=0Cuq3XIP9GHtzjskE7qaIYsuRyjJ7nLZ08Kaj8yAWEg,49549
50
+ MediLink/MediLink_Deductible_Validator.py,sha256=Hl15LKim1BuJS7Qv9Iulg-L8dNfZRoLbvAxqO7CF2E0,24756
50
51
  MediLink/MediLink_Display_Utils.py,sha256=QyHk23VU1rJtNZr_QhtL76Avo66CEc7MZU84uIs-1Lo,4187
51
52
  MediLink/MediLink_Down.py,sha256=s4_z-RaqHYanjwbQCl-OSkg4XIpcIQ2Q6jXa8-q_QXw,28111
52
53
  MediLink/MediLink_Gmail.py,sha256=8iQjqcJMSa_Zfr5azR0dShKAQeXqt-9C-s8seYB9pic,23961
@@ -61,7 +62,7 @@ MediLink/MediLink_insurance_utils.py,sha256=g741Fj2K26cMy0JX5d_XavMw9LgkK6hjaUJY
61
62
  MediLink/MediLink_main.py,sha256=ZVK2UsgSxC9UqgIYfgVu95ugULcH6-11l67jsf4vdJc,22132
62
63
  MediLink/MediLink_smart_import.py,sha256=B5SfBn_4bYEWJJDolXbjnwKx_-MaqGZ76LyXQwWDV80,9838
63
64
  MediLink/Soumit_api.py,sha256=5JfOecK98ZC6NpZklZW2AkOzkjvrbYxpJpZNH3rFxDw,497
64
- MediLink/__init__.py,sha256=zj7BNFQlhRxbYQgwt_-dmYdyu-VDQNrdJHCm6PblwTg,3888
65
+ MediLink/__init__.py,sha256=G5NW5HneyUTd3Zh8UuMvUuaA3ntBmQ48mdlcmGBOm10,3888
65
66
  MediLink/gmail_http_utils.py,sha256=gtqCCrzJC7e8JFQzMNrf7EbK8na2h4sfTu-NMaZ_UHc,4006
66
67
  MediLink/gmail_oauth_utils.py,sha256=Ugr-DEqs4_RddRMSCJ_dbgA3TVeaxpbAor-dktcTIgY,3713
67
68
  MediLink/insurance_type_integration_test.py,sha256=pz2OCXitAznqDciYn6OL9M326m9CYU7YiK-ynssdQ5g,15172
@@ -71,9 +72,9 @@ MediLink/test_cob_library.py,sha256=wUMv0-Y6fNsKcAs8Z9LwfmEBRO7oBzBAfWmmzwoNd1g,
71
72
  MediLink/test_timing.py,sha256=yH2b8QPLDlp1Zy5AhgtjzjnDHNGhAD16ZtXtZzzESZw,2042
72
73
  MediLink/test_validation.py,sha256=FJrfdUFK--xRScIzrHCg1JeGdm0uJEoRnq6CgkP2lwM,4154
73
74
  MediLink/webapp.html,sha256=JPKT559aFVBi1r42Hz7C77Jj0teZZRumPhBev8eSOLk,19806
74
- medicafe-0.250820.7.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
75
- medicafe-0.250820.7.dist-info/METADATA,sha256=1sX-OtFCWg0ZhIqSFPeqXRHYdByy5UILOhaWePF4jnY,3414
76
- medicafe-0.250820.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
77
- medicafe-0.250820.7.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
78
- medicafe-0.250820.7.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
79
- medicafe-0.250820.7.dist-info/RECORD,,
75
+ medicafe-0.250822.1.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
76
+ medicafe-0.250822.1.dist-info/METADATA,sha256=m5Jftfm0cBtBejEVQ03wRsPl3Km3C2XI8cDY9oQDFm8,3414
77
+ medicafe-0.250822.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
78
+ medicafe-0.250822.1.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
79
+ medicafe-0.250822.1.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
80
+ medicafe-0.250822.1.dist-info/RECORD,,