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)
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
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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