Transfer syntax with explicit VR support in dcmtk

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
mmilej
Posts: 2
Joined: Mon, 2018-11-05, 15:16
Contact:

Transfer syntax with explicit VR support in dcmtk

#1 Post by mmilej »

Today I tried to test my Move Scp implementation and it seem like "VR" field is simply missing in C-Move-RQ when Explicit VR transfer syntax is negotiated.
As explained in DICOM documentation http://dicom.nema.org/medical/dicom/201 ... l#sect_7.1 VR should be present in Explicit VR transfer syntax

Am I missing something or it's the dcmtk issue?

Logs:
The received data in the application is like bellow and I do not see any VRs defined. Wireshark rad data also shows no VR field in request (it somehow deduce type and shows it, but it does not come from packed data).

Code: Select all

-buffer	{ size=100 }	std::vector<unsigned char,std::allocator<unsigned char> >
[capacity]	100	int
+[allocator]	allocator	std::_Compressed_pair<std::allocator<unsigned char>,std::_Vector_val<std::_Simple_types<unsigned char> >,1>
[0]	0 '\0'	unsigned char
[1]	0 '\0'	unsigned char
[2]	0 '\0'	unsigned char
[3]	0 '\0'	unsigned char
[4]	4 '\x4'	unsigned char
[5]	0 '\0'	unsigned char
[6]	0 '\0'	unsigned char
[7]	0 '\0'	unsigned char
[8]	88 'X'	unsigned char
[9]	0 '\0'	unsigned char
[10]	0 '\0'	unsigned char
[11]	0 '\0'	unsigned char
[12]	0 '\0'	unsigned char
[13]	0 '\0'	unsigned char
[14]	2 '\x2'	unsigned char
[15]	0 '\0'	unsigned char
[16]	28 '\x1c'	unsigned char
[17]	0 '\0'	unsigned char
[18]	0 '\0'	unsigned char
[19]	0 '\0'	unsigned char
[20]	49 '1'	unsigned char
[21]	46 '.'	unsigned char
[22]	50 '2'	unsigned char
[23]	46 '.'	unsigned char
[24]	56 '8'	unsigned char
[25]	52 '4'	unsigned char
[26]	48 '0'	unsigned char
[27]	46 '.'	unsigned char
[28]	49 '1'	unsigned char
[29]	48 '0'	unsigned char
[30]	48 '0'	unsigned char
[31]	48 '0'	unsigned char
[32]	56 '8'	unsigned char
[33]	46 '.'	unsigned char
[34]	53 '5'	unsigned char
[35]	46 '.'	unsigned char
[36]	49 '1'	unsigned char
[37]	46 '.'	unsigned char
[38]	52 '4'	unsigned char
[39]	46 '.'	unsigned char
[40]	49 '1'	unsigned char
[41]	46 '.'	unsigned char
[42]	50 '2'	unsigned char
[43]	46 '.'	unsigned char
[44]	49 '1'	unsigned char
[45]	46 '.'	unsigned char
[46]	50 '2'	unsigned char
[47]	0 '\0'	unsigned char
[48]	0 '\0'	unsigned char
[49]	0 '\0'	unsigned char
[50]	0 '\0'	unsigned char
[51]	1 '\x1'	unsigned char
[52]	2 '\x2'	unsigned char
[53]	0 '\0'	unsigned char
[54]	0 '\0'	unsigned char
[55]	0 '\0'	unsigned char
[56]	33 '!'	unsigned char
[57]	0 '\0'	unsigned char
[58]	0 '\0'	unsigned char
[59]	0 '\0'	unsigned char
[60]	16 '\x10'	unsigned char
[61]	1 '\x1'	unsigned char
[62]	2 '\x2'	unsigned char
[63]	0 '\0'	unsigned char
[64]	0 '\0'	unsigned char
[65]	0 '\0'	unsigned char
[66]	1 '\x1'	unsigned char
[67]	0 '\0'	unsigned char
[68]	0 '\0'	unsigned char
[69]	0 '\0'	unsigned char
[70]	0 '\0'	unsigned char
[71]	6 '\x6'	unsigned char
[72]	4 '\x4'	unsigned char
[73]	0 '\0'	unsigned char
[74]	0 '\0'	unsigned char
[75]	0 '\0'	unsigned char
[76]	65 'A'	unsigned char
[77]	69 'E'	unsigned char
[78]	84 'T'	unsigned char
[79]	49 '1'	unsigned char
[80]	0 '\0'	unsigned char
[81]	0 '\0'	unsigned char
[82]	0 '\0'	unsigned char
[83]	7 '\a'	unsigned char
[84]	2 '\x2'	unsigned char
[85]	0 '\0'	unsigned char
[86]	0 '\0'	unsigned char
[87]	0 '\0'	unsigned char
[88]	0 '\0'	unsigned char
[89]	0 '\0'	unsigned char
[90]	0 '\0'	unsigned char
[91]	0 '\0'	unsigned char
[92]	0 '\0'	unsigned char
[93]	8 '\b'	unsigned char
[94]	2 '\x2'	unsigned char
[95]	0 '\0'	unsigned char
[96]	0 '\0'	unsigned char
[97]	0 '\0'	unsigned char
[98]	1 '\x1'	unsigned char
[99]	0 '\0'	unsigned char

