public static Pedigree getPedigreeFromFamily(Family family) {
List<Individual> members = family.getMembers();
Map<String, Member> individualMap = new HashMap<>();
for (Individual member : members) {
Member individual = new Member(
member.getId(), member.getName(), null, null, member.getMultiples(),
Member.Sex.getEnum(member.getSex().toString()), member.getLifeStatus(),
Member.AffectionStatus.getEnum(member.getAffectationStatus().toString()),
member.getPhenotypes(), member.getAttributes());
individualMap.put(individual.getId(), individual);
}
for (Individual member : members) {
if (member.getFather() != null && StringUtils.isNotEmpty(member.getFather().getId())) {
individualMap.get(member.getId()).setFather(individualMap.get(member.getFather().getId()));
}
if (member.getMother() != null && StringUtils.isNotEmpty(member.getMother().getId())) {
individualMap.get(member.getId()).setMother(individualMap.get(member.getMother().getId()));
}
}
List<Member> individuals = new ArrayList<>(individualMap.values());
return new Pedigree(family.getId(), individuals, family.getPhenotypes(), family.getAttributes());
}