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
291 stars 136 forks source link

SurvNet Adaptations - Create new field “nosocomial outbreak” to cases [1] #3416

Closed markusmann-vg closed 3 years ago

markusmann-vg commented 3 years ago

Situation Description

Feature Description

Create new field “nosocomial outbreak” to cases Case > case information New fields (only DE):

Nosocomialer Ausbruch” (de – deI| “Nosocomial outbreak” (en)|

“Infektionsumfeld” (de – de) | “Infection setting” (en) [SurvNet field name:P112Setting]

Place field above “home-based quarantine/isolation” possible

Values (de-de) | (en) Data Type: Dropdown/enum

Ambulant       Ambulant      
  Arztpraxis/Zahnarztpraxis   Medical practice        
  operativ       surgical    
  Krankenhaus     Hospital      
  Dialyseeinrichtung     Dialysis facility      
  Entbindungseinricht     Maternity unit      
  sonstige ambulante Einrichtung   other outpatient facility        
               
Stationär       In-patient      
  Krankenhaus Normalstation (operativ, nicht-operativ, Hämatoonkologie)     Hospital Normal ward (operative, non-operative, hematological oncology)  
    Kinderstation     Children's ward    
    Neonatalogie     Neonatology    
    Intensivstation     Intensive Care Unit    
               
    Sonstige Station     Other station    
               
  Pflegeeinrichtung     Nursing home      
  Reha-Einrichtung     Rehab facility      
  sonstige stationäre Einrichtung   other in-patient facililty        
Rettungsdienst       Emergency medical services      
               

Possible Alternatives

Additional Information

markusmann-vg commented 3 years ago
P112Setting Nicht Ermittelbar -1  
P112Setting Nicht Erhoben 0  
P112Setting Ambulant 1000  
P112Setting Ambulant → Arztpraxis 1100  
P112Setting Ambulant → Operativ 1200 1200  
P112Setting Ambulant → Krankenhaus 1300 1300  
P112Setting Ambulant → Sonstige Ambulante Einrichtung 1400  
P112Setting Stationar 2000  
P112Setting Stationar → Krankenhaus 2100 2100  
P112Setting Stationar → Krankenhaus 2100 → Normalstation 2110  
P112Setting Stationar → Krankenhaus 2100 → Normalstation → Operativ 2111 2111  
P112Setting Stationar → Krankenhaus 2100 → Normalstation → Nicht Operativ 2112  
P112Setting Stationar → Krankenhaus 2100 → Normalstation → Hamatoonkologie 2113  
P112Setting Stationar → Krankenhaus 2100 → Kinderstation 2120  
P112Setting Stationar → Krankenhaus 2100 → Neonatologie 2130  
P112Setting Stationar → Krankenhaus 2100 → Intensivstation 2140  
P112Setting Stationar → Krankenhaus 2100 → Sonstige Station 2150  
P112Setting Stationar → Pflege Einrichtung 2200  
P112Setting Stationar → Reha Einrichtung 2300  
P112Setting Stationar → Sonstige Stationare Einrichtung 2400  
GabrielePoggensee commented 3 years ago

IfSG relevant: § 11 (1) 1 d: case belongs to a cluster Data are transmitted to RKI

FredrikSchaefer commented 3 years ago

It is not yet really clear to me how to implement this. The description says two fields are supposed to be added. The hierarchy of the enum table has three layers. Is it meant to be like this:

One field is a boolean 'Nosocomial outbreak'. When this is checked, a new field 'Infection setting' becomes selectable where the user can choose from the enum specified? Should there be three fields for the enum instead, where one becomes selectable after the the previous one (as we have it for region -> district -> community)?

HolgerReiseVSys commented 3 years ago

Generated from the specs:

public enum P112setting {
  NICHT_ERMITTELBAR(null),

  NICHT_ERHOBEN(null),

  AMBULANT(null),

  ARZTPRAXIS(AMBULANT),

  OPERATIV_1200(AMBULANT),

  KRANKENHAUS_1300(AMBULANT),

  SONSTIGE_AMBULANTE_EINRICHTUNG(AMBULANT),

  STATIONAR(null),

  KRANKENHAUS_2100(STATIONAR),

  NORMALSTATION(KRANKENHAUS_2100),

  OPERATIV_2111(NORMALSTATION),

  NICHT_OPERATIV(NORMALSTATION),

  HAMATOONKOLOGIE(NORMALSTATION),

  KINDERSTATION(KRANKENHAUS_2100),

  NEONATOLOGIE(KRANKENHAUS_2100),

  INTENSIVSTATION(KRANKENHAUS_2100),

  SONSTIGE_STATION(KRANKENHAUS_2100),

  PFLEGE_EINRICHTUNG(STATIONAR),

  REHA_EINRICHTUNG(STATIONAR),

  SONSTIGE_STATIONARE_EINRICHTUNG(STATIONAR),

  private final P112setting parent;

  P112settingMapping(P112setting parent) {
    this.parent = parent;
  }

  public P112setting getParent() {
    return this.parent;
  }
}
P112Setting.NICHT_ERMITTELBAR="-nicht ermittelbar-"
P112Setting.NICHT_ERHOBEN="-nicht erhoben-"
P112Setting.AMBULANT="ambulant"
P112Setting.ARZTPRAXIS="Arztpraxis"
P112Setting.OPERATIV_1200="operativ"
P112Setting.KRANKENHAUS_1300="Krankenhaus"
P112Setting.SONSTIGE_AMBULANTE_EINRICHTUNG="sonstige ambulante Einrichtung"
P112Setting.STATIONAR="stationär"
P112Setting.KRANKENHAUS_2100="Krankenhaus"
P112Setting.NORMALSTATION="Normalstation"
P112Setting.OPERATIV_2111="operativ"
P112Setting.NICHT_OPERATIV="nicht-operativ"
P112Setting.HAMATOONKOLOGIE="Hämatoonkologie"
P112Setting.KINDERSTATION="Kinderstation"
P112Setting.NEONATOLOGIE="Neonatologie"
P112Setting.INTENSIVSTATION="Intensivstation"
P112Setting.SONSTIGE_STATION="sonstige Station"
P112Setting.PFLEGE_EINRICHTUNG="Pflege-Einrichtung"
P112Setting.REHA_EINRICHTUNG="Reha-Einrichtung"
P112Setting.SONSTIGE_STATIONARE_EINRICHTUNG="sonstige stationäre Einrichtung"
HolgerReiseVSys commented 3 years ago

an 'Nosocomial outbreak'. When this is checked, a new field 'Infection setting' becomes selectable where the user can choose from the enum specified? Should there be three fields for the enum instead, where one becomes selectable after the the previous one (as we have it for region -> district -> community)?

The number of values is so low that we should probably put everything in one combobox. We have to make sure that the hierarchy is reflected in the captions. In SurvNet the caption of the parent element is prepended when the caption of an element is ambiguous:

grafik

grafik

grafik

kwa20 commented 3 years ago

I just saw this field in SurvNet and was a bit worried about the execution and logic behind this field. Putting such a field in cases implies, that this case resulted from a nosocomial outbreak rather than being the cause of one. An outbreak itself is also not documented in a case, therefore I suggest to name the field 'Resulted from nosocomial outbreak?'(yes, no, unknown) rather than just nosocomial outbreak. Unknown would also equal 'nicht ermittelbar', because how would someone know that a case resulted from a nosocomial outbreak if nothing is known about the setting?

The same case would theoretically also be linked to an event where this outbreak is documented as a cluster with a medical facility as the event location. Furthermore, the person would've had to be in contact with a source case in this setting, meaning there would be an exposure documented in the epi data describing this exposure through the contact to the source case. However, documented events and exposures is just good data quality and not necessarily a dependency.

In regards to this, though, the nosocomial outbreak field (and infection setting) should only be selectable when the case origin was in a medical facility. It should therefore be hidden until medical facility is selected as the facility category after place of stay since it otherwise might contradict other entries.

I realize that the issue is already under review, so I might probably just create a separate issue after initial implementation. Please let me know @markusmann-vg @HolgerReiseVSys

bernardsilenou commented 3 years ago

@kwa20 I absolutly agree with what you are saying. We can have a rare situation whereby the user knows that a case is linked to a nonsocomial outbreak but the event is not registered in the system of the user. Thus may be useful to have this variable linked to the case.

Whether we have this new variable added to the case or not, I suggest that when transferring data from sormas to survnet, we need to additionally check and validate if case = resulting case of a cluster with nosocomial = Yes

markusmann-vg commented 3 years ago

@kwa20 As in SurvNet there is no dependency related to nosocomial outbreak, we will also not add any dependency right now. I would agree to add the translation "Resulted from nosocomial outbreak".

AndyBakcsy-she commented 3 years ago

Verified issue on SORMAS Version: 1.53.0-SNAPSHOT Found out that the field "Emergency medical services" is not in the dropdown and this is because the implementation was done based on the second Table from the commentaries, @markusmann-vg could you confirm that this is the desired implementation and we can leave the Emergency medical services out?

HolgerReiseVSys commented 3 years ago

@kwa20 please update the German translations to match SurvNet:

CaseData.nosocomialOutbreak=Nosokomialer Ausbruch (z.B. §6 Abs. 3 IfSG)
HolgerReiseVSys commented 3 years ago

"/" does not apear to be a sensible hierarchy separator for enum captions. An arrow should be used instead.

kwa20 commented 3 years ago

@HolgerReiseVSys The reason for renaming it 'resulted from nosocomial outbreak' was that it actually makes a lot more sense that way in the case entity. I didn't want to follow the bad example in SurvNet because just calling it 'nosocomial outbreak' might be confusing and not very fitting as described above. Do you know if we are obliged to follow the exact wording? All the other values in the drop down should conform to the ones shown in SurvNet.

Would it be possible to maybe switch the places of 'prohibition to work' and 'nosocomial outbreak'? I think context wise 'nosocomial outbreak' relates more to facilities and 'prohibition to work' to quarantine. Not sure how much effort that would be.

Screen Shot 2020-12-14 at 1 39 02 PM

@bernardsilenou @markusmann-vg What do you think?

HolgerReiseVSys commented 3 years ago

Would it be possible to maybe switch the places of 'prohibition to work' and 'nosocomial outbreak'? I think context wise 'nosocomial outbreak' relates more to facilities and 'prohibition to work' to quarantine. Not sure how much effort that would be.

This should not be much work, but it should probably go into another ticket. If FeatureType.NATIONAL_CASE_SHARING is enabled, there is a field "sharedToCountry" between the two. Where should it be located, then?

HolgerReiseVSys commented 3 years ago

@HolgerReiseVSys The reason for renaming it 'resulted from nosocomial outbreak' was that it actually makes a lot more sense that way in the case entity. I didn't want to follow the bad example in SurvNet because just calling it 'nosocomial outbreak' might be confusing and not very fitting as described above. Do you know if we are obliged to follow the exact wording? All the other values in the drop down should conform to the ones shown in SurvNet.

@kwa20 We are not required to use the exact wording, but would probably make sense to name it consistently so the relationship is obvious. This is important as it affects if a case must be transported to the corresponding state health department.

kwa20 commented 3 years ago

This should not be much work, but it should probably go into another ticket. If FeatureType.NATIONAL_CASE_SHARING is enabled, there is a field "sharedToCountry" between the two. Where should it be located, then?

@HolgerReiseVSys Intuitively I would say we can leave 'sharedToCountry' in between the two for now. You can find the corresponding issue here: #3776

bernardsilenou commented 3 years ago

@HolgerReiseVSys I wish to suggest that the naming from "nosocomial outbreak' to "resulted from nosocomial outbreak' is better since the same adjective is used.

HolgerReiseVSys commented 3 years ago

@bernardsilenou @kwa20 Your assessment that this matches the definition in SurvNet and that this is sufficiently clear to German health departments is fine with me. Just leave the translations as-is.

AndyBakcsy-she commented 3 years ago

Verified the updated ticket on the latest version of SORMAS Version: 1.53.0-SNAPSHOT on https://test-de1.sormas.netzlink.com/