CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

extracting-lab-tables

Detects and extracts tabular laboratory panels from PDFs, scans, and images into structured rows ready for OpenMed and FHIR. Use when the user has a CBC, CMP, lipid panel, or other lab report as a scanned image / PDF / spreadsheet and needs the test name, value, unit, reference range, and abnormal flag as clean rows. Trigger keywords: lab table extraction, lab panel, OCR labs, table detection, layout analysis, header detection, reference range column, abnormal flag column, LOINC, UCUM, CBC, CMP, structured labs. Pairs before OpenMed: OCR/parse the table on-device (openmed.multimodal.ocr.ocr, read_table), de-identify embedded PHI with openmed.deidentify, then hand structured rows to LOINC/UCUM mapping and openmed.clinical lab flagging. Image/CSV/TSV intake is supported; PDF/DOCX raise UnsupportedDocumentError — render those to images or text first.

72

Quality

91%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

SKILL.md
Quality
Evals
Security

Quality

Content

90%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.

A tight, highly actionable body: executable quick-start code for both intake paths, a concrete six-step workflow, and genuinely non-obvious gotchas (range mis-splitting, unit/range separation, PHI in header columns) with no padding. The only gaps are the absence of an explicit validation feedback loop in the workflow and a single-file layout that is slightly long for a SKILL.md overview.

DimensionReasoningScore

Conciseness

Nearly every sentence carries OpenMed-specific knowledge Claude cannot already know: API signatures ("ocr(image, engine=...) → an OcrResult whose .words are OcrWord(text, bbox, confidence, page)"), return types, install extras, and real gotchas. It never explains what a PDF or a lab panel is in the abstract, contains no filler or library comparisons, and has no time-sensitive dates or versions, matching the lean score-5 anchor.

5 / 5

Actionability

The Quick start is copy-paste executable and covers both intake paths (image OCR and CSV/TSV with classify_columns/redact_table) against the real imports, and the Workflow gives six concrete steps including exact failure modes ("PDF/DOCX raise UnsupportedDocumentError", "ocr() raises ... MissingDependencyError"). This matches the score-5 anchor of fully executable guidance covering the common cases.

5 / 5

Workflow Clarity

The six-step Workflow is clearly sequenced with per-step detail, and confidence gating ("Confidence (OcrWord.confidence) flags shaky cells for review", plus the low-confidence edge case routing to human review) provides a checkpoint. It stops short of 5 because there is no explicit validate → fix → retry feedback loop in the workflow itself — e.g., a step that re-clusters or re-checks the reconstructed grid against the header when alignment fails — leaving validation implicit rather than a structured checkpoint.

4 / 5

Progressive Disclosure

The body is a single well-organized file with clear sections, and all pointers (parsing-lab-values, mapping-loinc, exporting-to-fhir, deidentifying-clinical-text, and the standards URLs) are one level deep and clearly signaled in dedicated sections; no bundle files exist to offload to, and none are referenced as if they existed. It does not reach 5 because at ~140 lines the Edge cases & gotchas and Hand-off sections carry detail that a references file could hold, and the simple-skill exception (under 50 lines) does not apply.

4 / 5

Total

18

/

20

Passed

Description

88%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.

A strong description: concrete, third-person, comprehensive on both what and when, with an explicit keyword list and clear boundary-setting against sibling skills. Its only weaknesses are a keyword list that mixes natural user phrasing with implementation jargon and a slightly self-contradictory PDF framing.

DimensionReasoningScore

Specificity

The description lists multiple concrete actions — "Detects and extracts tabular laboratory panels from PDFs, scans, and images into structured rows", "de-identify embedded PHI with openmed.deidentify", "hand structured rows to LOINC/UCUM mapping" — naming exact APIs, inputs (Image/CSV/TSV), and outputs (test name, value, unit, reference range, abnormal flag). Coverage of the capability space is comprehensive, matching the score-5 anchor; it does not fall to 4 because there are no meaningful gaps in the actions described.

5 / 5

Completeness

Both questions are answered explicitly and concretely: the what ("Detects and extracts tabular laboratory panels ... into structured rows ready for OpenMed and FHIR") and the when ("Use when the user has a CBC, CMP, lipid panel, or other lab report as a scanned image / PDF / spreadsheet and needs the test name, value, unit, reference range, and abnormal flag as clean rows"), with a keyword list on top. This matches the score-5 anchor exactly; the when-clause is explicit, not merely implied, so it does not drop to 4.

5 / 5

Trigger Term Quality

Trigger keywords are extensive and mostly natural: "lab table extraction, lab panel, OCR labs, CBC, CMP, structured labs", plus "scanned image / PDF / spreadsheet" in the when-clause. It falls short of the score-5 anchor because several terms are implementation jargon users would not naturally say ("layout analysis", "header detection", "reference range column") and common patient-side phrasings like "lab results" or "blood work" are absent.

4 / 5

Distinctiveness Conflict Risk

The lab-panel niche is well bounded with distinct triggers (CBC, CMP, lipid panel, LOINC, abnormal flag) and explicit pairing ("Pairs before OpenMed") that separates it from downstream skills. It does not reach 5 because generic terms in the keyword list ("table detection", "layout analysis") and the opening mention of PDFs — which the description itself says raise UnsupportedDocumentError — create minor overlap risk with general document/table-extraction skills.

4 / 5

Total

18

/

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

Path

skills/extracting-lab-tables/SKILL.md

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.