Ejemplo n.º 1
0
class PatientViewBase(tk.Toplevel):
    # root:
    #     no space needed
    #     variable 'patientview' can be set to None

    isopen = False

    def __init__(self, root, patient_id=None):
        PatientViewBase.isopen = True

        # Variables
        self.log = logging.getLogger(__name__)
        self.colour = Colours.patient
        self.relief = Relief.patient
        self.root = root
        self.patient_id = patient_id
        self.patientview = None
        self.datapatient = DataPatient()

        # Build Window
        tk.Toplevel.__init__(self, root, bg=self.colour["frame"], relief=self.relief["frame"])
        self.title("Patient View")
        self.protocol("WM_DELETE_WINDOW", self.Close)

        # Configure Window
        for i in range(6):
            self.grid_columnconfigure(i, weight=1)

        self.grid_rowconfigure(0, weight=0)
        self.grid_rowconfigure(1, weight=1)

        # Widgets
        self.appointmentbutton = tk.Button(
            self, text="Appointment", highlightthickness=0, bg=self.colour["button"], relief=self.relief["button"]
        )
        self.invoicemenu = tk.Menubutton(self, text="Invoice", bg=self.colour["button"], relief=self.relief["button"])
        self.prescriptionmenu = tk.Menubutton(
            self, text="Prescription", bg=self.colour["button"], relief=self.relief["button"]
        )
        self.miscmenu = tk.Menubutton(self, text="Misc", bg=self.colour["button"], relief=self.relief["button"])
        self.refreshbutton = tk.Button(
            self,
            text="Refresh",
            highlightthickness=0,
            bg=self.colour["button"],
            relief=self.relief["button"],
            command=self.Refresh,
        )
        self.savebutton = tk.Button(
            self,
            text="Save",
            highlightthickness=0,
            bg=self.colour["savebutton"],
            relief=self.relief["savebutton"],
            command=self.SavePatient,
        )

        self.patientview = PatientView(self, self.patient_id)

        # Widget Configure
        self.invoicemenu.menu = tk.Menu(self.invoicemenu, tearoff=0)
        self.invoicemenu["menu"] = self.invoicemenu.menu
        self.invoicemenu.menu.add_command(label="Frame")
        self.invoicemenu.menu.add_command(label="Lense")
        self.invoicemenu.menu.add_command(label="Misc")

        self.prescriptionmenu.menu = tk.Menu(self.prescriptionmenu, tearoff=0)
        self.prescriptionmenu["menu"] = self.prescriptionmenu.menu
        self.prescriptionmenu.menu.add_command(label="Glasses")
        self.prescriptionmenu.menu.add_command(label="Contacts")

        self.miscmenu.menu = tk.Menu(self.miscmenu, tearoff=0)
        self.miscmenu["menu"] = self.miscmenu.menu
        self.miscmenu.menu.add_command(label="Print Patient Label")
        self.miscmenu.menu.add_command(label="Print Address Label")
        self.miscmenu.menu.add_command(label="Print Rx")
        self.miscmenu.menu.add_command(label="Print CLRx")
        self.miscmenu.menu.add_command(label="Print Copy Rx")
        self.miscmenu.menu.add_command(label="Print Copy CLRx")
        self.miscmenu.menu.add_command(label="Lab Order")
        self.miscmenu.menu.add_command(label="Insurance Information")
        self.miscmenu.menu.add_command(label="Delete Patient")

        # Place Widgets
        self.appointmentbutton.grid(row=0, column=0, sticky=tk.N + tk.E + tk.S + tk.W)
        self.invoicemenu.grid(row=0, column=1, sticky=tk.N + tk.E + tk.S + tk.W)
        self.prescriptionmenu.grid(row=0, column=2, sticky=tk.N + tk.E + tk.S + tk.W)
        self.miscmenu.grid(row=0, column=3, sticky=tk.N + tk.E + tk.S + tk.W)
        self.refreshbutton.grid(row=0, column=4, sticky=tk.N + tk.E + tk.S + tk.W)
        self.savebutton.grid(row=0, column=5, sticky=tk.N + tk.E + tk.S + tk.W)

        self.patientview.grid(row=1, column=0, columnspan=6, sticky=tk.N + tk.E + tk.S + tk.W)

    # Saves the entered data to the database
    def SavePatient(self, event=None):
        try:
            patient = self.datapatient.View(self.patient_id)
        except IOError:
            patient = [{}, {}]
        except RuntimeError:
            return

        patient[1] = self.patientview.Get_Fields()
        self.datapatient.Write(patient)
        self.Close()

    # Reload patient information from the database
    def Refresh(self, event=None):
        self.patientview.Refresh(event)

    def Close(self):
        PatientViewBase.isopen = False
        self.root.patientview = None
        self.datapatient.Close()
        self.patientview.Close()
        self.destroy()
