use of org.hl7.fhir.dstu3.model.ValueSet.ConceptSetComponent in project bunsen by cerner.
the class ValueSets method expandValuesIterator.
private static Iterator<Value> expandValuesIterator(ValueSet valueSet) {
List<Value> values = new ArrayList<>();
ValueSetComposeComponent compose = valueSet.getCompose();
for (ConceptSetComponent inclusion : compose.getInclude()) {
for (ConceptReferenceComponent concept : inclusion.getConcept()) {
Value value = new Value();
value.setValueSetUri(valueSet.getUrl());
value.setValueSetVersion(valueSet.getVersion());
value.setSystem(inclusion.getSystem());
value.setVersion(inclusion.getVersion());
value.setValue(concept.getCode());
values.add(value);
}
}
return values.iterator();
}
use of org.hl7.fhir.dstu3.model.ValueSet.ConceptSetComponent in project bunsen by cerner.
the class ValueSets method addToValueSet.
/**
* Adds the given values to the given value set instance.
*/
private void addToValueSet(ValueSet valueSet, Dataset<Value> values) {
ValueSetComposeComponent composeComponent = valueSet.getCompose();
ConceptSetComponent currentInclusion = null;
ConceptReferenceComponent concept = null;
List<Value> sortedValues = values.sort("system", "version", "value").collectAsList();
// Workaround for the decoder producing an immutable array by replacing it with a mutable one
composeComponent.setInclude(new ArrayList<>(composeComponent.getInclude()));
for (Value value : sortedValues) {
if (currentInclusion == null || !value.getSystem().equals(currentInclusion.getSystem()) || !value.getVersion().equals(currentInclusion.getVersion())) {
// Find a matching inclusion
for (ConceptSetComponent candidate : composeComponent.getInclude()) {
if (value.getSystem().equals(candidate.getSystem()) && value.getVersion().equals(candidate.getVersion())) {
currentInclusion = candidate;
// Workaround for the decoder producing an immutable array by replacing it with a
// mutable one
currentInclusion.setConcept(new ArrayList<>(currentInclusion.getConcept()));
}
}
// No matching inclusion found, so add one
if (currentInclusion == null) {
currentInclusion = composeComponent.addInclude();
currentInclusion.setSystem(value.getSystem());
currentInclusion.setVersion(value.getVersion());
concept = null;
}
}
// Create concept if not exists
if (concept == null || !value.getValue().equals(concept.getCode())) {
concept = currentInclusion.addConcept();
concept.setCode(value.getValue());
}
}
}
use of org.hl7.fhir.dstu3.model.ValueSet.ConceptSetComponent in project bunsen by cerner.
the class ValueSetsTest method valueSet.
private static ValueSet valueSet(String valueSetUrl, String valueSetVersion, String... codes) {
ValueSet valueSet = new ValueSet();
valueSet.setUrl(valueSetUrl);
valueSet.setVersion(valueSetVersion);
valueSet.setExperimental(true);
ConceptSetComponent inclusion = valueSet.getCompose().addInclude();
inclusion.setSystem("urn:cerner:system").setVersion("1");
for (String code : codes) {
inclusion.addConcept().setCode(code);
}
return valueSet;
}
use of org.hl7.fhir.dstu3.model.ValueSet.ConceptSetComponent in project bunsen by cerner.
the class ValueSetsTest method checkValueSet.
private static void checkValueSet(ValueSet valueSet, String url, String version) {
Assert.assertNotNull(MessageFormat.format("Could not find value set for url {0} and version {1}", url, version), valueSet);
Assert.assertEquals(url, valueSet.getUrl());
Assert.assertEquals(version, valueSet.getVersion());
ConceptSetComponent inclusion = valueSet.getCompose().getIncludeFirstRep();
Assert.assertEquals("urn:cerner:system", inclusion.getSystem());
Assert.assertEquals("1", inclusion.getVersion());
Assert.assertEquals("a", inclusion.getConceptFirstRep().getCode());
Assert.assertEquals(1, valueSet.getCompose().getInclude().size());
}
Aggregations