diff --git a/src/main/resources/scenarios.xml b/src/main/resources/scenarios.xml index 449b3ce..02c87af 100644 --- a/src/main/resources/scenarios.xml +++ b/src/main/resources/scenarios.xml @@ -118,11 +118,11 @@ - DiGA-Verzeichnis, Version 1.0.0 (DVZ0) + DiGA-Verzeichnis, Version 2.0.0 (DVZ0)

TODO

- https://xml.diga-ready.de/xsd/dvz0/v1 + https://xml.diga-ready.de/xsd/dvz0/v2 http://www.xoev.de/de/validator/varl/1 /dvz0:DigaVerzeichnis diff --git a/src/main/resources/xml-schema/dvz0/dvz0.xsd b/src/main/resources/xml-schema/dvz0/dvz0.xsd index d813f8e..1ffdd29 100644 --- a/src/main/resources/xml-schema/dvz0/dvz0.xsd +++ b/src/main/resources/xml-schema/dvz0/dvz0.xsd @@ -15,15 +15,15 @@ ~ limitations under the License. --> - Die Stammdaten aus dem DiGA-Verzeichnis. + Ein ganz- oder teilweiser Abzug der Stammdaten aus dem DiGA-Verzeichnis. @@ -31,39 +31,48 @@ - Ein Datensatz für eine DiGA. + Ein Datensatz für eine DiGA, genauer für ein DiGA-Modul, identifiziert durch eine PZN + (Pharmazentralnummer). - + - Die achtstellige Pharmazentralnummer inklusive Prüfziffer. + Die Anwendungsdauer in Form einer positiven Anzahl von Tagen. + + + + Die Beschreibung. + - - - - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . - - - + + + + + + Der URL zur Webseite des Bundesinstituts für Arzneimittel und Medizinprodukte. + + + - Die fünfstellige DiGA-ID. + Die (nicht eindeutige) fünfstellige DiGA-ID. - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . + Zur Syntax regulärer Ausdrücke siehe + https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe + https://www.w3.org/TR/xmlschema11-2/#cces-mce . @@ -72,37 +81,50 @@ - Die achtstellige DiGA-VE-ID. + Die eindeutige, achtstellige DiGA-VE-ID. - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . + Zur Syntax regulärer Ausdrücke siehe + https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe + https://www.w3.org/TR/xmlschema11-2/#cces-mce . - - - - - - - + + + + Eine möglicherweise leere Liste von Freigaben. + + - + - Beschreibung/Zweckbestimmung/Indikation. + + Schränkt die Gültigkeit des gesamten Datensatzes auf den Zeitraum ein, der an + diesem Datum beginnt. + + ACHTUNG: Es darf keine zwei Datensätze mit derselben PZN oder derselben + DiGA-VE-ID und überlappenden Zeitintervallen geben! + + + + + + + Schränkt die Gültigkeit des gesamten Datensatzes auf den Zeitraum ein, der an + diesem Datum endet. + + ACHTUNG: Es darf keine zwei Datensätze mit derselben PZN oder derselben + DiGA-VE-ID und überlappenden Zeitintervallen geben! + - - - - - @@ -117,8 +139,10 @@ - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . + Zur Syntax regulärer Ausdrücke siehe + https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe + https://www.w3.org/TR/xmlschema11-2/#cces-mce . @@ -129,189 +153,130 @@ - + - - Eine nicht-leere Liste von Indikationen. - + Der optionale URL zur Homepage. - + - Eine optionale, aber nicht-leere Liste von Kontraindikationen. + Eine nicht-leere Liste von Indikationen. - + - Die optionale Gruppe der DiGA. + Eine nicht-leere Liste von Kategorien. - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . + Zur Syntax regulärer Ausdrücke siehe + https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe + https://www.w3.org/TR/xmlschema11-2/#cces-mce . - + - + - Der URL zur Homepage für die DiGA. + Eine möglicherweise leere Liste von Kontraindikationen. - + - - Der URL zur Seite des Bundesinstituts für Arzneimittel und Medizinprodukte für - die DiGA. - + Der Name. + + + + + + - + - Eine nicht-leere Liste von Plattformen für die DiGA. + Brutto-Preis zum Regelsteuersatz in Euro (€) mit maximal zwei signifikanten + Nachkommastellen. + + + + + + + + + Eine oder mehrere Plattformen. + - + + + + Der URL zur Landing-Page für den Download der DiGA oder + sogar zum direkten Download der DiGA. + + + + - Eine Plattform für die DiGA. + Der Name der Plattform. - - - - - - Der Name der Plattform. - - - - - - - - - - - - - Der URL zur Landing-Page für den Download der DiGA oder - sogar zum direkten Download der DiGA. - - - - - + + + + + + - - - - Eine Liste von Geschlechtskennzeichen ('M', 'W' oder 'D'), getrennt durch Leerzeichen. - - - - - - - - - - - - - - - - - - Das Mindestalter für die Verwendung der DiGA. - - - - - - - Das Höchstalter für die Verwendung der DiGA. - - - - - - - Angabe einer Anwendungsdauer in Form einer positiven Anzahl von Tagen. - - - - - - - Optionale Angabe einer maximalen kontinuierlichen Anwendungsdauer in Form einer - positiven Anzahl von Tagen. - - - - + - Brutto-Preis zum Regelsteuersatz in Euro (€) mit maximal zwei signifikanten - Nachkommastellen. + Die eindeutige, achtstellige Pharmazentralnummer inklusive Prüfziffer. - - + + + + Zur Syntax regulärer Ausdrücke siehe + https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe + https://www.w3.org/TR/xmlschema11-2/#cces-mce . + + + - Das Datum, an dem die Zulassung der DiGA beginnt. + Das Datum, an dem die Zulassung beginnt. - Das Datum, an dem die Zulassung der DiGA endet. - - - - - - - Schränkt die Gültigkeit des gesamten Datensatzes auf den Zeitraum ein, der an - diesem Datum beginnt. - - ACHTUNG: Es darf keine zwei Datensätze mit derselben PZN oder derselben - DiGA-VE-ID und überlappenden Zeitintervallen geben! - - - - - - - Schränkt die Gültigkeit des gesamten Datensatzes auf den Zeitraum ein, der an - diesem Datum endet. - - ACHTUNG: Es darf keine zwei Datensätze mit derselben PZN oder derselben - DiGA-VE-ID und überlappenden Zeitintervallen geben! + Das Datum, an dem die Zulassung endet. @@ -322,23 +287,57 @@ - + + + + Informationen zu geschlechts- oder altersbedingten Einschränkungen zur Nutzung der DiGA. + Wenn nicht vorhanden, so gibt es keine solchen Einschränkungen. + Wenn mehrere vorhanden, so sind diese mit "oder" zu verknüpfen. + Die darin enthaltenen Termini sind mit "und" zu verknüpfen. + + - + + + + Das Mindestalter für die Freigabe. + + + + + + + Das Höchstalter für die Freigabe. + + + + + + + Ein Geschlechtskennzeichen ('M', 'W' oder 'D') für die Freigabe. + + - - - - Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . - Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . - - - + + + + + + + + + Zur Syntax regulärer Ausdrücke siehe https://www.w3.org/TR/xmlschema11-2/#regexs . + Zu den Multi-character escapes siehe https://www.w3.org/TR/xmlschema11-2/#cces-mce . + + + + + diff --git a/src/main/schematron/dvz0.sch b/src/main/schematron/dvz0.sch index 17acf81..f984d3a 100644 --- a/src/main/schematron/dvz0.sch +++ b/src/main/schematron/dvz0.sch @@ -17,21 +17,9 @@ - - Ein DiGA-Verzeichnis muss mindestens einen Datensatz enthalten (redundant). - - Die ersten fünf Zeichen einer DiGA-VE-ID und die DiGA-ID müssen gleich sein. - - Eine Liste von Geschlechtern darf nicht leer sein. - - - Die maximale kontinuierliche Anwendungsdauer muss ein ganzzahliges Vielfaches der Anwendungsdauer sein. - diff --git a/src/test/resources/dvz0/diga-verzeichnis.json b/src/test/resources/dvz0/diga-verzeichnis.json index a98b004..d7f0ecb 100644 --- a/src/test/resources/dvz0/diga-verzeichnis.json +++ b/src/test/resources/dvz0/diga-verzeichnis.json @@ -1,116 +1,145 @@ { "DigaVerzeichnis": [ { - "Pzn": "12345678", + "Anwendungstage": 7, + "Beschreibung": "Hilft gegen Tinnitus", + "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12345", "DigaId": "12345", "DigaVeId": "12345001", - "Name": "Tinnitus-Rex", - "Beschreibung": "Hilft gegen Tinnitus", + "Freigaben": [ + { + "AlterAb": 18, + "AlterBis": 65 + } + ], + "GültigAb": "2021-01-01", "Hersteller": { - "Ik": "987654321", + "Ik": "987654324", "Name": "Beispiel AG" }, + "Homepage": "https:\/\/tinnitus-rex.de", "Indikationen": [ "X01: Tinnitus", "X02: Gehör" ], + "Kategorien": [ + "01: Beschreibung für Kategorie 01", + "AB: Beschreibung für Kategorie AB" + ], "Kontraindikationen": [ "E66: Adipositas" ], - "GruppenNummer": "XY", - "Homepage": "https:\/\/tinnitus-rex.de", - "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12345", + "Name": "Tinnitus-Rex", + "Packungspreis": "1.19", "Plattformen": [ { - "Name": "Apple App Store", - "Link": "https:\/\/apps.apple.com\/de\/app\/tinnitus-rex-beispiel-ag\/id123456789" + "Link": "https:\/\/apps.apple.com\/de\/app\/tinnitus-rex-beispiel-ag\/id123456789", + "Name": "Apple App Store" }, { - "Name": "Google Play Store", - "Link": "https:\/\/play.google.com\/store\/apps\/details?id=de.beispiel-ag.tinnitus-rex" + "Link": "https:\/\/play.google.com\/store\/apps\/details?id=de.beispiel-ag.tinnitus-rex", + "Name": "Google Play Store" } ], - "AlterAb": 18, - "AlterBis": 65, - "AnwendungsTage": 7, - "Packungspreis": "1.16", + "Pzn": "12345678", "Zulassungsbeginn": "2020-10-01", - "GültigAb": "2020-10-01", - "GültigBis": "2021-12-31" + "Zulassungsende": "2021-09-30" }, { - "Pzn": "12345678", + "Anwendungstage": 7, + "Beschreibung": "Hilft gegen Tinnitus", + "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12345", "DigaId": "12345", "DigaVeId": "12345001", - "Name": "Tinnitus-Rex", - "Beschreibung": "Hilft gegen Tinnitus", + "Freigaben": [ + { + "AlterAb": 18, + "AlterBis": 65 + } + ], + "GültigAb": "2021-01-01", "Hersteller": { - "Ik": "987654321", + "Ik": "987654324", "Name": "Beispiel AG" }, + "Homepage": "https:\/\/tinnitus-rex.de", "Indikationen": [ "X01: Tinnitus", "X02: Gehör" ], + "Kategorien": [ + "01: Beschreibung für Kategorie 01", + "AB: Beschreibung für Kategorie AB" + ], "Kontraindikationen": [ "E66: Adipositas" ], - "Homepage": "https:\/\/tinnitus-rex.de", - "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12345", + "Name": "Tinnitus-Rex", + "Packungspreis": "1.19", "Plattformen": [ { - "Name": "Apple App Store", - "Link": "https:\/\/apps.apple.com\/de\/app\/tinnitus-rex-beispiel-ag\/id123456789" + "Link": "https:\/\/play.google.com\/store\/apps\/details?id=de.beispiel-ag.tinnitus-rex", + "Name": "Google Play Store" }, { - "Name": "Google Play Store", - "Link": "https:\/\/play.google.com\/store\/apps\/details?id=de.beispiel-ag.tinnitus-rex" + "Link": "https:\/\/apps.apple.com\/de\/app\/tinnitus-rex-beispiel-ag\/id123456789", + "Name": "Apple App Store" } ], - "AlterAb": 18, - "AlterBis": 65, - "AnwendungsTage": 7, - "Packungspreis": "1.19", + "Pzn": "12345678", "Zulassungsbeginn": "2020-10-01", - "Zulassungsende": "2021-09-30", - "GültigAb": "2021-01-01" + "Zulassungsende": "2021-09-30" }, { - "Pzn": "12345679", + "Anwendungstage": 14, + "Beschreibung": "Beugt gegen Herzinfarkte vor", + "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12346", "DigaId": "12346", "DigaVeId": "12346001", - "Name": "Hans Hinterwand", - "Beschreibung": "Beugt gegen Herzinfarkte vor", + "Freigaben": [ + { + "AlterAb": 18, + "Geschlecht": "M" + }, + { + "AlterAb": 18, + "Geschlecht": "D" + } + ], + "GültigAb": "2020-10-01", "Hersteller": { - "Ik": "987654322", + "Ik": "987654335", "Name": "Dummy GmbH" }, "Indikationen": [ "X03: Coronare Herzerkrankungen", "X04: Herz" ], - "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12346", + "Kategorien": [ + "01: Beschreibung" + ], + "Kontraindikationen": [], + "Name": "Hans Hinterwand", + "Packungspreis": "12.34", "Plattformen": [ { - "Name": "Apple App Store", - "Link": "https:\/\/apps.apple.com\/de\/app\/hans-hinterwand-dummy-gmbh\/id123456790" + "Link": "https:\/\/apps.apple.com\/de\/app\/hans-hinterwand-dummy-gmbh\/id123456790", + "Name": "Apple App Store" } ], - "Geschlechter": "M D", - "AlterAb": 18, - "AnwendungsTage": 14, - "Packungspreis": "12.34", - "Zulassungsbeginn": "2020-10-01", - "GültigAb": "2020-10-01" + "Pzn": "12345684", + "Zulassungsbeginn": "2020-10-01" }, { - "Pzn": "12345680", + "Anwendungstage": 21, + "Beschreibung": "Vermeiden Sie eine Coronainfektion!", + "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12346", "DigaId": "12347", "DigaVeId": "12347001", - "Name": "SARS-CoV-2 Prophylaxe", - "Beschreibung": "Vermeiden Sie eine Coronainfektion!", + "Freigaben": [], + "GültigAb": "2020-10-01", "Hersteller": { - "Ik": "987654323", + "Ik": "987654346", "Name": "Muster und Co." }, "Indikationen": [ @@ -118,17 +147,20 @@ "X06: COVID-19", "X07: Corona" ], - "Details": "https:\/\/diga.bfarm.de\/de\/verzeichnis\/12346", + "Kategorien": [ + "01: Beschreibung" + ], + "Kontraindikationen": [], + "Name": "SARS-CoV-2 Prophylaxe", + "Packungspreis": "123.45", "Plattformen": [ { - "Name": "Web App", - "Link": "https:\/\/no-covid-thanks.com" + "Link": "https:\/\/no-covid-thanks.com", + "Name": "Web App" } ], - "AnwendungsTage": 21, - "Packungspreis": "123.45", - "Zulassungsbeginn": "2020-10-01", - "GültigAb": "2020-10-01" + "Pzn": "12345690", + "Zulassungsbeginn": "2020-10-01" } ] } \ No newline at end of file diff --git a/src/test/resources/dvz0/diga-verzeichnis.xml b/src/test/resources/dvz0/diga-verzeichnis.xml index 9210276..b458a1c 100644 --- a/src/test/resources/dvz0/diga-verzeichnis.xml +++ b/src/test/resources/dvz0/diga-verzeichnis.xml @@ -14,136 +14,131 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> - + - 12345678 + 7 + Hilft gegen Tinnitus +
https://diga.bfarm.de/de/verzeichnis/12345
12345 12345001 - Tinnitus-Rex - Hilft gegen Tinnitus + + 18 + 65 + + 2021-01-01 987654324 Beispiel AG - - X01: Tinnitus - X02: Gehör - - - E66: Adipositas - - XY: Lorem ipsum dolor sit amet, ... https://tinnitus-rex.de -
https://diga.bfarm.de/de/verzeichnis/12345
- - - Apple App Store - https://apps.apple.com/de/app/tinnitus-rex-beispiel-ag/id123456789 - - - Google Play Store - https://play.google.com/store/apps/details?id=de.beispiel-ag.tinnitus-rex - - - 18 - 65 - 7 - 21 - 1.16 + X01: Tinnitus + X02: Gehör + 01: Beschreibung für Kategorie 01 + AB: Beschreibung für Kategorie AB + E66: Adipositas + Tinnitus-Rex + 1.19 + + https://apps.apple.com/de/app/tinnitus-rex-beispiel-ag/id123456789 + Apple App Store + + + https://play.google.com/store/apps/details?id=de.beispiel-ag.tinnitus-rex + Google Play Store + + 12345678 2020-10-01 - 2020-10-01 - 2021-12-31 + 2021-09-30
- 12345678 + 7 + Hilft gegen Tinnitus +
https://diga.bfarm.de/de/verzeichnis/12345
12345 12345001 - Tinnitus-Rex - Hilft gegen Tinnitus + + 18 + 65 + + 2021-01-01 987654324 Beispiel AG - - X01: Tinnitus - X02: Gehör - - - E66: Adipositas - https://tinnitus-rex.de -
https://diga.bfarm.de/de/verzeichnis/12345
- - - Apple App Store - https://apps.apple.com/de/app/tinnitus-rex-beispiel-ag/id123456789 - - - Google Play Store - https://play.google.com/store/apps/details?id=de.beispiel-ag.tinnitus-rex - - - 18 - 65 - 7 + X01: Tinnitus + X02: Gehör + 01: Beschreibung für Kategorie 01 + AB: Beschreibung für Kategorie AB + E66: Adipositas + Tinnitus-Rex 1.19 + + https://play.google.com/store/apps/details?id=de.beispiel-ag.tinnitus-rex + Google Play Store + + + https://apps.apple.com/de/app/tinnitus-rex-beispiel-ag/id123456789 + Apple App Store + + 12345678 2020-10-01 2021-09-30 - 2021-01-01
- 12345684 + 14 + Beugt gegen Herzinfarkte vor +
https://diga.bfarm.de/de/verzeichnis/12346
12346 12346001 - Hans Hinterwand - Beugt gegen Herzinfarkte vor + + 18 + M + + + 18 + D + + 2020-10-01 987654335 Dummy GmbH - - X03: Coronare Herzerkrankungen - X04: Herz - -
https://diga.bfarm.de/de/verzeichnis/12346
- - - Apple App Store - https://apps.apple.com/de/app/hans-hinterwand-dummy-gmbh/id123456790 - - - M D - 18 - 14 + X03: Coronare Herzerkrankungen + X04: Herz + 01: Beschreibung + Hans Hinterwand 12.34 + + https://apps.apple.com/de/app/hans-hinterwand-dummy-gmbh/id123456790 + Apple App Store + + 12345684 2020-10-01 - 2020-10-01
- 12345690 + 21 + Vermeiden Sie eine Coronainfektion! +
https://diga.bfarm.de/de/verzeichnis/12346
12347 12347001 - SARS-CoV-2 Prophylaxe - Vermeiden Sie eine Coronainfektion! + 2020-10-01 987654346 Muster und Co. - - X05: SARS-CoV-2 - X06: COVID-19 - X07: Corona - -
https://diga.bfarm.de/de/verzeichnis/12346
- - - Web App - https://no-covid-thanks.com - - - 21 + X05: SARS-CoV-2 + X06: COVID-19 + X07: Corona + 01: Beschreibung + SARS-CoV-2 Prophylaxe 123.45 + + https://no-covid-thanks.com + Web App + + 12345690 2020-10-01 - 2020-10-01
+ diff --git a/src/test/resources/dvz0/xml-to-json.xsl b/src/test/resources/dvz0/xml-to-json.xsl index 16bd6df..822f812 100644 --- a/src/test/resources/dvz0/xml-to-json.xsl +++ b/src/test/resources/dvz0/xml-to-json.xsl @@ -1,7 +1,7 @@ @@ -14,12 +14,35 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + @@ -29,16 +52,16 @@ - - - - - - + + + + + +