Code review /ProgramOverModule11Purpose of the module: the module displays statistics about a program. All available programs can be selected. The list of indicators is static. The user can select to display a graph. Maintainability - JUnit AdminListExtensionTest fails, no other test cases implemented - Design: org.openmrs.module.programOver.web.controller.ProgramPatientsController is not a Spring controller - Error org.openmrs.module.programOver.web.controller.PatientGraph.getGraphOfAllARVPatients(PatientGraph.java:94)
- sysout ProgramOverviewDAOimpl >>> see OpenMRS code convention
Error Handling - Exception handling
- SQL without exception handling ProgramOverviewDAOimpl line 159, 194, etc. Performance - Report HIV, Number of active patients on ARVs regimen (2004-2008, graph activated)
- How much time is spent on the server side? How much on client side (Javascript)?
- problem is on server side - run time 5 minutes on laptop- database table, count patients=2000, count obs=300000- observation: ProgramOverviewDAOimpl.getAllARVPatients() loops over patientIDs, each step executes up to three SQL query
Trace log messages Number of patients died during the chosen period 2004 - 2008 [java] INFO - ProgramOverFormController.handleRequestInternal(60) |2010-10-29 15:52:01,562| TIME check start handleRequestInternal
[java] INFO - ProgramOverFormController.handleRequestInternal(77) |2010-10-29 15:52:01,578| TIME check before getNumberOfMonths [java] INFO - ProgramOverFormController.handleRequestInternal(84) |2010-10-29 15:52:01,578| TIME check after getNumberOfMonths
[java] INFO - ProgramOverFormController.handleRequestInternal(129) |2010-10-29 15:52:01,578| TIME check before loop checkTypeController [java] INFO - ProgramOverFormController.handleRequestInternal(144) |2010-10-29 15:52:01,765| TIME check after loop checkTypeController
[java] ++++++++++This HIV Programis found [java] INFO - ProgramOverFormController.handleRequestInternal(161) |2010-10-29 15:52:01,765| TIME check before numberOfPatientByYear
[java] INFO - ProgramOverFormController.handleRequestInternal(165) |2010-10-29 15:52:01,828| TIME check after numberOfPatientByYear
Number of active patients on ARVs 2004 - 2008 [java] INFO - ProgramOverFormController.handleRequestInternal(60) |2010-10-29 15:53:24,171| TIME check start handleRequestInternal
[java] INFO - ProgramOverFormController.handleRequestInternal(77) |2010-10-29 15:53:24,171| TIME check before getNumberOfMonths [java] INFO - ProgramOverFormController.handleRequestInternal(84) |2010-10-29 15:53:24,171| TIME check after getNumberOfMonths
[java] INFO - ProgramOverFormController.handleRequestInternal(129) |2010-10-29 15:53:24,171| TIME check before loop checkTypeController [java] INFO - ProgramOverFormController.handleRequestInternal(144) |2010-10-29 15:53:53,421| TIME check after loop checkTypeController
[java] INFO - ProgramOverFormController.handleRequestInternal(161) |2010-10-29 15:53:53,421| TIME check before numberOfPatientByYear [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:54:16,015| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:54:16,031| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:54:46,984| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:54:46,984| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:55:38,234| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:55:38,234| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:56:22,609| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:56:22,609| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:57:14,343| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:57:14,343| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - RegimenHistory.getRegimenList(76) |2010-10-29 15:58:03,843| Running list: 0
[java] INFO - RegimenHistory.getRegimenList(77) |2010-10-29 15:58:03,843| Stavudine(30) from 2004-05-06 to 2004-02-12 [java] INFO - ProgramOverFormController.handleRequestInternal(165) |2010-10-29 15:58:35,375| TIME check after numberOfPatientByYear
- variable listPatientHistory contains a lot of data
**MANAGEMENT NEWSLETTER** Archives Below, a compilation of selected health-related articles from Gulfstream’s Management Newsletter archives: USING GENERIC DRUGS WILL SAVE MONEY Employees are encouraged to work with their physician to determine if there are lower-cost generic substitutions or any brand-name drugs they are prescribed. The use of cost-effective generic drugs – whic
DRUGS – die Partydrogeninfo! Alles was du schon immer über Partydrogen wissen wolltest und noch nie ehrlich beantwortet wurde . Dieser Text umfasst die vollständige Fassung der Broschüre „DRUGS – die Partdrogeninfo!“ in d e r F a s s u n g der 4. völlig neu bearbeiteten und erweiterten Auflage vom Sommer 2001 mit den Ergänzungen des „Updates“ vom Sommer 2003.