medicafe 0.250822.2__py3-none-any.whl → 0.250822.3__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.
@@ -91,5 +91,329 @@ def display_file_summary(index, summary):
91
91
  insurance_display,
92
92
  source_display,
93
93
  duplicate_flag,
94
- effective_endpoint[:20])
95
- )
94
+ effective_endpoint[:20]))
95
+
96
+ def display_enhanced_deductible_table(data, context="pre_api", title=None):
97
+ """
98
+ Enhanced deductible table display with unified philosophy for both pre-API and post-API contexts.
99
+
100
+ Args:
101
+ data: List of patient records (CSV rows for pre_api, or eligibility results for post_api)
102
+ context: "pre_api" (valid rows identification) or "post_api" (eligibility results)
103
+ title: Custom title for the table
104
+ """
105
+ if not data:
106
+ print("No data to display.")
107
+ return
108
+
109
+ # Set default titles based on context
110
+ if title is None:
111
+ if context == "pre_api":
112
+ title = "Valid Patients for Deductible Lookup ({} patients found)".format(len(data))
113
+ else:
114
+ title = "Eligibility Lookup Results"
115
+
116
+ print("\n{}".format(title))
117
+ print()
118
+
119
+ # Normalize data for consistent processing
120
+ normalized_data = []
121
+ for item in data:
122
+ if context == "pre_api":
123
+ # Pre-API: working with CSV row data
124
+ normalized_item = _normalize_pre_api_data(item)
125
+ else:
126
+ # Post-API: working with eligibility results
127
+ normalized_item = _normalize_post_api_data(item)
128
+
129
+ if normalized_item:
130
+ normalized_data.append(normalized_item)
131
+
132
+ if not normalized_data:
133
+ print("No valid data to display after normalization.")
134
+ return
135
+
136
+ # Sort data: by patient name, then by service date
137
+ normalized_data.sort(key=lambda x: (
138
+ x.get('patient_name', '').upper(),
139
+ x.get('service_date_sort', datetime.min),
140
+ x.get('patient_id', '')
141
+ ))
142
+
143
+ # Group by patient for enhanced display
144
+ grouped_data = _group_by_patient(normalized_data)
145
+
146
+ # Calculate column widths for proper alignment
147
+ col_widths = _calculate_column_widths(normalized_data, context)
148
+
149
+ # Display header
150
+ _display_table_header(col_widths, context)
151
+
152
+ # Display data with grouping
153
+ line_number = 1
154
+ for patient_id, patient_records in grouped_data.items():
155
+ for idx, record in enumerate(patient_records):
156
+ if idx == 0:
157
+ # Primary line with line number
158
+ _display_primary_line(record, line_number, col_widths, context)
159
+ line_number += 1
160
+ else:
161
+ # Secondary lines with dashes
162
+ _display_secondary_line(record, col_widths, context)
163
+
164
+ print() # Add blank line after table
165
+
166
+ def _normalize_pre_api_data(row):
167
+ """Normalize CSV row data for pre-API display"""
168
+ try:
169
+ # Extract patient name
170
+ patient_name = _format_patient_name_from_csv(row)
171
+
172
+ # Extract service date
173
+ service_date_display, service_date_sort = _extract_service_date_from_csv(row)
174
+
175
+ # Extract other fields
176
+ dob = row.get('Patient DOB', row.get('DOB', ''))
177
+ member_id = row.get('Primary Policy Number', row.get('Ins1 Member ID', '')).strip()
178
+ payer_id = row.get('Ins1 Payer ID', '')
179
+ patient_id = row.get('Patient ID #2', row.get('Patient ID', ''))
180
+
181
+ return {
182
+ 'patient_id': str(patient_id),
183
+ 'patient_name': patient_name,
184
+ 'dob': dob,
185
+ 'member_id': member_id,
186
+ 'payer_id': str(payer_id),
187
+ 'service_date_display': service_date_display,
188
+ 'service_date_sort': service_date_sort,
189
+ 'status': 'Ready',
190
+ 'insurance_type': '',
191
+ 'policy_status': '',
192
+ 'remaining_amount': ''
193
+ }
194
+ except Exception as e:
195
+ MediLink_ConfigLoader.log("Error normalizing pre-API data: {}".format(e), level="WARNING")
196
+ return None
197
+
198
+ def _normalize_post_api_data(eligibility_result):
199
+ """Normalize eligibility result data for post-API display"""
200
+ try:
201
+ # Handle the enhanced format that comes from convert_eligibility_to_enhanced_format
202
+ if isinstance(eligibility_result, dict):
203
+ return {
204
+ 'patient_id': str(eligibility_result.get('patient_id', '')),
205
+ 'patient_name': str(eligibility_result.get('patient_name', '')),
206
+ 'dob': str(eligibility_result.get('dob', '')),
207
+ 'member_id': str(eligibility_result.get('member_id', '')),
208
+ 'payer_id': str(eligibility_result.get('payer_id', '')),
209
+ 'service_date_display': str(eligibility_result.get('service_date_display', '')),
210
+ 'service_date_sort': eligibility_result.get('service_date_sort', datetime.min),
211
+ 'status': str(eligibility_result.get('status', 'Processed')),
212
+ 'insurance_type': str(eligibility_result.get('insurance_type', '')),
213
+ 'policy_status': str(eligibility_result.get('policy_status', '')),
214
+ 'remaining_amount': str(eligibility_result.get('remaining_amount', ''))
215
+ }
216
+ else:
217
+ MediLink_ConfigLoader.log("Unexpected eligibility result format: {}".format(type(eligibility_result)), level="WARNING")
218
+ return None
219
+ except Exception as e:
220
+ MediLink_ConfigLoader.log("Error normalizing post-API data: {}".format(e), level="WARNING")
221
+ return None
222
+
223
+ def _format_patient_name_from_csv(row):
224
+ """Format patient name as LAST, FIRST from CSV data"""
225
+ try:
226
+ # Check if Patient Name is already constructed
227
+ if 'Patient Name' in row and row['Patient Name']:
228
+ return str(row['Patient Name'])[:25] # Limit length
229
+
230
+ # Otherwise construct from parts
231
+ first_name = row.get('Patient First', '').strip()
232
+ last_name = row.get('Patient Last', '').strip()
233
+ middle_name = row.get('Patient Middle', '').strip()
234
+
235
+ if last_name or first_name:
236
+ # Format as "LAST, FIRST MIDDLE"
237
+ name_parts = []
238
+ if last_name:
239
+ name_parts.append(last_name)
240
+ if first_name:
241
+ if name_parts:
242
+ name_parts.append(", {}".format(first_name))
243
+ else:
244
+ name_parts.append(first_name)
245
+ if middle_name:
246
+ name_parts.append(" {}".format(middle_name[:1])) # Just first initial
247
+
248
+ return ''.join(name_parts)[:25] # Limit length
249
+
250
+ return "Unknown Patient"
251
+ except Exception:
252
+ return "Unknown Patient"
253
+
254
+ def _extract_service_date_from_csv(row):
255
+ """Extract and format service date from CSV data"""
256
+ try:
257
+ # Try Surgery Date first
258
+ surgery_date = row.get('Surgery Date')
259
+ if surgery_date:
260
+ if isinstance(surgery_date, datetime):
261
+ if surgery_date != datetime.min:
262
+ return surgery_date.strftime('%m-%d'), surgery_date
263
+ elif isinstance(surgery_date, str) and surgery_date.strip() and surgery_date != 'MISSING':
264
+ try:
265
+ # Try to parse common date formats
266
+ for fmt in ['%m-%d-%Y', '%m/%d/%Y', '%Y-%m-%d']:
267
+ try:
268
+ parsed_date = datetime.strptime(surgery_date.strip(), fmt)
269
+ return parsed_date.strftime('%m-%d'), parsed_date
270
+ except ValueError:
271
+ continue
272
+ except Exception:
273
+ pass
274
+
275
+ # Try other possible date fields
276
+ for date_field in ['Date of Service', 'Service Date', 'DOS']:
277
+ date_value = row.get(date_field)
278
+ if date_value and isinstance(date_value, str) and date_value.strip():
279
+ try:
280
+ for fmt in ['%m-%d-%Y', '%m/%d/%Y', '%Y-%m-%d']:
281
+ try:
282
+ parsed_date = datetime.strptime(date_value.strip(), fmt)
283
+ return parsed_date.strftime('%m-%d'), parsed_date
284
+ except ValueError:
285
+ continue
286
+ except Exception:
287
+ pass
288
+
289
+ # Default to unknown
290
+ return "Unknown", datetime.min
291
+ except Exception:
292
+ return "Unknown", datetime.min
293
+
294
+ def _group_by_patient(normalized_data):
295
+ """Group normalized data by patient ID"""
296
+ grouped = {}
297
+ for record in normalized_data:
298
+ patient_id = record.get('patient_id', 'Unknown')
299
+ if patient_id not in grouped:
300
+ grouped[patient_id] = []
301
+ grouped[patient_id].append(record)
302
+ return grouped
303
+
304
+ def _calculate_column_widths(normalized_data, context):
305
+ """Calculate optimal column widths based on data"""
306
+ widths = {
307
+ 'patient_id': max(10, max(len(str(r.get('patient_id', ''))) for r in normalized_data) if normalized_data else 10),
308
+ 'patient_name': max(20, max(len(str(r.get('patient_name', ''))) for r in normalized_data) if normalized_data else 20),
309
+ 'dob': 10,
310
+ 'member_id': max(12, max(len(str(r.get('member_id', ''))) for r in normalized_data) if normalized_data else 12),
311
+ 'payer_id': 8,
312
+ 'service_date': 10,
313
+ 'status': 8
314
+ }
315
+
316
+ if context == "post_api":
317
+ widths.update({
318
+ 'insurance_type': max(15, max(len(str(r.get('insurance_type', ''))) for r in normalized_data) if normalized_data else 15),
319
+ 'policy_status': 12,
320
+ 'remaining_amount': 12
321
+ })
322
+
323
+ return widths
324
+
325
+ def _display_table_header(col_widths, context):
326
+ """Display table header based on context"""
327
+ if context == "pre_api":
328
+ header_format = "No. {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
329
+ header = header_format.format(
330
+ "Patient ID", col_widths['patient_id'],
331
+ "Patient Name", col_widths['patient_name'],
332
+ "DOB", col_widths['dob'],
333
+ "Member ID", col_widths['member_id'],
334
+ "Payer ID", col_widths['payer_id'],
335
+ "Service Date", col_widths['service_date'],
336
+ "Status", col_widths['status']
337
+ )
338
+ print(header)
339
+ print("-" * len(header))
340
+ else:
341
+ header_format = "No. {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
342
+ header = header_format.format(
343
+ "Patient ID", col_widths['patient_id'],
344
+ "Patient Name", col_widths['patient_name'],
345
+ "DOB", col_widths['dob'],
346
+ "Member ID", col_widths['member_id'],
347
+ "Payer ID", col_widths['payer_id'],
348
+ "Service Date", col_widths['service_date'],
349
+ "Insurance Type", col_widths['insurance_type'],
350
+ "Policy Status", col_widths['policy_status'],
351
+ "Remaining Amt", col_widths['remaining_amount']
352
+ )
353
+ print(header)
354
+ print("-" * len(header))
355
+
356
+ def _display_primary_line(record, line_number, col_widths, context):
357
+ """Display primary line with line number"""
358
+ if context == "pre_api":
359
+ line_format = "{:03d}: {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
360
+ print(line_format.format(
361
+ line_number,
362
+ str(record.get('patient_id', ''))[:col_widths['patient_id']], col_widths['patient_id'],
363
+ str(record.get('patient_name', ''))[:col_widths['patient_name']], col_widths['patient_name'],
364
+ str(record.get('dob', ''))[:col_widths['dob']], col_widths['dob'],
365
+ str(record.get('member_id', ''))[:col_widths['member_id']], col_widths['member_id'],
366
+ str(record.get('payer_id', ''))[:col_widths['payer_id']], col_widths['payer_id'],
367
+ str(record.get('service_date_display', ''))[:col_widths['service_date']], col_widths['service_date'],
368
+ str(record.get('status', ''))[:col_widths['status']], col_widths['status']
369
+ ))
370
+ else:
371
+ line_format = "{:03d}: {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
372
+ print(line_format.format(
373
+ line_number,
374
+ str(record.get('patient_id', ''))[:col_widths['patient_id']], col_widths['patient_id'],
375
+ str(record.get('patient_name', ''))[:col_widths['patient_name']], col_widths['patient_name'],
376
+ str(record.get('dob', ''))[:col_widths['dob']], col_widths['dob'],
377
+ str(record.get('member_id', ''))[:col_widths['member_id']], col_widths['member_id'],
378
+ str(record.get('payer_id', ''))[:col_widths['payer_id']], col_widths['payer_id'],
379
+ str(record.get('service_date_display', ''))[:col_widths['service_date']], col_widths['service_date'],
380
+ str(record.get('insurance_type', ''))[:col_widths['insurance_type']], col_widths['insurance_type'],
381
+ str(record.get('policy_status', ''))[:col_widths['policy_status']], col_widths['policy_status'],
382
+ str(record.get('remaining_amount', ''))[:col_widths['remaining_amount']], col_widths['remaining_amount']
383
+ ))
384
+
385
+ def _display_secondary_line(record, col_widths, context):
386
+ """Display secondary line with dashes for grouped data"""
387
+ patient_id_dashes = '-' * min(len(str(record.get('patient_id', ''))), col_widths['patient_id'])
388
+ patient_name_dashes = '-' * min(len(str(record.get('patient_name', ''))), col_widths['patient_name'])
389
+ dob_dashes = '-' * min(len(str(record.get('dob', ''))), col_widths['dob'])
390
+ member_id_dashes = '-' * min(len(str(record.get('member_id', ''))), col_widths['member_id'])
391
+ payer_id_dashes = '-' * min(len(str(record.get('payer_id', ''))), col_widths['payer_id'])
392
+
393
+ if context == "pre_api":
394
+ line_format = " {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
395
+ print(line_format.format(
396
+ patient_id_dashes, col_widths['patient_id'],
397
+ patient_name_dashes, col_widths['patient_name'],
398
+ dob_dashes, col_widths['dob'],
399
+ member_id_dashes, col_widths['member_id'],
400
+ payer_id_dashes, col_widths['payer_id'],
401
+ str(record.get('service_date_display', ''))[:col_widths['service_date']], col_widths['service_date'],
402
+ str(record.get('status', ''))[:col_widths['status']], col_widths['status']
403
+ ))
404
+ else:
405
+ insurance_type_dashes = '-' * min(len(str(record.get('insurance_type', ''))), col_widths['insurance_type'])
406
+ policy_status_dashes = '-' * min(len(str(record.get('policy_status', ''))), col_widths['policy_status'])
407
+
408
+ line_format = " {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}} | {:<{}}"
409
+ print(line_format.format(
410
+ patient_id_dashes, col_widths['patient_id'],
411
+ patient_name_dashes, col_widths['patient_name'],
412
+ dob_dashes, col_widths['dob'],
413
+ member_id_dashes, col_widths['member_id'],
414
+ payer_id_dashes, col_widths['payer_id'],
415
+ str(record.get('service_date_display', ''))[:col_widths['service_date']], col_widths['service_date'],
416
+ insurance_type_dashes, col_widths['insurance_type'],
417
+ policy_status_dashes, col_widths['policy_status'],
418
+ str(record.get('remaining_amount', ''))[:col_widths['remaining_amount']], col_widths['remaining_amount']
419
+ ))
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.250822.2"
25
+ __version__ = "0.250822.3"
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.250822.2
3
+ Version: 0.250822.3
4
4
  Summary: MediCafe
5
5
  Home-page: https://github.com/katanada2/MediCafe
6
6
  Author: Daniel Vidaud
@@ -1,7 +1,7 @@
1
1
  MediBot/MediBot.bat,sha256=dWBZ2__t1uPvEuN76ETOD_mDo7368rP3tDrJd4MHCFY,26306
2
2
  MediBot/MediBot.py,sha256=sx6nZYUhFMnr4UcBR07BcrSo-IgmL1xaYRF_C-bwDAU,48243
3
3
  MediBot/MediBot_Charges.py,sha256=a28if_f_IoazIHiqlaFosFnfEgEoCwb9LQ6aOyk5-D0,10704
4
- MediBot/MediBot_Crosswalk_Library.py,sha256=jIaYdoxfT9YgQ5dWZC4jmTYxRX1Y14X-AJ6YEjR58Gc,25158
4
+ MediBot/MediBot_Crosswalk_Library.py,sha256=ZmWfsBf5AYvCNGpa165mxYNIXj4QPyOxaogWVj0mT7M,25130
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
@@ -12,7 +12,7 @@ MediBot/MediBot_dataformat_library.py,sha256=D46fdPtxcgfWTzaLBtSvjtozzZBNqNiODgu
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=DiKpzrHGq9xh-5Yc-1RXB4w52teweVFGStCp5tItbRM,3192
15
+ MediBot/__init__.py,sha256=qePTmvNpBGAjWSFrPUYdjGkpQNNAzvLznd3ZtYP67eg,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
@@ -22,13 +22,12 @@ MediBot/process_csvs.bat,sha256=3tI7h1z9eRj8rUUL4wJ7dy-Qrak20lRmpAPtGbUMbVQ,3489
22
22
  MediBot/update_json.py,sha256=vvUF4mKCuaVly8MmoadDO59M231fCIInc0KI1EtDtPA,3704
