Zum Ende der Metadaten springen
Zum Anfang der Metadaten

Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

Version 1 Nächste Version anzeigen »

Formelle Beschreibung des Algorithmus
Anlage 5
Version 1.0 vom 05.07.2019
Im Folgenden wird formal der Algorithmus zur Selektion von Austauschmeldungen für ein einzelnes Krebsregister beschrieben:

Mengen und ihre Elemente

Sei R = {ri | ri ist Krebsregister i des RüD Verfahrens} die Menge aller am RüD-Verfahren teilnehmenden Krebsregister.
Sei Si = { s | s ist Meldeamt des Registers ri} die Menge aller Meldeämter im Einzugsgebiet eines einzelnen Registers ri.
Sei Ti = { q | q ist Meldestelle des Registers ri} die Menge aller Meldestellen im Einzugsgebiet eines einzelnen Registers ri, inklusive der Meldeämter (Ti Si) und aller anderen Krebsregister des RüD Verfahrens (Ti R).
Sei Pi = { pij | pij ist der Patient mit der ID j des Registers ri} die Menge aller Patienten eines Register ri.
Sei Mij = { mijk| mijk ist die Meldungen k des Patienten pij} die Menge aller Meldungen zum Patienten pij.
Sei GKZ = { gkz | gkz ist eine Gemeindekennziffer, oder null} die Menge aller Gemeindekennziffern in Deutschland, inklusive einem Wert null für unbekannte/nicht vorliegende GKZ.

Funktionen

Sei fGeeignet: Mij {wahr, falsch}, eine Funktion, die für eine Meldung mijk ϵ Mij bestimmt ob sie für den Datenaustausch geeignet ist (siehe Umsetzungsleitfaden_für_den_Registerübergreifenden_ Datenaustausch.docx -> 4. Für den Austausch geeignete Meldungen).
Sei fMelder: Mij Ti eine Funktion, die für eine Meldung mijk ϵ Mij die Meldestelle bestimmt.
Sei fVonAnderemRegister: Mij {wahr, falsch} eine Funktion, die für eine Meldung mijk ϵ Mij bestimmt, ob sie von einem anderen Register im Rahmen des RÜD empfangen wurde.

  • fVonAnderemRegister (mijk) =

// Wenn Melder ein Register, aber nicht dieses Register

    • WENN fMelder(mijk) ϵ R fMelder(mijk) ≠ ri
      • DANN wahr
      • SONST falsch

Sei fIstMeldamt: Mij {wahr, falsch}, eine Funktion, die für eine Meldung mijk ϵ Mij bestimmt ob es sich um eine Meldeamtsmeldung handelt.
Sei fGKZPatient: Mij GKZ eine Funktion die für eine Meldung mijk ϵ Mij die Gemeindekennziffer des Patienten aus dem Element …>Patient>Patienten_Stammdaten/Kontrollnummern bestimmt Bei mehr als einer Wohnortsangabe wird der zum Zeitpunkt des Meldeanlasses gültige Wohnort gewählt, alternativ der erste angegebene Wohnort, wenn Gültigkeitszeitraum/Vitalstatusdatum nicht angegeben ist..
Sei fGKZPatientNeu: Mij GKZ eine Funktion die für eine Meldung mijk ϵ Mij die Gemeindekennziffer des Patienten aus dem Element …>Meldeamt> Patienten_Stammdaten_Neu/Kontrollnummern_Neu bestimmt5.
Sei fZuständigReg: GKZ R null eine Funktion, die für eine Gemeindekennziffer gkz ϵ GKZ das zuständige Krebsregister bestimmt. Die Funktion liefert null, wenn die übergebene GKZ null ist.
Sei fIstVollstZuWegzug: Mij {wahr, falsch} eine Funktion, die für eine Meldung mijk ϵ Mij bestimmt ob es sich um eine vollständige (d.h. alter und neuer Wohnort sind bekannt) Zu-/Wegzugsmeldung über Einzugsgebietsgrenzen (aber innerhalb Deutschlands) handelt:
// Es handelt sich um eine vollständige Zu-/Wegzugsmeldung, wenn

  • fIstVollstZuWegzug (mijk) =

// Es eine Meldeamtsmeldung ist UND

    • fIstMeldamt(mijk)

// für neuen UND alten Wohnort eine Gemeindekennziffer vorliegt UND

    • fGKZPatient(mijk) ≠ null fZuständigReg(fGKZPatientNeu(mijk)) ≠ null

// verschiedene Register für die beiden GKZ zuständig sind.

    • fZuständigReg(fGKZPatient(mijk)) ≠ fZuständigReg(fGKZPatientNeu(mijk))


Sei fWohnReg: Mij R eine Funktion, die für eine Meldung mijk ϵ Mij das Wohnortregister bestimmt.

  • fWohnReg(mijk) =

