Trabajo 2 Bases de datos no relacionales: Sistema computarizado de datos LIS

Introducción: El sistema computarizado de datos de un laboratorio a menudo es llamado sistema de gestión de la información del laboratorio, abreviado con el acrónimo LIS. El uso de estos sistemas computarizados es más frecuente en los laboratorios del cuidado de la salud de todo el mundo. Este software se encarga de almacenar y administrar datos de todas las etapas de los procesos y pruebas médicas. Un LIS con un diseño ajustado a requisitos y una instalación adecuada, aporta exactitud y accesibilidad a los flujos de las muestras y los datos del laboratorio clínico. Los médicos, técnicos y el personal autorizado de laboratorio utilizan sistemas de información de laboratorio para coordinar una variedad de pruebas médicas para pacientes hospitalizados y ambulatorios, que incluyen hematología, química, inmunología y microbiología. Los sistemas básicos de información de laboratorio suelen tener funciones que se encargan de gestionar el registro de pacientes, la entrada de pedidos, el procesamiento de muestras, la entrada de resultados y la demografía del paciente, etc. Un LIS rastrea y almacena los detalles clínicos de un paciente durante una visita al laboratorio y mantiene la información almacenada en su base de datos para referencia futura. Metodología: Para este caso, se ha planteado realizar un LIS en el que se almacenarán los datos del perfil lipídico de un paciente como también el control de calidad de estas pruebas en 2 niveles. A la hora de implementar este sistema LIS, se ha optado por utilizar una base de datos no relacional (MongoDB), la cual se encargará de gestionar la información de las pruebas lipídicas de los pacientes, información de los bacteriólogos que realizaron el análisis de cada paciente y que hicieron un control de calidad. Para el diseño de la base de datos se decidió crear 4 tablas que contienen la información del sistema. La primera tabla contiene la información relacionada a los pacientes: NOMBRE (String) Nombre del paciente, esta información aparecerá disponible a la hora de que el paciente consulte o reciba sus resultados. DOCUMENTO (String) Número de identificación del paciente. Con este número el paciente podrá obtener el resultado de sus exámenes GÉNERO (String) Información que el bacteriólogo requiere para el análisis de las pruebas. EPS (String) Entrega la información de afiliación del paciente, si el examen es gratuito o no, dependiendo del nexo que tenga el laboratorio clínico con dicha EPS. FECHA DE NACIMIENTO (String) Información que el bacteriólogo requiere para el análisis de las pruebas y metadata. CITAS (Array) Este será un array donde se almacenan objetos que contienen el número de la cita (puede que el paciente tenga más pruebas o citas clínicas en este laboratorio). Cada objeto tiene un id correspondiente al número de cita, (string) la fecha de la cita, (obj) el bacteriólogo que realizó el análisis de las muestras y en el último campo otro objeto que contiene el valor de colesterol total, los triglicéridos, HDL (Lipoproteína de alta densidad), LDL (Lipoproteína de baja densidad) son decimales La segunda tabla contiene la información de los bacteriólogos: NOMBRE (String) Nombre del bacteriólogo que realiza el análisis de las muestras. DOCUMENTO (String) Número de identificación del bacteriólogo. Metadata. GÉNERO (String) Información del bacteriólogo. Metadata. EDAD (String) Información del bacteriólogo. Metadata. CORREO ELECTRÓNICO (String) Campo para que el bacteriólogo pueda autenticarse en el sistema CONTRASEÑA (String) Campo para que el bacteriólogo pueda autenticarse en el sistema La tercera y cuarta tabla contienen la información del control de calidad para el primer y segundo nivel. Cabe aclarar que son tablas que contienen los mismos campos pero que hacen referencia a distintos niveles a la hora de evaluar esos campos, pues para cada nivel, el rango de normalidad es distinto. Para el nivel 1, se encuentran las mediciones que califican una muestra entre un rango de normalidad a partir de la calibración que presenta un equipo que evalúa los biomarcadores de dicha muestra. Para el nivel 2, se encuentran las mediciones que califican una muestra entre los rangos anormales de una muestra acorde a la calibración que haya tenido el equipo que evalúa los biomarcadores. Por ejemplo, si una muestra de triglicéridos se encuentra entre el rango de normalidad (primer nivel) y también dentro del rango de anormalidad (segundo nivel), se debe realizar una calibración a los equipos. Cabe aclarar que estas tablas de control de calidad no tienen relación con los valores del perfil lipídico de cada paciente. El control de calidad sirve para mejorar los parámetros y valores de calibración de los equipos biomédicos que se utilizan para el análisis de las muestras.
FECHA (String) Fecha que se realizó el control de calidad COLESTEROL TOTAL (String ) Valor de colesterol en control de calidad TRIGLICÉRIDOS (String ) Valor de triglicéridos en control de calidad LDL (String ) Valor de LDL en control de calidad HDL (String ) Valor de HDL en control de calidad BACTERIÓLOGO (Obj) Bacteriólogo que realizó el control de calidad para el perfil lipídico, sea para el nivel 1 o 2. Las relaciones que tienen las colecciones son: *Pacientes-Bacteriólogos: Muchos a muchos. *Bacteriólogos-Control de calidad:Uno a Muchos. *Pacientes-Control de Calidad: No hay relación. Resultados
También se realizaron la creación de 2 índices. Uno para la colección de pacientes en el campo de “documento”, el cual es único para el paciente y facilitará la consulta de sus datos por este campo, y se creó otro índice llamado “correo” para la colección de bacteriólogos, pues su correo electrónico es único lis>db.pacientes.createIndex({documento:1},{unique:true})documento_1 lis>db.bacteriologos.createIndex({correo:1},{unique:true})correo_1 2. Las consultas importantes de esta aplicación son: db.pacientes.find({documento:"1234"}) //para que el bacteriologo pueda consultar todo el historial del paciente contodos sus datos y fechas.
-db.control_calidad_1.find(), db.control_calidad_2.find(). Estas 2 devolverán los datos de los controles de calidad, tanto para el nivel uno como para el nivel 2 respectivamente. db.control_calidad_1.find({fecha:”**/**/****”}), db.control_calidad_2.find({fecha:”**/**/****”}). Estas consultas se necesitan puesto que al final del día se requieren tener promedios estadísticos (media, desviación estándar, coeficiente de variación) del control de calidad por dia, mes o año.
-db.getCollection('pacientes').find({}).sort({_id:-1}).limit(10): Cuando el bacteriólogo quiera ver la lista de todos los pacientes con sus datos, este podrá verlos ordenados desde el último agregado a la base de datos (más reciente) hasta el paciente que agregado desde un inicio. Además hay que considerar que debido a que la colección de pacientes es muy grande, se debe limitar los datos que se puede ver para que sea una mejor experiencia de usuario, los demás pacientes se traerán por medio de paginación.
db.pacientes.aggregate([{$group:{_id:"$eps",numeroPacientes:{$count:{}}}}]): Esta consulta dará información sobre la cantidad de pacientes que tiene la base de datos por EPS que están en el sistema. Esto suele ser útil para que los laboratorios cobren a estas entidades de salud acorde a los pacientes que se encuentran inscritos en el laboratorio
Conclusiones -MongoDB permite crear diferentes bases de datos no relacionales, permitiendo consultas simples cómo complejas, obteniendo los datos deseados, con métodos sencillos cómo find o más complejos cómo aggregate. -Se pueden realizar consultas en bases de datos no relacionales, para un sistema tipo LIS, con dos niveles. -El bacteriologo es capaz de conocer los datos de los pacientes, a partir de datos sencillos, cómo nombre, entre otros, también es posible conocer los pacientes por su EPS, haciendo su clasificación muy sencilla. Referencias Integración de un PACS y un LIS en un HIS de un hospital, disponible en: https://docplayer.es/10987720-Integracion-de-un-pacs-y-un-lis-en-un-his-de-un-hospital.html

Comentarios

Entradas más populares de este blog

Implementación backend y Docker: Sistema computarizado de datos LIS perfil lipídico

CLASE # 3: BASES DE DATOS

Clase 1: Introducción al curso y a Linux