Skip to content

BAG-Export: Geisterpackungen ohne GTIN führen zu falschen Publikumspreisen #445

Description

@zdavatz

Im SL-FHIR-Export des BAG erscheinen einzelne Packungen zweimal unter derselben Swissmedic-Nummer: einmal richtig mit GTIN und Packungspreis, einmal ohne GTIN mit der Beschreibung „1 Stk" und dem Preis pro Stück.

Beide werden über package_by_ikskey auf dieselbe ODDB-Packung abgebildet, beide Preise geschrieben — und stehen bleibt, was zuletzt kam.

Beispiel Enflonsia (Zulassung 70145)

GTIN Beschreibung Publikumspreis Exfactory
korrekt 7680701450026 Fertspr 10 Stk 3545.85 3260.00
Geist keine Fertspr 1 Stk 354.60 0.00

Die Einzelpackung existiert im selben Bündel bereits korrekt als 70145001 (GTIN 7680701450019, 369.35). Der Geistereintrag trägt also die Nummer der 10er-Packung.

Dieselbe Konstellation bei 62502002 (Menveo, 5er) und 70403002 (Comirnaty LP.8.1, 10er).

Auswirkung, gemessen am 25.08.2026

Vollständiger Abgleich aller gespeicherten Publikumspreise gegen die GTIN-zugeordneten Preise des Exports:

geprueft            10 013
stimmt              10 010
weicht ab                2
kein Preis bei uns       1
GTIN Produkt BAG ch.oddb.org Faktor
7680701450026 Enflonsia 105 mg/0.7 mL 3545.85 354.60 10
7680625020022 Menveo Pulver und Lösung 188.75 37.75 5

Encepur, FSME Immun Junior und Comirnaty stehen zufällig richtig — welcher Preis bleibt, entscheidet die Reihenfolge im Bündel.

Was gemacht wurde

BsvFhirPlugin#ghost_pack? verwirft eine Packung ohne GTIN, wenn zur selben Zulassungsnummer eine mit GTIN vorliegt.

Ein pauschaler Filter wäre falsch gewesen: von 10255 Packungen im Export haben 55 keine GTIN, davon sind 49 die einzigen unter ihrer Nummer (Candesartan CPS und andere) und völlig legitim. Erst der Zwilling macht den Geist aus.

Regressionstests in test/test_plugin/bsv_fhir.rb, Klasse TestBsvFhirPluginGhostPack.

Offen

  • Der Filter greift erst beim nächsten Import; Enflonsia und Menveo stehen bis dahin falsch.
  • Beim BAG gemeldet (franziska.sendfeld@bag.admin.ch, 25.08.2026): sind die Einträge als Stückpreis beabsichtigt, oder Dubletten? Falls beabsichtigt, wäre eine eigene Kennzeichnung nötig, statt auf das Fehlen der GTIN schliessen zu müssen.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions