import { Component, Show } from "solid-js"; import { MetadataContainer, SampleContainer } from "../utils/api.ts"; import { VcfRecord } from "@molgenis/vip-report-vcf"; import { DecisionTree, Item, Sample } from "@molgenis/vip-report-api"; import { VariantInfoTable } from "./VariantInfoTable.tsx"; import { VariantConsequenceTable } from "./VariantConsequenceTable.tsx"; import { VariantTable } from "./VariantTable.tsx"; import { DecisionTreePath } from "./tree/DecisionTreePath.tsx"; import { getDecisionTreePath, getSampleTreePath } from "../utils/decisionTree.ts"; import { VariantType } from "../utils/variantType.ts"; import { getPedigreeSamples } from "../utils/sample.ts"; import { ConfigJson } from "../types/config"; import { VariantGenotypeTable } from "./VariantGenotypeTable.tsx"; import { initConfig } from "../utils/config/config.ts"; export const VariantConsequenceContainer: Component<{ config: ConfigJson; metadata: MetadataContainer; variantType: VariantType; consequenceId: number; record: Item; sample: SampleContainer | null; decisionTree: DecisionTree | null; sampleTree: DecisionTree | null; }> = (props) => { const config = () => initConfig(props.config, props.variantType, props.metadata, props.sample); const samples = (): Item[] => (props.sample ? getPedigreeSamples(props.sample) : []); const hasDecisionTreePathMeta = () => Object.values(props.metadata.records.info.CSQ?.nested?.items || {}).some((csq) => csq.id === "VIPP"); const hasSampleTreePathMeta = () => props.metadata.records.format.VIPP_S != null; const showSampleTree = () => { if (props.sample) { const treePath = getSampleTreePath(props.metadata.records, props.sample, props.record, props.consequenceId); return treePath !== undefined && treePath.length > 0; } return false; }; return ( <>

Info

Consequence

Record

{(samplesCells) => (

Samples

)}
{props.decisionTree !== null && hasDecisionTreePathMeta() && (

Variant classification tree path

)} {showSampleTree() && props.sampleTree !== null && hasSampleTreePathMeta() && props.sample && (

Sample classification tree path

)}
); };