Exemplo n.º 1
0
  /**
   * Fügt einen Knoten entsprechend des Patienten, der Serie und Studie des DICOM-Objekts in den
   * Baum ein. Existieren Patienten-, Serien- und Studienknoten nicht, werden diese erzeugt und
   * ebenfalls in den Baum eingefügt. DICOM-Objekte sind immer Blattknoten
   *
   * @param item
   */
  public void insert(DicomObject item) {

    String nameId = (String) item.getTagData("PatientID", IDicomData.RETURN_STRING);
    String studyId = (String) item.getTagData("StudyInstanceUID", IDicomData.RETURN_STRING);
    String seriesId = (String) item.getTagData("SeriesInstanceUID", IDicomData.RETURN_STRING);

    nameId = nameId.equals("default") ? "default_name" : nameId;
    studyId = studyId.equals("default") ? "default_study" : studyId;
    seriesId = seriesId.equals("default") ? "default_series" : seriesId;

    if (studyId.equals(seriesId)) {
      seriesId += "__duplicated";
    }

    DicomPatientItem sPatient = new DicomPatientItem(nameId);
    DicomStudyItem sStudy = new DicomStudyItem(studyId);
    DicomSeriesItem sSeries = new DicomSeriesItem(seriesId);

    ADicomTreeItem lookUp = lookUpDicomTreeItem(sPatient);
    ADicomTreeItem parent = root;

    countObjects++;

    if (lookUp == null) {
      parent.addChild(sPatient);
      sPatient.addChild(sStudy);
      sStudy.addChild(sSeries);
      sSeries.addChild(item);
    } else {
      parent = lookUp;
      lookUp = lookUpDicomTreeItem(sStudy);
      if (lookUp == null) {
        parent.addChild(sStudy);
        sStudy.addChild(sSeries);
        sSeries.addChild(item);
      } else {
        parent = lookUp;
        lookUp = lookUpDicomTreeItem(sSeries);
        if (lookUp == null) {
          parent.addChild(sSeries);
          sSeries.addChild(item);
        } else {
          parent = lookUp;
          lookUp = lookUpDicomTreeItem(item);
          if (lookUp == null) {
            parent.addChild(item);
          }
        }
      }
    }
  }