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

Introduce a reference definition for cases [2] #5594

Closed kwa20 closed 3 years ago

kwa20 commented 3 years ago

Situation Description

German health departments use a reference definition in order to further classify cases. This reference definition is used for later analysis by higher health authorities.

Feature Description

Introduce a 'Reference definition' field for COVID-19 cases that is uneditable and computed on save (DE only). This field will have the values

Computation follows closely what is specified for confirmed case classifications in #4770. What defines whether the reference definition is fulfilled or not is the pathogen test types. Therefore, fulfilled is automatically applied if the classification criteria for the respective case classification CONFIRMED, CONFIRMED_NO_SYMPTOMS or CONFIRMED_UNKNOWN_SYMPTOMS is met; however, the test types ANTIGEN_DETECTION and RAPID_TEST are NOT to be taken into account here.

Implementation suggestion: In CaseFacadeEjb.onCaseChanged, after calculating the case classification and only on German instances and for CORONAVIRUS cases, check whether it's one of the three CONFIRMED classification AND the case has at least one positive pathogen test result for CORONAVIRUS of the test types PCR_RT_PCR, ISOLATION or SEQUENCING. If so, set the reference definition to fulfilled, otherwise to not fulfilled.

referenceDefinition

Further, add a checkbox filter on the case directory that filters cases according to their reference definition (DE only):

Add an additional number to the surveillance dashboard (DE only) in the disease carousel layout for CORONAVIRUS only, underneath "Cases resulting from contacts" (see Kay's screenshot below); call it "Reference definition fulfilled" and count the number of cases where reference definition == fulfilled.

Possible Alternatives

Additional Information

@JaquM

maxiheyner commented 3 years ago

Issue Tracker Comment

MateStrysewske commented 3 years ago

@kwa20 Should the filter really be added to the dashboard or were you referring to the case directory?

kwa20 commented 3 years ago

@MateStrysewske I think that was the request, yes. I do, however, see a few challenges here which I didn't think about. The filter would technically exclude all non-confirmed cases by default. An alternative could be to just add the total number of cases fulfilling the reference definition in the filtered time period here:

referenceDefinitionDashboard

@JaquM What do you think?

Adding it to the cases directory as well would make total sense though. Would that be much to add to this issue?

MateStrysewske commented 3 years ago

@kwa20 I'd prefer to go with your alternative approach then (i.e. add it as an additional number to the carousel layout). And we can do the directory filter as well.

sergiupacurariu commented 3 years ago

@MateStrysewske Clarifications needed:

MateStrysewske commented 3 years ago

@kwa20 In Germany, the classification criteria currently is only checked when users manually request it by clicking on a button and there's no automatic calculation, right? When exactly should the reference definition be updated? Should it follow the same rules or should it be updated every time a case is saved (which could potentially have a negative impact on performance)?

Also, what if the user has manually overwritten the classification with one of the confirmed classifications? Should we still do a full calculation for the reference definition or should we take the confirmed classification as a fact and just check whether there's a pathogen test with one of the valid test types?

kwa20 commented 3 years ago

@MateStrysewske

the classification criteria currently is only checked when users manually request it by clicking on a button and there's no automatic calculation, right?

There actually is an automatic calculation but if the user has changed the calculation manually, they would be able to trigger it again and get the results of the defined criteria.

When exactly should the reference definition be updated?

If it follows the same rules I think this would also always be triggered when saving a case.

Also, what if the user has manually overwritten the classification with one of the confirmed classifications? Should we still do a full calculation for the reference definition or should we take the confirmed classification as a fact and just check whether there's a pathogen test with one of the valid test types?

I think we can just take overwritten classifications as a "fact" because the classification will then at least always be conform to the classification, if the classification is recalculated and therefore different, the reference definition would also be adjusted accordingly.

@JaquM This would mean that theoretically, users could change classifications manually which then don't fulfill the reference definition but after sending to SurvNet show up as fulfilled. This is not really a logical use case so I would count on user responsibility in this case. Do you see any problem with that?

JaquM-HZI commented 3 years ago

@MateStrysewske Please do a full calculation for the reference definition.

MateStrysewske commented 3 years ago

@sergiupacurariu That means:

kwa20 commented 3 years ago

@MateStrysewske I forgot an important criteria in this issue which I am not sure is covered by the initial specification:

If caseClassification = NO_CASE, the reference definition has to always be set to not fulfilled

bernardsilenou commented 3 years ago

@kwa20 Would it not be better to instead add another category for the reference definition if caseClassification = NO_CASE?

kwa20 commented 3 years ago

@bernardsilenou I don't think that's possible unfortunately because cases in the reporting tool need to be updated with the information of not being a case if sent already and the reference definition in the reporting tool only has two values itself.