use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedConceptDocument in project snow-owl by b2ihealthcare.
the class ConceptChangeProcessorAxiomTest method inactivateIsa_AddSubClassOf.
@Test
public void inactivateIsa_AddSubClassOf() throws Exception {
final SnomedConceptDocument parentConcept = concept().build();
final SnomedConceptDocument concept = concept().statedParents(Long.parseLong(parentConcept.getId())).statedAncestors(IComponent.ROOT_IDL).build();
SnomedRelationshipIndexEntry isaRelationship = createStatedRelationship(concept.getId(), Concepts.IS_A, parentConcept.getId());
indexRevision(MAIN, concept, parentConcept, isaRelationship);
statedChangedConceptIds.add(Long.parseLong(concept.getId()));
statedChangedConceptIds.add(Long.parseLong(parentConcept.getId()));
stageChange(isaRelationship, SnomedRelationshipIndexEntry.builder(isaRelationship).active(false).build());
SnomedRefSetMemberIndexEntry member = createOwlAxiom(concept.getId(), String.format("SubClassOf(:%s :%s)", concept.getId(), parentConcept.getId())).build();
stageNew(member);
final ConceptChangeProcessor processor = process();
assertEquals(1, processor.getChangedMappings().size());
final SnomedConceptDocument expected = docWithDefaults(concept).statedParents(Long.parseLong(parentConcept.getId())).statedAncestors(IComponent.ROOT_IDL).activeMemberOf(Collections.singleton(Concepts.REFSET_OWL_AXIOM)).memberOf(Collections.singleton(Concepts.REFSET_OWL_AXIOM)).build();
final Revision actual = Iterables.getOnlyElement(processor.getChangedMappings().values()).getNewRevision();
assertDocEquals(expected, actual);
assertEquals(0, processor.getNewMappings().size());
assertEquals(0, processor.getDeletions().size());
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedConceptDocument in project snow-owl by b2ihealthcare.
the class ConceptChangeProcessorAxiomTest method deleteSubClassOfAxiom.
@Test
public void deleteSubClassOfAxiom() throws Exception {
final SnomedConceptDocument parentConcept = concept().build();
final SnomedConceptDocument concept = concept().statedParents(Long.parseLong(parentConcept.getId())).statedAncestors(IComponent.ROOT_IDL).build();
SnomedRefSetMemberIndexEntry member = createOwlAxiom(concept.getId(), String.format("SubClassOf(:%s :%s)", concept.getId(), parentConcept.getId())).classAxiomRelationships(ImmutableList.of(SnomedOWLRelationshipDocument.create(Concepts.IS_A, parentConcept.getId(), 0))).build();
indexRevision(MAIN, concept, parentConcept, member);
statedChangedConceptIds.add(Long.parseLong(concept.getId()));
statedChangedConceptIds.add(Long.parseLong(parentConcept.getId()));
stageRemove(member);
final ConceptChangeProcessor processor = process();
assertEquals(1, processor.getChangedMappings().size());
final SnomedConceptDocument expected = docWithDefaults(concept).statedParents(IComponent.ROOT_IDL).build();
final Revision actual = Iterables.getOnlyElement(processor.getChangedMappings().values()).getNewRevision();
assertDocEquals(expected, actual);
assertEquals(0, processor.getNewMappings().size());
assertEquals(0, processor.getDeletions().size());
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedConceptDocument in project snow-owl by b2ihealthcare.
the class ConceptIconIdUpdaterTest method indexTopLevelConceptWithKnownSemanticTag.
@Test
public void indexTopLevelConceptWithKnownSemanticTag() {
final SnomedConceptDocument concept = concept().statedParents(IComponent.ROOT_IDL).parents(IComponent.ROOT_IDL).iconId(// intentionally unset icon ID before change processing
null).build();
final SnomedDescriptionIndexEntry fsn = description(concept.getId(), Concepts.FULLY_SPECIFIED_NAME, String.format(TEST_FSN, FINDING_SEMANTIC_TAG), singletonMap(Concepts.REFSET_LANGUAGE_TYPE_US, Acceptability.PREFERRED));
stageNew(concept);
stageNew(fsn);
availableImages.add(FINDING_SEMANTIC_TAG);
final ConceptChangeProcessor processor = process();
final SnomedConceptDocument expected = docWithDefaults(concept).semanticTags(ImmutableSortedSet.of(FINDING_SEMANTIC_TAG)).preferredDescriptions(ImmutableList.of(new SnomedDescriptionFragment(fsn.getId(), fsn.getTypeId(), fsn.getTerm(), Concepts.REFSET_LANGUAGE_TYPE_US))).iconId(// icon ID must be "finding"
FINDING_SEMANTIC_TAG).build();
final Revision actual = Iterables.getOnlyElement(processor.getNewMappings().values());
assertDocEquals(expected, actual);
}
use of com.b2international.snowowl.snomed.datastore.index.entry.SnomedConceptDocument in project snow-owl by b2ihealthcare.
the class ConceptIconIdUpdaterTest method indexChildConceptWithGBAndExtensionFsn.
@Test
public void indexChildConceptWithGBAndExtensionFsn() {
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().iconId(// intentionally unset icon ID before change processing
null).build();
// the GB preferred FSN has priority over the other preferred FSNs (except the US one)
final SnomedDescriptionIndexEntry fsn2 = description(childConcept.getId(), Concepts.FULLY_SPECIFIED_NAME, String.format(TEST_FSN, DISORDER_SEMANTIC_TAG), singletonMap(Concepts.REFSET_LANGUAGE_TYPE_UK, Acceptability.PREFERRED));
final SnomedDescriptionIndexEntry fsn3 = description(childConcept.getId(), Concepts.FULLY_SPECIFIED_NAME, String.format(TEST_FSN, "trouble"), singletonMap(Concepts.REFSET_LANGUAGE_TYPE_SG, Acceptability.PREFERRED));
final SnomedRefSetMemberIndexEntry member = createOwlAxiom(childConcept.getId(), String.format("SubClassOf(:%s :%s)", childConcept.getId(), concept.getId())).build();
stageNew(childConcept);
stageNew(fsn3);
stageNew(fsn2);
stageNew(member);
statedChangedConceptIds.add(Long.parseLong(concept.getId()));
statedChangedConceptIds.add(Long.parseLong(childConcept.getId()));
availableImages.add(DISORDER_SEMANTIC_TAG);
final ConceptChangeProcessor processor = process();
final SnomedConceptDocument expectedChild = docWithDefaults(childConcept).semanticTags(// both semantic tags should be present
ImmutableSortedSet.of(DISORDER_SEMANTIC_TAG, "trouble")).preferredDescriptions(ImmutableList.of(new SnomedDescriptionFragment(fsn2.getId(), fsn2.getTypeId(), fsn2.getTerm(), Concepts.REFSET_LANGUAGE_TYPE_UK), new SnomedDescriptionFragment(fsn3.getId(), fsn3.getTypeId(), fsn3.getTerm(), Concepts.REFSET_LANGUAGE_TYPE_SG))).iconId(// icon ID must be "disorder"
DISORDER_SEMANTIC_TAG).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.SnomedConceptDocument in project snow-owl by b2ihealthcare.
the class SnomedConceptCreateRequest method execute.
@Override
public String execute(TransactionContext context) {
final SnomedConceptDocument concept = convertConcept(context);
context.add(concept);
convertDescriptions(context, concept.getId());
convertRelationships(context, concept.getId());
convertMembers(context, concept.getId());
createRefSet(context, concept.getId());
return concept.getId();
}
Aggregations