예제 #1
0
    def __init__(self, name, address, telephone, location, plan_ids,
                 speciality_ids):
        self.name = name
        self.address = address
        self.telephone = telephone
        self.location = location

        if plan_ids is not None:
            aux_plan_ids = []
            if isinstance(plan_ids, str):
                aux_plan_ids.append(plan_ids)
            else:
                aux_plan_ids = plan_ids
            for p_id in aux_plan_ids:
                plan = session.query(Plan).get(p_id)
                if plan is not None:
                    self.plans.append(plan)
        if speciality_ids is not None:
            aux_speciality_ids = []
            if isinstance(speciality_ids, str):
                aux_speciality_ids.append(speciality_ids)
            else:
                aux_speciality_ids = speciality_ids
            for s_id in aux_speciality_ids:
                speciality = session.query(Speciality).get(s_id)
                if speciality is not None:
                    self.specialities.append(speciality)
예제 #2
0
 def update(self, data):
     self.name = data.get('name')
     self.address = data.get('address')
     self.telephone = data.get('telephone')
     self.location = data.get('location')
     self.plans = []
     self.specialities = []
     if data.get('plan_ids') is not None:
         plan_ids = []
         if isinstance(data.get('plan_ids'), str):
             plan_ids.append(data.get('plan_ids'))
         else:
             plan_ids = data.get('plan_ids')
         for p_id in plan_ids:
             plan = session.query(Plan).get(p_id)
             if plan is not None:
                 self.plans.append(plan)
     if data.get('speciality_ids') is not None:
         speciality_ids = []
         if isinstance(data.get('speciality_ids'), str):
             speciality_ids.append(data.get('speciality_ids'))
         else:
             speciality_ids = data.get('speciality_ids')
         for s_id in speciality_ids:
             speciality = session.query(Speciality).get(s_id)
             if speciality is not None:
                 self.specialities.append(speciality)
예제 #3
0
 def get_appointments_query(member_id=None, doctor_id=None):
     query = session.query(models.Appointment)
     if member_id is not None:
         query = query.filter(models.Appointment.member_id == member_id)
     if doctor_id is not None:
         query = query.filter(models.Appointment.doctor_id == doctor_id)
     query = query.filter(models.Appointment.deleted_at == None)\
         .order_by(models.Appointment.start.asc())
     return query
예제 #4
0
    def get_filtered_doctors(plan_id, speciality_id, lat, long):
        query = session.query(
            models.Doctor).filter(models.Doctor.deleted_at == None)
        if speciality_id:
            query = query.filter(
                models.Doctor.specialities.any(id=speciality_id))
        if plan_id:
            query = query.filter(models.Doctor.plans.any(id=plan_id))
        results = query.all()
        if long and lat:
            results = map_distance_sorted(results, lat, long)

        return results
예제 #5
0
 def get_slots(self):
     query = session.query(Appointment) \
         .filter(Appointment.doctor_id == self.doctor_id) \
         .filter(extract('day', Appointment.start) == self.start.day) \
         .filter(extract('month', Appointment.start) == self.start.month) \
         .filter(extract('year', Appointment.start) == self.start.year) \
         .filter(Appointment.deleted_at == None)
     appointments = query.all()
     slots = self.get_available_slots(appointments)
     return {
         'day': self.start.day,
         'slots': [{
             'start': s.start,
             'end': s.end
         } for s in slots]
     }
예제 #6
0
 def update(self, data):
     self.name = data.get('name')
     self.address = data.get('address')
     self.telephone = data.get('telephone')
     self.location = data.get('location')
     self.extradata = data.get('extradata')
     self.plans = []
     if data.get('plan_ids') is not None:
         aux_plan_ids = []
         if isinstance(data.get('plan_ids'), str):
             aux_plan_ids.append(data.get('plan_ids'))
         else:
             aux_plan_ids = data.get('plan_ids')
         for id in aux_plan_ids:
             plan = session.query(Plan).get(id)
             if plan is not None:
                 self.plans.append(plan)
예제 #7
0
    def __init__(self, name, address, telephone, location, extradata,
                 plan_ids):
        self.name = name
        self.address = address
        self.telephone = telephone
        self.location = location
        self.extradata = extradata
        self.plans = []

        if plan_ids is not None:
            aux_plan_ids = []
            if isinstance(plan_ids, str):
                aux_plan_ids.append(plan_ids)
            else:
                aux_plan_ids = plan_ids
            for id in aux_plan_ids:
                plan = session.query(Plan).get(id)
                if plan is not None:
                    self.plans.append(plan)
예제 #8
0
 def get_plan(plan_id):
     return session.query(models.Plan).get(plan_id)
예제 #9
0
 def get(username=None):
     print(username)
     if username is None:
         return None
     return session.query(User).filter(User.username == username).first()
예제 #10
0
 def get_member(member_id):
     return session.query(models.Member).get(member_id)
예제 #11
0
 def get_all_specialities():
     query = session.query(
         models.Speciality).filter(models.Speciality.deleted_at == None)
     return query.all()
예제 #12
0
 def get_speciality(speciality_id):
     return session.query(models.Speciality).get(speciality_id)
예제 #13
0
 def get_appointment(appointment_id):
     return session.query(models.Appointment).get(appointment_id)
예제 #14
0
 def get_member_by_number(member_number):
     query = session.query(models.Member) \
         .filter(models.Member.member_number == member_number) \
         .filter(models.Member.deleted_at == None)
     return query.first()
예제 #15
0
 def get_all_news():
     query = session.query(
         models.News).filter(models.News.deleted_at == None)
     return query.all()
예제 #16
0
 def get_all_doctors():
     query = session.query(models.Doctor).filter(models.Doctor.deleted_at == None)
     return query.all()
예제 #17
0
 def get_doctor(doctor_id):
     return session.query(models.Doctor).get(doctor_id)
예제 #18
0
 def get_all_health_centers():
     query = session.query(
         models.HealthCenter).filter(models.HealthCenter.deleted_at == None)
     return query.all()
예제 #19
0
 def get_health_center(health_center_id):
     return session.query(models.HealthCenter).get(health_center_id)
예제 #20
0
 def get_all_members():
     query = session.query(models.Member).filter(models.Member.deleted_at == None)
     return query.all()
예제 #21
0
 def get_all_plans():
     query = session.query(
         models.Plan).filter(models.Plan.deleted_at == None)
     return query.all()
예제 #22
0
 def get_news(news_id):
     return session.query(models.News).get(news_id)