Source code for egegrouper.sme

# EGEGrouper - Software for grouping electrogastroenterography examinations.

# Copyright (C) 2017-2018 Aleksandr Popov

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

""" Simple implementation of SME model. """

[docs]class Signal: """Signal.""" def __init__(self): self._meta = {} self.x = [] def set_dt(self, dt): self._meta['dt'] = dt def get_dt(self): return self._meta['dt'] dt = property(get_dt, set_dt)
[docs]class Measurement: """ Measurement which contains one or more signals. """ def __init__(self): self._meta = {} self.ss = [] def set_time(self, time): self._meta['time'] = time def get_time(self): return self._meta['time'] time = property(get_time, set_time)
[docs]class Examination: """ Examination, which contains one or more measurements. """ def __init__(self): self._meta = {} self.ms = [] def set_age(self, age): self._meta['age'] = age def get_age(self): return self._meta['age'] age = property(get_age, set_age) def set_name(self, name): self._meta['name'] = name def get_name(self): return self._meta['name'] name = property(get_name, set_name) def set_gender(self, gender): self._meta['gender'] = gender def get_gender(self): return self._meta['gender'] gender = property(get_gender, set_gender) def set_diagnosis(self, diagnosis): self._meta['diagnosis'] = diagnosis def get_diagnosis(self): return self._meta['diagnosis'] diagnosis = property(get_diagnosis, set_diagnosis)
[docs]def merge_exams(e1, e2): """Merge exams.""" e = Examination() e = e1 for m in e2.ms: e1.ms.append(m) return e