medicafe 0.250728.7__py3-none-any.whl → 0.250728.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of medicafe might be problematic. Click here for more details.

@@ -0,0 +1,348 @@
1
+ # insurance_type_integration_test.py
2
+ # Integration testing and validation for insurance type selection enhancement
3
+ # Python 3.4.4 compatible implementation
4
+
5
+ import time
6
+ import json
7
+ import sys, os
8
+ sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
9
+
10
+ try:
11
+ from MediLink import MediLink_ConfigLoader
12
+ from MediLink_API_v3 import (
13
+ APIClient
14
+ )
15
+ from MediLink import (
16
+ enrich_with_insurance_type
17
+ )
18
+ from MediLink_837p_encoder_library import (
19
+ insurance_type_selection,
20
+ _original_insurance_type_selection_logic
21
+ )
22
+ from MediLink_insurance_utils import (
23
+ validate_insurance_type_from_config,
24
+ get_feature_flag,
25
+ generate_insurance_assignment_summary
26
+ )
27
+ except ImportError as e:
28
+ print("Import error: {}".format(str(e)))
29
+ print("This module requires the insurance type components.")
30
+
31
+ def run_insurance_type_integration_tests():
32
+ """
33
+ Run comprehensive integration tests for insurance type selection enhancement.
34
+ Python 3.4.4 compatible implementation.
35
+ """
36
+ print("=" * 60)
37
+ print("INSURANCE TYPE SELECTION ENHANCEMENT - INTEGRATION TESTS")
38
+ print("=" * 60)
39
+
40
+ test_results = {
41
+ 'total_tests': 0,
42
+ 'passed_tests': 0,
43
+ 'failed_tests': 0,
44
+ 'test_details': []
45
+ }
46
+
47
+ # Test 1: Production Readiness Validation
48
+ test_results['total_tests'] += 1
49
+ try:
50
+ print("\n1. Testing Production Readiness Validation...")
51
+ from MediLink_insurance_utils import validate_insurance_configuration
52
+ validate_insurance_configuration()
53
+ print(" PASS Production readiness validation PASSED")
54
+ test_results['passed_tests'] += 1
55
+ test_results['test_details'].append({'test': 'production_readiness', 'status': 'PASSED'})
56
+ except Exception as e:
57
+ print(" FAIL Production readiness validation FAILED: {}".format(str(e)))
58
+ test_results['failed_tests'] += 1
59
+ test_results['test_details'].append({'test': 'production_readiness', 'status': 'FAILED', 'error': str(e)})
60
+
61
+ # Test 2: Insurance Configuration Validation
62
+ test_results['total_tests'] += 1
63
+ try:
64
+ print("\n2. Testing Insurance Configuration Validation...")
65
+ from MediLink_insurance_utils import validate_insurance_configuration
66
+ validate_insurance_configuration()
67
+ print(" PASS Insurance configuration validation PASSED")
68
+ test_results['passed_tests'] += 1
69
+ test_results['test_details'].append({'test': 'insurance_config', 'status': 'PASSED'})
70
+ except Exception as e:
71
+ print(" FAIL Insurance configuration validation FAILED: {}".format(str(e)))
72
+ test_results['failed_tests'] += 1
73
+ test_results['test_details'].append({'test': 'insurance_config', 'status': 'FAILED', 'error': str(e)})
74
+
75
+ # Test 3: Feature Flag System
76
+ test_results['total_tests'] += 1
77
+ try:
78
+ print("\n3. Testing Feature Flag System...")
79
+ api_flag = get_feature_flag('api_insurance_selection', default=False)
80
+ enhanced_flag = get_feature_flag('enhanced_insurance_enrichment', default=False)
81
+ print(" API Insurance Selection Flag: {}".format(api_flag))
82
+ print(" Enhanced Insurance Enrichment Flag: {}".format(enhanced_flag))
83
+ print(" PASS Feature flag system PASSED")
84
+ test_results['passed_tests'] += 1
85
+ test_results['test_details'].append({'test': 'feature_flags', 'status': 'PASSED'})
86
+ except Exception as e:
87
+ print(" FAIL Feature flag system FAILED: {}".format(str(e)))
88
+ test_results['failed_tests'] += 1
89
+ test_results['test_details'].append({'test': 'feature_flags', 'status': 'FAILED', 'error': str(e)})
90
+
91
+ # Test 4: API Client Initialization
92
+ test_results['total_tests'] += 1
93
+ try:
94
+ print("\n4. Testing API Client Initialization...")
95
+ api_client = APIClient()
96
+ print(" PASS API client initialization PASSED")
97
+ test_results['passed_tests'] += 1
98
+ test_results['test_details'].append({'test': 'api_client_init', 'status': 'PASSED'})
99
+ except Exception as e:
100
+ print(" FAIL API client initialization FAILED: {}".format(str(e)))
101
+ test_results['failed_tests'] += 1
102
+ test_results['test_details'].append({'test': 'api_client_init', 'status': 'FAILED', 'error': str(e)})
103
+
104
+ # Test 5: Insurance Type Selection Backward Compatibility
105
+ test_results['total_tests'] += 1
106
+ try:
107
+ print("\n5. Testing Insurance Type Selection Backward Compatibility...")
108
+ test_parsed_data = {
109
+ 'LAST': 'TESTPATIENT',
110
+ 'FIRST': 'TEST',
111
+ 'BDAY': '1980-01-01',
112
+ 'insurance_type': '12' # Pre-assigned
113
+ }
114
+ result = insurance_type_selection(test_parsed_data)
115
+ assert result == '12', "Should return pre-assigned insurance type"
116
+ print(" PASS Insurance type selection backward compatibility PASSED")
117
+ test_results['passed_tests'] += 1
118
+ test_results['test_details'].append({'test': 'backward_compatibility', 'status': 'PASSED'})
119
+ except Exception as e:
120
+ print(" FAIL Insurance type selection backward compatibility FAILED: {}".format(str(e)))
121
+ test_results['failed_tests'] += 1
122
+ test_results['test_details'].append({'test': 'backward_compatibility', 'status': 'FAILED', 'error': str(e)})
123
+
124
+ # Test 6: Patient Data Enrichment
125
+ test_results['total_tests'] += 1
126
+ try:
127
+ print("\n6. Testing Patient Data Enrichment...")
128
+ test_patient_data = [
129
+ {
130
+ 'patient_id': 'TEST001',
131
+ 'patient_name': 'Test Patient',
132
+ 'primary_insurance_id': '87726'
133
+ }
134
+ ]
135
+ enriched_data = enrich_with_insurance_type(test_patient_data)
136
+ assert len(enriched_data) == 1, "Should return same number of patients"
137
+ assert 'insurance_type' in enriched_data[0], "Should add insurance_type field"
138
+ print(" PASS Patient data enrichment PASSED")
139
+ test_results['passed_tests'] += 1
140
+ test_results['test_details'].append({'test': 'patient_enrichment', 'status': 'PASSED'})
141
+ except Exception as e:
142
+ print(" FAIL Patient data enrichment FAILED: {}".format(str(e)))
143
+ test_results['failed_tests'] += 1
144
+ test_results['test_details'].append({'test': 'patient_enrichment', 'status': 'FAILED', 'error': str(e)})
145
+
146
+ # Test 7: Monitoring System
147
+ test_results['total_tests'] += 1
148
+ try:
149
+ print("\n7. Testing Monitoring System...")
150
+ test_patient_data = [
151
+ {
152
+ 'patient_id': 'TEST001',
153
+ 'insurance_type': '12',
154
+ 'insurance_type_source': 'DEFAULT'
155
+ },
156
+ {
157
+ 'patient_id': 'TEST002',
158
+ 'insurance_type': 'HM',
159
+ 'insurance_type_source': 'API'
160
+ }
161
+ ]
162
+ generate_insurance_assignment_summary(test_patient_data)
163
+ print(" PASS Monitoring system PASSED")
164
+ test_results['passed_tests'] += 1
165
+ test_results['test_details'].append({'test': 'monitoring', 'status': 'PASSED'})
166
+ except Exception as e:
167
+ print(" FAIL Monitoring system FAILED: {}".format(str(e)))
168
+ test_results['failed_tests'] += 1
169
+ test_results['test_details'].append({'test': 'monitoring', 'status': 'FAILED', 'error': str(e)})
170
+
171
+ # Print Test Summary
172
+ print("\n" + "=" * 60)
173
+ print("TEST SUMMARY")
174
+ print("=" * 60)
175
+ print("Total Tests: {}".format(test_results['total_tests']))
176
+ print("Passed: {}".format(test_results['passed_tests']))
177
+ print("Failed: {}".format(test_results['failed_tests']))
178
+
179
+ if test_results['failed_tests'] == 0:
180
+ print("\nPASS ALL TESTS! System ready for deployment.")
181
+ else:
182
+ print("\nFAIL {} TESTS. Review before deployment.".format(test_results['failed_tests']))
183
+ for test in test_results['test_details']:
184
+ if test['status'] == 'FAILED':
185
+ print(" - {}: {}".format(test['test'], test.get('error', 'Unknown error')))
186
+
187
+ return test_results
188
+
189
+ def test_insurance_type_validation():
190
+ """Test insurance type validation with various scenarios"""
191
+ print("\n" + "=" * 50)
192
+ print("INSURANCE TYPE VALIDATION TESTS")
193
+ print("=" * 50)
194
+
195
+ test_cases = [
196
+ {
197
+ 'name': 'Valid PPO Type',
198
+ 'insurance_type': '12',
199
+ 'payer_id': '87726',
200
+ 'expected': '12'
201
+ },
202
+ {
203
+ 'name': 'Valid HMO Type',
204
+ 'insurance_type': 'HM',
205
+ 'payer_id': '87726',
206
+ 'expected': 'HM'
207
+ },
208
+ {
209
+ 'name': 'Novel Valid Type (Strict Validation)',
210
+ 'insurance_type': 'EP',
211
+ 'payer_id': '87726',
212
+ 'expected': '12' # Strict validation rejects novel codes
213
+ },
214
+ {
215
+ 'name': 'Invalid Type Format',
216
+ 'insurance_type': 'INVALID123',
217
+ 'payer_id': '87726',
218
+ 'expected': '12' # Should fallback to PPO
219
+ },
220
+ {
221
+ 'name': 'Empty Type',
222
+ 'insurance_type': '',
223
+ 'payer_id': '87726',
224
+ 'expected': '12' # Should fallback to PPO
225
+ }
226
+ ]
227
+
228
+ passed = 0
229
+ failed = 0
230
+
231
+ for test_case in test_cases:
232
+ try:
233
+ result = validate_insurance_type_from_config(
234
+ test_case['insurance_type'],
235
+ test_case['payer_id']
236
+ )
237
+
238
+ if result == test_case['expected']:
239
+ print("PASS {}: {} -> {}".format(test_case['name'], test_case['insurance_type'], result))
240
+ passed += 1
241
+ else:
242
+ print("FAIL {}: Expected {}, got {}".format(test_case['name'], test_case['expected'], result))
243
+ failed += 1
244
+
245
+ except Exception as e:
246
+ print("FAIL {}: Exception - {}".format(test_case['name'], str(e)))
247
+ failed += 1
248
+
249
+ print("\nValidation Tests Summary: {} passed, {} failed".format(passed, failed))
250
+ return passed, failed
251
+
252
+ def create_test_configuration():
253
+ """Create test configuration for development and testing"""
254
+ print("\n" + "=" * 50)
255
+ print("CREATING TEST CONFIGURATION")
256
+ print("=" * 50)
257
+
258
+ test_config = {
259
+ "MediLink_Config": {
260
+ "feature_flags": {
261
+ "api_insurance_selection": False, # Start disabled
262
+ "enhanced_insurance_enrichment": False, # Start disabled
263
+ "enhanced_insurance_selection": False # Start disabled
264
+ },
265
+ "insurance_options": {
266
+ "12": "Preferred Provider Organization (PPO)",
267
+ "13": "Point of Service (POS)",
268
+ "14": "Exclusive Provider Organization (EPO)",
269
+ "16": "Indemnity",
270
+ "HM": "Health Maintenance Organization (HMO)",
271
+ "BL": "Blue Cross/Blue Shield",
272
+ "CI": "Commercial Insurance",
273
+ "MA": "Medicare Advantage",
274
+ "MB": "Medicare Part B",
275
+ "MC": "Medicare Part C"
276
+ },
277
+ "default_insurance_type": "12",
278
+ "TestMode": False # Must be False for production
279
+ }
280
+ }
281
+
282
+ print("Test configuration created:")
283
+ print(json.dumps(test_config, indent=2))
284
+ print("\nCopy this configuration to your config.json file")
285
+ print("Ensure TestMode is False for production")
286
+ print("Enable feature flags gradually during rollout")
287
+
288
+ return test_config
289
+
290
+ def deployment_checklist():
291
+ """Print deployment checklist for insurance type enhancement"""
292
+ print("\n" + "=" * 60)
293
+ print("DEPLOYMENT CHECKLIST")
294
+ print("=" * 60)
295
+
296
+ checklist = [
297
+ "[ ] All integration tests pass",
298
+ "[ ] Production readiness validation passes",
299
+ "[ ] Insurance configuration validation passes",
300
+ "[ ] TestMode is disabled in configuration",
301
+ "[ ] Feature flags are properly configured (default: disabled)",
302
+ "[ ] Enhanced API client initializes successfully",
303
+ "[ ] Backward compatibility verified with existing callers",
304
+ "[ ] Monitoring system is functional",
305
+ "[ ] Circuit breaker, caching, and rate limiting are active",
306
+ "[ ] Fallback mechanisms tested and working",
307
+ "[ ] Log rotation configured for increased logging volume",
308
+ "[ ] Documentation updated with new features",
309
+ "[ ] Team trained on new monitoring and feature flags"
310
+ ]
311
+
312
+ for item in checklist:
313
+ print(item)
314
+
315
+ print("\nComplete all checklist items before deployment")
316
+ print("Follow gradual rollout plan with feature flags")
317
+ print("Monitor logs and metrics closely during rollout")
318
+
319
+ if __name__ == "__main__":
320
+ print("Insurance Type Selection Enhancement - Integration Test Suite")
321
+ print("Python 3.4.4 Compatible Implementation")
322
+
323
+ # Run all tests
324
+ test_results = run_insurance_type_integration_tests()
325
+
326
+ # Run validation tests
327
+ validation_passed, validation_failed = test_insurance_type_validation()
328
+
329
+ # Create test configuration
330
+ test_config = create_test_configuration()
331
+
332
+ # Display deployment checklist
333
+ deployment_checklist()
334
+
335
+ # Final summary
336
+ print("\n" + "=" * 60)
337
+ print("FINAL SUMMARY")
338
+ print("=" * 60)
339
+ total_passed = test_results['passed_tests'] + validation_passed
340
+ total_failed = test_results['failed_tests'] + validation_failed
341
+ total_tests = test_results['total_tests'] + validation_passed + validation_failed
342
+
343
+ print("Overall Tests: {} passed, {} failed out of {} total".format(total_passed, total_failed, total_tests))
344
+
345
+ if total_failed == 0:
346
+ print("PASS ALL SYSTEMS GO! Ready for phased deployment.")
347
+ else:
348
+ print("FAIL Address {} failed tests before deployment.".format(total_failed))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: medicafe
3
- Version: 0.250728.7
3
+ Version: 0.250728.9
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2
6
6
  Author: Daniel Vidaud
