Mimic-code: comment exécuter le fichier .sh dans le dossier concepts pour créer la table appropriée ?

Créé le 18 sept. 2020  ·  13Commentaires  ·  Source: MIT-LCP/mimic-code

Conditions préalables

La description

Merci beaucoup pour ce super projet !
Je suis un nouveau débutant SQL/psql. J'ai tellement essayé d'installer [postgres_make_concepts.sh] dans le shell (psql), mais j'ai échoué. Je ne sais pas comment démarrer le fichier. Cependant, en suivant les instructions, je peux exécuter le fichier .sql individuel.
Tout le dossier a été téléchargé sur mon ordinateur.
De plus, j'ai parcouru tous les problèmes (y compris fermés), mais je n'arrive toujours pas à comprendre comment le faire localement.

[Comment initier le postgres_make_concepts.sh ?]

J'espère pour votre aide, merci!

Commentaire le plus utile

OK, j'ai réussi à écrire un fichier .bat pour générer les concepts sous Windows. Cela nécessite WSL, mais c'est probablement le moyen le plus mains libres de générer les concepts. Cela fonctionne pour tous sauf les diagnostics CCS. Il y a un tutoriel dans le README : https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Faites-moi savoir si cela fonctionne pour vous tous!

Tous les 13 commentaires

Quel système d'exploitation utilisez-vous? Le fichier est un script shell et ne fonctionnera donc que sur Mac OS X ou Linux. Si vous êtes sous Windows, je ne suis pas sûr de la meilleure approche. Les fichiers SQL peuvent être exécutés à l'aide du programme psql (shell) fourni avec votre installation PostgreSQL, mais une expression régulière est appliquée à certains fichiers pour remplacer la syntaxe BigQuery par la syntaxe PostgreSQL. Le moyen le plus simple d'émuler cela sous Windows est probablement de le faire manuellement.

Quel système d'exploitation utilisez-vous? Le fichier est un script shell et ne fonctionnera donc que sur Mac OS X ou Linux. Si vous êtes sous Windows, je ne suis pas sûr de la meilleure approche. Les fichiers SQL peuvent être exécutés à l'aide du programme psql (shell) fourni avec votre installation PostgreSQL, mais une expression régulière est appliquée à certains fichiers pour remplacer la syntaxe BigQuery par la syntaxe PostgreSQL. Le moyen le plus simple d'émuler cela sous Windows est probablement de le faire manuellement.

Merci beaucoup! J'utilise Win7. Oui, je peux exécuter le fichier .sql individuel avec PostgreSQL. Je me demande s'il existe un moyen d'exécuter postgres_make_concepts.sh dans cmd ou psql pour configurer toutes les tables.
Au fait, voudriez-vous fournir le fichier make_concepts au format .sql, tout comme le fichier dans le code sepsis-3-mimic ?
OU J'aimerais que quelqu'un me fournisse l'algorithme pour exécuter .sh sous Windows. Il m'a fallu beaucoup de temps pour googler mais je n'ai rien obtenu.
Merci!

OK, c'est assez difficile car j'utilise des utilitaires Unix pour modifier les scripts avant de les passer au client psql. Le script .sh (1) modifie les fichiers SQL à l'aide d'une expression régulière pour les rendre compatibles postgres, (2) crée une table avec le même nom que le fichier en utilisant le contenu du script, et (3) exécute les scripts SQL dans le bon ordre. Vous auriez donc dû reproduire les étapes manuellement.

Malheureusement, parce que j'utilise l'utilitaire sed , il n'y a aucun moyen d'en faire un fichier SQL comme avant. Vous pouvez installer sed sur Windows en utilisant GNU pour Windows et utiliser ce programme pour remplacer le texte. Il peut être possible de l'exécuter dans l'invite de commande si vous installez également les utilitaires de base GNU pour Windows .

Vous pouvez également essayer d'installer postgres dans le sous-système Windows pour Linux (WSL) - tutoriel ici . Si vous le faisiez, le script .sh s'exécuterait dans l'environnement Linux.

cher alistair et smartniko
J'ai rencontré un problème similaire.
J'ai suivi les instructions et exécuté le fichier postgres-funtions.sql, mais maintenant je ne pouvais plus exécuter chaque fichier .sql manuellement... Ai-je mal fait la première étape ? Comment pourrais-je annuler la première étape...

Merci

Non, la première étape est absolument requise et crée les fonctions sur postgresql dont vous aurez besoin. Vous pouvez tester si cela a fonctionné avec :

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

