|
9 | 9 | QueryDashboardPatientsArgs, |
10 | 10 | QueryDashboardRequestsArgs, |
11 | 11 | QueryDashboardSamplesArgs, |
| 12 | + SeqDateAccessionBySampleId, |
12 | 13 | TempoCohortRequestInput, |
13 | 14 | } from "../generated/graphql"; |
14 | 15 | import { props } from "../utils/constants"; |
@@ -359,6 +360,34 @@ export async function buildCustomSchema(ogm: OGM) { |
359 | 360 | PATIENT_DEMOGRAPHICS_CACHE_KEY |
360 | 361 | ) as PatientDemographicsCache; |
361 | 362 |
|
| 363 | + // if phi enabled, query for possible mapped sample ids to add to search vals list while removing phi searchables from search vals list |
| 364 | + let dmpSampleSeqDateAccessions: Array<SeqDateAccessionBySampleId> = []; |
| 365 | + if (searchVals && canSearchPhiData({ phiEnabled, searchVals })) { |
| 366 | + dmpSampleSeqDateAccessions = await querySeqDatesByDmpSampleId( |
| 367 | + searchVals |
| 368 | + ); |
| 369 | + let mappedSampleIds: string[] = []; |
| 370 | + let toRemove: string[] = []; |
| 371 | + dmpSampleSeqDateAccessions.forEach((v) => { |
| 372 | + if ( |
| 373 | + v.DMP_SAMPLE_ID && |
| 374 | + searchVals && |
| 375 | + !searchVals.includes(v.DMP_SAMPLE_ID) |
| 376 | + ) { |
| 377 | + mappedSampleIds.push(v.DMP_SAMPLE_ID); |
| 378 | + } |
| 379 | + if ( |
| 380 | + v.MOLECULAR_ACCESSION_NUMBER && |
| 381 | + searchVals && |
| 382 | + searchVals.includes(v.MOLECULAR_ACCESSION_NUMBER) |
| 383 | + ) { |
| 384 | + toRemove.push(v.MOLECULAR_ACCESSION_NUMBER); |
| 385 | + } |
| 386 | + }); |
| 387 | + searchVals.push(...mappedSampleIds); |
| 388 | + searchVals = searchVals.filter((val) => !toRemove.includes(val)); |
| 389 | + } |
| 390 | + |
362 | 391 | const addlOncotreeCodes = getAddlOtCodesMatchingCtOrCtdVals({ |
363 | 392 | searchVals, |
364 | 393 | oncotreeCache, |
|
0 commit comments