/**
  * @param o
  * @throws IOException
  * @throws DicomException
  */
 public void write(DicomOutputStream o) throws DicomException, IOException {
   // throw new DicomException("Internal error - unsupported operation, write of
   // OtherWordAttributeOnDisk");
   writeBase(o);
   if (valueLength > 0) {
     // System.err.println("OtherWordAttributeOnDisk.write(): start file = "+file);
     BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
     CopyStream.skipInsistently(in, byteOffset);
     if (bigEndian == o.isBigEndian()) {
       CopyStream.copy(in, o, valueLength);
     } else {
       CopyStream.copyByteSwapped(in, o, valueLength);
     }
     in.close();
   }
 }
 /**
  * Do something with the referenced DICOM file that has been encountered.
  *
  * <p>This method needs to be implemented in a sub-class to do anything useful. The default method
  * does nothing.
  *
  * <p>This method does not define any exceptions and hence must handle any errors locally.
  *
  * @param mediaFileName the fully qualified path name to a DICOM file
  */
 protected void doSomethingWithDicomFileOnMedia(String mediaFileName) {
   logLn("MediaImporter.doSomethingWithDicomFile(): " + mediaFileName);
   try {
     AttributeList list = new AttributeList();
     list.readOnlyMetaInformationHeader(mediaFileName);
     String outputFileName =
         Attribute.getSingleStringValueOrEmptyString(list, TagFromName.MediaStorageSOPInstanceUID);
     if (outputFileName.length() > 0) {
       CopyStream.copy(new File(mediaFileName), new File(outputPath, outputFileName));
     } else {
       throw new DicomException(
           "Cannot extract SOP Instance UID from \""
               + mediaFileName
               + "\" to create output file name - ignoring");
     }
   } catch (Exception e) {
     e.printStackTrace(System.err);
   }
 }