forked from p8iqkyhxf/MedShare-MicroService
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
2.2 KiB
68 lines
2.2 KiB
package net.mydreamy.ehr.rws;
|
|
|
|
import com.auth0.jwt.JWT;
|
|
import com.auth0.jwt.JWTVerifier;
|
|
import com.auth0.jwt.algorithms.Algorithm;
|
|
import com.auth0.jwt.exceptions.JWTVerificationException;
|
|
import com.auth0.jwt.interfaces.DecodedJWT;
|
|
import javax.ejb.EJB;
|
|
import javax.ws.rs.GET;
|
|
import javax.ws.rs.Path;
|
|
import javax.ws.rs.Produces;
|
|
import javax.ws.rs.core.Context;
|
|
import javax.ws.rs.core.UriInfo;
|
|
|
|
import net.mydreamy.ehr.ejb.QueryFourBean;
|
|
import java.io.UnsupportedEncodingException;
|
|
import javax.ejb.Stateless;
|
|
import javax.ws.rs.QueryParam;
|
|
|
|
@Stateless
|
|
@Path("queryfour")
|
|
public class QueryFour {
|
|
|
|
@Context
|
|
private UriInfo context;
|
|
@EJB
|
|
QueryFourBean bean;
|
|
/**
|
|
* Default constructor.
|
|
*/
|
|
public QueryFour() {
|
|
// TODO Auto-generated constructor stub
|
|
}
|
|
|
|
/**
|
|
* Retrieves representation of an instance of QueryFour
|
|
* @param token
|
|
* @return an instance of String
|
|
*/
|
|
@GET
|
|
@Produces("application/json")
|
|
public String getHtml(@QueryParam("token") String token) {
|
|
// TODO return proper representation object
|
|
try {
|
|
Algorithm algorithm = Algorithm.HMAC256("secret");
|
|
JWTVerifier verifier = JWT.require(algorithm)
|
|
.withIssuer("auth0")
|
|
.build(); //Reusable verifier instance
|
|
DecodedJWT jwt = verifier.verify(token);
|
|
} catch (UnsupportedEncodingException exception){
|
|
//UTF-8 encoding not supported
|
|
} catch (JWTVerificationException exception){
|
|
//Invalid signature/claims
|
|
return "";
|
|
}
|
|
|
|
String sql = "SELECT new net.mydreamy.ehr.result.QueryFourListResult(p.gender, COUNT(c.patientID.pid)) " +
|
|
"FROM Clinicaldetection c, Patient p " +
|
|
"WHERE c.patientID.pid = p.pid " +
|
|
"AND c.times = \'1\' " +
|
|
"AND c.hBsAg = \'0\' " +
|
|
"AND c.patientID.pid IN ( SELECT cl.patientID.pid FROM Clinicaldetection cl " +
|
|
"WHERE cl.times = \'3\' " +
|
|
"AND cl.antiHBs = \'0\' ) " +
|
|
"GROUP BY p.gender ";
|
|
return bean.query(sql);
|
|
}
|
|
} |