from pydantic import BaseModel from typing import Optional from datetime import datetime class NormalizedVitals(BaseModel): device_id: str patient_id: str timestamp: datetime ip_address: Optional[str] = None heart_rate: Optional[float] = None spo2: Optional[float] = None systolic_bp: Optional[float] = None diastolic_bp: Optional[float] = None map_bp: Optional[float] = None respiratory_rate: Optional[float] = None temperature: Optional[float] = None present_fields: Optional[list] = None # Patient demographics parsed from HL7 PID/PV1 segments patient_name: Optional[str] = None # PID-5: "Given Family" patient_gender: Optional[str] = None # PID-8: M / F / U patient_dob: Optional[str] = None # PID-7: YYYYMMDD bed_id: Optional[str] = None # PV1-3: bed / room ID class DeviceStatus(BaseModel): device_id: str ip_address: str status: str last_seen: datetime class Config: from_attributes = True class TransmissionLogResponse(BaseModel): id: int reading_id: int status: str response_code: Optional[int] error_message: Optional[str] timestamp: datetime class Config: from_attributes = True