diff --git a/iTrust/sql/data/hcp_additional_diagnosis_data.sql b/iTrust/sql/data/hcp_additional_diagnosis_data.sql index 29163d99144e43aa8e334f49d9e05ab5a39c5419..8d20d6cf1032d3953dbf6fb9b3fb918e8b937115 100644 --- a/iTrust/sql/data/hcp_additional_diagnosis_data.sql +++ b/iTrust/sql/data/hcp_additional_diagnosis_data.sql @@ -1,29 +1,31 @@ INSERT INTO officevisits(ID, visitDate, HCPID, notes, PatientID, HospitalID) VALUES -(125, '2020-11-18', 9000000000, 'Diagnose Cataracts', 1, '1'), -(126, '2020-11-18', 9000000000, 'Diagnose Cataracts', 2, '1'), -(127, '2020-11-18', 9000000000, 'Diagnose Cataracts', 3, '1'), -(128, '2020-11-18', 9000000000, 'Diagnose Cataracts', 4, '1'), -(129, '2020-11-18', 9000000000, 'Diagnose Cataracts', 21, '1'), -(130, '2020-11-18', 9000000000, 'Diagnose Cataracts', 22, '1'), -(131, '2020-11-18', 9000000000, 'Diagnose Cataracts', 23, '1'), -(132, '2020-11-18', 9000000000, 'Diagnose Cataracts', 24, '1'), -(133, '2020-11-18', 9000000000, 'Diagnose Cataracts', 105, '1'), -(134, '2020-11-18', 9000000000, 'Diagnose Cataracts', 107, '1') +(125, '2020-11-18', 9000000000, 'Diagnose Strep', 1, '1'), +(126, '2020-11-18', 9000000000, 'Diagnose Strep', 2, '1'), +(127, '2020-11-18', 9000000000, 'Diagnose Strep', 3, '1'), +(128, '2020-11-18', 9000000000, 'Diagnose Strep', 4, '1'), +(129, '2020-11-18', 9000000000, 'Diagnose Strep', 21, '1'), +(130, '2020-11-18', 9000000000, 'Diagnose Strep', 22, '1'), +(131, '2020-11-18', 9000000000, 'Diagnose Strep', 23, '1'), +(132, '2020-11-18', 9000000000, 'Diagnose Strep', 24, '1'), +(133, '2020-11-18', 9000000000, 'Diagnose Strep', 105, '1'), +(134, '2020-11-18', 9000000000, 'Diagnose Strep', 107, '1'), +(135, '2020-11-18', 9000000000, 'Diagnose Strep', 102, '1') ON DUPLICATE KEY UPDATE id = id; INSERT INTO ovdiagnosis(ID, VisitID, ICDCode) VALUES -(125, 125, 26.8), -(126, 126, 26.8), -(127, 127, 26.8), -(128, 128, 26.8), -(129, 129, 26.8), -(130, 130, 26.8), -(131, 131, 26.8), -(132, 132, 26.8), -(133, 133, 26.8), -(134, 134, 26.8) +(125, 125, 34.00), +(126, 126, 34.00), +(127, 127, 34.00), +(128, 128, 34.00), +(129, 129, 34.00), +(130, 130, 34.00), +(131, 131, 34.00), +(132, 132, 34.00), +(133, 133, 34.00), +(134, 134, 34.00), +(135, 135, 34.00) ON DUPLICATE KEY UPDATE VisitID = VALUES(VisitID), ICDCode = VALUES(ICDCode); diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java index a23d9f0d90422ced565e1f011d6a90e471b212a6..358416883275550bda3ae3573204bc2defee1a35 100644 --- a/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java +++ b/iTrust/test/edu/ncsu/csc/itrust/unit/action/ViewDiagnosisStatisticsActionTest.java @@ -92,47 +92,47 @@ public class ViewDiagnosisStatisticsActionTest extends TestCase { gen.malaria_epidemic1(); assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110")); assertTrue(action.isMalariaEpidemic("11/16/" + thisYear, "27606", "110")); - } - - public void testIsMalariaEpidemicRolling() throws Exception { - int year = thisYear-20; - gen.malaria_epidemic2(); - assertFalse(action.isMalariaEpidemic("11/01/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/02/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/03/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/04/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/05/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/06/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/07/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/08/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/09/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/10/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/11/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/12/" + year, "27606", "110")); - assertFalse(action.isMalariaEpidemic("11/13/" + year, "27606", "110")); - assertTrue(action.isMalariaEpidemic("11/14/" + year, "27606", "110")); - assertTrue(action.isMalariaEpidemic("11/15/" + year, "27606", "110")); - } - - public void testIsMalariaEpidemicEdge() throws Exception { - int year = thisYear - 20; - gen.malaria_epidemic3(); - // Exactly 100 percentile - assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110")); - - // Threshold shouldn't matter if there is no history - assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "110")); - assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "100000000")); - - // Date/zip with 0 cases should be false - assertFalse(action.isMalariaEpidemic("02/02/" + thisYear, "27606", "110")); - assertFalse(action.isMalariaEpidemic("10/10/" + thisYear, "99999", "110")); - } - - public void testIsMalariaEpidemicNone() throws Exception { - gen.malaria_epidemic1(); - assertFalse(action.isMalariaEpidemic("06/02/2010", "38201", "110")); - } + } + + public void testIsMalariaEpidemicRolling() throws Exception { + int year = thisYear-20; + gen.malaria_epidemic2(); + assertFalse(action.isMalariaEpidemic("11/01/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/02/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/03/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/04/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/05/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/06/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/07/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/08/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/09/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/10/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/11/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/12/" + year, "27606", "110")); + assertFalse(action.isMalariaEpidemic("11/13/" + year, "27606", "110")); + assertTrue(action.isMalariaEpidemic("11/14/" + year, "27606", "110")); + assertTrue(action.isMalariaEpidemic("11/15/" + year, "27606", "110")); + } + + public void testIsMalariaEpidemicEdge() throws Exception { + int year = thisYear - 20; + gen.malaria_epidemic3(); + // Exactly 100 percentile + assertFalse(action.isMalariaEpidemic("11/02/" + thisYear, "27606", "110")); + + // Threshold shouldn't matter if there is no history + assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "110")); + assertTrue(action.isMalariaEpidemic("10/10/" + year, "27606", "100000000")); + + // Date/zip with 0 cases should be false + assertFalse(action.isMalariaEpidemic("02/02/" + thisYear, "27606", "110")); + assertFalse(action.isMalariaEpidemic("10/10/" + thisYear, "99999", "110")); + } + + public void testIsMalariaEpidemicNone() throws Exception { + gen.malaria_epidemic1(); + assertFalse(action.isMalariaEpidemic("06/02/2010", "38201", "110")); + } public void testIsFluEpidemic() throws Exception { gen.influenza_epidemic(); @@ -171,4 +171,74 @@ public class ViewDiagnosisStatisticsActionTest extends TestCase { fail("DBException thrown"); } } + + public void testGetDiagnosisTrendsBasic() throws Exception { + gen.hcp_additional_diagnosis_data(); + List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("03/11/2007", "79.10", "27607"); + + assertEquals(8, trends.size()); + assertEquals(2, trends.get(0).getRegionStats()); + assertEquals(2, trends.get(0).getStateStats()); + assertEquals(1, trends.get(0).getZipStats()); + } + + public void testGetDiagnosisTrendsRolling() throws Exception { + gen.hcp_additional_diagnosis_data(); + List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("03/16/2007", "79.10", "27607"); + + assertEquals(2, trends.get(0).getRegionStats()); + assertEquals(0, trends.get(1).getRegionStats()); + assertEquals(0, trends.get(2).getRegionStats()); + + trends = action.getDiagnosisTrends("03/17/2007", "79.10", "27607"); + + assertEquals(1, trends.get(0).getRegionStats()); + assertEquals(1, trends.get(1).getRegionStats()); + assertEquals(0, trends.get(2).getRegionStats()); + + trends = action.getDiagnosisTrends("03/18/2007", "79.10", "27607"); + assertEquals(0, trends.get(0).getRegionStats()); + assertEquals(2, trends.get(1).getRegionStats()); + assertEquals(0, trends.get(2).getRegionStats()); + } + + public void testGetDiagnosisTrendsRegionSize() throws Exception { + gen.hcp_additional_diagnosis_data(); + List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("11/19/2020", "34.00", "27607"); + + assertEquals(1, trends.get(0).getZipStats()); + assertEquals(5, trends.get(0).getRegionStats()); + assertEquals(6, trends.get(0).getStateStats()); + } + + public void testGetDiagnosisTrendsEdge() throws Exception { + List<DiagnosisStatisticsBean> trends = action.getDiagnosisTrends("12/18/2010", "79.10", "27607"); + + for (DiagnosisStatisticsBean b : trends) { + assertEquals(0, b.getZipStats()); + assertEquals(0, b.getRegionStats()); + assertEquals(0, b.getStateStats()); + } + } + + public void testGetDiagnosisTrendsBadDate() throws Exception { + try { + action.getDiagnosisTrends("asdf", "79.10", "27607"); + fail("Expected exception."); + } catch (FormValidationException e) { } + } + + public void testGetDiagnosisTrendsBadZip() throws Exception { + try { + action.getDiagnosisTrends("03/20/2007", "79.10", "123456"); + fail("Expected exception."); + } catch (FormValidationException e) { } + } + + public void testGetDiagnosisTrendsBadIcdCode() throws Exception { + try { + action.getDiagnosisTrends("03/20/2007", "000.000", "12345"); + fail("Expected exception."); + } catch (FormValidationException e) { } + } }