Mimic-code: Wie führe ich eine .sh-Datei im Konzeptordner aus, um die relevante Tabelle zu erstellen?

Erstellt am 18. Sept. 2020  ·  13Kommentare  ·  Quelle: MIT-LCP/mimic-code

Voraussetzungen

Beschreibung

Vielen Dank für das tolle Projekt!
Ich bin ein neuer SQL/psql-Anfänger. Ich habe so hart versucht, die [postgres_make_concepts.sh] in der Shell (psql) zu installieren, aber es ist gescheitert. Ich weiß nicht, wie ich die Datei starten soll. Befolgen Sie jedoch die Anweisungen, kann ich die einzelne .sql-Datei ausführen.
Der gesamte Ordner wurde auf meinen Computer heruntergeladen.
Außerdem habe ich alle Probleme durchgegangen (einschließlich geschlossen), aber ich kann immer noch nicht herausfinden, wie man es lokal macht.

[Wie starte ich die postgres_make_concepts.sh?]

Hoffe auf deine Hilfe, danke!

Hilfreichster Kommentar

OK, ich habe es geschafft, eine .bat-Datei zu schreiben, um die Konzepte unter Windows zu generieren. Es erfordert WSL, ist aber wahrscheinlich die freihändigste Art, die Konzepte zu generieren. Es funktioniert für alle außer den CCS-Diagnosen. Es gibt ein Tutorial in der README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Lass mich wissen, ob es für dich alle funktioniert!

Alle 13 Kommentare

Welches Betriebssystem verwendest du? Die Datei ist ein Shell-Skript und funktioniert daher nur unter Mac OS X oder Linux. Wenn Sie Windows verwenden, bin ich mir nicht sicher, wie der beste Ansatz ist. Die SQL-Dateien können mit dem psql-Programm (Shell) ausgeführt werden, das mit Ihrer PostgreSQL-Installation geliefert wurde, aber es gibt einen regulären Ausdruck, der auf einige Dateien angewendet wird, um die BigQuery-Syntax durch die PostgreSQL-Syntax zu ersetzen. Der wahrscheinlich einfachste Weg, dies unter Windows zu emulieren, besteht darin, es einfach manuell zu tun.

Welches Betriebssystem verwendest du? Die Datei ist ein Shell-Skript und funktioniert daher nur unter Mac OS X oder Linux. Wenn Sie Windows verwenden, bin ich mir nicht sicher, wie der beste Ansatz ist. Die SQL-Dateien können mit dem psql-Programm (Shell) ausgeführt werden, das mit Ihrer PostgreSQL-Installation geliefert wurde, aber es gibt einen regulären Ausdruck, der auf einige Dateien angewendet wird, um die BigQuery-Syntax durch die PostgreSQL-Syntax zu ersetzen. Der wahrscheinlich einfachste Weg, dies unter Windows zu emulieren, besteht darin, es einfach manuell zu tun.

Ich danke dir sehr! Ich verwende Win7. Ja, ich kann die einzelne .sql-Datei mit PostgreSQL ausführen. Ich frage mich, ob es eine Möglichkeit gibt, postgres_make_concepts.sh in cmd oder psql auszuführen, um alle Tabellen einzurichten.
Möchten Sie übrigens die make_concepts-Datei im .sql-Format bereitstellen, genau wie die Datei im Sepsis-3-Mimic-Code?
ODER ich wünschte, jemand könnte mir den Algorithmus zur Verfügung stellen, damit ich .sh in Windows ausführen kann. Ich habe lange gegoogelt, aber nichts gefunden.
Dankeschön!

OK, es ist ziemlich schwierig, weil ich Unix-Dienstprogramme verwende, um die Skripte zu ändern, bevor ich sie an den psql-Client übergebe. Das .sh-Skript (1) modifiziert die SQL-Dateien mit einem regulären Ausdruck, um sie Postgres-kompatibel zu machen, (2) erstellt eine Tabelle mit dem gleichen Namen wie die Datei unter Verwendung des Inhalts des Skripts und (3) führt die SQL-Skripte in der richtigen Auftrag. Sie müssten die Schritte also manuell reproduzieren.

