@Override protected RetrieveTask calculateMatches(Association as, PresentationContext pc, Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = withoutBulkData ? QueryRetrieveLevel.IMAGE : QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateRetrieveKeys(keys, rootLevel, relational(as, rq)); List<InstanceLocator> matches = DcmQRSCP.this.calculateMatches(keys); if (matches.isEmpty()) return null; RetrieveTaskImpl retrieveTask = new RetrieveTaskImpl( Dimse.C_GET_RQ, as, pc, rq, matches, as, withoutBulkData, delayCStore); retrieveTask.setSendPendingRSP(isSendPendingCGet()); return retrieveTask; }
@Override protected RetrieveTask calculateMatches(Association as, PresentationContext pc, Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = withoutBulkData ? QueryRetrieveLevel.IMAGE : QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateRetrieveKeys(keys, rootLevel, relational(as, rq)); List<InstanceLocator> matches = DcmQRSCP.this.calculateMatches(keys); if (matches.isEmpty()) return null; RetrieveTaskImpl retrieveTask = new RetrieveTaskImpl( Dimse.C_GET_RQ, as, pc, rq, matches, as, withoutBulkData, delayCStore); retrieveTask.setSendPendingRSP(isSendPendingCGet()); return retrieveTask; }
@Override protected RetrieveTask calculateMatches(Association as, PresentationContext pc, final Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateRetrieveKeys(keys, rootLevel, relational(as, rq)); String moveDest = rq.getString(Tag.MoveDestination); final Connection remote = getRemoteConnection(moveDest); if (remote == null) throw new DicomServiceException(Status.MoveDestinationUnknown, "Move Destination: " + moveDest + " unknown"); List<InstanceLocator> matches = DcmQRSCP.this.calculateMatches(keys); if (matches.isEmpty()) return null; AAssociateRQ aarq = makeAAssociateRQ(as.getLocalAET(), moveDest, matches); Association storeas = openStoreAssociation(as, remote, aarq); BasicRetrieveTask retrieveTask = new RetrieveTaskImpl( Dimse.C_MOVE_RQ, as, pc, rq, matches, storeas, false, delayCStore); retrieveTask.setSendPendingRSPInterval(getSendPendingCMoveInterval()); return retrieveTask; }
@Override protected RetrieveTask calculateMatches(Association as, PresentationContext pc, final Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateRetrieveKeys(keys, rootLevel, relational(as, rq)); String moveDest = rq.getString(Tag.MoveDestination); final Connection remote = getRemoteConnection(moveDest); if (remote == null) throw new DicomServiceException(Status.MoveDestinationUnknown, "Move Destination: " + moveDest + " unknown"); List<InstanceLocator> matches = DcmQRSCP.this.calculateMatches(keys); if (matches.isEmpty()) return null; AAssociateRQ aarq = makeAAssociateRQ(as.getLocalAET(), moveDest, matches); Association storeas = openStoreAssociation(as, remote, aarq); BasicRetrieveTask retrieveTask = new RetrieveTaskImpl( Dimse.C_MOVE_RQ, as, pc, rq, matches, storeas, false, delayCStore); retrieveTask.setSendPendingRSPInterval(getSendPendingCMoveInterval()); return retrieveTask; }