• It seems like you have two things here. The background process and how this calculates, which I'm not sure what that means for your UI logic or tracking the date. How is that related?

    In terms of changing the date, I think you can do this anywhere, it just depends on what the flow is. It seems that since this is based on a user's action, you either need to handle this in the UI, or submit this as a parameter to the back end to note something is dismissed. I'd do both, since I want a user action in the UI, but I want to be sure any process, whether the UI, ETL, or anything follows the same rules.

    For preventing change later, what is another time? If I get behind and don't look at new cases until next week, can I still set a date? How does a back end know a case is looked at later? I think you need the UI to manage the prevention of changing the date later, unless you can define what later is.