use of org.cqframework.cql.cql2elm.CqlTranslator in project cqf-ruler by DBCG.
the class Translators method getTranslator.
public static CqlTranslator getTranslator(InputStream cqlStream, LibraryManager libraryManager, ModelManager modelManager) {
CqlTranslator translator;
try {
List<CqlTranslator.Options> options = generateDefaultTranslatorOptions();
translator = CqlTranslator.fromStream(cqlStream, modelManager, libraryManager, options.toArray(new CqlTranslator.Options[options.size()]));
} catch (IOException e) {
throw new IllegalArgumentException(String.format("Errors occurred translating library: %s", e.getMessage()));
}
return translator;
}
use of org.cqframework.cql.cql2elm.CqlTranslator in project cqf-ruler by DBCG.
the class DataOperationsProvider method processDataRequirements.
private Library processDataRequirements(Library library, RequestDetails theRequestDetails) {
LibraryManager libraryManager = createLibraryManager(library, theRequestDetails);
CqlTranslator translator = translateLibrary(library, libraryManager, theRequestDetails);
// TODO: Enable passing a capability statement as a parameter to the operation
return DataRequirements.getModuleDefinitionLibraryR4(libraryManager, translator.getTranslatedLibrary(), Translators.getTranslatorOptions(), searchParameterResolver, jpaTerminologyProviderFactory.create(theRequestDetails), myModelResolver, null);
}
use of org.cqframework.cql.cql2elm.CqlTranslator in project cqf-ruler by DBCG.
the class CqlBuilder method validate.
private void validate(String cql) {
ModelManager modelManager = new ModelManager();
LibraryManager libraryManager = new LibraryManager(modelManager);
libraryManager.getLibrarySourceLoader().registerProvider(new FhirLibrarySourceProvider());
CqlTranslator translator;
try {
translator = CqlTranslator.fromStream(new ByteArrayInputStream(cql.getBytes()), modelManager, libraryManager);
} catch (IOException e) {
throw new CqlTranslatorException("Error validating cql", e);
}
if (translator.getErrors().size() > 0) {
throw new CqlTranslatorException("Error validating cql: " + Translators.errorsToString(translator.getErrors()));
}
}
use of org.cqframework.cql.cql2elm.CqlTranslator in project quality-measure-and-cohort-service by Alvearie.
the class CQLParameterTests method toLibrary.
public Library toLibrary(String text) throws Exception {
ModelManager modelManager = new ModelManager();
LibraryManager libraryManager = new LibraryManager(modelManager);
CqlTranslator translator = CqlTranslator.fromText(text, modelManager, libraryManager);
assertEquals(translator.getErrors().toString(), 0, translator.getErrors().size());
String xml = translator.toXml();
return CqlLibraryReader.read(new ByteArrayInputStream(xml.getBytes(StandardCharsets.UTF_8)));
}
use of org.cqframework.cql.cql2elm.CqlTranslator in project quality-measure-and-cohort-service by Alvearie.
the class CqlToElmTranslator method translate.
public CqlTranslationResult translate(CqlLibrary primaryLibrary, CqlLibrarySourceProvider sourceProvider) {
LibraryBuilder.SignatureLevel signatureLevel = LibraryBuilder.SignatureLevel.None;
LibraryManager libraryManager = newLibraryManager(sourceProvider);
Collection<CqlLibrary> dependencies = new ArrayList<>();
CqlTranslator cqlTranslator = CqlTranslator.fromText(primaryLibrary.getContent(), libraryManager.getModelManager(), libraryManager, /* ucumService= */
null, CqlTranslatorException.ErrorSeverity.Info, signatureLevel, getOptionsArray());
if (cqlTranslator.getErrors().size() > 0) {
throw new CqlTranslatorException("There were errors during cql translation: " + formatMsg(cqlTranslator.getErrors()));
} else if (cqlTranslator.getExceptions().size() > 0) {
throw new CqlTranslatorException("There were exceptions during cql translation: " + formatMsg(cqlTranslator.getExceptions()));
} else if (cqlTranslator.getWarnings().size() > 0) {
String msg = "There were warnings during cql translation:\n" + cqlTranslator.getWarnings().stream().map(Object::toString).collect(Collectors.joining("\n"));
LOG.warn(msg);
}
CqlLibrary translatedLibrary = new CqlLibrary().setDescriptor(new CqlLibraryDescriptor().setLibraryId(primaryLibrary.getDescriptor().getLibraryId()).setVersion(primaryLibrary.getDescriptor().getVersion()).setFormat(Format.ELM)).setContent(cqlTranslator.toXml());
try {
for (TranslatedLibrary tl : libraryManager.getTranslatedLibraries().values()) {
CqlLibrary library = new CqlLibrary().setDescriptor(new CqlLibraryDescriptor().setLibraryId(tl.getLibrary().getIdentifier().getId()).setVersion(tl.getLibrary().getIdentifier().getVersion()).setFormat(Format.ELM)).setContent(CqlTranslator.convertToXml(tl.getLibrary()));
dependencies.add(library);
}
} catch (JAXBException ex) {
throw new RuntimeException("ELM serialization failure", ex);
}
return new CqlTranslationResult(translatedLibrary, dependencies);
}
Aggregations