Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

Consider a DeathRegister that handles info for deaths in a country.

In web system we need a service that is executed everyday at 12am (to prevent server load on peak times)
- Sends an email with CSV of records to data admins with different inconsistencies in data like DeathDate not matching with other data, OR Any symptom not valid for gender or age group
- Do cleanup operations on server
And many more which could be repeated with a fixed delay and fixed repeat delay and this is "RepeatingSchedule"

We have many other registers not directly connected with each other which needs to take decisions based on any Death like ANC/PNC on mother death, Child on foetal / infant death, Crime investigation on Accidental death, TrendResearcher on death by disease etc. We can not maintain logic in a single central point maintain by central developer modifying every-time a new decision is needed based on death. Rather we notify the system with deathEvent and each register implementing Listeners for Death notification would do their work independently. This is "SystemEvent"

Lets say each death has to be enrolled in different types of schedules with different milestones and alert for FieldWorkers like each death notification would lead to an enrollment into schedule starting after 20days of death for a VerbalAutopsy and VA has to be completed within 60days. ANM after contacting relatives needs to fill VA before 60th day as this is MAX timeWindow. Also an accidental death would schedule alerts for Investigation for Opening case and Closing within 2years the last month of 2nd year is the MAX timeWindow for this.
Another example would be the Ante-natal care (ANC) visits that a pregnant woman in expected to attend. Using the last menstrual period date as the start date, we will have ANC1, ANC2, ANC3 and ANC4 as milestones for this pregnant woman. Using ANC1 visit as an example, the pregnancy registration will schedule alerts for reminding the ANM about the ANC visits; with the alerts scheduled as:
  • 1st alert at 0 week
  • 2nd alerts at 12 weeks
  • 3rd alert at 14 weeks
These schedules which have different milestones and different timeWindows with different Alerts are "TrackableSchedule" or "HealthSchedule"

Now there could be different institution Registers in Country which want to get notified or run their logic when a certain timeWindow or milestone alert is notified. For ex: Police wants to get an alert when a case has not been closed until the end of 2nd year of Opening and CrimeResearch Register also want an alert when case has not been closed within 2nd years. There could be 3rd , 4th and 5th Registers which want notification on passing some schedule`s timeWindow. One register dev can not keep adding logic to this. Now we need to hook an event to DeathCaseClosing schedule so that different systems could be alert of certain milestones timeWindows. This would be done by Register dev by implementing a "HookedEvent" with schedule DeathCaseClosing, milestone LastQuarter, and timeWindow MAX.
  • No labels

0 Comments

You are not logged in. Any changes you make will be marked as anonymous. You may want to Log In if you already have an account.