What the repository is

findingmodels is the content repository of the Open Imaging Data Model (OIDM). It holds finding model definitions and nothing that executes them. The format those definitions obey lives in a different repository, findingmodel, and is described in the format document.

Read at commit 4475ac1 on main, dated 2026-04-28, the repository contains 2,382 definitions.

PathContentsGenerated
defs/2,382 *.fm.json definitions, one finding eachno, this is the source
text/2,382 markdown renders, one per definitionyes
index.mda single table of the whole corpus, roughly 683 KByes
ids.jsonthe identifier registry, 2,382 finding and 5,709 attribute identifiersyes
schema/the prose schema mirror and a JSON schema fileno
lists/the MGB exam-oriented sub-taxonomiesno
prompts/authoring prompt fragments consumed by the agent skillsno
scripts/the validator and the authoring helper scriptsno

Where the content came from

Every identifier carries a three-or-four-letter organization segment recording where the definition entered the corpus. Counting the registry gives the breakdown.1

CodeOrganizationDefinitions
GMTSRadiology Gamuts Ontology1,933
OIDMOpen Imaging Data Model256
CDEACR/RSNA Common Data Elements Project115
MGBMassGeneral Brigham47
MSFTMicrosoft31

Four in five definitions are Gamuts-derived. That fact shapes everything about the corpus’s current state: the Radiology Gamuts Ontology is a differential-diagnosis resource rather than a finding vocabulary, so its imported entries carry patterns that do not sit comfortably as findings. The content direction roadmap records the stated intent that the MGB exam-oriented sub-taxonomies replace many of them.

Two further organizations, RSNA and ACR, are registered in the package’s seeded organization list but have contributed no definitions under their own codes.2 Individual contributors appear on definitions as Person records with a GitHub username, an email address, and an organization code; organizations appear as Organization records with a name, a code, and a URL.

Conventions

The repository’s own guidance file states the rules that govern changes.3

  • Three artifacts are auto-generated and must never be hand-edited: text/*.md, index.md, and ids.json. They are rebuilt from defs/ by uv run scripts/validator.py.
  • Every finding identifier must be unique, and every attribute identifier must be unique across all files, not merely within one. The validator fails the commit if either check fails.
  • Definition files live in defs/, end in .fm.json, and take a snake_case name derived from the finding name.
  • The validator also reformats the JSON in place, so committed definitions share one layout.
  • A pre-commit hook runs the validator with --with-git-adds on every commit, so the generated files stay in step with the source without a separate step.
  • Work reaches main by pull request.
  • Definitions link to standard ontologies through index_codes, and the three named as common are SNOMED CT, RadLex, and the Radiology Gamuts Ontology.

A separate open plan, the definition cleanup plan, catalogs the conventions the existing corpus does not yet meet: title-cased names on 123 mostly CDE and MGB models, 124 models missing presence as their first attribute, 71 Gamuts models whose names embed a “with” clause, and 84 that embed a population qualifier. It is marked draft and for review.4 Its handling is described in the authoring workflow.

How to browse

Three routes exist, at different levels of convenience.

  • The repository. Read index.md for the whole corpus as one table, then follow its links into text/ for a rendered definition or defs/ for the JSON.
  • The catalog site. finding-models-site is a static Astro site that pulls the content repository in as a git submodule and renders /models/ and /models/[slug] pages at build time. It is published at openimagingdata.github.io/finding-models-site and profiled in applications.
  • Programmatic search. The findingmodel package ships a Model Context Protocol server, findingmodel-mcp, exposing three tools to an agent: hybrid search over the index, retrieval of one model by identifier, name, or synonym, and a count of models, people, and organizations.5 The same index is reachable from the findingmodel command-line interface.

Content in flight

Six branches carry unmerged content work. None has an open pull request, and none is on main. The figures below are branch-to-main differences as of the dates given.

BranchTipNew definitionsWhat it is
content/chestcts2026-06-191,822The live CT chest front. Converts CDEStaging chest CT source material through a three-agent merge, create, and review pipeline.
content/headcts2026-06-03419Head CT batch, reviewed through a terminal interface, working from a head CT finding list.
km2026-05-1376Overlapping head CT review passes for the extrinsic, orbit, and temporal bone regions, sharing the same source list.
bhatia-requests2025-12-1259A clinician-requested batch for an intracranial problem list application.
findingmodels-metadata2026-06-010Applies an approved enrichment baseline to 78 existing definitions and adds no new ones.
taxonomy-export-2026-08-152026-08-150Replaces lists/ with the six MGB exam-oriented sub-taxonomy files.

The chest CT branch is the largest by far and the least complete: its own progress document records 205 source items split into 21 chunks of ten, with chunk 1 done and chunks 2 through 21 pending.6 The head CT branch’s plan document is marked complete for the soft tissue category, which produced four new models and nine mappings onto existing ones, with identifiers written back to the source list and the validator run clean.7

Two consequences follow. First, the published corpus of 2,382 understates by roughly 2,400 the number of definitions that have been drafted somewhere. Second, the JSON schema file in schema/ is being extended independently on three of these branches, with nothing landed on main.

Ten issues are open on the repository. Five request further content batches, including RadElement-derived definitions, chest CT and chest radiograph device lists, abdomen CT findings, knee MRI findings, and CDEStaging markdown content. Four cover tooling, including running the validator as a GitHub action and locking main. One asks for a static site with a landing page.

Footnotes

  1. ids.json, findingmodels main branch ↩

  2. base_organizations.jsonl, findingmodel main branch ↩

  3. CLAUDE.md, findingmodels main branch ↩

  4. Definition Cleanup Plan, findingmodels main branch ↩

  5. Finding Model MCP Server, findingmodel main branch ↩

  6. CDEStaging CT chest batch progress, content/chestcts branch ↩

  7. Soft-tissue head CT batch plan, content/headcts branch ↩