[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Aeskulap-users] aeskulap dicom issues
From: |
Mitchell Laks |
Subject: |
Re: [Aeskulap-users] aeskulap dicom issues |
Date: |
Wed, 11 Apr 2007 23:27:55 -0400 |
User-agent: |
Mutt/1.5.13 (2006-08-11) |
Alex,
you need to review the definition of the
Patient root model
*********************
more importantly look at the FAQ #38 on dcmtk forum
FAQ #38: How can I use findscu for a query with the query/retrieve service?
Joined: 02 Nov 2004
Posts: 117
Location: Oldenburg, Germany
PostPosted: Wed, 2005-01-19, 13:31 Post subject: FAQ #38: How can I use
findscu for a query with the query/retrieve service? Reply with quote
Question How can I use findscu for a query with the query/retrieve service?
Exclamation Here is an example: using findscu to query an image from a
query/retrieve SCP using the patient root information model:
Code:
findscu -v -P -k 0008,0052="IMAGE" -k 0010,0020="300019" -k 0020,000D="1.2.3.1"
-k 0020,000E="1.2.3.2" -k 0008,0018="1.2.3.3" localhost 104
Explanation:
* -v runs the application in verbose mode
* -P specifies to use the patient root information model
* -k 0008,0052="IMAGE" tells the application that you are querying on image
level (i.e. for an image)
* -k 0010,0020="300019" is the patient ID of the patient in question
(unique key on patient level)
* -k 0020,000D="1.2.3.1" is the study instance uid of the study in question
(unique key on study level)
* -k 0020,000E="1.2.3.2" is the series instance uid of the series in
question (unique key on series level)
* -k 0008,0018="1.2.3.3" is the sop instance uid of the image in question
(unique key on image level)
* localhost is the machine the query/retrieve SCP is running on
* 104 is the port the query/retrieve SCP is listening to.
Note that when you are querying on a certain query level (attribute 0008,0052
set to either PATIENT, STUDY, SERIES or IMAGE), you have to specify all unique
keys of levels which are above this level; e.g. on image level, you have to
specify a patient id, a study instance uid and a series instance uid to denote
the patient/study/series you are referring to, and of course you have to
finally provide a sop instance uid to specify the image you are looking for.
*******************8
thus you do NOT have a valid dicom query because you do NOT have a
* unique key on patient level
which must be the PATIENTID which we do not know.
I also tried to use only the patient ID and no name attribute:
here is the aeskulap output:
******************
address@hidden:~$ aeskulap
datadir: /usr/local/share
trying to load '/usr/local/share/aeskulap/images/grid-1.png'
trying to load '/usr/local/share/aeskulap/images/grid-2h.png'
trying to load '/usr/local/share/aeskulap/images/grid-2v.png'
trying to load '/usr/local/share/aeskulap/images/grid-4.png'
trying to load '/usr/local/share/aeskulap/images/grid-16.png'
trying to load '/usr/local/share/aeskulap/images/stock-tool-scale-22.png'
trying to load '/usr/local/share/aeskulap/images/stock-layers-24.png'
trying to load '/usr/local/share/aeskulap/images/series-1x1.png'
trying to load '/usr/local/share/aeskulap/images/series-2x1.png'
trying to load '/usr/local/share/aeskulap/images/series-2x2.png'
trying to load '/usr/local/share/aeskulap/images/series-3x2.png'
trying to load '/usr/local/share/aeskulap/images/series-3x3.png'
trying to load '/usr/local/share/aeskulap/images/series-4x4.png'
trying to load '/usr/local/share/aeskulap/images/stock-tool-eraser-22.png'
trying to load '/usr/local/share/aeskulap/images/cursor_pan.png'
trying to load '/usr/local/share/aeskulap/images/stock-tool-measure-22.png'
trying to load '/usr/local/share/aeskulap/images/aeskulap.png'
prescan: 0
on_windowlevels_modality_changed() - indexint: 0
StudyManager::on_filter_search()
turning cursor busy
NEW QUERY:
# Dicom-Data-Set
# Used TransferSyntax: UnknownTransferSyntax
(0008,0005) CS [ISO_IR 100] # 10, 1
SpecificCharacterSet
(0008,0020) DA (no value available) # 0, 0 StudyDate
(0008,0030) TM (no value available) # 0, 0 StudyTime
(0008,0052) CS [STUDY] # 6, 1
QueryRetrieveLevel
(0008,0061) CS (no value available) # 0, 0
ModalitiesInStudy
(0008,1010) SH (no value available) # 0, 0 StationName
(0008,1030) LO (no value available) # 0, 0
StudyDescription
(0010,0010) PN [*] # 2, 1 PatientsName
(0010,0020) LO [3273016] # 8, 1 PatientID
(0010,0030) DA (no value available) # 0, 0
PatientsBirthDate
(0010,0040) CS (no value available) # 0, 0 PatientsSex
(0020,000d) UI (no value available) # 0, 0
StudyInstanceUID
(0020,0010) SH (no value available) # 0, 0 StudyID
QueryServerGroup()
T::SendObject()
Status Detail:
# Dicom-Data-Set
# Used TransferSyntax: LittleEndianImplicit
(0000,0902) LO [Query was formatted improperly. Check required keys] # 52, 1
ErrorComment
T::Drop()
T::Destroy()
cursor busy off
no results !!!
**************
while this is the ctn output:
Supported classes: 1
23282 Rashi
Forked child
ACCEPTED (AES localhost meshulums fun) (Rashi ) 20070411 232058.000000 23461
Parent
CFind Request
Message ID: 1
Data Set Type: 0001
Priority: 0002
Class UID: 1.2.840.10008.5.1.4.1.2.1.1
Find callback
SOP Class: 1.2.840.10008.5.1.4.1.2.1.1
Query Level: STUDY
Response Count: 1
DCM Dump Elements
Object type: ELEMENT LIST
Object size: 130
Group: 0008, Length: 72
0008 0005 10 // ID Specific Character Set//ISO_IR 100
0008 0020 0 // ID Study Date//
0008 0030 0 // ID Study Time//
0008 0052 5 // ID Query Level//STUDY
0008 0061 0 // ID Modalities in Study//
0008 1010 0 // ID Station Name//
0008 1030 0 // ID Study Description//
Group: 0010, Length: 42
0010 0010 1 // PAT Patient Name//*
0010 0020 7 // PAT Patient ID//3273016
0010 0030 0 // PAT Patient Birthdate//
0010 0040 0 // PAT Patient Sex//
Group: 0020, Length: 16
0020 000d 0 // REL Study Instance UID//
0020 0010 0 // REL Study ID//
DCM Dump Elements Complete
STUDY level query, Patient Root model is missing Patient ID (0010 0020) or has
extra PATIENT level attributes
Find callback
SOP Class: 1.2.840.10008.5.1.4.1.2.1.1
Query Level: STUDY
Response Count: 2
Writing to network: Connection reset by peer
f0012 TCP I/O Error (Illegal seek) occurred in routine: sendReleaseRPTCP
Exiting
Supported classes: 1
23461 Rashi
Forked child
ACCEPTED (AES localhost meshulums fun) (Rashi ) 20070411 232408.000000 23484
Parent
CFind Request
Message ID: 1
Data Set Type: 0001
Priority: 0002
Class UID: 1.2.840.10008.5.1.4.1.2.1.1
Find callback
SOP Class: 1.2.840.10008.5.1.4.1.2.1.1
Query Level: STUDY
Response Count: 1
DCM Dump Elements
Object type: ELEMENT LIST
Object size: 130
Group: 0008, Length: 72
0008 0005 10 // ID Specific Character Set//ISO_IR 100
0008 0020 0 // ID Study Date//
0008 0030 0 // ID Study Time//
0008 0052 5 // ID Query Level//STUDY
0008 0061 0 // ID Modalities in Study//
0008 1010 0 // ID Station Name//
0008 1030 0 // ID Study Description//
Group: 0010, Length: 42
0010 0010 1 // PAT Patient Name//*
0010 0020 7 // PAT Patient ID//3273016
0010 0030 0 // PAT Patient Birthdate//
0010 0040 0 // PAT Patient Sex//
Group: 0020, Length: 16
0020 000d 0 // REL Study Instance UID//
0020 0010 0 // REL Study ID//
DCM Dump Elements Complete
STUDY level query, Patient Root model is missing Patient ID (0010 0020) or has
extra PATIENT level attributes
Find callback
SOP Class: 1.2.840.10008.5.1.4.1.2.1.1
Query Level: STUDY
Response Count: 2
Writing to network: Connection reset by peer
f0012 TCP I/O Error (Illegal seek) occurred in routine: sendReleaseRPTCP
Exiting
************
thus you need to review the definitions of the query levels carefully:
I should point out that i also corrected the people at osirix about this sort
of thing
using the same test bed. :)
they made similar errors initially too.
I stil think you should focus on display and comparison though.
Mitchell