Da ich das Dienstprogramm sed , gibt es leider keine Möglichkeit, es wie zuvor zu einer SQL-Datei zu machen. Sie können sed unter Windows mit GNU für Windows installieren und dieses Programm verwenden, um den Text zu ersetzen. Es ist möglicherweise möglich , es in der Eingabeaufforderung auszuführen , wenn Sie auch die GNU - Core - Utilities für Windows installieren .

Alternativ können Sie versuchen, postgres im Windows-Subsystem für Linux (WSL) zu installieren - Tutorial hier . Wenn Sie dies tun, wird das .sh-Skript in der Linux-Umgebung ausgeführt.

Liebe Alistair und Smartniko
Ich bin auf ein ähnliches Problem gestoßen.
Ich habe die Anweisungen befolgt und die postgres-funtions.sql ausgeführt, aber jetzt konnte ich nicht jede .sql manuell ausführen.... Habe ich den ersten Schritt falsch gemacht? Wie könnte ich den ersten Schritt rückgängig machen...

Vielen Dank

Nein, der erste Schritt ist unbedingt erforderlich und erstellt Funktionen auf postgresql, die Sie benötigen. Sie können testen, ob es funktioniert hat mit:

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

sollte 123 . Wenn Sie die Meldung No function matches the given name and argument types. , haben Sie die Funktionen nicht in der Datenbank erstellt.

Danach müssen Sie in allen SQL-Dateien die folgenden Textersetzungen vornehmen:

  1. Ersetzen Sie physionet-data.mimiciii_clinical.<table_name> , physionet-data.mimiciii_derived.<table_name> und physionet-data.mimiciii_notes.<table_name> nur durch <table_name> . Dies geschieht durch den Aufruf REGEX_SCHEMA im Shell-Skript.
  2. Ersetzen Sie DATETIME_DIFF(date1, date2, DATE_PART) durch DATETIME_DIFF(date1, date2, 'DATE_PART') , dh die DATE_PART müssen in einfache Anführungszeichen gesetzt werden. Dies geschieht durch den Aufruf REGEX_DATETIME_DIFF im Shell-Skript.
  3. Fügen Sie am Anfang der Datei eine create table-Anweisung hinzu, zB wenn die Datei echo_data.sql , fügen Sie CREATE TABLE echo_data AS am Anfang der Datei hinzu. Dies geschieht durch die echo Aufrufe im Shell-Skript.

Die obigen drei Schritte replizieren, was im Shell-Skript (postgres_make_concepts.sh) gemacht wird. Natürlich ist es am besten, sie zu automatisieren. Wenn Sie also wissen, wie das unter Windows geht, machen Sie es (und posten Sie Ihre Lösung hier!).

image

Liebe Alistair und Smartniko
Ich bin Medizinstudent und nicht sehr gut in SQL/psql. Ich habe versucht, make_concepts.sh manuell auszuführen, aber es ist fehlgeschlagen. Und mein System ist auch Windows.
Ich habe Funktionen auf postgresql erstellt und sie sind erschienen, konnten aber nicht verwendet werden. (Ich habe 'Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen' nach SELECT REGEXP_EXTRACT('test es greift die Zahl 123', '[0-9]+');)
Als ich die SQL kopierte und versuchte, eine Belüftungsansicht zu erstellen, sagte sie "Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen", aber sie wurde erfolgreich erstellt, nachdem ich die Funktion in der SQL durch die ähnlichen Wörter ersetzt hatte.
Und meine Frage, wie man mit den Funktionen umgeht?

