Fix internacion lookup, persistence and fallback patient resolution
This commit is contained in:
+15
-3
@@ -1,4 +1,4 @@
|
||||
import { MongoClient } from 'mongodb';
|
||||
import { MongoClient, ObjectId } from 'mongodb';
|
||||
import bcrypt from 'bcryptjs';
|
||||
const { compareSync, hashSync } = bcrypt;
|
||||
|
||||
@@ -102,6 +102,9 @@ export async function initDb() {
|
||||
function cleanDoc(doc) {
|
||||
if (!doc) return null;
|
||||
const { _id, ...rest } = doc;
|
||||
if (!rest.id && _id) {
|
||||
rest.id = _id.toString();
|
||||
}
|
||||
return rest;
|
||||
}
|
||||
|
||||
@@ -352,12 +355,21 @@ export async function getAllInternaciones() {
|
||||
}
|
||||
|
||||
export async function getInternacionById(id) {
|
||||
if (!id) return null;
|
||||
const idStr = String(id).trim();
|
||||
if (db) {
|
||||
const internacion = await db.collection('internaciones').findOne({ id });
|
||||
let internacion = await db.collection('internaciones').findOne({ id: idStr });
|
||||
if (!internacion && ObjectId.isValid(idStr)) {
|
||||
try {
|
||||
internacion = await db.collection('internaciones').findOne({ _id: new ObjectId(idStr) });
|
||||
} catch {
|
||||
// ignore invalid objectid
|
||||
}
|
||||
}
|
||||
if (internacion) internacion.activa = !!internacion.activa;
|
||||
return cleanDoc(internacion);
|
||||
}
|
||||
const internacion = memStore.internaciones.find(i => i.id === id);
|
||||
const internacion = memStore.internaciones.find(i => i.id === idStr || String(i.id).trim() === idStr);
|
||||
if (!internacion) return null;
|
||||
return { ...internacion, activa: !!internacion.activa };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user