23
23
  MediBot/update_medicafe.py,sha256=G1lyvVOHYuho1d-TJQNN6qaB4HBWaJ2PpXqemBoPlRQ,17937
24
24
  MediCafe/MediLink_ConfigLoader.py,sha256=fNBFnPbh1YRVCs9WvZp6tPsKTUFzK3f38ePeUQ00QrQ,10161
25
- MediCafe/__init__.py,sha256=1Fl4c3hfeUtxajN0AUpR2bzv823OT-E-O8ywd1zfgG0,5721
25
+ MediCafe/__init__.py,sha256=CamfFgQyYDH-vuQQVMk_XyOHLp20PaVIre_0Ie5FgnE,5721
26
26
  MediCafe/__main__.py,sha256=mRNyk3D9Ilnu2XhgVI_rut7r5Ro7UIKtwV871giAHI8,12992
27
- MediCafe/api_core.py,sha256=TyJU-gC5iOpgnagKPrIZuE5MU-qZBq5fb0J2UtyEHAk,73536
28
- MediCafe/api_core_backup.py,sha256=Oy_Fqt0SEvGkQN1Oqw5iUPVFxPEokyju5CuPEb9k0OY,18686
27
+ MediCafe/api_core.py,sha256=yNFfLO70bF91NNBLSUADYWZFkR5yh8NctxnT98fkAxk,78515
29
28
  MediCafe/api_factory.py,sha256=I5AeJoyu6m7oCrjc2OvVvO_4KSBRutTsR1riiWhTZV0,12086
