medicafe 0.250811.1__py3-none-any.whl → 0.250811.2__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.
MediCafe/api_core.py CHANGED
@@ -206,7 +206,9 @@ class APIClient(BaseAPIClient):
206
206
  """Detect if we're running in staging/test environment for a specific endpoint"""
207
207
  try:
208
208
  # Look for api_url in the specified endpoint configuration
209
- api_url = self.config.get('MediLink_Config', {}).get('endpoints', {}).get(endpoint_name, {}).get('api_url', '')
209
+ from MediCafe.core_utils import extract_medilink_config
210
+ medi = extract_medilink_config(self.config)
211
+ api_url = medi.get('endpoints', {}).get(endpoint_name, {}).get('api_url', '')
210
212
  MediLink_ConfigLoader.log("DEBUG: Found API URL for {}: {}".format(endpoint_name, api_url), level="DEBUG")
211
213
 
212
214
  if 'stg' in api_url.lower() or 'stage' in api_url.lower() or 'test' in api_url.lower():
@@ -615,7 +617,9 @@ def fetch_payer_name_from_api(client, payer_id, config, primary_endpoint='AVAILI
615
617
  # Attempt to reload configuration if key is missing
616
618
  config, _ = MediLink_ConfigLoader.load_configuration()
617
619
  # SAFE FALLBACK: if endpoints still missing, fall back to AVAILITY only and proceed.
618
- endpoints = config.get('MediLink_Config', {}).get('endpoints', {})
620
+ from MediCafe.core_utils import extract_medilink_config
621
+ medi = extract_medilink_config(config)
622
+ endpoints = medi.get('endpoints', {})
619
623
  if not endpoints:
620
624
  MediLink_ConfigLoader.log("Endpoints configuration missing after reload. Falling back to AVAILITY-only logic.", level="WARNING")
621
625
  MediLink_ConfigLoader.log("Re-loaded configuration successfully.", level="INFO")
MediCafe/core_utils.py CHANGED
@@ -541,6 +541,28 @@ def get_api_client(**kwargs):
541
541
  return factory.get_client(**kwargs)
542
542
  return None
543
543
 
544
+ def extract_medilink_config(config):
545
+ """
546
+ Safely extract the MediLink_Config subsection from a configuration object
547
+ without mutating or reassigning the original config. Returns an empty dict
548
+ if not available. XP/Python 3.4.4 friendly.
549
+
550
+ Philosophy:
551
+ - Keep and pass the full config across the codebase for logging/path access
552
+ - Derive a local 'medi' section only where endpoint-specific fields are needed
553
+ - Avoid deep chained get() calls by normalizing once per function
554
+ """
555
+ try:
556
+ if not isinstance(config, dict):
557
+ return {}
558
+ medi = config.get('MediLink_Config')
559
+ if isinstance(medi, dict):
560
+ return medi
561
+ # If config already looks like a MediLink section (flat), return as-is
562
+ return config
563
+ except Exception:
564
+ return {}
565
+
544
566
  def get_api_core_client(**kwargs):
545
567
  """
546
568
  Get API client from MediCafe core API module.
@@ -566,7 +566,9 @@ def get_cob_configuration(config):
566
566
  Returns:
567
567
  - COB configuration dictionary
568
568
  """
569
- cob_config = config.get('MediLink_Config', {}).get('cob_settings', {})
569
+ from MediCafe.core_utils import extract_medilink_config
570
+ medi = extract_medilink_config(config)
571
+ cob_config = medi.get('cob_settings', {})
570
572
  return cob_config
571
573
 
572
574
  def validate_cob_configuration(config):
@@ -602,7 +604,9 @@ def get_enhanced_insurance_options(config):
602
604
  Returns:
603
605
  - Enhanced insurance options dictionary
604
606
  """
605
- base_options = config.get('MediLink_Config', {}).get('insurance_options', {})
607
+ from MediCafe.core_utils import extract_medilink_config
608
+ medi = extract_medilink_config(config)
609
+ base_options = medi.get('insurance_options', {})
606
610
  medicare_options = {
607
611
  'MB': 'Medicare Part B',
608
612
  'MA': 'Medicare Advantage',
@@ -9,7 +9,7 @@ if workspace_dir not in sys.path:
9
9
  sys.path.insert(0, workspace_dir)
10
10
 
11
11
  # Use core utilities for standardized imports and path setup
12
- from MediCafe.core_utils import get_shared_config_loader, get_api_client, setup_module_paths
12
+ from MediCafe.core_utils import get_shared_config_loader, get_api_client, setup_module_paths, extract_medilink_config
13
13
  setup_module_paths(__file__)
14
14
 
15
15
  MediLink_ConfigLoader = get_shared_config_loader()
@@ -255,7 +255,7 @@ def read_and_validate_claims(file_path, config):
255
255
  # Iterate over data in the file
256
256
  for personal_info, insurance_info, service_info, service_info_2, service_info_3 in read_fixed_width_data(file_path):
257
257
  # Process reserved 5-line Medisoft record (currently using 3 lines, 2 reserved)
258
- parsed_data = parse_fixed_width_data(personal_info, insurance_info, service_info, service_info_2, service_info_3, config.get('MediLink_Config', config))
258
+ parsed_data = parse_fixed_width_data(personal_info, insurance_info, service_info, service_info_2, service_info_3, extract_medilink_config(config))
259
259
  # Validate the parsed data
260
260
  is_valid, errors = validate_claim_data(parsed_data, config)
261
261
  if is_valid:
@@ -439,7 +439,6 @@ def main():
439
439
  print("Starting the conversion process for {}. Processing {} at '{}'.".format(args.endpoint, 'directory' if args.is_directory else 'file', args.path))
440
440
 
441
441
  config, crosswalk = MediLink_ConfigLoader.load_configuration()
442
- config = config.get('MediLink_Config', config)
443
442
 
444
443
  # Create API client for payer name resolution
445
444
  from MediCafe.core_utils import get_api_client
@@ -517,7 +516,8 @@ def convert_files_for_submission(detailed_patient_data, config, crosswalk, clien
517
516
  # Iterate over each endpoint and process its corresponding patient data
518
517
  for endpoint, patient_data_list in data_by_endpoint.items():
519
518
  # Retrieve submission type from config; default to "batch" if not specified
520
- submission_type = config.get('MediLink_Config', {}).get('endpoints', {}).get(endpoint, {}).get('submission_type', 'batch')
519
+ medi = extract_medilink_config(config)
520
+ submission_type = medi.get('endpoints', {}).get(endpoint, {}).get('submission_type', 'batch')
521
521
 
522
522
  if submission_type == 'single':
523
523
  # Process each patient's data individually for single-patient submissions
@@ -552,10 +552,10 @@ def process_claim(config, endpoint, patient_data_list, crosswalk, client, suffix
552
552
  - Path to the converted file, or None if an error occurs.
553
553
  """
554
554
  # Ensure we're accessing the correct configuration key
555
- config = config.get('MediLink_Config', config)
555
+ medi = extract_medilink_config(config)
556
556
 
557
557
  # Retrieve the output directory from the configuration
558
- output_directory = MediLink_837p_encoder_library.get_output_directory(config)
558
+ output_directory = MediLink_837p_encoder_library.get_output_directory(medi)
559
559
  if not output_directory:
560
560
  return None
561
561
 
@@ -564,10 +564,10 @@ def process_claim(config, endpoint, patient_data_list, crosswalk, client, suffix
564
564
 
565
565
  for patient_data in patient_data_list:
566
566
  # Validate each patient's data before processing
567
- is_valid, validation_errors = validate_claim_data(patient_data, config)
567
+ is_valid, validation_errors = validate_claim_data(patient_data, medi)
568
568
  if is_valid:
569
569
  # Format the claim into 837P segments
570
- formatted_claim = format_single_claim(patient_data, config, endpoint, transaction_set_control_number, crosswalk, client)
570
+ formatted_claim = format_single_claim(patient_data, medi, endpoint, transaction_set_control_number, crosswalk, client)
571
571
  document_segments.append(formatted_claim)
572
572
  transaction_set_control_number += 1
573
573
  else:
@@ -582,7 +582,7 @@ def process_claim(config, endpoint, patient_data_list, crosswalk, client, suffix
582
582
  return None
583
583
 
584
584
  # Create interchange elements with the final transaction set control number
585
- isa_header, gs_header, ge_trailer, iea_trailer = MediLink_837p_encoder_library.create_interchange_elements(config, endpoint, transaction_set_control_number - 1)
585
+ isa_header, gs_header, ge_trailer, iea_trailer = MediLink_837p_encoder_library.create_interchange_elements(medi, endpoint, transaction_set_control_number - 1)
586
586
 
587
587
  # Insert headers at the beginning and append trailers at the end of document segments
588
588
  document_segments.insert(0, gs_header)
@@ -592,5 +592,5 @@ def process_claim(config, endpoint, patient_data_list, crosswalk, client, suffix
592
592
  # Use the first patient's file path as a reference for output file naming
593
593
  input_file_path = patient_data_list[0].get('file_path', 'UNKNOWN')
594
594
  # Write the complete 837P document to an output file
595
- converted_file_path = write_output_file(document_segments, output_directory, endpoint, input_file_path, config, suffix)
595
+ converted_file_path = write_output_file(document_segments, output_directory, endpoint, input_file_path, medi, suffix)
596
596
  return converted_file_path
@@ -9,7 +9,7 @@ except ImportError:
9
9
  PERFORMANCE_LOGGING = False
10
10
 
11
11
  # Need this for running Medibot and MediLink
12
- from MediCafe.core_utils import get_shared_config_loader
12
+ from MediCafe.core_utils import get_shared_config_loader, extract_medilink_config
13
13
  MediLink_ConfigLoader = get_shared_config_loader()
14
14
  try:
15
15
  import MediLink_Display_Utils
@@ -38,12 +38,12 @@ def parse_fixed_width_data(personal_info, insurance_info, service_info, service_
38
38
  MediLink_ConfigLoader.log("No config passed to parse_fixed_width_data. Re-loading config...", level="WARNING")
39
39
  config, _ = MediLink_ConfigLoader.load_configuration()
40
40
 
41
- config = config.get('MediLink_Config', config) # Safest config call.
41
+ medi = extract_medilink_config(config)
42
42
 
43
43
  # Load slice definitions from config within the MediLink_Config section
44
- personal_slices = config['fixedWidthSlices']['personal_slices']
45
- insurance_slices = config['fixedWidthSlices']['insurance_slices']
46
- service_slices = config['fixedWidthSlices']['service_slices']
44
+ personal_slices = medi['fixedWidthSlices']['personal_slices']
45
+ insurance_slices = medi['fixedWidthSlices']['insurance_slices']
46
+ service_slices = medi['fixedWidthSlices']['service_slices']
47
47
 
48
48
  # Parse each segment - core 3-line record structure
49
49
  parsed_data = {}
@@ -5,7 +5,7 @@
5
5
  from datetime import datetime
6
6
 
7
7
  # Use core utilities for standardized imports
8
- from MediCafe.core_utils import get_shared_config_loader
8
+ from MediCafe.core_utils import get_shared_config_loader, extract_medilink_config
9
9
  MediLink_ConfigLoader = get_shared_config_loader()
10
10
 
11
11
  def display_insurance_options(insurance_options=None):
@@ -13,7 +13,8 @@ def display_insurance_options(insurance_options=None):
13
13
 
14
14
  if insurance_options is None:
15
15
  config, _ = MediLink_ConfigLoader.load_configuration()
16
- insurance_options = config.get('MediLink_Config', {}).get('insurance_options', {})
16
+ medi = extract_medilink_config(config)
17
+ insurance_options = medi.get('insurance_options', {})
17
18
 
18
19
  print("\nInsurance Type Options (SBR09 Codes):")
19
20
  print("-" * 50)
MediLink/MediLink_Up.py CHANGED
@@ -67,6 +67,14 @@ def submit_claims(detailed_patient_data_grouped_by_endpoint, config, crosswalk):
67
67
  Returns:
68
68
  - None
69
69
  """
70
+ # Normalize configuration for safe nested access
71
+ if not isinstance(config, dict):
72
+ try:
73
+ config, _ = load_configuration()
74
+ except Exception:
75
+ config = {}
76
+ cfg = config.get('MediLink_Config', config) if isinstance(config, dict) else {}
77
+
70
78
  # Accumulate submission results
71
79
  submission_results = {}
72
80
 
@@ -80,7 +88,7 @@ def submit_claims(detailed_patient_data_grouped_by_endpoint, config, crosswalk):
80
88
  continue
81
89
 
82
90
  # Determine the submission method (e.g., "winscp" or "api")
83
- method = config.get('MediLink_Config', {}).get('endpoints', {}).get(endpoint, {}).get('submission_method', 'winscp')
91
+ method = cfg.get('endpoints', {}).get(endpoint, {}).get('submission_method', 'winscp')
84
92
 
85
93
  # Attempt submission to each endpoint
86
94
  if True: #confirm_transmission({endpoint: patients_data}): # Confirm transmission to each endpoint with detailed overview
@@ -102,7 +110,9 @@ def submit_claims(detailed_patient_data_grouped_by_endpoint, config, crosswalk):
102
110
  # Transmit files via WinSCP
103
111
  try:
104
112
  operation_type = "upload"
105
- transmission_result = operate_winscp(operation_type, converted_files, config['MediLink_Config']['endpoints'][endpoint], config['MediLink_Config']['local_claims_path'], config)
113
+ endpoint_cfg = cfg.get('endpoints', {}).get(endpoint, {})
114
+ local_claims_path = cfg.get('local_claims_path', '.')
115
+ transmission_result = operate_winscp(operation_type, converted_files, endpoint_cfg, local_claims_path, config)
106
116
  success_dict = handle_transmission_result(transmission_result, config, operation_type, method)
107
117
  submission_results[endpoint] = success_dict
108
118
  except FileNotFoundError as e:
@@ -182,9 +192,11 @@ def handle_transmission_result(transmission_result, config, operation_type, meth
182
192
  # - On some XP setups, WinSCP writes logs to a different directory than where files are uploaded or downloaded.
183
193
  # - To avoid brittle assumptions, allow an explicit 'winscp_log_dir' override while preserving legacy default.
184
194
  # - Fallback remains 'local_claims_path' to preserve current behavior.
195
+ cfg = config.get('MediLink_Config', config) if isinstance(config, dict) else {}
185
196
  winscp_log_dir = (
186
- config.get('MediLink_Config', {}).get('winscp_log_dir')
187
- or config.get('MediLink_Config', {}).get('local_claims_path')
197
+ cfg.get('winscp_log_dir')
198
+ or cfg.get('local_claims_path')
199
+ or '.'
188
200
  )
189
201
  # If you observe missing logs, verify WinSCP's real log location in the ini or via command-line switches.
190
202
  # Consider adding a scheduled cleanup (daily) to prevent unbounded log growth on XP machines.
@@ -461,7 +473,8 @@ def save_receipt_to_file(receipt_content, config):
461
473
  """
462
474
  try:
463
475
  file_name = "Receipt_{0}.txt".format(datetime.now().strftime('%Y%m%d_%H%M%S'))
464
- file_path = os.path.join(config['MediLink_Config']['local_claims_path'], file_name)
476
+ cfg = config.get('MediLink_Config', config) if isinstance(config, dict) else {}
477
+ file_path = os.path.join(cfg.get('local_claims_path', '.'), file_name)
465
478
 
466
479
  with open(file_path, 'w') as file:
467
480
  file.write(receipt_content)
@@ -7,7 +7,7 @@ import time
7
7
  import json
8
8
 
9
9
  # Use core utilities for standardized imports
10
- from MediCafe.core_utils import get_shared_config_loader
10
+ from MediCafe.core_utils import get_shared_config_loader, extract_medilink_config
11
11
  MediLink_ConfigLoader = get_shared_config_loader()
12
12
 
13
13
  # Safe tqdm import with fallback
@@ -25,7 +25,8 @@ def get_feature_flag(flag_name, default=False):
25
25
  """Get feature flag from config or return default"""
26
26
  try:
27
27
  config, _ = MediLink_ConfigLoader.load_configuration()
28
- feature_flags = config.get("MediLink_Config", {}).get("feature_flags", {})
28
+ medi = extract_medilink_config(config)
29
+ feature_flags = medi.get("feature_flags", {})
29
30
  return feature_flags.get(flag_name, default)
30
31
  except Exception as e:
31
32
  MediLink_ConfigLoader.log("Error reading feature flag {}: {}".format(flag_name, str(e)), level="WARNING")
@@ -39,7 +40,8 @@ def validate_insurance_type_from_config(insurance_type_code, payer_id=""):
39
40
  """
40
41
  try:
41
42
  config, _ = MediLink_ConfigLoader.load_configuration()
42
- insurance_options = config.get('MediLink_Config', {}).get('insurance_options', {})
43
+ medi = extract_medilink_config(config)
44
+ insurance_options = medi.get('insurance_options', {})
43
45
 
44
46
  if not insurance_type_code:
45
47
  MediLink_ConfigLoader.log("Empty insurance type code for payer {}, using default PPO".format(payer_id), level="INFO")
@@ -170,7 +172,8 @@ def check_production_readiness():
170
172
  # Check for test mode flags
171
173
  try:
172
174
  config, _ = MediLink_ConfigLoader.load_configuration()
173
- test_mode = config.get("MediLink_Config", {}).get("TestMode", False)
175
+ medi = extract_medilink_config(config)
176
+ test_mode = medi.get("TestMode", False)
174
177
  if test_mode:
175
178
  issues.append("TestMode is enabled - should be disabled for production")
176
179
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250811.1
3
+ Version: 0.250811.2
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -19,11 +19,11 @@ MediBot/update_medicafe.py,sha256=i2-6b2y9XXaroPG8uP_RPFwOOsQSY_dTiuhl6vG8uoo,25
19
19
  MediCafe/MediLink_ConfigLoader.py,sha256=Ia79dZQBvgbc6CtOaNZVlFHaN-fvUmJRpmmVHz_MFv8,8205
20
20
  MediCafe/__init__.py,sha256=DF0XUu3G43AejXvEmd5aCyy0GDQahQD0pMwexmxem-E,5477
21
21
  MediCafe/__main__.py,sha256=mRNyk3D9Ilnu2XhgVI_rut7r5Ro7UIKtwV871giAHI8,12992
22
- MediCafe/api_core.py,sha256=AwnB2BMiBOMS_LKJlkHgd_lQPpE57WEYMfS-O-DeOzo,63851
22
+ MediCafe/api_core.py,sha256=ZG9rhpAMjN-tj9J9J5PZZ7W_GM02tRngMBPR9ss9mXw,64027
23
23
  MediCafe/api_core_backup.py,sha256=Oy_Fqt0SEvGkQN1Oqw5iUPVFxPEokyju5CuPEb9k0OY,18686
24
24
  MediCafe/api_factory.py,sha256=I5AeJoyu6m7oCrjc2OvVvO_4KSBRutTsR1riiWhTZV0,12086
25
25
  MediCafe/api_utils.py,sha256=KWQB0q1k5E6frOFFlKWcFpHNcqfrS7KJ_82672wbupw,14041
26
- MediCafe/core_utils.py,sha256=yftnn2pMhfUMEHfGl9ocvLoI8kQvsDjqrRZAR3uHdWo,26317
26
+ MediCafe/core_utils.py,sha256=r2Kbmp6aioBwTNEpEOYJLLdzBVALXl2S3eAs5IAD1-w,27165
27
27
  MediCafe/graphql_utils.py,sha256=5i_pNCNRUXox2v5zraPzUw4n7rUt9ZEAkLqVa59LWAc,45713
28
28
  MediCafe/logging_config.py,sha256=auT65LN5oDEXVhkMeLke63kJHTWxYf2o8YihAfQFgzU,5493
29
29
  MediCafe/logging_demo.py,sha256=TwUhzafna5pMdN3zSKGrpUWRqX96F1JGGsSUtr3dygs,1975
@@ -31,8 +31,8 @@ MediCafe/migration_helpers.py,sha256=48GnP4xcgvDNNlzoWsKASCpF4H0KnyveHPbz6kjQy50
31
31
  MediCafe/smart_import.py,sha256=23pttO7QTZyvOP9HR9czDIv7lUsE1sHaE2CWC94Xxxo,19800
32
32
  MediLink/MediLink.py,sha256=p91MYghOCbNf3ikTzm5P9V1Luj035yd83EDbQ-Ov6oM,33258
33
33
  MediLink/MediLink_277_decoder.py,sha256=Z3hQK2j-YzdXjov6aDlDRc7M_auFBnl3se4OF5q6_04,4358
34
- MediLink/MediLink_837p_cob_library.py,sha256=sK43fwq-arTUyrwbYWfJIhwW6aemXmpS2F1kfXFPe9I,29851
35
- MediLink/MediLink_837p_encoder.py,sha256=NrM4CH81WRugq2iDhTv6kKvi3zuC3rogfDz4Li16Z6I,29622
34
+ MediLink/MediLink_837p_cob_library.py,sha256=Q1hc1f_JQZT_QUMuL9sbIiWM6WtYFB_T4q1vQIcuurM,30003
35
+ MediLink/MediLink_837p_encoder.py,sha256=cHcQRll4twPOgMze81XgCKBDryUL0C8uKo__NwhcC0Y,29590
36
36
  MediLink/MediLink_837p_encoder_library.py,sha256=EVR-ffUjOrcx9DisKAxwqxscAJ-XFSQcAk5VHFeYssY,66994
37
37
  MediLink/MediLink_837p_utilities.py,sha256=28H4F6HNXgNHpdnardKWeTPuXgVSzuvu5QEPmkCGp8Q,16285
38
38
  MediLink/MediLink_API_Generator.py,sha256=UUml-PBU3BQduun8RzFH4zfUuo6-p5Ufg7b6Vic-VrY,11171
@@ -42,11 +42,11 @@ MediLink/MediLink_APIs.py,sha256=jm3f9T034MJKH8A_CIootULoeuk7H8s7PazpFZRCbKI,622
42
42
  MediLink/MediLink_Azure.py,sha256=Ow70jctiHFIylskBExN7WUoRgrKOvBR6jNTnQMk6lJA,210
43
43
  MediLink/MediLink_ClaimStatus.py,sha256=cO9drHSIBtltHfLSKeEf18_m75ixpxIOao5I-TGiHiI,18100
44
44
  MediLink/MediLink_ConfigLoader.py,sha256=u9ecB0SIN7zuJAo8KcoQys95BtyAo-8S2n4mRd0S3XU,4356
45
- MediLink/MediLink_DataMgmt.py,sha256=jFEP3nE3bClO3Vsa2XnEY2-nbLYXNO9-82HYHhPG9Ps,51563
45
+ MediLink/MediLink_DataMgmt.py,sha256=3V_ApBlzFvLZKTSFDHd0qLERtSWRyEFiMKVBY9h-QIY,51552
46
46
  MediLink/MediLink_Decoder.py,sha256=194pMSZDs9vhQW6_gZB_s-j_TTq7GYCXH2k0rwbZQeE,14977
47
47
  MediLink/MediLink_Deductible.py,sha256=fLBDQHDcTk86JtJUtUwrVl-o0KfNackFrWosMxr7qHU,45559
48
48
  MediLink/MediLink_Deductible_Validator.py,sha256=2g-lZd-Y5fJ1mfP87vM6oABg0t5Om-7EkEkilVvDWYY,22888
49
- MediLink/MediLink_Display_Utils.py,sha256=Bl15Ofqh09KIYsNXzM6WIE97Gp_4RVUw43J0NUzIERY,3121
49
+ MediLink/MediLink_Display_Utils.py,sha256=C5kC8n2NW-oE45o-zgbWFMApOOV993_3g9sN1b-bPPM,3165
50
50
  MediLink/MediLink_Down.py,sha256=vZEFNWa6drpXK8DCzt3DAlHdPGdhv3HoLnQh9cppT8o,11793
51
51
  MediLink/MediLink_ERA_decoder.py,sha256=MiOtDcXnmevPfHAahIlTLlUc14VcQWAor9Xa7clA2Ts,8710
52
52
  MediLink/MediLink_Gmail.py,sha256=C6tjw4Pd1wVHbCs97cvn4GCWIvwLT2Epc5ls0OoJ3Tg,23890
@@ -58,10 +58,10 @@ MediLink/MediLink_Scan.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  MediLink/MediLink_Scheduler.py,sha256=UJvxhDvHraqra2_TlQVlGeh5jRFrrfK6nCVUHnKOEMY,38
59
59
  MediLink/MediLink_StatusCheck.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  MediLink/MediLink_UI.py,sha256=7tPG9CXtci-B-7EZZEXcj1E3419m9Oj8iKFUYvM6_vQ,8982
61
- MediLink/MediLink_Up.py,sha256=5TlKjLt9c-xv3IOk14fYze5Umao6XihQBo6eGxZiv50,25784
61
+ MediLink/MediLink_Up.py,sha256=dejeJMT-UGKGG8Zw9At0jXDNzkPOlytn5c5fjrVAQLQ,26275
62
62
  MediLink/MediLink_api_utils.py,sha256=dsGLRPRvSwfXPLrrfgnkIKGDIF00wE93TrDB6HMDPQU,11857
63
63
  MediLink/MediLink_batch.bat,sha256=nqL5QwCLyRQFSPdv6kgtcV_cpky7FXSOWVl6OxjRXb4,118
64
- MediLink/MediLink_insurance_utils.py,sha256=FDRbS4AHxCt0pzStBwGlaLvrehEgI6G8tMKo6kLl3ME,9222
64
+ MediLink/MediLink_insurance_utils.py,sha256=g741Fj2K26cMy0JX5d_XavMw9LgkK6hjaUJYfysT7t8,9301
65
65
  MediLink/MediLink_main.py,sha256=rvKHuZUus8RvMC5-flws2q-EvXETXiJmgU2USjzMu3g,13445
66
66
  MediLink/MediLink_smart_import.py,sha256=B5SfBn_4bYEWJJDolXbjnwKx_-MaqGZ76LyXQwWDV80,9838
67
67
  MediLink/Soumit_api.py,sha256=5JfOecK98ZC6NpZklZW2AkOzkjvrbYxpJpZNH3rFxDw,497
@@ -75,9 +75,9 @@ MediLink/test_cob_library.py,sha256=wUMv0-Y6fNsKcAs8Z9LwfmEBRO7oBzBAfWmmzwoNd1g,
75
75
  MediLink/test_timing.py,sha256=yH2b8QPLDlp1Zy5AhgtjzjnDHNGhAD16ZtXtZzzESZw,2042
76
76
  MediLink/test_validation.py,sha256=FJrfdUFK--xRScIzrHCg1JeGdm0uJEoRnq6CgkP2lwM,4154
77
77
  MediLink/webapp.html,sha256=JPKT559aFVBi1r42Hz7C77Jj0teZZRumPhBev8eSOLk,19806
78
- medicafe-0.250811.1.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
79
- medicafe-0.250811.1.dist-info/METADATA,sha256=Mn330D_dskRP8TxT0gsVMoiuAIzuVh5K_0jOkIQI0QY,5663
80
- medicafe-0.250811.1.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
81
- medicafe-0.250811.1.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
82
- medicafe-0.250811.1.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
83
- medicafe-0.250811.1.dist-info/RECORD,,
78
+ medicafe-0.250811.2.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
79
+ medicafe-0.250811.2.dist-info/METADATA,sha256=nBe9O2wq_4BF7n1wXOzswDK0bEwhAoqmJri6s-D32A0,5663
80
+ medicafe-0.250811.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
81
+ medicafe-0.250811.2.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
82
+ medicafe-0.250811.2.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
83
+ medicafe-0.250811.2.dist-info/RECORD,,