pacs_get_metadata
Retrieve DICOM metadata from PACS systems for studies or series, providing patient, study, series, and equipment details using DICOMweb or DIMSE protocols.
Instructions
[Premium] Retrieve detailed metadata for a study or series from PACS. Returns DICOM header information including patient, study, series, and equipment details. Uses WADO-RS metadata (DICOMweb) or series-level C-FIND (DIMSE).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| study_instance_uid | Yes | Study Instance UID to retrieve metadata for. | |
| series_instance_uid | No | Optional Series Instance UID for series-level metadata. |
Implementation Reference
- The actual implementation of the 'pacs_get_metadata' function, which dispatches requests to either a DIMSE or DICOMweb client based on configuration.
def pacs_get_metadata( study_instance_uid: str, series_instance_uid: str = "", ) -> list[dict[str, Any]]: """Retrieve study/series metadata from PACS. For DIMSE: performs a detailed C-FIND at series level. For DICOMweb: uses WADO-RS metadata endpoint. Args: study_instance_uid: The study UID. series_instance_uid: Optional series UID. Returns: List of metadata objects (format depends on protocol). """ protocol = get_pacs_protocol() if protocol == "dicomweb": client = _get_dicomweb_client() if client: return client.get_metadata(study_instance_uid, series_instance_uid) return [] elif protocol == "dimse": # For DIMSE, do a series-level C-FIND to get detailed metadata client = _get_dimse_client() if client: filters = QueryFilters( query_level="SERIES", study_instance_uid=study_instance_uid, ) if series_instance_uid: filters.series_instance_uid = series_instance_uid results = client.find(filters) # Convert SeriesResult models to dicts for consistent return type return [r.model_dump() for r in results] return [] return [] - src/dicom_hl7_mcp/tools/pacs_connectivity.py:258-262 (registration)Tool handler wrapper that invokes the 'pacs_get_metadata' function.
"""Handle pacs_get_metadata tool call.""" study_uid = arguments["study_instance_uid"] series_uid = arguments.get("series_instance_uid", "") metadata = pacs_get_metadata(study_uid, series_uid)