""" """ from Mindwrapper import api as mw from branches import Pharmacokinetics class ActPanel(mw.SubPanel): cols = 4 growableCols = [1] def Assemble(self, ref): self.Add(node = mw.Label, text = 'Dose', style = mw.RIGHT) self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.dose) self.Add(node = mw.Label, text = 'mg') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.dose) self.Add(node = mw.Label, text = 'Interval') self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.time.hrDosing) self.Add(node = mw.Label, text = 'hr') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.time.hrDosing) self.Add(node = mw.Label, text = 'Peak', style = mw.RIGHT) self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.peak) self.Add(node = mw.Label, text = 'mcg/ml') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.peak) self.Add(node = mw.Label, text = 'Trough') self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.trough) self.Add(node = mw.Label, text = 'mcg/ml') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.trough) class EstPanel(mw.SubPanel): cols = 4 growableCols = [1] def Assemble(self, ref): self.Add(node = mw.Label, text = 'Dose', style = mw.RIGHT) self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.dose) self.Add(node = mw.Label, text = 'mg') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.dose) self.Add(node = mw.Label, text = 'Interval') self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.hrDosing) self.Add(node = mw.Label, text = 'hr') self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.hrDosing) self.Add(node = mw.Label, text = 'Peak', style = mw.RIGHT) self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.peak) self.Add(node = mw.Label, text = 'mcg/ml') self.Add(node = mw.Spacer) self.Add(node = mw.Label, text = 'Trough') self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.trough) self.Add(node = mw.Label, text = 'mcg/ml') self.Add(node = mw.Spacer) class KineticsPanel(mw.Panel): rows = 1 def Assemble(self, ref): self.Add(node = ActPanel, name = 'panel1', text = 'Actual', margin = 4, ref = ref) self.Add(node = EstPanel, name = 'panel2', text = 'Estimate', margin = 4, ref = ref.whatif) class PatientPanel(mw.Panel): cols = 6 growableRows = [1] growableCols = [0, 2, 3, 4, 5] def Assemble(self, ref): self.Add(node = mw.Label, style = mw.CENTER, text = 'Weight') self.Add(node = mw.Spacer) self.Add(node = mw.Label, style = mw.CENTER, text = 'kElim') self.Add(node = mw.Label, style = mw.CENTER, text = 'vDist') self.Add(node = mw.Label, style = mw.CENTER, text = 'vD/kg') self.Add(node = mw.Label, style = mw.CENTER, text = 'clearance') self.Add(node = mw.NumberField, size = (50, -1), margin = (0, 4), ref = ref.weight) self.Add(node = mw.SpinButton, margin = (0, 4), style = mw.HORIZONTAL, ref = ref.weight) self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.kElim) self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.volDist) self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.volDistPerKg) self.Add(node = mw.TextReader, size = (50, -1), margin = (0, 4), ref = ref.clearance) class WorkArea(mw.Panel): def Assemble(self, ref=Pharmacokinetics()): self.Add(node = KineticsPanel, resize = (0, mw.GROWABLE), ref = ref) self.Add(node = PatientPanel, text = 'Patient', margin = (4), resize = (0, mw.GROWABLE), ref = ref) class KineticsFrame(mw.Frame): def Assemble(self): self.Add(node = WorkArea) class KineticsApp(mw.Application): def Assemble(self): self.Add(node = KineticsFrame, text = 'Pharmacokinetics')