CtrlK
BlogDocsLog inGet started
Tessl Logo

mapping-loinc

Maps laboratory and clinical observation names extracted by OpenMed to LOINC codes using the public Regenstrief LOINC and FHIR terminology APIs. Use when the user wants to code lab tests, vital signs, or observations to LOINC, resolve a test name plus specimen and method to the correct LOINC part-model code, attach UCUM units, or build a US Core Laboratory Result Observation. Trigger keywords: LOINC, lab coding, observation code, UCUM units, specimen, method, US Core lab, FHIR Observation, lab result mapping, panel vs analyte. Pairs after OpenMed NER: consume Disease/Chemical/lab-name entities from openmed.analyze_text and map each measurement to a LOINC code. LOINC is free to use under the Regenstrief license (registration/terms-of-use, no fee); UMLS/SNOMED stay user-supplied and out-of-process.

74

Quality

93%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

High

Do not use without reviewing

SKILL.md
Quality
Evals
Security

Quality

Content

82%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

The body is a strong, dense skill: executable FHIR terminology code with auth and timeouts, a six-step workflow with an explicit validation step, an OpenMed integration example, and sharp edge-case guidance on specimen ambiguity, panel-vs-analyte, UCUM, and licensing. Weaknesses are minor: duplicated licensing prose, no explicit retry path when validation fails or a search returns nothing, and API-client code that could move to a bundled script to slim the overview.

Suggestions

Add a short feedback loop to the Workflow step for validation, e.g. "If $validate-code returns false or $expand returns no candidates, re-check the specimen/system axis and retry with a broader filter before falling back to a method-less code".

State the licensing/terms point once — keep it in Edge cases and trim the second paragraph of the intro, which repeats that LOINC is free with terms-of-use.

Consider moving the lookup/validate/expand_filter client code into a scripts/loinc_client.py in the skill bundle and referencing it, keeping SKILL.md as a leaner overview.

DimensionReasoningScore

Conciseness

Mostly efficient: concrete code, domain-specific detail (six-axis part model, specimen disambiguation), and little explanation of concepts Claude already knows. Minor over-explanation remains — the licensing point is stated twice ("LOINC is **free** to use... you accept terms-of-use" and again in Edge cases "**Licensing (free, with terms).**"), and the opening paragraph re-introduces what LOINC is. This fits the score-4 anchor (efficient, minor instances that could be trimmed) rather than 5 (every token earns its place) or 3 (noticeably padded).

4 / 5

Actionability

Fully executable, copy-paste-ready code: complete $lookup and $validate-code functions with auth, headers, and timeouts; an expand_filter helper; and a runnable OpenMed hand-off example that shows exactly how to feed entity spans into the search ("candidates = expand_filter(name, count=5)"). The workflow closes with a concrete emit shape ("{system: \"http://loinc.org\", code, display}" plus UCUM unit). Matches the score-5 anchor; common cases are covered and nothing is pseudocode.

5 / 5

Workflow Clarity

A clear six-step numbered sequence (Extract → Assemble axes → Search → Disambiguate → Validate → Emit) with an explicit validation checkpoint ($validate-code) and a dedicated gotchas section covering the dominant failure mode ("Specimen ambiguity is the #1 error"). It falls short of the score-5 anchor because there is no explicit feedback loop — the skill never says what to do when $validate-code returns false or a filter returns no candidates (e.g., broaden the filter, re-check specimen, retry). This is a read-only mapping task, so the destructive/batch cap of 3 does not apply.

4 / 5

Progressive Disclosure

No bundle files exist (references/, scripts/, assets/ are absent), so all content lives in SKILL.md, which is acceptable — no references are dangled or nested. The body (~150 lines) is well-sectioned (When to use, Quick start, Workflow, Hand-off, Edge cases, Standards) and navigation is easy. It sits at 4 rather than 5 because the shared API client code (lookup/validate/expand_filter with auth setup) is substantial enough that a scripts/ helper or reference file would slim the overview, i.e., good structure with minor organization headroom; it is clearly above 3, where content that should be separate is inlined wholesale with weak signaling.

4 / 5

Total

17

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

The description is highly effective: it explicitly states both what the skill does (map OpenMed-extracted observation names to LOINC via Regenstrief/FHIR APIs, with UCUM units and US Core output) and when to use it, backed by an explicit trigger-keyword list and clear demarcation from sibling coding skills (ICD-10, RxNorm, SNOMED/UMLS). Its only weakness is length — the licensing note adds padding that a leaner description would omit — but this does not reduce any dimension below its anchor.

DimensionReasoningScore

Specificity

Lists multiple concrete actions with comprehensive coverage: "Maps laboratory and clinical observation names... to LOINC codes", "resolve a test name plus specimen and method to the correct LOINC part-model code, attach UCUM units, or build a US Core Laboratory Result Observation", plus "consume Disease/Chemical/lab-name entities from openmed.analyze_text". This clearly matches the score-5 anchor (multiple specific concrete actions, comprehensive coverage) and exceeds score 4, which allows coverage gaps — none are evident here.

5 / 5

Completeness

Both required elements are explicit: the what ("Maps laboratory and clinical observation names extracted by OpenMed to LOINC codes using the public Regenstrief LOINC and FHIR terminology APIs") and the when ("Use when the user wants to code lab tests, vital signs, or observations to LOINC..."). This matches the score-5 anchor: clearly and explicitly answers both what AND when with concrete trigger phrases. Not below 5, since the when-clause is explicit rather than weakly implied as at score 3/4.

5 / 5

Trigger Term Quality

Explicitly enumerates natural terms users would say: "LOINC, lab coding, observation code, UCUM units, specimen, method, US Core lab, FHIR Observation, lab result mapping, panel vs analyte", reinforced by the when-clause's "code lab tests, vital signs, or observations". Coverage includes synonyms and phrasings users actually use; not the score-4 anchor because no natural terms are meaningfully missing for this domain.

5 / 5

Distinctiveness Conflict Risk

Clear niche with distinct triggers: LOINC observation coding is explicitly separated from related skills ("For diagnoses/procedures use coding-icd10; for drugs use normalizing-rxnorm" and "UMLS/SNOMED stay user-supplied and out-of-process"). Minimal conflict risk; matches the score-5 anchor rather than score 4, which presumes overlap with closely related skills.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository
maziyarpanahi/openmed
Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.