Ich habe Funktionen auf postgresql erstellt und sie sind erschienen, konnten aber nicht verwendet werden. (Ich habe 'Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen' nach SELECT REGEXP_EXTRACT('test es greift die Zahl 123', '[0-9]+');)
Als ich die SQL kopierte und versuchte, eine Belüftungsansicht zu erstellen, sagte sie "Keine Funktion entspricht dem angegebenen Namen und den Argumenttypen", aber sie wurde erfolgreich erstellt, nachdem ich die Funktion in der SQL durch die ähnlichen Wörter ersetzt hatte.
Und meine Frage, wie man mit den Funktionen umgeht?

Funktionen werden auf einem bestimmten Schema erstellt. Es kann also sein, dass die Funktionen auf dem aufgelisteten Schema erstellt werden, aber wenn Sie versuchen, die Funktion zu verwenden, befindet sie sich nicht mehr im Suchpfad. Ich bin mir nicht sicher, welches Programm Sie verwenden, aber ich konfiguriere meinen Suchpfad, indem ich set search_path to mimiciii,public; .

OK, ich habe es geschafft, eine .bat-Datei zu schreiben, um die Konzepte unter Windows zu generieren. Es erfordert WSL, ist aber wahrscheinlich die freihändigste Art, die Konzepte zu generieren. Es funktioniert für alle außer den CCS-Diagnosen. Es gibt ein Tutorial in der README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Lass mich wissen, ob es für dich alle funktioniert!

OK, ich habe es geschafft, eine .bat-Datei zu schreiben, um die Konzepte unter Windows zu generieren. Es erfordert WSL, ist aber wahrscheinlich die freihändigste Art, die Konzepte zu generieren. Es funktioniert für alle außer den CCS-Diagnosen. Es gibt ein Tutorial in der README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Lass mich wissen, ob es für dich alle funktioniert!

Danke für deine Beratung! Jetzt habe ich mit 'set search_path to mimiciii,public' Funktionen erstellt und erfolgreich einige Ansichten erstellt, bis

OK, ich habe es geschafft, eine .bat-Datei zu schreiben, um die Konzepte unter Windows zu generieren. Es erfordert WSL, ist aber wahrscheinlich die freihändigste Art, die Konzepte zu generieren. Es funktioniert für alle außer den CCS-Diagnosen. Es gibt ein Tutorial in der README: https://github.com/MIT-LCP/mimic-code/tree/master/concepts

Lass mich wissen, ob es für dich alle funktioniert!

Danke für deine Beratung! Ich habe den Pfad der Funktionen geändert und dann kann er verwendet werden. Danach habe ich Ansichten manuell nach der Reihenfolge von make_concepts.sh erstellt und das meiste davon ist erfolgreich. Hier sind jedoch zwei Probleme, auf die ich gestoßen bin.

  1. Als ich versuchte, 'weight_durations' zu erstellen, schlug es fehl und sagte 'konvertierung von unkonw in text konnte nicht gefunden werden', was sich auf die Erstellung von 'heightweight','kdigo_uo' und einigen anderen Ansichten auswirkte.
  2. Als ich versuchte, 'ccs_dx' zu erstellen, schlug es fehl und sagte 'Die Beziehung "mimiciii.ccs_multi_dx" existiert nicht'. Soll ich diese Tabelle zuerst erstellen?
    Mit Ausnahme dieser beiden Teile wurden alle Ansichten erfolgreich erstellt.
  1. Als ich versuchte, 'weight_durations' zu erstellen, schlug es fehl und sagte 'konvertierung von unkonw in text konnte nicht gefunden werden', was sich auf die Erstellung von 'heightweight','kdigo_uo' und einigen anderen Ansichten auswirkte.

Das ist seltsam - ich habe weight_durations perfekt gebaut. Welche PostgreSQL-Version verwenden Sie?

  1. Als ich versuchte, 'ccs_dx' zu erstellen, schlug es fehl und sagte 'Die Beziehung "mimiciii.ccs_multi_dx" existiert nicht'. Soll ich diese Tabelle zuerst erstellen?

