Skip to content

Commit

Permalink
feat(anni): contract redundant external data
Browse files Browse the repository at this point in the history
  • Loading branch information
tamslo committed Aug 5, 2024
1 parent ac1f39e commit 9efb01f
Showing 1 changed file with 28 additions and 3 deletions.
31 changes: 28 additions & 3 deletions anni/src/database/helpers/contraction-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,12 +93,37 @@ function contractByLookupkey(
});
}

function contractRedundantExternalData(
drugsWithGuidelines: Array<DrugWithGuidelines>,
): Array<DrugWithGuidelines> {
return drugsWithGuidelines.map(({ drug, guidelines }) => {
return {
drug,
guidelines: guidelines.map((guideline) => {
const informationMap = new Map<string, IExternalData>();
guideline.externalData.forEach((externalData) => {
const key = externalDataInformationKey(externalData);
if (!informationMap.has(key)) {
informationMap.set(key, externalData);
}
});
return {
...guideline,
externalData: Array.from(informationMap.values()),
};
}),
};
});
}

export function contractGuidelines(
drugsWithGuidelines: Array<DrugWithGuidelines>,
source: string,
): Array<DrugWithGuidelines> {
return contractByPhenotypeAndInformation(
contractByLookupkey(drugsWithGuidelines),
source,
return contractRedundantExternalData(
contractByPhenotypeAndInformation(
contractByLookupkey(drugsWithGuidelines),
source,
),
);
}

0 comments on commit 9efb01f

Please sign in to comment.