Skip to content

Epson V700 Scanner: Add filterable DPI and color-mode columns - #61

Merged
wasimxyz merged 3 commits into
stagingfrom
wa/epson-scanner-table
May 8, 2026
Merged

Epson V700 Scanner: Add filterable DPI and color-mode columns#61
wasimxyz merged 3 commits into
stagingfrom
wa/epson-scanner-table

Conversation

@wasimxyz

@wasimxyz wasimxyz commented May 8, 2026

Copy link
Copy Markdown
Member

Summary

Adds a dedicated epson_v700_scanner instrument variant to the web app with filterable DPI (300/600) and Color Mode (RGB/B&W) columns. Extends the Lambda's TIFF metadata parser to also persist derived dpi and color_mode keys so filters use the existing JSONB GIN index without bespoke SQL.

Changes

  • Lambda (epson_v700_scanner.image_processing): parse_metadata() now emits derived dpi (int, computed from XResolution) and color_mode ("rgb"/"bw", inferred from SamplesPerPixel with PhotometricInterpretation fallback) alongside the raw TIFF tags.
  • Drizzle: 0018_epson_v700_scanner_type adds epson_v700_scanner to the instrument_type enum; 0019_set_epson_scanner_type backfills the existing epson-v700-scanner instrument row to the new type.
  • lib/api/instrument-runs.ts: new dpi/colorMode filters on buildRunListQuery, new getEpsonScannerFilterOptions, and new epson_v700_scanner arm on the InstrumentFilterOptionsByType discriminated union.
  • New runs-table variant (components/instruments/runs-table/epson-scanner-runs-table.tsx) and run-detail variant (components/runs/variants/epson-scanner-run-detail.tsx), plus EpsonScannerRunBadges in run-metadata-badges.tsx. Wired into the page-level switch in app/instruments/[instrumentId]/page.tsx and the run-detail variant index.
  • lib/search-params.ts: new dpi and color_mode parseAsString entries.
  • Display label Epson V700 Scanner added to the instrument-type dropdown in edit-instrument-dialog.tsx.

Breaking changes

None.

Driveby changes

  • New DPI_COLORS, COLOR_MODE_COLORS, and COLOR_MODE_LABELS constants in lib/instrument-colors.ts.

Testing

  • make check-all (Python + frontend lint/format/typecheck)
  • Unit tests for _derive_dpi, _derive_color_mode, and parse_metadata derived fields (300/600 DPI, RGB/B&W)
  • Apply migrations on staging and verify enum value is present (SELECT enumlabel FROM pg_enum WHERE enumtypid = 'public.instrument_type'::regtype)
  • Upload a .tif to staging and confirm DPI / Color Mode render in the runs table and run-detail metadata block
  • Confirm column-header dropdowns filter the list correctly

Wires up a dedicated `epson_v700_scanner` instrument variant in the web
app with filterable DPI (300/600) and Color Mode (RGB/B&W) columns,
modeled on the existing qPCR/Hina patterns. Extends the Lambda's TIFF
metadata parser to also persist derived `dpi` and `color_mode` keys so
filters use the existing JSONB GIN index without bespoke SQL.

Co-authored-by: Cursor <cursoragent@cursor.com>
@wasimxyz wasimxyz self-assigned this May 8, 2026
@vercel

vercel Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
data-hub Ready Ready Preview, Comment May 8, 2026 2:50am

Request Review

@wasimxyz
wasimxyz merged commit cff654a into staging May 8, 2026
5 of 6 checks passed
@wasimxyz
wasimxyz deleted the wa/epson-scanner-table branch May 8, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant