294 lines
7.1 KiB
TypeScript
294 lines
7.1 KiB
TypeScript
// Tipos para el Sistema de Gestión Hospitalaria
|
|
|
|
export interface Paciente {
|
|
id: string;
|
|
nombre: string;
|
|
apellido: string;
|
|
dni: string;
|
|
fechaNacimiento: string;
|
|
sexo: 'M' | 'F' | 'Otro';
|
|
telefono: string;
|
|
email?: string;
|
|
direccion?: string;
|
|
grupoSanguineo?: string;
|
|
alergias?: string;
|
|
antecedentes?: string;
|
|
fechaRegistro?: string;
|
|
obraSocial?: string;
|
|
nacionalidad?: string;
|
|
medicacionHabitual?: string;
|
|
historiaClinica?: string;
|
|
notas?: string;
|
|
}
|
|
|
|
|
|
export interface Grupo {
|
|
id: string;
|
|
nombre: string;
|
|
}
|
|
|
|
export type Area = Grupo;
|
|
|
|
export interface Cama {
|
|
id: string;
|
|
numero: string;
|
|
grupoId?: string;
|
|
areaId?: string;
|
|
tipo: 'General' | 'Aislamiento KPC' | 'Aislamiento COVID' | 'Aislamiento Clostridium' | 'Aislamiento Neutropenico' | 'Aislamiento TBC' | 'Aislamiento Escabiosis';
|
|
estado: 'Disponible' | 'Ocupada' | 'Reparacion' | 'Reservada';
|
|
pacienteId?: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
}
|
|
|
|
export interface Internacion {
|
|
id: string;
|
|
pacienteId: string;
|
|
camaId: string;
|
|
grupoId?: string;
|
|
areaId?: string;
|
|
fechaIngresoHospital?: string;
|
|
fechaIngresoClinica?: string;
|
|
fechaEgreso?: string;
|
|
diagnosticoIngreso: string;
|
|
motivoConsulta?: string;
|
|
enfermedadActual: string;
|
|
antecedentesEnfermedadActual?: string;
|
|
diagnosticoEgreso?: string;
|
|
medicoIngresante: string;
|
|
motivoEgreso?: 'Alta médica' | 'Egreso Voluntario' | 'Derivación' | 'Obito' | 'Pase servicio' | 'Otro';
|
|
servicioAlQuePasa?: string;
|
|
activa: boolean;
|
|
apache?: string;
|
|
derivacion?: string;
|
|
}
|
|
|
|
export interface ExamenFisico {
|
|
SNC?: string;
|
|
Cardiovascular?: string;
|
|
Respiratorio?: string;
|
|
Abdominal?: string;
|
|
Genitourinario?: string;
|
|
PielAnexos?: string;
|
|
SOMA?: string;
|
|
}
|
|
|
|
export interface Evolucion {
|
|
id: string;
|
|
internacionId: string;
|
|
fecha: string;
|
|
hora: string;
|
|
medico: string;
|
|
signosVitales?: SignosVitales;
|
|
examenFisico?: ExamenFisico;
|
|
novedades?: string;
|
|
comentario?: string;
|
|
pendientes?: string;
|
|
}
|
|
|
|
export interface SignosVitales {
|
|
temperatura?: number;
|
|
presionSistolica?: number;
|
|
presionDiastolica?: number;
|
|
frecuenciaCardiaca?: number;
|
|
frecuenciaRespiratoria?: number;
|
|
saturacionO2?: number;
|
|
glucosa?: number;
|
|
peso?: number;
|
|
talla?: number;
|
|
imc?: number;
|
|
}
|
|
|
|
export interface Laboratorio {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
fecha: string;
|
|
hora: string;
|
|
tipo?: 'Hemograma' | 'Química sanguínea' | 'Urianálisis' | 'Coagulación' | 'Microbiología' | 'Inmunología' | 'Otros';
|
|
resultados: ResultadoLaboratorio[];
|
|
observaciones?: string;
|
|
medicoSolicitante?: string;
|
|
}
|
|
|
|
export interface ResultadoLaboratorio {
|
|
parametro: string;
|
|
valor: number | string;
|
|
unidad: string;
|
|
valorReferencia?: string;
|
|
estado: 'Normal' | 'Alto' | 'Bajo' | 'Crítico';
|
|
}
|
|
|
|
export interface OtroLaboratorio {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
fecha: string;
|
|
hora?: string;
|
|
observaciones: string;
|
|
categoria?: 'Perfil Lipídico' | 'Perfil Tiroideo' | 'Autoinmunidad' | 'Toracocentesis' | 'Líquido Ascitico' | 'LCR' | 'Otros' | string;
|
|
}
|
|
|
|
export interface Glucemia {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
fecha: string;
|
|
hora: string;
|
|
valor: number; // in mg%
|
|
correccion: number; // in UI insulin
|
|
}
|
|
|
|
export interface AcidoBase {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
fecha: string;
|
|
hora: string;
|
|
ph: number;
|
|
pco2: number;
|
|
po2: number;
|
|
hco3: number;
|
|
be: number;
|
|
sato2: number;
|
|
lactato?: number;
|
|
fio2?: number;
|
|
interpretacion?: string;
|
|
}
|
|
|
|
export interface TipoCultivo {
|
|
id: string;
|
|
nombre: string;
|
|
categoria?: string;
|
|
descripcion?: string;
|
|
}
|
|
|
|
export interface Cultivo {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
fechaToma: string;
|
|
protocolo?: string;
|
|
fechaResultado?: string;
|
|
tipoMuestra: string;
|
|
germen?: string;
|
|
sensible?: string;
|
|
resistente?: string;
|
|
estado: 'NAF/Pendiente' | 'Parcial' | 'Positivo' | 'Negativo';
|
|
observaciones?: string;
|
|
}
|
|
|
|
export interface EstudioComplementario {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
sector?: "En Área" | "Fuera de Área";
|
|
fecha: string;
|
|
tipo: string;
|
|
resultado: string;
|
|
}
|
|
|
|
export interface Interconsulta {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId: string;
|
|
fecha: string;
|
|
servicioInterconsultado: string;
|
|
motivo?: string;
|
|
respuestaInterconsulta?: string;
|
|
respuestaFecha?: string;
|
|
}
|
|
|
|
export interface ATB {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId: string;
|
|
antibiotico: string;
|
|
fechaInicio: string;
|
|
fechaFinalizacion?: string;
|
|
}
|
|
|
|
export type IndicacionTipo = 'Farmacologica' | 'Farmacologica Profilactica' | 'Farmacologica Antibiótico' | 'Farmacologica Insulina' | 'No Farmacologica' | 'PHP' | 'PHP Paralelo' | 'PHP Alterno';
|
|
export type TipoInsulina = 'NPH' | 'Glargina';
|
|
export type ViaAdministracion = 'Via Oral' | 'EV' | 'IM' | 'SC' | 'Por GGT' | 'Por SNG';
|
|
export type TipoPlanHidratacion = 'SF 0.9%' | 'Dextrosa 5%' | 'Dextrosa 10%' | 'Dextrosa 25%' | 'Ringer Lactato';
|
|
|
|
export interface Indicacion {
|
|
id: string;
|
|
internacionId: string;
|
|
tipo: IndicacionTipo;
|
|
droga?: string;
|
|
dosis?: string;
|
|
frecuenciaHoras?: number;
|
|
via?: ViaAdministracion;
|
|
indicacionNoFco?: string;
|
|
tipoPlan?: TipoPlanHidratacion;
|
|
tipoPlan2?: TipoPlanHidratacion;
|
|
cantidadMl?: number;
|
|
cantidadMl2?: number;
|
|
tiempoHoras?: number;
|
|
tipoInsulina?: TipoInsulina;
|
|
unidadesDesayuno?: number;
|
|
unidadesAlmuerzo?: number;
|
|
unidadesNoche?: number;
|
|
estado: 'Activa' | 'Suspendida';
|
|
medicoCrea: string;
|
|
fechaCrea: string;
|
|
medicoModifica?: string;
|
|
fechaModificacion?: string;
|
|
medicoSuspende?: string;
|
|
fechaSuspension?: string;
|
|
}
|
|
|
|
export interface MovimientoIndicacion {
|
|
id: string;
|
|
internacionId: string;
|
|
indicacionId?: string;
|
|
tipo: string;
|
|
fecha: string;
|
|
hora: string;
|
|
medico: string;
|
|
observaciones?: string;
|
|
}
|
|
|
|
export type Vista = 'dashboard' | 'camas' | 'pacientes' | 'internaciones' | 'evoluciones' | 'laboratorios' | 'acidobase' | 'cultivos' | 'historiaclinica' | 'nuevoingreso' | 'editaringreso' | 'usuarios' | 'pendientessala' | 'sistema';
|
|
|
|
export type RolUsuario = 'admin' | 'medico' | 'enfermero';
|
|
|
|
export interface Usuario {
|
|
id: string;
|
|
apellido: string;
|
|
nombre: string;
|
|
dni: string;
|
|
fechaNacimiento: string;
|
|
email: string;
|
|
rol: RolUsuario;
|
|
matriculaProfesional?: string;
|
|
passwordHash: string;
|
|
grupoId?: string;
|
|
areaId?: string;
|
|
fechaCreacion: string;
|
|
}
|
|
|
|
export interface Pendiente {
|
|
id: string;
|
|
pacienteId: string;
|
|
internacionId?: string;
|
|
descripcion: string;
|
|
prioridad: 'alta' | 'media' | 'baja';
|
|
estado: 'pendiente' | 'realizado' | 'cancelado';
|
|
fechaCreacion: string;
|
|
horaCreacion?: string;
|
|
fechaRealizado?: string;
|
|
categoria?: 'General' | 'Estudio' | 'Procedimiento' | 'Laboratorio' | 'Interconsulta' | 'Tratamiento' | 'Administrativo' | string;
|
|
fechaProgramada?: string;
|
|
horaProgramada?: string;
|
|
usuarioId?: string;
|
|
usuarioNombre?: string;
|
|
observaciones?: string;
|
|
}
|