org.ohdsi.webapi.test.CohortAnalysisServiceIT.java Source code

Java tutorial

Introduction

Here is the source code for org.ohdsi.webapi.test.CohortAnalysisServiceIT.java

Source

/**
 * The contents of this file are subject to the Regenstrief Public License
 * Version 1.0 (the "License"); you may not use this file except in compliance with the License.
 * Please contact Regenstrief Institute if you would like to obtain a copy of the license.
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) Regenstrief Institute.  All Rights Reserved.
 */
package org.ohdsi.webapi.test;

import java.util.Arrays;

import org.junit.Test;
import org.ohdsi.webapi.cohortanalysis.CohortAnalysisTask;
import org.ohdsi.webapi.job.JobExecutionResource;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.util.Assert;

/**
 *
 */
public class CohortAnalysisServiceIT extends WebApiIT {

    @Value("${cohortanalysis.endpoint.job}")
    private String endpointCohortAnalysis;

    @Test //may not want to always run analyses. TODO inject criteria from properties
    public void createAnalysis() throws Exception {
        CohortAnalysisTask task = new CohortAnalysisTask();
        //set attributes
        task.setAnalysisIds(Arrays.asList("0"));
        task.setCohortDefinitionIds(Arrays.asList("1"));
        final ResponseEntity<JobExecutionResource> postEntity = getRestTemplate()
                .postForEntity(this.endpointCohortAnalysis, task, JobExecutionResource.class);//TODO 409 or other errors prevent deserialization...
        assertOk(postEntity);
        Thread.sleep(10000);
        final JobExecutionResource postExecution = postEntity.getBody();

    }

    private void assertOk(final ResponseEntity<?> entity) {
        Assert.state(entity.getStatusCode() == HttpStatus.OK);
    }

    private void assertJobExecution(final JobExecutionResource execution) {
        Assert.state(execution != null);
        Assert.state(execution.getExecutionId() != null);
        Assert.state(execution.getJobInstanceResource().getInstanceId() != null);
    }
}