package water.api; import hex.CoxPH.CoxPHModel; import water.*; import water.fvec.Frame; import water.fvec.Vec; import water.util.RString; public class CoxPHSurvfit extends Request2 { static final int API_WEAVER = 1; // This file has auto-gen'd doc & json fields static public DocGen.FieldDoc[] DOC_FIELDS; // Initialized from Auto-Gen code. @API(help = "Model", required = true, filter = Default.class) public Key model; @API(help="New X Value", required=false, filter=Default.class) double x_new = Double.NaN; @API(help = "Survival Curve", filter = Default.class) public Key survfit; public static String link(Key k, double x_new, String content) { RString rs = new RString("<a href='CoxPHSurvfit.query?model=%$key&x_new=%x_new'>%content</a>"); rs.replace("key", k.toString()); rs.replace("x_new", x_new); rs.replace("content", content); return rs.toString(); } @Override protected Response serve() { try { if (model == null) throw new IllegalArgumentException("Model is required to perform validation!"); CoxPHModel m = DKV.get(model).get(); if (survfit == null) survfit = Key.make("__Survfit_" + Key.make()); m.makeSurvfit(survfit, x_new); return Inspect2.redirect(this, survfit.toString()); } catch (Throwable t) { return Response.error(t); } } }