GenoPro® is one of the best software for drawing family trees and genograms. There are several out-of-the-box reports available, but sometimes they aren't sufficient for specific needs.
It is possible to create custom reports, but:
- they have to be written in Visual Basic script
- they have to be executed in GenoPro as they rely on some internal objects
A long time ago, for one particular report, I used Java to parse data directly from GNO files. Later on, I used an improved parser for another report. I've realized it would be helpful to transform my code into a lightweight library that anybody could reuse.
This library covers just a limited subset of GNO file format capabilities. Currently, it supports:
- basic genomaps details
- basic individual details
- basic pedigree links details
- basic text label details
There are several parser options available for specific needs:
-
untitledGenoMapsExcluded
- usetrue
to exclude GenoMaps without a title (the GenoMap title is not the name, it can be specified in GenoMap properties, but by default it is empty). This is handy when some stuff needs to be hidden in your report. It can be moved to dedicated GenoMaps which titles are left empty. -
unknownIndividualsExcluded
- usetrue
to exclude individuals without name. -
hyperlinkedIndividualInstancesDeduplicated
- usetrue
to deduplicate individual instances present on multiple GenoMaps, mutually hyperlinked, if there is a need to work with merged data. When theexcludeUntitledGenoMaps
option is set totrue
and any individual instance is located on an untitled GenoMaps, its details are ignored. -
textLabelsExcluded
- usetrue
to exclude text labels. -
anonymizedSinceDate
- use specific date, current date orNULL
to select the desired anonymization mode, see the Anonymization section.
In common use cases the original data needs to be anonymized. While it can be done after retrieving all data, a basic anonymization is available out of the box.
Set the specific date in the past to ensure:
- only those guaranteed not living individuals on the given date are kept (those without birth and death details are excluded automatically)
- only those parent/child pedigree links are kept if none of family members is anonymized
Set the current date (year) to ensure:
- all individuals and their pedigree links are kept, but birth and death dates of those uncertain individuals are cleared.
Left the parameter unset or set the future date to disable anonymization.