mirror of
https://github.com/pcvolkmer/bzkf-rwdp-check.git
synced 2025-07-01 07:42:55 +00:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
9d7e511725 | |||
e4c3e61f35 | |||
38f9fe3628 | |||
ab15e5c9ff |
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "bzkf-rwdp-check"
|
||||
version = "0.3.1"
|
||||
version = "0.3.2"
|
||||
edition = "2021"
|
||||
authors = ["Paul-Christian Volkmer <volkmer_p@ukw.de>"]
|
||||
description = "Anwendung zur Durchführung einer Plausibilitätsprüfung anhand der Daten für die BZKF Real World Data Platform."
|
||||
@ -11,7 +11,7 @@ clap = { version = "4.5", features = ["std", "help", "usage", "derive", "error-c
|
||||
console = "0.15"
|
||||
csv = "1.3"
|
||||
dialoguer = "0.11"
|
||||
itertools = "0.12"
|
||||
itertools = "0.13"
|
||||
mysql = "25.0"
|
||||
serde = { version = "1.0", features = ["derive"] }
|
||||
urlencoding = "2.1"
|
||||
|
@ -18,9 +18,10 @@
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*/
|
||||
|
||||
use std::time::Duration;
|
||||
|
||||
use mysql::prelude::Queryable;
|
||||
use mysql::{params, Pool};
|
||||
use std::time::Duration;
|
||||
|
||||
use crate::common::{ExportData, Icd10GroupSize};
|
||||
use crate::resources::{EXPORT_QUERY, SQL_QUERY};
|
||||
|
13
src/main.rs
13
src/main.rs
@ -88,10 +88,17 @@ fn print_items(items: &[Icd10GroupSize]) {
|
||||
}
|
||||
|
||||
fn print_extern_notice(include_extern: bool) {
|
||||
let _ = Term::stdout().write_line(format!("{} Die Datenbankanfrage schließt Meldungen mit externer Diagnose {}.", style("Hinweis:").bold().underlined(), match include_extern {
|
||||
let _ = Term::stdout().write_line(
|
||||
format!(
|
||||
"{} Die Datenbankanfrage schließt Meldungen mit externer Diagnose {}.",
|
||||
style("Hinweis:").bold().underlined(),
|
||||
match include_extern {
|
||||
true => style("ein").yellow(),
|
||||
false => style("nicht ein (Standard)").green()
|
||||
}).as_str());
|
||||
false => style("nicht ein (Standard)").green(),
|
||||
}
|
||||
)
|
||||
.as_str(),
|
||||
);
|
||||
}
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
|
@ -29,14 +29,15 @@ FROM (
|
||||
EXTRACTVALUE(lme.xml_daten, '//Patienten_Stammdaten/@Patient_ID') AS pid,
|
||||
lme.versionsnummer,
|
||||
SHA2(CONCAT('https://fhir.diz.uk-erlangen.de/identifiers/onkostar-xml-condition-id|', EXTRACTVALUE(lme.xml_daten, '//Patienten_Stammdaten/@Patient_ID'), 'condition', EXTRACTVALUE(lme.xml_daten, '//Diagnose/@Tumor_ID')), 256) AS cond_id,
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Primaertumor_ICD_Code'), ' ', 1) AS condcodingcode,
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Diagnosedatum'), ' ', 1) AS diagnosedatum,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) AS diagnosejahr
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Primaertumor_ICD_Code'), ' ', 1) AS condcodingcode,
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Diagnosedatum'), ' ', 1) AS diagnosedatum,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) AS diagnosejahr
|
||||
FROM lkr_meldung_export lme
|
||||
JOIN lkr_meldung lm ON (lm.id = lme.lkr_meldung AND lme.typ <> '-1' AND lm.extern <= :include_extern)
|
||||
WHERE lme.xml_daten LIKE '%ICD_Version%'
|
||||
AND SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) = :year
|
||||
AND (lme.xml_daten LIKE '%<cTNM%' OR lme.xml_daten LIKE '%<pTNM%' OR lme.xml_daten LIKE '%<Menge_Histologie>%' OR lme.xml_daten LIKE '%<Menge_Weitere_Klassifikation>%')
|
||||
WHERE lm.xml_daten LIKE '%ICD_Version%'
|
||||
AND SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) = :year
|
||||
AND (lm.xml_daten LIKE '%<cTNM%' OR lm.xml_daten LIKE '%<pTNM%' OR lm.xml_daten LIKE '%<Menge_Histologie>%' OR lm.xml_daten LIKE '%<Menge_Weitere_Klassifikation>%')
|
||||
AND (lm.xml_daten NOT LIKE '%histologie_zytologie%')
|
||||
) o1
|
||||
LEFT OUTER JOIN (
|
||||
|
||||
|
@ -115,13 +115,14 @@ FROM (
|
||||
EXTRACTVALUE(lme.xml_daten, '//Patienten_Stammdaten/@Patient_ID') AS pid,
|
||||
lme.versionsnummer,
|
||||
SHA2(CONCAT('https://fhir.diz.uk-erlangen.de/identifiers/onkostar-xml-condition-id|', EXTRACTVALUE(lme.xml_daten, '//Patienten_Stammdaten/@Patient_ID'), 'condition', EXTRACTVALUE(lme.xml_daten, '//Diagnose/@Tumor_ID')), 256) AS cond_id,
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Primaertumor_ICD_Code'), ' ', 1) AS condcodingcode,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) AS diagnosejahr
|
||||
SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Primaertumor_ICD_Code'), ' ', 1) AS condcodingcode,
|
||||
SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) AS diagnosejahr
|
||||
FROM lkr_meldung_export lme
|
||||
JOIN lkr_meldung lm ON (lm.id = lme.lkr_meldung AND lme.typ <> '-1' AND lm.extern <= :include_extern)
|
||||
WHERE lme.xml_daten LIKE '%ICD_Version%'
|
||||
AND SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lme.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) = :year
|
||||
AND (lme.xml_daten LIKE '%<cTNM%' OR lme.xml_daten LIKE '%<pTNM%' OR lme.xml_daten LIKE '%<Menge_Histologie>%' OR lme.xml_daten LIKE '%<Menge_Weitere_Klassifikation>%')
|
||||
AND SUBSTRING_INDEX(SUBSTRING_INDEX(EXTRACTVALUE(lm.xml_daten, '//Diagnosedatum'), ' ', 1), '.', -1) = :year
|
||||
AND (lm.xml_daten LIKE '%<cTNM%' OR lm.xml_daten LIKE '%<pTNM%' OR lm.xml_daten LIKE '%<Menge_Histologie>%' OR lm.xml_daten LIKE '%<Menge_Weitere_Klassifikation>%')
|
||||
AND (lm.xml_daten NOT LIKE '%histologie_zytologie%')
|
||||
) o1
|
||||
LEFT OUTER JOIN (
|
||||
|
||||
|
Reference in New Issue
Block a user