fix: surface active beds on elder records

This commit is contained in:
2026-07-02 17:43:00 -07:00
parent 9480030391
commit c181e6fbdd
5 changed files with 135 additions and 53 deletions

View File

@@ -113,6 +113,19 @@ export async function readData(): Promise<AppData> {
]);
const roleById = new Map(membershipRows.map((row) => [row.membership.id, row.role]));
const activeAdmissionByElderId = new Map<string, { room: string; bed: string; bedId: string }>();
for (const row of admissionRows) {
if (row.admission.status !== "active") {
continue;
}
activeAdmissionByElderId.set(row.admission.elderId, {
room: row.roomName,
bed: row.bedCode,
bedId: row.admission.bedId,
});
}
const bedCounts = new Map<string, { total: number; occupied: number }>();
for (const row of bedRows) {
const current = bedCounts.get(row.bed.roomId) ?? { total: 0, occupied: 0 };
@@ -209,22 +222,26 @@ export async function readData(): Promise<AppData> {
expiresAt: iso(row.expiresAt),
}));
const eldersData: Elder[] = elderRows.map((row) => ({
id: row.id,
organizationId: row.organizationId,
name: row.name,
gender: row.gender,
age: row.age,
careLevel: row.careLevel,
room: "",
bed: "",
status: row.status,
primaryContact: row.primaryContact,
phone: row.phone,
medicalNotes: row.medicalNotes,
createdAt: iso(row.createdAt),
updatedAt: iso(row.updatedAt),
}));
const eldersData: Elder[] = elderRows.map((row) => {
const activeAdmission = activeAdmissionByElderId.get(row.id);
return {
id: row.id,
organizationId: row.organizationId,
name: row.name,
gender: row.gender,
age: row.age,
careLevel: row.careLevel,
room: activeAdmission?.room ?? "",
bed: activeAdmission?.bed ?? "",
bedId: activeAdmission?.bedId,
status: row.status,
primaryContact: row.primaryContact,
phone: row.phone,
medicalNotes: row.medicalNotes,
createdAt: iso(row.createdAt),
updatedAt: iso(row.updatedAt),
};
});
const roomsData: Room[] = roomRows.map((row) => {
const counts = bedCounts.get(row.id) ?? { total: 0, occupied: 0 };