Judge the four OMOP concepts on Chronic Lyme disease - #80
Merged
Conversation
ARI:0001065 is Post-Treatment Lyme Disease Syndrome, not Lyme disease. Its confirmed cross-references are MeSH D000077342 "Post-Lyme Disease Syndrome", MONDO:0700280, NCIt C119039 and UMLS C3890422; the curator had already rejected DOID:11729 and icd10cm:A69.2, both plain "Lyme disease", and recorded that SNOMED has no term for it. Resolved the four stored OMOP concepts against the local Athena vocabulary: 19137845 MeSH D000077342 Post-Lyme Disease Syndrome -> confirmed 440638 SNOMED 23502006 Lyme disease -> flagged wrong 4141757 SNOMED 33937009 Lyme arthritis -> flagged wrong 37365579 absent from every local vocabulary file -> left unjudged The two flagged concepts are the active infection and one of its manifestations. Storing them contradicted the curator's own "no term in SNOMED" finding, since both are SNOMED concepts wearing an OMOP id. ARI_DXCODE held 23502006 and 33937009, the SNOMED codes behind those two concepts, so both are flagged as SNOMED too and the property is now empty -- otherwise the same rejected concepts would survive under a second property. That clears one dxcode-without-snomed warning, 6 -> 5. 37365579 is left stored and unreviewed rather than dropped. An id that resolves nowhere is not an id anybody can rule on, and removing it would be exactly the unreviewed deletion this branch adds a check against. It needs Athena. Also fixes a latent bug the new row surfaced: date-future compared a UTC mapping_date against the local date, so an evening publish west of UTC read as tomorrow. CI runners are UTC and never saw it; curators running the validator locally would have. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #78, which left this pair explicitly open. The commit was pushed about a minute after #78 merged, so it never became part of it.
The disease is not Lyme disease
ARI:0001065 is Post-Treatment Lyme Disease Syndrome. Its confirmed cross-references are MeSH D000077342 "Post-Lyme Disease Syndrome", MONDO:0700280, NCIt C119039 and UMLS C3890422, and its synonyms include PTLDS and post-treatment Lyme disease syndrome. The curator had already rejected DOID:11729 and icd10cm:A69.2 — both plain "Lyme disease" — and recorded no term in SNOMED.
That last judgment is what settles the OMOP question. Resolved against the local Athena vocabulary in
data/2-databases:19137845440638414175737365579The two flagged concepts are the active infection and one of its manifestations — SNOMED concepts wearing an OMOP id. Storing them contradicted the curator's own "no term in SNOMED" finding. I also checked the full SNOMED Lyme list in the release: it is entirely active-infection concepts and manifestations, with nothing for the post-treatment syndrome, so that finding holds.
ARI_DXCODE went too
ARI_DXCODEheld23502006and33937009— the SNOMED codes behind the two rejected OMOP concepts. Flagging only the OMOP form would have left the same two concepts on the disease under a second property, which is the exact failure moderemove-false-xref-mappingscalled out. Both SNOMED codes are flagged as well and the property is now empty.That also clears one standing
dxcode-without-snomedwarning: 6 → 5.37365579 is deliberately untouched
It resolves in no local vocabulary file. An id nobody can look up is not an id anybody can rule on, and dropping it would be precisely the unreviewed deletion #78 added
check_deletionsto prevent. It stays stored and unreviewed until someone can check it against Athena.Unrelated bug this surfaced
Recording the judgment tripped
date-future. The app stampsmapping_datein UTC; the check compared it againstdate.today(), the local date. An evening publish anywhere west of UTC read as tomorrow's work. CI runners are UTC so CI never saw it — a curator in Toronto running the validator after 20:00 would have. Now compared UTC to UTC.Verification
The five remaining warnings are the standing
dxcode-without-snomeddebt.check_deletionspasses: every id removed here has apredicate_modifier: Notrow behind it, which is the check working as intended on its first real use.Advances #23.
🤖 Generated with Claude Code