30
29
  MediCafe/api_utils.py,sha256=KWQB0q1k5E6frOFFlKWcFpHNcqfrS7KJ_82672wbupw,14041
31
- MediCafe/core_utils.py,sha256=r2Kbmp6aioBwTNEpEOYJLLdzBVALXl2S3eAs5IAD1-w,27165
30
+ MediCafe/core_utils.py,sha256=-laTm-Ylx-4coByrHl_Lua_Xu9YGamtOYAiS_OH_tFI,27008
32
31
  MediCafe/graphql_utils.py,sha256=xrREl0mqktEBkV6SZeAImuuDc8Sp2Q80rWxKIh-zD7Q,44499
33
32
  MediCafe/logging_config.py,sha256=auT65LN5oDEXVhkMeLke63kJHTWxYf2o8YihAfQFgzU,5493
34
33
  MediCafe/logging_demo.py,sha256=TwUhzafna5pMdN3zSKGrpUWRqX96F1JGGsSUtr3dygs,1975
@@ -46,9 +45,9 @@ MediLink/MediLink_Charges.py,sha256=82fnqHGvT7tfdfjucnFHiLdUE0WhHDXrcS0k_Ln3c8U,
46
45
  MediLink/MediLink_ClaimStatus.py,sha256=75LzWfYaxrLWelId-8rHHN_lchHXxAe34pRgvKPdP2o,22118
47
46
  MediLink/MediLink_DataMgmt.py,sha256=9hc5jyWU65nYT66afDybOyYAcW-DvEYuHpWTun96U50,52407
48
47
  MediLink/MediLink_Decoder.py,sha256=1gzdybNg4Vv69s5PNbX8bPNrXT_N_kPpFpt2HpkauWA,16430
49
- MediLink/MediLink_Deductible.py,sha256=keCowIgT0LpHCnpv0KCfsnHQ0_-uTMDEpI88bcCYHgo,51597
48
+ MediLink/MediLink_Deductible.py,sha256=PqyK0ojeq5OUPoC7dxf97vFODTSRBjs8UMtj4bAi3Q4,57606
50
49
  MediLink/MediLink_Deductible_Validator.py,sha256=Hl15LKim1BuJS7Qv9Iulg-L8dNfZRoLbvAxqO7CF2E0,24756
51
- MediLink/MediLink_Display_Utils.py,sha256=QyHk23VU1rJtNZr_QhtL76Avo66CEc7MZU84uIs-1Lo,4187
50
+ MediLink/MediLink_Display_Utils.py,sha256=lce5SmZwhLSzcOCagEl7Pg8F_-cT1gK7dPMjlDWiQmI,19631
52
51
  MediLink/MediLink_Down.py,sha256=s4_z-RaqHYanjwbQCl-OSkg4XIpcIQ2Q6jXa8-q_QXw,28111
