Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

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:

...

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.

...

  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.

Anker
_Toc2258390
_Toc2258390
Ereignisbasierte Selektion von Austauschmeldungen

...