Erste Schritte

Was Azmoth prüft, wie eine Prüfung abläuft und wo der verbindliche Vertrag steht.

Azmoth prüft private Arztabrechnungen deterministisch gegen die GOÄ. Jede Aussage der Engine lässt sich auf ihre Rechtsgrundlage zurückführen — plus Regel-ID, wo eine verifizierte Regel gegriffen hat. Es gibt kein Sprachmodell im Prüfpfad und keinen geschätzten Risikobetrag.

Diese Dokumentation richtet sich an zwei Leserinnen: an eine Abrechnungsstelle, die verstehen will, was ein Prüfbericht behauptet, und an eine Entwicklerin bei einem PVS-Hersteller, die Azmoth gegen den eigenen Export integriert.

Azmoth läuft auf Ihrem Server

Die Engine wird im Eigenbetrieb installiert, in Ihrem Netz, ohne Zugriff durch Azmoth. Alle Beispiele auf dieser Seite sprechen deshalb mit Ihrer Installation — der Partner-API auf Port 8443 Ihres Servers, z. B. https://azmoth.praxis.local:8443. Einen öffentlich betriebenen Azmoth-Dienst gibt es derzeit nicht.

Zwei Stufen, vier Zustände

Jede Position verlässt die Prüfung in genau einem von vier Zuständen. Sie gehören zu zwei Stufen: was die Engine zertifiziert, und was sie nicht zertifiziert.

Korrekt · zertifiziert

Verifizierte Regeln greifen, und die Position hält ihnen stand. Die Engine steht für dieses Urteil ein.

Beanstandet · zertifiziert

Eine verifizierte Regel, der Katalog oder die Gebührenarithmetik zeigt: so wie beansprucht nicht abrechenbar. Der Befund nennt die Rechtsgrundlage und zitiert den GOÄ-Wortlaut.

Prüfhinweis · Ihre Entscheidung

Nicht zertifiziert. Die Engine hat einen zitierten GOÄ-Satz und genau eine Sache, die Ihre Abrechnungsfachkraft prüft. Sie entscheidet, nicht die Engine.

Keine Aussage

Nicht zertifiziert. Keine verifizierte Regel spricht zu dieser Position. Das ist kein Freispruch und kein Vorwurf, sondern die Grenze der Regelabdeckung.

In der API sind das zwei Felder auf jeder Position: tier (certified oder hint) und review_state (certified, pruefhinweis oder keine_aussage). Ob eine zertifizierte Position korrekt oder beanstandet ist, sagt bucket (confirmed_fine oder confirmed_wrong). Die Einzelheiten stehen in der Partner-API.

Nicht zertifiziert heißt nicht korrekt — und nicht falsch

Wie viel einer Rechnung zertifiziert werden konnte, steht als coverage_ratio auf jeder Antwort, pro Rechnung zusätzlich in invoice_coverage. Wie viele Regeln die Engine gerade durchsetzt, steht in rule_coverage_detail. Lesen Sie beides zur Laufzeit; es ändert sich mit jedem Regel-Release und ist kein Vertragsbestandteil.

Ablauf einer Prüfung

Schlüssel erhalten

Einen API-Schlüssel erzeugen Sie selbst in der Oberfläche: Kontomenü oben rechts → API-Schlüssel. Er wird genau einmal angezeigt — gespeichert wird nur sein SHA-256-Hash. Siehe Einen Schlüssel erhalten.

Lieferung senden

Eine PADnext-Datei per multipart/form-data oder als Rohtext an /api/v1/audit/single, viele als ZIP an /api/v1/audit/bulk. Optional mit dem PKV-Tarif des Patienten (tariff_override). Der Schlüssel bestimmt den Mandanten; es gibt kein Feld, mit dem ein Aufrufer eine fremde Organisation benennen könnte.

Bericht auswerten

