use of com.b2international.commons.Pair in project snow-owl by b2ihealthcare.
the class SnomedExportApiTest method exportContentFromVersionFixerTask.
@Test
public void exportContentFromVersionFixerTask() throws Exception {
String codeSystemShortName = "SNOMEDCT-FIXERTASK";
createCodeSystem(branchPath, codeSystemShortName).statusCode(201);
// create a refset, a concept, and reference the concept from the refset
final String createdRefSetId = createNewRefSet(branchPath, SnomedRefSetType.SIMPLE);
final String createdConceptId = createNewConcept(branchPath, ROOT_CONCEPT);
final String memberId = createNewRefSetMember(branchPath, createdConceptId, createdRefSetId);
final String versionEffectiveTime = "20170301";
createVersion(codeSystemShortName, "v1", EffectiveTimes.parse(versionEffectiveTime, DateFormats.SHORT)).statusCode(201);
IBranchPath versionPath = BranchPathUtils.createPath(branchPath, "v1");
IBranchPath taskBranch = BranchPathUtils.createPath(versionPath, "Fix01");
// create fixer branch for version branch
branching.createBranch(taskBranch).statusCode(201);
// change an existing component
final String newEffectiveTime = "20170302";
updateRefSetMemberEffectiveTime(taskBranch, memberId, newEffectiveTime);
getComponent(taskBranch, SnomedComponentType.MEMBER, memberId).statusCode(200).body("effectiveTime", equalTo(newEffectiveTime)).body("released", equalTo(true));
// add a new component with the same effective time as the version branch
final String unpublishedMemberId = createNewRefSetMember(taskBranch, createdConceptId, createdRefSetId);
updateRefSetMemberEffectiveTime(taskBranch, unpublishedMemberId, versionEffectiveTime);
getComponent(taskBranch, SnomedComponentType.MEMBER, unpublishedMemberId).statusCode(200).body("effectiveTime", equalTo(versionEffectiveTime)).body("released", equalTo(true));
final Map<String, Object> config = ImmutableMap.<String, Object>builder().put("type", Rf2ReleaseType.SNAPSHOT.name()).put("startEffectiveTime", versionEffectiveTime).build();
final File exportArchive = doExport(taskBranch, config);
String refsetMemberLine = getComponentLine(List.<String>of(memberId, newEffectiveTime, "1", MODULE_SCT_CORE, createdRefSetId, createdConceptId));
String invalidRefsetMemberLine = getComponentLine(List.<String>of(memberId, versionEffectiveTime, "1", MODULE_SCT_CORE, createdRefSetId, createdConceptId));
String newRefsetMemberLine = getComponentLine(List.<String>of(unpublishedMemberId, versionEffectiveTime, "1", MODULE_SCT_CORE, createdRefSetId, createdConceptId));
final Multimap<String, Pair<Boolean, String>> fileToLinesMap = ArrayListMultimap.<String, Pair<Boolean, String>>create();
String refsetFileName = "der2_Refset_SimpleSnapshot";
fileToLinesMap.put(refsetFileName, Pair.of(true, refsetMemberLine));
fileToLinesMap.put(refsetFileName, Pair.of(true, newRefsetMemberLine));
fileToLinesMap.put(refsetFileName, Pair.of(false, invalidRefsetMemberLine));
assertArchiveContainsLines(exportArchive, fileToLinesMap);
}
use of com.b2international.commons.Pair in project snow-owl by b2ihealthcare.
the class SnomedExportApiTest method exportTextDef_DescAndLangRefSetsPerLanguageCode.
@Test
public void exportTextDef_DescAndLangRefSetsPerLanguageCode() throws Exception {
final String codeSystemShortName = "SNOMEDCT-EXPORT-PER-LANGUAGE";
createCodeSystem(branchPath, codeSystemShortName).statusCode(201);
// create new concept
final String conceptId = createNewConcept(branchPath);
final String englishTextDefinitionId = createNewDescription(branchPath, conceptId, Concepts.TEXT_DEFINITION, UK_ACCEPTABLE_MAP, "en");
final String danishTextDefinitionId = createNewDescription(branchPath, conceptId, Concepts.TEXT_DEFINITION, UK_ACCEPTABLE_MAP, "da");
final String englishDescriptionId = createNewDescription(branchPath, conceptId, Concepts.SYNONYM, UK_ACCEPTABLE_MAP, "en");
final String danishDescriptionId = createNewDescription(branchPath, conceptId, Concepts.SYNONYM, UK_ACCEPTABLE_MAP, "da");
// version new concept
final String versionEffectiveTime = "20170301";
createVersion(codeSystemShortName, "v1", EffectiveTimes.parse(versionEffectiveTime, DateFormats.SHORT)).statusCode(201);
final String unpublishedEnglishTextDefinitionId = createNewDescription(branchPath, conceptId, Concepts.TEXT_DEFINITION, UK_ACCEPTABLE_MAP, "en");
final String unpublishedDanishTextDefinitionId = createNewDescription(branchPath, conceptId, Concepts.TEXT_DEFINITION, UK_ACCEPTABLE_MAP, "da");
final String unpublishedEnglishDescriptionId = createNewDescription(branchPath, conceptId, Concepts.SYNONYM, UK_ACCEPTABLE_MAP, "en");
final String unpublishedDanishDescriptionId = createNewDescription(branchPath, conceptId, Concepts.SYNONYM, UK_ACCEPTABLE_MAP, "da");
// do not create new version
final Map<String, Object> config = ImmutableMap.<String, Object>builder().put("type", Rf2ReleaseType.DELTA.name()).put("startEffectiveTime", versionEffectiveTime).put("endEffectiveTime", versionEffectiveTime).put("includeUnpublished", true).build();
final File exportArchive = doExport(branchPath, config);
final Map<String, Boolean> files = ImmutableMap.<String, Boolean>builder().put("sct2_Description_Delta-en", true).put("sct2_Description_Delta-da", true).put("sct2_TextDefinition_Delta-en", true).put("sct2_TextDefinition_Delta-da", true).put("der2_cRefset_LanguageDelta-en", true).put("der2_cRefset_LanguageDelta-da", true).build();
assertArchiveContainsFiles(exportArchive, files);
String englishTextDefinitionLine = createDescriptionLine(englishTextDefinitionId, versionEffectiveTime, conceptId, "en", Concepts.TEXT_DEFINITION, DEFAULT_TERM);
String danishTextDefinitionLine = createDescriptionLine(danishTextDefinitionId, versionEffectiveTime, conceptId, "da", Concepts.TEXT_DEFINITION, DEFAULT_TERM);
String englishDescriptionLine = createDescriptionLine(englishDescriptionId, versionEffectiveTime, conceptId, "en", Concepts.SYNONYM, DEFAULT_TERM);
String danishDescriptionLine = createDescriptionLine(danishDescriptionId, versionEffectiveTime, conceptId, "da", Concepts.SYNONYM, DEFAULT_TERM);
String unpublishedEnglishTextDefinitionLine = createDescriptionLine(unpublishedEnglishTextDefinitionId, "", conceptId, "en", Concepts.TEXT_DEFINITION, DEFAULT_TERM);
String unpublishedDanishTextDefinitionLine = createDescriptionLine(unpublishedDanishTextDefinitionId, "", conceptId, "da", Concepts.TEXT_DEFINITION, DEFAULT_TERM);
String unpublishedEnglishDescriptionLine = createDescriptionLine(unpublishedEnglishDescriptionId, "", conceptId, "en", Concepts.SYNONYM, DEFAULT_TERM);
String unpublishedDanishDescriptionLine = createDescriptionLine(unpublishedDanishDescriptionId, "", conceptId, "da", Concepts.SYNONYM, DEFAULT_TERM);
String englishTextDefinitionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, englishTextDefinitionId, versionEffectiveTime);
String danishTextDefinitionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, danishTextDefinitionId, versionEffectiveTime);
String englishDescriptionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, englishDescriptionId, versionEffectiveTime);
String danishDescriptionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, danishDescriptionId, versionEffectiveTime);
String unpublishedEnglishTextDefinitionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, unpublishedEnglishTextDefinitionId, "");
String unpublishedDanishTextDefinitionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, unpublishedDanishTextDefinitionId, "");
String unpublishedEnglishDescriptionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, unpublishedEnglishDescriptionId, "");
String unpublishedDanishDescriptionMemberLine = createAcceptableUKLanguageRefsetMemberLine(branchPath, unpublishedDanishDescriptionId, "");
final Multimap<String, Pair<Boolean, String>> fileToLinesMap = ArrayListMultimap.<String, Pair<Boolean, String>>create();
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, englishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, danishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(true, englishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, danishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, englishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, danishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, englishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(true, danishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(true, englishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, danishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, englishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, danishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, englishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(true, danishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, englishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, danishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, unpublishedEnglishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, unpublishedDanishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(true, unpublishedEnglishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-en", Pair.of(false, unpublishedDanishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, unpublishedEnglishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, unpublishedDanishTextDefinitionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(false, unpublishedEnglishDescriptionLine));
fileToLinesMap.put("sct2_Description_Delta-da", Pair.of(true, unpublishedDanishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(true, unpublishedEnglishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, unpublishedDanishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, unpublishedEnglishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-en", Pair.of(false, unpublishedDanishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, unpublishedEnglishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(true, unpublishedDanishTextDefinitionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, unpublishedEnglishDescriptionLine));
fileToLinesMap.put("sct2_TextDefinition_Delta-da", Pair.of(false, unpublishedDanishDescriptionLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(true, englishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(false, danishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(true, englishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(false, danishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(false, englishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(true, danishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(false, englishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(true, danishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(true, unpublishedEnglishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(false, unpublishedDanishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(true, unpublishedEnglishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-en", Pair.of(false, unpublishedDanishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(false, unpublishedEnglishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(true, unpublishedDanishTextDefinitionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(false, unpublishedEnglishDescriptionMemberLine));
fileToLinesMap.put("der2_cRefset_LanguageDelta-da", Pair.of(true, unpublishedDanishDescriptionMemberLine));
assertArchiveContainsLines(exportArchive, fileToLinesMap);
}
use of com.b2international.commons.Pair in project snow-owl by b2ihealthcare.
the class SnomedExportApiTest method collectLines.
private static Multimap<String, Pair<Boolean, String>> collectLines(File exportArchive, Multimap<String, Pair<Boolean, String>> fileToLinesMap) throws Exception {
assertTrue("Exported RF2 ZIP should be present in the local fs: " + exportArchive.toPath(), Files.exists(exportArchive.toPath()));
Multimap<String, Pair<Boolean, String>> resultMap = ArrayListMultimap.create();
try (FileSystem fs = FileSystems.newFileSystem(exportArchive.toPath(), (ClassLoader) null)) {
for (Path path : fs.getRootDirectories()) {
Files.walkFileTree(path, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
for (String filePrefix : fileToLinesMap.asMap().keySet()) {
/*
* XXX: Need to add underscore to the end of each prefix here, as some file names
* are prefixes of each other.
*/
if (file.getFileName().toString().startsWith(filePrefix + "_")) {
collectLines(resultMap, file, filePrefix, fileToLinesMap.get(filePrefix));
break;
}
}
return super.visitFile(file, attrs);
}
});
}
} catch (Exception e) {
throw e;
}
return resultMap;
}
use of com.b2international.commons.Pair in project snow-owl by b2ihealthcare.
the class SnomedExportApiTest method exportDeltaInDateRangeFromVersion.
@Test
public void exportDeltaInDateRangeFromVersion() throws Exception {
createCodeSystem(branchPath, "SNOMEDCT-DELTA").statusCode(201);
String statedRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.STATED_RELATIONSHIP);
String inferredRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.INFERRED_RELATIONSHIP);
String additionalRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.ADDITIONAL_RELATIONSHIP);
String versionEffectiveTime = "20170302";
createVersion("SNOMEDCT-DELTA", "v1", EffectiveTimes.parse(versionEffectiveTime, DateFormats.SHORT)).statusCode(201);
IBranchPath versionPath = BranchPathUtils.createPath(branchPath, "v1");
Map<String, ?> config = ImmutableMap.<String, Object>builder().put("type", Rf2ReleaseType.DELTA.name()).put("startEffectiveTime", versionEffectiveTime).put("endEffectiveTime", versionEffectiveTime).build();
File exportArchive = doExport(versionPath, config);
String statedLine = TAB_JOINER.join(statedRelationshipId, versionEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.STATED_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
String inferredLine = TAB_JOINER.join(inferredRelationshipId, versionEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.INFERRED_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
String additionalLine = TAB_JOINER.join(additionalRelationshipId, versionEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.ADDITIONAL_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
Multimap<String, Pair<Boolean, String>> fileToLinesMap = ArrayListMultimap.<String, Pair<Boolean, String>>create();
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(true, statedLine));
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(false, inferredLine));
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(false, additionalLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(false, statedLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(true, inferredLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(true, additionalLine));
assertArchiveContainsLines(exportArchive, fileToLinesMap);
}
use of com.b2international.commons.Pair in project snow-owl by b2ihealthcare.
the class SnomedExportApiTest method exportDeltaInDateRangeAndUnpublishedComponents.
@Test
public void exportDeltaInDateRangeAndUnpublishedComponents() throws Exception {
createCodeSystem(branchPath, "SNOMEDCT-GAMMA").statusCode(201);
String statedRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.STATED_RELATIONSHIP);
String inferredRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.INFERRED_RELATIONSHIP);
String additionalRelationshipId = createNewRelationship(branchPath, Concepts.ROOT_CONCEPT, Concepts.PART_OF, Concepts.NAMESPACE_ROOT, Concepts.ADDITIONAL_RELATIONSHIP);
String relationshipEffectiveTime = "20170303";
createVersion("SNOMEDCT-GAMMA", "v1", EffectiveTimes.parse(relationshipEffectiveTime, DateFormats.SHORT)).statusCode(201);
String conceptId = createNewConcept(branchPath);
String conceptEffectiveTime = "20170304";
createVersion("SNOMEDCT-GAMMA", "v2", EffectiveTimes.parse(conceptEffectiveTime, DateFormats.SHORT)).statusCode(201);
String descriptionId = createNewDescription(branchPath, conceptId);
// do not version description
Map<String, ?> config = ImmutableMap.<String, Object>builder().put("type", Rf2ReleaseType.DELTA.name()).put("startEffectiveTime", relationshipEffectiveTime).put("endEffectiveTime", relationshipEffectiveTime).put("includeUnpublished", true).build();
File exportArchive = doExport(branchPath, config);
String statedLine = TAB_JOINER.join(statedRelationshipId, relationshipEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.STATED_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
String inferredLine = TAB_JOINER.join(inferredRelationshipId, relationshipEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.INFERRED_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
String additionalLine = TAB_JOINER.join(additionalRelationshipId, relationshipEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.ROOT_CONCEPT, Concepts.NAMESPACE_ROOT, "0", Concepts.PART_OF, Concepts.ADDITIONAL_RELATIONSHIP, Concepts.EXISTENTIAL_RESTRICTION_MODIFIER);
String conceptLine = TAB_JOINER.join(conceptId, conceptEffectiveTime, "1", Concepts.MODULE_SCT_CORE, Concepts.PRIMITIVE);
String descriptionLine = TAB_JOINER.join(descriptionId, "", "1", Concepts.MODULE_SCT_CORE, conceptId, "en", Concepts.SYNONYM, "Description term", Concepts.ONLY_INITIAL_CHARACTER_CASE_INSENSITIVE);
Multimap<String, Pair<Boolean, String>> fileToLinesMap = ArrayListMultimap.<String, Pair<Boolean, String>>create();
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(true, statedLine));
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(false, inferredLine));
fileToLinesMap.put("sct2_StatedRelationship", Pair.of(false, additionalLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(true, inferredLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(true, additionalLine));
fileToLinesMap.put("sct2_Relationship", Pair.of(false, statedLine));
fileToLinesMap.put("sct2_Concept", Pair.of(false, conceptLine));
fileToLinesMap.put("sct2_Description", Pair.of(true, descriptionLine));
assertArchiveContainsLines(exportArchive, fileToLinesMap);
}
Aggregations