Skip to content

Commit 7eb48ed

Browse files
Merge pull request #13994 from SORMAS-Foundation/bugfix-mala-deng-issues
Bugfix mala deng issues
2 parents a935bcb + c839632 commit 7eb48ed

13 files changed

Lines changed: 164 additions & 61 deletions

File tree

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/labmessage/TestReportDto.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,7 @@ public class TestReportDto extends EntityDto {
219219
private String serotypeText;
220220

221221
private PathogenTestCategory pathogenTestCategory;
222+
private boolean fourFoldIncreaseAntibodyTiter;
222223

223224
public SampleReportReferenceDto getSampleReport() {
224225
return sampleReport;
@@ -922,4 +923,13 @@ public PathogenTestCategory getPathogenTestCategory() {
922923
public void setPathogenTestCategory(PathogenTestCategory pathogenTestCategory) {
923924
this.pathogenTestCategory = pathogenTestCategory;
924925
}
926+
927+
public boolean getFourFoldIncreaseAntibodyTiter() {
928+
return fourFoldIncreaseAntibodyTiter;
929+
}
930+
931+
public void setFourFoldIncreaseAntibodyTiter(boolean fourFoldIncreaseAntibodyTiter) {
932+
this.fourFoldIncreaseAntibodyTiter = fourFoldIncreaseAntibodyTiter;
933+
}
934+
925935
}

sormas-api/src/main/java/de/symeda/sormas/api/externalmessage/processing/ExternalMessageMapper.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,15 @@ public List<String[]> mapToPathogenTest(TestReportDto sourceTestReport, Pathogen
988988
pathogenTest.getDrugSusceptibility().getErythromycinSusceptibility(),
989989
sourceTestReport.getErythromycinSusceptibility(),
990990
PathogenTestDto.DRUG_SUSCEPTIBILITY,
991-
DrugSusceptibilityDto.ERYTHROMYCIN_SUSCEPTIBILITY))));
991+
DrugSusceptibilityDto.ERYTHROMYCIN_SUSCEPTIBILITY),
992+
993+
Mapping.of(
994+
pathogenTest::setFourFoldIncreaseAntibodyTiter,
995+
pathogenTest.isFourFoldIncreaseAntibodyTiter(),
996+
sourceTestReport.getFourFoldIncreaseAntibodyTiter(),
997+
PathogenTestDto.FOUR_FOLD_INCREASE_ANTIBODY_TITER))
998+
999+
));
9921000
}
9931001

9941002
changedFields.addAll(

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
@@ -1643,6 +1643,7 @@ public interface Captions {
16431643
String EpiData_clusterTypeText = "EpiData.clusterTypeText";
16441644
String EpiData_contactWithSourceCaseKnown = "EpiData.contactWithSourceCaseKnown";
16451645
String EpiData_country = "EpiData.country";
1646+
String EpiData_country_SHIG = "EpiData.country.SHIG";
16461647
String EpiData_exposureDetailsKnown = "EpiData.exposureDetailsKnown";
16471648
String EpiData_exposureInvestigationFromDate = "EpiData.exposureInvestigationFromDate";
16481649
String EpiData_exposureInvestigationToDate = "EpiData.exposureInvestigationToDate";

sormas-api/src/main/java/de/symeda/sormas/api/sample/PathogenTestType.java

Lines changed: 51 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -201,13 +201,15 @@ public enum PathogenTestType {
201201
Q_PCR,
202202

203203
@Diseases(value = {
204-
Disease.SHIGELLOSIS }, hide = true)
204+
Disease.SHIGELLOSIS,
205+
Disease.DENGUE }, hide = true)
205206
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
206207
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
207208
MULTIPLEX_PCR,
208209

209210
@Diseases(value = {
210-
Disease.SHIGELLOSIS }, hide = true)
211+
Disease.SHIGELLOSIS,
212+
Disease.DENGUE }, hide = true)
211213
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
212214
@ResultValueTypeRel({
213215
ResultValueType.QUALITATIVE,
@@ -221,7 +223,8 @@ public enum PathogenTestType {
221223
LAMP,
222224

223225
@Diseases(value = {
224-
Disease.SHIGELLOSIS }, hide = true)
226+
Disease.SHIGELLOSIS,
227+
Disease.DENGUE }, hide = true)
225228
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
226229
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
227230
NASBA,
@@ -242,19 +245,22 @@ public enum PathogenTestType {
242245
TMA,
243246

244247
@Diseases(value = {
245-
Disease.SHIGELLOSIS }, hide = true)
248+
Disease.SHIGELLOSIS,
249+
Disease.DENGUE }, hide = true)
246250
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
247251
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
248252
CRISPR_DIAGNOSTICS,
249253

