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
DcmSCP:how to program handleMoveRequest function?
Moderator: Moderator Team
-
- Posts: 101
- Joined: Wed, 2009-07-08, 16:06
- Location: Oldenburg, Germany
Re: DcmSCP:how to program handleMoveRequest function?
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
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
Re: DcmSCP:how to program handleMoveRequest function?
Thank you omarelgazzar.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
how to create the database at your suggestion 1??1. Internally find matches for the move request query from your database.
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..
Re: DcmSCP:how to program handleMoveRequest function?
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.
Who is online
Users browsing this forum: Bing [Bot], Google [Bot], Majestic-12 [Bot] and 1 guest