Mimic-code: como executar o arquivo .sh na pasta de conceitos para construir a tabela relevante?

Criado em 18 set. 2020  ·  13Comentários  ·  Fonte: MIT-LCP/mimic-code

Pré-requisitos

Descrição

Muito obrigado pelo ótimo projeto!
Sou um novo iniciante em SQL / psql. Tentei muito instalar o [postgres_make_concepts.sh] no shell (psql), mas falhou. Não sei como iniciar o arquivo. No entanto, seguindo as instruções, posso executar o arquivo .sql individual.
A pasta inteira foi baixada no meu computador.
Mais, já passei por todos os problemas (inclusive os fechados), mas ainda não consigo descobrir como fazê-lo localmente.

[Como iniciar o postgres_make_concepts.sh?]

Espero por sua ajuda, obrigado!

Comentários muito úteis

OK, consegui escrever um arquivo .bat para gerar os conceitos no Windows. Requer WSL, mas é provavelmente a maneira mais fácil de gerar os conceitos. Funciona para todos, exceto para os diagnósticos de CCS. Há um tutorial no README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Deixe-me saber se funciona para todos vocês!

Todos 13 comentários

Que sistema operativo esta a utilizar? O arquivo é um script de shell e, portanto, só funcionará no Mac OS X ou Linux. Se você estiver no Windows, não tenho certeza da melhor abordagem. Os arquivos SQL podem ser executados usando o programa psql (shell) que acompanha a instalação do PostgreSQL, mas há uma expressão regular aplicada a alguns arquivos para substituir a sintaxe do BigQuery pela sintaxe do PostgreSQL. Provavelmente, a maneira mais simples de emular isso no Windows é apenas fazer isso manualmente.

Que sistema operativo esta a utilizar? O arquivo é um script de shell e, portanto, só funcionará no Mac OS X ou Linux. Se você estiver no Windows, não tenho certeza da melhor abordagem. Os arquivos SQL podem ser executados usando o programa psql (shell) que acompanha a instalação do PostgreSQL, mas há uma expressão regular aplicada a alguns arquivos para substituir a sintaxe do BigQuery pela sintaxe do PostgreSQL. Provavelmente, a maneira mais simples de emular isso no Windows é apenas fazer isso manualmente.

Muito obrigado! Estou usando o Win7. Sim, posso executar o arquivo .sql individual com PostgreSQL. Estou me perguntando se existe uma maneira de executar postgres_make_concepts.sh em cmd ou psql para configurar todas as tabelas.
A propósito, você gostaria de fornecer o arquivo make_concepts no formato .sql, assim como o arquivo no código sepsis-3-mimic?
OU gostaria que alguém pudesse fornecer o algoritmo para que eu execute .sh no Windows. Levei muito tempo para pesquisar no Google, mas não obtive nada.
Obrigado!

OK, é bastante desafiador porque eu uso utilitários Unix para alterar os scripts antes de passá-los para o cliente psql. O script .sh (1) modifica os arquivos SQL usando uma expressão regular para torná-los compatíveis com o postgres, (2) cria uma tabela com o mesmo nome do arquivo usando o conteúdo do script e (3) executa os scripts SQL da maneira correta pedido. Portanto, você teria que reproduzir as etapas manualmente.

Infelizmente, como uso o utilitário sed , não há como torná-lo um arquivo SQL como antes. Você pode instalar sed no Windows usando GNU para Windows e usar esse programa para substituir o texto. Pode ser possível para obtê-lo para ser executado no prompt de comando se você também instalar os utils núcleo GNU para Windows .

Alternativamente, você pode tentar instalar o postgres no Subsistema Windows para Linux (WSL) - tutorial aqui . Se você fizesse isso, o script .sh seria executado no ambiente Linux.

querido alistair e smartniko
Eu me deparei com um problema semelhante.
Eu segui as instruções e executei o postgres-funtions.sql, mas agora não consigo executar cada .sql manualmente ... Eu fiz a primeira etapa errada? Como eu poderia desfazer a primeira etapa ...

Obrigado

Não, o primeiro passo é absolutamente necessário e cria funções no postgresql de que você precisa. Você pode testar se funcionou com:

SELECT REGEXP_EXTRACT('test it grabs the number 123', '[0-9]+');

