1717import org .slf4j .Logger ;
1818import org .slf4j .LoggerFactory ;
1919import org .snomed .quality .validator .mrcm .*;
20- import org .snomed .quality .validator .mrcm .model .ReferenceSetMember ;
2120import org .springframework .beans .factory .annotation .Autowired ;
2221import org .springframework .beans .factory .annotation .Value ;
2322import org .springframework .stereotype .Service ;
@@ -42,6 +41,8 @@ public class MRCMValidationService {
4241
4342 private static final String EXT_ZIP = ".zip" ;
4443
44+ private static final String COMMA = "," ;
45+
4546 @ Autowired
4647 private WhitelistService whitelistService ;
4748
@@ -264,13 +265,25 @@ private TestRunItem createTestRunItemWithFailures(Assertion mrcmAssertion, Conte
264265 List <FailureDetail > failedDetails = new ArrayList <>(firstNCount );
265266 if (LateralizableRefsetValidationService .ASSERTION_ID_MEMBERS_NEED_TO_BE_REMOVED_FROM_LATERALIZABLE_REFSET .equals (mrcmAssertion .getUuid ().toString ())) {
266267 for (int i = 0 ; i < firstNCount ; i ++) {
267- ReferenceSetMember referenceSetMember = mrcmAssertion .getCurrentViolatedReferenceSetMembers ().get (i );
268- failedDetails .add (new FailureDetail (referenceSetMember .referencedComponentId (), String .format (mrcmAssertion .getDetails (), referenceSetMember .memberId ()), null ));
268+ LOGGER .info ("Processing removal from laterality failure {}" , i );
269+ ConceptResult conceptResult = mrcmAssertion .getCurrentViolatedConcepts ().get (i );
270+ String conceptId = conceptResult .getId ();
271+ String details = String .format (mrcmAssertion .getDetails (), conceptId , "removed from" );
272+ String fsn = conceptResult .getFsn ();
273+ String additionalFields = getAdditionalFields (conceptResult );
274+ LOGGER .info ("conceptId: {} details: {} fsn: {} additionalFields: {}" , conceptId , details , fsn , additionalFields );
275+ failedDetails .add (new FailureDetail (conceptId , details , fsn ).setFullComponent (additionalFields ));
269276 }
270277 } else if (LateralizableRefsetValidationService .ASSERTION_ID_CONCEPTS_NEED_TO_BE_ADDED_TO_LATERALIZABLE_REFSET .equals (mrcmAssertion .getUuid ().toString ())) {
271278 for (int i = 0 ; i < firstNCount ; i ++) {
272- Long conceptId = mrcmAssertion .getCurrentViolatedConceptIds ().get (i );
273- failedDetails .add (new FailureDetail (conceptId .toString (), String .format (mrcmAssertion .getDetails (), conceptId ), null ));
279+ LOGGER .info ("Processing addition to laterality failure {}" , i );
280+ ConceptResult conceptResult = mrcmAssertion .getCurrentViolatedConcepts ().get (i );
281+ String conceptId = conceptResult .getId ();
282+ String details = String .format (mrcmAssertion .getDetails (), conceptId , "added to" );
283+ String fsn = conceptResult .getFsn ();
284+ String additionalFields = getAdditionalFields (conceptResult );
285+ LOGGER .info ("conceptId: {} details: {} fsn: {} additionalFields: {}" , conceptId , details , fsn , additionalFields );
286+ failedDetails .add (new FailureDetail (conceptId , details , fsn ).setFullComponent (additionalFields ));
274287 }
275288 } else {
276289 for (int i = 0 ; i < firstNCount ; i ++) {
@@ -282,4 +295,8 @@ private TestRunItem createTestRunItemWithFailures(Assertion mrcmAssertion, Conte
282295 testRunItem .setFirstNInstances (failedDetails );
283296 return testRunItem ;
284297 }
298+
299+ private String getAdditionalFields (ConceptResult conceptResult ) {
300+ return (conceptResult .isActive () ? "1" : "0" ) + COMMA + conceptResult .getModuleId () + COMMA + conceptResult .getDefinitionStatusId ();
301+ }
285302}
0 commit comments