Die Antwort enthält jede Position mit Zustand, Begründung und Beweis, jeden Befund mit gesetzlicher Grundlage und GOÄ-Wortlaut — plus Regel-ID, wo eine verifizierte Regel gegriffen hat —, die Beträge nach Stufe und den receipt_hash, mit dem sich der Bericht später nachrechnen lässt.

Eine Lieferung prüfen

Synchrone Prüfung einer PADnext-Datei
export AZMOTH_API=https://azmoth.praxis.local:8443   # Ihre Installation

curl -X POST "$AZMOTH_API/api/v1/audit/single" \
  -H "X-API-Key: $AZMOTH_API_KEY" \
  -F "file=@lieferung.xml"
Auszug aus der Antwort (mitgelieferte Beispiellieferung)
{
  "claimed_total_eur":   "251.54",
  "confirmed_fine_eur":    "0.00",   // zertifiziert korrekt
  "confirmed_wrong_eur":  "62.01",   // zertifiziert beanstandet
  "unconfirmed_eur":     "189.53",   // nicht zertifiziert: Prüfhinweise und Keine Aussage
  "coverage_ratio": 0.24652142800349844,
  "receipt_hash": "…64 Hex-Zeichen…",
  "positions": [ /* je Position: tier, review_state, bucket, Begründung, Beweis */ ],
  "findings":  [ /* je Befund: Rechtsgrundlage, Wortlaut, tier */ ]
}

Eurobeträge sind Dezimal-Strings

Niemals JSON-Zahlen. Wer sie in ein IEEE-Double liest, verliert Cent — und Cent sind genau das, worüber eine Rechnungsprüfung streitet.

Korrigierte PADnext-Datei

Korrekturen, die Ihre Abrechnungsfachkraft in der Oberfläche an einer geprüften Lieferung vornimmt (Faktor, Betrag, Ziffer, Position löschen oder hinzufügen), lassen sich als korrigierte PADnext-Datei exportieren, die Ihr PVS wieder einlesen kann. Das geschieht in der Oberfläche, nicht über die Partner-API: ein API-Schlüssel kann weder Korrekturen schreiben noch eine korrigierte Datei erzeugen.

Wo die korrigierte Datei entsteht

  • Die korrigierte Datei wird auf Ihrem Rechner erzeugt; das Original verlässt Ihre Praxis nicht.
  • Nur die Korrekturen und die daraus berechneten Beträge werden serverseitig verarbeitet — dazu, ohne Speicherung, die anonymisierte Fassung der Lieferung (dieselbe, die schon bei der Prüfung übertragen wurde) und die anonymisierte Fassung der korrigierten Datei für die Schemaprüfung. Gespeichert werden die Korrekturen mit ihrem vollständigen Verlauf und ein Fingerabdruck (SHA-256) der anonymisierten Lieferung, bei Stapeln aus der Partner-API zusätzlich ein Fingerabdruck ihres geprüften Inhalts.
  • Die Prüfung erfolgt gegen das mitgelieferte ADL-2.12-Subset; gegen die amtliche XSD nur, wenn eine lizenzierte Kopie vorliegt. Unter dem Subset sind Abweichungen Hinweise, und die Datei wird trotzdem heruntergeladen; nur unter der lizenzierten amtlichen XSD verhindert eine Abweichung den Download.
  • @aisendbetrag wird von der Schemaprüfung nicht erfasst, nur von einer Nachrechnung im Browser — Einzelheiten unten.

Ihre Rolle beim Export

Hochgeladen und geprüft wurde nur die anonymisierte Fassung Ihrer Datei. Die Originaldatei hält Ihr Browser nur im Speicher des Tabs, in dem Sie sie hochgeladen haben, um daraus die korrigierte Fassung zu erstellen; gesendet wird sie nie. Im selben Tab genügt deshalb ein Klick auf „Korrigierte PADnext exportieren“. Nach einem Neuladen ist die Originaldatei aus dem Speicher verschwunden: Dann werden Sie aufgefordert, sie aus Ihrer PVS erneut auszuwählen — genau die Datei, die Sie für diesen Stapel hochgeladen haben; der erwartete Dateiname wird angezeigt. Sie wird nur auf Ihrem Rechner gelesen und verlässt ihn nicht.

