diff --git a/iTrust/sql/data/hcp_diagnosis_data.sql b/iTrust/sql/data/hcp_diagnosis_data.sql index 37684d9fb85a272d1c71c97e243d6beced141a43..c37c8e880fa4204088c693723ad7efc1add0ed01 100644 --- a/iTrust/sql/data/hcp_diagnosis_data.sql +++ b/iTrust/sql/data/hcp_diagnosis_data.sql @@ -1,4 +1,13 @@ - +/*-- 27606 +-- 27607 +-- 27606 +-- 27606 +-- 27603 +-- 10001 +-- 10001 +-- 10001 +-- 28803 +-- 59710*/ INSERT INTO officevisits(ID, visitDate, HCPID, notes, PatientID, HospitalID) VALUES @@ -21,7 +30,18 @@ VALUES (122, '2011-08-25', 9000000000, 'Diagnose Mumps', 2, '1'), (123, '2011-09-09', 9000000000, 'Diagnose Mumps', 3, '1'), -(124, '2011-09-12', 9000000000, 'Diagnose Mumps', 25, '1') +(124, '2011-09-12', 9000000000, 'Diagnose Mumps', 25, '1'), + +(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') ON DUPLICATE KEY UPDATE id = id; @@ -46,7 +66,19 @@ VALUES (122, 122, 72.00), (123, 123, 72.00), -(124, 124, 72.00) +(124, 124, 72.00), + +(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) + ON DUPLICATE KEY UPDATE VisitID = VALUES(VisitID), ICDCode = VALUES(ICDCode); INSERT INTO labprocedure (PatientMID, LaboratoryProcedureCode, Rights, Status, Commentary, Results, OfficeVisitID, UpdatedDate, diff --git a/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java index ea119beb4997fa04627d8b4d9303fbf1fe70c72d..31976368a521106b319838b9cae76fa235b6849f 100644 --- a/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java +++ b/iTrust/test/edu/ncsu/csc/itrust/unit/dao/officevisit/OVDiagnosesTest.java @@ -4,6 +4,7 @@ import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; +import java.lang.IllegalArgumentException; import junit.framework.TestCase; import edu.ncsu.csc.itrust.action.ViewDiagnosisStatisticsAction; @@ -112,7 +113,61 @@ public class OVDiagnosesTest extends TestCase { //If previous test fails, this test may fail long totalRegionNonsplit = diagDAO.getDiagnosisCounts("487.00", "27607", lower, upper).getRegionStats(); assertEquals(totalRegionNonsplit, totalRegion); - } + } + + public void testZipSFs() throws Exception { + Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, 5); + assertEquals(bean.getZipStats(), bean.getRegionStats()); + assertEquals(3, bean.getZipStats()); + + lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + bean = diagDAO.getDiagnosisCounts("26.8", "27607", lower, upper, 4); + assertEquals(1, bean.getZipStats()); + assertEquals(5, bean.getRegionStats()); + + lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + bean = diagDAO.getDiagnosisCounts("26.8", "27603", lower, upper, 3); + assertEquals(1, bean.getZipStats()); + assertEquals(5, bean.getRegionStats()); + + lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + bean = diagDAO.getDiagnosisCounts("26.8", "27606", lower, upper, 2); + assertEquals(0, bean.getZipStats()); + assertEquals(5, bean.getRegionStats()); + + lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + bean = diagDAO.getDiagnosisCounts("26.8", "20000", lower, upper, 1); + assertEquals(0, bean.getZipStats()); + assertEquals(6, bean.getRegionStats()); + + lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + bean = diagDAO.getDiagnosisCounts("26.8", "10001", lower, upper, 0); + assertEquals(3, bean.getZipStats()); + assertEquals(10, bean.getRegionStats()); + } + + public void testInvalidZipSigFigs() throws Exception { + try { + Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, -1); + fail("Expected exception."); + } catch (IllegalArgumentException e) { } + + try { + Date lower = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + Date upper = new SimpleDateFormat("MM/dd/yyyy").parse("11/18/2020"); + DiagnosisStatisticsBean bean = diagDAO.getDiagnosisCounts("26.8", "27606-1234", lower, upper, 6); + fail("Expected exception."); + } catch (IllegalArgumentException e) { } + } /** * testMalaria