SORMAS-Foundation / SORMAS-Project

SORMAS (Surveillance, Outbreak Response Management and Analysis System) is an early warning and management system to fight the spread of infectious diseases.
https://sormas.org
GNU General Public License v3.0
292 stars 140 forks source link

Automatic assignment of the "converted case" to contact [3] #402

Closed MartinWahnschaffe closed 6 years ago

MartinWahnschaffe commented 6 years ago

This is for after the outbreak.

Currently the system looks for a case with the same person and disease and will soft-link this to the contact - no matter the timing. This will often work good, but will fail when the user does not have access to the related case, because it belongs to another region.

I think we have to change this to a real link (visible in the database).

In addition the user should be able to manually link an existing contact to an existing case.

Also to be considered: How do "source contacts" influence this whole thing. #389

MartinWahnschaffe commented 6 years ago

The system should automatically link every contact where the person became a case within the incubation period to that "result case". In addtion the contact does have to be confirmed and the source case must not be "not a case".

Furthermore automatically calculate the contact status based on contact classification (not) and incubation period.

Important: in the app the result case has to be persisted in the form of a uuid (instead of id), because the case might not be synchronized to the app.

Tasks:

For event participants:

Both:

MateStrysewske commented 6 years ago

Additional things to consider/do:

    // 1 - retrospective data entry might lead to wrong associations - is there any way to use another date other than the contactreportdatetime? maybe we need something like a checkbox
    //     and a database field "retrospective" that disables functionality like this one? -> for the future: add receptionDate and use it for the calculation if available; additionally,
    //     we probably need to update the follow-up until based on the last contact date if it is newer than the report date
    // 2 - remove existing logic from mobile? -> yes
    // 3 - eventparticipants basically have the same "problem", especially with the "create case" link that might not even work for old events - we might also need to add the same
    //     logic to eventparticipants OR remove the button in the grid -> resultingCase to eventParticipant
    // 4 - if we set contacts to dropped that have exceeded the incubation period, this is a bit inconsequential - we'll do this when cases or contacts are saved,
    //     but not in general, i.e. quality of data will vary; should we also add a service that checks all contacts every night and drop all affected contacts (i.e. calls this method)?
    //     -> we need a service
    // 5 - remove getByPersonAndDisease method from CaseFacade, move logic to update methods in contact/event participant
MartinWahnschaffe commented 6 years ago

@hzi-braunschweig Please complete the incubation peridos for all disease and validate contact tracing is correct:

MartinWahnschaffe commented 6 years ago

@hzi-braunschweig Can you provide these information until coming monday?

MartinWahnschaffe commented 6 years ago

Besides the missing incubation periods everything is working. The event participant in the app only shows the investigation status of a related case, which is not what I would have expected.

ghost commented 6 years ago

@MartinWahnschaffeSymeda Sending this to you in a moment. @incubation periods

MartinWahnschaffe commented 6 years ago

Todo: