Minimum Data Spread

PROCESS:
- If Min Data Volume is defined and satisfied, select n lastest occurrences (named query returns occurrences sorted by occurrence date)
- If Min Data Spread parameters are not defined then do not continue with MDS check and just return the n occurrences selected above.
- MDS Check: if conditions are not met on first iteration, continue to add one more occurrence until MDS is met. If we run out of occurrences before MDS is met, then don't run the model (return null from the helper)

NB. MDS check differs for disease groups known to occur in Africa (must have at least 1 occurrence in x African countries, AND at least y occurrences in each z African countries) and those not occurring in Africa (must have at least 1 occurrence in x countries). Each of the parameters defined on a per disease basis.

Each location has a countryGaulCode assigned in PostQCManager
It will be more efficient to add to the occurrences list than recreate it (especially as the recreation will happen thousands of times):

DiseaseOccurrence occurrenceToAdd = allOccurrences.get(n);
occurrences.add(occurrenceToAdd);
addCountryToOccurrenceCountMap(occurrenceToAdd.getLocation().getCountryGaulCode());