CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

parsing-ccda-documents

Parses C-CDA / CCD XML clinical documents to extract human-readable section narrative plus coded entries, keyed by section LOINC codes and templateIds. Use before OpenMed processing when ingesting C-CDA R2.1 documents (CCD, Discharge Summary, H&P, Consultation Note) exported from an EHR and you need the narrative section text de-identified and analyzed. Hand section narrative to openmed.deidentify and openmed.analyze_text; XML-aware de-identification that preserves CDA markup is available via openmed.interop.cda. Trigger keywords: C-CDA, CCD, CDA, clinical document, templateId, LOINC section, narrative block, discharge summary XML, ClinicalDocument.

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

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.

A strong, code-first body: executable quick-start and adapter examples, a sequenced workflow with a security validation checkpoint, and concrete gotchas. The main improvements are trimming background overlap between the intro and the structure example, and moving the LOINC map and deeper reference material into a separate reference file.

Suggestions

Merge the opening background paragraph into the 'C-CDA structure in one minute' example to remove the duplicated explanation of the standard and document anatomy.

Move the SECTION_LOINC mapping and extended edge-case/reference detail (templateId tables, terminology licensing notes) into a references/ file linked from a short section, tightening SKILL.md to an overview.

Add an explicit feedback-loop step to the workflow, e.g. re-check that each expected section produced non-empty narrative after flattening, and what to do when it does not.

DimensionReasoningScore

Conciseness

The body is largely lean and assumes competence — code-first sections like Quick start and the adapter example carry the weight — but the intro paragraph ("C-CDA (Consolidated Clinical Document Architecture) is the XML document standard behind Meaningful Use / ONC certification...") partially overlaps what the 'C-CDA structure in one minute' section already shows, a minor over-explanation that could be trimmed. This fits 'efficient; minor instances of over-explanation' and is clearly above level 3's 'some unnecessary explanation'.

4 / 5

Actionability

Both Python blocks are copy-paste ready with real function calls ("root.findall('.//hl7:section', NS)", "openmed.deidentify(narrative, method=\"replace\", policy=\"hipaa_safe_harbor\")", "redact_cda(\"ccd.xml\")"), and the workflow and edge-case sections name exact elements and flags (date_shift_days=, keep_year=True, PhiElementRule). This matches 'fully executable; copy-paste ready code or commands; specific examples cover the common cases'.

5 / 5

Workflow Clarity

The 5-step workflow has a clear sequence and an explicit validation checkpoint — step 1 'Confirm it's CDA' via is_cda_document with DOCTYPE/ENTITY rejection for XXE — and the edge-cases section gives error-avoidance guidance, matching 'clear sequence with most checkpoints present'. It falls short of level 5 because there is no validate→fix→retry feedback loop for cases where a section parses but yields empty or malformed narrative.

4 / 5

Progressive Disclosure

No bundle files exist, and the single-file body is well-sectioned (When to use, Quick start, Workflow, Edge cases, Standards) with external links clearly labeled under 'Standards & references' — good structure with clear signaling. However, the full SECTION_LOINC mapping and parts of the edge-case material are inline content that could be split into a reference file at this length (~150 lines), which is a minor organization gap versus level 5's 'content appropriately split'.

4 / 5

Total

17

/

20

Passed

Description

96%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 model description: third-person voice, concrete capabilities with concrete API hand-offs, an explicit 'Use when...' clause, and a comprehensive trigger-keyword list. The only weakness is that the broad 'CDA'/'clinical document' triggers could fire for adjacent XML/de-identification skills.

DimensionReasoningScore

Specificity

Multiple concrete, comprehensive actions are named: "Parses C-CDA / CCD XML clinical documents to extract human-readable section narrative plus coded entries, keyed by section LOINC codes and templateIds", plus handing narrative to "openmed.deidentify and openmed.analyze_text" and XML-aware de-identification via "openmed.interop.cda". This matches the anchor 'lists multiple specific concrete actions; comprehensive coverage' and exceeds the level-4 anchor, which requires minor gaps in coverage.

5 / 5

Completeness

Both what and when are explicit: what — "Parses C-CDA / CCD XML clinical documents to extract human-readable section narrative plus coded entries"; when — "Use before OpenMed processing when ingesting C-CDA R2.1 documents (CCD, Discharge Summary, H&P, Consultation Note) exported from an EHR and you need the narrative section text de-identified and analyzed". This mirrors the level-5 example's structure exactly; level 4 would require a less explicit 'when', which is not the case here.

5 / 5

Trigger Term Quality

"Trigger keywords: C-CDA, CCD, CDA, clinical document, templateId, LOINC section, narrative block, discharge summary XML, ClinicalDocument" covers the natural phrases a user would say, including synonyms (C-CDA/CCD/CDA), document-type variants (discharge summary XML), and technical identifiers. Coverage is comprehensive in the manner of the level-5 anchor ('PDF files, PDFs, forms, .pdf'); at most a bare '.xml' extension term is absent, which does not drop it to level 4's 'a few natural terms missing'.

5 / 5

Distinctiveness Conflict Risk

The niche is clear — C-CDA parsing for OpenMed with distinct triggers (templateId, ClinicalDocument, LOINC section) — but the generic terms "CDA" and "clinical document" create minor overlap risk with closely related XML-parsing or de-identification skills, matching 'mostly distinct; minor overlap risk' rather than level 5's 'minimal conflict risk'.

4 / 5

Total

19

/

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/parsing-ccda-documents/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.