Skip to content

Commit

Permalink
feat: update export summaries with NTag component (#3831) (#3843)
Browse files Browse the repository at this point in the history
Co-authored-by: Fran McDade <[email protected]>
  • Loading branch information
frano-m and Fran McDade authored Dec 21, 2023
1 parent eee945a commit f16c9ef
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 18 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
import { stringifyValues } from "@clevercanary/data-explorer-ui/lib/common/utils";
import { LABEL } from "@clevercanary/data-explorer-ui/lib/apis/azul/common/entities";
import { listSelectedTermsOfFacet } from "@clevercanary/data-explorer-ui/lib/components/Export/components/ExportSummary/common/utils";
import { SummaryValue } from "@clevercanary/data-explorer-ui/lib/components/Export/components/ExportSummary/components/ExportSelectedDataSummary/exportSelectedDataSummary";
import { NTagCell } from "@clevercanary/data-explorer-ui/lib/components/Index/components/NTagCell/nTagCell";
import {
displaySummaryTerms,
listSelectedTermsOfFacet,
} from "@clevercanary/data-explorer-ui/lib/components/Export/components/ExportSummary/common/utils";
import { FileFacet } from "@clevercanary/data-explorer-ui/lib/hooks/useFileManifest/common/entities";
FileFacet,
Term,
} from "@clevercanary/data-explorer-ui/lib/hooks/useFileManifest/common/entities";
import { formatCountSize } from "@clevercanary/data-explorer-ui/lib/utils/formatCountSize";
import { ANVIL_CMG_CATEGORY_KEY } from "../../../../../../site-config/anvil-cmg/category";
import { SummaryResponse } from "../../../../../apis/azul/anvil-cmg/common/responses";
import { METADATA_KEY } from "../../../../../components/Index/common/entities";
import { getPluralizedMetadataLabel } from "../../../../../components/Index/common/indexTransformer";
import { DEFAULT_SUMMARY } from "./constants";
import { FileSummary, SUMMARY } from "./entities";

Expand Down Expand Up @@ -52,7 +56,7 @@ export function bindFileSummaryResponse(
export function mapExportSummary(
filesFacets: FileFacet[],
summary: SummaryResponse | undefined
): Map<SUMMARY, string> {
): Map<SUMMARY, SummaryValue> {
const fileSummary = bindFileSummaryResponse(summary);
// Grab summary values.
const biosampleCount = fileSummary.biosampleCount;
Expand All @@ -64,17 +68,38 @@ export function mapExportSummary(
ANVIL_CMG_CATEGORY_KEY.DONOR_ORGANISM_TYPE
);
// Map summary by summary key or display text.
const summaryBySummaryKey = new Map<SUMMARY, string>();
const summaryBySummaryKey = new Map<SUMMARY, SummaryValue>();
summaryBySummaryKey.set(
SUMMARY.BIOSAMPLE_COUNT,
formatCountSize(biosampleCount)
); // BioSamples
summaryBySummaryKey.set(SUMMARY.DONOR_COUNT, formatCountSize(donorCount)); // Donors
summaryBySummaryKey.set(
SUMMARY.ORGANISM_TYPE,
displaySummaryTerms(organismType)
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.ORGANISM_TYPE),
values: getTermValues(organismType),
})
); // Organism Types
summaryBySummaryKey.set(SUMMARY.FILE_COUNT, formatCountSize(fileCount)); // Files
summaryBySummaryKey.set(SUMMARY.FILE_FORMATS, stringifyValues(fileFormats)); // Formats
summaryBySummaryKey.set(
SUMMARY.FILE_FORMATS,
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.FILE_FORMAT),
values: fileFormats,
})
); // Formats
return summaryBySummaryKey;
}