Ejemplo n.º 2
0
class PatientViewBase(tk.Toplevel):
    # root:
    #     no space needed
    #     variable 'patientview' can be set to None

    isopen = False

    def __init__(self, root, patient_id=None):
        PatientViewBase.isopen = True

        # Variables
        self.log = logging.getLogger(__name__)
        self.colour = Colours.patient
        self.relief = Relief.patient
        self.root = root
        self.patient_id = patient_id
        self.patientview = None
        self.datapatient = DataPatient()

        # Build Window
        tk.Toplevel.__init__(self,
                             root,
                             bg=self.colour['frame'],
                             relief=self.relief['frame'])
        self.title('Patient View')
        self.protocol('WM_DELETE_WINDOW', self.Close)

        # Configure Window
        for i in range(6):
            self.grid_columnconfigure(i, weight=1)

        self.grid_rowconfigure(0, weight=0)
        self.grid_rowconfigure(1, weight=1)

        # Widgets
        self.appointmentbutton = tk.Button(self,
                                           text='Appointment',
                                           highlightthickness=0,
                                           bg=self.colour['button'],
                                           relief=self.relief['button'])
        self.invoicemenu = tk.Menubutton(self,
                                         text='Invoice',
                                         bg=self.colour['button'],
                                         relief=self.relief['button'])
        self.prescriptionmenu = tk.Menubutton(self,
                                              text='Prescription',
                                              bg=self.colour['button'],
                                              relief=self.relief['button'])
        self.miscmenu = tk.Menubutton(self,
                                      text='Misc',
                                      bg=self.colour['button'],
                                      relief=self.relief['button'])
        self.refreshbutton = tk.Button(self,
                                       text='Refresh',
                                       highlightthickness=0,
                                       bg=self.colour['button'],
                                       relief=self.relief['button'],
                                       command=self.Refresh)
        self.savebutton = tk.Button(self,
                                    text='Save',
                                    highlightthickness=0,
                                    bg=self.colour['savebutton'],
                                    relief=self.relief['savebutton'],
                                    command=self.SavePatient)

        self.patientview = PatientView(self, self.patient_id)

        # Widget Configure
        self.invoicemenu.menu = tk.Menu(self.invoicemenu, tearoff=0)
        self.invoicemenu['menu'] = self.invoicemenu.menu
        self.invoicemenu.menu.add_command(label='Frame')
        self.invoicemenu.menu.add_command(label='Lense')
        self.invoicemenu.menu.add_command(label='Misc')

        self.prescriptionmenu.menu = tk.Menu(self.prescriptionmenu, tearoff=0)
        self.prescriptionmenu['menu'] = self.prescriptionmenu.menu
        self.prescriptionmenu.menu.add_command(label='Glasses')
        self.prescriptionmenu.menu.add_command(label='Contacts')

        self.miscmenu.menu = tk.Menu(self.miscmenu, tearoff=0)
        self.miscmenu['menu'] = self.miscmenu.menu
        self.miscmenu.menu.add_command(label='Print Patient Label')
        self.miscmenu.menu.add_command(label='Print Address Label')
        self.miscmenu.menu.add_command(label='Print Rx')
        self.miscmenu.menu.add_command(label='Print CLRx')
        self.miscmenu.menu.add_command(label='Print Copy Rx')
        self.miscmenu.menu.add_command(label='Print Copy CLRx')
        self.miscmenu.menu.add_command(label='Lab Order')
        self.miscmenu.menu.add_command(label='Insurance Information')
        self.miscmenu.menu.add_command(label='Delete Patient')

        # Place Widgets
        self.appointmentbutton.grid(row=0,
                                    column=0,
                                    sticky=tk.N + tk.E + tk.S + tk.W)
        self.invoicemenu.grid(row=0,
                              column=1,
                              sticky=tk.N + tk.E + tk.S + tk.W)
        self.prescriptionmenu.grid(row=0,
                                   column=2,
                                   sticky=tk.N + tk.E + tk.S + tk.W)
        self.miscmenu.grid(row=0, column=3, sticky=tk.N + tk.E + tk.S + tk.W)
        self.refreshbutton.grid(row=0,
                                column=4,
                                sticky=tk.N + tk.E + tk.S + tk.W)
        self.savebutton.grid(row=0, column=5, sticky=tk.N + tk.E + tk.S + tk.W)

        self.patientview.grid(row=1,
                              column=0,
                              columnspan=6,
                              sticky=tk.N + tk.E + tk.S + tk.W)

    # Saves the entered data to the database
    def SavePatient(self, event=None):
        try:
            patient = self.datapatient.View(self.patient_id)
        except IOError:
            patient = [{}, {}]
        except RuntimeError:
            return

        patient[1] = self.patientview.Get_Fields()
        self.datapatient.Write(patient)
        self.Close()

    # Reload patient information from the database
    def Refresh(self, event=None):
        self.patientview.Refresh(event)

    def Close(self):
        PatientViewBase.isopen = False
        self.root.patientview = None
        self.datapatient.Close()
        self.patientview.Close()
        self.destroy()