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 @@
+
+
+
+
+
+
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