Skip to main content
Glama
NyxToolsDev

DICOM/HL7/FHIR Interoperability MCP Server

explain_integration_pattern

Understand healthcare integration patterns like ADT feeds and radiology workflows with message flow diagrams, trigger events, expected segments, and best practices.

Instructions

[Premium] Explain common healthcare integration patterns including message flow diagrams, trigger events, expected segments, common pitfalls, and best practices. Patterns: 'ADT feed', 'order to result', 'radiology workflow', 'lab interface', 'report distribution', 'patient merge', 'charge posting'.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pattern_nameYesIntegration pattern name (e.g., 'ADT feed', 'radiology workflow', 'order to result').

Implementation Reference

  • The 'explain_integration_pattern' function is implemented in 'src/dicom_hl7_mcp/tools/field_mapper.py'. It takes a 'pattern_name', normalizes it, and retrieves integration pattern details from the 'INTEGRATION_PATTERNS' dictionary (imported from 'dicom_hl7_mcp.knowledge.fhir_mappings'). It then returns a formatted string containing the message flow, trigger events, expected segments, common pitfalls, and best practices.
    def explain_integration_pattern(pattern_name: str) -> str:
        """Explain common healthcare integration patterns.
    
        Args:
            pattern_name: Pattern identifier. Examples:
                - "ADT feed" or "adt_feed"
                - "order to result" or "order_to_result"
                - "radiology workflow"
                - "lab interface"
                - "report distribution"
                - "patient merge"
                - "charge posting"
    
        Returns:
            Message flow diagram, trigger events, expected segments, common pitfalls.
        """
        premium_check = require_premium("explain_integration_pattern")
        if premium_check:
            return premium_check
    
        # Normalize the pattern name
        normalized = pattern_name.strip().lower().replace(" ", "_").replace("-", "_")
    
        # Try exact match
        pattern = INTEGRATION_PATTERNS.get(normalized)
    
        # Try fuzzy match
        if pattern is None:
            for key, val in INTEGRATION_PATTERNS.items():
                if normalized in key or key in normalized:
                    pattern = val
                    break
                if normalized in val["name"].lower().replace(" ", "_"):
                    pattern = val
                    break
    
        if pattern is None:
            available = "\n".join(
                f"  - {key}: {val['name']}" for key, val in INTEGRATION_PATTERNS.items()
            )
            return (
                f"Integration pattern '{pattern_name}' not found.\n\n"
                f"Available patterns:\n{available}"
            )
    
        parts = [
            f"## {pattern['name']}",
            f"",
            pattern["description"],
            f"",
            f"### Message Flow",
        ]
    
        for i, step in enumerate(pattern["message_flow"], 1):
            parts.append(f"  {i}. {step}")
    
        parts.extend([
            f"",
            f"### Trigger Events",
        ])
        for event in pattern["trigger_events"]:
            parts.append(f"  - {event}")
    
        parts.extend([
            f"",
            f"### Expected Segments",
            f"  {', '.join(pattern['expected_segments'])}",
            f"",
            f"### Common Pitfalls",
        ])
        for pitfall in pattern["common_pitfalls"]:
            parts.append(f"  ! {pitfall}")
    
        parts.extend([
            f"",
            f"### Best Practices",
        ])
        for practice in pattern["best_practices"]:
            parts.append(f"  * {practice}")
    
        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