@@ -13,20 +13,20 @@ MediBot/PDF_to_CSV_Cleaner.py,sha256=ZZphmq-5K04DkrZNlcwNAIoZPOD_ROWvS3PMkKFxeiM
13
13
  MediBot/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  MediBot/update_json.py,sha256=9FJZb-32EujpKuSoCjyCbdTdthOIuhcMoN4Wchuzn8A,2508
15
15
  MediBot/update_medicafe.py,sha256=E09jPw_aBjO30YqqUqDOL1zxN1srCyraFDX6vPexGLo,12725
16
- MediLink/MediLink.py,sha256=tWJG_zHqJJfk2L2YifwHGpqH5bKhfVKuP_XYr8i4DU0,28546
16
+ MediLink/MediLink.py,sha256=p91MYghOCbNf3ikTzm5P9V1Luj035yd83EDbQ-Ov6oM,33258
17
17
  MediLink/MediLink_277_decoder.py,sha256=Z3hQK2j-YzdXjov6aDlDRc7M_auFBnl3se4OF5q6_04,4358
18
18
  MediLink/MediLink_837p_cob_library.py,sha256=pWWd03yXTamNJKDbPCdOCkfglW4OLXQtIN3eiMSdfAA,29934
19
19
  MediLink/MediLink_837p_encoder.py,sha256=2YcbIi3G3AETLDITWJIcMh2kBM62IgwR0W_lCVVLO0w,28816
