Example #1
0
 public static Class<?> getDocumentImplementationClass(TCReferencedInstance ref) {
   String cuid = ref.getClassUID();
   if (UID.MultiFrameTrueColorSecondaryCaptureImageStorage.equals(cuid)) {
     TCReferencedSeries series = ref.getSeries();
     String description = series != null ? series.getSeriesDescription() : null;
     if (description != null && description.equalsIgnoreCase(SERIES_DESCRIPTION)) {
       return TCImageDocument.class;
     }
   } else if (UID.EncapsulatedPDFStorage.equals(cuid)) {
     return TCEncapsulatedDocument.class;
   }
   return null;
 }
Example #2
0
  protected static DicomObject createDicomMetaData(
      MimeType mimeType,
      String filename,
      String description,
      TCReferencedInstance ref,
      String patId,
      String issuerOfPatId,
      String patName,
      String modality) {
    Date now = new Date();

    DicomObject attrs = new BasicDicomObject();

    // patient level
    if (patId != null) {
      attrs.putString(Tag.PatientID, VR.LO, patId);
    }
    if (issuerOfPatId != null) {
      attrs.putString(Tag.IssuerOfPatientID, VR.LO, issuerOfPatId);
    }
    if (patName != null) {
      attrs.putString(Tag.PatientName, VR.PN, patName);
    }

    // study level
    attrs.putString(Tag.StudyInstanceUID, VR.UI, ref.getStudyUID());

    // series level
    attrs.putString(Tag.SeriesInstanceUID, VR.UI, ref.getSeriesUID());
    attrs.putString(Tag.SeriesDescription, VR.LO, SERIES_DESCRIPTION);
    attrs.putString(Tag.Modality, VR.CS, modality);

    // instance level
    attrs.putString(Tag.SOPInstanceUID, VR.UI, ref.getInstanceUID());
    attrs.putString(Tag.SOPClassUID, VR.UI, ref.getClassUID());
    attrs.putInt(Tag.InstanceNumber, VR.IS, ref.getInstanceNumber());
    attrs.putDate(Tag.InstanceCreationDate, VR.DA, now);
    attrs.putDate(Tag.InstanceCreationTime, VR.TM, now);
    attrs.putDate(Tag.ContentDate, VR.DA, now);
    attrs.putDate(Tag.ContentTime, VR.TM, now);
    attrs.putString(Tag.ContentLabel, VR.CS, filename);
    attrs.putString(
        Tag.ContentDescription,
        VR.CS,
        description != null && !description.isEmpty() ? description : getFileName(filename));

    return attrs;
  }
Example #3
0
    public static TCEncapsulatedDocument create(TCReferencedInstance ref) throws Exception {
      Instance instance =
          ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME))
              .findInstanceByUID(ref.getInstanceUID());

      List<org.dcm4chee.archive.entity.File> files = instance.getFiles();
      DicomObject attrs = instance.getAttributes(false);

      attrs.remove(Tag.EncapsulatedDocument);

      MimeType mimeType = null;
      String mimeTypeStr = attrs.getString(Tag.MIMETypeOfEncapsulatedDocument);
      if (mimeTypeStr != null) {
        mimeType = MimeType.get(mimeTypeStr);
      }
      if (mimeType == null) {
        mimeType = getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel));
      }

      String fsId = files.get(0).getFileSystem().getDirectoryPath();
      String fileId = files.get(0).getFilePath();
      File file =
          fsId.startsWith("tar:")
              ? TarRetrieveDelegate.getInstance().retrieveFileFromTar(fsId, fileId)
              : FileUtils.resolve(new File(fsId, fileId));

      return new TCEncapsulatedDocument(mimeType, ref, attrs, file);
    }
Example #4
0
  public static TCDocumentObject create(TCReferencedInstance ref) throws Exception {

    Instance instance =
        ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME))
            .findInstanceByUID(ref.getInstanceUID());

    if (instance == null) {
      return null;
    }

    DicomObject attrs = instance.getAttributes(false);

    MimeType mimeType = null;
    String mimeTypeStr = attrs.getString(Tag.MIMETypeOfEncapsulatedDocument);
    if (mimeTypeStr != null) {
      mimeType = MimeType.get(mimeTypeStr);
    }
    if (mimeType == null) {
      mimeType = getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel));
    }

    if (mimeType != null) {
      DocumentType docType = mimeType.getDocumentType();

      if (TCImageDocument.DOC_TYPES.contains(docType)) {
        return TCImageDocument.create(ref);
      } else if (TCEncapsulatedDocument.DOC_TYPES.contains(docType)) {
        return TCEncapsulatedDocument.create(ref);
      }
    }

    throw new Exception(
        "Unable to create TC encapsulated object: Mime type not supported (" + mimeTypeStr + ")");
  }
Example #5
0
    public static TCImageDocument create(TCReferencedInstance ref) throws Exception {
      DicomObject attrs =
          ((TCQueryLocal) JNDIUtils.lookup(TCQueryLocal.JNDI_NAME))
              .findInstanceByUID(ref.getInstanceUID())
              .getAttributes(false);
      attrs.remove(Tag.PixelData);

      return new TCImageDocument(
          checkMimeType(getDocumentMimeTypeFromLabel(attrs.getString(Tag.ContentLabel))),
          ref,
          attrs);
    }