Code: Select all

T: DcmItem::insert() Element (0010,0020) VR="LO" inserted at beginning
D: $dcmtk: movescu v3.6.3 2018-02-05 $
D: 
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.3
D: Our Implementation Version Name:   OFFIS_DCMTK_363
D: Their Implementation Class UID:    
D: Their Implementation Version Name: 
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    MOVESCU
D: Called Application Name:     AET1
D: Responding Application Name: AET1
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =FINDPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianExplicit
D:       =BigEndianExplicit
D:       =LittleEndianImplicit
D:   Context ID:        3 (Proposed)
D:     Abstract Syntax: =MOVEPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianExplicit
D:       =BigEndianExplicit
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
T: DUL  FSM Table: State: 1 Event: 0
T: DUL  Event:  A-ASSOCIATE request (local user)
T: DUL  Action: AE 1 Transport Connect
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
T: checking whether environment variable TCP_BUFFER_LENGTH is set
T:   environment variable TCP_BUFFER_LENGTH not set, using the system defaults
T: checking whether environment variable TCP_NODELAY is set
T:   environment variable TCP_NODELAY not set, using the default value (0)
T: DUL  FSM Table: State: 4 Event: 1
T: DUL  Event:  Transport conn confirmation (local)
T: DUL  Action: AE 2 Send Associate RQ PDU
D: Constructing Associate RQ PDU
T: Read PDU HEAD TCP: 02 00 00 00 00 d4
T: Read PDU HEAD TCP: type: 02, length: 212 (d4)
T: DUL  FSM Table: State: 5 Event: 2
T: DUL  Event:  A-ASSOCIATE-AC PDU (on transport)
T: DUL  Action: AE 3 Associate Confirmation Accept
D: PDU Type: Associate Accept, PDU Length: 212 + 6 bytes PDU header
D:   02  00  00  00  00  d4  00  01  00  00  4d  4f  56  45  53  43
D:   55  20  20  20  20  20  20  20  20  20  41  45  54  31  20  20
D:   20  20  20  20  20  20  20  20  20  20  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  10  00  00  15  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  33  2e  31  2e
D:   31  2e  31  21  00  00  1b  01  00  00  00  40  00  00  13  31
D:   2e  32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32
D:   2e  31  21  00  00  1b  03  00  00  00  40  00  00  13  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32  2e
D:   31  50  00  00  35  51  00  00  04  00  00  7e  ee  52  00  00
D:   1e  31  2e  32  2e  38  32  36  2e  30  2e  31  2e  33  36  38
D:   30  30  34  33  2e  32  2e  39  31  2e  33  2e  31  2e  30  55
D:   00  00  07  31  2e  30  2e  30  2e  30
D: Parsing an A-ASSOCIATE PDU
T: PDU type: 2 (A-ASSOCIATE AC), PDU Length: 212
T: DICOM Protocol: 1
T: Called AP Title:  MOVESCU
T: Calling AP Title: AET1
T: Parsing remaining 144 bytes of A-ASSOCIATE PDU
T: Next item type: 10
T: Subitem parse: Type 10, Length 0021, Content: 1.2.840.10008.3.1.1.1
T: Successfully parsed Application Context
T: Parsing remaining 119 bytes of A-ASSOCIATE PDU
T: Next item type: 21
T: Parsing Presentation Context: (21), Length: 27
T: Presentation Context ID: 01
T: Parsing remaining 23 bytes of Presentation Context
T: Next item type: 40
T: Subitem parse: Type 40, Length 0019, Content: 1.2.840.10008.1.2.1
T: Successfully parsed Transfer Syntax
T: Successfully parsed Presentation Context
T: Parsing remaining 88 bytes of A-ASSOCIATE PDU
T: Next item type: 21
T: Parsing Presentation Context: (21), Length: 27
T: Presentation Context ID: 03
T: Parsing remaining 23 bytes of Presentation Context
T: Next item type: 40
T: Subitem parse: Type 40, Length 0019, Content: 1.2.840.10008.1.2.1
T: Successfully parsed Transfer Syntax
T: Successfully parsed Presentation Context
T: Parsing remaining 57 bytes of A-ASSOCIATE PDU
T: Next item type: 50
T: Parsing user info field (50), Length: 53
T: Parsing remaining 53 bytes of User Information
T: Next item type: 51
T: Maximum PDU Length: 32494
T: Successfully parsed Maximum PDU Length
T: Parsing remaining 45 bytes of User Information
T: Next item type: 52
T: Subitem parse: Type 52, Length 0030, Content: 1.2.826.0.1.3680043.2.91.3.1.0
T: Parsing remaining 11 bytes of User Information
T: Next item type: 55
T: Subitem parse: Type 55, Length 0007, Content: 1.0.0.0
T: Successfully parsed User Information
D: Association Parameters Negotiated:
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.3
D: Our Implementation Version Name:   OFFIS_DCMTK_363
D: Their Implementation Class UID:    1.2.826.0.1.3680043.2.91.3.1.0
D: Their Implementation Version Name: 1.0.0.0
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    AET1
D: Called Application Name:     AET1
D: Responding Application Name: AET1
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  32494
D: Presentation Contexts:
D:   Context ID:        1 (Accepted)
D:     Abstract Syntax: =FINDPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianExplicit
D:   Context ID:        3 (Accepted)
D:     Abstract Syntax: =MOVEPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianExplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 32482)
T: DcmItem::insert() Element (0010,0020) VR="LO" inserted at beginning
I: Sending Move Request
D: ===================== OUTGOING DIMSE MESSAGE ====================
D: Message Type                  : C-MOVE RQ
D: Presentation Context ID       : 3
D: Message ID                    : 1
D: Affected SOP Class UID        : MOVEPatientRootQueryRetrieveInformationModel
D: Data Set                      : present
D: Priority                      : medium
D: Move Destination              : AET1
D: ======================= END DIMSE MESSAGE =======================
I: Request Identifiers:
I: 
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0010,0020) LO [1]                                      #   2, 1 PatientID
I: 
T: DcmItem::insert() Element (0000,0000) VR="UL" inserted at beginning
T: DcmItem::insert() Element (0000,0100) VR="US" inserted
T: DcmItem::insert() Element (0000,0110) VR="US" inserted
T: DcmItem::insert() Element (0000,0800) VR="US" inserted
T: DcmItem::insert() Element (0000,0002) VR="UI" inserted
T: DcmItem::insert() Element (0000,0700) VR="US" inserted
T: DcmItem::insert() Element (0000,0600) VR="AE" inserted
T: DIMSE Command to be sent on Presentation Context ID: 3
T: DIMSE Command to send:
T: 
T: # Dicom-Data-Set
T: # Used TransferSyntax: Little Endian Explicit
T: (0000,0000) UL 0                                        #   4, 1 CommandGroupLength
T: (0000,0002) UI =MOVEPatientRootQueryRetrieveInformationModel #  28, 1 AffectedSOPClassUID
T: (0000,0100) US 33                                       #   2, 1 CommandField
T: (0000,0110) US 1                                        #   2, 1 MessageID
T: (0000,0600) AE [AET1]                                   #   4, 1 MoveDestination
T: (0000,0700) US 0                                        #   2, 1 Priority
T: (0000,0800) US 1                                        #   2, 1 CommandDataSetType
T: 
T: DIMSE sendDcmDataset: sending 100 bytes
T: DUL  FSM Table: State: 6 Event: 8
T: DUL  Event:  P-DATA request primitive
T: DUL  Action: DT 1 Send P DATA PDU
T: DIMSE sendDcmDataset: sending 10 bytes
T: DUL  FSM Table: State: 6 Event: 8
T: DUL  Event:  P-DATA request primitive
T: DUL  Action: DT 1 Send P DATA PDU
T: DIMSE receiveCommand
T: Read PDU HEAD TCP: 07 00 00 00 00 04
T: Read PDU HEAD TCP: type: 07, length: 4 (04)
T: DUL  FSM Table: State: 6 Event: 15
T: DUL  Event:  A-ABORT PDU (on transport)
T: DUL  Action: AA 3 Indicate Peer Aborted
E: Move Request Failed: 0006:0317 Peer aborted Association (or never connected)
I: Peer Aborted Association
It's even more interesting while accepted transfer syntax is "LittleEndianImplicit" but movescu tells "I: # Used TransferSyntax: Little Endian Explicit" anyway ...

Code: Select all

T: DcmItem::insert() Element (0010,0020) VR="LO" inserted at beginning
D: $dcmtk: movescu v3.6.3 2018-02-05 $
D: 
D: Request Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.3
D: Our Implementation Version Name:   OFFIS_DCMTK_363
D: Their Implementation Class UID:    
D: Their Implementation Version Name: 
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    MOVESCU
D: Called Application Name:     AET1
D: Responding Application Name: AET1
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  0
D: Presentation Contexts:
D:   Context ID:        1 (Proposed)
D:     Abstract Syntax: =FINDPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianExplicit
D:       =BigEndianExplicit
D:       =LittleEndianImplicit
D:   Context ID:        3 (Proposed)
D:     Abstract Syntax: =MOVEPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Proposed Transfer Syntax(es):
D:       =LittleEndianExplicit
D:       =BigEndianExplicit
D:       =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-RQ ======================
I: Requesting Association
T: DUL  FSM Table: State: 1 Event: 0
T: DUL  Event:  A-ASSOCIATE request (local user)
T: DUL  Action: AE 1 Transport Connect
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
T: checking whether environment variable TCP_BUFFER_LENGTH is set
T:   environment variable TCP_BUFFER_LENGTH not set, using the system defaults
T: checking whether environment variable TCP_NODELAY is set
T:   environment variable TCP_NODELAY not set, using the default value (0)
T: DUL  FSM Table: State: 4 Event: 1
T: DUL  Event:  Transport conn confirmation (local)
T: DUL  Action: AE 2 Send Associate RQ PDU
D: Constructing Associate RQ PDU
T: Read PDU HEAD TCP: 02 00 00 00 00 d0
T: Read PDU HEAD TCP: type: 02, length: 208 (d0)
T: DUL  FSM Table: State: 5 Event: 2
T: DUL  Event:  A-ASSOCIATE-AC PDU (on transport)
T: DUL  Action: AE 3 Associate Confirmation Accept
D: PDU Type: Associate Accept, PDU Length: 208 + 6 bytes PDU header
D:   02  00  00  00  00  d0  00  01  00  00  4d  4f  56  45  53  43
D:   55  20  20  20  20  20  20  20  20  20  41  45  54  31  20  20
D:   20  20  20  20  20  20  20  20  20  20  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
D:   00  00  00  00  00  00  00  00  00  00  10  00  00  15  31  2e
D:   32  2e  38  34  30  2e  31  30  30  30  38  2e  33  2e  31  2e
D:   31  2e  31  21  00  00  19  01  00  00  00  40  00  00  11  31
D:   2e  32  2e  38  34  30  2e  31  30  30  30  38  2e  31  2e  32
D:   21  00  00  19  03  00  00  00  40  00  00  11  31  2e  32  2e
D:   38  34  30  2e  31  30  30  30  38  2e  31  2e  32  50  00  00
D:   35  51  00  00  04  00  00  7e  ee  52  00  00  1e  31  2e  32
D:   2e  38  32  36  2e  30  2e  31  2e  33  36  38  30  30  34  33
D:   2e  32  2e  39  31  2e  33  2e  31  2e  30  55  00  00  07  31
D:   2e  30  2e  30  2e  30
D: Parsing an A-ASSOCIATE PDU
T: PDU type: 2 (A-ASSOCIATE AC), PDU Length: 208
T: DICOM Protocol: 1
T: Called AP Title:  MOVESCU
T: Calling AP Title: AET1
T: Parsing remaining 140 bytes of A-ASSOCIATE PDU
T: Next item type: 10
T: Subitem parse: Type 10, Length 0021, Content: 1.2.840.10008.3.1.1.1
T: Successfully parsed Application Context
T: Parsing remaining 115 bytes of A-ASSOCIATE PDU
T: Next item type: 21
T: Parsing Presentation Context: (21), Length: 25
T: Presentation Context ID: 01
T: Parsing remaining 21 bytes of Presentation Context
T: Next item type: 40
T: Subitem parse: Type 40, Length 0017, Content: 1.2.840.10008.1.2
T: Successfully parsed Transfer Syntax
T: Successfully parsed Presentation Context
T: Parsing remaining 86 bytes of A-ASSOCIATE PDU
T: Next item type: 21
T: Parsing Presentation Context: (21), Length: 25
T: Presentation Context ID: 03
T: Parsing remaining 21 bytes of Presentation Context
T: Next item type: 40
T: Subitem parse: Type 40, Length 0017, Content: 1.2.840.10008.1.2
T: Successfully parsed Transfer Syntax
T: Successfully parsed Presentation Context
T: Parsing remaining 57 bytes of A-ASSOCIATE PDU
T: Next item type: 50
T: Parsing user info field (50), Length: 53
T: Parsing remaining 53 bytes of User Information
T: Next item type: 51
T: Maximum PDU Length: 32494
T: Successfully parsed Maximum PDU Length
T: Parsing remaining 45 bytes of User Information
T: Next item type: 52
T: Subitem parse: Type 52, Length 0030, Content: 1.2.826.0.1.3680043.2.91.3.1.0
T: Parsing remaining 11 bytes of User Information
T: Next item type: 55
T: Subitem parse: Type 55, Length 0007, Content: 1.0.0.0
T: Successfully parsed User Information
D: Association Parameters Negotiated:
D: ====================== BEGIN A-ASSOCIATE-AC =====================
D: Our Implementation Class UID:      1.2.276.0.7230010.3.0.3.6.3
D: Our Implementation Version Name:   OFFIS_DCMTK_363
D: Their Implementation Class UID:    1.2.826.0.1.3680043.2.91.3.1.0
D: Their Implementation Version Name: 1.0.0.0
D: Application Context Name:    1.2.840.10008.3.1.1.1
D: Calling Application Name:    AET1
D: Called Application Name:     AET1
D: Responding Application Name: AET1
D: Our Max PDU Receive Size:    16384
D: Their Max PDU Receive Size:  32494
D: Presentation Contexts:
D:   Context ID:        1 (Accepted)
D:     Abstract Syntax: =FINDPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianImplicit
D:   Context ID:        3 (Accepted)
D:     Abstract Syntax: =MOVEPatientRootQueryRetrieveInformationModel
D:     Proposed SCP/SCU Role: Default
D:     Accepted SCP/SCU Role: Default
D:     Accepted Transfer Syntax: =LittleEndianImplicit
D: Requested Extended Negotiation: none
D: Accepted Extended Negotiation:  none
D: Requested User Identity Negotiation: none
D: User Identity Negotiation Response:  none
D: ======================= END A-ASSOCIATE-AC ======================
I: Association Accepted (Max Send PDV: 32482)
T: DcmItem::insert() Element (0010,0020) VR="LO" inserted at beginning
I: Sending Move Request
D: ===================== OUTGOING DIMSE MESSAGE ====================
D: Message Type                  : C-MOVE RQ
D: Presentation Context ID       : 3
D: Message ID                    : 1
D: Affected SOP Class UID        : MOVEPatientRootQueryRetrieveInformationModel
D: Data Set                      : present
D: Priority                      : medium
D: Move Destination              : AET1
D: ======================= END DIMSE MESSAGE =======================
I: Request Identifiers:
I: 
I: # Dicom-Data-Set
I: # Used TransferSyntax: Little Endian Explicit
I: (0010,0020) LO [1]                                      #   2, 1 PatientID
I: 
T: DcmItem::insert() Element (0000,0000) VR="UL" inserted at beginning
T: DcmItem::insert() Element (0000,0100) VR="US" inserted
T: DcmItem::insert() Element (0000,0110) VR="US" inserted
T: DcmItem::insert() Element (0000,0800) VR="US" inserted
T: DcmItem::insert() Element (0000,0002) VR="UI" inserted
T: DcmItem::insert() Element (0000,0700) VR="US" inserted
T: DcmItem::insert() Element (0000,0600) VR="AE" inserted
T: DIMSE Command to be sent on Presentation Context ID: 3
T: DIMSE Command to send:
T: 
T: # Dicom-Data-Set
T: # Used TransferSyntax: Little Endian Explicit
T: (0000,0000) UL 0                                        #   4, 1 CommandGroupLength
T: (0000,0002) UI =MOVEPatientRootQueryRetrieveInformationModel #  28, 1 AffectedSOPClassUID
T: (0000,0100) US 33                                       #   2, 1 CommandField
T: (0000,0110) US 1                                        #   2, 1 MessageID
T: (0000,0600) AE [AET1]                                   #   4, 1 MoveDestination
T: (0000,0700) US 0                                        #   2, 1 Priority
T: (0000,0800) US 1                                        #   2, 1 CommandDataSetType
T: 
T: DIMSE sendDcmDataset: sending 100 bytes
T: DUL  FSM Table: State: 6 Event: 8
T: DUL  Event:  P-DATA request primitive
T: DUL  Action: DT 1 Send P DATA PDU
T: DIMSE sendDcmDataset: sending 10 bytes
T: DUL  FSM Table: State: 6 Event: 8
T: DUL  Event:  P-DATA request primitive
T: DUL  Action: DT 1 Send P DATA PDU
T: DIMSE receiveCommand
T: Read PDU HEAD TCP: 07 00 00 00 00 04
T: Read PDU HEAD TCP: type: 07, length: 4 (04)
T: DUL  FSM Table: State: 6 Event: 15
T: DUL  Event:  A-ABORT PDU (on transport)
T: DUL  Action: AA 3 Indicate Peer Aborted
E: Move Request Failed: 0006:0317 Peer aborted Association (or never connected)
I: Peer Aborted Association

