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
293 stars 143 forks source link

Introduce disease properties to switch between basic and extended classification [3] #4218

Closed generalkolo closed 3 years ago

generalkolo commented 3 years ago

Situation Description

The NCDC Data Transition team in accordance with the WHO standards has requested that we add the following case classifications under Measles Disease

Feature Description

In addition to the case classifications currently available under Measles (NOT YET CLASSIFIED, SUSPECT CASE, PROBABLE CASE, CONFIRMED CASE, NOT A CASE), a request has been made to add two more; Clinically confirmed and Epidemiologically linked.

The automatic case classification by the system would be put on hold for the disease (Measles) as a clear algorithm for the selection is yet to be achieved instead users having the right user privilege should be able to manually select case classifications.

Possible Alternatives

Additional Information

bernardsilenou commented 3 years ago

Definitions from WHO https://www.who.int/immunization/monitoring_surveillance/burden/vpd/surveillance_type/active/measles_standards/en/

Laboratory-confirmed: A case that meets the clinical case definition (suspected case definition in SORMAS) and is laboratory-confirmed == Confirmed case in SORMAS Epidemiologically confirmed: A case that meets the clinical case definition and is linked to a laboratory-confirmed case Clinically confirmed: A case that meets the clinical case definition and for which no adequate blood specimen was taken

bernardsilenou commented 3 years ago

@MateStrysewske @generalkolo @kwa20 In order not the affect the case classification for other diseases and considering the fact the clinical and epi confirmed are all forms of confirmed categories for measles. We would like to proposed this design:

image

@generalkolo Please can you discuss this with the incident managers and comment if this is fine for them?

bernardsilenou commented 3 years ago

@kwa20 I can remember that you once designed a similar issue like this when classification == not a case. I cant not find the ticket, Pls can you link it to this one?

kwa20 commented 3 years ago

@bernardsilenou I think you're looking for #3419

bernardsilenou commented 3 years ago

@kwa20 Yes, this is it. I had a look and realized that the options can be multiple, right? So we may not use the same module. For this issue, you can choose only one option.

kwa20 commented 3 years ago

@bernardsilenou yes it's multiple options. However, is this not what we are looking for here?:

confirmation
bernardsilenou commented 3 years ago

@kwa20 this is what we need but only for confirmed cases + single option we can use the same place holders for clinical, epi and labo confirmation that we already have at back end

@MateStrysewske Pls can your suggest a good practice on how to go about implementing this?

kwa20 commented 3 years ago

@bernardsilenou Can you explain why a 'one selection only' option is needed? Multiple reasons could indeed apply right?

bernardsilenou commented 3 years ago

@kwa20 You are very right, multiple option can apply in real life. The clinical picture, lab, epi data, etc can be multiple but the goal is to lead you to a single classification. The interpretation is slightly opposite from the DE instance. On DE, the 3 variables: clinical (if symptom exist), lab ( if positive pathogen test exist) and api (exposures) confirmation are not categories of the case classification but are used to determine the classification. Can we validate this in Sirvnet by calling tomorrow?

In this ticket they are categories of final case classifications and can only be one, ie most accurate starting from lab confirmation to unclassified

MateStrysewske commented 3 years ago

@bernardsilenou @kwa20 This is kinda tricky. We should definitely find a way to use the fields that we already have - because we already have them. Right now they're only enabled for Germany (and thus Covid-19); what we could do is to add a new disease configuration parameter that allows to enable "extended case classification", which would make these three fields visible (by default OFF for all diseases in all countries, ON for Covid-19 in Germany, ON for Measles in Nigeria), and another parameter that allows to toggle between "single" and "multi" extended classification. "Multi" would work just as the three fields are working in Germany right now, "single" would add some logic that ensures that only one of the fields can be answered with "Yes". The easiest solution for this would be to automatically set the two other fields to "No" if "Yes" is selected in one of them, a better, but more complicated solution would be to add a custom dropdown that includes the three options and then maps to the three fields in the database.

What do you think?

bernardsilenou commented 3 years ago

@MateStrysewske

generalkolo commented 3 years ago

@bernardsilenou the solution indicated here works better for the system and the visual and user experience is better because the user has the option to click from the drop down.

I also spoke to the data transition team and they agreed the same.

