Skip to content

Commit 3f71433

Browse files
authored
Merge pull request #272 from ao508/molecular-accession-number
Molecular accession number
2 parents 2f3c708 + db57bc3 commit 3f71433

File tree

10 files changed

+737
-334
lines changed

10 files changed

+737
-334
lines changed

frontend/src/generated/graphql.ts

Lines changed: 115 additions & 86 deletions
Large diffs are not rendered by default.

frontend/src/pages/samples/SamplesPage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import { NoteAddOutlined } from "@material-ui/icons";
3636
const QUERY_NAME = "dashboardSamples";
3737
const INITIAL_SORT_FIELD_NAME = "importDate";
3838
const RECORD_NAME = "samples";
39-
const PHI_FIELDS = new Set(["sequencingDate"]);
39+
const PHI_FIELDS = new Set(["sequencingDate", "molecularAccessionNumber"]);
4040

4141
export function SamplesPage() {
4242
const [userSearchVal, setUserSearchVal] = useState("");

frontend/src/pages/samples/config.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,11 @@ export const sampleColDefs: Array<ColDef<DashboardSample>> = [
149149
headerName: "Sequencing Date",
150150
...getPhiColDefProps({ widthSize: 260 }),
151151
},
152+
{
153+
field: "molecularAccessionNumber",
154+
headerName: "Molecular Accession Number",
155+
...getPhiColDefProps({ widthSize: 260 }),
156+
},
152157
{
153158
field: "cmoPatientId",
154159
headerName: "CMO Patient ID",

graphql-server/src/env/application.properties.EXAMPLE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ databricks_phi_id_mapping_table=
4949
databricks_seq_dates_by_patient_table=
5050
databricks_seq_dates_by_sample_table=
5151
databricks_cdsi_demographics_table=
52+
databricks_phi_mol_accession_table=
5253

5354
[ccs]
5455
blocked_cohort_ids=

graphql-server/src/generated/graphql.ts

Lines changed: 115 additions & 86 deletions
Large diffs are not rendered by default.

graphql-server/src/schemas/queries/samples.ts

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
DashboardSample,
44
InputMaybe,
55
QueryDashboardSamplesArgs,
6-
SeqDateBySampleId,
6+
SeqDateAccessionBySampleId,
77
} from "../../generated/graphql";
88
import { OncotreeCache, PatientDemographicsCache } from "../../utils/cache";
99
import { neo4jDriver } from "../../utils/servers";
@@ -215,7 +215,7 @@ export function buildSamplesQueryBody({
215215
apoc.coll.toSet(
216216
[sid IN apoc.coll.sortMaps(sampleIdsList, "importDate")
217217
WHERE sid.cmoSampleName <> latestSm.cmoSampleName AND sid.cmoSampleName <> ""
218-
| sid.cmoSampleName + " (" + sid.importDate + ")"
218+
| sid.cmoSampleName + " (" + apoc.date.format(sid.importDate, 'ms', 'yyyy-MM-dd') + ")"
219219
]
220220
),
221221
", ") AS historicalCmoSampleNames
@@ -655,33 +655,42 @@ export async function querySeqDatesByDmpSampleId(dmpSampleIds: string[]) {
655655
.join(",");
656656
const query = `
657657
SELECT
658-
DMP_SAMPLE_ID,
659-
SEQUENCING_DATE
658+
${props.databricks_seq_dates_by_sample_table}.DMP_SAMPLE_ID AS DMP_SAMPLE_ID,
659+
${props.databricks_seq_dates_by_sample_table}.SEQUENCING_DATE AS SEQUENCING_DATE,
660+
${props.databricks_phi_mol_accession_table}.PDRX_ACCESSION_NO AS MOLECULAR_ACCESSION_NUMBER
660661
FROM
661662
${props.databricks_seq_dates_by_sample_table}
663+
JOIN
664+
${props.databricks_phi_mol_accession_table} ON ${props.databricks_seq_dates_by_sample_table}.DMP_SAMPLE_ID = ${props.databricks_phi_mol_accession_table}.SAMPLE_ID
662665
WHERE
663-
DMP_SAMPLE_ID IN (${dmpSampleIdsList})
666+
${props.databricks_seq_dates_by_sample_table}.DMP_SAMPLE_ID IN (${dmpSampleIdsList})
664667
`;
665-
return await queryDatabricks<SeqDateBySampleId>(query);
668+
return await queryDatabricks<SeqDateAccessionBySampleId>(query);
666669
}
667670

668671
export function mapPhiToSamplesData({
669672
samplesData,
670673
seqDatesBySampleId,
671674
}: {
672675
samplesData: Array<DashboardSample>;
673-
seqDatesBySampleId: Array<SeqDateBySampleId>;
676+
seqDatesBySampleId: Array<SeqDateAccessionBySampleId>;
674677
}): Array<DashboardSample> {
675678
const seqDateBySampleIdMap: Record<string, string> = {};
679+
const molAccessionBySampleIdMap: Record<string, string> = {};
676680
seqDatesBySampleId.forEach((seqDate) => {
677681
seqDateBySampleIdMap[seqDate.DMP_SAMPLE_ID] = seqDate.SEQUENCING_DATE;
682+
molAccessionBySampleIdMap[seqDate.DMP_SAMPLE_ID] =
683+
seqDate.MOLECULAR_ACCESSION_NUMBER ?? "";
678684
});
679685
return samplesData.map((sample) => {
680686
return {
681687
...sample,
682688
sequencingDate: sample.primaryId
683689
? seqDateBySampleIdMap[sample.primaryId]
684690
: null,
691+
molecularAccessionNumber: sample.primaryId
692+
? molAccessionBySampleIdMap[sample.primaryId]
693+
: null,
685694
};
686695
});
687696
}

graphql-server/src/utils/constants.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ export const props = {
5757
databricks_cdsi_demographics_table: properties.get(
5858
"databricks.databricks_cdsi_demographics_table"
5959
),
60+
databricks_phi_mol_accession_table: properties.get(
61+
"databricks.databricks_phi_mol_accession_table"
62+
),
6063

6164
ccs_blocked_cohort_ids: properties.get("ccs.blocked_cohort_ids"),
6265
};

graphql-server/src/utils/typeDefs.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ const SAMPLE_FIELDS = `
106106
107107
# Databricks
108108
sequencingDate: String
109+
molecularAccessionNumber: String
109110
race: String
110111
111112
# results total
@@ -198,9 +199,10 @@ const QUERY_RESULT_TYPEDEFS = gql`
198199
ANCHOR_ONCOTREE_CODE: String!
199200
}
200201
201-
type SeqDateBySampleId {
202+
type SeqDateAccessionBySampleId {
202203
DMP_SAMPLE_ID: String!
203204
SEQUENCING_DATE: String!
205+
MOLECULAR_ACCESSION_NUMBER: String
204206
}
205207
206208
type TempoCohortSample {

0 commit comments

Comments
 (0)