Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/services/dicom/__init__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
"""DICOM services for PACS functionality."""

# DICOM character sets
CHARSET_UTF8 = "ISO_IR 192"

# DICOM status codes
SUCCESS = 0x0000
FAILURE = 0xC000
Expand Down
4 changes: 3 additions & 1 deletion src/services/mwl/c_find.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from pydicom import Dataset
from pynetdicom import evt

from services.dicom import FAILURE, PENDING, SUCCESS
from services.dicom import CHARSET_UTF8, FAILURE, PENDING, SUCCESS
from services.storage import MWLStorage, WorklistItem

logger = logging.getLogger(__name__)
Expand Down Expand Up @@ -82,6 +82,8 @@ def _build_worklist_response(self, item: WorklistItem) -> Dataset:
ds = Dataset()
sps_item = Dataset()

ds.SpecificCharacterSet = CHARSET_UTF8

# Patient demographics
ds.PatientID = item.patient_id
ds.PatientName = item.patient_name
Expand Down
3 changes: 2 additions & 1 deletion tests/services/mwl/test_c_find.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import pytest
from pydicom import Dataset

from services.dicom import FAILURE, PENDING, SUCCESS
from services.dicom import CHARSET_UTF8, FAILURE, PENDING, SUCCESS
from services.mwl.c_find import CFind
from services.storage import WorklistItem

Expand Down Expand Up @@ -71,6 +71,7 @@ def test_call_with_single_result(self, handler, mock_storage, mock_event, sample
status, ds = results[0]
assert status == PENDING
assert isinstance(ds, Dataset)
assert ds.SpecificCharacterSet == CHARSET_UTF8
assert ds.PatientID == "9876543210"
assert ds.AccessionNumber == "ACC001"
# Final result: success
Expand Down
Loading