private DiseaseFreeData getDiseaseFreeDataForPatient(int patientIndex, DataMatrix dataMatrix) {
    DiseaseFreeData diseaseFreeData = new DiseaseFreeData();

    diseaseFreeData.vitalStatus = getValue(patientIndex, VITAL_STATUS, dataMatrix);
    diseaseFreeData.lastFollowUp = getValue(patientIndex, LAST_FOLLOW_UP, dataMatrix);
    diseaseFreeData.lastKnownAlive = getValue(patientIndex, LAST_KNOWN_ALIVE, dataMatrix);
    diseaseFreeData.daysToNewTumorEventAfterInitialTreatment =
        getValue(patientIndex, NEW_TUMOR_EVENT, dataMatrix);

    return diseaseFreeData;
  }
  private DiseaseFreeData mergeDiseaseFreeData(DiseaseFreeData df1, DiseaseFreeData df2) {
    DiseaseFreeData mergedDiseaseFreeData = new DiseaseFreeData();

    mergedDiseaseFreeData.lastFollowUp = mergeWorksheetValues(df1.lastFollowUp, df2.lastFollowUp);
    mergedDiseaseFreeData.lastKnownAlive =
        mergeWorksheetValues(df1.lastKnownAlive, df2.lastKnownAlive);
    mergedDiseaseFreeData.vitalStatus = mergeWorksheetValues(df1.vitalStatus, df2.vitalStatus);
    mergedDiseaseFreeData.daysToNewTumorEventAfterInitialTreatment =
        mergeWorksheetValues(
            df1.daysToNewTumorEventAfterInitialTreatment,
            df2.daysToNewTumorEventAfterInitialTreatment);

    return mergedDiseaseFreeData;
  }