Aller au contenu

Nomos CCAM -- Medical Procedure Reference

The nomos_ccam app provides read-only access to the French CCAM (Classification Commune des Actes Medicaux) database -- 83K medical procedures, pricing, business rules, and classification hierarchy across 72 tables.

Architecture

  • Source data: DBF files from the official CCAM distribution, stored at data/reference/ccam_dbf/ (gitignored, ~761MB)
  • Database: Unmanaged PostgreSQL tables -- Django reads but doesn't manage the schema
  • Import: python manage.py ccam_import --source-dir data/reference/ccam_dbf/ loads DBF files into PostgreSQL
  • Access: Django views + HTMX for web UI, no REST API

Models

Core hierarchy (3 levels)

Model Table Records Description
CcamActe r_acte 83,025 Medical procedures (PK: cod_acte + dt_modif)
CcamActeIvite r_acte_ivite 137,623 Activity contexts per procedure
CcamActeIvitePhase r_acte_ivite_phase 137,884 Pricing units per activity
CcamMenu r_menu 1,725 Hierarchical classification tree

Documentation

Model Table Records Description
CcamNoteActe r_note_acte 40,930 Procedure notes
CcamGlossaire r_glossaire 9,709 Medical glossary terms

Reference tables

CcamActivite, CcamPhase, CcamDomaine, CcamDent, CcamRegroupement

Tracking

CcamImportLog -- managed model tracking DBF import runs (status, row counts, errors)

Views & URLs

All under /nomos/ccam/:

URL View Description
/ CcamDashboardView Record counts overview
/actes/ ProcedureListView Paginated list with search
/actes/<cod_acte>/ ProcedureDetailView Procedure detail with activities and notes
/menu/ MenuBrowseView Hierarchical classification tree
/glossaire/ GlossaryListView Glossary term search
/recherche/ SearchView Search interface
/htmx/search/ HtmxSearchView Live search results (HTMX partial)
/htmx/menu/<cod_menu>/ HtmxMenuChildrenView Tree node expansion (HTMX partial)

CcamSearchService provides PostgreSQL-powered search:

  • search_procedures() -- full-text search using french_unaccent tsquery
  • search_by_code() -- trigram similarity for code matching
  • search_glossary() -- glossary term search
  • get_procedure_details() -- latest version of a procedure
  • get_procedure_activities() / get_procedure_notes() -- related data
  • docs/CCAM_DATABASE_STRUCTURE.md -- complete 72-table schema documentation
  • docs/CCAM_QUERY_EXAMPLES.md -- practical SQL queries for exploration