devrait retourner 123 . Si vous obtenez un message No function matches the given name and argument types. , c'est que vous n'avez pas créé les fonctions sur la base de données.

Une fois cela fait, vous devez effectuer les remplacements de texte suivants dans tous les fichiers SQL :

  1. Remplacez physionet-data.mimiciii_clinical.<table_name> , physionet-data.mimiciii_derived.<table_name> et physionet-data.mimiciii_notes.<table_name> par seulement <table_name> . Cela se fait par l'appel REGEX_SCHEMA dans le script shell.
  2. Remplacez DATETIME_DIFF(date1, date2, DATE_PART) par DATETIME_DIFF(date1, date2, 'DATE_PART') , c'est-à-dire que le DATE_PART doit être entre guillemets simples. Cela se fait par l'appel REGEX_DATETIME_DIFF dans le script shell.
  3. Ajoutez une instruction create table en haut du fichier, par exemple si le fichier est nommé echo_data.sql , ajoutez CREATE TABLE echo_data AS en haut du fichier. Ceci est fait par les appels echo dans le script shell.

Les trois étapes ci-dessus reproduisent ce qui est fait dans le script shell (postgres_make_concepts.sh). Bien sûr, il est préférable de les automatiser, donc si vous savez comment le faire sous Windows, allez-y (et publiez votre solution ici !).

image

cher alistair et smartniko
Je suis étudiant en médecine et pas très bon en SQL/psql. J'ai essayé dur d'exécuter make_concepts.sh manuellement mais j'ai échoué. Et mon système est Windows aussi.
J'ai créé des fonctions sur postgresql et elles sont apparues mais n'ont pas pu être utilisées. (J'ai eu 'Aucune fonction ne correspond au nom donné et aux types d'arguments' après SELECT REGEXP_EXTRACT('test il saisit le nombre 123', '[0-9]+');)
Lorsque j'ai copié le SQL et essayé de créer une vue de ventilation, il a dit "Aucune fonction ne correspond au nom donné et aux types d'arguments", mais il a été créé avec succès après avoir remplacé la fonction dans le SQL par des mots similaires.
Et ma question comment traiter les fonctions?

J'ai créé des fonctions sur postgresql et elles sont apparues mais n'ont pas pu être utilisées. (J'ai eu 'Aucune fonction ne correspond au nom donné et aux types d'arguments' après SELECT REGEXP_EXTRACT('test il saisit le nombre 123', '[0-9]+');)
Lorsque j'ai copié le SQL et essayé de créer une vue de ventilation, il a dit "Aucune fonction ne correspond au nom donné et aux types d'arguments", mais il a été créé avec succès après avoir remplacé la fonction dans le SQL par des mots similaires.
Et ma question comment traiter les fonctions?

Les fonctions sont créées sur un schéma spécifique. Il se peut donc que les fonctions soient créées sur le schéma répertorié, mais lorsque vous essayez d'utiliser la fonction, elle ne figure plus dans le chemin de recherche. Je ne sais pas quel programme vous utilisez, mais je configure mon chemin de recherche en exécutant set search_path to mimiciii,public; .

OK, j'ai réussi à écrire un fichier .bat pour générer les concepts sous Windows. Cela nécessite WSL, mais c'est probablement le moyen le plus mains libres de générer les concepts. Cela fonctionne pour tous sauf les diagnostics CCS. Il y a un tutoriel dans le README : https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Faites-moi savoir si cela fonctionne pour vous tous!

OK, j'ai réussi à écrire un fichier .bat pour générer les concepts sous Windows. Cela nécessite WSL, mais c'est probablement le moyen le plus mains libres de générer les concepts. Cela fonctionne pour tous sauf les diagnostics CCS. Il y a un tutoriel dans le README : https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Faites-moi savoir si cela fonctionne pour vous tous!

Merci pour vos conseils ! Maintenant, j'ai créé des fonctions en utilisant 'set search_path to mimiciii,public' et j'ai réussi à créer une vue jusqu'à ce que

OK, j'ai réussi à écrire un fichier .bat pour générer les concepts sous Windows. Cela nécessite WSL, mais c'est probablement le moyen le plus mains libres de générer les concepts. Cela fonctionne pour tous sauf les diagnostics CCS. Il y a un tutoriel dans le README : https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Faites-moi savoir si cela fonctionne pour vous tous!