Michael Onken
DCMTK Developer
Posts: 2049
Joined: Fri, 2004-11-05, 13:47
Location: Oldenburg, Germany
Contact:

Re: Transfer syntax with explicit VR support in dcmtk

#2 Post by Michael Onken »

Hi,

the Command Set (i.e. message header that has all the 0000 group number tags) is always encoded in Little Endian Implicit, no matter what you negotiate for the data set that follows (in your case consisting of the attribute Patient ID). I seems to me that you only have the Command Set in your buffer, so you won't see any VR bytes there. If you go to the dataset portion of the C-MOVE-RQ in Wireshark I am quite sure you will see the Patient ID's VR (LO).

When dumping datasets that were created in memory, I think that DCMTK uses the (uncompressed) representation of it that it currently has in memory, which is Little Endian Explicit on a Little Endian machine. My DCMTK colleagues might correct me if they know better from the top of their head. That is why it always prints Little Endian Explicit during the dump, and you will never see it stating Little Endian Implicit instead. You can be quite sure that movescu will send the negotiated transfer syntax, which should also be visible in Wireshark.

Best,
Michael

mmilej
Posts: 2
Joined: Mon, 2018-11-05, 15:16
Contact:

Re: Transfer syntax with explicit VR support in dcmtk

#3 Post by mmilej »

Ok, Thank you for the clarification. Now it makes it clear about Command Set encoding.

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 1 guest