Modality Worklist PatientLevel with private tag

Good morning,
I have a question regarding the use of Orthanc with the worklist plugin.
I am not sure my understanding is correct but by piecing together different sources of information I have understood that it should be possible to embed private tags inside the response of a C-FIND at the patient query level. I am interested in adding the 8001,0010 group.

Here is my configuration:

orthanc.json

"Dictionary" : {
	"8001,1001" : [ "LO", "Oncologist", 1,1, "LIAC"],
	"8001,1002" : [ "LO", "Surgeon", 1,1, "LIAC"],
	"8001,1003" : [ "LO", "Pathology", 1,1, "LIAC"],
	"8001,1004" : [ "LO", "Localization", 1,1, "LIAC"],
	"8001,1005" : [ "LO", "Notes", 1,1, "LIAC"],
	"8001,1006" : [ "LO", "IsoDose", 1,1, "LIAC"],
	"8001,1007" : [ "LO", "Dose", 1,1, "LIAC"],
	"8001,0010" : [ "LO", "PrivateCreator", 1,1, "LIAC"]
  },

patient.wl

# Dicom-File-Format

# Dicom-Meta-Information-Header
# Used TransferSyntax: Little Endian Explicit
(0002,0000) UL 202                                      #   4, 1 FileMetaInformationGroupLength
(0002,0001) OB 00\01                                    #   2, 1 FileMetaInformationVersion
(0002,0002) UI [1.2.276.0.7230010.3.1.0.1]              #  26, 1 MediaStorageSOPClassUID
(0002,0003) UI [1.2.276.0.7230010.3.1.4.2831176407.11154.1448031138.805061] #  58, 1 MediaStorageSOPInstanceUID
(0002,0010) UI =LittleEndianExplicit                    #  20, 1 TransferSyntaxUID
(0002,0012) UI [1.2.276.0.7230010.3.0.3.6.0]            #  28, 1 ImplementationClassUID
(0002,0013) SH [OFFIS_DCMTK_360]                        #  16, 1 ImplementationVersionName

# Dicom-Data-Set
# Used TransferSyntax: Little Endian Explicit
(0008,0005) CS [ISO_IR 100]                             #  10, 1 SpecificCharacterSet
(0008,0050) SH [00000]                                  #   6, 1 AccessionNumber
(0008,0090) PN [DR^FRANCO]                              #   1 ReferringPhysicianName
(0008,1070) PN [OPFRANCO]                              #   1 OperatorsName
(0010,0010) PN [VIVALDI^ANTONIO]                        #  16, 1 PatientName
(0010,0020) LO [AV35674]                                #   8, 1 PatientID
(0010,0030) DA [19901108]                               #   8, 1 PatientBirthDate
(0010,0040) CS [M]                                      #   2, 1 PatientSex
(0010,2000) LO [METASTASIS]                             #  10, 1 MedicalAlerts
(0010,2110) LO [TANTAL]                                 #   6, 1 Allergies
(0020,000d) UI [1.2.276.0.7230010.3.2.101]              #  26, 1 StudyInstanceUID
(0032,1032) PN [SMITH]                                  #   6, 1 RequestingPhysician
(0032,1060) LO [EXAM6]                                  #   6, 1 RequestedProcedureDescription
(0040,0100) SQ (Sequence with explicit length #=1)      # 176, 1 ScheduledProcedureStepSequence
  (fffe,e000) na (Item with explicit length #=19)         # 168, 1 Item
    (0008,0060) CS [RTPLAN]                                 #   2, 1 Modality
    (0032,1070) LO [BARIUMSULFAT]                           #  12, 1 RequestedContrastAgent
    (0040,0001) AE [AA32\AA33]                              #  10, 2 ScheduledStationAETitle
    (0040,0002) DA [19951015]                               #   8, 1 ScheduledProcedureStepStartDate
    (0040,0003) TM [085607]                                 #   6, 1 ScheduledProcedureStepStartTime
    (0040,0006) PN [JOHNSON]                                #   8, 1 ScheduledPerformingPhysicianName
    (0040,0007) LO [EXAM74]                                 #   6, 1 ScheduledProcedureStepDescription
    (0040,0009) SH [SPD3445]                                #   8, 1 ScheduledProcedureStepID
    (0040,0010) SH [STN456]                                 #   6, 1 ScheduledStationName
    (0040,0011) SH [B34F56]                                 #   6, 1 ScheduledProcedureStepLocation
    (0040,0012) LO (no value available)                     #   0, 0 PreMedication
    (0040,0400) LT (no value available)                     #   0, 0 CommentsOnTheScheduledProcedureStep

  (fffe,e00d) na (ItemDelimitationItem for re-encoding)   #   0, 0 ItemDelimitationItem
(fffe,e0dd) na (SequenceDelimitationItem for re-encod.) #   0, 0 SequenceDelimitationItem
(0040,1001) SH [RP454G234]                              #  10, 1 RequestedProcedureID
(0040,1003) SH [LOW]                                    #   4, 1 RequestedProcedurePriority
(8001,0010) LO [LIAC]                                    #   1 PrivateCreator
(8001,1001) LO [ONCO^FRANCO]                                    #   1 Oncologist
(8001,1002) LO [SURG^FRANCO]                                    #   1 Surgeon
(8001,1003) LO [SAUDADE]                                    #   1 Pathology
(8001,1004) LO [HEAD]                                    #   1 Localization
(8001,1005) LO [NOTINA]                                    #   1 Notes
(8001,1006) LO [1234]                                    #   1 IsoDose
(8001,1007) LO [134]                                    #   1 Dose

When I use my c# client (using fo-dicom) I get this error in the
orthanc.log

OrthancException.cpp:61] Not implemented yet: Not applicable to private tags: 8001,0010
If i remove those tags everything works correctly as explained in the docs

I’ve traced the log line back to :

HierarchicalMatcher.cpp

DcmDataset* HierarchicalMatcher::ExtractInternal(DcmItem& source,....)

but I am not sure on how to proceed from here.
It this the correct orthanc configuration and the problem is client side or am I missing something?

–EDIT

Small edit i’ve also tried to insert the whole 8001 group inside the SQ element without luck

Thanks in advance

Hi,

I think I could reproduce your issue.

Here is the content of my query.dcm.txt file (converted into query.dcm thanks to dump2dcm)

(0010,0010) PN [VIV*]                        #  16, 1 PatientName
(8001,0010) LO [LIAC]                        #   1 PrivateCreator
(8001,1001) LO [ONCO^FRANCO]                 #   1 Oncologist

Then, if I execute findscu -v -W localhost 4244 query.dcm

I indeed got the error.

I have implemented this patch. However, note that right now, you won’t be able to perform wildcard searches on private tags.

Best regards,

Alain.