Skip to content

Commit e53efc8

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 d566f1e commit e53efc8

File tree

10 files changed

+229
-0
lines changed

10 files changed

+229
-0
lines changed

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

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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";
@@ -73,6 +76,9 @@ public class HospitalizationDto extends EntityDto {
7376
private YesNoUnknown intensiveCareUnit;
7477
private Date intensiveCareUnitStart;
7578
private Date intensiveCareUnitEnd;
79+
private YesNoUnknown oxygenPrescribed;
80+
private YesNoUnknown stillHospitalized;
81+
private Integer icuLengthOfStay;
7682
private HospitalizationReasonType hospitalizationReason;
7783
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
7884
private String otherHospitalizationReason;
@@ -207,4 +213,28 @@ public YesNoUnknown getCurrentlyHospitalized() {
207213
public void setCurrentlyHospitalized(YesNoUnknown currentlyHospitalized) {
208214
this.currentlyHospitalized = currentlyHospitalized;
209215
}
216+
217+
public YesNoUnknown getOxygenPrescribed() {
218+
return oxygenPrescribed;
219+
}
220+
221+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
222+
this.oxygenPrescribed = oxygenPrescribed;
223+
}
224+
225+
public YesNoUnknown getStillHospitalized() {
226+
return stillHospitalized;
227+
}
228+
229+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
230+
this.stillHospitalized = stillHospitalized;
231+
}
232+
233+
public Integer getIcuLengthOfStay() {
234+
return icuLengthOfStay;
235+
}
236+
237+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
238+
this.icuLengthOfStay = icuLengthOfStay;
239+
}
210240
}

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

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ public class PreviousHospitalizationDto extends PseudonymizableDto {
6060
public static final String INTENSIVE_CARE_UNIT = "intensiveCareUnit";
6161
public static final String INTENSIVE_CARE_UNIT_START = "intensiveCareUnitStart";
6262
public static final String INTENSIVE_CARE_UNIT_END = "intensiveCareUnitEnd";
63+
public static final String ICU_LENGTH_OF_STAY = "icuLengthOfStay";
64+
public static final String OXYGEN_PRESCRIBED = "oxygenPrescribed";
65+
public static final String STILL_HOSPITALIZED = "stillHospitalized";
6366

6467
private YesNoUnknown admittedToHealthFacility;
6568
private Date admissionDate;
@@ -89,6 +92,9 @@ public class PreviousHospitalizationDto extends PseudonymizableDto {
8992
private YesNoUnknown intensiveCareUnit;
9093
private Date intensiveCareUnitStart;
9194
private Date intensiveCareUnitEnd;
95+
private Integer icuLengthOfStay;
96+
private YesNoUnknown oxygenPrescribed;
97+
private YesNoUnknown stillHospitalized;
9298

9399
public static PreviousHospitalizationDto build(CaseDataDto caze) {
94100

@@ -122,6 +128,9 @@ public static PreviousHospitalizationDto build(CaseDataDto caze) {
122128
previousHospitalization.setIntensiveCareUnit(hospitalization.getIntensiveCareUnit());
123129
previousHospitalization.setIntensiveCareUnitStart(hospitalization.getIntensiveCareUnitStart());
124130
previousHospitalization.setIntensiveCareUnitEnd(hospitalization.getIntensiveCareUnitEnd());
131+
previousHospitalization.setIcuLengthOfStay(hospitalization.getIcuLengthOfStay());
132+
previousHospitalization.setOxygenPrescribed(hospitalization.getOxygenPrescribed());
133+
previousHospitalization.setStillHospitalized(hospitalization.getStillHospitalized());
125134
previousHospitalization.setDescription(hospitalization.getDescription());
126135

127136
return previousHospitalization;
@@ -262,4 +271,28 @@ public Date getIntensiveCareUnitEnd() {
262271
public void setIntensiveCareUnitEnd(Date intensiveCareUnitEnd) {
263272
this.intensiveCareUnitEnd = intensiveCareUnitEnd;
264273
}
274+
275+
public Integer getIcuLengthOfStay() {
276+
return icuLengthOfStay;
277+
}
278+
279+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
280+
this.icuLengthOfStay = icuLengthOfStay;
281+
}
282+
283+
public YesNoUnknown getOxygenPrescribed() {
284+
return oxygenPrescribed;
285+
}
286+
287+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
288+
this.oxygenPrescribed = oxygenPrescribed;
289+
}
290+
291+
public YesNoUnknown getStillHospitalized() {
292+
return stillHospitalized;
293+
}
294+
295+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
296+
this.stillHospitalized = stillHospitalized;
297+
}
265298
}

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
@@ -897,14 +897,17 @@ public interface Captions {
897897
String CaseHospitalization_healthFacility = "CaseHospitalization.healthFacility";
898898
String CaseHospitalization_hospitalizationReason = "CaseHospitalization.hospitalizationReason";
899899
String CaseHospitalization_hospitalizedPreviously = "CaseHospitalization.hospitalizedPreviously";
900+
String CaseHospitalization_icuLengthOfStay = "CaseHospitalization.icuLengthOfStay";
900901
String CaseHospitalization_intensiveCareUnit = "CaseHospitalization.intensiveCareUnit";
901902
String CaseHospitalization_intensiveCareUnitEnd = "CaseHospitalization.intensiveCareUnitEnd";
902903
String CaseHospitalization_intensiveCareUnitStart = "CaseHospitalization.intensiveCareUnitStart";
903904
String CaseHospitalization_isolated = "CaseHospitalization.isolated";
904905
String CaseHospitalization_isolationDate = "CaseHospitalization.isolationDate";
905906
String CaseHospitalization_leftAgainstAdvice = "CaseHospitalization.leftAgainstAdvice";
906907
String CaseHospitalization_otherHospitalizationReason = "CaseHospitalization.otherHospitalizationReason";
908+
String CaseHospitalization_oxygenPrescribed = "CaseHospitalization.oxygenPrescribed";
907909
String CaseHospitalization_previousHospitalizations = "CaseHospitalization.previousHospitalizations";
910+
String CaseHospitalization_stillHospitalized = "CaseHospitalization.stillHospitalized";
908911
String caseImportErrorDescription = "caseImportErrorDescription";
909912
String caseImportMergeCase = "caseImportMergeCase";
910913
String caseInfrastructureDataChanged = "caseInfrastructureDataChanged";
@@ -935,14 +938,17 @@ public interface Captions {
935938
String CasePreviousHospitalization_healthFacilityDepartment = "CasePreviousHospitalization.healthFacilityDepartment";
936939
String CasePreviousHospitalization_healthFacilityDetails = "CasePreviousHospitalization.healthFacilityDetails";
937940
String CasePreviousHospitalization_hospitalizationReason = "CasePreviousHospitalization.hospitalizationReason";
941+
String CasePreviousHospitalization_icuLengthOfStay = "CasePreviousHospitalization.icuLengthOfStay";
938942
String CasePreviousHospitalization_intensiveCareUnit = "CasePreviousHospitalization.intensiveCareUnit";
939943
String CasePreviousHospitalization_intensiveCareUnitEnd = "CasePreviousHospitalization.intensiveCareUnitEnd";
940944
String CasePreviousHospitalization_intensiveCareUnitStart = "CasePreviousHospitalization.intensiveCareUnitStart";
941945
String CasePreviousHospitalization_isolated = "CasePreviousHospitalization.isolated";
942946
String CasePreviousHospitalization_isolationDate = "CasePreviousHospitalization.isolationDate";
943947
String CasePreviousHospitalization_otherHospitalizationReason = "CasePreviousHospitalization.otherHospitalizationReason";
948+
String CasePreviousHospitalization_oxygenPrescribed = "CasePreviousHospitalization.oxygenPrescribed";
944949
String CasePreviousHospitalization_prevHospPeriod = "CasePreviousHospitalization.prevHospPeriod";
945950
String CasePreviousHospitalization_region = "CasePreviousHospitalization.region";
951+
String CasePreviousHospitalization_stillHospitalized = "CasePreviousHospitalization.stillHospitalized";
946952
String caseReferFromPointOfEntry = "caseReferFromPointOfEntry";
947953
String caseSearchCase = "caseSearchCase";
948954
String caseSearchSpecificCase = "caseSearchSpecificCase";

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,9 @@ CaseHospitalization.intensiveCareUnitEnd=End of the stay
645645
CaseHospitalization.hospitalizationReason=Reason for hospitalization
646646
CaseHospitalization.otherHospitalizationReason=Specify reason
647647
CaseHospitalization.currentlyHospitalized=Currently hospitalized?
648+
CaseHospitalization.oxygenPrescribed=Oxygen prescribed
649+
CaseHospitalization.stillHospitalized=Still hospitalized
650+
CaseHospitalization.icuLengthOfStay=Length of ICU stay (days)
648651
# CaseImport
649652
caseImportErrorDescription=Error description
650653
caseImportMergeCase=Override existing case with changes from the imported case?
@@ -670,6 +673,9 @@ CasePreviousHospitalization.otherHospitalizationReason=Specify reason
670673
CasePreviousHospitalization.intensiveCareUnit=Stay in the intensive care unit
671674
CasePreviousHospitalization.intensiveCareUnitStart=Start of the stay
672675
CasePreviousHospitalization.intensiveCareUnitEnd=End of the stay
676+
CasePreviousHospitalization.icuLengthOfStay=Length of stay in the ICU
677+
CasePreviousHospitalization.oxygenPrescribed=Was oxygen prescribed during the hospitalization?
678+
CasePreviousHospitalization.stillHospitalized=Is the patient still hospitalized?
673679
# ClinicalVisit
674680
clinicalVisitNewClinicalVisit=New clinical assessment
675681
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;
@@ -220,4 +226,30 @@ public YesNoUnknown getCurrentlyHospitalized() {
220226
public void setCurrentlyHospitalized(YesNoUnknown currentlyHospitalized) {
221227
this.currentlyHospitalized = currentlyHospitalized;
222228
}
229+
230+
@Enumerated(EnumType.STRING)
231+
public YesNoUnknown getOxygenPrescribed() {
232+
return oxygenPrescribed;
233+
}
234+
235+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
236+
this.oxygenPrescribed = oxygenPrescribed;
237+
}
238+
239+
@Enumerated(EnumType.STRING)
240+
public YesNoUnknown getStillHospitalized() {
241+
return stillHospitalized;
242+
}
243+
244+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
245+
this.stillHospitalized = stillHospitalized;
246+
}
247+
248+
public Integer getIcuLengthOfStay() {
249+
return icuLengthOfStay;
250+
}
251+
252+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
253+
this.icuLengthOfStay = icuLengthOfStay;
254+
}
223255
}

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
target.setCurrentlyHospitalized(source.getCurrentlyHospitalized());
9295

