Skip to content

Commit 200f249

Browse files
committed
#13541 - Updated RSV hospitalization
- Added fields `OXYGEN_PRESCRIBED`, `STILL_HOSPITALIZED`,`ICU_LENGTH_OF_STAY` - Hospitalization reason is set to `Reported disease` by default in case of RSV
1 parent acfe63d commit 200f249

File tree

10 files changed

+233
-4
lines changed

10 files changed

+233
-4
lines changed

sormas-api/src/main/java/de/symeda/sormas/api/hospitalization/HospitalizationDto.java

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.hospitalization;
1919

20-
import de.symeda.sormas.api.feature.FeatureType;
21-
import de.symeda.sormas.api.utils.DependingOnFeatureType;
2220
import java.util.ArrayList;
2321
import java.util.Date;
2422
import java.util.List;
@@ -28,8 +26,10 @@
2826

2927
import de.symeda.sormas.api.EntityDto;
3028
import de.symeda.sormas.api.ImportIgnore;
29+
import de.symeda.sormas.api.feature.FeatureType;
3130
import de.symeda.sormas.api.i18n.Validations;
3231
import de.symeda.sormas.api.utils.DataHelper;
32+
import de.symeda.sormas.api.utils.DependingOnFeatureType;
3333
import de.symeda.sormas.api.utils.FieldConstraints;
3434
import de.symeda.sormas.api.utils.Outbreaks;
3535
import de.symeda.sormas.api.utils.YesNoUnknown;
@@ -52,6 +52,9 @@ public class HospitalizationDto extends EntityDto {
5252
public static final String INTENSIVE_CARE_UNIT = "intensiveCareUnit";
5353
public static final String INTENSIVE_CARE_UNIT_START = "intensiveCareUnitStart";
5454
public static final String INTENSIVE_CARE_UNIT_END = "intensiveCareUnitEnd";
55+
public static final String OXYGEN_PRESCRIBED = "oxygenPrescribed";
56+
public static final String STILL_HOSPITALIZED = "stillHospitalized";
57+
public static final String ICU_LENGTH_OF_STAY = "icuLengthOfStay";
5558
public static final String HOSPITALIZATION_REASON = "hospitalizationReason";
5659
public static final String OTHER_HOSPITALIZATION_REASON = "otherHospitalizationReason";
5760
public static final String DESCRIPTION = "description";
@@ -72,6 +75,9 @@ public class HospitalizationDto extends EntityDto {
7275
private YesNoUnknown intensiveCareUnit;
7376
private Date intensiveCareUnitStart;
7477
private Date intensiveCareUnitEnd;
78+
private YesNoUnknown oxygenPrescribed;
79+
private YesNoUnknown stillHospitalized;
80+
private Integer icuLengthOfStay;
7581
private HospitalizationReasonType hospitalizationReason;
7682
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
7783
private String otherHospitalizationReason;
@@ -197,4 +203,28 @@ public String getDescription() {
197203
public void setDescription(String description) {
198204
this.description = description;
199205
}
206+
207+
public YesNoUnknown getOxygenPrescribed() {
208+
return oxygenPrescribed;
209+
}
210+
211+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
212+
this.oxygenPrescribed = oxygenPrescribed;
213+
}
214+
215+
public YesNoUnknown getStillHospitalized() {
216+
return stillHospitalized;
217+
}
218+
219+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
220+
this.stillHospitalized = stillHospitalized;
221+
}
222+
223+
public Integer getIcuLengthOfStay() {
224+
return icuLengthOfStay;
225+
}
226+
227+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
228+
this.icuLengthOfStay = icuLengthOfStay;
229+
}
200230
}

sormas-api/src/main/java/de/symeda/sormas/api/hospitalization/PreviousHospitalizationDto.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,20 @@
1717
*******************************************************************************/
1818
package de.symeda.sormas.api.hospitalization;
1919

