@RouteMapping(method = RouteMethod.GET)
  public Handler<RoutingContext> getAll() {
    return ctx -> {
      JDBCClient client = AppUtil.getJdbcClient(Vertx.vertx());

      client.getConnection(
          conn -> {
            if (conn.failed()) {
              LOGGER.error(conn.cause().getMessage(), conn.cause());
              ctx.fail(400);
            }

            SQLUtil.query(
                conn.result(),
                "select * from patient",
                rs -> {
                  JsonArray patients = new JsonArray();
                  for (JsonObject row : rs.getRows()) {
                    patients.add(row);
                  }

                  SQLUtil.close(conn.result());
                  ctx.response().end(patients.encode());
                });
          });
    };
  }
  @RouteMapping(value = "/:id", method = RouteMethod.GET)
  public Handler<RoutingContext> fetch() {
    return ctx -> {
      String id = ctx.request().getParam("id");
      if (StringUtils.isBlank(id)) {
        LOGGER.error("ID is blank");
        JsonObject error = new JsonObject();
        error.put("error", "ID should not be blank");
        ctx.response().setStatusCode(205).end(error.encode());
      }

      JDBCClient client = AppUtil.getJdbcClient(Vertx.vertx());
      client.getConnection(
          conn -> {
            if (conn.failed()) {
              LOGGER.error(conn.cause().getMessage(), conn.cause());
              ctx.fail(400);
            }

            SQLUtil.query(
                conn.result(),
                "select id, title, description from item where id = ?",
                new JsonArray().add(Integer.valueOf(id)),
                rs -> {
                  SQLUtil.close(conn.result());
                  if (rs.getRows().size() == 1) {
                    ctx.response().end(rs.getRows().get(0).encode());
                  } else {
                    JsonObject error = new JsonObject();
                    error.put("error", "Record not found");
                    ctx.response().setStatusCode(205).end(error.encode());
                  }
                });
          });
    };
  }