20
- MediLink/MediLink_837p_encoder_library.py,sha256=flRGNiQfMY3668ZIwyOMYFD1p96WArcR_WjYjhZmNP4,55812
20
+ MediLink/MediLink_837p_encoder_library.py,sha256=GR-3ltBz9f1E9rjMGu_rpmqSzsi-ioD-NT3DHLcwRcw,57560
21
21
  MediLink/MediLink_837p_utilities.py,sha256=Bi91S1aJbsEOpWXp_IOUgCQ76IPiOJNkOfXXtcirzmI,10416
22
22
  MediLink/MediLink_API_Generator.py,sha256=vBZ8moR9tvv7mb200HlZnJrk1y-bQi8E16I2r41vgVM,10345
23
23
  MediLink/MediLink_API_v2.py,sha256=mcIgLnXPS_NaUBrkKJ8mxCUaQ0AuQUeU1vG6DoplbVY,7733
24
- MediLink/MediLink_API_v3.py,sha256=cOxqXA_NK-O7iVaojnXhmyUg3CC5iS1TanEvA1XEV_o,44808
24
+ MediLink/MediLink_API_v3.py,sha256=RQ6cwLgBdhpz6u8KI3y4k8pHfZW7gzGIp2Qh6NyhFKo,48286
25
25
  MediLink/MediLink_APIs.py,sha256=jm3f9T034MJKH8A_CIootULoeuk7H8s7PazpFZRCbKI,6222
