feat: implement 4-point demographic synchronization & patient validation

This commit is contained in:
2026-07-15 11:33:48 +05:30
parent ae5a928671
commit 554771abfe
6 changed files with 407 additions and 34 deletions
+20 -2
View File
@@ -261,11 +261,29 @@ async def process_vitals(vitals):
device.status = "active"
device.last_seen = datetime.now(timezone.utc)
# 2. Patient tracking
# 2. Patient tracking — store/update demographics from HL7
patient = db.query(Patient).filter(Patient.patient_id == vitals.patient_id).first()
if not patient:
patient = Patient(patient_id=vitals.patient_id, name="Unknown")
patient = Patient(
patient_id=vitals.patient_id,
mrn=vitals.patient_id,
name=vitals.patient_name or "Unknown",
gender=vitals.patient_gender,
dob=vitals.patient_dob,
bed_id=vitals.bed_id,
)
db.add(patient)
else:
# Refresh demographics whenever monitor sends updated PID fields
if vitals.patient_name:
patient.name = vitals.patient_name
if vitals.patient_gender:
patient.gender = vitals.patient_gender
if vitals.patient_dob:
patient.dob = vitals.patient_dob
if vitals.bed_id:
patient.bed_id = vitals.bed_id
# 3. Create Reading Entry
reading = VitalReading(