Bit of logic tidying

This commit is contained in:
Tadgh 2021-03-03 19:03:31 -05:00
parent 7b663bfe99
commit de09c7e2da
2 changed files with 21 additions and 20 deletions

View File

@ -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");

View File

@ -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