use of net.geoprism.registry.etl.ExternalSystemSyncConfig in project geoprism-registry by terraframe.
the class SynchronizationConfig method toJSON.
@Override
public JsonObject toJSON() {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(FhirSyncLevel.class, new FhirSyncLevel.Serializer());
builder.registerTypeAdapter(DHIS2AttributeMapping.class, new DHIS2AttributeMapping.DHIS2AttributeMappingDeserializer());
Gson gson = builder.create();
JsonObject object = new JsonObject();
object.addProperty(SynchronizationConfig.OID, this.getOid());
object.addProperty(SynchronizationConfig.ORGANIZATION, this.getOrganization().getCode());
object.addProperty(SynchronizationConfig.SYSTEM, this.getSystem());
object.add(SynchronizationConfig.LABEL, LocalizedValueConverter.convert(this.getLabel()).toJSON());
object.addProperty(SynchronizationConfig.ISIMPORT, this.getIsImport() != null ? this.getIsImport() : false);
ExternalSystemSyncConfig config = this.buildConfiguration();
object.add(SynchronizationConfig.CONFIGURATION, gson.toJsonTree(config));
ExternalSystem system = this.getExternalSystem();
if (system != null) {
LocalizedValue label = LocalizedValueConverter.convert(system.getEmbeddedComponent(ExternalSystem.LABEL));
object.addProperty(SynchronizationConfig.TYPE, system.getClass().getSimpleName());
object.addProperty(SynchronizationConfig.SYSTEM_LABEL, label.getValue());
}
return object;
}
use of net.geoprism.registry.etl.ExternalSystemSyncConfig in project geoprism-registry by terraframe.
the class SynchronizationConfig method buildConfiguration.
public ExternalSystemSyncConfig buildConfiguration() {
ExternalSystem system = this.getExternalSystem();
ExternalSystemSyncConfig config = system.configuration(this.getIsImport());
config.setSystem(system);
config.populate(this);
return config;
}
use of net.geoprism.registry.etl.ExternalSystemSyncConfig in project geoprism-registry by terraframe.
the class DataExportJob method execute.
@Override
public void execute(ExecutionContext executionContext) throws Throwable {
ExportHistory history = (ExportHistory) executionContext.getJobHistoryRecord().getChild();
this.setStage(history, ExportStage.EXPORT);
SynchronizationConfig c = this.getConfig();
ExternalSystemSyncConfig config = c.buildConfiguration();
if (config instanceof DHIS2SyncConfig) {
DHIS2SyncConfig dhis2Config = (DHIS2SyncConfig) config;
DHIS2TransportServiceIF dhis2 = DHIS2ServiceFactory.buildDhis2TransportService(dhis2Config.getSystem());
DHIS2FeatureService dhis2FeatureService = new DHIS2FeatureService();
dhis2FeatureService.setExternalSystemDhis2Version(dhis2, dhis2Config.getSystem());
new DHIS2SynchronizationManager(dhis2, dhis2Config, history).synchronize();
} else if (config instanceof FhirSyncExportConfig) {
FhirExportSynchronizationManager manager = new FhirExportSynchronizationManager((FhirSyncExportConfig) config, history);
manager.synchronize();
} else if (config instanceof FhirSyncImportConfig) {
FhirImportSynchronizationManager manager = new FhirImportSynchronizationManager(c, (FhirSyncImportConfig) config, history);
manager.synchronize();
}
}
use of net.geoprism.registry.etl.ExternalSystemSyncConfig in project geoprism-registry by terraframe.
the class SynchronizationConfigService method generateFile.
@Request(RequestType.SESSION)
public InputStream generateFile(String sessionId, String oid) {
SynchronizationConfig synchorinzation = SynchronizationConfig.get(oid);
ServiceFactory.getRolePermissionService().enforceRA(synchorinzation.getOrganization().getCode());
ExternalSystemSyncConfig config = synchorinzation.buildConfiguration();
if (config instanceof FhirSyncExportConfig) {
try {
FhirExportSynchronizationManager manager = new FhirExportSynchronizationManager((FhirSyncExportConfig) config, null);
return manager.generateZipFile();
} catch (IOException e) {
throw new ProgrammingErrorException(e);
}
}
throw new UnsupportedOperationException();
}
Aggregations