private void checkPendingSeriesStored() throws Exception {
   Storage store = getStorage();
   SeriesStored[] seriesStored = store.checkSeriesStored(pendingSeriesStoredTimeout);
   for (int i = 0; i < seriesStored.length; i++) {
     log.info("Detect pending " + seriesStored[i]);
     scp.doAfterSeriesIsStored(store, null, seriesStored[i]);
   }
 }
  /**
   * Imports a DICOM file.
   *
   * <p>The FileDTO object refers to an existing DICOM file (This method does NOT check this file!)
   * and the Dataset object holds the meta data for database.
   *
   * <p>
   *
   * @param fileDTO Refers the DICOM file.
   * @param ds Dataset with metadata for database.
   * @param last last file to import
   */
  public void importFile(FileDTO fileDTO, Dataset ds, String prevseriuid, boolean last)
      throws Exception {
    Storage store = getStorage();
    String seriud = ds.getString(Tags.SeriesInstanceUID);
    if (prevseriuid != null && !prevseriuid.equals(seriud)) {
      SeriesStored seriesStored = store.makeSeriesStored(prevseriuid);
      if (seriesStored != null) {
        log.debug("Send SeriesStoredNotification - series changed");
        scp.doAfterSeriesIsStored(store, null, seriesStored);
      }
    }
    String cuid = ds.getString(Tags.SOPClassUID);
    String iuid = ds.getString(Tags.SOPInstanceUID);
    FileMetaInfo fmi =
        DcmObjectFactory.getInstance().newFileMetaInfo(cuid, iuid, fileDTO.getFileTsuid());
    ds.setFileMetaInfo(fmi);
    String fsPath = fileDTO.getDirectoryPath();
    String filePath = fileDTO.getFilePath();
    File f = FileUtils.toFile(fsPath, filePath);

    // Modified by [email protected] on 01.09.2009
    // In case the file is not stored in file system but somewhere else
    //      scp.updateDB(store, ds, fileDTO.getFileSystemPk(), filePath, f.length(),
    //              fileDTO.getFileMd5(), true);
    scp.updateDB(
        store,
        ds,
        fileDTO.getFileSystemPk(),
        filePath,
        fileDTO.getFileSize(),
        fileDTO.getFileMd5(),
        true);
    if (last) {
      SeriesStored seriesStored = store.makeSeriesStored(seriud);
      if (seriesStored != null) {
        scp.doAfterSeriesIsStored(store, null, seriesStored);
      }
    }
  }
 public final boolean isMd5sumReferencedFile() {
   return scp.isMd5sumReferencedFile();
 }
 public final ObjectName getPerfMonServiceName() {
   return scp.getPerfMonServiceName();
 }
 /** @return Returns the checkIncorrectWorklistEntry. */
 public boolean isCheckIncorrectWorklistEntry() {
   return scp.isCheckIncorrectWorklistEntry();
 }
 public final long getUpdateDatabaseRetryInterval() {
   return scp.getUpdateDatabaseRetryInterval();
 }
 public final int getMaxCountUpdateDatabaseRetries() {
   return scp.getMaxCountUpdateDatabaseRetries();
 }
 public final int getUpdateDatabaseMaxRetries() {
   return scp.getUpdateDatabaseMaxRetries();
 }
 public void setCoerceWarnCallingAETs(String aets) {
   scp.setCoerceWarnCallingAETs(aets);
 }
 public String getCoerceWarnCallingAETs() {
   return scp.getCoerceWarnCallingAETs();
 }
 public final void setSerializeDBUpdate(boolean serialize) {
   scp.setSerializeDBUpdate(serialize);
 }
 public final boolean isSerializeDBUpdate() {
   return scp.isSerializeDBUpdate();
 }
 public final void setAcceptMissingPatientName(boolean accept) {
   scp.setAcceptMissingPatientName(accept);
 }
 public final boolean isAcceptMissingPatientName() {
   return scp.isAcceptMissingPatientName();
 }
 public final void setMd5sumReferencedFile(boolean md5ReferencedFile) {
   scp.setMd5sumReferencedFile(md5ReferencedFile);
 }
 public final String getCompressionRules() {
   return scp.getCompressionRules().toString();
 }
 public void setCompressionRules(String rules) {
   scp.setCompressionRules(new CompressionRules(rules));
 }
 public final boolean isCoerceBeforeWrite() {
   return scp.isCoerceBeforeWrite();
 }
 public final void setUpdateDatabaseMaxRetries(int updateDatabaseMaxRetries) {
   scp.setUpdateDatabaseMaxRetries(updateDatabaseMaxRetries);
 }
 public final void setCoerceBeforeWrite(boolean CoerceBeforeWrite) {
   scp.setCoerceBeforeWrite(CoerceBeforeWrite);
 }
 public final void resetMaxCountUpdateDatabaseRetries() {
   scp.setMaxCountUpdateDatabaseRetries(0);
 }
 public String getAcceptMismatchIUIDCallingAETs() {
   return scp.getAcceptMismatchIUIDCallingAETs();
 }
 public final void setUpdateDatabaseRetryInterval(long interval) {
   scp.setUpdateDatabaseRetryInterval(interval);
 }
 public void setAcceptMismatchIUIDCallingAETs(String aets) {
   scp.setAcceptMismatchIUIDCallingAETs(aets);
 }
 /**
  * Enable/disable check if an MPPS with Discontinued reason 'Incorrect worklist selected' is
  * referenced.
  *
  * @param check The checkIncorrectWorklistEntry to set.
  */
 public void setCheckIncorrectWorklistEntry(boolean check) {
   scp.setCheckIncorrectWorklistEntry(check);
 }
 public void setStoreDuplicateIfDiffHost(boolean storeDuplicate) {
   scp.setStoreDuplicateIfDiffHost(storeDuplicate);
 }
 public final void setPerfMonServiceName(ObjectName perfMonServiceName) {
   scp.setPerfMonServiceName(perfMonServiceName);
 }
 public boolean isStoreDuplicateIfDiffMD5() {
   return scp.isStoreDuplicateIfDiffMD5();
 }
 public void setStoreDuplicateIfDiffMD5(boolean storeDuplicate) {
   scp.setStoreDuplicateIfDiffMD5(storeDuplicate);
 }
 public final void setReadReferencedFile(boolean readReferencedFile) {
   scp.setReadReferencedFile(readReferencedFile);
 }