use of com.b2international.snowowl.fhir.core.model.BatchRequest in project snow-owl by b2ihealthcare.
the class BundleTest method deserializeRequestBundle.
@Test
public void deserializeRequestBundle() throws Exception {
String jsonCoding = "{ \"type\" : \"batch\", " + "\"resourceType\" : \"Bundle\", " + "\"entry\" : " + "[{\"request\" : " + "{\"method\" : \"POST\"," + "\"url\" : \"CodeSystem/$lookup\"}," + "\"resource\" : " + "{\"resourceType\" : \"Parameters\"," + "\"parameter\" : [" + "{\"valueUri\" : \"http://loinc.org\"," + "\"name\" : \"system\"}," + "{\"valueCode\" : \"23245-4\"," + "\"name\" : \"code\"}" + "]" + "}" + "}," + "{\"request\" : " + "{\"method\" : \"POST\"," + "\"url\" : \"CodeSystem/$lookup\"}," + "\"resource\" : " + "{\"resourceType\" : \"Parameters\"," + "\"parameter\" : [" + "{\"name\" : \"system\"," + "\"valueUri\" : \"http://snomed.info/sct\"}" + ",{\"valueCode\" : \"263495000\"," + "\"name\" : \"code\"}" + "]" + "}}" + "]}";
Bundle bundle = objectMapper.readValue(jsonCoding, Bundle.class);
assertEquals(BundleType.BATCH.getCode(), bundle.getType());
Iterator<Entry> iterator = bundle.getItems().iterator();
Entry bundleEntry = iterator.next();
assertTrue(bundleEntry instanceof ParametersRequestEntry);
ParametersRequestEntry requestEntry = (ParametersRequestEntry) bundleEntry;
BatchRequest batchRequest = requestEntry.getRequest();
assertEquals(HttpVerb.POST.getCode(), batchRequest.getMethod());
assertEquals("CodeSystem/$lookup", batchRequest.getUrl().getUriValue());
Fhir requestResource = requestEntry.getRequestResource();
// Back to Domain JSON...
Json json = new Parameters.Json(requestResource);
LookupRequest returnedLookupRequest = objectMapper.convertValue(json, LookupRequest.class);
assertEquals("23245-4", returnedLookupRequest.getCode());
assertEquals("http://loinc.org", returnedLookupRequest.getSystem());
bundleEntry = iterator.next();
assertTrue(bundleEntry instanceof ParametersRequestEntry);
requestEntry = (ParametersRequestEntry) bundleEntry;
batchRequest = requestEntry.getRequest();
assertEquals(HttpVerb.POST.getCode(), batchRequest.getMethod());
assertEquals("CodeSystem/$lookup", batchRequest.getUrl().getUriValue());
requestResource = requestEntry.getRequestResource();
// Back to Domain JSON...
json = new Parameters.Json(requestResource);
returnedLookupRequest = objectMapper.convertValue(json, LookupRequest.class);
assertEquals("263495000", returnedLookupRequest.getCode());
assertEquals("http://snomed.info/sct", returnedLookupRequest.getSystem());
}
use of com.b2international.snowowl.fhir.core.model.BatchRequest in project snow-owl by b2ihealthcare.
the class FhirRequestEntryProcessor method doProcess.
@Override
public void doProcess(ArrayNode arrayNode, HttpServletRequest request) throws Exception {
BatchRequest batchRequest = requestEntry.getRequest();
Code requestMethod = batchRequest.getMethod();
if (!requestMethod.equals(HttpVerb.GET.getCode())) {
createInvalidMethodResponse(arrayNode, requestMethod);
return;
}
HttpHeaders headers = getHeaders(request);
RestTemplate restTemplate = getRestTemplate();
StringBuilder uriBuilder = new StringBuilder(request.getScheme()).append("://").append(request.getServerName()).append(":").append(request.getLocalPort()).append(request.getRequestURI()).append(batchRequest.getUrl().getUriValue());
HttpEntity<String> httpEntity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(uriBuilder.toString(), HttpMethod.GET, httpEntity, String.class);
String json = response.getBody();
ObjectNode resourceNode = (ObjectNode) objectMapper.readTree(json);
addResponse(arrayNode, resourceNode, String.valueOf(response.getStatusCode().value()));
}
use of com.b2international.snowowl.fhir.core.model.BatchRequest in project snow-owl by b2ihealthcare.
the class FhirResourceRequestEntryProcessor method doProcess.
@Override
public void doProcess(ArrayNode arrayNode, HttpServletRequest request) throws JsonMappingException, JsonProcessingException {
BatchRequest batchRequest = requestEntry.getRequest();
Code requestMethod = batchRequest.getMethod();
if (!requestMethod.equals(HttpVerb.POST.getCode())) {
createInvalidMethodResponse(arrayNode, requestMethod);
return;
}
HttpHeaders headers = getHeaders(request);
RestTemplate restTemplate = getRestTemplate();
StringBuilder uriBuilder = new StringBuilder(request.getScheme()).append("://").append(request.getServerName()).append(":").append(request.getLocalPort()).append(request.getRequestURI()).append(batchRequest.getUrl().getUriValue());
HttpEntity<?> httpEntity = new HttpEntity<>(requestEntry.getRequestResource(), headers);
ResponseEntity<String> response = restTemplate.exchange(uriBuilder.toString(), HttpMethod.POST, httpEntity, String.class);
String json = response.getBody();
ObjectNode resourceNode = (ObjectNode) objectMapper.readTree(json);
addResponse(arrayNode, resourceNode, String.valueOf(response.getStatusCode().value()));
}
use of com.b2international.snowowl.fhir.core.model.BatchRequest in project snow-owl by b2ihealthcare.
the class BundleTest method buildResourceRequestBundle.
@Test
public void buildResourceRequestBundle() throws Exception {
CodeSystem codeSystem = CodeSystem.builder().status(PublicationStatus.ACTIVE).content(CodeSystemContentMode.COMPLETE).build();
ResourceRequestEntry entry = ResourceRequestEntry.builder().request(BatchRequest.createPostRequest("/CodeSystem")).resource(codeSystem).build();
Bundle bundle = Bundle.builder().language("en").total(1).type(BundleType.BATCH).addEntry(entry).addLink("self", "http://localhost:8080/snowowl/CodeSystem").build();
assertEquals("en", bundle.getLanguage().getCodeValue());
assertEquals(1, bundle.getTotal());
assertEquals(BundleType.BATCH.getCode(), bundle.getType());
Link link = bundle.getLink().iterator().next();
assertEquals("self", link.getRelation());
assertEquals("http://localhost:8080/snowowl/CodeSystem", link.getUrl().getUriValue());
Entry bundleEntry = bundle.getItems().iterator().next();
assertTrue(bundleEntry instanceof ResourceRequestEntry);
ResourceRequestEntry requestEntry = (ResourceRequestEntry) bundleEntry;
BatchRequest batchRequest = requestEntry.getRequest();
assertEquals(HttpVerb.POST.getCode(), batchRequest.getMethod());
assertEquals("/CodeSystem", batchRequest.getUrl().getUriValue());
FhirResource readCodeSystem = requestEntry.getRequestResource();
assertTrue(readCodeSystem instanceof CodeSystem);
String bundleString = objectMapper.writeValueAsString(bundle);
Bundle readBundle = objectMapper.readValue(bundleString, Bundle.class);
assertTrue(readBundle.getEntry().iterator().next() instanceof ResourceRequestEntry);
}
use of com.b2international.snowowl.fhir.core.model.BatchRequest in project snow-owl by b2ihealthcare.
the class BundleTest method buildRequestBundle.
@Test
public void buildRequestBundle() throws Exception {
LookupRequest lookupRequest = LookupRequest.builder().code("23245-4").system("http://loinc.org").build();
Json json1 = new Parameters.Json(lookupRequest);
ParametersRequestEntry entry = ParametersRequestEntry.builder().request(BatchRequest.createPostRequest("CodeSystem/$lookup")).resource(new Parameters.Fhir(json1.parameters())).build();
Bundle bundle = Bundle.builder().language("en").total(1).type(BundleType.BATCH).addLink("self", "http://localhost:8080/snowowl/CodeSystem").addEntry(entry).build();
assertEquals("en", bundle.getLanguage().getCodeValue());
assertEquals(1, bundle.getTotal());
assertEquals(BundleType.BATCH.getCode(), bundle.getType());
Link link = bundle.getLink().iterator().next();
assertEquals("self", link.getRelation());
assertEquals("http://localhost:8080/snowowl/CodeSystem", link.getUrl().getUriValue());
Entry bundleEntry = bundle.getItems().iterator().next();
assertTrue(bundleEntry instanceof ParametersRequestEntry);
ParametersRequestEntry requestEntry = (ParametersRequestEntry) bundleEntry;
BatchRequest batchRequest = requestEntry.getRequest();
assertEquals(HttpVerb.POST.getCode(), batchRequest.getMethod());
assertEquals("CodeSystem/$lookup", batchRequest.getUrl().getUriValue());
Fhir requestResource = requestEntry.getRequestResource();
// Back to Domain JSON...
Json json = new Parameters.Json(requestResource);
LookupRequest returnedLookupRequest = objectMapper.convertValue(json, LookupRequest.class);
assertEquals("23245-4", returnedLookupRequest.getCode());
assertEquals("http://loinc.org", returnedLookupRequest.getSystem());
}
Aggregations