26
26
  MediLink/MediLink_Azure.py,sha256=Ow70jctiHFIylskBExN7WUoRgrKOvBR6jNTnQMk6lJA,210
27
27
  MediLink/MediLink_ClaimStatus.py,sha256=kXIDidxSGuqTwjFNMQIKms42jqIu5Qmnet-7Ohe8zjE,11645
28
28
  MediLink/MediLink_ConfigLoader.py,sha256=u9ecB0SIN7zuJAo8KcoQys95BtyAo-8S2n4mRd0S3XU,4356
29
- MediLink/MediLink_DataMgmt.py,sha256=AVkiQ3kMmOZHaZ3Q-I2QyCZdfcU-45mIapSoZ2rdW5M,33374
29
+ MediLink/MediLink_DataMgmt.py,sha256=Wly53vnZo-kIxO0o3e45guj0cMIWDqVmLl6-fWQtVqI,34084
30
30
  MediLink/MediLink_Decoder.py,sha256=lKWiOcRClz8F5P3jrvFTq_hW9XF4OrPfA4LFz2zLSLg,14013
31
31
  MediLink/MediLink_Deductible.py,sha256=els8CQMK3pRzlqzs12HDgqx42WLXuHFU-nfXiA4y0Js,39426
32
32
  MediLink/MediLink_Deductible_Validator.py,sha256=2g-lZd-Y5fJ1mfP87vM6oABg0t5Om-7EkEkilVvDWYY,22888
