use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedDescriptionIndexEntry in project snow-owl by b2ihealthcare.
the class ConceptIconIdUpdaterTest method indexChildConceptWithKnownId.
@Test
public void indexChildConceptWithKnownId() {
final SnomedConceptDocument concept = concept().iconId(// intentionally unset icon ID before change processing
null).build();
final SnomedDescriptionIndexEntry fsn1 = description(concept.getId(), Concepts.FULLY_SPECIFIED_NAME, String.format(TEST_FSN, FINDING_SEMANTIC_TAG), singletonMap(Concepts.REFSET_LANGUAGE_TYPE_US, Acceptability.PREFERRED));
indexRevision(MAIN, concept, fsn1);
final SnomedConceptDocument childConcept = concept(Concepts.NAMESPACE_ROOT).iconId(// intentionally unset icon ID before change processing
null).build();
final SnomedDescriptionIndexEntry fsn2 = description(childConcept.getId(), Concepts.FULLY_SPECIFIED_NAME, String.format(TEST_FSN, "apple"), singletonMap(Concepts.REFSET_LANGUAGE_TYPE_US, Acceptability.PREFERRED));
final SnomedRefSetMemberIndexEntry member = createOwlAxiom(childConcept.getId(), String.format("SubClassOf(:%s :%s)", childConcept.getId(), concept.getId())).build();
stageNew(childConcept);
stageNew(fsn2);
stageNew(member);
statedChangedConceptIds.add(Long.parseLong(concept.getId()));
statedChangedConceptIds.add(Long.parseLong(childConcept.getId()));
final ConceptChangeProcessor processor = process();
final SnomedConceptDocument expectedChild = docWithDefaults(childConcept).semanticTags(ImmutableSortedSet.of("apple")).preferredDescriptions(ImmutableList.of(new SnomedDescriptionFragment(fsn2.getId(), fsn2.getTypeId(), fsn2.getTerm(), Concepts.REFSET_LANGUAGE_TYPE_US))).iconId(// icon ID must be the known concept's ID
Concepts.NAMESPACE_ROOT).statedParents(Long.parseLong(concept.getId())).statedAncestors(IComponent.ROOT_IDL).activeMemberOf(singleton(Concepts.REFSET_OWL_AXIOM)).memberOf(singleton(Concepts.REFSET_OWL_AXIOM)).build();
final Revision actualChild = Iterables.getOnlyElement(processor.getNewMappings().values());
assertDocEquals(expectedChild, actualChild);
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedDescriptionIndexEntry in project snow-owl by b2ihealthcare.
the class DescriptionChangeProcessorTest method deleteAcceptableLanguageMember.
@Test
public void deleteAcceptableLanguageMember() throws Exception {
// create description as dirty
final SnomedDescriptionIndexEntry fsn = fsn(generateConceptId(), ImmutableMap.of(Concepts.REFSET_LANGUAGE_TYPE_UK, Acceptability.PREFERRED, Concepts.REFSET_LANGUAGE_TYPE_US, Acceptability.ACCEPTABLE));
final SnomedRefSetMemberIndexEntry acceptableInUs = langMember(fsn.getId(), Acceptability.ACCEPTABLE, Concepts.REFSET_LANGUAGE_TYPE_US);
final SnomedRefSetMemberIndexEntry preferredInUk = langMember(fsn.getId(), Acceptability.PREFERRED, Concepts.REFSET_LANGUAGE_TYPE_UK);
// index current revisions, so change processor can find them (both the description and the members)
initRevisions(fsn, acceptableInUs, preferredInUk);
stageRemove(acceptableInUs);
process(processor);
// expected that the new doc will have only the preferred acceptability
final SnomedDescriptionIndexEntry expectedDoc = SnomedDescriptionIndexEntry.builder(fsn).acceptabilityMap(Collections.singletonMap(Concepts.REFSET_LANGUAGE_TYPE_UK, Acceptability.PREFERRED)).build();
final Revision currentDoc = Iterables.getOnlyElement(processor.getChangedMappings().values()).getNewRevision();
assertDocEquals(expectedDoc, currentDoc);
// XXX the deleted member handled by another processor
assertEquals(0, processor.getNewMappings().size());
assertEquals(0, processor.getDeletions().size());
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedDescriptionIndexEntry in project snow-owl by b2ihealthcare.
the class DescriptionChangeProcessorTest method changeLanguageMemberAcceptability.
@Test
public void changeLanguageMemberAcceptability() throws Exception {
final SnomedDescriptionIndexEntry fsn = fsn(generateConceptId(), ImmutableMap.of(Concepts.REFSET_LANGUAGE_TYPE_UK, Acceptability.ACCEPTABLE));
final SnomedRefSetMemberIndexEntry acceptableInUk = langMember(fsn.getId(), Acceptability.ACCEPTABLE, Concepts.REFSET_LANGUAGE_TYPE_UK);
initRevisions(fsn, acceptableInUk);
// make the change
stageChange(acceptableInUk, SnomedRefSetMemberIndexEntry.builder(acceptableInUk).field(SnomedRf2Headers.FIELD_ACCEPTABILITY_ID, Acceptability.PREFERRED.getConceptId()).build());
process(processor);
assertEquals(1, processor.getChangedMappings().size());
// description doc must be reindexed with change acceptabilityMap
final SnomedDescriptionIndexEntry expectedDoc = SnomedDescriptionIndexEntry.builder(fsn).acceptabilityMap(Collections.singletonMap(Concepts.REFSET_LANGUAGE_TYPE_UK, Acceptability.PREFERRED)).build();
final Revision currentDoc = Iterables.getOnlyElement(processor.getChangedMappings().values()).getNewRevision();
assertDocEquals(expectedDoc, currentDoc);
assertEquals(0, processor.getNewMappings().size());
assertEquals(0, processor.getDeletions().size());
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedDescriptionIndexEntry in project snow-owl by b2ihealthcare.
the class DescriptionChangeProcessorTest method deleteDescription.
@Test
public void deleteDescription() throws Exception {
final SnomedDescriptionIndexEntry fsn = fsn(generateConceptId(), Collections.emptyMap());
initRevisions(fsn);
stageRemove(fsn);
process(processor);
assertThat(processor.getNewMappings()).isEmpty();
assertThat(processor.getChangedMappings()).isEmpty();
assertThat(processor.getDeletions()).isEmpty();
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedDescriptionIndexEntry in project snow-owl by b2ihealthcare.
the class DescriptionChangeProcessorTest method deleteMemberOfDescription.
@Test
public void deleteMemberOfDescription() {
final SnomedDescriptionIndexEntry fsn = fsn(generateConceptId(), Collections.emptyMap());
final String referringRefSetId = generateConceptId();
final SnomedRefSetMemberIndexEntry member = simpleMember(fsn.getId(), referringRefSetId);
initRevisions(SnomedDescriptionIndexEntry.builder(fsn).memberOf(Collections.singleton(referringRefSetId)).activeMemberOf(Collections.singleton(referringRefSetId)).build(), member);
stageRemove(member);
process(processor);
final SnomedDescriptionIndexEntry expectedDoc = SnomedDescriptionIndexEntry.builder(fsn).build();
final Revision currentDoc = Iterables.getOnlyElement(processor.getChangedMappings().values()).getNewRevision();
assertDocEquals(expectedDoc, currentDoc);
assertEquals(0, processor.getNewMappings().size());
assertEquals(0, processor.getDeletions().size());
}
Aggregations