@MateStrysewske @generalkolo @kwa20 In order not the affect the case classification for other diseases and considering the fact the clinical and epi confirmed are all forms of confirmed categories for measles. We would like to proposed this design:

  • Add a required variable basis for classification to case: enums: lab, clinical, epi
  • Activate it for measles only for now
  • if case classification == confirmed, then show basis of classification

image

@generalkolo Please can you discuss this with the incident managers and comment if this is fine for them?


@MateStrysewske the extended classification is a great idea but to the best of my knowledge (informed by having several discussions with the data transition team), a Measles case when confirmed can only be one of the three; laboratory confirmed, epidemologically linked, clinically confirmed so if the parameter when toggled on for "single" classification would provide the users with a single drop down with the three options mentioned above then that's fine and when toggled to "multi" classification can show the UI here (https://github.com/hzi-braunschweig/SORMAS-Project/issues/4218#issuecomment-776205335) then that's fine but I believe the team would most of the time prefer the "single" classification.

@bernardsilenou @kwa20 This is kinda tricky. We should definitely find a way to use the fields that we already have - because we already have them. Right now they're only enabled for Germany (and thus Covid-19); what we could do is to add a new disease configuration parameter that allows to enable "extended case classification", which would make these three fields visible (by default OFF for all diseases in all countries, ON for Covid-19 in Germany, ON for Measles in Nigeria), and another parameter that allows to toggle between "single" and "multi" extended classification. "Multi" would work just as the three fields are working in Germany right now, "single" would add some logic that ensures that only one of the fields can be answered with "Yes". The easiest solution for this would be to automatically set the two other fields to "No" if "Yes" is selected in one of them, a better, but more complicated solution would be to add a custom dropdown that includes the three options and then maps to the three fields in the database.

What do you think?

@Chinedar

MateStrysewske commented 3 years ago

@generalkolo The disease configuration would be necessary because e.g. for Covid-19 it's important that all three variables are tracked because all three of them could be "Yes" at the same time.

bernardsilenou commented 3 years ago

@MateStrysewske Yes, we would need the disease configuration. What @generalkolo is saying is about the design. When we toggled on for "single" option, can we till have a design like the one i proposed? image

From users perspective, I also think this design would be better to us.

If not possible, what about still adding a disease configuration for each option: multiple or single classification and add a new variable to be used for single option

MateStrysewske commented 3 years ago

@bernardsilenou Yes, such a design is possible, it's just more development effort because we have to create a field with quite some custom logic for it. :)

bernardsilenou commented 3 years ago

@MateStrysewske I think it is worth it to do it like this. Would you summaries and close the conversation? O have nothing new to add.

generalkolo commented 3 years ago

@MateStrysewske I think it is worth it to do it like this. Would you summarize and close the conversation? O have nothing new to add.

@MateStrysewske ?

MateStrysewske commented 3 years ago

@bernardsilenou @generalkolo I'll add a summary to this issue after the release and when the next sprint starts, so probably at some point this week.

MateStrysewske commented 3 years ago

Backend/API

UI

If for the disease of a case extendedClassification is TRUE and extendedClassificationMulti is TRUE and the case classification is CONFIRMED:

If for the disease of a case extendedClassification is TRUE and extendedClassificationMulti is FALSE and the case classification is CONFIRMED:

For any other case (=> extendedClassification FALSE and/or case classification is not CONFIRMED) don't show these fields at all

StefanKock commented 3 years ago

This ticket is not part of the already started Sprint 101

bernardsilenou commented 3 years ago

@StefanKock Please can we schedule it for 101.

StefanKock commented 3 years ago

@StefanKock Please can we schedule it for 101. Priotization is done at HZI.

StefanKock commented 3 years ago

Taken into Sprint 101 in exchange for #3003

MateStrysewske commented 3 years ago

4721 made clear that the way this issue was implemented isn't fully functional. These are the required changes:

Web app:

Android app:

MateStrysewske commented 3 years ago

@JonasCir will take care of these changes

bernardsilenou commented 3 years ago

@MateStrysewske We jut did a test and realized that we did not mention that this variable should be added to detailed case export. Have added #4796

JonasCir commented 3 years ago

mh I messed up my commit messages :D