250254
@Diseases(value = {
251-
Disease.SHIGELLOSIS }, hide = true)
255+
Disease.SHIGELLOSIS,
256+
Disease.DENGUE }, hide = true)
252257
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
253258
@ResultValueTypeRel(ResultValueType.BOOLEAN)
254259
LINE_PROBE_ASSAY,
255260

256261
@Diseases(value = {
257-
Disease.SHIGELLOSIS }, hide = true)
262+
Disease.SHIGELLOSIS,
263+
Disease.DENGUE }, hide = true)
258264
@PathogenTestCategoryRel(PathogenTestCategory.MOLECULAR_ASSAYS)
259265
@ResultValueTypeRel(ResultValueType.TEXT)
260266
SANGER_SEQUENCING,
@@ -426,7 +432,8 @@ public enum PathogenTestType {
426432

427433
@Diseases(value = {
428434
Disease.SALMONELLOSIS,
429-
Disease.SHIGELLOSIS }, hide = true)
435+
Disease.SHIGELLOSIS,
436+
Disease.DENGUE }, hide = true)
430437
@PathogenTestCategoryRel(PathogenTestCategory.SEROLOGICAL_TESTS)
431438
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
432439
RAPID_ANTIBODY_TEST,
@@ -436,7 +443,8 @@ public enum PathogenTestType {
436443
// ----------------------------------------------------------------------------------------------
437444

438445
@Diseases(value = {
439-
Disease.RESPIRATORY_SYNCYTIAL_VIRUS })
446+
Disease.RESPIRATORY_SYNCYTIAL_VIRUS,
447+
Disease.DENGUE })
440448
@PathogenTestCategoryRel(PathogenTestCategory.ANTIGEN_DETECTION)
441449
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
442450
RAPID_ANTIGEN_DETECTION,
@@ -448,13 +456,15 @@ public enum PathogenTestType {
448456
RAPID_TEST,
449457

450458
@Diseases(value = {
451-
Disease.SHIGELLOSIS }, hide = true)
459+
Disease.SHIGELLOSIS,
460+
Disease.DENGUE }, hide = true)
452461
@PathogenTestCategoryRel(PathogenTestCategory.ANTIGEN_DETECTION)
453462
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
454463
LATERAL_FLOW_ASSAY,
455464

456465
@Diseases(value = {
457-
Disease.SHIGELLOSIS }, hide = true)
466+
Disease.SHIGELLOSIS,
467+
Disease.DENGUE }, hide = true)
458468
@PathogenTestCategoryRel(PathogenTestCategory.ANTIGEN_DETECTION)
459469
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
460470
IMMUNOFLUORESCENCE_ASSAY,
@@ -467,13 +477,15 @@ public enum PathogenTestType {
467477
SLIDE_AGGLUTINATION,
468478

469479
@Diseases(value = {
470-
Disease.SHIGELLOSIS }, hide = true)
480+
Disease.SHIGELLOSIS,
481+
Disease.DENGUE }, hide = true)
471482
@PathogenTestCategoryRel(PathogenTestCategory.ANTIGEN_DETECTION)
472483
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
473484
QUELLUNG_REACTION,
474485

475486
@Diseases(value = {
476-
Disease.SHIGELLOSIS }, hide = true)
487+
Disease.SHIGELLOSIS,
488+
Disease.DENGUE }, hide = true)
477489
@PathogenTestCategoryRel(PathogenTestCategory.ANTIGEN_DETECTION)
478490
@ResultValueTypeRel(ResultValueType.TEXT)
479491
HEMAGGLUTINATION_INHIBITION,
@@ -513,7 +525,8 @@ public enum PathogenTestType {
513525
FUNGAL_CULTURE,
514526

515527
@Diseases(value = {
516-
Disease.SHIGELLOSIS }, hide = true)
528+
Disease.SHIGELLOSIS,
529+
Disease.DENGUE }, hide = true)
517530
@PathogenTestCategoryRel(PathogenTestCategory.CULTURE_AND_ISOLATION)
518531
@ResultValueTypeRel(ResultValueType.TEXT)
519532
MALDI_TOF,
@@ -546,21 +559,24 @@ public enum PathogenTestType {
546559

547560
@Diseases(value = {
548561
Disease.SALMONELLOSIS,
549-
Disease.SHIGELLOSIS }, hide = true)
562+
Disease.SHIGELLOSIS,
563+
Disease.DENGUE }, hide = true)
550564
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
551565
@ResultValueTypeRel(ResultValueType.SMEAR_GRADE)
552566
ACID_FAST_STAIN,
553567

554568
@Diseases(value = {
555569
Disease.SALMONELLOSIS,
556-
Disease.SHIGELLOSIS }, hide = true)
570+
Disease.SHIGELLOSIS,
571+
Disease.DENGUE }, hide = true)
557572
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
558573
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
559574
DARK_FIELD_MICROSCOPY,
560575

561576
@Diseases(value = {
562577
Disease.SALMONELLOSIS,
563-
Disease.SHIGELLOSIS }, hide = true)
578+
Disease.SHIGELLOSIS,
579+
Disease.DENGUE }, hide = true)
564580
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
565581
@ResultValueTypeRel({
566582
ResultValueType.QUALITATIVE,
@@ -584,7 +600,8 @@ public enum PathogenTestType {
584600

585601
@Diseases(value = {
586602
Disease.SALMONELLOSIS,
587-
Disease.SHIGELLOSIS }, hide = true)
603+
Disease.SHIGELLOSIS,
604+
Disease.DENGUE }, hide = true)
588605
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
589606
@ResultValueTypeRel({
590607
ResultValueType.QUALITATIVE,
@@ -593,21 +610,24 @@ public enum PathogenTestType {
593610

594611
@Diseases(value = {
595612
Disease.SALMONELLOSIS,
596-
Disease.SHIGELLOSIS }, hide = true)
613+
Disease.SHIGELLOSIS,
614+
Disease.DENGUE }, hide = true)
597615
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
598616
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
599617
IMMUNOHISTOCHEMISTRY,
600618

601619
@Diseases(value = {
602620
Disease.SALMONELLOSIS,
603-
Disease.SHIGELLOSIS }, hide = true)
621+
Disease.SHIGELLOSIS,
622+
Disease.DENGUE }, hide = true)
604623
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
605624
@ResultValueTypeRel(ResultValueType.QUALITATIVE)
606625
ELECTRON_MICROSCOPY,
607626

608627
@Diseases(value = {
609628
Disease.SALMONELLOSIS,
610-
Disease.SHIGELLOSIS }, hide = true)
629+
Disease.SHIGELLOSIS,
630+
Disease.DENGUE }, hide = true)
611631
@PathogenTestCategoryRel(PathogenTestCategory.MICROSCOPY_AND_STAINING)
612632
@ResultValueTypeRel({
613633
ResultValueType.QUALITATIVE,
@@ -650,7 +670,8 @@ public enum PathogenTestType {
650670

651671
@Diseases(value = {
652672
Disease.SALMONELLOSIS,
653-
Disease.SHIGELLOSIS }, hide = true)
673+
Disease.SHIGELLOSIS,
674+
Disease.DENGUE }, hide = true)
654675
@PathogenTestCategoryRel(PathogenTestCategory.ANTIMICROBIAL_SUSCEPTIBILITY_TESTING)
655676
@ResultValueTypeRel(ResultValueType.BOOLEAN)
656677
GENOTYPIC_RESISTANCE_TEST,
@@ -677,7 +698,8 @@ public enum PathogenTestType {
677698
@ResultValueTypeRel(ResultValueType.NUMERIC)
678699
@Diseases(value = {
679700
Disease.SALMONELLOSIS,
680-
Disease.SHIGELLOSIS }, hide = true)
701+
Disease.SHIGELLOSIS,
702+
Disease.DENGUE }, hide = true)
681703
FLOW_CYTOMETRY,
682704

