diff --git a/README.md b/README.md index 4ca75b6a..95576393 100644 --- a/README.md +++ b/README.md @@ -189,11 +189,11 @@ This framework consists of three key components: Extractors, Modules and Templat ### Glossary -![Image detailing exact definitions of what is meant by Client, Extractor, Module and Template](./docs/diagrams/20_11_23_steam-terminology-breakdown.png) +![Image detailing exact definitions of what is meant by Client, Extractor, Module and Template](./docs/diagrams/steam-terminology-breakdown.png) ### High Level Diagram -![High-level architecture diagram, detailing exactly how Clients, Extractors, Modules, Templates and various web services communicate with one another](./docs/diagrams/20_11_23_steam-high-level-arch.png) +![High-level architecture diagram, detailing exactly how Clients, Extractors, Modules, Templates and various web services communicate with one another](./docs/diagrams/steam-high-level-arch.png) These diagrams can be modified by updating the XML files in the `/docs/diagrams/` directory using draw.io or a company licensed equivalent. diff --git a/docs/diagrams/20_11_23_steam-high-level-arch.png b/docs/diagrams/archive/20_11_23_steam-high-level-arch.png similarity index 100% rename from docs/diagrams/20_11_23_steam-high-level-arch.png rename to docs/diagrams/archive/20_11_23_steam-high-level-arch.png diff --git a/docs/diagrams/20_11_23_steam-high-level-arch.xml b/docs/diagrams/archive/20_11_23_steam-high-level-arch.xml similarity index 100% rename from docs/diagrams/20_11_23_steam-high-level-arch.xml rename to docs/diagrams/archive/20_11_23_steam-high-level-arch.xml diff --git a/docs/diagrams/20_11_23_steam-terminology-breakdown.png b/docs/diagrams/archive/20_11_23_steam-terminology-breakdown.png similarity index 100% rename from docs/diagrams/20_11_23_steam-terminology-breakdown.png rename to docs/diagrams/archive/20_11_23_steam-terminology-breakdown.png diff --git a/docs/diagrams/20_11_23_steam-terminology-breakdown.xml b/docs/diagrams/archive/20_11_23_steam-terminology-breakdown.xml similarity index 100% rename from docs/diagrams/20_11_23_steam-terminology-breakdown.xml rename to docs/diagrams/archive/20_11_23_steam-terminology-breakdown.xml diff --git a/docs/diagrams/archive/21_06_11_steam-high-level-arch.png b/docs/diagrams/archive/21_06_11_steam-high-level-arch.png new file mode 100644 index 00000000..857a5b54 Binary files /dev/null and b/docs/diagrams/archive/21_06_11_steam-high-level-arch.png differ diff --git a/docs/diagrams/archive/21_06_11_steam-high-level-arch.xml b/docs/diagrams/archive/21_06_11_steam-high-level-arch.xml new file mode 100644 index 00000000..cfd9feea --- /dev/null +++ b/docs/diagrams/archive/21_06_11_steam-high-level-arch.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/diagrams/steam-high-level-arch.png b/docs/diagrams/steam-high-level-arch.png new file mode 100644 index 00000000..857a5b54 Binary files /dev/null and b/docs/diagrams/steam-high-level-arch.png differ diff --git a/docs/diagrams/steam-high-level-arch.xml b/docs/diagrams/steam-high-level-arch.xml new file mode 100644 index 00000000..cfd9feea --- /dev/null +++ b/docs/diagrams/steam-high-level-arch.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/docs/diagrams/steam-terminology-breakdown.png b/docs/diagrams/steam-terminology-breakdown.png new file mode 100644 index 00000000..9c9cfd14 Binary files /dev/null and b/docs/diagrams/steam-terminology-breakdown.png differ diff --git a/docs/diagrams/steam-terminology-breakdown.xml b/docs/diagrams/steam-terminology-breakdown.xml new file mode 100644 index 00000000..8e292df0 --- /dev/null +++ b/docs/diagrams/steam-terminology-breakdown.xml @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/src/cli/app.js b/src/application/app.js similarity index 95% rename from src/cli/app.js rename to src/application/app.js index 99d1d632..2bd7781d 100644 --- a/src/cli/app.js +++ b/src/application/app.js @@ -2,9 +2,9 @@ const fs = require('fs'); const path = require('path'); const moment = require('moment'); const logger = require('../helpers/logger'); -const { RunInstanceLogger } = require('./RunInstanceLogger'); -const { sendEmailNotification, zipErrors } = require('./emailNotifications'); -const { extractDataForPatients } = require('./mcodeExtraction'); +const { RunInstanceLogger } = require('./tools/RunInstanceLogger'); +const { sendEmailNotification, zipErrors } = require('./tools/emailNotifications'); +const { extractDataForPatients } = require('./tools/mcodeExtraction'); const { maskMRN } = require('../helpers/patientUtils'); const { parsePatientIds } = require('../helpers/appUtils'); diff --git a/src/application/index.js b/src/application/index.js new file mode 100644 index 00000000..0b4521e1 --- /dev/null +++ b/src/application/index.js @@ -0,0 +1,12 @@ +const { mcodeApp } = require('./app'); +const { RunInstanceLogger } = require('./tools/RunInstanceLogger'); +const { sendEmailNotification, zipErrors } = require('./tools/emailNotifications'); +const { extractDataForPatients } = require('./tools/mcodeExtraction'); + +module.exports = { + mcodeApp, + RunInstanceLogger, + extractDataForPatients, + sendEmailNotification, + zipErrors, +}; diff --git a/src/cli/RunInstanceLogger.js b/src/application/tools/RunInstanceLogger.js similarity index 97% rename from src/cli/RunInstanceLogger.js rename to src/application/tools/RunInstanceLogger.js index aac87761..b6000706 100644 --- a/src/cli/RunInstanceLogger.js +++ b/src/application/tools/RunInstanceLogger.js @@ -1,7 +1,7 @@ const path = require('path'); const moment = require('moment'); const fs = require('fs'); -const logger = require('../helpers/logger'); +const logger = require('../../helpers/logger'); // Sort Log records by `dateRun`, more recent (larger) dates to least recent (smaller) function logSorter(a, b) { diff --git a/src/cli/emailNotifications.js b/src/application/tools/emailNotifications.js similarity index 98% rename from src/cli/emailNotifications.js rename to src/application/tools/emailNotifications.js index edb5dc41..d3ddb755 100644 --- a/src/cli/emailNotifications.js +++ b/src/application/tools/emailNotifications.js @@ -1,5 +1,5 @@ const nodemailer = require('nodemailer'); -const logger = require('../helpers/logger'); +const logger = require('../../helpers/logger'); function zipErrors(...allErrorSources) { // NOTE: assumes each error object is a k-v pair: k is the MRN-id CSV row of the patient, v is an [errors] for that patient at some pipeline step diff --git a/src/cli/mcodeExtraction.js b/src/application/tools/mcodeExtraction.js similarity index 92% rename from src/cli/mcodeExtraction.js rename to src/application/tools/mcodeExtraction.js index c37abd4e..11791f67 100644 --- a/src/cli/mcodeExtraction.js +++ b/src/application/tools/mcodeExtraction.js @@ -1,5 +1,5 @@ -const logger = require('../helpers/logger'); -const { getResourceCountInBundle } = require('../helpers/fhirUtils'); +const logger = require('../../helpers/logger'); +const { getResourceCountInBundle } = require('../../helpers/fhirUtils'); async function extractDataForPatients(patientIds, mcodeClient, fromDate, toDate) { // Using an initialized mcodeClient, extract data for patient ids in the appropriate toDate-fromDate range diff --git a/src/cli/cli.js b/src/cli/cli.js index d7a6e7af..d957c9e9 100644 --- a/src/cli/cli.js +++ b/src/cli/cli.js @@ -3,7 +3,7 @@ const path = require('path'); const program = require('commander'); const { MCODEClient } = require('../client/MCODEClient'); const logger = require('../helpers/logger'); -const { mcodeApp } = require('./app'); +const { mcodeApp } = require('../application'); const defaultPathToConfig = path.join('config', 'csv.config.json'); const defaultPathToRunLogs = path.join('logs', 'run-logs.json'); diff --git a/src/cli/index.js b/src/cli/index.js deleted file mode 100644 index a952d967..00000000 --- a/src/cli/index.js +++ /dev/null @@ -1,12 +0,0 @@ -const { mcodeApp } = require('./app'); -const { RunInstanceLogger } = require('./RunInstanceLogger'); -const { sendEmailNotification, zipErrors } = require('./emailNotifications'); -const { extractDataForPatients } = require('./mcodeExtraction'); - -module.exports = { - mcodeApp, - RunInstanceLogger, - extractDataForPatients, - sendEmailNotification, - zipErrors, -}; diff --git a/src/index.js b/src/index.js index 5c862ee7..53ebd3a9 100644 --- a/src/index.js +++ b/src/index.js @@ -7,7 +7,7 @@ const { extractDataForPatients, sendEmailNotification, zipErrors, -} = require('./cli'); +} = require('./application'); const { BaseFHIRExtractor, CSVAdverseEventExtractor, diff --git a/test/cli/app.test.js b/test/application/app.test.js similarity index 96% rename from test/cli/app.test.js rename to test/application/app.test.js index 13a8a633..9a102fa0 100644 --- a/test/cli/app.test.js +++ b/test/application/app.test.js @@ -2,7 +2,7 @@ const fs = require('fs'); const rewire = require('rewire'); const testConfig = require('./fixtures/test-config.json'); -const app = rewire('../../src/cli/app.js'); +const app = rewire('../../src/application/app.js'); const getConfig = app.__get__('getConfig'); const checkInputAndConfig = app.__get__('checkInputAndConfig'); const checkLogFile = app.__get__('checkLogFile'); @@ -10,7 +10,7 @@ const getEffectiveFromDate = app.__get__('getEffectiveFromDate'); describe('App Tests', () => { describe('getConfig', () => { - const pathToConfig = 'test/cli/fixtures/test-config.json'; + const pathToConfig = 'test/application/fixtures/test-config.json'; it('should throw error when pathToConfig does not point to valid JSON file.', () => { expect(() => getConfig()).toThrowError(); diff --git a/test/cli/emailNotifications.test.js b/test/application/emailNotifications.test.js similarity index 98% rename from test/cli/emailNotifications.test.js rename to test/application/emailNotifications.test.js index e201ce82..ebc313eb 100644 --- a/test/cli/emailNotifications.test.js +++ b/test/application/emailNotifications.test.js @@ -1,5 +1,5 @@ const nodemailer = require('nodemailer'); -const { sendEmailNotification } = require('../../src/cli/emailNotifications'); +const { sendEmailNotification } = require('../../src/application/tools/emailNotifications'); const createTransportSpy = jest.spyOn(nodemailer, 'createTransport'); diff --git a/test/cli/fixtures/example-clinical-trial-info.csv b/test/application/fixtures/example-clinical-trial-info.csv similarity index 100% rename from test/cli/fixtures/example-clinical-trial-info.csv rename to test/application/fixtures/example-clinical-trial-info.csv diff --git a/test/cli/fixtures/example-condition.csv b/test/application/fixtures/example-condition.csv similarity index 100% rename from test/cli/fixtures/example-condition.csv rename to test/application/fixtures/example-condition.csv diff --git a/test/cli/fixtures/example-disease-status.csv b/test/application/fixtures/example-disease-status.csv similarity index 100% rename from test/cli/fixtures/example-disease-status.csv rename to test/application/fixtures/example-disease-status.csv diff --git a/test/cli/fixtures/example-patient.csv b/test/application/fixtures/example-patient.csv similarity index 100% rename from test/cli/fixtures/example-patient.csv rename to test/application/fixtures/example-patient.csv diff --git a/test/cli/fixtures/patient-mrns.csv b/test/application/fixtures/patient-mrns.csv similarity index 100% rename from test/cli/fixtures/patient-mrns.csv rename to test/application/fixtures/patient-mrns.csv diff --git a/test/cli/fixtures/test-bundle.json b/test/application/fixtures/test-bundle.json similarity index 100% rename from test/cli/fixtures/test-bundle.json rename to test/application/fixtures/test-bundle.json diff --git a/test/cli/fixtures/test-config.json b/test/application/fixtures/test-config.json similarity index 68% rename from test/cli/fixtures/test-config.json rename to test/application/fixtures/test-config.json index 989a7366..c7581035 100644 --- a/test/cli/fixtures/test-config.json +++ b/test/application/fixtures/test-config.json @@ -1,5 +1,5 @@ { - "patientIdCsvPath": "test/cli/fixtures/patient-mrns.csv", + "patientIdCsvPath": "test/application/fixtures/patient-mrns.csv", "commonExtractorArgs": {}, "extractors": [], "notificationInfo": { @@ -8,4 +8,4 @@ "demo@example.com" ] } -} \ No newline at end of file +} diff --git a/test/cli/mcodeExtraction.test.js b/test/application/mcodeExtraction.test.js similarity index 98% rename from test/cli/mcodeExtraction.test.js rename to test/application/mcodeExtraction.test.js index e1d58c8c..1c6f2c6b 100644 --- a/test/cli/mcodeExtraction.test.js +++ b/test/application/mcodeExtraction.test.js @@ -1,6 +1,6 @@ const _ = require('lodash'); const path = require('path'); -const { extractDataForPatients } = require('../../src/cli/mcodeExtraction'); +const { extractDataForPatients } = require('../../src/application/tools/mcodeExtraction'); const { MCODEClient } = require('../../src/client/MCODEClient'); const testBundle = require('./fixtures/test-bundle.json');