@@ -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}
0 commit comments