DcmSCP:how to program handleMoveRequest function?

All other questions regarding DCMTK

Moderator: Moderator Team

Post Reply
Message
Author
qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

DcmSCP:how to program handleMoveRequest function?

#1 Post by qimo601 »

hi,all.

I am using DCMTK3.6.1(20120831) .

If I call DcmSCU::sendMOVERequest on client , how to write the DcmSCP::handleMoveRequest() on server?

Can anybody give me a example to describe the process about C-Move In DcmSCU and DcmSCP class?


Thanks
qimo

omarelgazzar
Posts: 101
Joined: Wed, 2009-07-08, 16:06
Location: Oldenburg, Germany

Re: DcmSCP:how to program handleMoveRequest function?

#2 Post by omarelgazzar »

Hello,

In order to handle the move request, you need to overwrite the function DcmSCP::handleMoveRequest to perform the following:
1. Internally find matches for the move request query from your database.
2. Start a new association with the remote move destination application to store SOP instances using C-Store suboperations.
3. Optionally send C-Move-Rsp in between with the number of remaining, failed, completed instances.
4. Send a final C-Move response indicating the final status failure, success or refuse..

Note that you need to support C-Move cancel sent by the scu to abort sending sop instances. For a complete description, please refer to the DICOM standard part 4 PS 3.4 C.4.2.3

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: DcmSCP:how to program handleMoveRequest function?

#3 Post by qimo601 »

omarelgazzar wrote:Hello,

In order to handle the move request, you need to overwrite the function DcmSCP::handleMoveRequest to perform the following:
1. Internally find matches for the move request query from your database.
2. Start a new association with the remote move destination application to store SOP instances using C-Store suboperations.
3. Optionally send C-Move-Rsp in between with the number of remaining, failed, completed instances.
4. Send a final C-Move response indicating the final status failure, success or refuse..

Note that you need to support C-Move cancel sent by the scu to abort sending sop instances. For a complete description, please refer to the DICOM standard part 4 PS 3.4 C.4.2.3
Thank you omarelgazzar.
1. Internally find matches for the move request query from your database.
how to create the database at your suggestion 1??

If a send moveRequest from DcmSCU, how to match these requests?
For example the command :
movescu -k 0010,0020=PAT002 caesar 5678 patqry.dcm

I guess it to match the request like this??
First find the dcmFile by patqry.dcm in DcmSCP's handleMoveRequest Function.
Then open this file by DcmFileFormat class.
Last verify this dcmFile's element (0010,0020)
If all above are right,then execute your suggestion 2,3,4?????????

2. Start a new association with the remote move destination application to store SOP instances using C-Store suboperations.
3. Optionally send C-Move-Rsp in between with the number of remaining, failed, completed instances.
4. Send a final C-Move response indicating the final status failure, success or refuse..

qimo601
Posts: 32
Joined: Wed, 2012-06-06, 07:38

Re: DcmSCP:how to program handleMoveRequest function?

#4 Post by qimo601 »

omarelgazzar wrote:Hello,

In order to handle the move request, you need to overwrite the function DcmSCP::handleMoveRequest to perform the following:
1. Internally find matches for the move request query from your database.
2. Start a new association with the remote move destination application to store SOP instances using C-Store suboperations.
3. Optionally send C-Move-Rsp in between with the number of remaining, failed, completed instances.
4. Send a final C-Move response indicating the final status failure, success or refuse..

Note that you need to support C-Move cancel sent by the scu to abort sending sop instances. For a complete description, please refer to the DICOM standard part 4 PS 3.4 C.4.2.3

Recently I have read the DICOM Basic Worklist Management SCP .
In order to reply moveRequest from DcmSCU, DcmSCP should match the searching keys,
but how to find the matched dicom filePaths and filenames through worklist??Then i will make a new association send images to DcmSCU with storeSOP instances .

I can only see these return keys.
As return keys the following attributes are currently supported by wlmscpfs:

