Issue257

Title Orthanc ModalityWorklists Plugin ignores SpecificCharacterSet ISO_IR 192 unless DefaultEncoding is forced to Utf8
Priority urgent Status in-progress
Superseder Nosy List admin, amazy
Assigned To amazy
Keywords Plugin - Other

Created on 2026-03-25.09:47:14 by admin, last changed by amazy.

Files
File name Uploaded Type Edit Remove
bugreport.zip admin, 2026-03-25.09:47:14 application/x-zip-compressed
Messages
msg1099 (view) Author: admin Date: 2026-03-25.09:47:14
[Bugzilla user: sameer.trivedi@zeiss.com]
[Bugzilla date: 2026-03-25T08:47:14+00:00]

Created attachment 148
This file contains sample MWL Files and orthanc.json configuration as well as verbose logs

Orthanc ModalityWorklists Plugin ignores SpecificCharacterSet ISO_IR 192 unless DefaultEncoding is forced to Utf8

Context
- Orthanc 1.12.10 with ModalityWorklists plugin 1.12.10 and OrthancPython plugin 7.0.
- Architecture: 64-bit, linux (Flatcar) running Orthanc via Docker
- Orthanc AET: TESTC, port 8008; HTTP disabled; TLS off.
- Remote modality: TESTC, AET Test Device, sending SpecificCharacterSet 0008,0005 = ISO_IR 192 and date 20260325 in MWL query (Full Query Provided Below).
- Worklist DB folder: /var/tempdata11/WorklistsDatabase. Contains Traditional Chinese patient names (e.g., sample file "習近平.wl").

Observed
- MWL C-FIND responses show corrupted/missing Traditional Chinese patient names on the remote device when Orthanc runs without an explicit DefaultEncoding.

Expected
- With SpecificCharacterSet = ISO_IR 192 (UTF-8) present in the worklist item, Orthanc should emit UTF-8 without needing DefaultEncoding to be set. Names should render correctly on the querying modality.

Workaround
- Adding "DefaultEncoding": "Utf8" to the Orthanc configuration makes the same worklists display correctly on the device.

Evidence
- Remote queries contain ISO_IR 192 and TEST DEVICE; see verbose.log
- Plugin reports matched MWL files with Chinese names; see verbose.log 

Full configuration
- See orthanc.json (DefaultEncoding not set, DicomAlwaysAllowFindWorklist=true, AET TESTC, port 8008).

Sample data
- MWL files with Traditional/Simplified Chinese names, including "習近平.wl" (plus one other sample in the same folder).

Steps to reproduce (cross-platform OSS tools)
1) Run Orthanc 1.12.10 in docker with the provided orthanc.json and the WorklistsDatabase folder containing the sample MWL files with Chinese names.

2) Send a MWL C-FIND using DCMTK with ISO_IR 192 and the remote AET:

findscu -W -aec TESTC -aet "Test Device" -k "0008,0005=ISO_IR 192" -k "0008,0020" -k "0008,0030" -k "0008,0050" -k "0008,0090" -k "0008,1110[0]" -k "0010,0010" -k "0010,0020" -k "0010,0021" -k "0010,0030" -k "0010,0040" -k "0010,1000" -k "0010,2160" -k "0010,4000" -k "0020,000d" -k "0032,1060" -k "0032,1064[0]" -k "0040,0100[0].0008,0060" -k "0040,0100[0].0040,0001=Test Device" -k "0040,0100[0].0040,0002=20260325" -k "0040,0100[0].0040,0003" -k "0040,0100[0].0040,0006" -k "0040,0100[0].0040,0007" -k "0040,0100[0].0040,0008[0]" -k "0040,0100[0].0040,0009" -k "0040,1001" -k "0040,1400" localhost 8008
	 
3) Observe on the modality that patient names are missing:

Find Response: 1 (Pending)
I:
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0008,0005) CS [ISO_IR 100]                             #  10, 1 SpecificCharacterSet
I: (0008,0050) SH [AN123 ]                                 #   6, 1 AccessionNumber
I: (0010,0010) PN (no value available)                     #   0, 0 PatientName
I: (0010,0020) LO [1a51ab5d-cdab-4c9c-9e8f-5fce0b9f8895]   #  36, 1 PatientID
I: (0010,0021) LO [Test]                                   #   4, 1 IssuerOfPatientID
I: (0010,0030) DA [20140101]                               #   8, 1 PatientBirthDate
I: (0010,0040) CS [M ]                                     #   2, 1 PatientSex
I: (0020,000d) UI [1.2.276.0.75.2.6.20.1.1.20260325]       #  32, 1 StudyInstanceUID
I: (0032,1060) LO [Biometry for opthalmic surgery]         #  30, 1 RequestedProcedureDescription
I: (0040,0100) SQ (Sequence with explicit length #=1)      # 110, 1 ScheduledProcedureStepSequence
I:   (fffe,e000) na (Item with explicit length #=6)          # 102, 1 Item
I:     (0008,0060) CS [OP]                                     #   2, 1 Modality
I:     (0040,0001) AE [Test Device ]                           #  12, 1 ScheduledStationAETitle
I:     (0040,0002) DA [20260325]                               #   8, 1 ScheduledProcedureStepStartDate
I:     (0040,0003) TM [124201]                                 #   6, 1 ScheduledProcedureStepStartTime
I:     (0040,0007) LO [Ophthalmic Biometry ]                   #  20, 1 ScheduledProcedureStepDescription       
I:     (0040,0009) SH [SPS123]                                 #   6, 1 ScheduledProcedureStepID
I:   (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
I: (fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
I: (0040,1001) SH [RP123 ]                                 #   6, 1 RequestedProcedureID

4) Set "DefaultEncoding": "Utf8" in orthanc.json, restart, repeat step 2; names now render correctly (workaround confirmed).

Attachments to include
- orthanc.json
- verbose.log
- MWL sample files (e.g., 習近平.wl);
History
Date User Action Args
2026-08-10 13:38:32amazysetassignedto: amazy
nosy: + amazy
2026-07-29 15:51:30admincreate