/**
* Returns term values from the given terms.
* @param terms - Terms.
* @returns term values.
*/
function getTermValues(terms: Term[]): string[] {
if (!terms || !terms.length) {
return [LABEL.UNSPECIFIED];
}
return terms.map(({ name }) => name.trim());
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
import { LABEL } from "@clevercanary/data-explorer-ui/lib/apis/azul/common/entities";
import {
displaySummaryTerms,
listSelectedTermsOfFacet,
} from "@clevercanary/data-explorer-ui/lib/components/Export/components/ExportSummary/common/utils";
import { FileFacet } from "@clevercanary/data-explorer-ui/lib/hooks/useFileManifest/common/entities";
import { SummaryValue } from "@clevercanary/data-explorer-ui/lib/components/Export/components/ExportSummary/components/ExportSelectedDataSummary/exportSelectedDataSummary";
import { NTagCell } from "@clevercanary/data-explorer-ui/lib/components/Index/components/NTagCell/nTagCell";
import {
FileFacet,
Term,
} from "@clevercanary/data-explorer-ui/lib/hooks/useFileManifest/common/entities";
import { formatCountSize } from "@clevercanary/data-explorer-ui/lib/utils/formatCountSize";
import { formatFileSize } from "@clevercanary/data-explorer-ui/lib/utils/formatFileSize";
import { HCA_DCP_CATEGORY_KEY } from "../../../../../../site-config/hca-dcp/category";
import { SummaryResponse } from "../../../../../apis/azul/hca-dcp/common/responses";
import { METADATA_KEY } from "../../../../../components/Index/common/entities";
import { getPluralizedMetadataLabel } from "../../../../../components/Index/common/indexTransformer";
import { DEFAULT_SUMMARY } from "./constants";
import { FileSummary, SUMMARY } from "./entities";

Expand Down Expand Up @@ -85,7 +93,7 @@ export function bindFileSummaryResponse(
export function mapExportSummary(
filesFacets: FileFacet[],
summary: SummaryResponse | undefined
): Map<SUMMARY | string, string> {
): Map<SUMMARY | string, SummaryValue> {
const fileSummary = bindFileSummaryResponse(summary);
// Grab summary values.
const donorCount = fileSummary.donorCount;
Expand Down Expand Up @@ -124,7 +132,7 @@ export function mapExportSummary(
const totalFileSize = fileSummary.totalFileSize;

// Map summary by summary key or display text.
const summaryBySummaryKey = new Map<SUMMARY | string, string>();
const summaryBySummaryKey = new Map<SUMMARY | string, SummaryValue>();
summaryBySummaryKey.set(
SUMMARY.TOTAL_CELL_COUNT,
formatCountSize(totalCellCount)
Expand All @@ -137,27 +145,65 @@ export function mapExportSummary(
summaryBySummaryKey.set(SUMMARY.PROJECT_COUNT, formatCountSize(projectCount));
summaryBySummaryKey.set(
SUMMARY.GENUS_SPECIES,
displaySummaryTerms(genusSpecies)
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.SPECIES),
values: getTermValues(genusSpecies),
})
);
summaryBySummaryKey.set(SUMMARY.DONOR_COUNT, formatCountSize(donorCount));
summaryBySummaryKey.set(
SUMMARY.DONOR_DISEASE,
displaySummaryTerms(donorDisease)
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.DISEASE_STATUS_DONOR),
values: getTermValues(donorDisease),
})
); // Disease Status (Donor)
summaryBySummaryKey.set(
SUMMARY.SPECIMEN_COUNT,
formatCountSize(specimenCount)
);
summaryBySummaryKey.set(
SUMMARY.SPECIMEN_DISEASE,
displaySummaryTerms(specimenDisease)
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.DISEASE_STATUS_SPECIMEN),
values: getTermValues(specimenDisease),
})
); // Disease Status (Specimen)
summaryBySummaryKey.set(SUMMARY.ORGAN, displaySummaryTerms(organ)); // Anatomical Entity
summaryBySummaryKey.set(SUMMARY.ORGAN_PART, displaySummaryTerms(organPart));
summaryBySummaryKey.set(
SUMMARY.ORGAN,
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.ANATOMICAL_ENTITY),
values: getTermValues(organ),
})
); // Anatomical Entity
summaryBySummaryKey.set(
SUMMARY.ORGAN_PART,
NTagCell({
label: getPluralizedMetadataLabel(METADATA_KEY.ORGAN_PART),
values: getTermValues(organPart),
})
);
summaryBySummaryKey.set(
SUMMARY.LIBRARY_CONSTRUCTION_APPROACH,
displaySummaryTerms(libraryConstructionApproach)
NTagCell({
label: getPluralizedMetadataLabel(
METADATA_KEY.LIBRARY_CONSTRUCTION_APPROACH
),
values: getTermValues(libraryConstructionApproach),
})
); // Library Construction Method
summaryBySummaryKey.set(SUMMARY.PAIRED_END, displaySummaryTerms(pairedEnd)); // Paired End
return summaryBySummaryKey;
}

/**
* Returns term values from the given terms.
* @param terms - Terms.
* @returns term values.
*/
function getTermValues(terms: Term[]): string[] {
if (!terms || !terms.length) {
return [LABEL.UNSPECIFIED];
}
return terms.map(({ name }) => name.trim());
}

0 comments on commit f16c9ef

Please sign in to comment.