diff --git a/mods/files.py b/mods/files.py index 4865f96..cbbcf9c 100644 --- a/mods/files.py +++ b/mods/files.py @@ -29,6 +29,9 @@ with open(catalog_row_file, 'r') as f: diagnosis_row_file = os.path.join(ui_dir, 'diagnosis_row.glade') with open(diagnosis_row_file, 'r') as f: diagnosis_row_ui_str = f.read() +anamnesis_row_file = os.path.join(ui_dir, 'anamnesis_row.glade') +with open(anamnesis_row_file, 'r') as f: + anamnesis_row_ui_str = f.read() main_win_file = os.path.join(ui_dir, 'main_win.glade') new_patient_win_file = os.path.join(ui_dir, 'new_patient_win.glade') diff --git a/mods/receptions.py b/mods/receptions.py index 13bc403..7a549a1 100644 --- a/mods/receptions.py +++ b/mods/receptions.py @@ -4,6 +4,7 @@ gi.require_version('Gtk', '3.0') from gi.repository import Gtk, GObject, Gdk from mods.db import db, Reception, Patient, ReceptionDiagnosis, ReceptionAnamnesis from mods.files import new_reception_win_file, reception_row_ui_str, reception_list_settings_win_file, open_reception_win_file, diagnosis_row_ui_str +from mods.files import anamnesis_row_ui_str from mods.settings import s_get_reception_list, s_set_reception_list from mods.diagnosis import create_choose_diagnosis_win, get_giagnosis from mods.lists import get_listrecord @@ -56,6 +57,13 @@ class ReceptionDiagnosisRow(Gtk.ListBoxRow): @db_id.setter def db_id_setter(self, value): self._db_id = value +class ReceptionAnamnesisRow(Gtk.ListBoxRow): + @GObject.Property + def db_id(self): + return self._db_id + @db_id.setter + def db_id_setter(self, value): + self._db_id = value def get_reception(reception_id): with db.atomic(): @@ -138,7 +146,17 @@ def build_reception_diagnosis_row(diagnosis): row.props.db_id = diagnosis.id row.add(box) return row - +def build_reception_anamnesis_row(anamnesis): + b = Gtk.Builder() + b.add_from_string(anamnesis_row_ui_str) + win = b.get_object('win') + box = b.get_object('anamnesis_box') + b.get_object('title').set_text(f'{anamnesis.text}') + win.remove(win.get_children()[0]) + row = ReceptionAnamnesisRow() + row.props.db_id = anamnesis.id + row.add(box) + return row def create_open_reception_win(): b = Gtk.Builder() reception_list = builder.get_object('reception_list') @@ -153,14 +171,23 @@ def create_open_reception_win(): reception_diag_list.remove(row) disable_widget([remove_diag_button]) reception_diag_list.show_all() + def remove_anamnesis(self, button): + row = reception_anam_list.get_selected_row() + reception_anam_list.remove(row) + disable_widget([remove_anam_button]) + reception_anam_list.show_all() def diagnosis_selected(self, *s): enable_widget([remove_diag_button]) + def anamnesis_selected(self, *a): + enable_widget([remove_anam_button]) def save(self, button): # Диагнозы diag_id_list = list(map(lambda x: x.props.db_id, reception_diag_list.get_children())) save_reception_diagnosisses(reception, diag_id_list) ####### - + # Анамнез + anam_id_list = list(map(lambda x: x.props.db_id, reception_anam_list.get_children())) + save_reception_anamnesisses(reception, anam_id_list) ####### w.destroy() b.add_from_file(open_reception_win_file) @@ -171,9 +198,12 @@ def create_open_reception_win(): reception_dt = b.get_object('reception_datetime') reception_dt.set_markup(f'{reception_row.props.datetime.strftime("%d.%m.%Y - %H:%M")}') reception_diag_list = b.get_object('diagnosis_list') + reception_anam_list = b.get_object('anamnesis_list') remove_diag_button = b.get_object('remove_diag_button') + remove_anam_button = b.get_object('remove_anam_button') # Анамнезы - + for ra in [x.anamnesis for x in get_reception_anamnesisses(reception)]: + reception_anam_list.add(build_reception_anamnesis_row(ra)) # # Диагнозы for rd in [x.diagnosis for x in get_reception_diagnosisses(reception)]: diff --git a/res/ui/anamnesis_row.glade b/res/ui/anamnesis_row.glade new file mode 100644 index 0000000..a87723f --- /dev/null +++ b/res/ui/anamnesis_row.glade @@ -0,0 +1,31 @@ + + + + + + False + False + + + + + + True + False + + + True + False + label + 0 + + + True + True + 1 + + + + + + diff --git a/res/ui/open_reception_win.glade b/res/ui/open_reception_win.glade index cb48984..4420c5e 100644 --- a/res/ui/open_reception_win.glade +++ b/res/ui/open_reception_win.glade @@ -222,7 +222,7 @@ - + True False True