(0008,0050) AccessionNumber
(0008,0080) InstitutionName
(0008,0081) InstitutionAddress
(0008,0090) ReferringPhysicianName
(0008,1080) AdmittingDiagnosesDescription
(0008,1110) ReferencedStudySequence
(0008,1150) > ReferencedSOPClassUID
(0008,1155) > ReferencedSOPInstanceUID
(0008,1120) ReferencedPatientSequence
(0008,1150) > ReferencedSOPClassUID
(0008,1155) > ReferencedSOPInstanceUID
(0010,0010) PatientName
(0010,0020) PatientID
(0010,0030) PatientBirthDate
(0010,0040) PatientSex
(0010,1000) OtherPatientIDs
(0010,1001) OtherPatientNames
(0010,1020) PatientSize
(0010,1030) PatientWeight
(0010,1040) PatientAddress
(0010,1080) MilitaryRank
(0010,2000) MedicalAlerts
(0010,2110) ContrastAllergies
(0010,2160) EthnicGroup
(0010,21a0) SmokingStatus
(0010,21b0) AdditionalPatientHistory
(0010,21c0) PregnancyStatus
(0010,21d0) LastMenstrualDate
(0010,4000) PatientComments
(0020,000d) StudyInstanceUID
(0032,1032) RequestingPhysician
(0032,1033) RequestingService
(0032,1060) RequestedProcedureDescription
(0032,1064) RequestedProcedureCodeSequence
(0008,0100) > CodeValue
(0008,0102) > CodingSchemeDesignator
(0008,0103) > CodingSchemeVersion
(0008,0104) > CodeMeaning
(0038,0010) AdmissionID
(0038,0011) IssuerOfAdmissionID
(0038,0050) SpecialNeeds
(0038,0300) CurrentPatientLocation
(0038,0500) PatientState
(0040,0100) ScheduledProcedureStepSequence
(0008,0060) > Modality
(0032,1070) > RequestedContrastAgent
(0040,0001) > ScheduledStationAETitle
(0040,0002) > ScheduledProcedureStepStartDate
(0040,0003) > ScheduledProcedureStepStartTime
(0040,0004) > ScheduledProcedureStepEndDate
(0040,0005) > ScheduledProcedureStepEndTime
(0040,0006) > ScheduledPerformingPhysicianName
(0040,0007) > ScheduledProcedureStepDescription
(0040,0008) > ScheduledProtocolCodeSequence
(0008,0100) > > CodeValue
(0008,0102) > > CodingSchemeDesignator
(0008,0103) > > CodingSchemeVersion
(0008,0104) > > CodeMeaning
(0040,0009) > ScheduledProcedureStepID
(0040,0010) > ScheduledStationName
(0040,0011) > ScheduledProcedureStepLocation
(0040,0012) > PreMedication
(0040,0020) > ScheduledProcedureStepStatus
(0040,0400) > CommentsOnTheScheduledProcedureStep
(0040,1001) RequestedProcedureID
(0040,1002) ReasonForTheRequestedProcedure
(0040,1003) RequestedProcedurePriority
(0040,1004) PatientTransportArrangements
(0040,1005) RequestedProcedureLocation
(0040,1008) ConfidentialityCode
(0040,1009) ReportingPriority
(0040,1010) NamesOfIntendedRecipientsOfResults
(0040,1400) RequestedProcedureComments
(0040,2001) ReasonForTheImagingServiceRequest
(0040,2004) IssueDateOfImagingServiceRequest
(0040,2005) IssueTimeOfImagingServiceRequest
(0040,2008) OrderEnteredBy
(0040,2009) OrderEnterersLocation
(0040,2010) OrderCallbackPhoneNumber
(0040,2016) PlacerOrderNumberImagingServiceRequest
(0040,2017) FillerOrderNumberImagingServiceRequest
(0040,2400) ImagingServiceRequestComments
(0040,3001) ConfidentialityConstraintOnPatientDataDescription
The attribute (0008,0005) SpecificCharacterSet is a special case and its support by wlmscpfs is discussed in the NOTES section above.

Post Reply

Who is online

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