ICD-10 Browser Policy
ICD-10 Browser Policy
Purpose
Define the backend contract for the ICD-10 2019 browser built on
mas_icd10_2019_2.
The administration console exposes the browser under
/admin/panels/icd10-browser, backed by admin JSON routes under
/admin/api/icd10/2019-2/*.
Policy
- The ICD browser reads hierarchy data from
mas_icd10_2019_2. - The browser must use lazy hierarchy expansion rather than loading the full tree in one response.
- Browser reads expose:
- one node's details
- the direct children of a requested node
- allowed vocabulary options for local policy fields
- a JSON export of curated code-policy rows
- an XLSX export of editable code-policy rows with COD manual override status
- Policy edits must update only local policy fields and must not rewrite ICD hierarchy structure fields loaded from source.
- Policy-edit responses must return the updated node payload so the browser can refresh in place.
- In the admin browser UI, turning on
is_coding_selectablemust prefillsex_selectable=bothandage_group_selectable=allbefore save. Admins may still override those defaults before submitting. - The policy export must include only
three_characteranddetailed_coderows where at least one ofis_coding_selectable,sex_selectable, orage_group_selectableis set. - The policy export payload must expose:
codetitlesemantic_level- lineage fields needed to place the code in hierarchy
is_coding_selectablesex_selectableage_group_selectable
- The XLSX policy export must expose active
three_characteranddetailed_coderows with coding allowed status, age coding policy, sex coding policy, policy status, restriction note, and whether the ICD code has any COD bucket manual override mappings. - The policy import must be overwrite-style:
- imported code rows are updated from the file
- all other editable ICD code rows are reset to
is_coding_selectable=false - all other editable ICD code rows are reset to
sex_selectable=NULL - all other editable ICD code rows are reset to
age_group_selectable=NULL
- The policy import response must include:
total_itemsupdated_itemsreset_itemsfailed_codes, with each failed code and the reason it was not imported
- Browser status indicators must distinguish inherited selectability:
- green: the row itself is selectable, or all direct three-character children in a structural block are selectable
- yellow: a three-character row is not selectable itself but has at least one selectable detailed child; structural blocks containing such rows must also remain navigable under the active filter
- red: neither the row nor any relevant child row is selectable
- The admin ICD browser page must show a read-only list of reporting-only legacy ICD normalization aliases used by COD bucket reporting so operators can see how selected historical finalized ICD values are bucketed against the ICD-10 2019 master.
Access Policy
data_managerandadminmay browse the ICD hierarchy.- Only
adminmay edit ICD local policy fields. data_managerandadminmay use the API export endpoint.- Only
adminmay use the admin-panel export endpoint.
Local Policy Field Semantics
Current browser-editable policy fields are:
is_coding_selectablesex_selectableage_group_selectablerestriction_note
Applicability rule:
chapterandblockrows are structural only and must not allow local policy editsthree_characteranddetailed_coderows may carry local policy fields
Current vocabulary constraints are:
sex_selectable:both,female,maleage_group_selectable:all,neonate,infant,child,adult
NULL remains valid for optional fields where no curation has been applied.
Public Help Browser
The Help centre exposes the same hierarchy-pane interaction at
/help/icd10-codes. It reads the active ICD-10 rows and WHO_2022_VA_2026
mapping state as a public, anonymous, read-only reference.
- The page, its hierarchy data routes, search, and CSV accept GET requests and are limited to 60 requests per minute.
- It lazily loads Chapters, Blocks, 3-Character Codes, and Detailed Codes using public read-only routes. Blocks load as complete children; the hierarchy is not paginated.
- Search results open the selected code's full hierarchy path.
- Filters cover coding selectability, sex, age group, policy review, and VA
mapping origin. The
digitvaorigin value remains a supported inbound alias. - The selected-node details show coding selectability, sex and age limits, policy review, restriction note, VA cause, and the plain-language origin badge and reason.
- Public routes return curated fields only. They do not proxy admin APIs and do not expose policy edit/import/export controls, reporting aliases, raw mapping notes, or mutation endpoints.
- The CSV includes the displayed catalogue and public mapping fields, omits internal mapping notes, and escapes spreadsheet formula values.