Skip to content

Commit

Permalink
Make Types Common (draft)
Browse files Browse the repository at this point in the history
  • Loading branch information
demariadaniel committed Sep 25, 2023
1 parent 6facd13 commit de3714b
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 22 deletions.
22 changes: 22 additions & 0 deletions src/clinical/clinical-entities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -152,3 +152,25 @@ export interface CompletionDisplayRecord extends CompletionStats {
}

export type CoreClinicalEntities = keyof CoreCompletionFields;

export type CoreClinicalSchemaName =
| ClinicalEntitySchemaNames.DONOR
| ClinicalEntitySchemaNames.PRIMARY_DIAGNOSIS
| ClinicalEntitySchemaNames.TREATMENT
| ClinicalEntitySchemaNames.FOLLOW_UP
| ClinicalEntitySchemaNames.SPECIMEN;

export const schemaNameToCoreCompletenessStat: Record<
CoreClinicalSchemaName,
keyof CoreCompletionFields
> = {
[ClinicalEntitySchemaNames.DONOR]: 'donor',
[ClinicalEntitySchemaNames.PRIMARY_DIAGNOSIS]: 'primaryDiagnosis',
[ClinicalEntitySchemaNames.TREATMENT]: 'treatments',
[ClinicalEntitySchemaNames.FOLLOW_UP]: 'followUps',
[ClinicalEntitySchemaNames.SPECIMEN]: 'specimens',
};

export const coreClinicalSchemaNamesSet = new Set<CoreClinicalSchemaName>(
Object.keys(schemaNameToCoreCompletenessStat) as CoreClinicalSchemaName[],
);
25 changes: 3 additions & 22 deletions src/submission/submission-to-clinical/stat-calculator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ import {
CompletionStats,
CoreClinicalEntities,
CoreCompletionFields,
CoreClinicalSchemaName,
coreClinicalSchemaNamesSet,
schemaNameToCoreCompletenessStat,
Donor,
} from '../../clinical/clinical-entities';
import { ClinicalEntitySchemaNames } from '../../common-model/entities';
Expand All @@ -39,13 +42,6 @@ type ForceRecaculateFlags = {
recalcEvenIfOverridden?: boolean; // used to force recalculate if previously overriden
};

type CoreClinicalSchemaName =
| ClinicalEntitySchemaNames.DONOR
| ClinicalEntitySchemaNames.PRIMARY_DIAGNOSIS
| ClinicalEntitySchemaNames.TREATMENT
| ClinicalEntitySchemaNames.FOLLOW_UP
| ClinicalEntitySchemaNames.SPECIMEN;

const getCoreCompletionPercentage = (fields: CoreCompletionFields) =>
mean(Object.values(fields || {})) || 0;

Expand All @@ -54,21 +50,6 @@ const getCoreCompletionDate = (donor: Donor, percentage: number) =>
? donor.completionStats?.coreCompletionDate || donor.updatedAt || new Date().toDateString()
: undefined;

const schemaNameToCoreCompletenessStat: Record<
CoreClinicalSchemaName,
keyof CoreCompletionFields
> = {
[ClinicalEntitySchemaNames.DONOR]: 'donor',
[ClinicalEntitySchemaNames.PRIMARY_DIAGNOSIS]: 'primaryDiagnosis',
[ClinicalEntitySchemaNames.TREATMENT]: 'treatments',
[ClinicalEntitySchemaNames.FOLLOW_UP]: 'followUps',
[ClinicalEntitySchemaNames.SPECIMEN]: 'specimens',
};

const coreClinicalSchemaNamesSet = new Set<CoreClinicalSchemaName>(
Object.keys(schemaNameToCoreCompletenessStat) as CoreClinicalSchemaName[],
);

const getEmptyCoreStats = (): CompletionStats => ({
coreCompletion: {
donor: 0,
Expand Down

0 comments on commit de3714b

Please sign in to comment.