Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manually triggered calculation of case classification [3] #4770

Closed
Tracked by #10741 ...
JaquM-HZI opened this issue Mar 15, 2021 · 16 comments · Fixed by #5805 or #5813
Closed
Tracked by #10741 ...

Manually triggered calculation of case classification [3] #4770

JaquM-HZI opened this issue Mar 15, 2021 · 16 comments · Fixed by #5805 or #5813
Assignees
Labels
backend Affects the web backend cases de Adaptations requested by or implemented for Germany de-public Adaptations of special interest for German health authorities feature A new feature to be developed (ticket type) qa-verified Issue has been tested and verified by QA

Comments

@JaquM-HZI
Copy link

JaquM-HZI commented Mar 15, 2021

Further informations in #4770 (comment)

Situation Description

For Germany only, the case classification should be calculated according to the RKI standards, when clicking a button "calculate" which is next to the case classification

The calculation must be based on the information available in each case.
Belongs to #3004

Feature Description

Case category Case definition Description Calculation basis
B. Clinical-epidemiologically confirmed disease Clinical picture of COVID-19, without laboratory diagnostic evidence but with epidemiological confirmation. Clinical picture fulfilled but no positive sample (positive rapid antigen detection WITHOUT laboratory can be positive)
C. Clinical-laboratory diagnostic confirmed disease Clinical picture of COVID-19* and laboratory diagnostic evidence by nucleic acid detection or pathogen isolation (C1) or laboratory diagnostic evidence by antigen detection (C2) Clinical picture fulfilled AND Positive PCR sample OR Positive antigen detectionfrom laboratory OR Positive pathogen isolation
D. Laboratory-diagnostically proven infection if the clinical picture is not fulfilled Laboratory diagnostic evidence by nucleic acid detection or pathogen isolation (D1) or laboratory diagnostic. Detection by antigen detection (D2) in the presence of a known clinical picture that does not meet the criteria for COVID-19 Clinical picture NOT fulfilled (all other symptoms without the ones for clinical picture) AND Positive PCR sample OR Positive antigen detection from laboratory OR Positive pathogen isolation
E. Laboratory-diagnostically proven infection with unknown clinical picture Laboratory diagnostic detection by means of nucleic acid detection or pathogen isolation (E1) or laboratory diagnostic detection by means of antigen detection (E2) in the absence of information on the clinical picture (not ascertainable or not collected). Clinical picture unknown AND Positive PCR sample OR Positive antigen detectionfrom laboratory OR Positive pathogen isolation

|

*Clinical picture:
at least one of the following symptoms:

  • Acute respiratory symptoms of any severity:
    - cough
    - pneumoniaClinicalOrRadiologic
    - acuteRespiratoryDistressSyndrom
    - respiratoryDiseaseVentilation
    - difficultyBreathing
  • new-onset loss of smell or taste:
    • lossOfTaste
    • lossOfSmell
  • disease-related death

Possible Alternatives

Additional Information

@kwa20

To do:
=> Remove validation
=> Add "calculate" option
=> In Germany automatic caseclassification = false