53
52
  MediLink/MediLink_Gmail.py,sha256=8iQjqcJMSa_Zfr5azR0dShKAQeXqt-9C-s8seYB9pic,23961
54
53
  MediLink/MediLink_Mailer.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -62,19 +61,15 @@ MediLink/MediLink_insurance_utils.py,sha256=g741Fj2K26cMy0JX5d_XavMw9LgkK6hjaUJY
62
61
  MediLink/MediLink_main.py,sha256=ZVK2UsgSxC9UqgIYfgVu95ugULcH6-11l67jsf4vdJc,22132
63
62
  MediLink/MediLink_smart_import.py,sha256=B5SfBn_4bYEWJJDolXbjnwKx_-MaqGZ76LyXQwWDV80,9838
64
63
  MediLink/Soumit_api.py,sha256=5JfOecK98ZC6NpZklZW2AkOzkjvrbYxpJpZNH3rFxDw,497
65
- MediLink/__init__.py,sha256=oBklYUTgNaYRW0888MbQSQXne2XoMQREbwvm51o6RBw,3888
64
+ MediLink/__init__.py,sha256=ejz3E0Nu6GGrPBGnbxy6W5kD2MtGLPZqNKd2XRoIqhg,3888
66
65
  MediLink/gmail_http_utils.py,sha256=gtqCCrzJC7e8JFQzMNrf7EbK8na2h4sfTu-NMaZ_UHc,4006
67
66
  MediLink/gmail_oauth_utils.py,sha256=Ugr-DEqs4_RddRMSCJ_dbgA3TVeaxpbAor-dktcTIgY,3713
68
- MediLink/insurance_type_integration_test.py,sha256=pz2OCXitAznqDciYn6OL9M326m9CYU7YiK-ynssdQ5g,15172
69
67
  MediLink/openssl.cnf,sha256=76VdcGCykf0Typyiv8Wd1mMVKixrQ5RraG6HnfKFqTo,887
70
68
  MediLink/test.py,sha256=DM_E8gEbhbVfTAm3wTMiNnK2GCD1e5eH6gwTk89QIc4,3116
71
- MediLink/test_cob_library.py,sha256=wUMv0-Y6fNsKcAs8Z9LwfmEBRO7oBzBAfWmmzwoNd1g,13841
72
- MediLink/test_timing.py,sha256=yH2b8QPLDlp1Zy5AhgtjzjnDHNGhAD16ZtXtZzzESZw,2042
73
- MediLink/test_validation.py,sha256=FJrfdUFK--xRScIzrHCg1JeGdm0uJEoRnq6CgkP2lwM,4154
74
69
  MediLink/webapp.html,sha256=JPKT559aFVBi1r42Hz7C77Jj0teZZRumPhBev8eSOLk,19806
75
- medicafe-0.250822.2.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
76
- medicafe-0.250822.2.dist-info/METADATA,sha256=ag9Zmat9QfSGx9WI-dtq1zTDt3hzmAGE7WwPs0i6-S8,3414
77
- medicafe-0.250822.2.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
78
- medicafe-0.250822.2.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
79
- medicafe-0.250822.2.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
80
- medicafe-0.250822.2.dist-info/RECORD,,
70
+ medicafe-0.250822.3.dist-info/LICENSE,sha256=65lb-vVujdQK7uMH3RRJSMwUW-WMrMEsc5sOaUn2xUk,1096
71
+ medicafe-0.250822.3.dist-info/METADATA,sha256=Evt1XOBV0JDICQgnI0e453auGyZDOMa1IyaWYP7K_iA,3414
72
+ medicafe-0.250822.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
73
+ medicafe-0.250822.3.dist-info/entry_points.txt,sha256=m3RBUBjr-xRwEkKJ5W4a7NlqHZP_1rllGtjZnrRqKe8,52
74
+ medicafe-0.250822.3.dist-info/top_level.txt,sha256=U6-WBJ9RCEjyIs0BlzbQq_PwedCp_IV9n1616NNV5zA,26
75
+ medicafe-0.250822.3.dist-info/RECORD,,