File size: 2,213 Bytes
6371026 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
from dataclasses import dataclass, field
import re
@dataclass
class ServiceDopsConfig:
dops_default_values:dict = field(default_factory=lambda:{'Место оказания услуги':'в клинике',
'Учёная степень':'неизвестно',
'Возрастная категория':'взрослый',
'Вид приёма':'первичный'})
service_location_options:dict = field(default_factory=lambda:{'на дому':re.compile(r'\b(дом|на\s*дому)\b', re.IGNORECASE),
'дистанционно':re.compile(r'\b(дистанционн|телемед)\S*\b', re.IGNORECASE)})
academic_degree_options:dict = field(default_factory=lambda:{'кандидат медицинских наук(кмн)':re.compile(r'\bк(\.|андидата|андидат)?\s*м(\.|едицинских)?\s*н(\.|аук)?\b', re.IGNORECASE),
'доктор медицинских наук(дмн)':re.compile(r'\b(д(\.|октор)?\s*м(\.|едицинских)?\s*н(\.|аук)?)\b', re.IGNORECASE),
'врач высшей категории':re.compile(r'\bвысш\w*\.*\s*кат\w*\.?\s*\)?\b', re.IGNORECASE),
'врач первой категории':re.compile(r'\bперв\S*\s*(категори\S*|I\s*категори\S*)\b', re.IGNORECASE)})
age_options:dict = field(default_factory=lambda:{'детский':re.compile(r'\b(детск|педиатр)\S*\b', re.IGNORECASE)})
reception_type_options:dict = field(default_factory=lambda:{'повторный':re.compile(r'\b(повтор|по\s*результат)\S*\b', re.IGNORECASE)})
option_patterns_dict: dict = None
def __post_init__(self):
self.option_patterns_dict = {'Место оказания услуги': dict(self.service_location_options),
'Учёная степень': dict(self.academic_degree_options),
'Возрастная категория': dict(self.age_options),
'Вид приёма': dict(self.reception_type_options)}
|