wip-error-fix api post new-p
This commit is contained in:
Binary file not shown.
@@ -135,36 +135,47 @@ class VitalLinkDatabase:
|
||||
# PATIENT OPERATIONS
|
||||
# ========================================================================
|
||||
|
||||
async def save_patient(self, patient_data: Dict):
|
||||
"""Save new patient to database"""
|
||||
await self.conn.execute(
|
||||
"""
|
||||
INSERT INTO patients (
|
||||
patient_id, band_id, first_name, last_name, dob,
|
||||
symptoms, severity, check_in_time, current_tier
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
patient_data["patient_id"],
|
||||
patient_data["band_id"],
|
||||
patient_data["first_name"],
|
||||
patient_data["last_name"],
|
||||
patient_data["dob"],
|
||||
json.dumps(patient_data["symptoms"]),
|
||||
patient_data["severity"],
|
||||
patient_data["check_in_time"],
|
||||
patient_data.get("current_tier", "NORMAL"),
|
||||
),
|
||||
)
|
||||
await self.conn.commit()
|
||||
|
||||
# Log event
|
||||
await self.log_event(
|
||||
"patient_checkin",
|
||||
async def save_patient(self, patient_data: Dict):
|
||||
"""Save new patient to database"""
|
||||
# Convert datetime to ISO string if needed
|
||||
check_in_time = patient_data["check_in_time"]
|
||||
if isinstance(check_in_time, datetime):
|
||||
check_in_time = check_in_time.isoformat()
|
||||
|
||||
await self.conn.execute(
|
||||
"""
|
||||
INSERT INTO patients (
|
||||
patient_id, band_id, first_name, last_name, dob,
|
||||
symptoms, severity, check_in_time, current_tier
|
||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
patient_data["patient_id"],
|
||||
patient_data["band_id"],
|
||||
patient_data,
|
||||
)
|
||||
patient_data["first_name"],
|
||||
patient_data["last_name"],
|
||||
patient_data["dob"],
|
||||
json.dumps(patient_data["symptoms"]),
|
||||
patient_data["severity"],
|
||||
check_in_time, # Now a string
|
||||
patient_data.get("current_tier", "NORMAL"),
|
||||
),
|
||||
)
|
||||
await self.conn.commit()
|
||||
|
||||
# Log event with serializable data
|
||||
await self.log_event(
|
||||
"patient_checkin",
|
||||
patient_data["patient_id"],
|
||||
patient_data["band_id"],
|
||||
{
|
||||
"first_name": patient_data["first_name"],
|
||||
"last_name": patient_data["last_name"],
|
||||
"symptoms": patient_data["symptoms"],
|
||||
"severity": patient_data["severity"],
|
||||
},
|
||||
)
|
||||
|
||||
async def update_patient_tier(self, patient_id: str, new_tier: str):
|
||||
"""Update patient's current tier"""
|
||||
@@ -315,23 +326,39 @@ class VitalLinkDatabase:
|
||||
# SYSTEM EVENTS (Audit Trail)
|
||||
# ========================================================================
|
||||
|
||||
async def log_event(
|
||||
self,
|
||||
event_type: str,
|
||||
patient_id: Optional[str],
|
||||
band_id: Optional[str],
|
||||
details: Dict,
|
||||
):
|
||||
"""Log system event for audit trail"""
|
||||
await self.conn.execute(
|
||||
"""
|
||||
INSERT INTO system_events (
|
||||
event_time, event_type, patient_id, band_id, details
|
||||
) VALUES (?, ?, ?, ?, ?)
|
||||
""",
|
||||
(datetime.now(), event_type, patient_id, band_id, json.dumps(details)),
|
||||
)
|
||||
await self.conn.commit()
|
||||
|
||||
async def log_event(
|
||||
self,
|
||||
event_type: str,
|
||||
patient_id: Optional[str],
|
||||
band_id: Optional[str],
|
||||
details: Dict,
|
||||
):
|
||||
"""Log system event for audit trail"""
|
||||
|
||||
# Ensure details is JSON serializable
|
||||
serializable_details = {}
|
||||
for key, value in details.items():
|
||||
if isinstance(value, datetime):
|
||||
serializable_details[key] = value.isoformat()
|
||||
else:
|
||||
serializable_details[key] = value
|
||||
|
||||
await self.conn.execute(
|
||||
"""
|
||||
INSERT INTO system_events (
|
||||
event_time, event_type, patient_id, band_id, details
|
||||
) VALUES (?, ?, ?, ?, ?)
|
||||
""",
|
||||
(
|
||||
datetime.now().isoformat(), # Convert to string
|
||||
event_type,
|
||||
patient_id,
|
||||
band_id,
|
||||
json.dumps(serializable_details),
|
||||
),
|
||||
)
|
||||
await self.conn.commit()
|
||||
|
||||
async def get_events(
|
||||
self,
|
||||
|
||||
Reference in New Issue
Block a user