@@ -39,18 +39,21 @@ MediLink/MediLink_Parser.py,sha256=w2ZD4minjwkaMz7nzP_r8v_Ow_uM5KHjpPSY8mIHcdE,9
39
39
  MediLink/MediLink_Scan.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  MediLink/MediLink_Scheduler.py,sha256=UJvxhDvHraqra2_TlQVlGeh5jRFrrfK6nCVUHnKOEMY,38
41
41
  MediLink/MediLink_StatusCheck.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
- MediLink/MediLink_UI.py,sha256=I9nIZsHJhIVRUPqj0xHoorgEbZUIWO7fn-l7yg2HU1g,7862
43
- MediLink/MediLink_Up.py,sha256=mA6Z1PeuydqW7ufUd5BBOstQgBAm1Wh6sf5YvORk0Us,23981
42
+ MediLink/MediLink_UI.py,sha256=cDWKaXCqQgBUMSkPfQqs5ZFHSm7T3SUycXlrVqVOWzY,8327
43
+ MediLink/MediLink_Up.py,sha256=r_VvTGsMzJUy_y-51kMYDBvVdxiq4lYm20PPIU31lCY,24119
44
+ MediLink/MediLink_api_utils.py,sha256=dsGLRPRvSwfXPLrrfgnkIKGDIF00wE93TrDB6HMDPQU,11857
44
45
  MediLink/MediLink_batch.bat,sha256=nqL5QwCLyRQFSPdv6kgtcV_cpky7FXSOWVl6OxjRXb4,118
