You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+22-1Lines changed: 22 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,7 +5,28 @@ All notable changes to the IDC Claude Skill are documented in this file.
5
5
The format is based on [Keep a Changelog](https://keepachangelog.com/),
6
6
and this project adheres to [Semantic Versioning](https://semver.org/).
7
7
8
-
## [Unreleased]
8
+
## [1.5.0] - 2026-04-08
9
+
10
+
### Added
11
+
12
+
-`volume_geometry_index` table documentation: 3D geometry validation for single-frame CT, MR, and PT series; boolean checks (orientation, spacing, dimensions, slice positions) and composite `regularly_spaced_3d_volume` flag; join via `SeriesInstanceUID`
13
+
-`rtstruct_index` table documentation: RT Structure Set metadata (total ROIs, ROI names, generation algorithms, interpreted types, referenced image series UID); join via `SeriesInstanceUID`
14
+
- New reference guide `references/parquet_access_guide.md`: direct DuckDB queries against public GCS Parquet files without installing idc-index; URL pattern, available files, and query examples for main index, `volume_geometry_index`, and `rtstruct_index`
15
+
- SQL patterns for `volume_geometry_index` and `rtstruct_index` in `references/sql_patterns.md`
16
+
- Detailed documentation for BigQuery-only derived tables in `references/bigquery_guide.md`:
17
+
-`segmentations`: per-segment anatomy with full schema, column descriptions, and queries for discovering structures, filtering by coded concept, and linking to SR measurements; note on gap vs `seg_index` in idc-index
18
+
-`quantitative_measurements`: radiomics and clinical numeric measurements from DICOM SR TID1500 (volume, diameter, shape descriptors, texture, intensity statistics); full schema with column descriptions and query examples
19
+
-`qualitative_measurements`: coded assessments from DICOM SR TID1500 (malignancy rating, calcification, texture, margin); full schema with column descriptions and query examples
20
+
-`measurement_groups`: parent grouping table for SR measurements
21
+
- Combined example joining all three derived tables for LIDC-IDRI nodule analysis (malignancy + volume + diameter)
22
+
- SKILL.md section 7 now explicitly lists per-segment anatomy search, quantitative SR measurements, and qualitative SR measurements as BigQuery-only use cases with no idc-index equivalent
23
+
24
+
### Changed
25
+
26
+
- Updated to idc-index 0.11.14 (idc-index-data 23.10.1)
27
+
- Added `SOPClassUID` and `TransferSyntaxUID` columns to Key Columns Reference in `references/index_tables_guide.md`
28
+
- Added Direct Parquet Access entry to Data Access Options table and pointer in SKILL.md
29
+
- Added `parquet_access_guide.md` to Quick Navigation table in SKILL.md
|`contrast_index`| 1 row = 1 series with contrast info | fetch_index() | Contrast agent metadata: agent name, ingredient, administration route (CT, MR, PT, XA, RF) |
142
+
|`volume_geometry_index`| 1 row = 1 CT/MR/PT series | fetch_index() | 3D volume geometry validation for single-frame CT, MR, and PT series; boolean checks for orientation, spacing, dimensions, and slice positions; composite `regularly_spaced_3d_volume` flag |
143
+
|`rtstruct_index`| 1 row = 1 RTSTRUCT series | fetch_index() | RT Structure Set metadata: total ROI count, ROI names, generation algorithms, interpreted types, and the referenced image series UID |
141
144
142
145
**Auto** = loaded automatically when `IDCClient()` is instantiated
143
146
**fetch_index()** = requires `client.fetch_index("table_name")` to load
@@ -159,6 +162,8 @@ The `idc-index` package provides multiple metadata index tables, accessible via
159
162
|`SeriesInstanceUID`| index, seg_index, ann_index, ann_group_index, contrast_index | Link segmentation/annotation/contrast series to its index metadata |
160
163
|`segmented_SeriesInstanceUID`| seg_index → index | Link segmentation to its source image series (join seg_index.segmented_SeriesInstanceUID = index.SeriesInstanceUID) |
161
164
|`referenced_SeriesInstanceUID`| ann_index → index | Link annotation to its source image series (join ann_index.referenced_SeriesInstanceUID = index.SeriesInstanceUID) |
165
+
|`SeriesInstanceUID`| index, volume_geometry_index | Link series to its 3D geometry validation result (join index.SeriesInstanceUID = volume_geometry_index.SeriesInstanceUID) |
166
+
|`SeriesInstanceUID` / `referenced_SeriesInstanceUID`| index, rtstruct_index | Join RTSTRUCT series to its metadata (index.SeriesInstanceUID = rtstruct_index.SeriesInstanceUID); use rtstruct_index.referenced_SeriesInstanceUID to find the source image series |
162
167
163
168
**Note:**`Subjects`, `Updated`, and `Description` appear in multiple tables but have different meanings (counts vs identifiers, different update contexts).
164
169
@@ -184,6 +189,7 @@ See `references/clinical_data_guide.md` for detailed workflows including value m
184
189
| Method | Auth Required | Best For |
185
190
|--------|---------------|----------|
186
191
|`idc-index`| No | Key queries and downloads (recommended) |
192
+
| Direct Parquet (GCS) | No | Quick queries without installing idc-index; always uses latest data |
| DICOMweb proxy | No | Tool integration via DICOMweb API |
@@ -214,6 +220,12 @@ IDC data is available via DICOMweb interface (Google Cloud Healthcare API implem
214
220
215
221
See `references/dicomweb_guide.md` for endpoint URLs, code examples, supported operations, and implementation details.
216
222
223
+
**Direct Parquet access**
224
+
225
+
All idc-index metadata tables are published as Parquet files to a public GCS bucket (`idc-index-data-artifacts`) with unrestricted CORS. This enables DuckDB or pandas queries without installing idc-index, including cross-table joins and queries against `volume_geometry_index` and `rtstruct_index`.
226
+
227
+
See `references/parquet_access_guide.md` for URL patterns, available files, and DuckDB query examples.
228
+
217
229
## Installation and Setup
218
230
219
231
**Required (for basic access):**
@@ -229,7 +241,7 @@ print(client.get_idc_version()) # Should return "v23"
229
241
```
230
242
If you see an older version, upgrade with: `pip install --upgrade idc-index`
231
243
232
-
**Tested with:** idc-index 0.11.10 (IDC data version v23)
244
+
**Tested with:** idc-index 0.11.14 (IDC data version v23)
233
245
234
246
**Optional (for data analysis):**
235
247
```bash
@@ -649,6 +661,13 @@ See `references/bigquery_guide.md` for setup, table schemas, query patterns, pri
649
661
650
662
Common specialized indices: `seg_index` (segmentations), `ann_index` / `ann_group_index` (microscopy annotations), `sm_index` (slide microscopy), `collections_index` (collection metadata). Only use BigQuery if you need private DICOM elements or attributes not in any index.
651
663
664
+
**Use cases that require BigQuery (no idc-index equivalent):**
665
+
-**Per-segment anatomy search** — `seg_index` gives series-level SEG metadata, but the BigQuery `segmentations` table exposes each segment individually with its DICOM coded structure name (e.g., find all SEG series containing a "Liver" or "Neoplasm" segment)
666
+
-**Quantitative measurements from SR** — the `quantitative_measurements` BigQuery table contains pre-extracted radiomics features (volume, diameter, shape descriptors, texture, intensity statistics) from DICOM SR TID1500 objects; no idc-index equivalent
667
+
-**Qualitative measurements from SR** — the `qualitative_measurements` BigQuery table contains coded assessments (malignancy rating, calcification, texture, margin) from DICOM SR TID1500; no idc-index equivalent
668
+
669
+
See `references/bigquery_guide.md` for schemas, column descriptions, and query examples for these tables.
0 commit comments