This is used by tests.
Just to have a feeling on how hard it is to change the implementation from dict
to model objects.
Note that it's particular here as we are returning an optional tuple of
OriginVisit and OriginVisitStatus. Whereas before we returned a mixed
visit/visit-status dict.
As an incremental change approach, this introduces similar functions to existing
ones to manipulate directly model objects (instead of dicts as currently).
This does not refactor the common behavior too much yet to avoid impacting
the diff size and the other endpoints. This will be eventually dealt with in subsequent
diffs.