medicafe 0.250822.1__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.
- MediBot/MediBot_Crosswalk_Library.py +1 -1
- MediBot/__init__.py +1 -1
- MediCafe/__init__.py +1 -1
- MediCafe/api_core.py +116 -14
- MediCafe/core_utils.py +1 -3
- MediLink/MediLink_Deductible.py +264 -75
- MediLink/MediLink_Display_Utils.py +326 -2
- MediLink/__init__.py +1 -1
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/METADATA +1 -1
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/RECORD +14 -19
- MediCafe/api_core_backup.py +0 -428
- MediLink/insurance_type_integration_test.py +0 -361
- MediLink/test_cob_library.py +0 -436
- MediLink/test_timing.py +0 -59
- MediLink/test_validation.py +0 -127
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/LICENSE +0 -0
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/WHEEL +0 -0
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/entry_points.txt +0 -0
- {medicafe-0.250822.1.dist-info → medicafe-0.250822.3.dist-info}/top_level.txt +0 -0
@@ -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
@@ -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=
|
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=
|
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=
|
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=
|
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
|
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=
|
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=
|
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=
|
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.
|
76
|
-
medicafe-0.250822.
|
77
|
-
medicafe-0.250822.
|
78
|
-
medicafe-0.250822.
|
79
|
-
medicafe-0.250822.
|
80
|
-
medicafe-0.250822.
|
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,,
|