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) |
Search¶
CcamSearchService provides PostgreSQL-powered search:
search_procedures()-- full-text search usingfrench_unaccenttsquerysearch_by_code()-- trigram similarity for code matchingsearch_glossary()-- glossary term searchget_procedure_details()-- latest version of a procedureget_procedure_activities()/get_procedure_notes()-- related data
Related reference docs¶
docs/CCAM_DATABASE_STRUCTURE.md-- complete 72-table schema documentationdocs/CCAM_QUERY_EXAMPLES.md-- practical SQL queries for exploration