Skip to content

Instantly share code, notes, and snippets.

@travisbhartwell
Last active July 31, 2022 09:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save travisbhartwell/58769d6edae489edce17591bbb49f94f to your computer and use it in GitHub Desktop.
Save travisbhartwell/58769d6edae489edce17591bbb49f94f to your computer and use it in GitHub Desktop.
from dataclasses import dataclass
from datetime import date, timedelta
from decimal import Decimal
from enum import Enum
class SolutionStrength(Enum):
YELLOW = "Yellow"
GREEN = "Green"
@dataclass(frozen=True)
class MillimetersOfMercury:
value: int
def __str__(self) -> str:
return f"{self.value} mmHg"
@dataclass(frozen=True)
class BloodPressure:
systolic: MillimetersOfMercury
diastolic: MillimetersOfMercury
def __str__(self) -> str:
return f"{self.systolic} / {self.diastolic}"
@dataclass(frozen=True)
class HeartRate:
value: int
def __str__(self) -> str:
return f"{self.value} bpm"
@dataclass(frozen=True)
class Weight:
value: Decimal
def __str__(self) -> str:
return f"{self.value} kg"
@dataclass(frozen=True)
class Temperature:
value: Decimal
def __str__(self) -> str:
return f"{self.value} F"
@dataclass(frozen=True)
class Volume:
value: int
def __str__(self) -> str:
return f"{self.value} mL"
@dataclass(frozen=True)
class TreatmentLog:
treatment_date: date
weight: Weight
blood_pressure: BloodPressure
heart_rate: HeartRate
temperature:
solution: SolutionStrength
initial_drain: Volume
ultra_filtration: Volume
average_well: timedelta
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment