def update(self, add = False): cv = csv_manage(self.authority + ".csv") if (add == True): res = cv.write_data(self.get_line()) return res else: return cv.edit_data([[0, self.email]], self.get_line())
def get_all_list(self): cv = csv_manage("health_centres.csv") center_list = cv.get_all_data() result = [] for line in center_list: result.append(self.get_center(line[2])) return result
def get_center_list(self, provider): cv = csv_manage("provider_health_centre.csv") center_list = cv.search_data([[0, provider]]) result = [] for line in center_list: result.append(self.get_center(line[1])) return result
def save(self, provider_email, center_name, start_time, end_time): cv = csv_manage("provider_health_centre.csv") line = [ provider_email, center_name, start_time.strftime('%H:%M:%S'), end_time.strftime('%H:%M:%S') ] cv.write_data(line)
def get_center(self, centerName): cv = csv_manage("health_centres.csv") provide_list = cv.search_data([[2, centerName]]) if provide_list == []: return None provide_list = provide_list[0] return Center(provide_list[0], provide_list[1], provide_list[2], provide_list[3], provide_list[4])
def check(self): if (self.authority == None): return False cv = csv_manage(self.authority + ".csv") result = cv.search_data([[0, self.email]]) if (result != []): return True return False
def get_user(self, user_id): patient = csv_manage("patient.csv") data_patient = patient.search_data([[0, user_id]]) if data_patient != []: data_patient = data_patient[0] user = Patient(data_patient[0], data_patient[1], data_patient[2], data_patient[3], data_patient[4]) return user provider = csv_manage("provider.csv") data_provider = provider.search_data([[0, user_id]]) if data_provider != []: data_provider = data_provider[0] user = Provider(data_provider[0], data_provider[1], data_provider[2], data_provider[3], data_provider[4], data_provider[5]) return user return None
def get_provider_list(self, center): cv = csv_manage("provider_health_centre.csv") provide_list = cv.search_data([[1, center]]) result = [] uc = user_check() for line in provide_list: result.append(uc.get_user(line[0])) return result
def update_rating(self, rating): cs = csv_manage("rating.csv") add_list = [[0, rating.patient]] if rating.provider != None: add_list.append([1, rating.provider]) if rating.centre != None: add_list.append([1, rating.centre]) if (cs.search_data(add_list) != []): return cs.edit_data(add_list, rating.get_list()) else: return cs.write_data(rating.get_list())
def search_edit(self, search_list): cv = csv_manage("record.csv") uc = user_check() cm = Center_management() result = cv.search_data(search_list) return_list = [] for line in result: return_list.append( Record( uc.get_user(line[0]), uc.get_user(line[1]), cm.get_center(line[2]), line[3], datetime.datetime.strptime(line[4], '%d-%m-%Y %H:%M:%S'), datetime.datetime.strptime(line[5], '%d-%m-%Y %H:%M:%S'), line[6], line[7])) return return_list
def get_rating(self, patient=None, provider=None, centre=None): cs = csv_manage("rating.csv") add_list = [] if patient != None: add_list.append([0, patient]) if provider != None: add_list.append([1, provider]) if centre != None: add_list.append([1, centre]) search_result = cs.search_data(add_list) average = 0 if (search_result == []): return 5 for line in search_result: average = average + int(line[2]) average = average / len(search_result) return average
def update_record(self, record, provider=None): if record.check() == False: return False if provider != None: if provider.email != record.provider.email: return False cv = csv_manage("record.csv") search_list = [[0, record.patient.email], [1, record.provider.email], [2, record.center.name], [4, record.start_time.strftime('%d-%m-%Y %H:%M:%S')], [5, record.end_time.strftime('%d-%m-%Y %H:%M:%S')]] result = cv.search_data(search_list) if result == []: if record.write_check() == False: return False cv.write_data(record.get_list()) else: cv.edit_data(search_list, record.get_list()) return True
def search_provider(name): provider_data = [] center_data = [] f_provider = csv_manage("provider.csv") provider_data = f_provider.search_data([[0, name]], 0, 1) cm = health_center.Center_management() uc = login_check.user_check() class_list_provider = [] class_list_center = [] for line in provider_data: class_list_provider.append(uc.get_user(line[0])) for line in center_data: class_list_center.append(cm.get_center(line[2])) return render_template("search_result.html", provider_data=class_list_provider, center_data=class_list_center, rating=rating_record.Rating_Management(), get_workingTime=cm.get_workingTime)
def exist_record(self, patient, provider): if (patient == None): return False if (provider == None): return False cv = csv_manage("record.csv") search_list = [] if (type(patient) == str): search_list.append([0, patient]) else: search_list.append([0, patient.email]) if (type(provider) == str): search_list.append([1, provider]) else: search_list.append([1, provider.email]) result = cv.search_data(search_list) if result == []: return False else: return True
def get_workingTime(self, provider_, center_): if (provider_ == None): return False if (center_ == None): return False cv = csv_manage("provider_health_centre.csv") if (type(provider_) == str or type(provider_) == unicode): provider = str(provider_) else: provider = provider_.email if (type(center_) == str or type(center_) == unicode): center = str(center) else: center = center_.name time = cv.search_data([[0, provider], [1, center]]) if (time == []): return False time = time[0] return datetime.datetime.strptime( time[2], '%H:%M:%S'), datetime.datetime.strptime(time[3], '%H:%M:%S')
def write_check(self): if (self.check() == False): return False cv = csv_manage("record.csv") search_list = [[1, self.provider.email]] result = cv.search_data(search_list) overlap_time = 0 for line in result: line_start_time = datetime.datetime.strptime( line[4], '%d-%m-%Y %H:%M:%S') line_end_time = datetime.datetime.strptime(line[5], '%d-%m-%Y %H:%M:%S') if (self.start_time <= line_start_time and self.end_time >= line_start_time): overlap_time = 1 if (self.start_time <= line_end_time and self.end_time >= line_end_time): overlap_time = 1 if (self.start_time >= line_start_time and self.end_time <= line_end_time): overlap_time = 1 if overlap_time == 1: print("overlap_time fail") print(self.get_list()) print( "line_start: %s line_end: %s" % (datetime.datetime.strptime(line[4], '%d-%m-%Y %H:%M:%S'), datetime.datetime.strptime(line[5], '%d-%m-%Y %H:%M:%S'))) print("self start: %s, self end : %s" % (self.start_time, self.end_time)) print("---") return False if datetime.datetime.now() > self.start_time: return False return True
import app.src.rating_record as rating_record import app.src.appointment_record as appointment_record import os REMOVE_FILE = False csv_management.prefix = "" csv_management.prefix = "test" open(csv_management.prefix + "record.csv", "w+").close() open(csv_management.prefix + "rating.csv", "w+").close() open(csv_management.prefix + "provider_health_centre.csv", "w+").close() open(csv_management.prefix + "provider.csv", "w+").close() open(csv_management.prefix + "patient.csv", "w+").close() open(csv_management.prefix + "health_centres.csv", "w+").close() if (True): record = csv_management.csv_manage("record.csv") rating = csv_management.csv_manage("rating.csv") provider_health_centre = csv_management.csv_manage( "provider_health_centre.csv") provider = csv_management.csv_manage("provider.csv") patient = csv_management.csv_manage("patient.csv") health_centres = csv_management.csv_manage("health_centres.csv") new_patient0 = user_class.Patient("*****@*****.**", "123456", "Mark", "0456789", "1234567") flag = new_patient0.update(add=True) new_provider0 = user_class.Provider("*****@*****.**", "123456", "Mark", "0456789", "1234567", "GP") new_provider0.update(add=True) print(type(new_patient0))
def check(self): cv = csv_manage("health_centres.csv") data = cv.search_data([[2, self.name]]) if data == []: return False return True
def save(self): cv = csv_manage("health_centres.csv") line = [self.type, self.Abn, self.name, self.phone, self.location] cv.write_data(line)