package org.akaza.openclinica.controller;
import org.akaza.openclinica.i18n.util.ResourceBundleProvider;
import org.akaza.openclinica.web.restful.ODMClinicaDataResource;
import org.codehaus.jackson.JsonNode;
import org.codehaus.jackson.map.ObjectMapper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.Locale;
@Controller
@RequestMapping(value = "/auth/api/v1/clinicaldata")
@ResponseStatus(value = org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR)
public class ODMClinicalDataController {
protected final Logger logger = LoggerFactory.getLogger(getClass().getName());
@Autowired
@Qualifier("odmClinicalDataRestResource")
ODMClinicaDataResource odmClinicaDataResource;
@RequestMapping(value = "/json/view/{studyOID}/{studySubjectIdentifier}/{studyEventOID}/{formVersionOID}", method = RequestMethod.GET)
public @ResponseBody
JsonNode getClinicalData(
@PathVariable("studyOID") String studyOID,
@PathVariable("formVersionOID") String formVersionOID,
@PathVariable("studyEventOID") String studyEventOID,
@PathVariable("studySubjectIdentifier") String studySubjectIdentifier,
@RequestParam(value = "includeDNs", defaultValue = "n", required = false) String includeDns,
@RequestParam(value = "includeAudits", defaultValue = "n", required = false) String includeAudits,
HttpServletRequest request) throws Exception {
ResourceBundleProvider.updateLocale(new Locale("en_US"));
String result = odmClinicaDataResource.getODMClinicaldata(
studyOID,formVersionOID,studyEventOID,studySubjectIdentifier,includeDns,includeAudits,request);
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readTree(result);
}
}