ccsm-cds-tools / ccsm-cds-with-tests

This repository contains clinical decision support (CDS) which provides recommendations for cervical cancer screening and management (CCSM).
Apache License 2.0
7 stars 3 forks source link

Missing Histology in Patient History #148

Closed mickohanlon23 closed 1 month ago

mickohanlon23 commented 1 month ago

Addresses CCSMCDS-186.

One of the pilot patients appeared to have a histology result that was being factored into the recommendation, but was not displaying in the patient history.

There was an update made last year to include a Diagnostic Report as a "histology diagnostic report" if the LOINC code isn't actually in the DiagnosticReport itself, but is contained within one of the Observations it references: https://github.com/ccsm-cds-tools/ccsm-cds-with-tests/pull/116. However, that PR updated the SortedBiopsyReport CQL expression within CollateManagementData.cql (link on GitHub). DashboardLibrary.cql, which controls what is displayed in the patient history section of the dashboard, was actually using a slightly different CQL expression, HistologyDiagnosticReports (link on GitHub).

This PR adds the logic that the last PR #116 had incorporated over in CollateManagementData.cql into this HistologyDiagnosticReports expression within DashboardLibrary.cql, so that this expression now includes not only the DiagnosticReports that have a "Biopsy Report" LOINC code, but also the DiagnosticReports that reference an Observation with this DiagnosticReport. I also added a test that mimics the case of the UMMC patient, to show that the DashboardLibrary.cql will now recognize a lab test that is formatted like this.

jhlee-mitre commented 1 month ago

One more thing. I got the same error used to happen from clean copy of main, by that I don't think this is specific problem from this PR.

2188 passing (2m) 74 failing

1) ManageSpecialPopulation_v1.1.0 Histologic Cancer (25): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)

2) ManageSpecialPopulation_v1.1.0 Histologic Cancer (31): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)

....

Could be my own issue, I will look into this separately.

mickohanlon23 commented 1 month ago

One more thing. I got the same error used to happen from clean copy of main, by that I don't think this is specific problem from this PR.

2188 passing (2m) 74 failing

  1. ManageSpecialPopulation_v1.1.0 Histologic Cancer (25): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)
  2. ManageSpecialPopulation_v1.1.0 Histologic Cancer (31): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)

....

Could be my own issue, I will look into this separately.

I believe this is related to what I mentioned in this Slack thread: https://mitrecorp.slack.com/archives/C017T4K3M42/p1729577281155429. Since this branch is based off of a version of the pilot branch from before https://github.com/ccsm-cds-tools/ccsm-cds-with-tests/pull/147 was merged, you would likely still be seeing the failing tests as a result of the value sets not yet being updated.

As a note, you can test just the specific test folder that contains the test I added by changing line 6 of test/test.js to the following:

cqlt.test(path.join(__dirname, 'test/DisplayCervicalCancerMedicalHistory'));
jhlee-mitre commented 1 month ago

One more thing. I got the same error used to happen from clean copy of main, by that I don't think this is specific problem from this PR. 2188 passing (2m) 74 failing

  1. ManageSpecialPopulation_v1.1.0 Histologic Cancer (25): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)
  2. ManageSpecialPopulation_v1.1.0 Histologic Cancer (31): AssertionError: Recommendation=: expected null to deeply equal { short: 'Histologic Cancer', …(3) } at checkResult (node_modules/cql-testing/src/buildTestSuite.js:131:38) at Context. (node_modules/cql-testing/src/buildTestSuite.js:109:11) at process.processImmediate (node:internal/timers:478:21)

.... Could be my own issue, I will look into this separately.

I believe this is related to what I mentioned in this Slack thread: https://mitrecorp.slack.com/archives/C017T4K3M42/p1729577281155429. Since this branch is based off of a version of the pilot branch from before #147 was merged, you would likely still be seeing the failing tests as a result of the value sets not yet being updated.

As a note, you can test just the specific test folder that contains the test I added by changing line 6 of test/test.js to the following:

cqlt.test(path.join(__dirname, 'test/DisplayCervicalCancerMedicalHistory'));

Yes, it worked well when the test was run separately.