Skip to content

Commit 39a8133

Browse files
committed
#13542 - Update RSV immunization form
- Added new field for injection facility - Added new entries of `MeansOfImmunization`: `MATERNAL_VACCINATION`, `MONOCLONAL_ANTIBODY` - Added new enum `InjectionFacility`
1 parent acfe63d commit 39a8133

File tree

12 files changed

+94
-0
lines changed

12 files changed

+94
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1993,6 +1993,7 @@ public interface Captions {
19931993
String Immunization_immunizationManagementStatus = "Immunization.immunizationManagementStatus";
19941994
String Immunization_immunizationPeriod = "Immunization.immunizationPeriod";
19951995
String Immunization_immunizationStatus = "Immunization.immunizationStatus";
1996+
String Immunization_injectionFacility = "Immunization.injectionFacility";
19961997
String Immunization_lastInfectionDate = "Immunization.lastInfectionDate";
19971998
String Immunization_lastVaccinationDate = "Immunization.lastVaccinationDate";
19981999
String Immunization_lastVaccineType = "Immunization.lastVaccineType";

sormas-api/src/main/java/de/symeda/sormas/api/immunization/ImmunizationDto.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ public class ImmunizationDto extends SormasToSormasShareableDto implements IsImm
9191
public static final String VACCINATIONS = "vaccinations";
9292
public static final String DELETION_REASON = "deletionReason";
9393
public static final String OTHER_DELETION_REASON = "otherDeletionReason";
94+
public static final String INJECTION_FACILITY = "injectionFacility";
9495

9596
@Outbreaks
9697
@NotNull(message = Validations.validDisease)
@@ -111,6 +112,7 @@ public class ImmunizationDto extends SormasToSormasShareableDto implements IsImm
111112
@Size(max = FieldConstraints.CHARACTER_LIMIT_TEXT, message = Validations.textTooLong)
112113
@SensitiveData
113114
private String meansOfImmunizationDetails;
115+
private InjectionFacility injectionFacility;
114116
private ImmunizationManagementStatus immunizationManagementStatus;
115117
@S2SIgnoreProperty(configProperty = SormasToSormasConfig.SORMAS2SORMAS_IGNORE_EXTERNAL_ID)
116118
@Size(max = FieldConstraints.CHARACTER_LIMIT_SMALL, message = Validations.textTooLong)
@@ -414,6 +416,14 @@ public void setMeansOfImmunizationDetails(String meansOfImmunizationDetails) {
414416
this.meansOfImmunizationDetails = meansOfImmunizationDetails;
415417
}
416418

419+
public InjectionFacility getInjectionFacility() {
420+
return injectionFacility;
421+
}
422+
423+
public void setInjectionFacility(InjectionFacility injectionFacility) {
424+
this.injectionFacility = injectionFacility;
425+
}
426+
417427
public CountryReferenceDto getCountry() {
418428
return country;
419429
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
/*
2+
* SORMAS® - Surveillance Outbreak Response Management & Analysis System
3+
* Copyright © 2016-2026 SORMAS Foundation gGmbH
4+
* This program is free software: you can redistribute it and/or modify
5+
* it under the terms of the GNU General Public License as published by
6+
* the Free Software Foundation, either version 3 of the License, or
7+
* (at your option) any later version.
8+
* This program is distributed in the hope that it will be useful,
9+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11+
* GNU General Public License for more details.
12+
* You should have received a copy of the GNU General Public License
13+
* along with this program. If not, see <https://www.gnu.org/licenses/>.
14+
*/
15+
16+
package de.symeda.sormas.api.immunization;
17+
18+
import de.symeda.sormas.api.i18n.I18nProperties;
19+
20+
public enum InjectionFacility {
21+
22+
MATERNITY_WARD,
23+
PAEDIATRIC_PRACTICE,
24+
HOSPITAL;
25+
26+
@Override
27+
public String toString() {
28+
return I18nProperties.getEnumCaption(this);
29+
}
30+
}

sormas-api/src/main/java/de/symeda/sormas/api/immunization/MeansOfImmunization.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ public enum MeansOfImmunization {
2222
VACCINATION,
2323
RECOVERY,
2424
VACCINATION_RECOVERY,
25+
MATERNAL_VACCINATION,
26+
MONOCLONAL_ANTIBODY,
2527
OTHER;
2628

2729
public static boolean isVaccination(MeansOfImmunization meansOfImmunization) {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2274,6 +2274,7 @@ Immunization.healthFacility=Facility
22742274
Immunization.healthFacilityDetails=Facility name & description
22752275
Immunization.meansOfImmunization=Means of immunization
22762276
Immunization.meansOfImmunizationDetails=Means of immunization details
2277+
Immunization.injectionFacility=Injection facility
22772278
Immunization.overwriteImmunizationManagementStatus=Overwrite immunization management status
22782279
Immunization.immunizationManagementStatus=Management status
22792280
Immunization.immunizationStatus=Immunization status

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2359,8 +2359,15 @@ ImmunizationManagementStatus.CANCELED = Canceled
23592359
MeansOfImmunization.VACCINATION = Vaccination
23602360
MeansOfImmunization.RECOVERY = Recovery
23612361
MeansOfImmunization.VACCINATION_RECOVERY = Vaccination/Recovery
2362+
MeansOfImmunization.MATERNAL_VACCINATION = Maternal vaccination
2363+
MeansOfImmunization.MONOCLONAL_ANTIBODY = Monoclonal antibody
23622364
MeansOfImmunization.OTHER = Other
23632365

2366+
#InjectionFacility
2367+
InjectionFacility.MATERNITY_WARD = Maternity ward
2368+
InjectionFacility.PAEDIATRIC_PRACTICE = Paediatric practice
2369+
InjectionFacility.HOSPITAL = Hospital
2370+
23642371
#EnumColumn
23652372
EnumColumn.TYPE = Type
23662373
EnumColumn.VALUE = Value

sormas-backend/src/main/java/de/symeda/sormas/backend/immunization/ImmunizationFacadeEjb.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,7 @@ public ImmunizationDto toDto(Immunization entity) {
214214
dto.setImmunizationStatus(entity.getImmunizationStatus());
215215
dto.setMeansOfImmunization(entity.getMeansOfImmunization());
216216
dto.setMeansOfImmunizationDetails(entity.getMeansOfImmunizationDetails());
217+
dto.setInjectionFacility(entity.getInjectionFacility());
217218
dto.setImmunizationManagementStatus(entity.getImmunizationManagementStatus());
218219
dto.setExternalId(entity.getExternalId());
219220
dto.setResponsibleRegion(RegionFacadeEjb.toReferenceDto(entity.getResponsibleRegion()));
@@ -564,6 +565,7 @@ protected Immunization fillOrBuildEntity(
564565
}
565566
target.setMeansOfImmunization(source.getMeansOfImmunization());
566567
target.setMeansOfImmunizationDetails(source.getMeansOfImmunizationDetails());
568+
target.setInjectionFacility(source.getInjectionFacility());
567569
if (source.getImmunizationManagementStatus() != null) {
568570
target.setImmunizationManagementStatus(source.getImmunizationManagementStatus());
569571
}

sormas-backend/src/main/java/de/symeda/sormas/backend/immunization/entity/BaseImmunization.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import de.symeda.sormas.api.immunization.ImmunizationManagementStatus;
2424
import de.symeda.sormas.api.immunization.ImmunizationStatus;
2525
import de.symeda.sormas.api.immunization.MeansOfImmunization;
26+
import de.symeda.sormas.api.immunization.InjectionFacility;
2627
import de.symeda.sormas.api.infrastructure.facility.FacilityType;
2728
import de.symeda.sormas.api.utils.YesNoUnknown;
2829
import de.symeda.sormas.backend.caze.Case;
@@ -50,6 +51,7 @@ public class BaseImmunization extends CoreAdo implements SormasToSormasShareable
5051
private ImmunizationStatus immunizationStatus;
5152
private MeansOfImmunization meansOfImmunization;
5253
private String meansOfImmunizationDetails;
54+
private InjectionFacility injectionFacility;
5355
private ImmunizationManagementStatus immunizationManagementStatus;
5456
private String externalId;
5557

@@ -351,6 +353,15 @@ public void setMeansOfImmunizationDetails(String meansOfImmunizationDetails) {
351353
this.meansOfImmunizationDetails = meansOfImmunizationDetails;
352354
}
353355

356+
@Enumerated(EnumType.STRING)
357+
public InjectionFacility getInjectionFacility() {
358+
return injectionFacility;
359+
}
360+
361+
public void setInjectionFacility(InjectionFacility injectionFacility) {
362+
this.injectionFacility = injectionFacility;
363+
}
364+
354365
@ManyToOne(fetch = FetchType.LAZY)
355366
public Country getCountry() {
356367
return country;

sormas-backend/src/main/java/de/symeda/sormas/backend/immunization/entity/Immunization.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public class Immunization extends BaseImmunization implements IsImmunization {
3535
public static final String REPORTING_USER = "reportingUser";
3636
public static final String IMMUNIZATION_STATUS = "immunizationStatus";
3737
public static final String MEANS_OF_IMMUNIZATION = "meansOfImmunization";
38+
public static final String INJECTION_FACILITY = "injectionFacility";
3839
public static final String IMMUNIZATION_MANAGEMENT_STATUS = "immunizationManagementStatus";
3940
public static final String EXTERNAL_ID = "externalId";
4041
public static final String RESPONSIBLE_REGION = "responsibleRegion";

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14416,4 +14416,12 @@ 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+
14420+
-- 2025-08-07 - RSV - Update Immunization #13542
14421+
14422+
ALTER TABLE immunization ADD COLUMN IF NOT EXISTS injectionFacility varchar(255);
14423+
ALTER TABLE immunization_history ADD COLUMN IF NOT EXISTS injectionFacility varchar(255);
14424+
14425+
INSERT INTO schema_version (version_number, comment) VALUES (583, 'RSV - Update Immunization #13542');
14426+
1441914427
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

0 commit comments

Comments
 (0)