예제 #1
0
class Role(db.Model):
    __tablename__ = 'roles'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    scope = db.Column(db.String(60), nullable=False)
    state_id = db.Column(db.Integer, db.ForeignKey('states.id'))
    hospital_id = db.Column(db.Integer, db.ForeignKey('hospitals.id'))
    users = db.relationship('User', backref='user_role', lazy='dynamic')

    def __repr__(self):
        return '<Role: {}>'.format(self.scope)
예제 #2
0
class Item(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True, unique=True)
    associated_room = db.Column(
        db.Integer,
        db.ForeignKey('room.id',ondelete='CASCADE')
    )
    name = db.Column(db.Text, nullable=False)
    description = db.Column(db.Text)
    who_owns = db.Column(db.Text, nullable=False)
    who_has_current = db.Column(db.Text)
    how_long_can_borrow = db.Column(db.Text)
    due_back = db.Column(db.DateTime)
    date_posted = db.Column(db.DateTime, default=func.now(), nullable=False)
    active = db.Column(db.Boolean, default=True)
    history = db.relationship('BorrowHistory', cascade='all, delete-orphan')

    def __init__(self, room, name, who_owns):
        self.associated_room = room.id
        self.name = name
        self.who_owns = who_owns

    def get_info(self):
        d = {}
        for i in self.__table__.columns:
            d[i.name] = getattr(self, i.name)

        d['history'] = [j.get_history_info() for j in self.history]
        return d
예제 #3
0
class Room(db.Model):
    __tablename__ = 'rooms'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    room_name = db.Column(db.String(60), nullable=False)
    room_pic = db.Column(db.String(60)) # refer to staff/person/etc.
    current_safety = db.Column(db.Integer)
    current_security = db.Column(db.Integer)
    current_productivity = db.Column(db.Integer)
    level_id = db.Column(db.Integer, db.ForeignKey('levels.id'))
    rooms_history = db.relationship('RoomHistory',
                                     backref='history_room',
                                     lazy='dynamic')
    rooms_safety = db.relationship('RoomSafety',
                                    backref='safety_room',
                                    lazy='dynamic')
    rooms_security = db.relationship('RoomSecurity',
                                      backref='security_room',
                                      lazy='dynamic')
    rooms_productivity = db.relationship('RoomProductivity',
                                          backref='productivity_room',
                                          lazy='dynamic')

    def __repr__(self):
        return '<Room {}>'.format(self.room_name)
예제 #4
0
class MedicalDevice(db.Model):
    __tablename__ = 'medical_devices'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    device_name = db.Column(db.String(60), nullable=False)
    device_desc = db.Column(db.String(120))
    device_loc = db.Column(
        db.String(60))  # refer to a place (room, level, or building)
    device_pic = db.Column(db.String(60))  # refer to staff/person/etc.
    device_status = db.Column(
        db.Boolean)  # refer to (used, unused, etc.) need to list more
    production_date = db.Column(db.DateTime)
    is_on = db.Column(db.Boolean)
    current_safety = db.Column(db.Integer)
    current_security = db.Column(db.Integer)
    current_productivity = db.Column(db.Integer)
    device_type_id = db.Column(db.Integer,
                               db.ForeignKey('medical_devices_type.id'))
    device_history = db.relationship('MedicalDeviceHistory',
                                     backref='history_device',
                                     lazy='dynamic')
    device_safety = db.relationship('MedicalDeviceSafety',
                                    backref='safety_device',
                                    lazy='dynamic')
    device_security = db.relationship('MedicalDeviceSecurity',
                                      backref='security_device',
                                      lazy='dynamic')
    device_productivity = db.relationship('MedicalDeviceProductivity',
                                          backref='productivity_device',
                                          lazy='dynamic')

    def __repr__(self):
        return '<Device {}>'.format(self.device_name)
