diff --git a/sql/sql-queries.md b/sql/sql-queries.md new file mode 100644 index 0000000..dcf7aa5 --- /dev/null +++ b/sql/sql-queries.md @@ -0,0 +1,193 @@ +# SQL-Queries für DNPM-Formulare + +## Abfrage von weiteren Informationen zu Merkmalskatalogeinträgen (Propcat) + +Angenommen eine Abfrage liefert für dk_molekulargenetik.entnahmemethode den Wert B und +die zugehörige Version in dk_molekulargenetik.entnahmemethode_propcat_version ist 1171: + +``` +SELECT code, shortdesc, description FROM property_catalogue_version_entry + WHERE code = 'B' + AND property_version_id = 1171 +``` + +Diese Abfrage liefert B, Biopsie, Biopsie. + +## Stammdaten zum Patienten anhand SAP-ID für den Personenstamm z.B. 4. + +``` +SELECT * FROM patient + WHERE patient.patienten_id = '?' AND patient.personenstamm = 4; +``` + +## Diagnosedaten zur Erkrankung + +``` +SELECT dk_diagnose.* FROM dk_diagnose + JOIN prozedur ON (prozedur.id = dk_diagnose.id) + JOIN erkrankung_prozedur ON (erkrankung_prozedur.prozedur_id = prozedur.id) + JOIN erkrankung ON (erkrankung.id = erkrankung_prozedur.erkrankung_id) + JOIN patient ON (patient.id = prozedur.patient_id) + WHERE patient.patienten_id = '?' AND erkrankung.tumoridentifikator = ?; +``` + +## Formular DNPM Klinik/Anamnese inkl. Unterformulare + +Formular DNPM Klinik/Anamnese anhand Patienten-(SAP)-ID und Onkostar-Tumor-ID: + +``` +SELECT dk_dnpm_kpa.* FROM dk_dnpm_kpa + JOIN prozedur ON (prozedur.id = dk_dnpm_kpa.id) + JOIN erkrankung_prozedur ON (erkrankung_prozedur.prozedur_id = prozedur.id) + JOIN erkrankung ON (erkrankung.id = erkrankung_prozedur.erkrankung_id) + JOIN patient ON (patient.id = prozedur.patient_id) + WHERE patient.patienten_id = '?' AND erkrankung.tumoridentifikator = ?; +``` + +## Unterformular Histologie(en) + +``` +SELECT dk_dnpm_uf_histologie.* FROM dk_dnpm_uf_histologie + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_histologie.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +## Unterformular ECOG Performance Status Verlauf + +``` +SELECT dk_dnpm_uf_tumorausbreitung.* FROM dk_dnpm_uf_tumorausbreitung + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_tumorausbreitung.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +## Unterformular Tumorerkrankung bei Verwandten + +``` +SELECT dk_dnpm_uf_verwandte.* FROM dk_dnpm_uf_verwandte + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_verwandte.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +## Unterformular Molekularpathologische Vorbefunde + +``` +SELECT dk_dnpm_vorbefunde.* FROM dk_dnpm_vorbefunde + JOIN prozedur ON (prozedur.id = dk_dnpm_vorbefunde.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +## Unterformular Therapielinien + +Achtung: Hier enthält der Tabellenname nicht den Bestandteil 'uf' für Unterformular. + +``` +SELECT dk_dnpm_therapielinie.* FROM dk_dnpm_therapielinie + JOIN prozedur ON (prozedur.id = dk_dnpm_therapielinie.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +Im Feld wirkstoffcodes sind die Wirkstoffe als JSON-Array in folgender Form gespeichert, da +Onkostar keine Liste in Unterformularen verarbeiten kann: + +| Name | Bedeutung | +|-----------|-----------------------------------------| +| system | Das verwendete System. ATC oder "other" | +| code | Der verwendete Wirkstoffcode | +| substance | Der Name des Wirkstoffs | + +Beispiel: + +``` +[ + {"system":"other","code":"Gemcitabin","substance":"Gemcitabin (dFdC)"}, + {"system":"other","code":"Cisplatin ","substance":"Cisplatin (CDDP)"} +] +``` + +## Formular DNPM Therapieplan inkl. Unterformulare + +Formular DNPM Klinik/Anamnese anhand Patienten-(SAP)-ID und Onkostar-Tumor-ID: + +``` +SELECT dk_dnpm_therapieplan.* FROM dk_dnpm_therapieplan + JOIN prozedur ON (prozedur.id = dk_dnpm_therapieplan.id) + JOIN erkrankung_prozedur ON (erkrankung_prozedur.prozedur_id = prozedur.id) + JOIN erkrankung ON (erkrankung.id = erkrankung_prozedur.erkrankung_id) + JOIN patient ON (patient.id = prozedur.patient_id) + WHERE patient.patienten_id = '?' AND erkrankung.tumoridentifikator = ?; +``` + +Alternativ mit Verweis auf DNPM Klinik/Anamnese + +``` +... + WHERE dk_dnpm_therapieplan.ref_dnpm_klinikanamnese = ?; +``` + +### Unterformular Reevaluation + +``` +SELECT dk_dnpm_uf_reevaluation .* FROM dk_dnpm_uf_reevaluation + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_reevaluation .id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +Achtung! Gegebenenfalls ist vor dem erneuten Bearbeiten des Formulars der Inhalt eines +einzelnen Reevaluationsauftrags direkt im Hauptformular gespeichert. In dem Fall sind keine +Unterformulare zur Reevaluation gespeichert. + +### Unterformular Rebiopsie + +``` +SELECT dk_dnpm_uf_rebiopsie.* FROM dk_dnpm_uf_rebiopsie + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_rebiopsie.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +### Unterformular Einzelempfehlung + +``` +SELECT dk_dnpm_uf_einzelempfehlung.* FROM dk_dnpm_uf_einzelempfehlung + JOIN prozedur ON (prozedur.id = dk_dnpm_uf_einzelempfehlung.id) + WHERE prozedur.hauptprozedur_id = ?; +``` + +#### Wirkstoffe + +Im Feld wirkstoffe_json sind die Wirkstoffe als JSON-Array in folgender Form gespeichert, da +Onkostar keine Liste in Unterformularen verarbeiten kann: + +| Name | Bedeutung | +|--------|--------------------------------------------------| +| system | Das verwendete System. "ATC" oder "UNREGISTERED" | +| code | Der verwendete Wirkstoffcode | +| name | Der Name des Wirkstoffs | + +Beispiel: + +``` +[ + {"code":"","name":"PARP-Inhibierung","system":"UNREGISTERED"} +] +``` + +#### Studien + +Im Feld studien_alle_json sind die Wirkstoffe als JSON-Array in folgender Form gespeichert, +da Onkostar keine Liste in Unterformularen verarbeiten kann: + +| Name | Bedeutung | +|-------------------------|-----------------------------| +| studie | Name der Studie | +| system | System der Studie(n-ID) | +| id (und alt auch "nct") | Die Studien-ID | +| ort | Ort der Studiendurchführung | +| internextern | intern (i) oder extern (e) | + +Beispiel: + +``` +[ + {"studie":"TestInhibitor","system":"NCT","id":"NCT12345678","nct":"NCT12345678","ort":"Teststadt","internextern":"e"} +] +```