Consulta y recuperación de datos
Los datos que no puedes consultar son datos sobre los que no puedes actuar. Atomik expone tu repositorio clínico como un conjunto de servicios de datos estructurados — desde búsquedas de un solo registro hasta búsquedas condicionales a nivel poblacional — todo mediante una API REST estándar.
API REST
Para recuperar objetos completos por ID, la API REST ofrece operaciones GET específicas: GET /ehr, GET /composition, GET /actor, y así sucesivamente. Rápido, directo y adecuado para patrones de acceso a nivel de registro.
Consultas
Para recuperar objetos según un criterio o valores de datos de muchos objetos, se debe crear una consulta usando el Constructor de Consultas que trae Atomik. Como se menciona en la sección de consultas
En Atomik, todas las consultas usan las estructuras de datos definidas en las Plantillas Operacionales de openEHR como metadatos para la consulta. Por ejemplo, se usa una combinación de ID de arquetipo y ruta (path) para referenciar un nodo específico en la definición de la plantilla; ese nodo es en realidad una restricción openEHR de la especificación AOM que define terminología, restricciones estructurales y restricciones de datos. Toda esa información se usa para crear un criterio en una consulta. Por ejemplo, si un ID de arquetipo y una ruta referencian un nodo DV_CODED_TEXT en la plantilla, y esa restricción contiene una lista de códigos posibles, podemos usar esos códigos al crear la consulta porque sabemos que, para ese nodo de texto codificado, los únicos valores permitidos son los definidos por esa restricción. Eso no solo aprovecha los metadatos disponibles, haciendo que las consultas sean consistentes con los datos que se supone que deben recuperar, sino que también hace más rápida la construcción de consultas porque todas esas restricciones se muestran en el momento de construir la consulta de datos.
Tipos de consulta
Atomik soporta los siguientes tipos de consulta: composition, ehr_status, folder, actor, party_relationship y datavalue. Los primeros cinco tipos recuperarán objetos, y el tipo de consulta datavalue recuperará puntos de datos específicos.
Parámetros de consulta
Para las consultas que recuperan objetos, hay muchas opciones para los resultados, que pueden establecerse en el momento de crear la consulta o en el momento de ejecutarla, proporcionando parámetros al invocar la API REST. Las consultas de Atomik soportan un flag retrieve_data que es false por defecto; cuando el flag es false, la ejecución de la consulta recuperará referencias a los objetos coincidentes, y luego un cliente puede usar su ID para recuperar los objetos completos si lo necesita. Si el flag retrieve_data es true, entonces se recupera el objeto openEHR completo en JSON o XML.
El formato de salida de los resultados de la consulta es otro parámetro que puede establecerse al crear la consulta o al ejecutarla. Los valores permitidos actualmente son json y xml.
Una consulta poblacional es una consulta que no selecciona un paciente específico. Si un cliente no quiere hacer una consulta poblacional, hay disponible un parámetro ehrId, con el que puede establecer un EHR específico como contexto de los resultados de la consulta y los resultados solo contendrán objetos de ese EHR. Si el parámetro ehrId está vacío, la consulta se evaluará contra todos los EHRs.
Agrupamiento
Luego, las consultas que recuperan objetos (composition, actor, folder, etc.) agrupan los resultados por ID de EHR, para todos los objetos contenidos en un EHR, y se agruparán en el grupo demographics cuando estén relacionados con objetos demográficos (actor o party relationship). De esta forma es fácil hacer consultas poblacionales y llevar el control de a qué EHR pertenece cada objeto.
Para las consultas de tipo datavalue, hay tres formas posibles de agrupar los puntos de datos de los resultados: sin agrupar, por ruta (path) o por locatable. Sin agrupar, todos los resultados se devuelven en una estructura plana, lo cual es útil cuando los clientes quieren procesar esos datos por su cuenta. Agrupar por ruta permite poner todos los resultados del mismo punto de dato en la misma lista; esta es una buena estructura para graficar datos porque cada lista de datos del mismo momento puede verse como una serie temporal de puntos de datos. Por último, agrupar por locatable devuelve los valores de datos agrupados por el identificador del objeto locatable que contiene los valores.
Consultas combinadas
Las consultas combinadas son otra forma de recuperar información de Atomik, y tienen un propósito muy específico: soportar consultas estadísticas.
Las consultas combinadas usan consultas de composition existentes como condiciones para verificar si un EHR contiene alguna composition que coincida con la consulta. Si todas las consultas de composition devuelven un resultado no vacío, entonces el EHR que contiene esas compositions se incluirá en el resultado de la consulta combinada. De esa forma, un cliente puede contar EHRs que cumplen condiciones muy complejas, recuperar su ID, y usar los resultados para inyectar conocimiento en otros sistemas, como Sistemas de Soporte a la Decisión Clínica (CDSS). Un posible caso de uso es seleccionar pacientes con múltiples factores de riesgo y, mediante un CDSS, mostrar una alerta al clínico para ese paciente, de modo que el clínico pueda tomar una acción proactiva, como recomendar algún tratamiento o proponer planes de cuidado específicos, que puede sugerir el CDSS basándose en protocolos internacionales.
Más sobre las consultas combinadas en la sección de consultas combinadas.