예제 #5
0
class RoomProductivity(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    room_id = db.Column(db.Integer, db.ForeignKey('rooms.id'))
    count_usage = db.Column(db.Integer)
    standard_usage = db.Column(db.Integer)

    def __repr__(self):
        return '<RoomProductivity {}>'.format(self.id)
예제 #6
0
class RoomSecurity(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    room_id = db.Column(db.Integer, db.ForeignKey('rooms.id'))
    is_unauthorized = db.Column(db.Boolean)
    is_locked = db.Column(db.Boolean)
    is_pic_exist = db.Column(db.Boolean)

    def __repr__(self):
        return '<RoomSecurity {}>'.format(self.id)
예제 #7
0
class BedSecurity(db.Model):
    __tablename__ = 'beds_security'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bed_id = db.Column(db.Integer, db.ForeignKey('beds.id'))
    current_loc = db.Column(db.String(60))  # refer to a place
    current_pic = db.Column(db.String(60))  # refer to a staff

    def __repr__(self):
        return '<BedSecurity {}>'.format(self.security_bed.current_security)
예제 #8
0
class MedicalDeviceSecurity(db.Model):
    __tablename__ = 'medical_devices_security'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    device_id = db.Column(db.Integer, db.ForeignKey('medical_devices.id'))
    current_loc = db.Column(db.String(60))  # refer to a place
    current_pic = db.Column(db.String(60))  # refer to a staff

    def __repr__(self):
        return '<DeviceSecurity {}>'.format(
            self.security_device.current_security)
예제 #9
0
class MedicalDeviceProductivity(db.Model):
    __tablename__ = 'medical_devices_productivity'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    device_id = db.Column(db.Integer, db.ForeignKey('medical_devices.id'))
    count_usage = db.Column(db.Integer)
    standard_usage = db.Column(db.Integer)

    def __repr__(self):
        return '<DeviceProductivity {}>'.format(
            self.productivity_device.current_productivity)
예제 #10
0
class BedProductivity(db.Model):
    __tablename__ = 'beds_productivity'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bed_id = db.Column(db.Integer, db.ForeignKey('beds.id'))
    count_usage = db.Column(db.Integer)
    standard_usage = db.Column(db.Integer)
    turnover_usage = db.Column(db.Integer)

    def __repr__(self):
        return '<BedProductivity {}>'.format(
            self.productivity_bed.current_productivity)
예제 #11
0
class BedSafety(db.Model):
    __tablename__ = 'beds_safety'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bed_id = db.Column(db.Integer, db.ForeignKey('beds.id'))
    bed_age = db.Column(db.Integer)
    last_maintenance_date = db.Column(db.DateTime)
    standar_maintenance = db.Column(db.Integer)
    is_reported = db.Column(db.Boolean)

    def __repr__(self):
        return '<BedSafety {}>'.format(self.safety_bed.current_safety)
예제 #12
0
class StateHistory(db.Model):
    __tablename__ = 'states_history'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    state_id = db.Column(db.Integer, db.ForeignKey('states.id'))
    date_time = db.Column(db.DateTime)
    record_safety = db.Column(db.Integer)
    record_security = db.Column(db.Integer)
    record_productivity = db.Column(db.Integer)

    def __repr__(self):
        return '<StateHistory: {}>'.format(self.id)
예제 #13
0
class BedHistory(db.Model):
    __tablename__ = 'beds_history'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    bed_id = db.Column(db.Integer, db.ForeignKey('beds.id'))
    date_time = db.Column(db.DateTime)
    record_safety = db.Column(db.Integer)
    record_security = db.Column(db.Integer)
    record_productivity = db.Column(db.Integer)

    def __repr__(self):
        return '<BedHistory {}>'.format(self.history_bed.bed_name)
예제 #14
0
class MedicalDeviceHistory(db.Model):
    __tablename__ = 'medical_devices_history'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    device_id = db.Column(db.Integer, db.ForeignKey('medical_devices.id'))
    date_time = db.Column(db.DateTime)
    record_safety = db.Column(db.Integer)
    record_security = db.Column(db.Integer)
    record_productivity = db.Column(db.Integer)

    def __repr__(self):
        return '<DeviceHistory {}>'.format(self.history_device.device_name)
예제 #15
0
class MedicalDeviceSafety(db.Model):
    __tablename__ = 'medical_devices_safety'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    device_id = db.Column(db.Integer, db.ForeignKey('medical_devices.id'))
    device_age = db.Column(db.Integer)
    last_maintenance_date = db.Column(db.DateTime)
    standar_maintenance = db.Column(db.Integer)
    is_reported = db.Column(db.Boolean)

    def __repr__(self):
        return '<DeviceSafety {}>'.format(self.safety_device.current_safety)
예제 #16
0
class RoomSafety(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    room_id = db.Column(db.Integer, db.ForeignKey('rooms.id'))
    current_temperature = db.Column(db.Integer)
    current_humidity = db.Column(db.Integer)
    current_smoke = db.Column(db.Integer)
    current_co = db.Column(db.Integer)
    current_methane = db.Column(db.Integer)
    current_lpg = db.Column(db.Integer)
    current_light = db.Column(db.Integer)
    current_led = db.Column(db.Integer)
    current_freq = db.Column(db.Integer)

    def __repr__(self):
        return '<RoomSafety {}>'.format(self.id)
예제 #17
0
class Level(db.Model):
    __tablename__ = 'levels'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    level_name = db.Column(db.String(60), nullable=False)
    level_pic = db.Column(db.String(60),
                          nullable=True)  # refer to staff/person/etc.
    count_rooms = db.Column(db.Integer)
    current_safety = db.Column(db.Integer)
    current_security = db.Column(db.Integer)
    current_productivity = db.Column(db.Integer)
    building_id = db.Column(db.Integer, db.ForeignKey('buildings.id'))
    rooms = db.relationship('Room', backref='room_level', lazy='dynamic')
    levels_history = db.relationship('LevelHistory',
                                     backref='history_level',
                                     lazy='dynamic')

    def __repr__(self):
        return '<Level {}>'.format(self.level_name)
예제 #18
0
class Hospital(db.Model):
    __tablename__ = 'hospitals'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    hospital_name = db.Column(db.String(60), nullable=False)
    count_buildings = db.Column(db.Integer)
    count_rooms = db.Column(db.Integer)
    current_safety = db.Column(db.Integer)
    current_security = db.Column(db.Integer)
    current_productivity = db.Column(db.Integer)
    state_id = db.Column(db.Integer, db.ForeignKey('states.id'))
    roles = db.relationship('Role', backref='role_hospital', lazy='dynamic')
    buildings = db.relationship('Building',
                                backref='building_hospital',
                                lazy='dynamic')
    hospitals_history = db.relationship('HospitalHistory',
                                        backref='history_hospital',
                                        lazy='dynamic')

    def __repr__(self):
        return '<Hospital {}>'.format(self.hospital_name)
예제 #19
0
class BorrowHistory(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    associated_item = db.Column(db.Integer,
        db.ForeignKey('item.id', ondelete='CASCADE'),
        nullable=False
    )
    who_borrowed = db.Column(db.Text, nullable=False)
    date_borrowed = db.Column(db.DateTime)
    due_back = db.Column(db.DateTime)
    returned = db.Column(db.Boolean, default=False)
    date_returned = db.Column(db.DateTime)
    notes = db.Column(db.Text)

    def __init__(self, associated, who_borrowed):
        self.associated_item = associated.id
        self.who_borrowed = who_borrowed

    def get_history_info(self):
        d = {}
        for i in self.__table__.columns:
            d[i.name] = getattr(self, i.name)
        return d