Ja - das habe ich erwartet. Es versucht, die .gz-Datei mit gzip zu dekomprimieren, aber Windows wird standardmäßig nicht mit gzip geliefert, sodass das Erstellen dieser Tabelle fehlschlägt. Es erfordert nur, diese Tabelle manuell zu dekomprimieren und sie mit einem \COPY Befehl in die Tabelle zu importieren.

Mit Ausnahme dieser beiden Teile wurden alle Ansichten erfolgreich erstellt.

Groß!

  1. Als ich versuchte, 'weight_durations' zu erstellen, schlug es fehl und sagte 'konvertierung von unkonw in text konnte nicht gefunden werden', was sich auf die Erstellung von 'heightweight','kdigo_uo' und einigen anderen Ansichten auswirkte.

Das ist seltsam - ich habe weight_durations perfekt gebaut. Welche PostgreSQL-Version verwenden Sie?

Ich benutze PostgreSQL 9.6 und pgAdmin4. Die Ansicht wurde erfolgreich erstellt, nachdem ich LINE69: 'echo' AS weight_type in 'echo'::text AS weight_type geändert habe. Zuerst dachte ich, es sei ein Problem mit meiner Ansicht 'echo_data', da sie automatisch erstellt wurde, bevor ich versuchte, die Ansicht manuell zu erstellen. Und wenn ich versuche, den neuesten Code zu verwenden, um einen anderen neuen zu erstellen, um herauszufinden, ob sie sich unterscheiden, zeigt der neue, den ich erstellt habe, 'null' in den Spalten für Höhe, Gewicht, BSA usw. an. Also behalte ich den ersten.

  1. Als ich versuchte, 'ccs_dx' zu erstellen, schlug es fehl und sagte 'Die Beziehung "mimiciii.ccs_multi_dx" existiert nicht'. Soll ich diese Tabelle zuerst erstellen?

Ja - das habe ich erwartet. Es versucht, die .gz-Datei mit gzip zu dekomprimieren, aber Windows wird standardmäßig nicht mit gzip geliefert, sodass das Erstellen dieser Tabelle fehlschlägt. Es erfordert nur, diese Tabelle manuell zu dekomprimieren und sie mit einem \COPY Befehl in die Tabelle zu importieren.

Ich hatte die Tabelle ccs_multi_dx erstellt und dann die Ansicht ccs_dx erstellt, aber sie sagte 'Fehler: Fehler: ungültiger regulärer Ausdruck: Klammern () sind nicht ausgeglichen Kontext: Die PL/pgSQL-Funktion regexp_contains(text, text) in Zeile 3 von RETURN' ?

Mit Ausnahme dieser beiden Teile wurden alle Ansichten erfolgreich erstellt.

Groß!

Lieber Alitaire:
Ich danke Ihnen allen für Ihre Hilfe! Mir ist aufgefallen, dass sich im Mimic-Code v1.4.2 eine Datei „make-concepts.sql“ befindet. Ich habe es laufen lassen und es hat gut funktioniert.
Können Sie mir sagen, ob es einen Unterschied zwischen den beiden Dateien "make-concepts.sh" und "make-concepts.sql" gibt? Ich habe die .sql-Datei mit dieser Nachricht angehängt.
make-concepts.zip
Ich bin ein absoluter Außenseiter für die SQL. Codierung und sorry für die Mühe.
Danke noch einmal.

Können Sie mir sagen, ob es einen Unterschied zwischen den beiden Dateien "make-concepts.sh" und "make-concepts.sql" gibt? Ich habe die .sql-Datei mit dieser Nachricht angehängt.

eine xxx.sh Datei ist für Unix-ähnliche und MacOS-Systeme und läuft nicht unter Windows. eine xxx.sql Datei ist ein PostgreSQL-Skript und funktioniert, solange Sie es in PostgreSQL ausführen, das verwendete System spielt hier keine Rolle.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen