GemsTracker / gemstracker-library

GEneric Medical Survey Tracker, main library
http://gemstracker.org
BSD 3-Clause "New" or "Revised" License
6 stars 2 forks source link

Adding gto_round_repeat to gems__tokens #865

Open mddejong opened 5 months ago

mddejong commented 5 months ago

In GT 1.9 there is an after completion RepeatRoundsEvent event function.

Currently this function adds rounds with the same description again to the track, but with a +1 of a number in the description.

In doing so the gto_round_order is increased so that the repetition is show after the previous round (as it the next repetition of a group of surveys).

The gto_id_round is set to the zero round, i.e. the round used for inserted surveys. Otherwise the increased number of the round description would be overwritten when checking the rounds in a track.

The three disadvantages of this approach are: a) changes to the track are not reflected in the later repeated rounds, b) round specific conditions do not work and c) with a very large number of repeats the repeats may get the same round order as a later round. (I did write a partial solution for b for Rijndam but it has limitations.)

The best solution is to make a new track enige that recognizes a round repeat a such. To get this to work we probably need to add a field to the gems__tokens table, e.g. a gto_round_repeat field with the default value of 1.

Or maybe there is a better solution?