Skip to content

Commit 346dddb

Browse files
authored
Standardize resolved sex val for research samples (#1641)
Signed-off-by: Angelica Ochoa <15623749+ao508@users.noreply.github.com>
1 parent a119a07 commit 346dddb

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

service/src/main/java/org/mskcc/smile/service/util/SampleDataFactory.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ public static SmileSample buildNewResearchSampleFromMetadata(String requestId,
6666
}
6767
sampleMetadata.setStatus(sampleStatus);
6868

69+
// standardize value for sex (M -> Male, F -> Female)
70+
String sex = resolveIgoSampleSex(sampleMetadata.getSex());
71+
sampleMetadata.setSex(sex);
72+
6973
SmileSample sample = new SmileSample();
7074
sample.addSampleMetadata(sampleMetadata);
7175
sample.setSampleCategory("research");
@@ -143,6 +147,11 @@ public static SampleMetadata buildNewSampleMetadatafromJson(String sampleMetadat
143147
mapper.readValue(sampleMetadataJson, SampleMetadata.class);
144148
sampleMetadata.setImportDate(
145149
LocalDateTime.now().format(DateTimeFormatter.ISO_LOCAL_DATE));
150+
151+
// standardize value for sex (M -> Male, F -> Female)
152+
String sex = resolveIgoSampleSex(sampleMetadata.getSex());
153+
sampleMetadata.setSex(sex);
154+
146155
// resolve igo request id if null from additionalProperties if possible
147156
if (sampleMetadata.getIgoRequestId() == null
148157
&& !sampleMetadata.getAdditionalProperties().isEmpty()) {
@@ -250,4 +259,16 @@ private static Status extractStatusFromJson(String inputJson)
250259
}
251260
return status;
252261
}
262+
263+
private static String resolveIgoSampleSex(String sex) {
264+
// standardize value for sex (M -> Male, F -> Female)
265+
if (!StringUtils.isBlank(sex)) {
266+
return switch (sex.toUpperCase()) {
267+
case "M" -> "Male";
268+
case "F" -> "Female";
269+
default -> sex;
270+
};
271+
}
272+
return "";
273+
}
253274
}

service/src/test/java/org/mskcc/smile/service/SampleServiceTest.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -766,4 +766,14 @@ public void testNonCmoRequest() throws Exception {
766766
Assertions.assertNull(s.getSmilePatientId());
767767
}
768768
}
769+
770+
@Test
771+
@Order(26)
772+
public void testResolvedSampleSex() throws Exception {
773+
String requestId = "MOCKREQUEST1_B";
774+
String igoId = "MOCKREQUEST1_B_1";
775+
SmileSample sample = sampleService.getResearchSampleByRequestAndIgoId(requestId, igoId);
776+
SampleMetadata sm = sample.getLatestSampleMetadata();
777+
Assertions.assertEquals("Female", sm.getSex());
778+
}
769779
}

0 commit comments

Comments
 (0)