Hello community,
I am migrating from dcm4chee v2 to dcm4chee-arc-light 5.23.0 (Docker version, Postgres, Secure UI). I'm facing an encoding issue where Vietnamese characters in HL7 messages are displayed as question marks (???) in the MWL (Modality Worklist) UI.
1. Environment:
dcm4chee-arc: 5.23.0-psql-secure-ui
Sender: HL7 Sender (SystmOne)
Characters: Vietnamese (e.g., "Đàm-TestPatient Chiến")
2. The Problem: HL7 ORM messages are received successfully and MWL items are created. However, all accented characters in Patient Name (PID-5) and Scheduled Procedure Step Description (OBR-44) are replaced by ???.
3. HL7 Message Sample: In my logs, the incoming message looks like this: MSH|^~\&|TELEMEDVN|SystmOne|TLM_MWL|Vinmec|...||ORM^O01|4efd100000000000|P|2.4||||||UTF-8|| (Note: MSH-18 is set to UTF-8).
4. Current Configuration in dcm4chee UI: I have configured the following in the Archive Device extension:
HL7 Application (Name: HSC): * HL7 Character Set: UTF-8
HL7 Dicom Character Set: ISO_IR 192
HL7 Device Extension:
Default Character Set: UTF-8
Archive AE Extension (under the specific AE):
Default Character Set: ISO_IR 192
5. Logs observation: The Wildfly logs show that the connection is accepted and the MWL item is created, but the text is already garbled at the time of creation: INFO [org.dcm4chee.arc.procedure.impl.ProcedureServiceEJB] ... Create MWLItem[pk=7, spsid=..., status=SCHEDULED] (The values in the database already contain ???).
6. Question: Even though MSH-18 is explicitly set to UTF-8 and I've configured the HL7 Application, it seems dcm4chee is still using the default Western encoding to decode the MLLP stream.
Is there a specific place to force the HL7 MLLP Receiver to use UTF-8 regardless of the Receiving Application name?
Any guidance on how to fix this encoding issue in version 5.x would be greatly appreciated.
Best regards,