Advertisement
Guest User

Untitled

a guest
Apr 6th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.41 KB | None | 0 0
  1. /*
  2. * The contents of this file are subject to the OpenMRS Public License
  3. * Version 1.0 (the "License"); you may not use this file except in
  4. * compliance with the License. You may obtain a copy of the License at
  5. * http://license.openmrs.org
  6. *
  7. * Software distributed under the License is distributed on an "AS IS"
  8. * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
  9. * License for the specific language governing rights and limitations
  10. * under the License.
  11. *
  12. * Copyright (C) OpenMRS, LLC. All Rights Reserved.
  13. */
  14.  
  15. package org.openmrs.module.reporting.cohort.definition.library;
  16.  
  17. import org.openmrs.EncounterType;
  18. import org.openmrs.Program;
  19. import org.openmrs.Location;
  20. import org.openmrs.module.reporting.cohort.definition.AgeCohortDefinition;
  21. import org.openmrs.module.reporting.cohort.definition.BirthAndDeathCohortDefinition;
  22. import org.openmrs.module.reporting.cohort.definition.CohortDefinition;
  23. import org.openmrs.module.reporting.cohort.definition.EncounterCohortDefinition;
  24. import org.openmrs.module.reporting.cohort.definition.GenderCohortDefinition;
  25. import org.openmrs.module.reporting.cohort.definition.MappedParametersCohortDefinition;
  26. import org.openmrs.module.reporting.cohort.definition.ProgramEnrollmentCohortDefinition;
  27. import org.openmrs.module.reporting.definition.library.BaseDefinitionLibrary;
  28. import org.openmrs.module.reporting.definition.library.DocumentedDefinition;
  29. import org.openmrs.module.reporting.evaluation.parameter.Parameter;
  30. import org.springframework.stereotype.Component;
  31.  
  32. import java.util.Date;
  33. import java.util.List;
  34.  
  35. /**
  36. * Basic set of cohort definitions
  37. */
  38. @Component
  39. public class BuiltInCohortDefinitionLibrary extends BaseDefinitionLibrary<CohortDefinition> {
  40.  
  41. public static final String PREFIX = "reporting.library.cohortDefinition.builtIn.";
  42.  
  43. @Override
  44. public Class<? super CohortDefinition> getDefinitionType() {
  45. return CohortDefinition.class;
  46. }
  47.  
  48. @Override
  49. public String getKeyPrefix() {
  50. return PREFIX;
  51. }
  52.  
  53. @DocumentedDefinition(value = "males")
  54. public GenderCohortDefinition getMales() {
  55. GenderCohortDefinition males = new GenderCohortDefinition();
  56. males.setMaleIncluded(true);
  57. return males;
  58. }
  59.  
  60. @DocumentedDefinition(value = "females")
  61. public GenderCohortDefinition getFemales() {
  62. GenderCohortDefinition females = new GenderCohortDefinition();
  63. females.setFemaleIncluded(true);
  64. return females;
  65. }
  66.  
  67. @DocumentedDefinition(value = "unknownGender")
  68. public GenderCohortDefinition getUnknownGender() {
  69. GenderCohortDefinition unknownGender = new GenderCohortDefinition();
  70. unknownGender.setUnknownGenderIncluded(true);
  71. return unknownGender;
  72. }
  73.  
  74. @DocumentedDefinition("upToAgeOnDate")
  75. public AgeCohortDefinition getUpToAgeOnDate() {
  76. AgeCohortDefinition cd = new AgeCohortDefinition();
  77. cd.addParameter(new Parameter("effectiveDate", "reporting.parameter.effectiveDate", Date.class));
  78. cd.addParameter(new Parameter("maxAge", "reporting.parameter.maxAgeInYears", Integer.class));
  79. return cd;
  80. }
  81.  
  82. @DocumentedDefinition("atLeastAgeOnDate")
  83. public AgeCohortDefinition getAtLeastAgeOnDate() {
  84. AgeCohortDefinition cd = new AgeCohortDefinition();
  85. cd.addParameter(new Parameter("effectiveDate", "reporting.parameter.effectiveDate", Date.class));
  86. cd.addParameter(new Parameter("minAge", "reporting.parameter.minAgeInYears", Integer.class));
  87. return cd;
  88. }
  89.  
  90. @DocumentedDefinition("ageRangeOnDate")
  91. public AgeCohortDefinition getAgeInRangeOnDate() {
  92. AgeCohortDefinition cd = new AgeCohortDefinition();
  93. cd.addParameter(new Parameter("effectiveDate", "reporting.parameter.effectiveDate", Date.class));
  94. cd.addParameter(new Parameter("minAge", "reporting.parameter.minAgeInYears", Integer.class));
  95. cd.addParameter(new Parameter("maxAge", "reporting.parameter.maxAgeInYears", Integer.class));
  96. return cd;
  97. }
  98.  
  99. @DocumentedDefinition("anyEncounterDuringPeriod")
  100. public CohortDefinition getAnyEncounterDuringPeriod() {
  101. EncounterCohortDefinition cd = new EncounterCohortDefinition();
  102. cd.addParameter(new Parameter("onOrAfter", "reporting.parameter.onOrAfter", Date.class));
  103. cd.addParameter(new Parameter("onOrBefore", "reporting.parameter.onOrBefore", Date.class));
  104. return new MappedParametersCohortDefinition(cd, "onOrAfter", "startDate", "onOrBefore", "endDate");
  105. }
  106.  
  107. @DocumentedDefinition("anyEncounterOfTypesDuringPeriod")
  108. public CohortDefinition getAnyEncounterOfTypesDuringPeriod() {
  109. EncounterCohortDefinition cd = new EncounterCohortDefinition();
  110. cd.addParameter(new Parameter("onOrAfter", "reporting.parameter.startDate", Date.class));
  111. cd.addParameter(new Parameter("onOrBefore", "reporting.parameter.endDate", Date.class));
  112. cd.addParameter(new Parameter("encounterTypeList", "reporting.parameter.encounterTypeList", EncounterType.class, List.class, null));
  113. return new MappedParametersCohortDefinition(cd, "onOrAfter", "startDate", "onOrBefore", "endDate", "encounterTypeList", "encounterTypes");
  114. }
  115.  
  116. @DocumentedDefinition("bornDuringPeriod")
  117. public CohortDefinition getBornDuringPeriod() {
  118. BirthAndDeathCohortDefinition cd = new BirthAndDeathCohortDefinition();
  119. cd.addParameter(new Parameter("bornOnOrAfter", "reporting.parameter.startDate", Date.class));
  120. cd.addParameter(new Parameter("bornOnOrBefore", "reporting.parameter.endDate", Date.class));
  121. return new MappedParametersCohortDefinition(cd, "bornOnOrAfter", "startDate", "bornOnOrBefore", "endDate");
  122. }
  123.  
  124. @DocumentedDefinition("diedDuringPeriod")
  125. public CohortDefinition getDiedDuringPeriod() {
  126. BirthAndDeathCohortDefinition cd = new BirthAndDeathCohortDefinition();
  127. cd.addParameter(new Parameter("diedOnOrAfter", "reporting.parameter.startDate", Date.class));
  128. cd.addParameter(new Parameter("diedOnOrBefore", "reporting.parameter.endDate", Date.class));
  129. return new MappedParametersCohortDefinition(cd, "diedOnOrAfter", "startDate", "diedOnOrBefore", "endDate");
  130. }
  131.  
  132. /* START OF NEW DEFINITION KEYS */
  133. @DocumentedDefinition("enrolledInProgram")
  134. public CohortDefinition getProgrammeEnrollments(){
  135. ProgramEnrollmentCohortDefinition cd = new ProgramEnrollmentCohortDefinition();
  136. cd.addParameter(new Parameter("programmeList", "reporting.parameter.programs", Program.class, List.class, null));
  137. cd.addParameter(new Parameter("enrolledOnOrBefore", "reporting.parameter.startDate", Date.class));
  138. cd.addParameter(new Parameter("enrolledOnOrAfter", "reporting.parameter.endDate", Date.class));
  139. cd.addParameter(new Parameter("completedOnOrBefore", "reporting.parameter.startDate", Date.class));
  140. cd.addParameter(new Parameter("completedOnOrAfter", "reporting.parameter.endDate", Date.class));
  141. return cd;
  142. }
  143.  
  144. @DocumentedDefinition("enrolledAtLocation")
  145. public CohortDefinition getProgrammeEnrollmentsAtLocation(){
  146. ProgramEnrollmentCohortDefinition cd = new ProgramEnrollmentCohortDefinition();
  147. cd.addParameter(new Parameter("locationList", "reporting.parameter.locationList", Location.class, List.class, null));
  148. return cd;
  149. }
  150. /* END OF NEW DEFINITION KEYS */
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement