Skip to content

obo: the RF2 snapshot reader — one parser, three refusals - #262

Merged
AdaWorldAPI merged 1 commit into
mainfrom
claude/rf2-snapshot-reader
Aug 10, 2026
Merged

AdaWorldAPI merged 1 commit into
mainfrom
claude/rf2-snapshot-reader

Conversation

@AdaWorldAPI

Copy link
Copy Markdown
Owner

The rf2-reader row from medcare's open-points dependency map — the one parser gating three downstream bakes (GP/FP, the MedDRA maps both directions, EDQM), built here because consumers consume and never hand-parse.

Deliberately column-blind

Past the five columns every der2_* refset shares, the reader interprets nothing — the file family is encoded in the filename (sRefset, iissscc, …) and the consumer knows which file it opened. No concept model, no map semantics, no vocabulary: types exist only before the bake, and this is the join stage's input surface.

What it owns: the three silent failure modes

  1. The active filter, with the excluded count reported — an inactive row is history, not content; a consumer that forgets the filter bakes retired mappings, and one that filters silently produces a census that just looks mysteriously short. inactive is a field.
  2. Snapshot uniqueness refused, not resolved — a duplicate id means a Full export or a corrupt concatenation; keeping either row would bake whichever the file order favored, so the whole file is refused with the id named.
  3. Column integrity with the line number — a ragged row mis-aligns every cell after a stray tab, and each still looks like a value. Refused at line granularity.

SCTIDs read as u64 — a real 54-bit id sits in the fixtures — and a non-numeric or absent cell is refused, never truncated.

Verified: 17/17 ogar-obo tests (4 new, each naming its falsifier).

🤖 Generated with Claude Code


Generated by Claude Code

The reader every SNOMED-package consumer would otherwise duplicate wrongly,
deliberately column-blind past the shared five (the file family is in the
FILENAME; the consumer knows which file it opened). What it owns is the part
that goes wrong silently:

- the active filter, with the excluded count REPORTED so a bake census can
  say what it left out instead of looking short;
- snapshot uniqueness — a duplicate id means Full export or corrupt
  concatenation, and the whole file is refused rather than keeping
  whichever row the file order favored;
- column integrity — a ragged row refuses with its line number, because a
  permissive reader mis-aligns every cell after a stray tab and each still
  LOOKS like a value.

SCTIDs read as u64 (a real 54-bit id is in the fixtures); non-numeric or
absent cells are refused, never truncated. No meaning is interpreted: no
concept model, no map semantics — types exist only before the bake, and
this is the join stage's input surface.

Generated by [Claude Code](https://claude.ai/code)
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@cursor

cursor Bot commented Aug 10, 2026

Copy link
Copy Markdown

Bugbot couldn't run - usage limit reached

Bugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit.

A user or team admin can review and increase usage limits in the Cursor dashboard.

(requestId: serverGenReqId_05e998ee-fd8b-4d34-8516-9e0e07bfa30c)

@AdaWorldAPI
AdaWorldAPI merged commit dbc5ecb into main Aug 10, 2026
2 checks passed
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.

2 participants