Hi All,
We are embarking on a new tracker program, and at its architectural level had some questions/would love some recommendations if possible.
We are looking to track activities at individual structures, which fall into larger compounds within a country. There is an initial activity where compounds are enumerated, and the number of structures within are discovered. Secondary and more iterative activities are visiting those structures and listing out the activities that are complete.
An example would be that someone goes to a compound, and finds it has 8 structures. An ID is given to that compound (and left at the location). Later, a different person comes and wants to list the activities that happen at some/all of those structures. Later, people may follow-up on specific structures where activities were not possible the first visit.
Thus we have enumeration happening at a compound, but the structures within are the ones being individually tracked. Ideally we’d only be enumerating once per compound (saving time/energy for the process of enumeration, and limiting the total number of TrackedEntityInstances) but giving the ability for tracking each structure within.
So far we can consider having multiple program stages, where 1 program stage = a structure, would be possible. It feels a bit clunky, and seems less than ideal that these 20 or so program stages would be identical to one other (not to mention maintenance of the 20 programStages to be kept identical during any development). We can also consider simply making the enumerator enroll structures, not compounds, however they we lose at least some analytics (how many structures within compounds, other compound-relevant analytics) and greatly increase the number of TEIs to sort through.
Anything we should be thinking about? Relationships, multiple enrollments per TEI, some kind of automatic TEI generation, multiple programs…? Appreciate anyone’s insights.