Skip to main content
Glama
NyxToolsDev

DICOM/HL7/FHIR Interoperability MCP Server

explain_dicom_tag

Explain DICOM tags with detailed context including usage, common values, vendor-specific quirks, and related tags for healthcare data interoperability.

Instructions

Get a detailed explanation of a DICOM tag with context, including what it is, when it's used, common values, vendor quirks (Philips, GE, Siemens), gotchas, and related tags.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagYesDICOM tag identifier (number or keyword).

Implementation Reference

  • The `explain_dicom_tag` function, which provides detailed context, VR details, and practical notes about a DICOM tag.
    def explain_dicom_tag(tag: str) -> str:
        """Get a detailed explanation of a DICOM tag with context.
    
        Args:
            tag: Tag identifier (number or keyword).
    
        Returns:
            Detailed explanation including usage context, vendor quirks, and gotchas.
        """
        # Resolve the tag
        parsed = _parse_tag_input(tag)
        info = None
        tag_key = None
    
        if parsed is not None:
            info = DICOM_TAGS.get(parsed)
            tag_key = parsed
        else:
            results = _find_by_keyword(tag)
            if results:
                tag_key, info = results[0]
    
        if info is None:
            return f"Tag '{tag}' not found. Use 'lookup_dicom_tag' to search by keyword or number."
    
        parts = [
            f"## {info['name']}",
            f"Tag: {format_dicom_tag(*tag_key)}  |  Keyword: {info['keyword']}  |  VR: {info['vr']}  |  VM: {info['vm']}",
            "",
        ]
    
        # What is it?
        parts.append("### What It Is")
        parts.append(info["description"])
        parts.append("")
    
        # When is it used?
        parts.append("### When It's Used")
        parts.append(_get_usage_context(tag_key, info))
        parts.append("")
    
        # Common values
        if info.get("common_values"):
            parts.append("### Common Values")
            for val in info["common_values"]:
                parts.append(f"  - {val}")
            parts.append("")
    
        # VR details
        parts.append("### Value Representation Details")
        parts.append(f"VR: {info['vr']} — {format_vr_description(info['vr'])}")
        parts.append(_get_vr_notes(info["vr"]))
        parts.append("")
    
        # Practical notes and vendor quirks
        if info.get("notes"):
            parts.append("### Practical Notes & Vendor Quirks")
            parts.append(info["notes"])
            parts.append("")
    
        # Related tags
        related = _get_related_tags(tag_key, info)
        if related:
            parts.append("### Related Tags")
            for rel_key, rel_info in related:
                parts.append(f"  {format_dicom_tag(*rel_key)}  {rel_info['keyword']} — {rel_info['name']}")
            parts.append("")
    
        # SOP Class context
        sop_context = _get_sop_context(tag_key)
        if sop_context:
            parts.append("### SOP Class Context")
            parts.append(sop_context)
    
        return "\n".join(parts)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NyxToolsDev/dicom-hl7-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server