def parse_panel_app_panel(panel_info, hgnc_map, institute='cust000', panel_type='clinical'):
    """Parse a PanelApp panel
    
    Args:
        panel_info(dict)
        hgnc_map(dict): Map from symbol to hgnc ids
        institute(str)
        panel_type(str)
    
    Returns:
        gene_panel(dict)
    """
    date_format = "%Y-%m-%dT%H:%M:%S.%f"
    
    gene_panel = {}
    gene_panel['version'] = float(panel_info['version'])
    gene_panel['date'] = get_date(panel_info['Created'][:-1], date_format=date_format)
    gene_panel['display_name'] = panel_info['SpecificDiseaseName']
    gene_panel['institute'] = institute
    gene_panel['panel_type'] = panel_type
    
    LOG.info("Parsing panel %s", gene_panel['display_name'])
    
    gene_panel['genes'] = []
    
    nr_low_confidence = 1
    nr_genes = 0
    for nr_genes, gene in enumerate(panel_info['Genes'],1):
        gene_info = parse_panel_app_gene(gene, hgnc_map)
        if not gene_info:
            nr_low_confidence += 1
            continue
        gene_panel['genes'].append(gene_info)
    
    LOG.info("Number of genes in panel %s", nr_genes)
    LOG.info("Number of low confidence genes in panel %s", nr_low_confidence)
    
    return gene_panel
Parse a PanelApp panel
    
    Args:
        panel_info(dict)
        hgnc_map(dict): Map from symbol to hgnc ids
        institute(str)
        panel_type(str)
    
    Returns:
        gene_panel(dict)