2008-12-13

Lustige Prüfziffer

Ich hatte kürzlich mal mit der LANR (lebenslange Arztnummer, die heißt so, weil sie sich öfters mal ändern kann und man auch mehrere zugeteilt bekommen kann - unklar ist, ob sie einem nach 15 Jahren guter Führung erlassen wird) zu tun, und die Definition, mit der man da die Prüfziffer ermittelt, schlägt alles.

Kurz zum Aufbau der Nummer: Die ersten sechs Stellen werden zugeteilt, die siebte ist die Prüfziffer, die beiden letzten codieren die Fachrichtung (hat jemand den Jungs schonmal etwas über Inband-Signalling gesagt?)

Die ersten Ziffern seien a,b,c,d,e,f. Dann berechnet sich die Prüfziffer zu

p = (6*(a+c+e)+b+d+f)%10

(die offizielle Beschreibung ist wesentlich umständlicher und fehlerträchtiger, siehe
muss man unbedingt Word für offizielle Dokumente nehmen)

Was einem sofort auffällt: Die Gewichte unterscheiden sich um 5. Bei Vertauschung zweier benachbarter Ziffern, z.B. a und b ändert sich der Ausdruck um 5*(b-a), d.h. wenn (wie in 40% der anzunehmenden Fälle (bei weiteren 50% ist die Differenz ungerade, in 10% sind die Ziffern gleich)) die Differenz gerade ist, wird der Fehler nicht bemerkt. Die Idee ist offenbar vom Identcode der Post inspieriert. Für menschliche Eingaben wesentlich besser wäre das allgemein übliche Verfahren (z.B. von EAN, UPC oder neuer ISBN), bei welchem die abwechselnden Faktoren nicht 6 und 1, sondern 7 und 9 (oder umgekehrt) sind (auch hier ist die Beschreibung wieder umständlicher).

Ich erwarte ja gar nicht, dass sich jemand um so etwas Gedanken macht und dann mit Diedergruppen nach Verhoeff oder ähnlich schweren Geschützen ankommt, aber Steinzeitkram wie wenigstens Luhn (hier sind die Gewichte abwechselnd 1 und 2 (und die Produkte, die >10 sind, werden modulo 9 ausgewertet, erst die Gesamtsumme modulo 10), d.h. Nachbarvertauschungen werden in den 98% der Fälle erkannt, dass die Differenz nicht gerade 9 ist) hätte ein wenig guten Willen erkennen lassen. Stattdessen muss man wiedermal ein Sondersüppchen kochen, wie schon in "ICD 10 German modification".

PS: Wer in Wikipedia nachschlagen will (falls die Stasi das nicht gerade wieder sperren lassen hat): Man lese auch bei Prüfsumme nach, bei Prüfziffer steht nicht alles.

Kommentare:

Anonym hat gesagt…

Prächtig!!! Muss mich auch laufend mit "Kassenscheiß" rumplagen. Eine Ergänzung meinerseits: Das erwähnte Dokument liegt jetzt als PDF unter folgendem Link.
http://www.gkv-datenaustausch.de/upload/20110131_TA1_15.pdf

Ralf Muschall hat gesagt…

Ich bitte künftige Kommentatoren, sich bei der Verwendung von Schimpfworten zurückzuhalten. Das darf nur Tim Minchin, wenn er den Papst besingt.

Anmerkung: Die Beschreibung der Prüfziffer ist auf der letzten Seite des verlinkten PDFs.

Anonym hat gesagt…

Sorry, werde mich zukünfig zurückhalten.
liebe Grüße
Andreas
PS: Die umgeschriebene, vereinfachte Berechnung hat mir sehr geholfen. Danke dafür.

Ralf Muschall hat gesagt…

Der Hintergrund der komplizierten Originalformel ist der, dass man in sie einfach die Prüfziffer mit einbezieht und die Summe auf Null testet. Da mehr Leute (jede Software, die LANRs annimmt) den Test als die Generierung (nur bei der KV) implementieren müssen, gibt man das so an (und oft ist die Generierung auch so implementiert, weil die Vereinfachung nur ein paar Nanosekunden Rechenzeit spart, aber man Fehler beim Umstellen der Formel vermeidet).

Ralf Muschall hat gesagt…

Gerade gefunden: Das IK für Kassen (http://www.gkv-datenaustausch.de/upload/200904_Gemeinsames_Rundschreiben_IK.pdf) hat auch eine Prüfziffer, und dort nehmen sie Luhn (Seite 8, siehe auch http://de.wikipedia.org/wiki/Institutionskennzeichen). Geht doch, wenn man will. Alldings ist das IK ein paar Jahre älter, damals gab es noch Leute, die wissen, was sie tun. Inzwischen hatte ich auch schon Anrufe von Ärzten, die bei manuell eingegebenen LANRs von Überweisern Zahlendreher von benachbarten Ziffern (beide gerade oder ungerade) hatten und das dann am Quartalsende bei der Abrechnung merkten (das XPM testet offenbar auf Enthaltensein der LANR in einer mitgelieferten Liste, nicht nur die Prüfziffer).

Anonym hat gesagt…

Nochmal ein dickes Dankeschön, weil das letztgenannte Dokument hab ich schon "eine Ewigkeit" gesucht und St. Augustin war auch nicht wirklich hilfreich bei meiner Suche nach mehr Hintergrundwissen zur IK.
lg
Andreas