Skip to content

Commit 8b50fd2

Browse files
committed
Tweaks to extractor and template
1 parent b3f9808 commit 8b50fd2

File tree

3 files changed

+36
-61
lines changed

3 files changed

+36
-61
lines changed

src/extractors/CSVAdverseEventExtractor.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const path = require('path');
22
const { CSVModule } = require('../modules');
3-
const { generatemCODEResources } = require('../templates');
3+
const { generateMcodeResources } = require('../templates');
44
const { Extractor } = require('./Extractor');
55
const logger = require('../helpers/logger');
66
const { formatDateTime } = require('../helpers/dateUtils');
@@ -21,21 +21,21 @@ function formatData(adverseEventData) {
2121
id: adverseEventId,
2222
subjectId: mrn,
2323
code: adverseEventCode,
24-
system: adverseEventCodeSystem,
24+
system: !adverseEventCodeSystem ? 'http://snomed.info/sct' : adverseEventCodeSystem,
2525
display: adverseEventDisplayText,
2626
suspectedCauseId,
2727
suspectedCauseType,
2828
seriousnessCode: seriousness,
29-
seriousnessCodeSystem,
29+
seriousnessCodeSystem: !seriousnessCodeSystem ? 'http://terminology.hl7.org/CodeSystem/adverse-event-seriousness' : seriousnessCodeSystem,
3030
seriousnessDisplayText,
3131
categoryCode: category,
32-
categoryCodeSystem,
32+
categoryCodeSystem: !categoryCodeSystem ? 'http://terminology.hl7.org/CodeSystem/adverse-event-category' : categoryCodeSystem,
3333
categoryDisplayText,
3434
severity,
35-
actuality,
35+
actuality: !actuality ? 'actual' : actuality,
3636
studyId,
3737
effectiveDateTime: formatDateTime(effectiveDate),
38-
recordedDateTime: formatDateTime(recordedDate),
38+
recordedDateTime: !recordedDate ? null : formatDateTime(recordedDate),
3939
};
4040
});
4141
}
@@ -55,7 +55,7 @@ class CSVAdverseEventExtractor extends Extractor {
5555
const adverseEventData = await this.getAdverseEventData(mrn);
5656
const formattedData = formatData(adverseEventData);
5757

58-
return generatemCODEResources('AdverseEvent', formattedData);
58+
return generateMcodeResources('AdverseEvent', formattedData);
5959
}
6060
}
6161

src/extractors/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const { BaseFHIRExtractor } = require('./BaseFHIRExtractor');
2-
const { CSVAdverseEventExtractor } = require('./CSVAdverseEventExtractor')
2+
const { CSVAdverseEventExtractor } = require('./CSVAdverseEventExtractor');
33
const { CSVCancerDiseaseStatusExtractor } = require('./CSVCancerDiseaseStatusExtractor');
44
const { CSVCancerRelatedMedicationExtractor } = require('./CSVCancerRelatedMedicationExtractor');
55
const { CSVClinicalTrialInformationExtractor } = require('./CSVClinicalTrialInformationExtractor');

src/templates/AdverseEventTemplate.js

Lines changed: 28 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,11 @@
11
const { coding, reference } = require('./snippets');
2-
const { ifAllArgsObj, ifSomeArgsObj } = require('../helpers/templateUtils');
2+
const { ifAllArgsObj, ifSomeArgsObj, ifAllArgs } = require('../helpers/templateUtils');
33

