use of com.b2international.snowowl.core.uri.ComponentURI in project snow-owl by b2ihealthcare.
the class SnomedRefSetMemberDocumentSerializationTest method indexSimpleMapMemberWithComponentURITarget.
@Test
public void indexSimpleMapMemberWithComponentURITarget() throws Exception {
final String mapTargetId = "targetId01";
final ComponentURI componentURI = ComponentURI.of(SnomedContentRule.SNOMEDCT, SnomedConcept.TYPE, mapTargetId);
final SnomedRefSetMemberIndexEntry member = createBaseMember().refsetId(Concepts.REFSET_B2I_EXAMPLE).referenceSetType(SnomedRefSetType.SIMPLE_MAP).field(Fields.MAP_TARGET, componentURI.toString()).build();
indexRevision(RevisionBranch.MAIN_PATH, member);
final SnomedRefSetMemberIndexEntry actual = getRevision(RevisionBranch.MAIN_PATH, SnomedRefSetMemberIndexEntry.class, member.getId());
assertEquals(SnomedConcept.TYPE, actual.getReferencedComponentType());
assertDocEquals(member, actual);
assertEquals(ComponentURI.of(actual.getMapTarget()), componentURI);
}
use of com.b2international.snowowl.core.uri.ComponentURI in project snow-owl by b2ihealthcare.
the class ImportResponseSerializationTest method before.
@BeforeClass
public static void before() {
mapper = new ObjectMapper();
mapper.setSerializationInclusion(Include.NON_NULL);
ComponentURI componentURI = ComponentURI.of("codesystem/SNOMEDCT/100/138875005");
ImportDefect defect = ImportDefect.info("file", "location", "message");
response = ImportResponse.success(Set.of(componentURI), List.of(defect));
serializedResponse = "{\"visitedComponents\":[\"codesystem/SNOMEDCT/100/138875005\"],\"defects\":[{\"file\":\"file\",\"location\":\"location\",\"message\":\"message\",\"type\":\"INFO\"}],\"success\":true}";
}
use of com.b2international.snowowl.core.uri.ComponentURI in project snow-owl by b2ihealthcare.
the class ValueSetMemberSearchSnomedReferenceSetTest method filterByComponentIdAndUri.
@Test
public void filterByComponentIdAndUri() {
final String filteredId = Concepts.FINDING_SITE;
final String refSetId = createSimpleMapTypeRefSet();
createSimpleMapTypeRefSetMember(refSetId, filteredId, Concepts.IS_A);
createSimpleMapTypeRefSetMember(refSetId, filteredId, Concepts.IS_A);
createSimpleMapTypeRefSetMember(refSetId, Concepts.IS_A, filteredId);
createSimpleMapTypeRefSetMember(refSetId, Concepts.IS_A, Concepts.IS_A);
final ComponentURI uri = ComponentURI.of(SnomedContentRule.SNOMEDCT, SnomedConcept.TYPE, filteredId);
final SnomedReferenceSetMembers refSetMembers = SnomedRequests.prepareSearchMember().filterByRefSet(refSetId).filterByComponentIds(Set.of(uri.toString(), uri.identifier())).build(CODESYSTEM).execute(Services.bus()).getSync(1, TimeUnit.MINUTES);
assertEquals(3, refSetMembers.getTotal());
refSetMembers.forEach(refSetMember -> assertTrue(filteredId.equals(refSetMember.getReferencedComponentId()) || filteredId.equals(refSetMember.getProperties().get(SnomedRf2Headers.FIELD_MAP_TARGET))));
}
use of com.b2international.snowowl.core.uri.ComponentURI in project snow-owl by b2ihealthcare.
the class SnomedConceptMapSearchRequestEvaluator method toCollectionResource.
private ConceptMapMappings toCollectionResource(SnomedReferenceSetMembers referenceSetMembers, ResourceURI uri, ServiceProvider context, Options search, SnomedDisplayTermType snomedDisplayTermType) {
final Set<String> refSetsToFetch = referenceSetMembers.stream().map(SnomedReferenceSetMember::getRefsetId).collect(Collectors.toSet());
final Map<String, SnomedConcept> refSetsById = SnomedRequests.prepareSearchConcept().all().filterByIds(refSetsToFetch).setLocales(search.getList(OptionKey.LOCALES, ExtendedLocale.class)).setExpand("pt(),referenceSet()").build(uri).execute(context.service(IEventBus.class)).getSync(1, TimeUnit.MINUTES).stream().collect(Collectors.toMap(SnomedConcept::getId, concept -> concept));
final Map<String, ComponentURI> targetComponentsByRefSetId = getTargetComponentsByRefSetId(context, refSetsById);
List<ConceptMapMapping> mappings = referenceSetMembers.stream().filter(m -> SnomedConcept.TYPE.equals(m.getReferencedComponent().getComponentType())).map(m -> {
return toMapping(m, uri, targetComponentsByRefSetId.get(m.getRefsetId()), snomedDisplayTermType, refSetsById);
}).collect(Collectors.toList());
if (!mappings.isEmpty()) {
final Map<String, Concept> conceptsById = Multimaps.index(mappings, mapping -> mapping.getTargetComponentURI().resourceUri()).asMap().entrySet().stream().filter(entry -> !TerminologyRegistry.UNSPECIFIED.equals(entry.getKey().getResourceId())).map(entry -> {
final Set<String> idsToFetch = entry.getValue().stream().map(map -> map.getTargetComponentURI().identifier()).collect(Collectors.toSet());
return CodeSystemRequests.prepareSearchConcepts().all().filterByCodeSystemUri(entry.getKey()).filterByIds(idsToFetch).buildAsync().execute(context.service(IEventBus.class)).getSync(5, TimeUnit.MINUTES).stream().collect(Collectors.toMap(Concept::getId, c -> c));
}).flatMap(map -> map.entrySet().stream()).collect(Collectors.toMap(entry -> entry.getKey(), entry -> entry.getValue(), (concept1, concept2) -> concept1));
mappings = mappings.stream().map(mapping -> {
final String mapTargetId = mapping.getTargetComponentURI().identifier();
if (conceptsById.containsKey(mapTargetId) && !mapping.getTargetComponentURI().isUnspecified()) {
final Concept concept = conceptsById.get(mapTargetId);
return mapping.toBuilder().targetTerm(concept.getTerm()).targetIconId(concept.getIconId()).build();
} else {
return mapping;
}
}).collect(Collectors.toList());
}
return new ConceptMapMappings(mappings, referenceSetMembers.getSearchAfter(), referenceSetMembers.getLimit(), referenceSetMembers.getTotal());
}
use of com.b2international.snowowl.core.uri.ComponentURI in project snow-owl by b2ihealthcare.
the class ResourcesImportRequest method execute.
@Override
public ImportResponse execute(ServiceProvider context) {
final InternalAttachmentRegistry attachmentRegistry = (InternalAttachmentRegistry) context.service(AttachmentRegistry.class);
final File file = attachmentRegistry.getAttachment(sourceFile.getAttachmentId());
try {
final List<R> sourceFileContent = loadSourceFileContent(context, file);
final Map<String, R> existingResources = newHashMap(loadExistingResources(context, sourceFileContent));
final ImportDefectAcceptor defectAcceptor = new ImportDefectAcceptor(sourceFile.getFileName());
validateSourceFileContent(context, sourceFileContent, existingResources, defectAcceptor);
List<ImportDefect> defects = defectAcceptor.getDefects();
// Content with validation errors can not be imported
ImportResponse validationResponse = ImportResponse.defects(defects);
if (!validationResponse.getErrors().isEmpty()) {
return validationResponse;
}
final Set<ComponentURI> visitedComponents = Sets.newHashSet();
// Import each resource present in the source file, along with its content
for (final R resource : sourceFileContent) {
final String id = resource.getId();
ComponentURI importedResource = importResource(context, resource, existingResources.get(id));
if (importedResource != null) {
visitedComponents.add(importedResource);
}
visitedComponents.addAll(importContent(context, resource, existingResources.get(id)));
}
return ImportResponse.success(visitedComponents, defects);
} catch (final ApiException e) {
throw e;
} catch (final Exception e) {
String error = "Unexpected error happened during the import of the source file: " + sourceFile.getFileName();
context.log().error(error, e);
return ImportResponse.error(error);
} finally {
if (sourceFile != null && attachmentRegistry != null) {
attachmentRegistry.delete(sourceFile.getAttachmentId());
}
}
}
Aggregations