def get_course_checker(serialno, courseno): course = TreatmentCourse(serialno, courseno) ests = estimatesHistory.getEsts(serialno, courseno) daybook_list = [] accd = datetime.date.today() if course.accd is None else course.accd cmpd = datetime.date.today() if course.cmpd is None else course.cmpd for daybook_entry in daybook.all_data(serialno): if accd <= daybook_entry.date <= cmpd: daybook_list.append(daybook_entry) return CourseChecker(course, ests, daybook_list)
def _get_courses(sno, current_csno): # query allows exclusion of current course. if current_csno is None: query = QUERY values = (sno, ) else: query = QUERY.replace("ORDER", " AND courseno!=%s ORDER") values = (sno, current_csno) db = connect() cursor = db.cursor() cursor.execute(query, values) rows = cursor.fetchall() cursor.close() for row in rows: yield TreatmentCourse(sno, row[0])
def new_tx_course(self, new_courseno): ''' start a new treatment course ''' self.courseno0 = new_courseno self.treatment_course = TreatmentCourse(self.serialno, new_courseno)
def __init__(self, sno): ''' initiate the class with default variables, then load from database ''' self.serialno = sno self.dbstate = None self.load_warnings = [] # patient table atts self.courseno0 = None self.money0 = 0 self.money1 = 0 self.money2 = 0 self.money3 = 0 self.money4 = 0 self.money5 = 0 self.money6 = 0 self.money7 = 0 self.money8 = 0 self.money9 = 0 self.money10 = 0 self.pd0 = None self.pd1 = None self.pd2 = None self.pd3 = None self.pd4 = None # this field is no longer used (last treatment date) self.pd5 = None self.pd6 = None self.pd7 = None self.pd8 = None self.pd9 = None self.pd10 = None self.pd11 = None self.pd12 = None self.pd13 = None self.pd14 = None self.sname = '' self.fname = '' self.title = '' self.sex = '' self.dob = None self.addr1 = '' self.addr2 = '' self.addr3 = '' self.pcde = '' self.tel1 = '' self.tel2 = '' self.occup = '' self.nhsno = '' self.cnfd = None self.cset = '' self.dnt1 = 0 self.dnt2 = 0 self.ur8st = '' self.ur7st = '' self.ur6st = '' self.ur5st = '' self.ur4st = '' self.ur3st = '' self.ur2st = '' self.ur1st = '' self.ul1st = '' self.ul2st = '' self.ul3st = '' self.ul4st = '' self.ul5st = '' self.ul6st = '' self.ul7st = '' self.ul8st = '' self.ll8st = '' self.ll7st = '' self.ll6st = '' self.ll5st = '' self.ll4st = '' self.ll3st = '' self.ll2st = '' self.ll1st = '' self.lr1st = '' self.lr2st = '' self.lr3st = '' self.lr4st = '' self.lr5st = '' self.lr6st = '' self.lr7st = '' self.lr8st = '' self.dent0 = 0 self.dent1 = 0 self.dent2 = 0 self.dent3 = 0 self.billdate = None self.billct = 0 self.billtype = None self.money11 = 0 self.familyno = localsettings.last_family_no self.memo = '' self.town = '' self.county = '' self.mobile = '' self.fax = '' self.email1 = '' self.email2 = '' self.status = '' self.initaccept = 0 self.lastreaccept = None self.lastclaim = None self.expiry = None self.cstatus = None self.transfer = 0 self.pstatus = None self.estimates = [] # from userdata self.plandata = PlanData(self.serialno) # NEIL'S STUFF#### self.exemption = "" self.exempttext = "" self.bpe = [] self.bpedate = nullDate self.chartdate = nullDate self.notes_dict = {} self.MEDALERT = False self.mh_chkdate = None self.mh_form_date = None self.HIDDENNOTES = [] self.chartgrid = {} self._fee_table = None self.synopsis = "" self._n_family_members = None self._dayBookHistory = None self.treatment_course = None self.est_logger = None self._most_recent_daybook_entry = None self._first_note_date = None self._has_exam_booked = None self._previous_surnames = None self.monies_reset = False self._n_hyg_visits = None if self.serialno == 0: return # # now load stuff from the database ## # db = connect.connect() cursor = db.cursor() self.getSynopsis() cursor.execute(PATIENT_QUERY, (self.serialno, )) values = cursor.fetchall() if values == (): raise localsettings.PatientNotFoundError for i, att_ in enumerate(patient_query_atts): value = values[0][i] if value is not None: self.__dict__[att_] = value elif att_ == "familyno": self.familyno = 0 query = '''select exemption, exempttext from exemptions where serialno=%s''' cursor.execute(query, (self.serialno, )) values = cursor.fetchall() for value in values: self.exemption, self.exempttext = value query = '''select bpedate, bpe from bpe where serialno=%s order by bpedate''' cursor.execute(query, (self.serialno, )) values = cursor.fetchall() for value in values: self.bpe.append(value) if self.courseno0 != 0: self.getEsts() self.treatment_course = TreatmentCourse(self.serialno, self.courseno0) self.getNotesTuple() cursor.execute(QUICK_MED_QUERY, (self.serialno, )) try: self.MEDALERT, self.mh_chkdate = cursor.fetchone() except TypeError: pass cursor.execute(MED_FORM_QUERY + " limit 1", (self.serialno, )) try: self.mh_form_date = cursor.fetchone()[0] except TypeError: pass cursor.close() # - load from plandata self.plandata.getFromDB() self.appt_prefs = ApptPrefs(self.serialno) self.updateChartgrid() self.take_snapshot()
def new_tx_course(self, new_courseno): self.courseno0 = new_courseno self.treatment_course = TreatmentCourse(self.serialno, new_courseno)
def __init__(self, sno): ''' initiate the class with default variables, then load from database ''' self.serialno = sno self.dbstate = None self.load_warnings = [] # patient table atts self.courseno0 = None self.pf0 = 0 self.pf1 = 0 self.pf2 = 0 self.pf3 = 0 self.pf4 = 0 self.pf5 = 0 self.pf6 = 0 self.pf7 = 0 self.pf8 = 0 self.pf9 = 0 self.pf10 = 0 self.pf11 = 0 self.pf12 = 0 self.pf14 = 0 self.pf15 = 0 self.pf16 = 0 self.pf17 = 0 self.pf18 = 0 self.pf19 = 0 self.money0 = 0 self.money1 = 0 self.money2 = 0 self.money3 = 0 self.money4 = 0 self.money5 = 0 self.money6 = 0 self.money7 = 0 self.money8 = 0 self.money9 = 0 self.money10 = 0 self.pd0 = None self.pd1 = None self.pd2 = None self.pd3 = None self.pd4 = None self.pd5 = None self.pd6 = None self.pd7 = None self.pd8 = None self.pd9 = None self.pd10 = None self.pd11 = None self.pd12 = None self.pd13 = None self.pd14 = None self.sname = '' self.fname = '' self.title = '' self.sex = '' self.dob = None self.addr1 = '' self.addr2 = '' self.addr3 = '' self.pcde = '' self.tel1 = '' self.tel2 = '' self.occup = '' self.nhsno = '' self.cnfd = None self.psn = '' self.cset = '' self.dnt1 = 0 self.dnt2 = 0 self.courseno1 = 0 self.ur8st = '' self.ur7st = '' self.ur6st = '' self.ur5st = '' self.ur4st = '' self.ur3st = '' self.ur2st = '' self.ur1st = '' self.ul1st = '' self.ul2st = '' self.ul3st = '' self.ul4st = '' self.ul5st = '' self.ul6st = '' self.ul7st = '' self.ul8st = '' self.ll8st = '' self.ll7st = '' self.ll6st = '' self.ll5st = '' self.ll4st = '' self.ll3st = '' self.ll2st = '' self.ll1st = '' self.lr1st = '' self.lr2st = '' self.lr3st = '' self.lr4st = '' self.lr5st = '' self.lr6st = '' self.lr7st = '' self.lr8st = '' self.dent0 = 0 self.dent1 = 0 self.dent2 = 0 self.dent3 = 0 self.dmask = "YYYYYYY" self.minstart = 0 self.maxend = 0 self.billdate = None self.billct = 0 self.billtype = None self.pf20 = 0 self.money11 = 0 self.pf13 = 0 self.familyno = localsettings.last_family_no self.memo = '' self.town = '' self.county = '' self.mobile = '' self.fax = '' self.email1 = '' self.email2 = '' self.status = '' self.source = '' self.enrolled = '' self.archived = None self.initaccept = 0 self.lastreaccept = None self.lastclaim = None self.expiry = None self.cstatus = None self.transfer = 0 self.pstatus = None self.courseno2 = 0 # TABLE 'mnhist'####### self.chgdate = nullDate # date YES None self.ix = 0 # tinyint(3) unsigned YES None self.note = '' # varchar(60) YES None self.estimates = [] # from userdata self.plandata = PlanData(self.serialno) # NEIL'S STUFF#### self.exemption = "" self.exempttext = "" self.perioData = {} self.bpe = [] self.bpedate = nullDate self.chartdate = nullDate self.notes_dict = {} self.MH = () self.MEDALERT = False self.HIDDENNOTES = [] self.chartgrid = {} self._fee_table = None self.synopsis = "" self._n_family_members = None self._dayBookHistory = None self.treatment_course = None self.est_logger = None if self.serialno == 0: return # # now load stuff from the database ## # db = connect.connect() cursor = db.cursor() self.getSynopsis() cursor.execute(PATIENT_QUERY, (self.serialno,)) values = cursor.fetchall() if values == (): raise localsettings.PatientNotFoundError for i, att in enumerate(patientTableAtts): value = values[0][i] if value is not None: self.__dict__[att] = value elif att == "familyno": self.familyno = 0 query = '''select exemption, exempttext from exemptions where serialno=%s''' cursor.execute(query, self.serialno) values = cursor.fetchall() for value in values: self.exemption, self.exempttext = value query = '''select bpedate, bpe from bpe where serialno=%s order by bpedate''' cursor.execute(query, self.serialno) values = cursor.fetchall() for value in values: self.bpe.append(value) if self.courseno0 != 0: self.getEsts() self.treatment_course = TreatmentCourse( self.serialno, self.courseno0) self.getNotesTuple() query = 'select chartdate,chartdata from perio where serialno=%s' cursor.execute(query, self.serialno) perioData = cursor.fetchall() for data in perioData: self.perioData[localsettings.formatDate(data[0])] = ( perio.get_perioData(data[1])) #--perioData is #--a dictionary (keys=dates) of dictionaries with keys #--like "ur8" and containing 7 tuples of data query = 'select drnm,adrtel,curmed,oldmed,allerg,heart,lungs,' +\ 'liver,kidney,bleed,anaes,other,alert,chkdate from mednotes' +\ ' where serialno=%s' cursor.execute(query, (self.serialno,)) self.MH = cursor.fetchone() if self.MH is not None: self.MEDALERT = self.MH[12] cursor.close() # db.close() #-- load from plandata self.plandata.getFromDB() self.appt_prefs = ApptPrefs(self.serialno) self.updateChartgrid() self.take_snapshot()
def daybook_course(self): ''' This is the daybook entries converted to a Treatment Course ''' if self._daybook_course is None: self._daybook_course = TreatmentCourse(self.serialno, 0) self._daybook_course.courseno = self.courseno accd, cmpd = None, None for daybook_entry in self.daybook_entries: #LOGGER.debug(daybook_entry) if not accd or daybook_entry.date < accd: accd = daybook_entry.date if not cmpd or daybook_entry.date > cmpd: cmpd = daybook_entry.date #diagn m = re.search("(E?CE) ", daybook_entry.diagn) if m: self._daybook_course.examt += m.groups()[0] self._daybook_course.examd = daybook_entry.date #xray for xray in re.findall("\d?[S|M|P] ", daybook_entry.diagn): self._daybook_course.xraycmp += xray #perio if daybook_entry.perio.strip(" "): self._daybook_course.periocmp += daybook_entry.perio.strip( " ") + " " #anaes if daybook_entry.anaes.strip(" "): self._daybook_course.anaescmp += daybook_entry.anaes.strip( " ") + " " #misc if daybook_entry.misc.strip(" "): self._daybook_course.customcmp += daybook_entry.misc.strip( " ") + " " #ndu if daybook_entry.ndu.strip(" "): self._daybook_course.nducmp += daybook_entry.ndu.strip( " ") + " " #ndl if daybook_entry.ndl.strip(" "): self._daybook_course.ndlcmp += daybook_entry.ndl.strip( " ") + " " #odu if daybook_entry.odu.strip(" "): self._daybook_course.oducmp += daybook_entry.odu.strip( " ") + " " #odl if daybook_entry.odl.strip(" "): self._daybook_course.odlcmp += daybook_entry.odl.strip( " ") + " " #other if daybook_entry.other.strip(" "): self._daybook_course.othercmp += daybook_entry.other.strip( " ") + " " #chart for chart_entry in daybook_entry.chart.split(" "): m = re.match("([UL][LR][1-8]) (.*)", chart_entry) if m: att = "%scmp" % m.groups()[0].lower() tx = m.groups()[1] + " " self._daybook_course.__dict__[att] += tx if accd is None or (self.course.accd and self.course.accd < accd): self._daybook_course.accd = self.course.accd else: self._daybook_course.accd = accd self._daybook_course.cmpd = cmpd return self._daybook_course