deve retornar 123 . Se você receber uma mensagem No function matches the given name and argument types. , então você não criou as funções no banco de dados.

Feito isso, você precisa fazer as seguintes substituições de texto em todos os arquivos SQL:

  1. Substitua physionet-data.mimiciii_clinical.<table_name> , physionet-data.mimiciii_derived.<table_name> e physionet-data.mimiciii_notes.<table_name> por apenas <table_name> . Isso é feito pela chamada REGEX_SCHEMA no script de shell.
  2. Substitua DATETIME_DIFF(date1, date2, DATE_PART) por DATETIME_DIFF(date1, date2, 'DATE_PART') , ou seja, DATE_PART deve ser citado com aspas simples. Isso é feito pela chamada REGEX_DATETIME_DIFF no script de shell.
  3. Adicione uma instrução de criação de tabela no início do arquivo, por exemplo, se o arquivo for denominado echo_data.sql , adicione CREATE TABLE echo_data AS no início do arquivo. Isso é feito pelas chamadas echo no script de shell.

As três etapas acima reproduzem o que é feito no script de shell (postgres_make_concepts.sh). Claro que automatizá-los é melhor, então se você sabe como fazer isso no Windows, vá em frente (e poste sua solução aqui!).

image

querido alistair e smartniko
Sou estudante de medicina e não sou muito bom em SQL / psql. Tentei muito executar make_concepts.sh manualmente, mas falhei. E meu sistema é windows também.
Criei funções no postgresql e elas apareceram, mas não puderam ser utilizadas. (Recebi 'Nenhuma função corresponde ao nome e tipos de argumento fornecidos' após SELECT REGEXP_EXTRACT ('teste, ele pega o número 123', '[0-9] +');)
Quando copiei o sql e tentei criar a visualização de ventilação, ele disse 'Nenhuma função corresponde ao nome e aos tipos de argumento fornecidos', mas foi criado com sucesso depois que substituí a função no SQL por palavras semelhantes.
E minha dúvida como lidar com as funções?

Criei funções no postgresql e elas apareceram, mas não puderam ser utilizadas. (Recebi 'Nenhuma função corresponde ao nome e tipos de argumento fornecidos' após SELECT REGEXP_EXTRACT ('teste, ele pega o número 123', '[0-9] +');)
Quando copiei o sql e tentei criar a visualização de ventilação, ele disse 'Nenhuma função corresponde ao nome e aos tipos de argumento fornecidos', mas foi criado com sucesso depois que substituí a função no SQL por palavras semelhantes.
E minha dúvida como lidar com as funções?

As funções são criadas em um esquema específico. Portanto, pode ser que as funções sejam criadas no esquema listado, mas quando você tenta usar a função, ela não está mais no caminho de pesquisa. Não tenho certeza de qual programa você está usando, mas configuro meu caminho de pesquisa executando set search_path to mimiciii,public; .

OK, consegui escrever um arquivo .bat para gerar os conceitos no Windows. Requer WSL, mas é provavelmente a maneira mais fácil de gerar os conceitos. Funciona para todos, exceto para os diagnósticos de CCS. Há um tutorial no README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Deixe-me saber se funciona para todos vocês!

OK, consegui escrever um arquivo .bat para gerar os conceitos no Windows. Requer WSL, mas é provavelmente a maneira mais fácil de gerar os conceitos. Funciona para todos, exceto para os diagnósticos de CCS. Há um tutorial no README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Deixe-me saber se funciona para todos vocês!

Obrigado pela sua orientação! Agora eu criei funções usando 'set search_path para mimiciii, public' e criei com sucesso algumas visualizações até

OK, consegui escrever um arquivo .bat para gerar os conceitos no Windows. Requer WSL, mas é provavelmente a maneira mais fácil de gerar os conceitos. Funciona para todos, exceto para os diagnósticos de CCS. Há um tutorial no README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Deixe-me saber se funciona para todos vocês!

