This should be very easy. All you need to do is create each of these three visits as a separate program stage, and make each of them non-repeatable. If you tick ‘Generate events based on enrolment date’, then the first program stage should have ‘scheduled days from start’ = 0, the second one ‘scheduled days from start’ = 15 and the third one ‘scheduled days from start’ = 45.
To automate the booking of these three visits, you can either:
- Tick ‘auto-generate event’ for all three program stages, so that dates for all three visits are booked when the patient is registered.
- Tick ‘auto-generate event’ for the first program stage (so the first visit is created immediately during registration), and for the next two program stages, tick ‘ask user to create new event when stage is complete’ (so that when the CHW finishes capturing a visit, they are prompted to book the next visit on the correct date).
If you make each of these program stages non-repeatable, then the CHWs will only be able to capture each program stage/type of visit once - after the third visit, there won’t be any more program stages to capture, so they won’t be able to enter more data.
Finally, if for the third visit/program stage you tick ‘ask user to complete program when stage is complete’, then the CHW will be prompted to close the whole enrolment for that client once the third visit is completed. (But note that DHIS2 just prompts the CHW to do this, it doesn’t force them, and they can still accidentally leave enrolments open.)
These suggestions will hopefully help, but if I’ve misunderstood your setup, please let me know, and I can suggest other solutions.