Development Specifications

  • Extend the CaseClassificationFacadeEjb.buildCriteria method with ClassificationCriteriaDto for the two case classifications CONFIRMED_NO_SYMPTOMS and CONFIRMED_UNKNOWN_SYMPTOMS; only consider them for German servers
  • Add a new extension of ClassificationCriteriaDto called ClassificationAllSymptomsCriteriaDto which is passed the SymptomsDto and a SymptomState and goes through all symptoms where the @Diseases annotation contains the disease in question and checks whether the value matches the given SymptomState; the eval method returns true if all symptoms match the SymptomState and false if at least one symptom does not match the SymptomState; should also be possible to call this criteria with null in which case it verifies that all symptoms have no value
  • Extend the CaseClassificationFacadeEjb.buildCriteria method with code to build the classification criteria for CORONAVIRUS according to the following specifications; only do this for German servers
    • SUSPECT: at least one of the following symptoms: pneumoniaClinicalOrRadiologic, difficultyBreathing, cough, runnyNose, respiratoryDiseaseVentilation, acuteRespiratoryDistressSyndrome, lossOfTaste, lossOfSmell
    • PROBABLE: suspect + either epidemiological confirmation = YES (use ClassificationCaseCriteriaDto) or case is linked to an event with EventStatus CLUSTER (new ClassificationCriteriaDto needed for this)
    • CONFIRMED: suspect + a positive test result for CORONAVIRUS with the pathogen test types PCR_RT_PCR, ANTIGEN_DETECTION , ISOLATION or SEQUENZING
    • CONFIRMED_NO_SYMPTOMS: a positive test result (see above) and EITHER all symptoms that are enabled for Covid-19 set to false (use the new ClassificationAllSymptomsCriteriaDto) OR at least one of the following symptoms set to true: fever, generalSignsOfDisease, diarrhea, fastHeartRate, rapidBreathing, oxygenSaturationLower94, vomiting, chillsSweats
    • CONFIRMED_UNKNOWN_SYMPTOMS: a positive test result (see above) and all symptoms that are enabled for Covid-19 set to unknown or null (use the new ClassificationAllSymptomsCriteriaDto)
  • Remove the (currently unused) logic that validates the case classification for Covid-19 cases on German systems
  • Add a "Calculate" button next to the case classification that can be pressed to manually trigger a re-calculation of the case classification (same logic that is called when saving a case); this button should be visible irrespective of whether or not automatic case classification is turned on for the server; should only be visible if the user has the user right CASE_CLASSIFY
@JaquM-HZI JaquM-HZI added the feature A new feature to be developed (ticket type) label Mar 15, 2021
@MateStrysewske MateStrysewske added cases de Adaptations requested by or implemented for Germany backend Affects the web backend labels Mar 15, 2021
@JonasCir
Copy link
Contributor

JonasCir commented Mar 15, 2021

#4116
I linked the official RKI document there as well I think

@MateStrysewske MateStrysewske added duplicate Duplicate of an already existing issue and removed backend Affects the web backend cases de Adaptations requested by or implemented for Germany feature A new feature to be developed (ticket type) labels Mar 15, 2021
@MateStrysewske MateStrysewske added backend Affects the web backend cases de Adaptations requested by or implemented for Germany and removed duplicate Duplicate of an already existing issue labels Mar 15, 2021
@markusmann-vg markusmann-vg added the needs-refinement Refinement or further specification required label Apr 26, 2021
@markusmann-vg markusmann-vg added this to the Sprint 103 - 1.60.0 milestone Apr 26, 2021
@StefanKock StefanKock removed this from the Sprint 103 - 1.60.0 milestone Apr 29, 2021
@maxiheyner
Copy link

Issue Tracker Comment

@maxiheyner maxiheyner added the de-public Adaptations of special interest for German health authorities label May 4, 2021
@maxiheyner
Copy link

  • Add a checkbox to avoid sending this case to SurvNet - in GERMAN call this box please "Senden an Meldesoftware erfolgt in anderem Landkreis".
  • Implement a logic that checking this box leads to a warning for the user that "this case actively is prevented from sending to SurvNet".
  • Add a bulk action function to prevent the checked cases from sending to SurvNet (name this action "Senden an Meldesoftware erfolgt in anderem Landkreis")
  • Add a filter for cases which are not supposed to be send to SurvNet (checked - see above) at the case directory
  • Prevent also these cases that are part of an event cluster from sending to SurvNet when this mentioned box is checked

@markusmann-vg
Copy link

markusmann-vg commented May 5, 2021

The comment from @maxiheyner is covered by a new issue #5324 and is NOT part of this one!

@JaquM Please add to the prio_list and priritize