20-
import de.symeda.sormas.api.feature.FeatureType;
21-
import de.symeda.sormas.api.utils.DependingOnFeatureType;
2220
import java.util.Date;
2321

2422
import javax.validation.constraints.Size;
2523

2624
import de.symeda.sormas.api.caze.CaseDataDto;
2725
import de.symeda.sormas.api.caze.CaseLogic;
26+
import de.symeda.sormas.api.feature.FeatureType;
2827
import de.symeda.sormas.api.i18n.Validations;
2928
import de.symeda.sormas.api.infrastructure.community.CommunityReferenceDto;
3029
import de.symeda.sormas.api.infrastructure.district.DistrictReferenceDto;
3130
import de.symeda.sormas.api.infrastructure.facility.FacilityReferenceDto;
3231
import de.symeda.sormas.api.infrastructure.region.RegionReferenceDto;
3332
import de.symeda.sormas.api.utils.DataHelper;
33+
import de.symeda.sormas.api.utils.DependingOnFeatureType;
3434
import de.symeda.sormas.api.utils.FieldConstraints;
3535
import de.symeda.sormas.api.utils.SensitiveData;
3636
import de.symeda.sormas.api.utils.YesNoUnknown;
@@ -59,6 +59,9 @@ public class PreviousHospitalizationDto extends PseudonymizableDto {
5959
public static final String INTENSIVE_CARE_UNIT = "intensiveCareUnit";
6060
public static final String INTENSIVE_CARE_UNIT_START = "intensiveCareUnitStart";
6161
public static final String INTENSIVE_CARE_UNIT_END = "intensiveCareUnitEnd";
62+
public static final String ICU_LENGTH_OF_STAY = "icuLengthOfStay";
63+
public static final String OXYGEN_PRESCRIBED = "oxygenPrescribed";
64+
public static final String STILL_HOSPITALIZED = "stillHospitalized";
6265

6366
private YesNoUnknown admittedToHealthFacility;
6467
private Date admissionDate;
@@ -85,6 +88,9 @@ public class PreviousHospitalizationDto extends PseudonymizableDto {
8588
private YesNoUnknown intensiveCareUnit;
8689
private Date intensiveCareUnitStart;
8790
private Date intensiveCareUnitEnd;
91+
private Integer icuLengthOfStay;
92+
private YesNoUnknown oxygenPrescribed;
93+
private YesNoUnknown stillHospitalized;
8894

8995
public static PreviousHospitalizationDto build(CaseDataDto caze) {
9096

@@ -117,6 +123,9 @@ public static PreviousHospitalizationDto build(CaseDataDto caze) {
117123
previousHospitalization.setIntensiveCareUnit(hospitalization.getIntensiveCareUnit());
118124
previousHospitalization.setIntensiveCareUnitStart(hospitalization.getIntensiveCareUnitStart());
119125
previousHospitalization.setIntensiveCareUnitEnd(hospitalization.getIntensiveCareUnitEnd());
126+
previousHospitalization.setIcuLengthOfStay(hospitalization.getIcuLengthOfStay());
127+
previousHospitalization.setOxygenPrescribed(hospitalization.getOxygenPrescribed());
128+
previousHospitalization.setStillHospitalized(hospitalization.getStillHospitalized());
120129
previousHospitalization.setDescription(hospitalization.getDescription());
121130

122131
return previousHospitalization;
@@ -249,4 +258,28 @@ public Date getIntensiveCareUnitEnd() {
249258
public void setIntensiveCareUnitEnd(Date intensiveCareUnitEnd) {
250259
this.intensiveCareUnitEnd = intensiveCareUnitEnd;
251260
}
261+
262+
public Integer getIcuLengthOfStay() {
263+
return icuLengthOfStay;
264+
}
265+
266+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
267+
this.icuLengthOfStay = icuLengthOfStay;
268+
}
269+
270+
public YesNoUnknown getOxygenPrescribed() {
271+
return oxygenPrescribed;
272+
}
273+
274+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
275+
this.oxygenPrescribed = oxygenPrescribed;
276+
}
277+
278+
public YesNoUnknown getStillHospitalized() {
279+
return stillHospitalized;
280+
}
281+
282+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
283+
this.stillHospitalized = stillHospitalized;
284+
}
252285
}

sormas-api/src/main/java/de/symeda/sormas/api/i18n/Captions.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -894,14 +894,17 @@ public interface Captions {
894894
String CaseHospitalization_healthFacility = "CaseHospitalization.healthFacility";
895895
String CaseHospitalization_hospitalizationReason = "CaseHospitalization.hospitalizationReason";
896896
String CaseHospitalization_hospitalizedPreviously = "CaseHospitalization.hospitalizedPreviously";
897+
String CaseHospitalization_icuLengthOfStay = "CaseHospitalization.icuLengthOfStay";
897898
String CaseHospitalization_intensiveCareUnit = "CaseHospitalization.intensiveCareUnit";
898899
String CaseHospitalization_intensiveCareUnitEnd = "CaseHospitalization.intensiveCareUnitEnd";
899900
String CaseHospitalization_intensiveCareUnitStart = "CaseHospitalization.intensiveCareUnitStart";
900901
String CaseHospitalization_isolated = "CaseHospitalization.isolated";
901902
String CaseHospitalization_isolationDate = "CaseHospitalization.isolationDate";
902903
String CaseHospitalization_leftAgainstAdvice = "CaseHospitalization.leftAgainstAdvice";
903904
String CaseHospitalization_otherHospitalizationReason = "CaseHospitalization.otherHospitalizationReason";
905+
String CaseHospitalization_oxygenPrescribed = "CaseHospitalization.oxygenPrescribed";
904906
String CaseHospitalization_previousHospitalizations = "CaseHospitalization.previousHospitalizations";
907+
String CaseHospitalization_stillHospitalized = "CaseHospitalization.stillHospitalized";
905908
String caseImportErrorDescription = "caseImportErrorDescription";
906909
String caseImportMergeCase = "caseImportMergeCase";
907910
String caseInfrastructureDataChanged = "caseInfrastructureDataChanged";
@@ -931,14 +934,17 @@ public interface Captions {
931934
String CasePreviousHospitalization_healthFacility = "CasePreviousHospitalization.healthFacility";
932935
String CasePreviousHospitalization_healthFacilityDetails = "CasePreviousHospitalization.healthFacilityDetails";
933936
String CasePreviousHospitalization_hospitalizationReason = "CasePreviousHospitalization.hospitalizationReason";
937+
String CasePreviousHospitalization_icuLengthOfStay = "CasePreviousHospitalization.icuLengthOfStay";
934938
String CasePreviousHospitalization_intensiveCareUnit = "CasePreviousHospitalization.intensiveCareUnit";
935939
String CasePreviousHospitalization_intensiveCareUnitEnd = "CasePreviousHospitalization.intensiveCareUnitEnd";
936940
String CasePreviousHospitalization_intensiveCareUnitStart = "CasePreviousHospitalization.intensiveCareUnitStart";
937941
String CasePreviousHospitalization_isolated = "CasePreviousHospitalization.isolated";
938942
String CasePreviousHospitalization_isolationDate = "CasePreviousHospitalization.isolationDate";
939943
String CasePreviousHospitalization_otherHospitalizationReason = "CasePreviousHospitalization.otherHospitalizationReason";
944+
String CasePreviousHospitalization_oxygenPrescribed = "CasePreviousHospitalization.oxygenPrescribed";
940945
String CasePreviousHospitalization_prevHospPeriod = "CasePreviousHospitalization.prevHospPeriod";
941946
String CasePreviousHospitalization_region = "CasePreviousHospitalization.region";
947+
String CasePreviousHospitalization_stillHospitalized = "CasePreviousHospitalization.stillHospitalized";
942948
String caseReferFromPointOfEntry = "caseReferFromPointOfEntry";
943949
String caseSearchCase = "caseSearchCase";
944950
String caseSearchSpecificCase = "caseSearchSpecificCase";

sormas-api/src/main/resources/captions.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -643,6 +643,9 @@ CaseHospitalization.intensiveCareUnitStart=Start of the stay
643643
CaseHospitalization.intensiveCareUnitEnd=End of the stay
644644
CaseHospitalization.hospitalizationReason=Reason for hospitalization
645645
CaseHospitalization.otherHospitalizationReason=Specify reason
646+
CaseHospitalization.oxygenPrescribed=Oxygen prescribed
647+
CaseHospitalization.stillHospitalized=Still hospitalized
648+
CaseHospitalization.icuLengthOfStay=Length of ICU stay (days)
646649
# CaseImport
647650
caseImportErrorDescription=Error description
648651
caseImportMergeCase=Override existing case with changes from the imported case?
@@ -667,6 +670,9 @@ CasePreviousHospitalization.otherHospitalizationReason=Specify reason
667670
CasePreviousHospitalization.intensiveCareUnit=Stay in the intensive care unit
668671
CasePreviousHospitalization.intensiveCareUnitStart=Start of the stay
669672
CasePreviousHospitalization.intensiveCareUnitEnd=End of the stay
673+
CasePreviousHospitalization.icuLengthOfStay=Length of stay in the ICU
674+
CasePreviousHospitalization.oxygenPrescribed=Was oxygen prescribed during the hospitalization?
675+
CasePreviousHospitalization.stillHospitalized=Is the patient still hospitalized?
670676
# ClinicalVisit
671677
clinicalVisitNewClinicalVisit=New clinical assessment
672678
ClinicalVisit=Clinical assessment

sormas-backend/src/main/java/de/symeda/sormas/backend/hospitalization/Hospitalization.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ public class Hospitalization extends AbstractDomainObject {
5454
public static final String INTENSIVE_CARE_UNIT = "intensiveCareUnit";
5555
public static final String INTENSIVE_CARE_UNIT_START = "intensiveCareUnitStart";
5656
public static final String INTENSIVE_CARE_UNIT_END = "intensiveCareUnitEnd";
57+
public static final String OXYGEN_PRESCRIBED = "oxygenPrescribed";
58+
public static final String STILL_HOSPITALIZED = "stillHospitalized";
59+
public static final String ICU_LENGTH_OF_STAY = "icuLengthOfStay";
5760
public static final String DESCRIPTION = "description";
5861

5962
private YesNoUnknown admittedToHealthFacility;
@@ -69,6 +72,9 @@ public class Hospitalization extends AbstractDomainObject {
6972
private YesNoUnknown intensiveCareUnit;
7073
private Date intensiveCareUnitStart;
7174
private Date intensiveCareUnitEnd;
75+
private YesNoUnknown oxygenPrescribed;
76+
private YesNoUnknown stillHospitalized;
77+
private Integer icuLengthOfStay;
7278
private HospitalizationReasonType hospitalizationReason;
7379
private String otherHospitalizationReason;
7480
private String description;
@@ -210,4 +216,30 @@ public String getDescription() {
210216
public void setDescription(String description) {
211217
this.description = description;
212218
}
219+
220+
@Enumerated(EnumType.STRING)
221+
public YesNoUnknown getOxygenPrescribed() {
222+
return oxygenPrescribed;
223+
}
224+
225+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
226+
this.oxygenPrescribed = oxygenPrescribed;
227+
}
228+
229+
@Enumerated(EnumType.STRING)
230+
public YesNoUnknown getStillHospitalized() {
231+
return stillHospitalized;
232+
}
233+
234+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
235+
this.stillHospitalized = stillHospitalized;
236+
}
237+
238+
public Integer getIcuLengthOfStay() {
239+
return icuLengthOfStay;
240+
}
241+
242+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
243+
this.icuLengthOfStay = icuLengthOfStay;
244+
}
213245
}

sormas-backend/src/main/java/de/symeda/sormas/backend/hospitalization/HospitalizationFacadeEjb.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ public Hospitalization fillOrBuildEntity(HospitalizationDto source, Hospitalizat
8787
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
8888
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
8989
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
90+
target.setOxygenPrescribed(source.getOxygenPrescribed());
91+
target.setStillHospitalized(source.getStillHospitalized());
92+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
9093
target.setDescription(source.getDescription());
9194

9295
return target;
@@ -121,6 +124,9 @@ public PreviousHospitalization fillOrBuildEntity(PreviousHospitalizationDto sour
121124
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
122125
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
123126
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
127+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
128+
target.setOxygenPrescribed(source.getOxygenPrescribed());
129+
target.setStillHospitalized(source.getStillHospitalized());
124130

125131
return target;
126132
}
@@ -155,6 +161,9 @@ public static HospitalizationDto toDto(Hospitalization hospitalization) {
155161
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
156162
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
157163
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
164+
target.setOxygenPrescribed(source.getOxygenPrescribed());
165+
target.setStillHospitalized(source.getStillHospitalized());
166+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
158167
target.setDescription(source.getDescription());
159168

160169
return target;
@@ -186,6 +195,9 @@ public static PreviousHospitalizationDto toDto(PreviousHospitalization source) {
186195
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
187196
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
188197
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
198+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
199+
target.setOxygenPrescribed(source.getOxygenPrescribed());
200+
target.setStillHospitalized(source.getStillHospitalized());
189201

190202
return target;
191203
}

sormas-backend/src/main/java/de/symeda/sormas/backend/hospitalization/PreviousHospitalization.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ public class PreviousHospitalization extends AbstractDomainObject {
8080
private YesNoUnknown intensiveCareUnit;
8181
private Date intensiveCareUnitStart;
8282
private Date intensiveCareUnitEnd;
83+
private Integer icuLengthOfStay;
84+
private YesNoUnknown oxygenPrescribed;
85+
private YesNoUnknown stillHospitalized;
8386

8487
@Enumerated(EnumType.STRING)
8588
public YesNoUnknown getAdmittedToHealthFacility() {
@@ -233,4 +236,30 @@ public Date getIntensiveCareUnitEnd() {
233236
public void setIntensiveCareUnitEnd(Date intensiveCareUnitEnd) {
234237
this.intensiveCareUnitEnd = intensiveCareUnitEnd;
235238
}
239+
240+
public Integer getIcuLengthOfStay() {
241+
return icuLengthOfStay;
242+
}
243+
244+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
245+
this.icuLengthOfStay = icuLengthOfStay;
246+
}
247+
248+
@Enumerated(EnumType.STRING)
249+
public YesNoUnknown getOxygenPrescribed() {
250+
return oxygenPrescribed;
251+
}
252+
253+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
254+
this.oxygenPrescribed = oxygenPrescribed;
255+
}
256+
257+
@Enumerated(EnumType.STRING)
258+
public YesNoUnknown getStillHospitalized() {
259+
return stillHospitalized;
260+
}
261+
262+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
263+
this.stillHospitalized = stillHospitalized;
264+
}
236265
}

sormas-backend/src/main/resources/sql/sormas_schema.sql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14416,4 +14416,24 @@ alter table drugsusceptibility_history add column IF NOT EXISTS erythromycinSusc
1441614416

1441714417
INSERT INTO schema_version (version_number, comment) VALUES (578, 'Update history tables #13516');
1441814418

14419+
-- 2025-08-06 - RSV - Update Hospitalization #13541
14420+
14421+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14422+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14423+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14424+
14425+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14426+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14427+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14428+
14429+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14430+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14431+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14432+
14433+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14434+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14435+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14436+
14437+
INSERT INTO schema_version (version_number, comment) VALUES (582, 'RSV - Update Hospitalization #13541');
14438+
1441914439
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

0 commit comments

Comments
 (0)