use of org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorInfo in project MobileAccessGateway by i4mi.
the class Iti68ResponseConverter method retrievedDocumentSetToHttResponse.
public static Object retrievedDocumentSetToHttResponse(@Body RetrievedDocumentSet retrievedDocumentSet, @Headers Map<String, Object> headers) throws IOException {
if (Status.SUCCESS.equals(retrievedDocumentSet.getStatus())) {
List<RetrievedDocument> documentResponses = retrievedDocumentSet.getDocuments();
if (documentResponses.size() == 1) {
RetrievedDocument documentResponse = documentResponses.get(0);
final InputStream in = documentResponse.getDataHandler().getInputStream();
byte[] byteArray = org.apache.commons.io.IOUtils.toByteArray(in);
headers.clear();
headers.put("Content-Type", documentResponse.getMimeType());
return byteArray;
}
} else {
headers.put(Exchange.HTTP_RESPONSE_CODE, 400);
List<ErrorInfo> errors = retrievedDocumentSet.getErrors();
StringBuffer result = new StringBuffer();
for (ErrorInfo error : errors) {
result.append(error.getCodeContext());
}
return result;
}
return null;
}
use of org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorInfo in project ipf by oehf.
the class RegistryResponseValidatorTest method testInvalidErrorCode.
@Test
public void testInvalidErrorCode() {
response.getErrors().add(new ErrorInfo(null, null, Severity.ERROR, null, null));
expectFailure(INVALID_ERROR_CODE_IN_RESPONSE);
}
use of org.openehealth.ipf.commons.ihe.xds.core.responses.ErrorInfo in project MobileAccessGateway by i4mi.
the class BaseResponseConverter method processErrorAsOutcome.
/**
* XDS error response -> FHIR OperationOutcome
* @param input
* @return
*/
public OperationOutcome processErrorAsOutcome(Response input) {
OperationOutcome outcome = new OperationOutcome();
List<ErrorInfo> errors = input.getErrors();
for (ErrorInfo info : errors) {
OperationOutcomeIssueComponent issue = outcome.addIssue();
Severity sevirity = info.getSeverity();
if (sevirity.equals(Severity.ERROR))
issue.setSeverity(OperationOutcome.IssueSeverity.ERROR);
else if (sevirity.equals(Severity.WARNING))
issue.setSeverity(OperationOutcome.IssueSeverity.WARNING);
ErrorCode errorCode = info.getErrorCode();
issue.setCode(IssueType.INVALID);
// TODO map error codes
// if (errorCode.equals(ErrorCode.REGISTRY_ERROR)) issue.setCode(IssueType.STRUCTURE);
// else if (errorCode.equals(ErrorCode.REGISTRY_METADATA_ERROR)) issue.setCode(IssueType.STRUCTURE);
// else
issue.setDetails(new CodeableConcept().setText(info.getCodeContext()).addCoding(new Coding().setCode(errorCode.toString())));
issue.setLocation(Collections.singletonList(new StringType(info.getLocation())));
}
return outcome;
}
Aggregations