public CFindSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.rootLevel = QueryRetrieveLevel.valueOf(qrLevels[0]); }
public CGetSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.withoutBulkData = qrLevels.length == 0; this.rootLevel = withoutBulkData ? QueryRetrieveLevel.IMAGE : QueryRetrieveLevel.valueOf(qrLevels[0]); }
public CGetSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.withoutBulkData = qrLevels.length == 0; this.rootLevel = withoutBulkData ? QueryRetrieveLevel.IMAGE : QueryRetrieveLevel.valueOf(qrLevels[0]); }
public CMoveSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.rootLevel = QueryRetrieveLevel.valueOf(qrLevels[0]); }
public CMoveSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.rootLevel = QueryRetrieveLevel.valueOf(qrLevels[0]); }
public CFindSCPImpl(String sopClass, String... qrLevels) { super(sopClass); this.qrLevels = qrLevels; this.rootLevel = QueryRetrieveLevel.valueOf(qrLevels[0]); }
@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 QueryTask calculateMatches(Association as, PresentationContext pc, Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateQueryKeys(keys, rootLevel, rootLevel == QueryRetrieveLevel.IMAGE || relational(as, rq)); switch(level) { case PATIENT: return new PatientQueryTask(as, pc, rq, keys, DcmQRSCP.this); case STUDY: return new StudyQueryTask(as, pc, rq, keys, DcmQRSCP.this); case SERIES: return new SeriesQueryTask(as, pc, rq, keys, DcmQRSCP.this); case IMAGE: return new InstanceQueryTask(as, pc, rq, keys, DcmQRSCP.this); default: assert true; } throw new AssertionError(); }
@Override protected QueryTask calculateMatches(Association as, PresentationContext pc, Attributes rq, Attributes keys) throws DicomServiceException { QueryRetrieveLevel level = QueryRetrieveLevel.valueOf(keys, qrLevels); level.validateQueryKeys(keys, rootLevel, rootLevel == QueryRetrieveLevel.IMAGE || relational(as, rq)); switch(level) { case PATIENT: return new PatientQueryTask(as, pc, rq, keys, DcmQRSCP.this); case STUDY: return new StudyQueryTask(as, pc, rq, keys, DcmQRSCP.this); case SERIES: return new SeriesQueryTask(as, pc, rq, keys, DcmQRSCP.this); case IMAGE: return new InstanceQueryTask(as, pc, rq, keys, DcmQRSCP.this); default: assert true; } throw new AssertionError(); }
public static QueryRetrieveLevel valueOf(Attributes attrs, String[] qrLevels) throws DicomServiceException { ValidationResult result = new ValidationResult(); attrs.validate(new IOD.DataElement(Tag.QueryRetrieveLevel, VR.LO, IOD.DataElementType.TYPE_1, 1, 1, 0).setValues(qrLevels), result); check(result); return QueryRetrieveLevel.valueOf(attrs.getString(Tag.QueryRetrieveLevel)); }
public static QueryRetrieveLevel valueOf(Attributes attrs, String[] qrLevels) throws DicomServiceException { ValidationResult result = new ValidationResult(); attrs.validate(new IOD.DataElement(Tag.QueryRetrieveLevel, VR.LO, IOD.DataElementType.TYPE_1, 1, 1, 0).setValues(qrLevels), result); check(result); return QueryRetrieveLevel.valueOf(attrs.getString(Tag.QueryRetrieveLevel)); }
@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; }