Une application qui contrôle automatiquement chaque facture dentaire selon les tarifs officiels
Notacheckers lit une facture dentaire néerlandaise depuis un PDF ou une photo, transforme les lignes en données structurées et vérifie chacune selon 772 tarifs NZa officiels de 2026. Les dépassements possibles apparaissent immédiatement. J'ai développé seul l'application serverless complète en quatre semaines et demie environ.

Le défi.
Les tarifs dentaires officiels sont publics, mais répartis entre plusieurs documents et une facture affiche des codes comme C11, M03 ou V30 sans explication. L'objectif était un outil gratuit où le patient charge un PDF ou une photo et comprend rapidement si les montants semblent corrects.
Le système devait convertir un document non structuré en lignes fiables, rapprocher des codes imparfaitement lus d'un catalogue officiel et appliquer des règles incluant tarifs variables et combinaisons obligatoires. Le tout devait rester anonyme et économique malgré un trafic public imprévisible.
L'approche.
Le flux conserve un humain dans la boucle : chargement, extraction, confirmation et résultat. L'IA propose les données, mais l'utilisateur les confirme ou corrige avant toute validation. Ensuite seulement, le moteur déterministe compare chaque ligne au catalogue.
La vie privée fait partie du modèle : contrôles anonymes, expiration après 30 jours et suppression planifiée. Un journal d'événements immuable conserve les transitions. Le développement guidé par les tests comprend 249 cas couvrant extraction, règles, paiement, rétention et sécurité.
Architecture et choix.
- ·
SvelteKit sur Cloudflare Workers. L'outil public tourne à l'edge sans parc de serveurs ni coût d'infrastructure au repos.
- ·
Neon Postgres et Drizzle. Une machine d'état relationnelle suit chargement, vérification, validation et échec ; Hyperdrive gère les connexions depuis l'edge.
- ·
IA visuelle avec schéma JSON strict. Les mises en page varient fortement. Montants en centimes entiers, codes en majuscules et champs explicitement nuls alimentent mieux le moteur déterministe.
- ·
Stripe et PDF compatibles Workers. La vérification des webhooks utilise Web Crypto et le rapport PDF est généré directement, sans bibliothèques réservées à Node.
Les problèmes les plus difficiles, résolus.
- 1
Séparer code et quantité. L'extraction renvoyait parfois M03X6 alors que six était une quantité. Une correspondance par plus longue séquence dans le catalogue restaure séparément le code et le nombre.
- 2
Refuser la fausse précision. Quarante-neuf codes orthodontiques possèdent plusieurs tarifs valides selon le contexte. L'outil demande ce contexte au lieu de deviner et créer une fausse alerte.
- 3
Vie privée dès la conception. Aucun compte, nom, adresse ou IP n'est attaché au contrôle. Les enregistrements expirent après 30 jours et le rate limiting limite les abus sans conserver l'IP dans la facture.
Le résultat.
Notacheckers fonctionne en production avec 772 codes officiels dans trois catégories, 249 tests et 651 assertions. Chaque ligne indique son statut et l'écart possible ; un rapport PDF détaillé peut être débloqué.
Cette architecture s'applique à d'autres documents : factures d'achat contre prix contractuels, demandes contre conditions, déclarations ou conformité. L'IA extrait ; un moteur déterministe applique les règles de l'organisation.
Sous le capot.
Questions fréquentes.
Votre question n'y figure pas ? Écrivez-moi directement.
Cette approche convient-elle à nos factures ou documents ? +
Oui. Le schéma est générique : l'IA extrait des champs structurés et un moteur les compare à vos données ou règles. Le type de document change, pas l'architecture.
Combien de temps a pris le développement ? +
Environ quatre semaines et demie par une seule personne, y compris chargement, extraction, contrôle utilisateur, validation, résultat, paiement, rapport, e-mail et logique de confidentialité, avec 249 tests.
Combien coûterait un système similaire ? +
Une première version ciblée démarre généralement dans les quelques milliers d'euros. Types de documents, complexité des règles, paiements, rapports et intégrations déterminent le prix fixe.
L'extraction IA est-elle assez fiable ? +
L'application ne fait pas aveuglément confiance au modèle : un schéma strict limite la sortie, l'utilisateur confirme les données et les codes inconnus sont signalés au lieu d'être forcés.
Comment la vie privée est-elle protégée ? +
Aucun compte, nom, adresse ou IP n'entre dans le contrôle. Les données anonymes expirent après 30 jours et l'e-mail n'est conservé que si l'utilisateur demande le rapport.