Files
dicom2pacs/dist/dicom2pacs.app/Contents/Resources/lib/python3.13/pydicom/sr/coding.py
René Mathieu 0fef8d96c5 Initial commit
2026-01-17 13:49:51 +01:00

66 lines
2.0 KiB
Python
Executable File

# Copyright 2008-2021 pydicom authors. See LICENSE file for details.
from typing import NamedTuple, Any
from pydicom.sr._snomed_dict import mapping as snomed_mapping
class Code(NamedTuple):
"""Namedtuple for representation of a coded concept consisting of the
actual code *value*, the coding *scheme designator*, the code *meaning*
(and optionally the coding *scheme version*).
..versionadded: 1.4
"""
value: str
scheme_designator: str
meaning: str
scheme_version: str | None = None
def __hash__(self) -> int:
return hash(self.scheme_designator + self.value)
def __eq__(self, other: Any) -> Any:
if self.scheme_designator == "SRT" and self.value in snomed_mapping["SRT"]:
self_mapped = Code(
value=snomed_mapping["SRT"][self.value],
meaning="",
scheme_designator="SCT",
scheme_version=self.scheme_version,
)
else:
self_mapped = Code(
value=self.value,
meaning="",
scheme_designator=self.scheme_designator,
scheme_version=self.scheme_version,
)
if other.scheme_designator == "SRT" and other.value in snomed_mapping["SRT"]:
other_mapped = Code(
value=snomed_mapping["SRT"][other.value],
meaning="",
scheme_designator="SCT",
scheme_version=other.scheme_version,
)
else:
other_mapped = Code(
value=other.value,
meaning="",
scheme_designator=other.scheme_designator,
scheme_version=other.scheme_version,
)
return (
self_mapped.value == other_mapped.value
and self_mapped.scheme_designator == other_mapped.scheme_designator
and self_mapped.scheme_version == other_mapped.scheme_version
)
def __ne__(self, other: Any) -> Any:
return not (self == other)
Code.__new__.__defaults__ = (None,)