Danach prüft der Browser, ob es wirklich dieselbe Datei ist: er anonymisiert sie erneut und vergleicht ihren Fingerabdruck mit dem, der beim Hochladen festgehalten wurde. Eine andere Datei wird abgewiesen („Falsche Originaldatei ausgewählt“), bevor irgendetwas geschrieben wird. Dann setzt er die berechneten Korrekturen in das vollständige Original ein — alle übrigen Angaben, Patienten- und Praxisdaten eingeschlossen, bleiben unverändert — und bietet das Ergebnis als <Dateiname>.korrigiert.<Endung> zum Speichern an. Wurde der Gebührenkatalog seit der Prüfung geändert, verlangt der Export zuerst eine neue Prüfung des Stapels.

@aisendbetrag — die Rechnungssumme

Die Rechnungssumme <rechnung @aisendbetrag> entfernt die Anonymisierung; die Engine sieht sie deshalb nie, und die Schemaprüfung der korrigierten Datei auch nicht. Sie wird ausschließlich im Browser behandelt, mit ganzzahliger Cent-Arithmetik:

  • Hat das Original eine Rechnungssumme, schreibt der Browser ursprünglicher Wert + Änderung der korrigierten Positionen. Wich die Summe schon vor der Korrektur von der Summe der Positionen ab, bleibt diese Abweichung erhalten; sie wird nicht stillschweigend berichtigt. Korrigiert wird nur, was Sie korrigiert haben.
  • Hat das Original keine Rechnungssumme, wird keine angelegt.
  • Lässt sich die Änderung nicht bestimmen (eine korrigierte Position nennt im Original keinen Betrag) oder ist die vorhandene Summe nicht lesbar, bleibt die Summe unverändert, und der Export zeigt einen Hinweis; die Datei wird trotzdem heruntergeladen. Prüfen Sie die Summe dann in Ihrer PVS.
  • Vor der Schemaprüfung rechnet der Browser unabhängig nach, aus beiden Dateien neu gelesen. Steht in der korrigierten Datei eine andere Summe als ursprünglicher Wert + Änderung, wurde eine Summe neu angelegt oder trotz unbestimmbarer Änderung verändert, wird der Export blockiert („Rechnungssumme stimmt nicht“) und keine Datei heruntergeladen.

Ersetzte Ziffer und bekannte Grenzen

Ersetzte Ziffer: Die Zeile erhält im Export den Leistungstext der neuen Ziffer aus demselben Katalog, gegen den geprüft wurde, damit Ziffer und Text dasselbe sagen. Er wird nur geschrieben, wo die Zeile schon einen Leistungstext hat. Kann für eine Zeile kein neuer Text gesetzt werden, bleibt der alte stehen und der Export weist auf genau diese Zeile hin: den Leistungstext in der PVS an die neue Ziffer anpassen, bevor die Rechnung versendet wird.

Bekannte Grenzen:

  • Stapel, für die kein Fingerabdruck festgehalten wurde (Uploads vor dessen Einführung, Partner-API-Stapel, die vor dem Fingerabdruck ihres Inhalts verarbeitet wurden), lassen sich erst exportieren, nachdem die Lieferung erneut über die Oberfläche hochgeladen wurde.
  • Eine Korrektur, die in einem anderen Browser-Tab gespeichert wird, nachdem dieser Tab den Korrekturplan abgerufen hat, ist in diesem Export nicht enthalten. Ein erneuter Export nimmt sie auf.

Weiter

Die interaktive Referenz (Swagger UI) liefert Ihre eigene Installation unter https://<ihr-server>:8443/docs, das Schema unter /openapi.json. Beide beschreiben genau die Fassung, die bei Ihnen läuft.

Auf dieser Seite