Merci pour vos conseils ! J'ai changé le chemin des fonctions et ensuite il peut être utilisé. Après cela, j'ai construit des vues manuellement en suivant la commande de make_concepts.sh et la plupart ont réussi. Cependant voici deux problèmes que j'ai rencontrés.

  1. Lorsque j'ai essayé de créer 'weight_durations', cela a échoué et a déclaré 'Impossible de trouver la conversion de l'inconnu en texte', ce qui a affecté la création de 'heightweight', 'kdigo_uo' et d'autres vues.
  2. Lorsque j'ai essayé de construire 'ccs_dx', cela a échoué et a dit 'La relation "mimiciii.ccs_multi_dx" n'existe pas'. Dois-je créer cette table en premier ?
    À l'exception de ces deux parties, toutes les vues ont été construites avec succès.
  1. Lorsque j'ai essayé de créer 'weight_durations', cela a échoué et a déclaré 'Impossible de trouver la conversion de l'inconnu en texte', ce qui a affecté la création de 'heightweight', 'kdigo_uo' et d'autres vues.

C'est étrange - j'ai construit weight_durations parfaitement bien. Quelle version de PostgreSQL utilisez-vous ?

  1. Lorsque j'ai essayé de construire 'ccs_dx', cela a échoué et a dit 'La relation "mimiciii.ccs_multi_dx" n'existe pas'. Dois-je créer cette table en premier ?

Oui - ce à quoi je m'attendais. Il essaie de décompresser le fichier .gz avec gzip, mais Windows n'est pas fourni avec gzip par défaut, donc la construction de cette table échoue. Il suffit de décompresser manuellement cette table et de les importer dans la table avec une commande \COPY .

À l'exception de ces deux parties, toutes les vues ont été construites avec succès.

Super!

  1. Lorsque j'ai essayé de créer 'weight_durations', cela a échoué et a déclaré 'Impossible de trouver la conversion de l'inconnu en texte', ce qui a affecté la création de 'heightweight', 'kdigo_uo' et d'autres vues.

C'est étrange - j'ai construit weight_durations parfaitement bien. Quelle version de PostgreSQL utilisez-vous ?

J'ai utilisé PostgreSQL 9.6 et pgAdmin4. La vue a été créée avec succès après que j'ai changé LINE69: 'echo' AS weight_type, en 'echo'::text AS weight_type,. Au début, j'ai pensé que c'était un problème avec ma vue 'echo_data', car elle a été construite automatiquement avant que j'essaye de créer une vue manuellement. Et lorsque j'essaie d'utiliser le dernier code pour en créer un autre afin de déterminer s'ils sont différents, le nouveau que j'ai créé affiche « null » dans les colonnes de hauteur, poids, bsa et ainsi de suite. Je garde donc le premier.

  1. Lorsque j'ai essayé de construire 'ccs_dx', cela a échoué et a dit 'La relation "mimiciii.ccs_multi_dx" n'existe pas'. Dois-je créer cette table en premier ?

Oui - ce à quoi je m'attendais. Il essaie de décompresser le fichier .gz avec gzip, mais Windows n'est pas fourni avec gzip par défaut, donc la construction de cette table échoue. Il suffit de décompresser manuellement cette table et de les importer dans la table avec une commande \COPY .

J'avais créé la table ccs_multi_dx, puis construit la vue ccs_dx, mais cela disait 'Erreur : Erreur : expression régulière invalide : les parenthèses () ne sont pas équilibrées Contexte : La fonction PL/pgSQL regexp_contains(text, text) on line 3 of RETURN' ?

À l'exception de ces deux parties, toutes les vues ont été construites avec succès.

Super!

Cher alistaire :
Merci à tous pour votre aide! J'ai remarqué qu'il y a un fichier « make-concepts.sql » dans le mimic-code v1.4.2. Je l'ai couru et ça a bien fonctionné.
Pouvez-vous me dire s'il y a une différence entre les deux fichiers "make-concepts.sh" et "make-concepts.sql" ? J'ai joint le fichier .sql avec ce message.
faire-concepts.zip
Je suis totalement un étranger pour le SQL. codage et désolé pour tout le dérangement.
Merci encore.

Pouvez-vous me dire s'il y a une différence entre les deux fichiers "make-concepts.sh" et "make-concepts.sql" ? J'ai joint le fichier .sql avec ce message.

un fichier xxx.sh est destiné aux systèmes de type Unix et MacOS et ne fonctionnera pas sous Windows. un fichier xxx.sql est un script PostgreSQL et fonctionne tant que vous l'exécutez dans PostgreSQL, le système que vous utilisez n'a pas d'importance ici.

Cette page vous a été utile?
0 / 5 - 0 notes