@Override
public QueryResult<Panel> create(String studyStr, Panel panel, QueryOptions options, String sessionId)
throws CatalogException {
String userId = userManager.getUserId(sessionId);
Study study = catalogManager.getStudyManager().resolveId(studyStr, userId);
authorizationManager.checkStudyPermission(study.getUid(), userId, StudyAclEntry.StudyPermissions.WRITE_PANELS);
ParamUtils.checkAlias(panel.getDiseasePanel().getId(), "id");
panel.getDiseasePanel().setName(ParamUtils.defaultString(panel.getDiseasePanel().getName(), panel.getDiseasePanel().getId()));
panel.setRelease(studyManager.getCurrentRelease(study, userId));
panel.setVersion(1);
panel.setAuthor(ParamUtils.defaultString(panel.getAuthor(), ""));
panel.getDiseasePanel().setCreationDate(TimeUtils.getTime());
panel.getDiseasePanel().setModificationDate(TimeUtils.getTime());
panel.setStatus(new Status());
panel.getDiseasePanel().setCategories(ParamUtils.defaultObject(panel.getDiseasePanel().getCategories(), Collections.emptyList()));
panel.getDiseasePanel().setTags(ParamUtils.defaultObject(panel.getDiseasePanel().getTags(), Collections.emptyList()));
panel.getDiseasePanel().setDescription(ParamUtils.defaultString(panel.getDiseasePanel().getDescription(), ""));
panel.getDiseasePanel().setPhenotypes(ParamUtils.defaultObject(panel.getDiseasePanel().getPhenotypes(), Collections.emptyList()));
panel.getDiseasePanel().setVariants(ParamUtils.defaultObject(panel.getDiseasePanel().getVariants(), Collections.emptyList()));
panel.getDiseasePanel().setRegions(ParamUtils.defaultObject(panel.getDiseasePanel().getRegions(), Collections.emptyList()));
panel.getDiseasePanel().setGenes(ParamUtils.defaultObject(panel.getDiseasePanel().getGenes(), Collections.emptyList()));
panel.getDiseasePanel().setAttributes(ParamUtils.defaultObject(panel.getDiseasePanel().getAttributes(), Collections.emptyMap()));
panel.setUuid(UUIDUtils.generateOpenCGAUUID(UUIDUtils.Entity.PANEL));
fillDefaultStats(panel);
options = ParamUtils.defaultObject(options, QueryOptions::new);
return panelDBAdaptor.insert(study.getUid(), panel, options);
}