public void setAttributes(Attributes attrs, FuzzyStr fuzzyStr, String nullValue) {
    Attributes spsItem = attrs.getNestedDataset(Tag.ScheduledProcedureStepSequence);
    if (spsItem == null) {
      throw new IllegalArgumentException(
          "Missing Scheduled Procedure Step Sequence (0040,0100) Item");
    }
    scheduledProcedureStepID = spsItem.getString(Tag.ScheduledProcedureStepID);
    modality = Utils.upper(spsItem.getString(Tag.Modality, nullValue));
    Date dt = spsItem.getDate(Tag.ScheduledProcedureStepStartDateAndTime);
    if (dt != null) {
      scheduledStartDate = DateUtils.formatDA(null, dt);
      scheduledStartTime =
          spsItem.containsValue(Tag.ScheduledProcedureStepStartTime)
              ? DateUtils.formatTM(null, dt)
              : nullValue;
    } else {
      scheduledStartDate = nullValue;
      scheduledStartTime = nullValue;
    }
    scheduledPerformingPhysicianName =
        PersonName.valueOf(
            attrs.getString(Tag.ScheduledPerformingPhysicianName),
            fuzzyStr,
            nullValue,
            scheduledPerformingPhysicianName);
    status = spsItem.getString(Tag.ScheduledProcedureStepStatus, SCHEDULED);

    requestedProcedureID = attrs.getString(Tag.RequestedProcedureID);
    studyInstanceUID = attrs.getString(Tag.StudyInstanceUID);
    accessionNumber = attrs.getString(Tag.AccessionNumber);

    if (attributesBlob == null) attributesBlob = new AttributesBlob(attrs);
    else attributesBlob.setAttributes(attrs);
  }
 public Attributes getAttributes() throws BlobCorruptedException {
   return attributesBlob.getAttributes();
 }