Skip to content

Commit 458826d

Browse files
Merge pull request #181 from mcode/develop
v2.0.1
2 parents 5af5068 + ea88358 commit 458826d

File tree

6 files changed

+71
-27
lines changed

6 files changed

+71
-27
lines changed

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
* @jafeltra @mgramigna @julianxcarter @dmendelowitz @dtphelan1
1+
* @julianxcarter @dmendelowitz @dtphelan1

package-lock.json

Lines changed: 19 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "mcode-extraction-framework",
3-
"version": "2.0.0",
3+
"version": "2.0.1",
44
"description": "",
55
"contributors": [
66
"Julia Afeltra <jafeltra@mitre.org>",
@@ -29,7 +29,7 @@
2929
"fhir-crud-client": "^1.2.2",
3030
"fhirpath": "2.1.5",
3131
"lodash": "^4.17.21",
32-
"moment": "^2.26.0",
32+
"moment": "^2.29.3",
3333
"nodemailer": "^6.7.2",
3434
"winston": "^3.2.1"
3535
},

src/extractors/FHIRAdverseEventExtractor.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@ class FHIRAdverseEventExtractor extends BaseFHIRExtractor {
1818
try {
1919
allResearchStudyResources = getResearchStudiesFromContext(context);
2020
} catch (e) {
21-
logger.error(e.message);
21+
logger.debug(e.message);
2222
logger.debug(e.stack);
23+
if (!this.study) {
24+
logger.error('There is no ResearchStudy id to complete a request for Adverse Event resources; please include a ClinicalTrialInformationExtractor,'
25+
+ ' ResearchStudyExtractor, or "study" constructorArg in your extraction configuration.');
26+
}
2327
}
2428

2529
// The patient is referenced in the 'subject' field of an AdverseEvent

src/helpers/contextUtils.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,36 @@ function getConditionsFromContext(context) {
4747
return conditionsResourcesInContext;
4848
}
4949

50+
/**
51+
* Parses context for AdverseEvent resources
52+
* @param {Object} context - Context object consisting of a FHIR Bundle
53+
* @return {Array} All the AdverseEvent resources found in context
54+
*/
55+
function getAdverseEventsFromContext(context) {
56+
logger.debug('Getting adverse event resources from context');
57+
const adverseEventResourcesInContext = getBundleResourcesByType(context, 'AdverseEvent', {}, false);
58+
if (_.isEmpty(adverseEventResourcesInContext)) {
59+
throw Error('Could not find any adverse events in context; ensure that an AdverseEventExtractor is used earlier in your extraction configuration');
60+
}
61+
logger.debug(`AdverseEvent resources found in context. Found ${adverseEventResourcesInContext.length} adverse event resources.`);
62+
return adverseEventResourcesInContext;
63+
}
64+
65+
/**
66+
* Parses context for AdverseEvent entries, which themselves contain resources
67+
* @param {Object} context - Context object consisting of a FHIR Bundle
68+
* @return {Array} All the AdverseEvents entries found in context
69+
*/
70+
function getAdverseEventEntriesFromContext(context) {
71+
logger.debug('Getting adverse event entries from context');
72+
const adverseEventEntriesInContext = getBundleEntriesByResourceType(context, 'AdverseEvent', {}, false);
73+
if (adverseEventEntriesInContext.length === 0) {
74+
throw Error('Could not find any adverse events in context; ensure that an AdverseEventExtractor is used earlier in your extraction configuration');
75+
}
76+
logger.debug(`AdverseEvent entries found in context. Found ${adverseEventEntriesInContext.length} adverse event resources.`);
77+
return adverseEventEntriesInContext;
78+
}
79+
5080
/**
5181
* Parses context for Encounter resources
5282
* @param {Object} context - Context object consisting of a FHIR Bundle
@@ -78,4 +108,6 @@ module.exports = {
78108
getEncountersFromContext,
79109
getPatientFromContext,
80110
getResearchStudiesFromContext,
111+
getAdverseEventEntriesFromContext,
112+
getAdverseEventsFromContext,
81113
};

src/index.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,18 @@ const {
6565
const { getDiseaseStatusCode, getDiseaseStatusEvidenceCode, mEpochToDate } = require('./helpers/diseaseStatusUtils');
6666
const { formatDate, formatDateTime } = require('./helpers/dateUtils');
6767
const { lowercaseLookupQuery, createLowercaseLookup, createInvertedLookup } = require('./helpers/lookupUtils');
68-
const { getConditionEntriesFromContext, getConditionsFromContext, getEncountersFromContext, getPatientFromContext } = require('./helpers/contextUtils');
68+
const {
69+
getConditionEntriesFromContext,
70+
getConditionsFromContext,
71+
getEncountersFromContext,
72+
getPatientFromContext,
73+
getAdverseEventsFromContext,
74+
getAdverseEventEntriesFromContext,
75+
} = require('./helpers/contextUtils');
6976
const { parsePatientIds } = require('./helpers/appUtils');
7077
const { getConfig, validateConfig } = require('./helpers/configUtils');
7178
const configSchema = require('./helpers/schemas/config.schema.json');
79+
const { sortExtractors } = require('./helpers/dependencyUtils');
7280

7381
module.exports = {
7482
// CLI Related utilities
@@ -143,11 +151,14 @@ module.exports = {
143151
logOperationOutcomeInfo,
144152
lowercaseLookupQuery,
145153
mEpochToDate,
154+
sortExtractors,
146155
// Context operations
147156
getConditionEntriesFromContext,
148157
getConditionsFromContext,
149158
getEncountersFromContext,
150159
getPatientFromContext,
160+
getAdverseEventEntriesFromContext,
161+
getAdverseEventsFromContext,
151162
// Configuration file schema
152163
configSchema,
153164
};

0 commit comments

Comments
 (0)