Bit of logic tidying
This commit is contained in:
parent
7b663bfe99
commit
de09c7e2da
|
@ -139,10 +139,8 @@ public class BulkDataExportSvcImpl implements IBulkDataExportSvc {
|
||||||
BulkExportJobEntity bulkExportJobEntity = jobToProcessOpt.get();
|
BulkExportJobEntity bulkExportJobEntity = jobToProcessOpt.get();
|
||||||
|
|
||||||
String jobUuid = bulkExportJobEntity.getJobId();
|
String jobUuid = bulkExportJobEntity.getJobId();
|
||||||
String theGroupId = getGroupIdIfPresent(bulkExportJobEntity.getRequest());
|
|
||||||
String theMdmExpand= getMdmIfPresent(bulkExportJobEntity.getRequest());
|
|
||||||
try {
|
try {
|
||||||
processJob(jobUuid, theGroupId, theMdmExpand);
|
processJob(bulkExportJobEntity);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
ourLog.error("Failure while preparing bulk export extract", e);
|
ourLog.error("Failure while preparing bulk export extract", e);
|
||||||
myTxTemplate.execute(t -> {
|
myTxTemplate.execute(t -> {
|
||||||
|
@ -158,25 +156,17 @@ public class BulkDataExportSvcImpl implements IBulkDataExportSvc {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
private String getGroupIdIfPresent(String theRequestString) {
|
|
||||||
|
private String getQueryParameterIfPresent(String theRequestString, String theParameter) {
|
||||||
Map<String, String[]> stringMap = UrlUtil.parseQueryString(theRequestString);
|
Map<String, String[]> stringMap = UrlUtil.parseQueryString(theRequestString);
|
||||||
if (stringMap != null) {
|
if (stringMap != null) {
|
||||||
String[] strings = stringMap.get(JpaConstants.PARAM_EXPORT_GROUP_ID);
|
String[] strings = stringMap.get(theParameter);
|
||||||
if (strings != null) {
|
|
||||||
return String.join(",", strings);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
private String getMdmIfPresent(String theRequestString) {
|
|
||||||
Map<String, String[]> stringMap = UrlUtil.parseQueryString(theRequestString);
|
|
||||||
if (stringMap != null) {
|
|
||||||
String[] strings = stringMap.get(JpaConstants.PARAM_EXPORT_MDM);
|
|
||||||
if (strings != null) {
|
if (strings != null) {
|
||||||
return String.join(",", strings);
|
return String.join(",", strings);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -227,7 +217,8 @@ public class BulkDataExportSvcImpl implements IBulkDataExportSvc {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processJob(String theJobUuid, String theGroupId, String theExpandMdm) {
|
private void processJob(BulkExportJobEntity theBulkExportJobEntity) {
|
||||||
|
String theJobUuid = theBulkExportJobEntity.getJobId();
|
||||||
JobParametersBuilder parameters = new JobParametersBuilder()
|
JobParametersBuilder parameters = new JobParametersBuilder()
|
||||||
.addString(BulkExportJobConfig.JOB_UUID_PARAMETER, theJobUuid)
|
.addString(BulkExportJobConfig.JOB_UUID_PARAMETER, theJobUuid)
|
||||||
.addLong(BulkExportJobConfig.READ_CHUNK_PARAMETER, READ_CHUNK_SIZE);
|
.addLong(BulkExportJobConfig.READ_CHUNK_PARAMETER, READ_CHUNK_SIZE);
|
||||||
|
@ -235,9 +226,8 @@ public class BulkDataExportSvcImpl implements IBulkDataExportSvc {
|
||||||
ourLog.info("Submitting bulk export job {} to job scheduler", theJobUuid);
|
ourLog.info("Submitting bulk export job {} to job scheduler", theJobUuid);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!StringUtils.isBlank(theGroupId)) {
|
if (isGroupBulkJob(theBulkExportJobEntity)) {
|
||||||
parameters.addString(BulkExportJobConfig.GROUP_ID_PARAMETER, theGroupId);
|
enhanceBulkParametersWithGroupParameters(theBulkExportJobEntity, parameters);
|
||||||
parameters.addString(BulkExportJobConfig.EXPAND_MDM_PARAMETER, theExpandMdm);
|
|
||||||
myJobSubmitter.runJob(myGroupBulkExportJob, parameters.toJobParameters());
|
myJobSubmitter.runJob(myGroupBulkExportJob, parameters.toJobParameters());
|
||||||
} else {
|
} else {
|
||||||
myJobSubmitter.runJob(myBulkExportJob, parameters.toJobParameters());
|
myJobSubmitter.runJob(myBulkExportJob, parameters.toJobParameters());
|
||||||
|
@ -247,6 +237,17 @@ public class BulkDataExportSvcImpl implements IBulkDataExportSvc {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void enhanceBulkParametersWithGroupParameters(BulkExportJobEntity theBulkExportJobEntity, JobParametersBuilder theParameters) {
|
||||||
|
String theGroupId = getQueryParameterIfPresent(theBulkExportJobEntity.getRequest(), JpaConstants.PARAM_EXPORT_GROUP_ID);
|
||||||
|
String expandMdm = getQueryParameterIfPresent(theBulkExportJobEntity.getRequest(), JpaConstants.PARAM_EXPORT_MDM);
|
||||||
|
theParameters.addString(BulkExportJobConfig.GROUP_ID_PARAMETER, theGroupId);
|
||||||
|
theParameters.addString(BulkExportJobConfig.EXPAND_MDM_PARAMETER, expandMdm);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isGroupBulkJob(BulkExportJobEntity theBulkExportJobEntity) {
|
||||||
|
return getQueryParameterIfPresent(theBulkExportJobEntity.getRequest(), JpaConstants.PARAM_EXPORT_GROUP_ID) != null;
|
||||||
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private IFhirResourceDao<IBaseBinary> getBinaryDao() {
|
private IFhirResourceDao<IBaseBinary> getBinaryDao() {
|
||||||
return myDaoRegistry.getResourceDao("Binary");
|
return myDaoRegistry.getResourceDao("Binary");
|
||||||
|
|
|
@ -187,7 +187,7 @@ public class JpaConstants {
|
||||||
/**
|
/**
|
||||||
* The [id] of the group when $export is called on /Group/[id]/$export
|
* The [id] of the group when $export is called on /Group/[id]/$export
|
||||||
*/
|
*/
|
||||||
public static final Object PARAM_EXPORT_GROUP_ID = "_groupId";
|
public static final String PARAM_EXPORT_GROUP_ID = "_groupId";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Whether mdm should be performed on group export items to expand the group items to linked items before performing the export
|
* Whether mdm should be performed on group export items to expand the group items to linked items before performing the export
|
||||||
|
|
Loading…
Reference in New Issue