eldoc/mods/catalogs.py

34 lines
948 B
Python

from mods.db import db, Catalog, CatalogIndex
sys_catalogs = {
'diagnoz': 'Диагноз',
'anamnez': 'Анамнез',
'observ': 'Осмотр',
'druggs': 'Медикаменты'
}
def add_catalog(name, system_id = ''):
catalog = Catalog.create(name=name, system_id=system_id)
CatalogIndex.insert(
{
CatalogIndex.rowid: catalog.id,
CatalogIndex.text: name
}
).execute()
return catalog
def search_catalogs(q):
with db.atomic():
return (Catalog.select()
.join(
CatalogIndex,
on=(Catalog.id == CatalogIndex.rowid))
.where(CatalogIndex.match(q))
.order_by(CatalogIndex.bm25()))
for s_id in sys_catalogs:
with db.atomic():
q = Catalog.select().where(Catalog.system_id == s_id)
if not len(q):
add_catalog(sys_catalogs[s_id], s_id)