Keeping enrollment and event date in sync


(Olav Poppe) #1

We have a case (TB case-based surveillance) with some requirements with regards to enrolment and event dates that we are struggling with. We want to use the “enrolment date” in the program as “TB notification date”, which is what enrolment analytics needs to be based on. However, we also have a “baseline” program stage where we want to use the same date, so that event analytics for that baseline program is also using the notification date. Also, the notification (enrolment) date needs to be editable.

Setting the baseline stage to be scheduled 0 days after enrolment, to be auto-generated and to be opened after enrolment, things work fine initially, BUT the enrolment date is not editable because we are auto-generating events based on the enrolment date. In other words, this approach does not work.

Disabling auto-generation of program stages (which is not ideal) allows modification of the enrolment date, but the baseline stage event date then needs to be set and later modified manually, since there’s no way of assigning event dates with program rules as far as I can see. Still, this is the closest we have gotten to a solution at the moment, since we can at least show a warning if there is a mismatch between the two notification dates.

Does anyone have suggestions for better solutions? To recap, we want:

  • enrolment date and event date of the first program stage to always be the same
  • this date needs to be editable
  • we would ideally still be able to schedule and auto-generate events

(Olav Poppe) #2

I realised we can make a minor improvement: by auto-generating the baseline stage with “enrolment date” as “Report date to use”, but NOT checking “Generate events based on enrolment date” (which is sort of weird…), the baseline will automatically get the correct notification date initially. However, we still have a problem in that we can’t schedule any other stages, and changes to the notification date would still have to be done two places. Any suggestions here would be appreciated!

(Calle Hedberg) #3


Problem of enrollment data being un-editable recognised in another context too - the need for correcting incorrectly captured enrollment dates. See JIRA DHIS2-5942

Had a brief discussion with Markus about it and we agree that it SHOULD be editable.


(Calle Hedberg) #4


From more general perspective, it is also a known constraint with the current program rule “engine” that when using program rules to assign values like dates, they become locked. There is no option to say for an ASSIGN program rule that if there is no value then assign whatever, BUT THEN MAKE IT EDITABLE AFTERWARDS.

A bit similar to have a custom data entry screen for aggregated data where you auto-fill all cells with a zero, and then allows the user to just edit those that are NOT zero - very useful for the common case where a country uses massive data sets where 95% of the data elements are zero for any reporting period…