// Handelt es sich um eine Meldeamtsmeldung?

    • WENN fIstMeldamt(mijk)

// Wenn ja, handelt es sich um eine Meldeamtsmeldung aus einem anderen Register?

      • DANN WENN fVonAnderemRegister (mijk)

//Wenn ja, ist dieses Register das Wohnortregister

        • DANN fMelder(mijk)

//Sonst ist das eigene Register das Wohnortregister

        • SONST ri

// Sonst ist das für den Wohnort des Patienten zuständige Register das Wohnortregister

      • SONST fZuständigReg(fGKZPatient(mijk))


Sei fBehandlungReg: Mij R eine Funktion, die für eine Meldung mijk ϵ Mij das Behandlungsortregister bestimmt.

  • fBehandlungReg (mijk) =

// Handelt es sich um eine Meldeamtsmeldung?

    • WENN fIstMeldamt(mijk)

// Wenn ja, handelt es sich um eine vollständige Umzugsmeldung innerhalb Deutschlands über Einzugsgebiete hinweg?

      • DANN WENN fIstVollstZuWegzug (mijk)

// Wenn ja, ist es ein Zuzug? (neuer Wohnsitz in diesem Register)

        • DANN WENN fZuständigReg(fGKZPatientNeu(mijk)) = r

// Wenn ja, dann ist das für den alten Wohnort zuständige Register das Behandlungsortregister.

          • DANN fZuständigReg(fGKZPatient(mijk))

// Sonst (Wegzug) ist das für den neuen Wohnort zuständige Register das Behandlungsortregister.

          • SONST fZuständigReg(fGKZPatientNeu(mijk))

// Sonst (andere Meldeamtsmeldung) ist das eigene Register Behandlungsortregister.

        • SONST ri

// Wenn nein, handelt es sich um eine Meldung die von einem anderen Register empfangen wurde?

      • SONST WENN fMelder(mijk) ϵ R \ ri

// Wenn ja, wurde die Meldung im anderen Register erstmals erfasst, ist damit Behandlungsortregister.

        • DANN fMelder(mijk)

// Sonst wurde die Meldung in diesem Register erfasst und ist somit Behandlungsortregister.

        • SONST ri

Sei fAdressen: Pi {A|A ⊆ R} eine Funktion, die für einen Patienten pij die Menge aller Register bestimmt, die in mindestens einer Meldung mijk des Patienten pji Wohn- oder Behandlungsortregister sind, aber ohne das Register ri selbst.

  • fAdressen(pij) = k=1n{ fWohnReg(mijk) fBehandlungReg (mijk) } \ ri

Sei fVersendet: Mij {V|V ⊆ R} eine Funktion, welche die Menge alle Register bestimmt, an die die Meldung mijk ϵ Mij bereits versendet wurde.

Zeitpunktbasierte Selektion von Austauschmeldungen

Startet ein Register ri zu einem bestimmten Zeitpunkt den Datenaustausch, führt es folgende Schritte aus:

  1. Für jede Meldung mijk mit

fGeeignet(mijk) = wahr fBehandlungReg(mijk) = ri fWohnReg(mijk) ≠ ri fWohnortReg(mijk) ∉ fVersendet(mijk)
// Für jede geeignete Meldung bei der dieses Register Behandlungs- aber nicht Wohnortregister ist, und die Meldung noch nicht an das
// Wohnortregister verschickt wurde ...
Selektiere mijk für den Versand an fWohnReg(mijk).
// Versende die Meldung an das Wohnortregister

  1. Für jede Meldung mijk mit:

fGeeignet(mijk) = wahr fWohnReg(mijk) = ri fAdressen(pij) ≠ fVersendet(mijk) fAdressen(pij)
// Für jede geeignete Meldung bei der dieses Register Wohnortregister ist, und andere Register Daten zum Patienten beigetragen haben,
// und die Meldung noch nicht an alle diese Register verschickt wurde ...
Selektiere mijk für den Versand an alle r ϵ fAdressen(pji) \ fVersendet(mijk) \ fBehandlungReg(mijk).
// Schicke die Meldung an alle Register an die die Meldung noch nicht verschickt wurde, außer an das Register von dem die Meldung // eingegangen ist.

Ereignisbasierte Selektion von Austauschmeldungen

Der Unterschied der ereignisbasierten Selektion im Vergleich zur zeitpunktbasierten Selektion besteht darin, dass eine Meldung unmittelbar beim Erreichen des Status „Meldung für Datenaustausch geeignet" übermittelt wird. Ein solches Verfahren ist anzustreben, allerdings nur dann umsetzbar, wenn die Übermittlung der Austauschdaten zwischen zwei Registern auf beiden Seiten vollständig automatisiert abläuft.

  • Keine Stichwörter