Versionen im Vergleich

Schlüssel

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

Version 1.0 vom 05.07.2019Im Folgenden wird 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:

  • fIstVollstZuWegzug (mijk) = // Es handelt sich um eine vollständige Zu-/Wegzugsmeldung, wenn

    • f

    IstVollstZuWegzug
    • IstMeldamt(mijk)

    =
    • // Es eine Meldeamtsmeldung ist

...

  • fIstMeldamt(mijk)

...

    • UND

...

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

...

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

    • fZuständigReg(fGKZPatient(mijk)) ≠ fZuständigReg(fGKZPatientNeu(mijk)) // verschiedene Register für die beiden GKZ zuständig sind.


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

  • fWohnReg(mijk) =

    • WENN fIstMeldamt(mijk) // Handelt es sich um eine Meldeamtsmeldung?

      • DANN WENN f

      IstMeldamt
      • VonAnderemRegister (mijk)

      • // Wenn ja, handelt es sich um eine Meldeamtsmeldung aus einem

...

  • DANN WENN fVonAnderemRegister (mijk)

...

      • anderen Register?

        • DANN fMelder(mijk) //

...

        • Wenn ja, ist dieses Register das Wohnortregister

        • SONST ri //Sonst ist das

...

        • eigene Register das Wohnortregister

      • SONST fZuständigReg(fGKZPatient(mijk)) // Sonst ist das für den Wohnort des Patienten zuständige Register das Wohnortregister


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

  • fBehandlungReg (mijk) =

    • WENN fIstMeldamt(mijk) // Handelt es sich um eine Meldeamtsmeldung?

      • DANN WENN f

      IstMeldamt
      • IstVollstZuWegzug (mijk)

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

        • DANN WENN f

        IstVollstZuWegzug
        • ZuständigReg(fGKZPatientNeu(mijk))

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

          • DANN

          WENN
          • fZuständigReg(f

          GKZPatientNeu
          • GKZPatient(mijk))

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

          • DANN SONST fZuständigReg(fGKZPatientGKZPatientNeu(mijk)) // Sonst (Wegzug) ist das für den neuen Wohnort zuständige Register das Behandlungsortregister.

        • SONST

          fZuständigReg(fGKZPatientNeu(mijk))

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

      • SONST WENN fMelder(mijk) ϵ R \ ri

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

        • DANN fMelder(mijk)

        ϵ R \ ri
        • // Wenn ja, wurde die Meldung im anderen Register erstmals erfasst, ist damit Behandlungsortregister.

        • DANN fMelder(mijk)

        • SONST ri // 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

2. 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

...