Obrigado pela sua orientação! Eu mudei o caminho das funções e então pode ser usado. Depois disso, criei visualizações manualmente seguindo a ordem de make_concepts.sh e a maioria delas teve sucesso. No entanto, aqui estão dois problemas que encontrei.

  1. Quando tentei construir 'weight_durations', ele falhou e disse 'falhou em encontrar a conversão de unkonw para texto', o que afetou a criação de 'heightweight', 'kdigo_uo' e algumas outras visualizações.
  2. Quando tentei construir 'ccs_dx', ele falhou e disse 'O relacionamento "mimiciii.ccs_multi_dx" não existe'. Devo criar esta tabela primeiro?
    Exceto essas duas partes, todas as visualizações foram construídas com sucesso.
  1. Quando tentei construir 'weight_durations', ele falhou e disse 'falhou em encontrar a conversão de unkonw para texto', o que afetou a criação de 'heightweight', 'kdigo_uo' e algumas outras visualizações.

Isso é estranho - eu construí weight_durations perfeitamente bem. Qual versão do PostgreSQL você está usando?

  1. Quando tentei construir 'ccs_dx', ele falhou e disse 'O relacionamento "mimiciii.ccs_multi_dx" não existe'. Devo criar esta tabela primeiro?

Sim - isso eu esperava. Ele tenta descompactar o arquivo .gz com gzip, mas o Windows não vem com gzip por padrão, então a construção desta tabela falha. Requer apenas descompactar manualmente esta tabela e importá-los para a tabela com um comando \COPY .

Exceto essas duas partes, todas as visualizações foram construídas com sucesso.

Excelente!

  1. Quando tentei construir 'weight_durations', ele falhou e disse 'falhou em encontrar a conversão de unkonw para texto', o que afetou a criação de 'heightweight', 'kdigo_uo' e algumas outras visualizações.

Isso é estranho - eu construí weight_durations perfeitamente bem. Qual versão do PostgreSQL você está usando?

I uesd PostgreSQL 9.6 e pgAdmin4. A visualização foi criada com sucesso após eu alterar LINE69: 'echo' AS weight_type, para 'echo' :: text AS weight_type ,. No início, pensei que fosse um problema com a minha visão 'echo_data', já que ela foi construída automaticamente antes de eu tentar criar a visão manualmente. E quando tento usar o código mais recente para construir outro novo para descobrir se eles são diferentes, o novo que criei mostra 'nulo' nas colunas de altura, peso, bsa e assim por diante. Portanto, mantenho o primeiro.

  1. Quando tentei construir 'ccs_dx', ele falhou e disse 'O relacionamento "mimiciii.ccs_multi_dx" não existe'. Devo criar esta tabela primeiro?

Sim - isso eu esperava. Ele tenta descompactar o arquivo .gz com gzip, mas o Windows não vem com gzip por padrão, então a construção desta tabela falha. Requer apenas descompactar manualmente esta tabela e importá-los para a tabela com um comando \COPY .

Eu criei a tabela ccs_multi_dx e construí a visão ccs_dx, mas ela dizia 'Erro: Erro: expressão regular inválida: parênteses () não são balanceados Contexto: A função PL / pgSQL regexp_contains (texto, texto) na linha 3 de RETURN' ?

Exceto essas duas partes, todas as visualizações foram construídas com sucesso.

Excelente!

Caro alistaire:
Obrigado a todos pela ajuda! Percebi que existe um arquivo “make-concepts.sql“ no código mimic v1.4.2. Eu corri e funcionou bem.
Você pode me dizer se há alguma diferença entre os dois arquivos "make-concepts.sh" e "make-concepts.sql"? Anexei o arquivo .sql com esta mensagem.
make-concepts.zip
Eu sou totalmente um estranho para o sql. codificação e desculpe por todo o incômodo.
Obrigado novamente.

Você pode me dizer se há alguma diferença entre os dois arquivos "make-concepts.sh" e "make-concepts.sql"? Anexei o arquivo .sql com esta mensagem.

um arquivo xxx.sh é para sistemas tipo Unix e MacOS e não pode ser executado no Windows. um arquivo xxx.sql é um script PostgreSQL e funciona contanto que seja executado no PostgreSQL, o sistema que você usa não importa aqui.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

JohannesWiesner picture JohannesWiesner  ·  4Comentários

AjayTalati picture AjayTalati  ·  4Comentários

jeblundell picture jeblundell  ·  30Comentários

mornin picture mornin  ·  11Comentários

postgres-newbie picture postgres-newbie  ·  22Comentários