@markusmann-vg markusmann-vg changed the title Automatic calculation of case classification Manually triggered Automatic calculation of case classification May 5, 2021
@markusmann-vg markusmann-vg changed the title Manually triggered Automatic calculation of case classification Manually triggered calculation of case classification May 5, 2021
@markusmann-vg markusmann-vg changed the title Manually triggered calculation of case classification Manually triggered calculation of case classification [3] May 5, 2021
@MateStrysewske
Copy link
Contributor

@JaquM I've updated the development specifications based on the currently disabled case classification validation logic for German systems. I guess the clinical picture part is not up-to-date. Can you please update the clinical picture for Covid-19 based on the exact symptoms that we have in the system?

@StefanKock StefanKock added this to the Sprint 104 - 1.61.0 milestone Jun 14, 2021
@StefanKock
Copy link
Contributor

Found by @syntakker : Minor finding: Automated recalculation for case classification is not triggered when a cluster event is unlinked (for classification "suspect" + cluster event => "probable", unlink cluster event =>"suspect")

@StefanKock StefanKock reopened this Jun 14, 2021
SORMAS Team 2 - DEV - Iteration Backlog automation moved this from Testing to In Progress Jun 14, 2021
@sergiupacurariu
Copy link
Contributor

When a cluster event is unlinked from a case, the case is not saved. The automatic calculation is triggered only if the case is saved. In case the event is unlinked the user could use the "Calculate case classification" button to manually trigger the calculation.

SORMAS Team 2 - DEV - Iteration Backlog automation moved this from In Progress to Testing Jun 14, 2021
sergiupacurariu added a commit that referenced this issue Jun 16, 2021
…triggered_calculation_of_case_classification_additional_changes

#4770 - Manually triggered calculation of case classification - addit…
@JaquM-HZI
Copy link
Author

@sergiupacurariu we please need to add "sore throat / pharyngitis" as symptom for the clinical picture.
I'm sorry for this last minute change.

@JaquM-HZI JaquM-HZI reopened this Jun 16, 2021
SORMAS Team 2 - DEV - Iteration Backlog automation moved this from Testing to In Progress Jun 16, 2021
@sergiupacurariu
Copy link
Contributor

@JaquM In the classification rules we have two sets of symptoms:

  • first set: - Pneumonia (clinical or radiologic), Difficulty breathing/Dyspnea, Cough, Runny nose, Respiratory disease requiring ventilation, Acute respiratory distress syndrome, New loss of taste, New loss of smell. This set is used for: suspect, probable and confirmed
  • second set: - Fever, Diarrhea, Fast heart rate (Tachycardia), Rapid breathing, Oxygen saturation < 94 %, Vomiting, Chills or sweats. This set is used for Confirmed classification - Unknown symptoms.
    Please let me know if this new symptom goes in both sets or only in one of them. Thank you!

@JaquM-HZI
Copy link
Author

@sergiupacurariu the first set please

sergiupacurariu added a commit that referenced this issue Jun 16, 2021
@sergiupacurariu sergiupacurariu moved this from In Progress to Review in SORMAS Team 2 - DEV - Iteration Backlog Jun 16, 2021
SORMAS Team 2 - DEV - Iteration Backlog automation moved this from Review to Testing Jun 16, 2021
sergiupacurariu added a commit that referenced this issue Jun 16, 2021
…triggered_case_classification_add_new_symptom

#4770 - Manually triggered calculation of case classification - added…
@RazvanHodisan RazvanHodisan self-assigned this Jun 22, 2021
@RazvanHodisan RazvanHodisan added the qa-verified Issue has been tested and verified by QA label Jun 23, 2021
@RazvanHodisan
Copy link

Verified on Local and https://test-de.sormas.netzlink.com/, Version: 1.61.0-SNAPSHOT

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend Affects the web backend cases de Adaptations requested by or implemented for Germany de-public Adaptations of special interest for German health authorities feature A new feature to be developed (ticket type) qa-verified Issue has been tested and verified by QA
Projects
None yet
9 participants