@@ -123,6 +126,9 @@ public PreviousHospitalization fillOrBuildEntity(PreviousHospitalizationDto sour
123126
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
124127
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
125128
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
129+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
130+
target.setOxygenPrescribed(source.getOxygenPrescribed());
131+
target.setStillHospitalized(source.getStillHospitalized());
126132

127133
return target;
128134
}
@@ -157,6 +163,9 @@ public static HospitalizationDto toDto(Hospitalization hospitalization) {
157163
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
158164
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
159165
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
166+
target.setOxygenPrescribed(source.getOxygenPrescribed());
167+
target.setStillHospitalized(source.getStillHospitalized());
168+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
160169
target.setDescription(source.getDescription());
161170
target.setCurrentlyHospitalized(source.getCurrentlyHospitalized());
162171

@@ -190,6 +199,9 @@ public static PreviousHospitalizationDto toDto(PreviousHospitalization source) {
190199
target.setIntensiveCareUnit(source.getIntensiveCareUnit());
191200
target.setIntensiveCareUnitStart(source.getIntensiveCareUnitStart());
192201
target.setIntensiveCareUnitEnd(source.getIntensiveCareUnitEnd());
202+
target.setIcuLengthOfStay(source.getIcuLengthOfStay());
203+
target.setOxygenPrescribed(source.getOxygenPrescribed());
204+
target.setStillHospitalized(source.getStillHospitalized());
193205

194206
return target;
195207
}

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
@@ -82,6 +82,9 @@ public class PreviousHospitalization extends AbstractDomainObject {
8282
private YesNoUnknown intensiveCareUnit;
8383
private Date intensiveCareUnitStart;
8484
private Date intensiveCareUnitEnd;
85+
private Integer icuLengthOfStay;
86+
private YesNoUnknown oxygenPrescribed;
87+
private YesNoUnknown stillHospitalized;
8588

8689
@Enumerated(EnumType.STRING)
8790
public YesNoUnknown getAdmittedToHealthFacility() {
@@ -244,4 +247,30 @@ public Date getIntensiveCareUnitEnd() {
244247
public void setIntensiveCareUnitEnd(Date intensiveCareUnitEnd) {
245248
this.intensiveCareUnitEnd = intensiveCareUnitEnd;
246249
}
250+
251+
public Integer getIcuLengthOfStay() {
252+
return icuLengthOfStay;
253+
}
254+
255+
public void setIcuLengthOfStay(Integer icuLengthOfStay) {
256+
this.icuLengthOfStay = icuLengthOfStay;
257+
}
258+
259+
@Enumerated(EnumType.STRING)
260+
public YesNoUnknown getOxygenPrescribed() {
261+
return oxygenPrescribed;
262+
}
263+
264+
public void setOxygenPrescribed(YesNoUnknown oxygenPrescribed) {
265+
this.oxygenPrescribed = oxygenPrescribed;
266+
}
267+
268+
@Enumerated(EnumType.STRING)
269+
public YesNoUnknown getStillHospitalized() {
270+
return stillHospitalized;
271+
}
272+
273+
public void setStillHospitalized(YesNoUnknown stillHospitalized) {
274+
this.stillHospitalized = stillHospitalized;
275+
}
247276
}

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14525,4 +14525,24 @@ ALTER TABLE healthconditions_history ADD COLUMN IF NOT EXISTS immunodepression v
1452514525

1452614526
INSERT INTO schema_version (version_number, comment) VALUES (585, 'RSV - Update Health Conditions section #13540');
1452714527

14528+
-- 2025-08-06 - RSV - Update Hospitalization #13541
14529+
14530+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14531+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14532+
ALTER TABLE hospitalization ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14533+
14534+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14535+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14536+
ALTER TABLE hospitalization_history ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14537+
14538+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14539+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14540+
ALTER TABLE previoushospitalization ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14541+
14542+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS oxygenPrescribed varchar(255);
14543+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS stillHospitalized varchar(255);
14544+
ALTER TABLE previoushospitalization_history ADD COLUMN IF NOT EXISTS icuLengthOfStay integer;
14545+
14546+
INSERT INTO schema_version (version_number, comment) VALUES (586, 'RSV - Update Hospitalization #13541');
14547+
1452814548
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

0 commit comments

Comments
 (0)