46
+ MediLink/MediLink_insurance_utils.py,sha256=igZ9m5PUE8hNLvfC1R2JlJzXJg0V_-aUHDH3FZ4kOnY,9463
45
47
  MediLink/Soumit_api.py,sha256=5JfOecK98ZC6NpZklZW2AkOzkjvrbYxpJpZNH3rFxDw,497
46
- MediLink/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
+ MediLink/__init__.py,sha256=RzjaFqYmxaCsZxj7-6XosL6P5tj2VIcQZ7ZxZ-n1HEk,50
49
+ MediLink/insurance_type_integration_test.py,sha256=CiaMejWOjKwQ-FdhYIenCNwtjKSENkTJGUU5XjdrfGs,14273
47
50
  MediLink/openssl.cnf,sha256=76VdcGCykf0Typyiv8Wd1mMVKixrQ5RraG6HnfKFqTo,887
48
51
  MediLink/test.py,sha256=kSvvJRL_3fWuNS3_x4hToOnUljGLoeEw6SUTHQWQRJk,3108
49
52
  MediLink/test_cob_library.py,sha256=wUMv0-Y6fNsKcAs8Z9LwfmEBRO7oBzBAfWmmzwoNd1g,13841
50
53
  MediLink/test_validation.py,sha256=FJrfdUFK--xRScIzrHCg1JeGdm0uJEoRnq6CgkP2lwM,4154
51
54
  MediLink/webapp.html,sha256=JPKT559aFVBi1r42Hz7C77Jj0teZZRumPhBev8eSOLk,19806
52
- medicafe-0.250728.7.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
53
- medicafe-0.250728.7.dist-info/METADATA,sha256=P1gPNoYE4bc4WMBFnU-8PSKbeMQO2G5dhgJJIH7rBDQ,5501
54
- medicafe-0.250728.7.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
55
- medicafe-0.250728.7.dist-info/top_level.txt,sha256=3uOwR4q_SP8Gufk2uCHoKngAgbtdOwQC6Qjl7ViBa_c,17
56
- medicafe-0.250728.7.dist-info/RECORD,,
55
+ medicafe-0.250728.9.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
56
+ medicafe-0.250728.9.dist-info/METADATA,sha256=o_lCO6JP1efgXD2f3R6avtqIl4LkDwRPYjL1Gtu1_p8,5501
57
+ medicafe-0.250728.9.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
58
+ medicafe-0.250728.9.dist-info/top_level.txt,sha256=3uOwR4q_SP8Gufk2uCHoKngAgbtdOwQC6Qjl7ViBa_c,17
59
+ medicafe-0.250728.9.dist-info/RECORD,,