with one click
resolve-concept-sets
// Resolve INDICATE concept sets using OMOP vocabulary tables. Expands descendants and mapped concepts via resolve.py. Use when the user wants to resolve one or all concept sets.
// Resolve INDICATE concept sets using OMOP vocabulary tables. Expands descendants and mapped concepts via resolve.py. Use when the user wants to resolve one or all concept sets.
[HINT] Download the complete skill directory including SKILL.md and all related files
| name | resolve-concept-sets |
| description | Resolve INDICATE concept sets using OMOP vocabulary tables. Expands descendants and mapped concepts via resolve.py. Use when the user wants to resolve one or all concept sets. |
| allowed-tools | Bash, Read, AskUserQuestion |
| argument-hint | [concept-set-id or 'all'] |
Resolve INDICATE concept set expressions into lists of OMOP concepts using the resolve.py script.
$ARGUMENTS should be one of:
327) — resolve that single concept setall — resolve all concept setsFirst, check whether config.local.json exists at the repo root and contains an ohdsiVocab key. resolve.py reads it automatically when no CLI flag is passed, so if it is set you do not need to ask the user — just run resolve.py without --vocab.
If the key is not set, ask the user for a path. resolve.py accepts any of:
.duckdb file containing OMOP vocabulary tables (concept, concept_ancestor, concept_relationship)CONCEPT.csv, CONCEPT_ANCESTOR.csv, and CONCEPT_RELATIONSHIP.csv (downloadable from Athena)CONCEPT.parquet, CONCEPT_ANCESTOR.parquet, and CONCEPT_RELATIONSHIP.parquetThe format is detected automatically from the path. If the user has a different source (PostgreSQL, MySQL, etc.), adapt accordingly — for instance by exporting the relevant tables to CSV/Parquet or loading them into a temporary DuckDB.
Once the user gives you the path, suggest they save it to config.local.json under ohdsiVocab so they don't have to provide it again.
Run the script from the repository root.
Single concept set:
python3 resolve.py --id <ID> # uses config.local.json
python3 resolve.py --vocab <path> --id <ID> # explicit path
All concept sets:
python3 resolve.py # uses config.local.json
python3 resolve.py --vocab <path>
concept_sets_resolved/{id}.json) and show a brief summary — total concepts and breakdown by vocabulary (SNOMED, LOINC, RxNorm, etc.)python3 build.py