private List<String> getPatientIds(DataMatrix dataMatrix) {
    List<LinkedList<String>> patientIds = dataMatrix.getColumnData(PATIENT_ID);
    if (patientIds.isEmpty()) {
      patientIds = dataMatrix.getColumnData(FOLLOW_UP_PATIENT_ID);
    }

    return (patientIds.isEmpty())
        ? Collections.<String>emptyList()
        : convertFollowupPatientIds(patientIds.get(0));
  }
  private String getValue(int index, String columnName, DataMatrix dataMatrix) {
    List<LinkedList<String>> columnData = dataMatrix.getColumnData(columnName);

    String value = MissingAttributeValues.getNotAvailable();
    if (!columnData.isEmpty()) {
      value = columnData.get(0).get(index);
    }
    return (value.isEmpty()) ? MissingAttributeValues.getNotAvailable() : value;
  }