Open gkowalski opened 1 month ago
Interesting . I've verified by pulling down this same accession that all the images and SR have SOPClassUID in them ( Im using HOROS tool to download them ) . But in PACS it shows that there are 278 things in this accession. But when I pull them down I only get 276 actual DICOM objects of various SOPClassUID's . I'm wondering if HOROS is just dropping those other objects on the request to download.
ok , as a test I set the Storage classes permitted to only have one :
CT Image Storage | 1.2.840.10008.5.1.4.1.1.1.2
Now it gets past the initial error and get :
2024-09-23 14:06:16,581 ERROR GetStudyUIDHierarchies controller.project.get_study_uid_hierarchy.1550 Unable to retrieve UID Hierarchy for reliable import operation via DICOM C-MOVE. QUERY Server did not return the number of instances in a series. Standard DICOM field (0020,1209) NumberOfSeriesRelatedInstances is missing in the query response.
Any way of playing with the tags it's expecting to see , or have it at least ignore them ?
Please check the dataset metadata in the DICOM file header, it must have a SOPClassUID element with a valid value for it to be a valid DICOM file.
You can use dcmdump (or DICOM viewer with metadata function) to see the header
On Mon, 23 Sept 2024 at 20:48, George Kowalski @.***> wrote:
Trying to download various Accessions and the query works , but the "Import and Anonymize" always errors out with a no attribute 'SOPClassUID' error. Any ideas where to look :
2024-09-23 13:40:49,825 DEBUG GetStudyUIDHierarchies pydicom.data_element_generator.215 000000c2: 31 20 b'1 ' 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2069 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2070 # Response Identifier 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0008,0052) CS [SERIES] # 1 QueryRetrieveLevel 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0008,0054) AE [ALI_QUERY_SCP] # 1 RetrieveAETitle 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0008,0060) CS [DX] # 1 Modality 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0008,103E) LO [LAT] # 1 SeriesDescription 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0020,000D) UI [1.2.840.114350.2.35.2.798268.2.474531864.1] # 1 StudyInstanceUID 2024-09-23 13:40:49,826 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0020,000E) UI [1.2.392.200046.100.14.46852710304164419972798132664950223240] # 1 SeriesInstanceUID 2024-09-23 13:40:49,827 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0020,0011) IS [3] # 1 SeriesNumber 2024-09-23 13:40:49,827 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2072 (0020,1209) IS [1] # 1 NumberOfSeriesRelatedInstances 2024-09-23 13:40:49,827 INFO GetStudyUIDHierarchies pynetdicom.association._wrap_find_responses.2073 2024-09-23 13:40:49,827 ERROR GetStudyUIDHierarchies controller.project.get_study_uid_hierarchy.1550 'Dataset' object has no attribute 'SOPClassUID' 2024-09-23 13:40:49,827 DEBUG Thread-9 (run_reactor) pynetdicom.dsutils.decode.114 pydicom.read_dataset() TransferSyntax="Little Endian Implicit"```
— Reply to this email directly, view it on GitHub https://github.com/RSNA/anonymizer/issues/11, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIXFID45HLQMJOD3F3DRGTZYBO6FAVCNFSM6AAAAABOWV3REKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU2DGMZZGQZDGMI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
Try using a different Move level using the drop down box next to the Import & Anonymizer button
For explanation of C-MOVE issues please refer to documentation
On Mon, 23 Sept 2024 at 21:10, George Kowalski @.***> wrote:
ok , as a test I set the SStorage class to only have :
CT Image Storage | 1.2.840.10008.5.1.4.1.1.1.2
Now it gets past the initial error and get :
2024-09-23 14:06:16,581 ERROR GetStudyUIDHierarchies controller.project.get_study_uid_hierarchy.1550 Unable to retrieve UID Hierarchy for reliable import operation via DICOM C-MOVE. QUERY Server did not return the number of instances in a series. Standard DICOM field (0020,1209) NumberOfSeriesRelatedInstances is missing in the query response.
Any way of playing with the tags it's expecting to see , or have it at least ignore them ?
— Reply to this email directly, view it on GitHub https://github.com/RSNA/anonymizer/issues/11#issuecomment-2369144812, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIXFIFZQU4QA7OYTNYLVCTZYBRTXAVCNFSM6AAAAABOWV3REKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRZGE2DIOBRGI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
Which server are you querying?
On Mon, 23 Sept 2024 at 21:13, Michael Evans @.***> wrote:
Try using a different Move level using the drop down box next to the Import & Anonymizer button
For explanation of C-MOVE issues please refer to documentation
On Mon, 23 Sept 2024 at 21:10, George Kowalski @.***> wrote:
ok , as a test I set the SStorage class to only have :
CT Image Storage | 1.2.840.10008.5.1.4.1.1.1.2
Now it gets past the initial error and get :
2024-09-23 14:06:16,581 ERROR GetStudyUIDHierarchies controller.project.get_study_uid_hierarchy.1550 Unable to retrieve UID Hierarchy for reliable import operation via DICOM C-MOVE. QUERY Server did not return the number of instances in a series. Standard DICOM field (0020,1209) NumberOfSeriesRelatedInstances is missing in the query response.
Any way of playing with the tags it's expecting to see , or have it at least ignore them ?
— Reply to this email directly, view it on GitHub https://github.com/RSNA/anonymizer/issues/11#issuecomment-2369144812, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIXFIFZQU4QA7OYTNYLVCTZYBRTXAVCNFSM6AAAAABOWV3REKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRZGE2DIOBRGI . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
They could possibly be presentation objects or similar, when you do the Query, what do you see next to this study in the column: "Modalities" next to "Accession No." column?
On Mon, 23 Sept 2024 at 21:03, George Kowalski @.***> wrote:
Interesting . I've verified by pulling down this same accession that all the images and SR have SOPClassUID in them ( Im using HOROS tool to download them ) . But in PACS it shows that there are 278 things in this accession. But when I pull them down I only get 276 actual DICOM objects of various SOPClassUID's . I'm wondering if HOROS is just dropping those other objects on the request to download.
— Reply to this email directly, view it on GitHub https://github.com/RSNA/anonymizer/issues/11#issuecomment-2369129607, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIXFIFE6NYRMTKGA44EAVLZYBQZVAVCNFSM6AAAAABOWV3REKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRZGEZDSNRQG4 . You are receiving this because you are subscribed to this thread.Message ID: @.***>
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
So I tried :
at least importing from the filesystem works . I will try downloading the same accession with horos, then importing the same data set with anonymizer
Well Import of those same images shows that some were QUARANTINE'ed . Dumped one
dcmdump IM-0003-0001.dcm
# Dicom-File-Format
# Dicom-Meta-Information-Header
# Used TransferSyntax: Little Endian Explicit
(0002,0000) UL 212 # 4, 1 FileMetaInformationGroupLength
(0002,0001) OB 00\01 # 2, 1 FileMetaInformationVersion
(0002,0002) UI =KeyObjectSelectionDocumentStorage # 30, 1 MediaStorageSOPClassUID
(0002,0003) UI [1.2.840.113711.97687293.4.37484.747694861.365657005.125803] # 58, 1 MediaStorageSOPInstanceUID
(0002,0010) UI =LittleEndianExplicit # 20, 1 TransferSyntaxUID
(0002,0012) UI [1.2.276.0.7238010.5.0.3.5.4] # 28, 1 ImplementationClassUID
(0002,0013) SH [OSIRIX] # 6, 1 ImplementationVersionName
(0002,0016) AE [MCW_SCU] # 8, 1 SourceApplicationEntityTitle
# Dicom-Data-Set
# Used TransferSyntax: Little Endian Explicit
(0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet
(0008,0016) UI =KeyObjectSelectionDocumentStorage # 30, 1 SOPClassUID
ok m that's a wierd SOPClassUID .
Please can you send me a few sample files to analyze
On Mon, 23 Sept 2024 at 22:17, George Kowalski @.***> wrote:
Well Import of those same images shows that some were QUARANTINE'ed . Dumped one
dcmdump IM-0003-0001.dcm
Dicom-File-Format
Dicom-Meta-Information-Header
Used TransferSyntax: Little Endian Explicit
(0002,0000) UL 212 # 4, 1 FileMetaInformationGroupLength (0002,0001) OB 00\01 # 2, 1 FileMetaInformationVersion (0002,0002) UI =KeyObjectSelectionDocumentStorage # 30, 1 MediaStorageSOPClassUID (0002,0003) UI [1.2.840.113711.97687293.4.37484.747694861.365657005.125803] # 58, 1 MediaStorageSOPInstanceUID (0002,0010) UI =LittleEndianExplicit # 20, 1 TransferSyntaxUID (0002,0012) UI [1.2.276.0.7238010.5.0.3.5.4] # 28, 1 ImplementationClassUID (0002,0013) SH [OSIRIX] # 6, 1 ImplementationVersionName (0002,0016) AE [MCW_SCU] # 8, 1 SourceApplicationEntityTitle
Dicom-Data-Set
Used TransferSyntax: Little Endian Explicit
(0008,0005) CS [ISO_IR 100] # 10, 1 SpecificCharacterSet (0008,0016) UI =KeyObjectSelectionDocumentStorage # 30, 1 SOPClassUID
ok m that's a wierd SOPClassUID .
— Reply to this email directly, view it on GitHub https://github.com/RSNA/anonymizer/issues/11#issuecomment-2369291663, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABIXFIATVIH7XUCNZGIMMYLZYBZPNAVCNFSM6AAAAABOWV3REKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGNRZGI4TCNRWGM . You are receiving this because you commented.Message ID: @.***>
-- Michael Evans DX.LIFE (Pty) Ltd. +27 72 584 6989
The file in the Unknown_user.zip: 1.2.840.113711.5.1.2519599859.1282256193.5688852202731011975.dcm
Has modality of "PR" (presentation state)
I configured an Anonymizer project to allow Modality PR and then retrieved this file from a Horos instance without error.
The other file: 1.2.840.113711.97687293.4.37484.747694861.365657005.125803.dcm is imported into Horos ok but the metadata is not viewable within Horos and this instance is not returned to Anonymizer for any Query.
As you picked up, this file has SOPClassUID=1.2.840.10008.5.1.4.1.1.88.59, Modality = KO => Key Object Selection Document Storage
As I previously stated, this modality is not available in the Project Settings/Modalities however, it can be set using Project Settings/Storage Classes
Scroll down and click: 1.2.840.10008.5.1.4.1.1.88.59
I was then able to import this file using File/Import Files.
I'll give it a try.
Trying to download various Accessions and the query works , but the "Import and Anonymize" always errors out with a no attribute 'SOPClassUID' error. Any ideas where to look :