eldoc/mods/settings.py

63 lines
2.5 KiB
Python

from mods.db import db, Settings, Diag, DiagCategory, diag_db, Diagnosis, DiagnosisCategory, DiagnosisIndex
# Имена ключей параметров
S_KEY_RECEPTION_LIST = 'reception_list'
S_RECEPTION_LIST_DAY_START = 'day_start'
S_RECEPTION_LIST_DAY_END = 'day_end'
S_RECEPTION_LIST_INTERVAL = 'interval'
# Получение параметров
def s_get_reception_list():
class RLSettings:
day_start = None
day_end = None
interval = None
s = Settings.get(Settings.key == S_KEY_RECEPTION_LIST).val
o = RLSettings()
o.day_start = s[S_RECEPTION_LIST_DAY_START]
o.day_end = s[S_RECEPTION_LIST_DAY_END]
o.interval = s[S_RECEPTION_LIST_INTERVAL]
return o
# Установка параметров
def s_set_reception_list(dstart, dend, interval):
v = {
S_RECEPTION_LIST_DAY_START: dstart,
S_RECEPTION_LIST_DAY_END: dend,
S_RECEPTION_LIST_INTERVAL: interval
}
with db.atomic():
q = Settings.select().where(Settings.key == S_KEY_RECEPTION_LIST)
if not len(q):
Settings.create(key=S_KEY_RECEPTION_LIST, val=v)
else:
Settings.update(val=v).where(Settings.key == S_KEY_RECEPTION_LIST).execute()
### Инициализация начальных значений параметров
# Начальный график приёмов
with db.atomic():
q = Settings.select().where(Settings.key == S_KEY_RECEPTION_LIST)
if not len(q):
s_set_reception_list([8,0], [17,0], 30)
# Загрузка диагнозов МКБ 10
q = Diagnosis.select()
if not len(q):
diag_db.connect()
__root_cat_map_ = {}
__subcat_map_ = {}
for root_cat in DiagCategory.select().where(DiagCategory.parent == None):
__root_cat_ = DiagnosisCategory.create(title=root_cat.title)
__root_cat_map_[root_cat] = __root_cat_
for root_cat in __root_cat_map_.keys():
for sc in DiagCategory.select().where(DiagCategory.parent == root_cat):
__subcat_ = DiagnosisCategory.create(parent=__root_cat_map_[root_cat], title=sc.title)
__subcat_map_[sc] = __subcat_
for diag in Diag.select().where(Diag.category == sc):
new_diag = Diagnosis.create(category=__subcat_map_[sc], code=diag.code, title=diag.title)
DiagnosisIndex.insert({
DiagnosisIndex.rowid: new_diag.id,
DiagnosisIndex.title: new_diag.title
}).execute()
del __subcat_map_
del __root_cat_map_
diag_db.close()