Skip to content

Commit d92f99e

Browse files
committed
error message in the extractor has been updated
1 parent f636abe commit d92f99e

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

src/extractors/CSVCancerDiseaseStatusExtractor.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class CSVCancerDiseaseStatusExtractor {
1616
logger.debug('Reformatting disease status data from CSV into template format');
1717
// Check the shape of the data
1818
arrOfDiseaseStatusData.forEach((record) => {
19-
if (!(record.mrn && record.conditionId && record.diseaseStatusCode && record.dateOfObservation)) {
19+
if (!record.mrn || !record.conditionId || (!record.diseaseStatusCode && record.observationStatus !== 'not-evaluated') || !record.dateOfObservation) {
2020
throw new Error('DiseaseStatusData missing an expected property: mrn, conditionId, diseaseStatusCode, and dateOfObservation are required.');
2121
}
2222
});

test/extractors/CSVCancerDiseaseStatusExtractor.test.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,13 @@ describe('CSVCancerDiseaseStatusExtractor', () => {
3636
// Only including required properties is valid
3737
expect(csvCancerDiseaseStatusExtractor.joinAndReformatData(localData)).toEqual(expect.anything());
3838

39+
// Excluding diseaseStatusCode with an obseervationStatus of 'not-evaluated' should be valid
40+
localData[0].observationStatus = 'not-evaluated';
41+
localData[0].diseaseStatusCode = '';
42+
expect(csvCancerDiseaseStatusExtractor.joinAndReformatData(localData)).toEqual(expect.anything());
43+
44+
localData[0].observationStatus = '';
45+
3946
const requiredProperties = ['mrn', 'conditionId', 'diseaseStatusCode', 'dateOfObservation'];
4047

4148
// Removing each required property should throw an error

0 commit comments

Comments
 (0)