Condition Lists -- Updates and outstanding issues

O-kay then… tl;dr If you really want to do it right and keep it simple for the user, you have to do some work underneath.

Here’s my take on the possible scenarios; I’m not showing the UI, but I believe that all of these would give the user a fairly easy UI with the option to enter or leave out dates:

  • Enter new active condition starting today

    add ACTIVE start: today end: null

  • Enter new active condition starting unspecified time

    add ACTIVE start: null end: null (*Note: it’s not clear whether a default of Today or null makes more sense, and I don’t want to add another field; but practically speaking the differences are mostly harmless. If you’d want to do it completely right your display and reporting algorithms have to make use of the time entered as well as the start and end times :frowning: )

  • Enter new active condition starting in past

    add ACTIVE start: specified date end: null

  • Change already active condition to inactive starting today

    Change existing ACTIVE record end: today;

    add INACTIVE start:today end: null

  • Change already active condition to inactive starting in past

    Change ACTIVE record end: specified date

    add INACTIVE start: specified date end: null

  • Change already active condition to inactive starting unspecified time

    Change ACTIVE record end: today

    add INACTIVE start: today end: null (*Note: Using today is incorrect but NULL is worse)

  • Enter new inactive condition with no known original active date (*Note most users would enter this as History-Of, which is a whole different can of worms)

    add INACTIVE start: null end: null

  • Enter new inactive condition with known past active start and/or end date (*Ditto)

    add ACTIVE start: specified start date end: specified end date

    add INACTIVE start: specified end end: null

  • Reactivate an inactive condition

    Change INACTIVE record add end: today

    add ACTIVE start: today