683705
// ----------------------------------------------------------------------------------------------
@@ -829,18 +851,19 @@ public static boolean isSelectableForNewTests(PathogenTestType testType) {
829851
* the generic numeric value/unit fields when the Cq input applies. Both call sites must use this method so
830852
* the rule cannot drift.
831853
*
832-
* <p>The Cq input applies for {@code PCR_RT_PCR}, {@code CQ_VALUE_DETECTION}, or {@code Q_PCR} on Malaria
854+
* <p>
855+
* The Cq input applies for {@code PCR_RT_PCR}, {@code CQ_VALUE_DETECTION}, or {@code Q_PCR} on Malaria
833856
* — except for Tuberculosis, which historically does not offer a Cq value.
834857
*
835-
* @param disease the tested disease (may be {@code null})
836-
* @param testType the test method (may be {@code null})
858+
* @param disease
859+
* the tested disease (may be {@code null})
860+
* @param testType
861+
* the test method (may be {@code null})
837862
*/
838863
public static boolean cqInputApplies(Disease disease, PathogenTestType testType) {
839864
if (disease == Disease.TUBERCULOSIS) {
840865
return false;
841866
}
842-
return testType == PCR_RT_PCR
843-
|| testType == CQ_VALUE_DETECTION
844-
|| (disease == Disease.MALARIA && testType == Q_PCR);
867+
return testType == PCR_RT_PCR || testType == CQ_VALUE_DETECTION || (disease == Disease.MALARIA && testType == Q_PCR);
845868
}
846869
}

sormas-api/src/main/java/de/symeda/sormas/api/sample/SampleMaterial.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -498,11 +498,13 @@ public enum SampleMaterial {
498498

499499
@Diseases(value = {
500500
Disease.SALMONELLOSIS,
501-
Disease.SHIGELLOSIS }, hide = true)
501+
Disease.SHIGELLOSIS,
502+
Disease.DENGUE}, hide = true)
502503
BONE,
503504

504505
@Diseases(value = {
505-
Disease.SHIGELLOSIS }, hide = true)
506+
Disease.SHIGELLOSIS,
507+
Disease.DENGUE}, hide = true)
506508
BONE_MARROW,
507509