4-
function eventTemplate({ eventCode, eventSystem, eventDisplay }) {
5-
let codeSystem = eventSystem;
6-
if (!codeSystem) {
7-
codeSystem = 'http://snomed.info/sct';
8-
}
4+
function eventTemplate(eventCoding) {
95
return {
106
event: {
117
coding: [
12-
coding({
13-
code: eventCode,
14-
system: codeSystem,
15-
display: eventDisplay,
16-
}),
8+
coding(eventCoding),
179
],
1810
},
1911
};
@@ -31,67 +23,50 @@ function suspectedCauseTemplate({ suspectedCauseId, suspectedCauseType }) {
3123
}
3224

3325

34-
function seriousnessTemplate({ seriousnessCode, seriousnessCodeSystem, seriousnessDisplayText }) {
35-
let codeSystem = seriousnessCodeSystem;
36-
if (!codeSystem) {
37-
codeSystem = 'http://terminology.hl7.org/CodeSystem/adverse-event-seriousness';
38-
}
26+
function seriousnessTemplate(seriousnessCoding) {
3927
return {
4028
seriousness: {
4129
coding: [
42-
coding({
43-
code: seriousnessCode,
44-
system: codeSystem,
45-
display: seriousnessDisplayText,
46-
}),
30+
coding(seriousnessCoding),
4731
],
4832
},
4933
};
5034
}
5135

52-
function categoryTemplate({ categoryCode, categoryCodeSystem, categoryDisplayText }) {
53-
let codeSystem = categoryCodeSystem;
54-
if (!codeSystem) {
55-
codeSystem = 'http://terminology.hl7.org/CodeSystem/adverse-event-category';
56-
}
36+
function categoryTemplate(categoryCoding) {
5737
return {
58-
category: {
38+
category: [{
5939
coding: [
60-
coding({
61-
code: categoryCode,
62-
system: codeSystem,
63-
display: categoryDisplayText,
64-
}),
40+
coding(categoryCoding),
6541
],
66-
},
42+
}],
6743
};
6844
}
6945

70-
function severityTemplate({ severityCode }) {
46+
function severityTemplate(severityCode) {
7147
return {
7248
severity: {
7349
coding: [
7450
coding({
7551
code: severityCode,
52+
system: 'http://terminology.hl7.org/CodeSystem/adverse-event-severity',
7653
}),
7754
],
7855
},
7956
};
8057
}
8158

82-
function actualityTemplate({ actuality }) {
83-
let actualityCode = actuality;
84-
if (!actualityCode) {
85-
actualityCode = 'https://www.hl7.org/fhir/valueset-adverse-event-actuality.html';
86-
}
59+
function studyTemplate(studyId) {
8760
return {
88-
actuality: {
89-
coding: [
90-
coding({
91-
code: actualityCode,
92-
}),
93-
],
94-
},
61+
study: [
62+
reference({ id: studyId, resourceType: 'ResearchStudy' }),
63+
],
64+
};
65+
}
66+
67+
function recordedDateTemplate(recordedDateTime) {
68+
return {
69+
recordedDate: recordedDateTime,
9570
};
9671
}
9772

@@ -108,14 +83,14 @@ function adverseEventTemplate({
10883
id,
10984
subject: reference({ id: subjectId, resourceType: 'Patient' }),
11085
...ifSomeArgsObj(eventTemplate)({ code, system, display }),
111-
...ifAllArgsObj(suspectedCauseTemplate)({ id: suspectedCauseId, resourceType: suspectedCauseType }),
112-
...ifSomeArgsObj(seriousnessTemplate)({ seriousnessCode, seriousnessCodeSystem, seriousnessDisplayText }),
113-
...ifSomeArgsObj(categoryTemplate)({ categoryCode, categoryCodeSystem, categoryDisplayText }),
114-
...ifAllArgsObj(severityTemplate)({ severity }),
115-
...actualityTemplate(actuality),
116-
study: reference({ id: studyId, resourceType: 'ResearchStudy' }),
86+
...ifAllArgsObj(suspectedCauseTemplate)({ suspectedCauseId, suspectedCauseType }),
87+
...ifSomeArgsObj(seriousnessTemplate)({ code: seriousnessCode, system: seriousnessCodeSystem, display: seriousnessDisplayText }),
88+
...ifSomeArgsObj(categoryTemplate)({ code: categoryCode, system: categoryCodeSystem, display: categoryDisplayText }),
89+
...ifAllArgs(severityTemplate)(severity),
90+
actuality,
91+
...ifAllArgs(studyTemplate)(studyId),
11792
date: effectiveDateTime,
118-
recordedDate: recordedDateTime,
93+
...ifAllArgs(recordedDateTemplate)(recordedDateTime),
11994
};
12095
}
12196

0 commit comments

Comments
 (0)