private FileData<PatientVisitDTO> doPut(FileData<PatientVisitDTO> entity) throws RestLoaderException { Response response = hbRestClient.doPut(entity.getEntity()); try { switch (response.getStatus()) { case 200: PayloadStatus result = response.readEntity(PayloadStatus.class); String id = HBUtil.getIdFromURI(result.getIdentifier()); entity.setSuccess(true); entity.setResult(DataLoaderConstants.SUCCESS_MSG + id); break; case 400: RestApiError badRequestError = response.readEntity(RestApiError.class); entity.setSuccess(false); entity.setResult(DataLoaderConstants.ERROR_MSG + badRequestError.toString()); break; case 404: RestApiError notFoundError = response.readEntity(RestApiError.class); entity.setSuccess(false); entity.setResult(DataLoaderConstants.ERROR_MSG + notFoundError.toString()); break; default: } } catch (MessageBodyProviderNotFoundException e) { log.warning(e.getMessage()); entity.setSuccess(false); entity.setResult(DataLoaderConstants.UNKNOWN_ERROR_MSG); } return entity; }
private List<FileData<PatientVisitDTO>> doPost( Map<String, List<FileData<PatientVisitDTO>>> entitiesMap) throws RestLoaderException { List<FileData<PatientVisitDTO>> allPostedEntities = new ArrayList<>(); entitiesMap.forEach( (k, v) -> { List<FileData<PatientVisitDTO>> entities = v; int listSize = 0; if (entities != null) { listSize = entities.size(); } int fromIndex = 0; int toIndex = 0; while (listSize > 0) { if (listSize >= BATCH_SIZE) { toIndex += BATCH_SIZE; } else { toIndex += listSize; } List<FileData<PatientVisitDTO>> patientVisitBatch = entities.subList(fromIndex, toIndex); List<PatientVisitDTO> patientVisits = patientVisitBatch .stream() .map(entity -> extractPatientVisitDTO(entity)) .collect(Collectors.toCollection(ArrayList::new)); try { addPathParam( env.getProperty(DataLoaderConstants.PATIENT_ID_KEY), patientVisits.get(0).getPatientNumber()); Response response = hbRestClient.doPost(patientVisits); switch (response.getStatus()) { case 201: GenericType<List<PayloadStatus>> type = new GenericType<List<PayloadStatus>>() {}; List<PayloadStatus> result = response.readEntity(type); resultExtractionService.processSuccessURI(patientVisitBatch, result); break; case 207: MultiStatusError mse = response.readEntity(MultiStatusError.class); resultExtractionService.processMultiStatusResult(patientVisitBatch, mse); break; case 400: RestApiError rae = response.readEntity(RestApiError.class); resultExtractionService.extractBadRequestResult(patientVisitBatch, rae); break; default: } } catch (MessageBodyProviderNotFoundException e) { log.warning(e.getMessage()); patientVisitBatch.forEach( entity -> { entity.setSuccess(false); entity.setResult("Error : Reason Unknown"); }); } catch (RestLoaderException e) { log.warning(e.getMessage()); } allPostedEntities.addAll(patientVisitBatch); listSize = listSize - BATCH_SIZE; fromIndex = toIndex; } }); return allPostedEntities; }