508510
@Diseases(value = {
@@ -543,7 +545,8 @@ public enum SampleMaterial {
543545

544546
@Diseases(value = {
545547
Disease.SALMONELLOSIS,
546-
Disease.SHIGELLOSIS }, hide = true)
548+
Disease.SHIGELLOSIS,
549+
Disease.DENGUE}, hide = true)
547550
LUNG_TISSUE,
548551

549552
@Diseases(value = {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,6 +1180,7 @@ EpiData.infectionSource= Suspected vehicle or source of infection
11801180
EpiData.infectionSourceText= Specify source of infection
11811181
EpiData.importedCase= Imported Case
11821182
EpiData.country= Country of contamination
1183+
EpiData.country.SHIG= Place of residence of patient at the time of disease onset
11831184
EpiData.otherDetails= General comment
11841185
EpiData.airportWorker=Working at an airport
11851186
EpiData.healthcareProfessional=Working as a healthcare professional

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3163,8 +3163,8 @@ ExposureSubSetting.HEALTHCARE_SETTINGS=Healthcare settings
31633163
ExposureSubSetting.TEMPORARY_SHELTERS=Temporary shelters
31643164
ExposureSubSetting.CROWDED_OUTDOOR_LIMITED_AIRFLOW=Crowded outdoor areas with limited airflow
31653165
ExposureSubSetting.CLOSE_PHYSICAL_CONTACT=Close physical contact
3166-
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS=High-touch environments (e.g. childcare centers, healthcare facilities)
3167-
ExposureSubSetting.SEXUAL_ACTIVITY=Sexual
3166+
ExposureSubSetting.HIGH_TOUCH_ENVIRONMENTS=High-contact environments (e.g. childcare centers, healthcare facilities)
3167+
ExposureSubSetting.SEXUAL_ACTIVITY=Sexual contact
31683168
ExposureSubSetting.STANDING_WATER_AREAS=Areas with standing water (e.g. ponds, swamps)
31693169
ExposureSubSetting.HIGH_MOSQUITO_ACTIVITY_REGIONS=Regions with high mosquito activity, especially in warm climates
31703170
ExposureSubSetting.FORESTED_GRASSY_RURAL=Forested, grassy, or rural areas

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/labmessage/TestReport.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,7 @@ public class TestReport extends AbstractDomainObject {
183183
private Serotype serotype;
184184
private String serotypeText;
185185
private PathogenTestCategory pathogenTestCategory;
186+
private boolean fourFoldIncreaseAntibodyTiter;
186187

187188
@Column(length = CHARACTER_LIMIT_DEFAULT)
188189
public String getTestLabName() {
@@ -945,4 +946,13 @@ public PathogenTestCategory getPathogenTestCategory() {
945946
public void setPathogenTestCategory(PathogenTestCategory pathogenTestCategory) {
946947
this.pathogenTestCategory = pathogenTestCategory;
947948
}
949+
950+
public boolean getFourFoldIncreaseAntibodyTiter() {
951+
return fourFoldIncreaseAntibodyTiter;
952+
}
953+
954+
public void setFourFoldIncreaseAntibodyTiter(boolean fourFoldIncreaseAntibodyTiter) {
955+
this.fourFoldIncreaseAntibodyTiter = fourFoldIncreaseAntibodyTiter;
956+
}
957+
948958
}

sormas-backend/src/main/java/de/symeda/sormas/backend/externalmessage/labmessage/TestReportFacadeEjb.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ public static TestReportDto toDto(TestReport source) {
165165
}
166166
target.setSerotypeText(source.getSerotypeText());
167167
target.setPathogenTestCategory(source.getPathogenTestCategory());
168+
target.setFourFoldIncreaseAntibodyTiter(source.getFourFoldIncreaseAntibodyTiter());
168169

169170
return target;
170171
}
@@ -266,6 +267,7 @@ public TestReport fillOrBuildEntity(@NotNull TestReportDto source, @NotNull Samp
266267
}
267268
target.setSerotypeText(source.getSerotypeText());
268269
target.setPathogenTestCategory(source.getPathogenTestCategory());
270+
target.setFourFoldIncreaseAntibodyTiter(source.getFourFoldIncreaseAntibodyTiter());
269271

270272
return target;
271273
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16407,4 +16407,11 @@ ALTER TABLE symptoms ADD COLUMN IF NOT EXISTS waterydiarrhea varchar(255
1640716407
ALTER TABLE symptoms_history ADD COLUMN IF NOT EXISTS waterydiarrhea varchar(255);
1640816408
INSERT INTO schema_version (version_number, comment) VALUES (641, 'Add Salmonellosis watery diarrhoea symptom issue #13918');
1640916409

16410+
-- 18-06-2026 Malaria and Dengue DD and Lab message processing fixes
16411+
16412+
ALTER TABLE testreport ADD COLUMN IF NOT EXISTS fourfoldincreaseantibodytiter boolean DEFAULT false;
16413+
ALTER TABLE testreport_history ADD COLUMN IF NOT EXISTS fourfoldincreaseantibodytiter boolean DEFAULT false;
16414+
16415+
INSERT INTO schema_version (version_number, comment) VALUES (642, 'Malaria and Dengue DD and Lab message processing fixes');
16416+
1641016417
-- *** Insert new sql commands BEFORE this line. Remember to always consider _history tables. ***

0 commit comments

Comments
 (0)