Mimic-code: ¿Consejos sobre cómo ejecutar scripts SQL complicados heredados de otros proyectos / estudios?

Creado en 2 sept. 2017  ·  4Comentarios  ·  Fuente: MIT-LCP/mimic-code

Hola, soy nuevo en MIMIC-3 y postgeSQL / pgAdmin 4.

He estado trabajando en el cuaderno de tutoriales de selección de cohortes y creo que ahora entiendo los conceptos básicos.

Se me han proporcionado dos "blobs" de consultas SQL, uno utilizado para la definición de cohorte y otro blob utilizado para la extracción de datos posterior de un proyecto anterior. Intenté ejecutar bloques separados de consultas de ambos "blobs" en pgAdmin4, y creo que entiendo algunas partes de ellas.

Simplemente me preguntaba cómo podría ejecutarlo todo para generar tablas en formato csv para cada encuentro en la UCI de un paciente.

Mi tarea final sería extraer 47 características predefinidas de cada uno de esos archivos csv (y algún otro preprocesamiento), y luego unirlos en una serie de tiempo multivariante, lo que debería poder hacer en Matlab o Python usando pandas.

El conjunto de datos del estudio que intento reproducir se detalla en las secciones 8.1 y 8.2 de este documento.

Supongo que quizás este no sea el lugar adecuado para pedir un consejo como este. Por lo tanto, ¿hay algún otro lugar que pueda recomendar para los principiantes que deseen aprender a ejecutar scripts SQL heredados de otros proyectos / estudios? Supongo que esta es una pregunta / tarea bastante común, pero no pude encontrar ningún lugar que me ayudara.

¡Muchas gracias por su ayuda!

Comentario más útil

¡Estupendo! ¡Buena suerte!

Todos 4 comentarios

Bueno, aquí hay un par de consejos para los novatos que pueden tener el mismo problema,

  • Para ejecutar varios bloques de consultas, usando query tool en pgAdmin4, intente terminar cada bloque con un punto y coma;

El problema es que parece que solo la última consulta se ejecuta realmente en Data Output Panel . Supongo que debe usar una cláusula UNION o JOIN para fusionarlos de alguna manera.

cohort_definition

  • Para guardar su mesa final, es decir, para exportar desde Postgres a CSV, puede usar la declaración COPY , vea # 214

No creo que pueda proporcionar una solución general, pero tal vez pueda indicarles la dirección correcta. Mi forma favorita de trabajar es escribir scripts SQL modulares que crean vistas materializadas de los datos para conceptos particulares (por ejemplo, ventilación). Luego combino todas estas vistas juntas al final para hacer una tabla grande, y la envío a CSV o la leo directamente en Python. Si está buscando aprender SQL, estoy seguro de que hay muchos tutoriales en línea para ayudarlo con eso. En particular, leería sobre las vistas materializadas, ya que son muy útiles para crear tablas intermedias que luego puede usar más adelante (creo que eso es lo que necesita en su última pregunta).

Si observa la subcarpeta aline (https://github.com/MIT-LCP/mimic-code/tree/master/notebooks/aline) puede ver un ejemplo de un estudio clínico completamente reproducible. Recomendaría hacer algo como lo que se hace en esa carpeta. Hay un montón de archivos SQL modulares que generan tablas subyacentes; puede ver que primero genero una tabla de "cohorte" aline_cohort.sql , que dice "estos son los icustay_id s que me interesan". Luego ejecuto una serie de otros scripts para generar conceptos para estos icustay_id s. Finalmente, el cuaderno extrae todos los datos de estas tablas (en aline.ipynb @ [7]). El cuaderno ha ido un paso más allá y en realidad ejecuta todas las consultas anteriores directamente desde Python. Como mínimo, debería darte una idea de cómo puedes construir una cohorte / conjunto de datos a partir de múltiples consultas SQL. ¡Espero que eso ayude!

Hola Alistair @alistairewj , muchas gracias por esta gran ayuda, se agradece mucho: +1:

Estoy invirtiendo algo de tiempo en revisar el estudio del catéter arterial permanente (estudio de línea) y sus

Es una curva de aprendizaje un poco empinada, pero está empezando a tener sentido :) El análisis secundario de los registros médicos electrónicos también está demostrando ser realmente útil :)

¡Estupendo! ¡Buena suerte!

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

joel1391 picture joel1391  ·  13Comentarios

postgres-newbie picture postgres-newbie  ·  22Comentarios

Lejla1979 picture Lejla1979  ·  25Comentarios

JohannesWiesner picture JohannesWiesner  ·  4Comentarios

lmockus picture lmockus  ·  27Comentarios