From 1e2a8c57560c93b162d044801dd6dcc4d8254f31 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Fri, 9 Jun 2023 12:12:04 +0300 Subject: [PATCH 01/98] Add support for platform 2.6.0 --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 0f93d574c0..98efd1d4b3 100755 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.openmrs.module kenyaemr - 18.6.0 + 18.6.1 pom KenyaEMR OpenMRS-based EMR for Kenya @@ -46,7 +46,7 @@ - 2.3.3 + 2.6.0 2.0 20150123 @@ -462,7 +462,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public @@ -470,7 +470,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public false From 2f2627ced440b281e11095594663a82bde878516 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Mon, 12 Jun 2023 15:11:53 +0300 Subject: [PATCH 02/98] Module upgrade --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 98efd1d4b3..d850954071 100755 --- a/pom.xml +++ b/pom.xml @@ -67,12 +67,12 @@ 1.11.0 1.3.4 1.5.0 - 1.22.0 + 1.25.0 0.2.14 - 3.15.0 + 3.23.0 2.26.0 - 2.0.7 - 1.5.0 + 2.0.9 + 1.15.0 1.5.0-SNAPSHOT UTF-8 From fd30dadfa361e8aeaa20e473ac173960a9f6fdf9 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 13:16:39 +0300 Subject: [PATCH 03/98] Added a chore to migrate patient conditions --- .../MigratePatientConditionsFromObs.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java new file mode 100644 index 0000000000..70c6222b7b --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -0,0 +1,50 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientConditionsFromObs") +public class MigratePatientConditionsFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateConditions = "insert into conditions (condition_id, additional_detail, previous_version, condition_coded, condition_non_coded,\n" + + " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + + " date_changed, encounter_id, form_namespace_and_path) \n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 1284) t1\n" + + " on (o1.obs_group_id = t1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = t1.value_coded )\n" + + " left join (select * from obs where concept_id = 159948) t2\n" + + " on (o1.obs_group_id = t2.obs_group_id)\n" + + " left join (select * from obs where concept_id = 166937) t3\n" + + " on (o1.obs_group_id = t3.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = t3.value_coded )\n" + + " where o1.obs_group_id is not null and o1.concept_id in (1284,159948,166937)\n" + + " and t1.concept_id is not null \n" + + " group by o1.person_id, o1.obs_group_id;"; + + + Context.getAdministrationService().executeSQL(migrateConditions, false); + + + printWriter.println("Completed migrating conditions"); + } +} \ No newline at end of file From aae3e2b388145037e8047443d7144d3013df660f Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 16:02:34 +0300 Subject: [PATCH 04/98] Added a chore to migrate patient allergies --- .../chore/MigratePatientAllergiesFromObs.java | 71 +++++++++++++++++++ pom.xml | 4 +- 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java new file mode 100644 index 0000000000..81c71ec587 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java @@ -0,0 +1,71 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientAllergiesFromObs") +public class MigratePatientAllergiesFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateAllergies = "insert into allergy (allergy_id, patient_id, severity_concept_id, coded_allergen, non_coded_allergen, allergen_type,\n" + + " comments, creator, date_created, changed_by, date_changed, voided, voided_by, date_voided,\n" + + " void_reason, uuid, form_namespace_and_path, encounter_id) \n" + + "select null,o1.person_id,cn4.concept_id, case when cn1.concept_id is not null then cn1.concept_id else cn2.concept_id end,\n" + + " case when cn1.concept_id is not null then cn1.name else cn2.name end,\n" + + " case when cn2.concept_id is not null then 'Medication' else 'other' end,null,o1.creator,o1.date_created,null,null,o1.voided,\n" + + " o1.voided_by,o1.date_voided,reaction.obs_id,o1.uuid,null,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 160643) allergen1\n" + + " on (o1.obs_group_id = allergen1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = allergen1.value_coded )\n" + + " left join (select * from obs where concept_id = 1193) allergen2\n" + + " on (o1.obs_group_id = allergen2.obs_group_id)\n" + + " LEFT JOIN concept_name cn2\n" + + " ON ( cn2.concept_id = allergen2.value_coded )\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " left join (select * from obs where concept_id = 162760) severity\n" + + " on (o1.obs_group_id = severity.obs_group_id)\n" + + " LEFT JOIN concept_name cn4\n" + + " ON ( cn4.concept_id = severity.value_coded )\n" + + " where (allergen1.value_coded != 1066 or allergen2.value_coded != 1066)\n" + + " AND o1.obs_group_id IS NOT NULL AND o1.concept_id in (160643,159935,162760,1193) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String migrateAllergyReactions = "insert into allergy_reaction (allergy_reaction_id, allergy_id, reaction_concept_id, reaction_non_coded, uuid) \n" + + "select null,allergy_id, cn3.concept_id, cn3.name,reaction.uuid\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " inner join allergy al on al.void_reason = reaction.obs_id\n" + + " where o1.obs_group_id IS NOT NULL AND o1.concept_id in (159935) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String removeJoinColumn = "update allergy set void_reason = null;"; + + Context.getAdministrationService().executeSQL(migrateAllergies, false); + Context.getAdministrationService().executeSQL(migrateAllergyReactions, false); + Context.getAdministrationService().executeSQL(removeJoinColumn, false); + + + printWriter.println("Completed migrating patients allergies"); + } +} diff --git a/pom.xml b/pom.xml index 0f93d574c0..34f08a8595 100755 --- a/pom.xml +++ b/pom.xml @@ -462,7 +462,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public @@ -470,7 +470,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public false From 329cca6d19f64b449811e25178b34c5706145bb9 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 4 Jul 2023 08:50:17 +0300 Subject: [PATCH 05/98] Post upgrade changes --- .../MigratePatientConditionsFromObs.java | 4 ++-- pom.xml | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java index 70c6222b7b..927260a8d6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -24,8 +24,8 @@ public void perform(PrintWriter printWriter) throws APIException { " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + " date_changed, encounter_id, form_namespace_and_path) \n" + - "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + - " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'INACTIVE', 'PROVISIONAL',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,o1.uuid,o1.creator,null,null,o1.person_id,null,null,null,null\n" + " from obs o1\n" + " left join (select * from obs where concept_id = 1284) t1\n" + " on (o1.obs_group_id = t1.obs_group_id)\n" + diff --git a/pom.xml b/pom.xml index 34f08a8595..b6731a776c 100755 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ - 2.3.3 + 2.6.1 2.0 20150123 @@ -67,12 +67,12 @@ 1.11.0 1.3.4 1.5.0 - 1.22.0 + 1.25.0 0.2.14 - 3.15.0 + 3.23.0 2.26.0 - 2.0.7 - 1.5.0 + 2.0.9 + 1.15.0 1.5.0-SNAPSHOT UTF-8 @@ -242,7 +242,7 @@ ${bahmniAppointmentsVersion} provided - + org.openmrs.module webservices.rest-omod @@ -274,12 +274,12 @@ test - + From fc8061ab66ac61c39524293f6a936899a60d0267 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 22 Aug 2023 00:23:23 +0300 Subject: [PATCH 06/98] Update referredAndLinkedSinceThreeMonthsAgo clients query to support platform 2.6 --- .../MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java index ac2b5793ee..8ed0c6c6dd 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java @@ -1193,8 +1193,8 @@ public CohortDefinition referredAndLinkedSinceThreeMonthsAgo() { "from kenyaemr_etl.etl_hts_referral_and_linkage r\n" + "where (r.ccc_number != '' or r.ccc_number IS NOT NULL)\n" + " and (r.facility_linked_to != '' or r.facility_linked_to IS NOT NULL)\n" + - " and (r.art_start_date is not null or r.art_start_date != '')\n" + - " and (r.enrollment_date is not null or r.enrollment_date != '')\n" + + " and r.art_start_date is not null \n" + + " and r.enrollment_date is not null \n" + " and r.visit_date between date_sub(date(DATE_SUB(date(:endDate), INTERVAL DAYOFMONTH(date(:endDate)) - 1 DAY)),\n" + " interval 3 MONTH) and date(:endDate);"; SqlCohortDefinition cd = new SqlCohortDefinition(); From b9c42563e812934f6aad2ded51b0b5eecceab8cd Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 13:16:39 +0300 Subject: [PATCH 07/98] Added a chore to migrate patient conditions --- .../MigratePatientConditionsFromObs.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java new file mode 100644 index 0000000000..70c6222b7b --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -0,0 +1,50 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientConditionsFromObs") +public class MigratePatientConditionsFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateConditions = "insert into conditions (condition_id, additional_detail, previous_version, condition_coded, condition_non_coded,\n" + + " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + + " date_changed, encounter_id, form_namespace_and_path) \n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 1284) t1\n" + + " on (o1.obs_group_id = t1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = t1.value_coded )\n" + + " left join (select * from obs where concept_id = 159948) t2\n" + + " on (o1.obs_group_id = t2.obs_group_id)\n" + + " left join (select * from obs where concept_id = 166937) t3\n" + + " on (o1.obs_group_id = t3.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = t3.value_coded )\n" + + " where o1.obs_group_id is not null and o1.concept_id in (1284,159948,166937)\n" + + " and t1.concept_id is not null \n" + + " group by o1.person_id, o1.obs_group_id;"; + + + Context.getAdministrationService().executeSQL(migrateConditions, false); + + + printWriter.println("Completed migrating conditions"); + } +} \ No newline at end of file From d344454c0190a97ed10aed49c4db8d0894b598d9 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 16:02:34 +0300 Subject: [PATCH 08/98] Added a chore to migrate patient allergies --- .../chore/MigratePatientAllergiesFromObs.java | 71 +++++++++++++++++++ pom.xml | 4 +- 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java new file mode 100644 index 0000000000..81c71ec587 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java @@ -0,0 +1,71 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientAllergiesFromObs") +public class MigratePatientAllergiesFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateAllergies = "insert into allergy (allergy_id, patient_id, severity_concept_id, coded_allergen, non_coded_allergen, allergen_type,\n" + + " comments, creator, date_created, changed_by, date_changed, voided, voided_by, date_voided,\n" + + " void_reason, uuid, form_namespace_and_path, encounter_id) \n" + + "select null,o1.person_id,cn4.concept_id, case when cn1.concept_id is not null then cn1.concept_id else cn2.concept_id end,\n" + + " case when cn1.concept_id is not null then cn1.name else cn2.name end,\n" + + " case when cn2.concept_id is not null then 'Medication' else 'other' end,null,o1.creator,o1.date_created,null,null,o1.voided,\n" + + " o1.voided_by,o1.date_voided,reaction.obs_id,o1.uuid,null,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 160643) allergen1\n" + + " on (o1.obs_group_id = allergen1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = allergen1.value_coded )\n" + + " left join (select * from obs where concept_id = 1193) allergen2\n" + + " on (o1.obs_group_id = allergen2.obs_group_id)\n" + + " LEFT JOIN concept_name cn2\n" + + " ON ( cn2.concept_id = allergen2.value_coded )\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " left join (select * from obs where concept_id = 162760) severity\n" + + " on (o1.obs_group_id = severity.obs_group_id)\n" + + " LEFT JOIN concept_name cn4\n" + + " ON ( cn4.concept_id = severity.value_coded )\n" + + " where (allergen1.value_coded != 1066 or allergen2.value_coded != 1066)\n" + + " AND o1.obs_group_id IS NOT NULL AND o1.concept_id in (160643,159935,162760,1193) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String migrateAllergyReactions = "insert into allergy_reaction (allergy_reaction_id, allergy_id, reaction_concept_id, reaction_non_coded, uuid) \n" + + "select null,allergy_id, cn3.concept_id, cn3.name,reaction.uuid\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " inner join allergy al on al.void_reason = reaction.obs_id\n" + + " where o1.obs_group_id IS NOT NULL AND o1.concept_id in (159935) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String removeJoinColumn = "update allergy set void_reason = null;"; + + Context.getAdministrationService().executeSQL(migrateAllergies, false); + Context.getAdministrationService().executeSQL(migrateAllergyReactions, false); + Context.getAdministrationService().executeSQL(removeJoinColumn, false); + + + printWriter.println("Completed migrating patients allergies"); + } +} diff --git a/pom.xml b/pom.xml index 871b6b1a7e..b1938689bb 100755 --- a/pom.xml +++ b/pom.xml @@ -462,7 +462,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public @@ -470,7 +470,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public false From 08d72a0f9733ee0dfc8a01fe3b392c9e470a06e6 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 4 Jul 2023 08:50:17 +0300 Subject: [PATCH 09/98] Post upgrade changes --- .../MigratePatientConditionsFromObs.java | 4 ++-- pom.xml | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java index 70c6222b7b..927260a8d6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -24,8 +24,8 @@ public void perform(PrintWriter printWriter) throws APIException { " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + " date_changed, encounter_id, form_namespace_and_path) \n" + - "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + - " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'INACTIVE', 'PROVISIONAL',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,o1.uuid,o1.creator,null,null,o1.person_id,null,null,null,null\n" + " from obs o1\n" + " left join (select * from obs where concept_id = 1284) t1\n" + " on (o1.obs_group_id = t1.obs_group_id)\n" + diff --git a/pom.xml b/pom.xml index b1938689bb..bbd72ad1fa 100755 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ - 2.3.3 + 2.6.1 2.0 20150123 @@ -67,12 +67,12 @@ 1.11.0 1.3.4 1.5.0 - 1.22.0 + 1.25.0 0.2.14 - 3.15.0 + 3.23.0 2.26.0 - 2.0.7 - 1.5.0 + 2.0.9 + 1.15.0 1.5.0-SNAPSHOT UTF-8 @@ -242,7 +242,7 @@ ${bahmniAppointmentsVersion} provided - + org.openmrs.module webservices.rest-omod @@ -274,12 +274,12 @@ test - + From e6401530d3704554ce8f498c032b31ec396ad649 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Fri, 9 Jun 2023 12:12:04 +0300 Subject: [PATCH 10/98] Add support for platform 2.6.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bbd72ad1fa..b3871d0bc5 100755 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.openmrs.module kenyaemr - 18.6.2 + 18.6.1 pom KenyaEMR OpenMRS-based EMR for Kenya From fd366e03b1223ae04c964a79261bf195ac71dca2 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 22 Aug 2023 00:23:23 +0300 Subject: [PATCH 11/98] Update referredAndLinkedSinceThreeMonthsAgo clients query to support platform 2.6 --- .../MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java index 49f5b5e46e..bb8c81ca05 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java @@ -1197,8 +1197,8 @@ public CohortDefinition referredAndLinkedSinceThreeMonthsAgo() { "from kenyaemr_etl.etl_hts_referral_and_linkage r\n" + "where (r.ccc_number != '' or r.ccc_number IS NOT NULL)\n" + " and (r.facility_linked_to != '' or r.facility_linked_to IS NOT NULL)\n" + - " and (r.art_start_date is not null or r.art_start_date != '')\n" + - " and (r.enrollment_date is not null or r.enrollment_date != '')\n" + + " and r.art_start_date is not null \n" + + " and r.enrollment_date is not null \n" + " and r.visit_date between date_sub(date(DATE_SUB(date(:endDate), INTERVAL DAYOFMONTH(date(:endDate)) - 1 DAY)),\n" + " interval 3 MONTH) and date(:endDate);"; SqlCohortDefinition cd = new SqlCohortDefinition(); From ff1c04df82db51aa7e896cb1ee06b939826cbccb Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 13:16:39 +0300 Subject: [PATCH 12/98] Added a chore to migrate patient conditions --- .../MigratePatientConditionsFromObs.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java new file mode 100644 index 0000000000..70c6222b7b --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -0,0 +1,50 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientConditionsFromObs") +public class MigratePatientConditionsFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateConditions = "insert into conditions (condition_id, additional_detail, previous_version, condition_coded, condition_non_coded,\n" + + " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + + " date_changed, encounter_id, form_namespace_and_path) \n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 1284) t1\n" + + " on (o1.obs_group_id = t1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = t1.value_coded )\n" + + " left join (select * from obs where concept_id = 159948) t2\n" + + " on (o1.obs_group_id = t2.obs_group_id)\n" + + " left join (select * from obs where concept_id = 166937) t3\n" + + " on (o1.obs_group_id = t3.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = t3.value_coded )\n" + + " where o1.obs_group_id is not null and o1.concept_id in (1284,159948,166937)\n" + + " and t1.concept_id is not null \n" + + " group by o1.person_id, o1.obs_group_id;"; + + + Context.getAdministrationService().executeSQL(migrateConditions, false); + + + printWriter.println("Completed migrating conditions"); + } +} \ No newline at end of file From 787cfbc4cecd410791078040c8ba890ce12d539d Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Wed, 21 Jun 2023 16:02:34 +0300 Subject: [PATCH 13/98] Added a chore to migrate patient allergies --- .../chore/MigratePatientAllergiesFromObs.java | 71 +++++++++++++++++++ pom.xml | 4 +- 2 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java new file mode 100644 index 0000000000..81c71ec587 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientAllergiesFromObs.java @@ -0,0 +1,71 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.chore; + +import org.openmrs.api.APIException; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.chore.AbstractChore; +import org.springframework.stereotype.Component; + +import java.io.PrintWriter; + +@Component("kenyaemr.chore.migratePatientAllergiesFromObs") +public class MigratePatientAllergiesFromObs extends AbstractChore { + @Override + public void perform(PrintWriter printWriter) throws APIException { + String migrateAllergies = "insert into allergy (allergy_id, patient_id, severity_concept_id, coded_allergen, non_coded_allergen, allergen_type,\n" + + " comments, creator, date_created, changed_by, date_changed, voided, voided_by, date_voided,\n" + + " void_reason, uuid, form_namespace_and_path, encounter_id) \n" + + "select null,o1.person_id,cn4.concept_id, case when cn1.concept_id is not null then cn1.concept_id else cn2.concept_id end,\n" + + " case when cn1.concept_id is not null then cn1.name else cn2.name end,\n" + + " case when cn2.concept_id is not null then 'Medication' else 'other' end,null,o1.creator,o1.date_created,null,null,o1.voided,\n" + + " o1.voided_by,o1.date_voided,reaction.obs_id,o1.uuid,null,null\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 160643) allergen1\n" + + " on (o1.obs_group_id = allergen1.obs_group_id)\n" + + " LEFT JOIN concept_name cn1\n" + + " ON ( cn1.concept_id = allergen1.value_coded )\n" + + " left join (select * from obs where concept_id = 1193) allergen2\n" + + " on (o1.obs_group_id = allergen2.obs_group_id)\n" + + " LEFT JOIN concept_name cn2\n" + + " ON ( cn2.concept_id = allergen2.value_coded )\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " left join (select * from obs where concept_id = 162760) severity\n" + + " on (o1.obs_group_id = severity.obs_group_id)\n" + + " LEFT JOIN concept_name cn4\n" + + " ON ( cn4.concept_id = severity.value_coded )\n" + + " where (allergen1.value_coded != 1066 or allergen2.value_coded != 1066)\n" + + " AND o1.obs_group_id IS NOT NULL AND o1.concept_id in (160643,159935,162760,1193) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String migrateAllergyReactions = "insert into allergy_reaction (allergy_reaction_id, allergy_id, reaction_concept_id, reaction_non_coded, uuid) \n" + + "select null,allergy_id, cn3.concept_id, cn3.name,reaction.uuid\n" + + " from obs o1\n" + + " left join (select * from obs where concept_id = 159935) reaction\n" + + " on (o1.obs_group_id = reaction.obs_group_id)\n" + + " LEFT JOIN concept_name cn3\n" + + " ON ( cn3.concept_id = reaction.value_coded )\n" + + " inner join allergy al on al.void_reason = reaction.obs_id\n" + + " where o1.obs_group_id IS NOT NULL AND o1.concept_id in (159935) \n" + + " group by o1.person_id, o1.obs_group_id;"; + + String removeJoinColumn = "update allergy set void_reason = null;"; + + Context.getAdministrationService().executeSQL(migrateAllergies, false); + Context.getAdministrationService().executeSQL(migrateAllergyReactions, false); + Context.getAdministrationService().executeSQL(removeJoinColumn, false); + + + printWriter.println("Completed migrating patients allergies"); + } +} diff --git a/pom.xml b/pom.xml index 871b6b1a7e..b1938689bb 100755 --- a/pom.xml +++ b/pom.xml @@ -462,7 +462,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public @@ -470,7 +470,7 @@ openmrs-repo OpenMRS Nexus Repository - http://mavenrepo.openmrs.org/nexus/content/repositories/public + https://mavenrepo.openmrs.org/nexus/content/repositories/public false From 1e0f21ee9348668a2125a0f61bc371cb5f7d39b1 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 4 Jul 2023 08:50:17 +0300 Subject: [PATCH 14/98] Post upgrade changes --- .../MigratePatientConditionsFromObs.java | 4 ++-- pom.xml | 24 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java index 70c6222b7b..927260a8d6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/chore/MigratePatientConditionsFromObs.java @@ -24,8 +24,8 @@ public void perform(PrintWriter printWriter) throws APIException { " condition_coded_name, clinical_status, verification_status, onset_date, date_created, voided,\n" + " date_voided, void_reason, uuid, creator, voided_by, changed_by, patient_id, end_date,\n" + " date_changed, encounter_id, form_namespace_and_path) \n" + - "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'inactive', 'provisional',t2.value_datetime, o1.obs_datetime,\n" + - " 0, null,null,null,o1.creator,null,null,o1.person_id,null,null,o1.encounter_id,null\n" + + "select null, null, null,cn1.concept_id,null,cn1.concept_id , 'INACTIVE', 'PROVISIONAL',t2.value_datetime, o1.obs_datetime,\n" + + " 0, null,null,o1.uuid,o1.creator,null,null,o1.person_id,null,null,null,null\n" + " from obs o1\n" + " left join (select * from obs where concept_id = 1284) t1\n" + " on (o1.obs_group_id = t1.obs_group_id)\n" + diff --git a/pom.xml b/pom.xml index b1938689bb..bbd72ad1fa 100755 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ - 2.3.3 + 2.6.1 2.0 20150123 @@ -67,12 +67,12 @@ 1.11.0 1.3.4 1.5.0 - 1.22.0 + 1.25.0 0.2.14 - 3.15.0 + 3.23.0 2.26.0 - 2.0.7 - 1.5.0 + 2.0.9 + 1.15.0 1.5.0-SNAPSHOT UTF-8 @@ -242,7 +242,7 @@ ${bahmniAppointmentsVersion} provided - + org.openmrs.module webservices.rest-omod @@ -274,12 +274,12 @@ test - + From 5fddc8bcf45613390c3504fab83ee1020a34d8cd Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 22 Aug 2023 00:23:23 +0300 Subject: [PATCH 15/98] Update referredAndLinkedSinceThreeMonthsAgo clients query to support platform 2.6 --- .../MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java index 49f5b5e46e..bb8c81ca05 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH731Greencard/ETLMoh731GreenCardCohortLibrary.java @@ -1197,8 +1197,8 @@ public CohortDefinition referredAndLinkedSinceThreeMonthsAgo() { "from kenyaemr_etl.etl_hts_referral_and_linkage r\n" + "where (r.ccc_number != '' or r.ccc_number IS NOT NULL)\n" + " and (r.facility_linked_to != '' or r.facility_linked_to IS NOT NULL)\n" + - " and (r.art_start_date is not null or r.art_start_date != '')\n" + - " and (r.enrollment_date is not null or r.enrollment_date != '')\n" + + " and r.art_start_date is not null \n" + + " and r.enrollment_date is not null \n" + " and r.visit_date between date_sub(date(DATE_SUB(date(:endDate), INTERVAL DAYOFMONTH(date(:endDate)) - 1 DAY)),\n" + " interval 3 MONTH) and date(:endDate);"; SqlCohortDefinition cd = new SqlCohortDefinition(); From 76c1fe87c6997b8d09a41568973d61191b45ed0a Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Fri, 9 Jun 2023 12:12:04 +0300 Subject: [PATCH 16/98] Add support for platform 2.6.0 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index bbd72ad1fa..b3871d0bc5 100755 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.openmrs.module kenyaemr - 18.6.2 + 18.6.1 pom KenyaEMR OpenMRS-based EMR for Kenya From a1e4bdb102db0595e8987a828ad5ac8c8aa54d7d Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Tue, 3 Oct 2023 10:18:34 +0300 Subject: [PATCH 17/98] Upgrade to omrs 2.6.2 with encounter diagnosis support --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b3871d0bc5..36bf5dc2d2 100755 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ - 2.6.1 + 2.6.2 2.0 20150123 From 3cb7eb5b3179188019c50ad371e57d90f0f9e46f Mon Sep 17 00:00:00 2001 From: CynthiaKamau Date: Wed, 9 Aug 2023 11:17:54 +0300 Subject: [PATCH 18/98] (feat) Check for specific appointment forms before syncing to bahmni --- .../SyncHFEAppointmentsWithBahmniModule.java | 113 ++++++++++-------- 1 file changed, 64 insertions(+), 49 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java index eea971bd95..7f78594ccb 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java @@ -88,68 +88,73 @@ public class SyncHFEAppointmentsWithBahmniModule implements AfterReturningAdvice Date nextApptDate = null; Date refillApptDate = null; Integer appointmentReason = null; - - @Override public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable { if (method.getName().equals("saveEncounter")) { // handles both create and edit Encounter enc = (Encounter) args[0]; - Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - - if(enc.getVoided() == true && editAppointment != null && enc.getForm() != null){ - // Get appointment obs - Appointment hivFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment drugRefillAppointment = hivFollowUpAppointment.getRelatedAppointment(); + List appointmentForms = Arrays.asList(HivMetadata._Form.MOH_257_VISIT_SUMMARY, HivMetadata._Form.HIV_GREEN_CARD, MchMetadata._Form.MCHMS_ANTENATAL_VISIT, MchMetadata._Form.MCHCS_FOLLOW_UP, MchMetadata._Form.MCHMS_POSTNATAL_VISIT, PREP_FOLLOWUP_FORM, PREP_INITIAL_FORM, PREP_MONTHLY_REFILL_FORM, KP_CLINICAL_VISIT_FORM, TbMetadata._Form.TB_FOLLOW_UP ); + + if (appointmentForms.contains(enc.getForm().getUuid())) { + Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); + + if(enc.getVoided() == true && editAppointment != null && enc.getForm() != null){ + // Get appointment obs + Appointment hivFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); + Appointment drugRefillAppointment = hivFollowUpAppointment.getRelatedAppointment(); + + // delete HIV followup appointment + if(hivFollowUpAppointment != null ) { + nxtAppointment = true; + hivFollowUpAppointment.setVoided(true); + hivFollowUpAppointment.setDateVoided(new Date()); + hivFollowUpAppointment.setVoidedBy(Context.getAuthenticatedUser()); + } - // delete HIV followup appointment - if(hivFollowUpAppointment != null ) { - nxtAppointment = true; - hivFollowUpAppointment.setVoided(true); - hivFollowUpAppointment.setDateVoided(new Date()); - hivFollowUpAppointment.setVoidedBy(Context.getAuthenticatedUser()); - } + if(nxtAppointment && followUpAppointment) { + Appointment app = appointmentsService.validateAndSave(hivFollowUpAppointment); + } - if(nxtAppointment && followUpAppointment) { - Appointment app = appointmentsService.validateAndSave(hivFollowUpAppointment); - } + // delete existing appointment for drug refill + if(drugRefillAppointment != null) { + drugRefillAppointment.setVoided(true); + drugRefillAppointment.setDateVoided(new Date()); + drugRefillAppointment.setVoidedBy(Context.getAuthenticatedUser()); + Appointment app = appointmentsService.validateAndSave(drugRefillAppointment); + } - // delete existing appointment for drug refill - if(drugRefillAppointment != null) { - drugRefillAppointment.setVoided(true); - drugRefillAppointment.setDateVoided(new Date()); - drugRefillAppointment.setVoidedBy(Context.getAuthenticatedUser()); - Appointment app = appointmentsService.validateAndSave(drugRefillAppointment); + } else if (editAppointment != null && enc.getForm() != null && + (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { + // pick HIV followup forms + processEditHivFollowupEncounter(enc); + + } else if (enc != null && enc.getForm() != null && + (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { + // pick HIV followup forms + processCreateHivFollowupEncounter(enc); + + } else if(enc != null && enc.getForm() != null && + (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_ANTENATAL_VISIT) || + enc.getForm().getUuid().equals(MchMetadata._Form.MCHCS_FOLLOW_UP) || + enc.getForm().getUuid().equals(PREP_FOLLOWUP_FORM) || + enc.getForm().getUuid().equals(PREP_INITIAL_FORM) || + enc.getForm().getUuid().equals(PREP_MONTHLY_REFILL_FORM) || + enc.getForm().getUuid().equals(KP_CLINICAL_VISIT_FORM) || + enc.getForm().getUuid().equals(TbMetadata._Form.TB_FOLLOW_UP) )) { + + processProgramAppointments(enc); + } else if(enc != null && (enc.getForm() != null && (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_POSTNATAL_VISIT) || enc.getForm() != null && enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_DELIVERY)))) { + + processMCHEncounter(enc); } - - } else if (editAppointment != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { - // pick HIV followup forms - processEditHivFollowupEncounter(enc); - - } else if (enc != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { - // pick HIV followup forms - processCreateHivFollowupEncounter(enc); - - } else if(enc != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_ANTENATAL_VISIT) || - enc.getForm().getUuid().equals(MchMetadata._Form.MCHCS_FOLLOW_UP) || - enc.getForm().getUuid().equals(PREP_FOLLOWUP_FORM) || - enc.getForm().getUuid().equals(PREP_INITIAL_FORM) || - enc.getForm().getUuid().equals(PREP_MONTHLY_REFILL_FORM) || - enc.getForm().getUuid().equals(KP_CLINICAL_VISIT_FORM) || - enc.getForm().getUuid().equals(TbMetadata._Form.TB_FOLLOW_UP) )) { - - processProgramEncounter(enc); - } else if(enc != null && (enc.getForm() != null && (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_POSTNATAL_VISIT) || enc.getForm() != null && enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_DELIVERY)))) { - - processMCHEncounter(enc); } } } + /** + * Edit HIV appointments ie HIV consultation, Drug refill and lab + */ private void processEditHivFollowupEncounter(Encounter enc) throws Throwable { // Get appointment obs Appointment hivFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); @@ -243,6 +248,9 @@ private void processEditHivFollowupEncounter(Encounter enc) throws Throwable { } } + /** + * Create HIV appointments ie HIV consultation, Drug refill and lab + */ private void processCreateHivFollowupEncounter(Encounter enc) throws Throwable { Appointment nextAppointment = new Appointment(); @@ -346,7 +354,11 @@ private void processCreateHivFollowupEncounter(Encounter enc) throws Throwable { } - private void processProgramEncounter(Encounter enc) throws Throwable { + /** + * Create and edit PREP or TB or KP appointments + * Create MCH appointments + */ + private void processProgramAppointments(Encounter enc) throws Throwable { // MCH or PREP or TB or KP appointment List obs = obsService.getObservations( Arrays.asList(personService.getPerson(enc.getPatient().getPersonId())), @@ -413,6 +425,9 @@ private void processProgramEncounter(Encounter enc) throws Throwable { } } + /** + * Edit the mother and baby appointments which are related + */ private void processMCHEncounter(Encounter enc) throws Throwable { //MCH appointments List obs = obsService.getObservations( From af9e09e31558d2a1a16df26b4f278a7fc2095809 Mon Sep 17 00:00:00 2001 From: Patrick Waweru Date: Thu, 5 Oct 2023 08:22:16 +0300 Subject: [PATCH 19/98] Added new facility named Kineni Health centre in Kisii --- api/src/main/resources/metadata/mfl_2014-05-12.csv | 1 + 1 file changed, 1 insertion(+) diff --git a/api/src/main/resources/metadata/mfl_2014-05-12.csv b/api/src/main/resources/metadata/mfl_2014-05-12.csv index bfbe8b186c..38ca69eab5 100755 --- a/api/src/main/resources/metadata/mfl_2014-05-12.csv +++ b/api/src/main/resources/metadata/mfl_2014-05-12.csv @@ -13724,3 +13724,4 @@ Code,Officialname,Province,County,Sub county,Ward,Facility type,Owner type,,,,Co 27179,Kiaswa Initiative Clinic,Kiambu,Kiambu,Juja,,Medical Clinic,Ministry of Health,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 29292,BHESP Kariobangi North Wellness Centre,Nairobi,Nairobi,Embakasi North,Kariobangi North,Medical Clinic,Private Practice,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 27932,Eldoret Wellness Centre,Uasin Gishu,Turbo,Kapsaos,,Medical Clinic,Private Practice,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +22257,Kineni Health centre,"Kisii,","Kisii,",Bomachoge chache,Sengera Bosoti,Medical Clinic,Ministry of Health,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, From 37751fea4c353aba2e72b8a204588429a5cb9022 Mon Sep 17 00:00:00 2001 From: CynthiaKamau Date: Mon, 16 Oct 2023 22:11:04 +0300 Subject: [PATCH 20/98] (fix) Fix null pointer in encounter while syncing appointments to bahmni --- .../kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java index 7f78594ccb..e642aa9c7c 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java @@ -95,7 +95,7 @@ public void afterReturning(Object returnValue, Method method, Object[] args, Obj Encounter enc = (Encounter) args[0]; List appointmentForms = Arrays.asList(HivMetadata._Form.MOH_257_VISIT_SUMMARY, HivMetadata._Form.HIV_GREEN_CARD, MchMetadata._Form.MCHMS_ANTENATAL_VISIT, MchMetadata._Form.MCHCS_FOLLOW_UP, MchMetadata._Form.MCHMS_POSTNATAL_VISIT, PREP_FOLLOWUP_FORM, PREP_INITIAL_FORM, PREP_MONTHLY_REFILL_FORM, KP_CLINICAL_VISIT_FORM, TbMetadata._Form.TB_FOLLOW_UP ); - if (appointmentForms.contains(enc.getForm().getUuid())) { + if (enc != null && appointmentForms.contains(enc.getForm().getUuid())) { Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); if(enc.getVoided() == true && editAppointment != null && enc.getForm() != null){ From 1e4b58c2db7fe73e90ed2400b2f21a1a70967322 Mon Sep 17 00:00:00 2001 From: makombe Date: Tue, 17 Oct 2023 23:30:03 +0300 Subject: [PATCH 21/98] Fix NEP on sync --- .../kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java index e642aa9c7c..6ee08f9ce3 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java @@ -95,7 +95,7 @@ public void afterReturning(Object returnValue, Method method, Object[] args, Obj Encounter enc = (Encounter) args[0]; List appointmentForms = Arrays.asList(HivMetadata._Form.MOH_257_VISIT_SUMMARY, HivMetadata._Form.HIV_GREEN_CARD, MchMetadata._Form.MCHMS_ANTENATAL_VISIT, MchMetadata._Form.MCHCS_FOLLOW_UP, MchMetadata._Form.MCHMS_POSTNATAL_VISIT, PREP_FOLLOWUP_FORM, PREP_INITIAL_FORM, PREP_MONTHLY_REFILL_FORM, KP_CLINICAL_VISIT_FORM, TbMetadata._Form.TB_FOLLOW_UP ); - if (enc != null && appointmentForms.contains(enc.getForm().getUuid())) { + if (enc != null && enc.getForm() != null && appointmentForms.contains(enc.getForm().getUuid())) { Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); if(enc.getVoided() == true && editAppointment != null && enc.getForm() != null){ From 01b62d4bc008b54e62bc800d10679c44477854ff Mon Sep 17 00:00:00 2001 From: CynthiaKamau Date: Wed, 8 Mar 2023 13:17:01 +0300 Subject: [PATCH 22/98] Redirected registration page to new 03 registration --- .../pages/registration/registrationHome.gsp | 72 ++++--------------- 1 file changed, 12 insertions(+), 60 deletions(-) diff --git a/omod/src/main/webapp/pages/registration/registrationHome.gsp b/omod/src/main/webapp/pages/registration/registrationHome.gsp index a35562d14e..e3d2f8f9f0 100755 --- a/omod/src/main/webapp/pages/registration/registrationHome.gsp +++ b/omod/src/main/webapp/pages/registration/registrationHome.gsp @@ -1,64 +1,16 @@ <% - ui.decorateWith("kenyaemr", "standardPage", [ layout: "sidebar" ]) - - ui.includeJavascript("kenyaemr", "controllers/visit.js") - - def menuItems = [ - [ label: "Find or create patient", iconProvider: "kenyaui", icon: "buttons/patient_search.png", href: ui.pageLink("kenyaemr", "registration/registrationSearch") ] - ] - - def menuItemsNew = [ - [ label: "Seen Patients", iconProvider: "kenyaui", icon: "buttons/patients.png", href: ui.pageLink("kenyaemr", "registration/registrationSearchSeen") ] - ] + ui.decorateWith("kenyaemr", "standardPage") %> - - - -
- ${ ui.includeFragment("kenyaui", "widget/panelMenu", [ heading: "Tasks", items: menuItems ]) } - - ${ ui.decorate("kenyaui", "panel", [ heading: "Select Day to View Scheduled Patients" ], """
""") } - -
-
Active Visits
- -
-
- {{ type.name }} ({{ type.count }}) -
- None -
- -
- -
-
- ${ ui.includeFragment("kenyaui", "widget/panelMenu", [ heading: "", items: menuItemsNew ]) } -
- -
- ${ ui.includeFragment("kenyaemr", "patient/dailySchedule", [ pageProvider: "kenyaemr", page: "registration/registrationViewPatient", date: scheduleDate ]) } -
\ No newline at end of file + //On ready + jq = jQuery; + jq(function () { + // Redirect to O3 + var getUrl = window.location; + var baseUrl = getUrl.protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1]; + baseUrl = baseUrl + "/spa/patient-registration" + var spaUrl = new URL(baseUrl); + window.location.replace(spaUrl); + }); + \ No newline at end of file From fd7a0d286f7e0a31389e41e6e446e9ea385cfa63 Mon Sep 17 00:00:00 2001 From: Patrick Date: Tue, 7 Nov 2023 12:01:38 +0300 Subject: [PATCH 23/98] Added HTS entry point in HTS prediction report, switched reporting to kenyaemr_etl table rather than datatools for risk score and category --- .../hiv/HTSPredictionReportBuilder.java | 5 ++ .../art/ETLHTSEntryPointDataDefinition.java | 47 +++++++++++ .../art/ETLHTSEntryPointDataEvaluator.java | 74 ++++++++++++++++++ .../ETLPredictionCategoryDataEvaluator.java | 2 +- .../art/ETLPredictionScoreDataEvaluator.java | 3 +- .../reports/hts/hts_prediction_template.xls | Bin 7680 -> 25088 bytes 6 files changed, 129 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/ETLHTSEntryPointDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLHTSEntryPointDataEvaluator.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/HTSPredictionReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/HTSPredictionReportBuilder.java index 96567517f1..b87576adc0 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/HTSPredictionReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/HTSPredictionReportBuilder.java @@ -25,6 +25,7 @@ import org.openmrs.module.kenyaemr.reporting.data.converter.definition.MFLCodeDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLFirstHIVTestDateDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLFirstHIVTestResultDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLHTSEntryPointDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLPredictionCategoryDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLPredictionScoreDataDefinition; import org.openmrs.module.metadatadeploy.MetadataUtils; @@ -107,6 +108,9 @@ protected PatientDataSetDefinition screenedPatientsDataSetDefinition(String data DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); DataDefinition nupiDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(nupi.getName(), nupi), identifierFormatter); + ETLHTSEntryPointDataDefinition entryPointDataDefinition = new ETLHTSEntryPointDataDefinition(); + entryPointDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + entryPointDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); ETLPredictionScoreDataDefinition predictionScoreDataDefinition = new ETLPredictionScoreDataDefinition(); predictionScoreDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); predictionScoreDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); @@ -129,6 +133,7 @@ protected PatientDataSetDefinition screenedPatientsDataSetDefinition(String data dsd.addColumn("NUPI", nupiDef, ""); dsd.addColumn("Sex", new GenderDataDefinition(), "", null); dsd.addColumn("UPN", identifierDef, ""); + dsd.addColumn("Entry Point", entryPointDataDefinition, "startDate=${startDate},endDate=${endDate}"); dsd.addColumn("ML Prediction Score", predictionScoreDataDefinition, "startDate=${startDate},endDate=${endDate}"); dsd.addColumn("ML Prediction Category", predictionCategoryDataDefinition, "startDate=${startDate},endDate=${endDate}"); dsd.addColumn("Date Of Test", firstHIVTestDateDataDefinition, "startDate=${startDate},endDate=${endDate}", new DateConverter(DATE_FORMAT)); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/ETLHTSEntryPointDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/ETLHTSEntryPointDataDefinition.java new file mode 100644 index 0000000000..a51e8c0c3a --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/ETLHTSEntryPointDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.art; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * HTS Entry point Data Definition + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class ETLHTSEntryPointDataDefinition extends BaseDataDefinition implements PersonDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public ETLHTSEntryPointDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public ETLHTSEntryPointDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLHTSEntryPointDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLHTSEntryPointDataEvaluator.java new file mode 100644 index 0000000000..249f94819e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLHTSEntryPointDataEvaluator.java @@ -0,0 +1,74 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.art; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.HTSTestEntryPointDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLHTSEntryPointDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLPredictionScoreDataDefinition; +import org.openmrs.module.reporting.data.person.EvaluatedPersonData; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.data.person.evaluator.PersonDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates HTS Entry point Data Definition + */ +@Handler(supports= ETLHTSEntryPointDataDefinition.class, order=50) +public class ETLHTSEntryPointDataEvaluator implements PersonDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedPersonData c = new EvaluatedPersonData(definition, context); + + String qry = "SELECT patient_id, (case hts_entry_point\n" + + " when 5485 then 'In Patient Department(IPD)'\n" + + " when 160542 then 'Out Patient Department(OPD)'\n" + + " when 162181 then 'Peadiatric Clinic'\n" + + " when 160552 then 'Nutrition Clinic'\n" + + " when 160538 then 'PMTCT ANC'\n" + + " when 160456 then 'PMTCT MAT'\n" + + " when 1623 then 'PMTCT PNC'\n" + + " when 160541 then 'TB'\n" + + " when 162050 then 'CCC'\n" + + " when 159940 then 'VCT'\n" + + " when 159938 then 'Home Based Testing'\n" + + " when 159939 then 'Mobile Outreach'\n" + + " when 162223 then 'VMMC'\n" + + " when 160546 then 'STI Clinic'\n" + + " when 160522 then 'Emergency'\n" + + " when 163096 then 'Community Testing'\n" + + " when 5622 then 'Other'\n" + + " else '' end ) as hts_entry_point\n" + + "FROM kenyaemr_etl.etl_hts_eligibility_screening\n" + + "where date(visit_date) >= date(:startDate) and date(visit_date) <= date(:endDate)\n" + + "GROUP BY patient_id;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionCategoryDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionCategoryDataEvaluator.java index 2cb18ae4bf..6671dff4dc 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionCategoryDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionCategoryDataEvaluator.java @@ -35,7 +35,7 @@ public class ETLPredictionCategoryDataEvaluator implements PersonDataEvaluator { public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { EvaluatedPersonData c = new EvaluatedPersonData(definition, context); - String qry = "SELECT patient_id, hts_risk_category FROM kenyaemr_datatools.hts_eligibility_screening where date(visit_date) >= date(:startDate) and date(visit_date) <= date(:endDate) GROUP BY patient_id;"; + String qry = "SELECT patient_id, hts_risk_category FROM kenyaemr_etl.etl_hts_eligibility_screening where date(visit_date) >= date(:startDate) and date(visit_date) <= date(:endDate) GROUP BY patient_id;"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionScoreDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionScoreDataEvaluator.java index 8e6ab678ec..e9ff5b04ec 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionScoreDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/ETLPredictionScoreDataEvaluator.java @@ -35,7 +35,8 @@ public class ETLPredictionScoreDataEvaluator implements PersonDataEvaluator { public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { EvaluatedPersonData c = new EvaluatedPersonData(definition, context); - String qry = "SELECT patient_id, hts_risk_score FROM kenyaemr_datatools.hts_eligibility_screening where date(visit_date) >= date(:startDate) and date(visit_date) <= date(:endDate) GROUP BY patient_id;"; + String qry = "SELECT patient_id, hts_risk_score FROM kenyaemr_etl.etl_hts_eligibility_screening\n" + + "where date(visit_date) >= date(:startDate) and date(visit_date) <= date(:endDate) GROUP BY patient_id;"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); diff --git a/omod/src/main/webapp/resources/reports/hts/hts_prediction_template.xls b/omod/src/main/webapp/resources/reports/hts/hts_prediction_template.xls index c7ae9409d7a1886146872537dd70a9fe6623684b..0f577b9f3ce420c74fdebdd882351651af6d12e2 100644 GIT binary patch literal 25088 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 Date: Tue, 7 Nov 2023 12:55:04 +0300 Subject: [PATCH 24/98] Add missing concepts on entry point string in care panels --- .../web/controller/KenyaemrCoreRestController.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 1f6e683940..4119162d5e 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -2283,9 +2283,9 @@ String entryPointAbbriviations(Concept concept) { } else if (concept.equals(Dictionary.getConcept(Dictionary.PMTCT_PROGRAM))) { value = "PMTCT"; } else if (concept.equals(Dictionary.getConcept(Dictionary.PEDIATRIC_INPATIENT_SERVICE))) { - value = "IPD-P"; + value = "IPD-CHILD"; } else if (concept.equals(Dictionary.getConcept(Dictionary.ADULT_INPATIENT_SERVICE))) { - value = "IPD-A"; + value = "IPD-ADULT"; } else if (concept.equals(Dictionary.getConcept("160542AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { value = "OPD"; } else if (concept.equals(Dictionary.getConcept(Dictionary.TUBERCULOSIS_TREATMENT_PROGRAM))) { @@ -2307,7 +2307,13 @@ String entryPointAbbriviations(Concept concept) { } else if (concept.equals(Dictionary.getConcept("162223AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { value = "VMMC"; } else if (concept.equals(Dictionary.getConcept(Dictionary.TRANSFER_IN))) { - value = "TI"; + value = "TRANSFER IN"; + } else if (concept.equals(Dictionary.getConcept("159938AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { + value = "HBTC" + } else if (concept.equals(Dictionary.getConcept("162050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { + value = "CCC" + } else if (concept.equals(Dictionary.getConcept("162050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { + value = "SELF TEST" } } From 90abbe14acf8ac0fccf2259e0b5ef0295f56d638 Mon Sep 17 00:00:00 2001 From: CynthiaKamau Date: Wed, 15 Nov 2023 11:34:38 +0300 Subject: [PATCH 25/98] Add missing closing tags --- .../kenyaemr/web/controller/KenyaemrCoreRestController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 4119162d5e..8655e83209 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -2309,11 +2309,11 @@ String entryPointAbbriviations(Concept concept) { } else if (concept.equals(Dictionary.getConcept(Dictionary.TRANSFER_IN))) { value = "TRANSFER IN"; } else if (concept.equals(Dictionary.getConcept("159938AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { - value = "HBTC" + value = "HBTC"; } else if (concept.equals(Dictionary.getConcept("162050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { - value = "CCC" + value = "CCC"; } else if (concept.equals(Dictionary.getConcept("162050AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"))) { - value = "SELF TEST" + value = "SELF TEST"; } } From 95f35882eb536d376127cfce2c7600450718322d Mon Sep 17 00:00:00 2001 From: makombe Date: Fri, 17 Nov 2023 10:16:59 +0300 Subject: [PATCH 26/98] Add AZT/3TC/DTG adult third line regimen --- api/src/main/resources/regimens.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/api/src/main/resources/regimens.xml b/api/src/main/resources/regimens.xml index 918824ea99..1f56a7f556 100755 --- a/api/src/main/resources/regimens.xml +++ b/api/src/main/resources/regimens.xml @@ -286,6 +286,11 @@ + + + + + From 1e23651133437e874ad4ce229ae3f46b78405201 Mon Sep 17 00:00:00 2001 From: Donald Kibet Date: Sat, 18 Nov 2023 11:51:30 +0300 Subject: [PATCH 27/98] (fix) Update discontinuationFormName to correct value --- .../kenyaemr/web/controller/KenyaemrCoreRestController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 8655e83209..72779332d3 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -1479,7 +1479,7 @@ public int compare(DrugOrder order1, DrugOrder order2) { programDetails.put("enrollmentFormUuid", VMMCMetadata._Form.VMMC_ENROLLMENT_FORM); programDetails.put("enrollmentFormName", "VMMC Enrollment Form"); programDetails.put("discontinuationFormUuid", VMMCMetadata._Form.VMMC_DISCONTINUATION_FORM); - programDetails.put("discontinuationFormUuid", "VMMC Discontinuation Form"); + programDetails.put("discontinuationFormName", "VMMC Discontinuation Form"); } // prep program From c0e63d5a1857eaee3355469e7c169d94aed53409 Mon Sep 17 00:00:00 2001 From: njorocs Date: Thu, 21 Dec 2023 12:38:23 +0300 Subject: [PATCH 28/98] PMTCT_EID, PMTCT_HEI - Aligned age brackets. TX_TB - Changed additional tests to pick TB_LAM. --- .../builder/hiv/DatimReportBuilder.java | 10 +++++----- .../RevisedDatim/DatimCohortLibrary.java | 2 +- .../resources/reports/Datim_Template.xls | Bin 305664 -> 305664 bytes 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/DatimReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/DatimReportBuilder.java index 1bb0fb82ef..157151ecb0 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/DatimReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/hiv/DatimReportBuilder.java @@ -574,18 +574,18 @@ protected DataSetDefinition careAndTreatmentDataSet() { //PMTCT_EID cohortDsd.addColumn("PMTCT_EID_NUMERATOR", "Infants who had a virologic HIV test (sample collected) by 12 months of age during the reporting period", ReportUtils.map(datimIndicators.firstInfantVirologicTestsAt12Months(), indParams), ""); cohortDsd.addColumn("PMTCT_EID_FIRST_TEST_WITHIN_2_MONTHS", "First sample collected for a virologic HIV test between birth and <= 2 months of age", ReportUtils.map(datimIndicators.infantFirstVirologicTestWithin2Months(), indParams), ""); - cohortDsd.addColumn("PMTCT_EID_FIRST_TEST_3_TO_12_MONTHS", "First sample collected for a virologic HIV test between 3-12 months of age", ReportUtils.map(datimIndicators.infantFirstVirologicTest3To12Months(), indParams), ""); + cohortDsd.addColumn("PMTCT_EID_FIRST_TEST_2_TO_12_MONTHS", "First sample collected for a virologic HIV test between 3-12 months of age", ReportUtils.map(datimIndicators.infantFirstVirologicTest3To12Months(), indParams), ""); cohortDsd.addColumn("PMTCT_EID_ATLEAST_2_TESTS_WITHIN_2_MONTHS", "At least second sample collected for a virologic HIV test between birth and <= 2 months of age", ReportUtils.map(datimIndicators.atleast2InfantVirologicTestWithin2Months(), indParams), ""); - cohortDsd.addColumn("PMTCT_EID_ATLEAST_2_TESTS_3_12_MONTHS", "At least second sample collected for a virologic HIV test between birth and 3-12 months of age", ReportUtils.map(datimIndicators.atleast2InfantVirologicTestsAt3To12Months(), indParams), ""); + cohortDsd.addColumn("PMTCT_EID_ATLEAST_2_TESTS_2_12_MONTHS", "At least second sample collected for a virologic HIV test between birth and 3-12 months of age", ReportUtils.map(datimIndicators.atleast2InfantVirologicTestsAt3To12Months(), indParams), ""); //PMTCT_HEI cohortDsd.addColumn("PMTCT_HEI_NUMERATOR", "HIV-exposed infants with a virologic HIV test result returned in the reporting period, whose diagnostic sample was collected by 12 months of age.", ReportUtils.map(datimIndicators.infantsTestedAndResultsReturned(), indParams), ""); cohortDsd.addColumn("PMTCT_HEI_NEG_0_TO_2_MONTHS", "HIV-exposed infants with a virologic HIV Negative test result returned in the reporting period, whose diagnostic sample was collected by 2 months of age.", ReportUtils.map(datimIndicators.infantsTestedNegativeby2MonthsOfAge(), indParams), ""); - cohortDsd.addColumn("PMTCT_HEI_NEG_3_TO_12_MONTHS", "HIV-exposed infants with a virologic HIV Negative test result returned in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsTestedNegativeby3To12MonthsOfAge(), indParams), ""); + cohortDsd.addColumn("PMTCT_HEI_NEG_2_TO_12_MONTHS", "HIV-exposed infants with a virologic HIV Negative test result returned in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsTestedNegativeby3To12MonthsOfAge(), indParams), ""); cohortDsd.addColumn("PMTCT_HEI_POS_0_TO_2_MONTHS", "HIV-exposed infants with a virologic HIV Positive test result returned in the reporting period, whose diagnostic sample was collected by 2 months of age.", ReportUtils.map(datimIndicators.infantsTestedPositiveby2MonthsOfAge(), indParams), ""); - cohortDsd.addColumn("PMTCT_HEI_POS_3_TO_12_MONTHS", "HIV-exposed infants with a virologic HIV Positive test result returned in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsTestedPositiveby3To12MonthsOfAge(), indParams), ""); + cohortDsd.addColumn("PMTCT_HEI_POS_2_TO_12_MONTHS", "HIV-exposed infants with a virologic HIV Positive test result returned in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsTestedPositiveby3To12MonthsOfAge(), indParams), ""); cohortDsd.addColumn("PMTCT_HEI_INITIATED_ART_0_TO_2_MONTHS", "HIV Positive started ART in the reporting period, whose diagnostic sample was collected by 2 months of age.", ReportUtils.map(datimIndicators.infantsInitiatedARTTestedPositiveby2MonthsOfAge(), indParams), ""); - cohortDsd.addColumn("PMTCT_HEI_INITIATED_ART_3_TO_12_MONTHS", "HIV Positive started ART in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsInitiatedARTTestedPositiveby3To12MonthsOfAge(), indParams), ""); + cohortDsd.addColumn("PMTCT_HEI_INITIATED_ART_2_TO_12_MONTHS", "HIV Positive started ART in the reporting period, whose diagnostic sample was collected at 3-12 months of age.", ReportUtils.map(datimIndicators.infantsInitiatedARTTestedPositiveby3To12MonthsOfAge(), indParams), ""); //CXCA_SCRN_FIRST_TIME_NEGATIVE EmrReportingUtils.addRow(cohortDsd, "CXCA_SCRN_FIRST_TIME_NEGATIVE", "HIV Positive women on ART screened Negative for CACX for the 1st time", ReportUtils.map(datimIndicators.firstTimeCXCASCRNNegative(), indParams), datimPMTCTCXCAExpandedAgeDisaggregation, Arrays.asList("01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12")); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/RevisedDatim/DatimCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/RevisedDatim/DatimCohortLibrary.java index 1c9601a074..749bca0cd3 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/RevisedDatim/DatimCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/RevisedDatim/DatimCohortLibrary.java @@ -1711,7 +1711,7 @@ public CohortDefinition chestXray() { * @return */ public CohortDefinition additionalTestsForTBDiagnosis() { - String sqlQuery = "select patient_id from kenyaemr_etl.etl_laboratory_extract x where x.lab_test=1465\n" + + String sqlQuery = "select patient_id from kenyaemr_etl.etl_laboratory_extract x where x.lab_test=167459\n" + "and x.visit_date between date_sub(date(:endDate),INTERVAL 6 MONTH ) and date(:endDate);"; SqlCohortDefinition cd = new SqlCohortDefinition(); cd.setName("additionalTestsForTBDiagnosis"); diff --git a/omod/src/main/webapp/resources/reports/Datim_Template.xls b/omod/src/main/webapp/resources/reports/Datim_Template.xls index 7a4f3598ae6f95a1b856e91c7522b6ff811498d1..62f4f3f90d0ebb3277b0547f5d93e0da7f222940 100644 GIT binary patch delta 26611 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 P>aP4}0q(E&BHjN30SUz> From 16a47fa8e53d82798a731b957c3bdc090d8f523b Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Wed, 17 Jan 2024 08:48:42 +0300 Subject: [PATCH 29/98] add inpatient visit type --- .../org/openmrs/module/kenyaemr/metadata/CommonMetadata.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index fd5026c3e9..9d8edad327 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -166,6 +166,7 @@ public static final class _VisitAttributeType { public static final class _VisitType { public static final String OUTPATIENT = "3371a4d4-f66f-4454-a86d-92c7b3da990c"; + public static final String INPATIENT = "a73e2ac6-263b-47fc-99fc-e0f2c09fc914"; } /** @@ -373,6 +374,7 @@ public void install() { install(visitAttributeType("Non-Paying patient category", "If a patient isn't paying for service, The catergory the fall in.", ConceptDatatype.class, null, 0, 1, _VisitAttributeType.NON_PAYING_PATIENT_CATEGORY_UUID)); install(visitType("Outpatient", "Visit where the patient is not admitted to the hospital", _VisitType.OUTPATIENT)); + install(visitType("Inpatient", "Visit where the patient is admitted to the hospital", _VisitType.INPATIENT)); uninstall(possible(PersonAttributeType.class, "73d34479-2f9e-4de3-a5e6-1f79a17459bb"), "Became patient identifier"); // National ID attribute type //Retiring Lab results form From bbc9d4178621531b3dbbd32f21961939036f58c7 Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Thu, 18 Jan 2024 00:22:38 +0300 Subject: [PATCH 30/98] add configuration to control refresh of facility list on startup --- .../org/openmrs/module/kenyaemr/EmrConstants.java | 2 ++ .../module/kenyaemr/metadata/FacilityMetadata.java | 13 ++++++++++++- omod/src/main/resources/config.xml | 8 ++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/EmrConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/EmrConstants.java index 7e800a5142..5f83ca572c 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/EmrConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/EmrConstants.java @@ -67,4 +67,6 @@ public class EmrConstants { public static final String DEFAULT_SUPPORT_PHONE_NUMBER = "0800 722 440"; public static final String DEFAULT_SUPPORT_EMAIL_ADDRESS = "help@palladiumgroup.on.spiceworks.com"; public static final String DEFAULT_EXTERNAL_HELP_URL = "/help"; + + public static final String GP_CONFIGURE_FACILITY_LIST_REFRESH_ON_STARTUP = "kenyaemr.refresh.facility.metadata"; } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/FacilityMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/FacilityMetadata.java index 2e83ad9797..bcf4650490 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/FacilityMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/FacilityMetadata.java @@ -9,9 +9,13 @@ */ package org.openmrs.module.kenyaemr.metadata; +import org.apache.commons.lang3.StringUtils; import org.openmrs.Location; +import org.openmrs.api.AdministrationService; +import org.openmrs.api.context.Context; import org.openmrs.customdatatype.datatype.FreeTextDatatype; import org.openmrs.customdatatype.datatype.RegexValidatedTextDatatype; +import org.openmrs.module.kenyaemr.EmrConstants; import org.openmrs.module.kenyaemr.metadata.sync.LocationMflCsvSource; import org.openmrs.module.kenyaemr.metadata.sync.LocationMflSynchronization; import org.openmrs.module.metadatadeploy.bundle.AbstractMetadataBundle; @@ -48,7 +52,14 @@ public static final class _LocationAttributeType { */ @Override public void install() throws Exception { - install(true); + AdministrationService administrationService = Context.getAdministrationService(); + final String refreshConfig = (administrationService.getGlobalProperty(EmrConstants.GP_CONFIGURE_FACILITY_LIST_REFRESH_ON_STARTUP)); + + if (StringUtils.isNotEmpty(refreshConfig) && refreshConfig.equalsIgnoreCase("true")) { + install(true); + } else { + System.out.println("Skipping refreshing of the facility list ..."); + } } /** diff --git a/omod/src/main/resources/config.xml b/omod/src/main/resources/config.xml index 4866a22ca0..25d15af1f7 100755 --- a/omod/src/main/resources/config.xml +++ b/omod/src/main/resources/config.xml @@ -169,4 +169,12 @@ + + kenyaemr.refresh.facility.metadata + false + + Configures refresh of the facility metadata during EMR startup. Valid values are true or false + + + From 8ffc57dfeebb53e12b3374c074e79354306a8fbe Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Mon, 22 Jan 2024 20:26:48 +0300 Subject: [PATCH 31/98] Remove unused github cicd task --- .github/workflows/mekom_cicd.yml | 56 -------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 .github/workflows/mekom_cicd.yml diff --git a/.github/workflows/mekom_cicd.yml b/.github/workflows/mekom_cicd.yml deleted file mode 100644 index dc5a6c71cc..0000000000 --- a/.github/workflows/mekom_cicd.yml +++ /dev/null @@ -1,56 +0,0 @@ - -name: Deploy to Mekom - -on: - # Manually triggered workflow using the "Run workflow" button - workflow_dispatch: - push: - branches: [ master ] - -jobs: - build: - runs-on: ubuntu-latest - - #set up the build enviroment - steps: - - name: Checkout Repository - uses: actions/checkout@v4 - - - name: Set up JDK 8 - uses: actions/setup-java@v4 - with: - java-version: '8' - distribution: 'temurin' - cache: maven - - # Build with Maven - - name: Build with Maven - run: mvn -B package - - publish: - runs-on: ubuntu-latest - # Define dependencies, this job depends on the completion of the "build" job - needs: build - - # Specify conditions for when this job should run - if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch' }} - - # Set up enviroment for Publish - - steps: - # Step 1: Set up JDK 8 for Publish - - name: Set up JDK 8 for Publish - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '8' - server-id: mks-nexus - server-username: $MAVEN_USERNAME - server-password: $MAVEN_TOKEN - - - name: Publish to Mekom repository - run: mvn -B deploy - - env: - MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} - MAVEN_TOKEN: ${{ secrets.MAVEN_TOKEN }} From f7dbc7877e80aaf05d84e515faa7dca645e2acc9 Mon Sep 17 00:00:00 2001 From: njorocs Date: Fri, 2 Feb 2024 06:22:52 +0300 Subject: [PATCH 32/98] Using Clinical tca over refill date as preferred next appointment date. Returns whichever is latest --- .../library/hiv/LastReturnVisitDateCalculation.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/LastReturnVisitDateCalculation.java b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/LastReturnVisitDateCalculation.java index 1843cf1e21..45fed6f7ae 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/LastReturnVisitDateCalculation.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/LastReturnVisitDateCalculation.java @@ -90,8 +90,8 @@ public CalculationResultMap evaluate(Collection cohort, Map Date: Thu, 15 Feb 2024 23:14:38 +0300 Subject: [PATCH 33/98] Update maven_deploy_cicd.yml --- .github/workflows/maven_deploy_cicd.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/maven_deploy_cicd.yml b/.github/workflows/maven_deploy_cicd.yml index 5c7651c88c..0cf49fe8bd 100644 --- a/.github/workflows/maven_deploy_cicd.yml +++ b/.github/workflows/maven_deploy_cicd.yml @@ -4,7 +4,7 @@ on: # Manually triggered workflow using the "Run workflow" button workflow_dispatch: push: - branches: [ master ] + branches: [ master,openmrs-2.6.x-upgrade ] jobs: publish: From 9194e4a4063125310205b6c34b5e93f2a51115dd Mon Sep 17 00:00:00 2001 From: Donald Kibet Date: Wed, 14 Feb 2024 13:21:37 +0300 Subject: [PATCH 34/98] (feat) Add `MAT Clinical encounter` encounter type to support MAT Program --- .../org/openmrs/module/kenyaemr/metadata/CommonMetadata.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index 9d8edad327..afb98db23c 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -62,6 +62,7 @@ public static final class _EncounterType { public static final String HIV_SELF_TEST = "8b706d42-b4ae-4b3b-bd83-b14f15294362"; public static final String VMMC_PROCEDURE = "35c6fcc2-960b-11ec-b909-0242ac120002" ; public static final String GAD_7 = "899d64ad-be13-4071-a879-2153847206b7"; + public static final String MAT_CLINICAL_ENCOUNTER = "c3518485-ee22-4a47-b6d4-6d0e8f297b02"; } public static final class _Form { @@ -184,6 +185,7 @@ public void install() { install(encounterType("Cervical cancer screening", "Cervical cancer screening", _EncounterType.CACX_SCREENING)); install(encounterType("HIV self testing", "Self testing screening", _EncounterType.HIV_SELF_TEST)); install(encounterType("Oncology screening", "Oncology screening encounter type", _EncounterType.ONCOLOGY_SCREENING)); + install(encounterType("MAT Clinical Encounter", "MAT Clinical Encounter", _EncounterType.MAT_CLINICAL_ENCOUNTER)); install(form("Clinical Encounter", null, _EncounterType.CONSULTATION, "1", _Form.CLINICAL_ENCOUNTER)); install(form("Lab Results", null, _EncounterType.LAB_RESULTS, "1", _Form.LAB_RESULTS)); From cc10241dc283fdaaada0c190e5a1502d4e35673d Mon Sep 17 00:00:00 2001 From: makombe Date: Wed, 21 Feb 2024 18:14:09 +0300 Subject: [PATCH 35/98] Remove non paying visit attribute type --- .../org/openmrs/module/kenyaemr/metadata/CommonMetadata.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index 7fe730b4a1..90d67ae88c 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -167,7 +167,6 @@ public static final class _VisitAttributeType { public static final String PAYMENT_METHOD_UUID = "e6cb0c3b-04b0-4117-9bc6-ce24adbda802"; public static final String POLICY_NUMBER = "0f4f3306-f01b-43c6-af5b-fdb60015cb02"; public static final String INSURANCE_SCHEME = "2d0fa959-6780-41f1-85b1-402045935068"; - public static final String NON_PAYING_PATIENT_CATEGORY_UUID = "df0362f9-782e-4d92-8bb2-3112e9e9eb3c"; } public static final class _VisitType { @@ -382,7 +381,6 @@ public void install() { install(visitAttributeType("Payment Method", "The payment method used by the patient to settle payment", FreeTextDatatype.class, null, 0, 1, _VisitAttributeType.PAYMENT_METHOD_UUID)); install(visitAttributeType("Policy Number", "The insurance policy number or member number", FreeTextDatatype.class, null, 0, 1, _VisitAttributeType.POLICY_NUMBER)); install(visitAttributeType("Insurance scheme", "The insurance scheme the patient is using to settle payment for services e.g. NHIF, Old mutual.", FreeTextDatatype.class, null, 0, 1, _VisitAttributeType.INSURANCE_SCHEME)); - install(visitAttributeType("Is patient exempted", "If a patient isn't paying for service, The category the fall in.", Boolean.class, null, 0, 1, _VisitAttributeType.NON_PAYING_PATIENT_CATEGORY_UUID)); install(visitType("Outpatient", "Visit where the patient is not admitted to the hospital", _VisitType.OUTPATIENT)); install(visitType("Inpatient", "Visit where the patient is admitted to the hospital", _VisitType.INPATIENT)); From 80a05463cb7953bc8710a2d70288bc241e1893ea Mon Sep 17 00:00:00 2001 From: njorocs Date: Mon, 11 Mar 2024 18:00:29 +0300 Subject: [PATCH 36/98] Fixed issue in date filtering --- .../dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java index d4a2a8fd2f..e7e71b10fb 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java @@ -69,7 +69,7 @@ public EvaluatedCohort evaluate(CohortDefinition cohortDefinition, EvaluationCon " on c.patient_id = t.patient_id and\n" + " date(t.visit_date) between date(:startDate) and date(:endDate)\n" + " group by patient_id) a\n" + - "where (FIND_IN_SET(117671, a.complaint) > 0 AND FIND_IN_SET(142412, a.complaint) > 0)\n" + + "where ((FIND_IN_SET(117671, a.complaint) > 0 AND FIND_IN_SET(142412, a.complaint) > 0)\n" + " OR (FIND_IN_SET(142412, a.complaint) > 0 AND FIND_IN_SET(122983, a.complaint) > 0 AND\n" + " timestampdiff(YEAR, date(a.DOB), coalesce(date(a.complaint_date), date(a.visit_date))) > 2)\n" + " OR (FIND_IN_SET(143264, a.complaint) > 0 AND timestampdiff(DAY, date(a.complaint_date), date(a.visit_date)) < 10 AND\n" + @@ -84,7 +84,7 @@ public EvaluatedCohort evaluate(CohortDefinition cohortDefinition, EvaluationCon " OR (FIND_IN_SET(140238, a.complaint) > 0 AND FIND_IN_SET(162628, a.complaint) > 0 AND\n" + " a.fever_duration_from_days >= 3)\n" + " OR (FIND_IN_SET(140238, a.complaint) AND FIND_IN_SET(512, a.complaint) AND FIND_IN_SET(106, a.complaint) AND\n" + - " FIND_IN_SET(516, a.complaint) AND FIND_IN_SET(143264, a.complaint) > 0 AND a.fever_duration_from_days > 2)\n" + + " FIND_IN_SET(516, a.complaint) AND FIND_IN_SET(143264, a.complaint) > 0 AND a.fever_duration_from_days > 2))\n" + " and date(a.visit_date) BETWEEN date(:startDate) AND date(:endDate)\n" + "group by patient_id;"; From 6426220d7c4cd9b192a8b7a5431e83c7f97ce460 Mon Sep 17 00:00:00 2001 From: makombe Date: Tue, 12 Mar 2024 09:17:26 +0300 Subject: [PATCH 37/98] Change appointment dependancy to bahmni --- omod/src/main/resources/config.xml | 2 +- pom.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/omod/src/main/resources/config.xml b/omod/src/main/resources/config.xml index 787e4137f5..c8ed76bba0 100755 --- a/omod/src/main/resources/config.xml +++ b/omod/src/main/resources/config.xml @@ -36,7 +36,7 @@ org.openmrs.module.uiframework org.openmrs.module.kenyaemrorderentry org.openmrs.module.facilityreporting - org.kenyahmis.module.appointments + org.bahmni.module.appointments diff --git a/pom.xml b/pom.xml index be82a09aa1..dd88cf1391 100755 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ 2.26.0 2.0.9 1.15.0 - 1.6.1 + 2.0.0-SNAPSHOT UTF-8 yyyy-MM-dd'T'HH:mm:ssZ @@ -237,7 +237,7 @@
- org.kenyahmis.module + org.bahmni.module appointments-api ${bahmniAppointmentsVersion} provided From 1289f5fafdb47a9138450d27346bf1f3702e3fa9 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 21 Mar 2024 08:58:43 +0300 Subject: [PATCH 38/98] Add report metadata in the context and supply the template --- api/src/main/resources/content/kenyaemr.common.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 6d2d666bfa..c17efbf42d 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,6 +89,7 @@ + @@ -914,9 +915,18 @@ - + + + + + + + + + + From 34fc337bae18fbea11c9f7f633f5ed4975209f1d Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 21 Mar 2024 11:51:57 +0300 Subject: [PATCH 39/98] Add 717 report --- .../library/shared/common/CommonDimensionLibrary.java | 5 ++++- api/src/main/resources/content/kenyaemr.common.xml | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java index 414690a1d0..5ad0f3dd7d 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java @@ -49,11 +49,14 @@ public CohortDefinitionDimension gender() { */ public CohortDefinitionDimension standardAgeGroups() { CohortDefinitionDimension dim = new CohortDefinitionDimension(); - dim.setName("age groups (<1, <15, 15+)"); + dim.setName("age groups (<1, <15, 15+, <5, 5+, 60+)"); dim.addParameter(new Parameter("onDate", "Date", Date.class)); dim.addCohortDefinition("<1", map(commonCohortLibrary.agedAtMost(0), "effectiveDate=${onDate}")); dim.addCohortDefinition("<15", map(commonCohortLibrary.agedAtMost(14), "effectiveDate=${onDate}")); dim.addCohortDefinition("15+", map(commonCohortLibrary.agedAtLeast(15), "effectiveDate=${onDate}")); + dim.addCohortDefinition("<5", map(commonCohortLibrary.agedAtMost(4), "effectiveDate=${onDate}")); + dim.addCohortDefinition("5+", map(commonCohortLibrary.agedAtLeast(5), "effectiveDate=${onDate}")); + dim.addCohortDefinition("60+", map(commonCohortLibrary.agedAtLeast(60), "effectiveDate=${onDate}")); return dim; } diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index c17efbf42d..7598a81309 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,7 +89,7 @@ - + @@ -917,7 +917,7 @@ - + From 6640cc8a45dd4ef83be3e9924468f3c0e8f5729d Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 21 Mar 2024 08:58:43 +0300 Subject: [PATCH 40/98] Add report metadata in the context and supply the template --- api/src/main/resources/content/kenyaemr.common.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 6d2d666bfa..c17efbf42d 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,6 +89,7 @@ + @@ -914,9 +915,18 @@ - + + + + + + + + + + From e74f48501d5ce36c3186111ec6fee93afaf49521 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 21 Mar 2024 11:51:57 +0300 Subject: [PATCH 41/98] Add 717 report --- .../library/shared/common/CommonDimensionLibrary.java | 5 ++++- api/src/main/resources/content/kenyaemr.common.xml | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java index 414690a1d0..5ad0f3dd7d 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java @@ -49,11 +49,14 @@ public CohortDefinitionDimension gender() { */ public CohortDefinitionDimension standardAgeGroups() { CohortDefinitionDimension dim = new CohortDefinitionDimension(); - dim.setName("age groups (<1, <15, 15+)"); + dim.setName("age groups (<1, <15, 15+, <5, 5+, 60+)"); dim.addParameter(new Parameter("onDate", "Date", Date.class)); dim.addCohortDefinition("<1", map(commonCohortLibrary.agedAtMost(0), "effectiveDate=${onDate}")); dim.addCohortDefinition("<15", map(commonCohortLibrary.agedAtMost(14), "effectiveDate=${onDate}")); dim.addCohortDefinition("15+", map(commonCohortLibrary.agedAtLeast(15), "effectiveDate=${onDate}")); + dim.addCohortDefinition("<5", map(commonCohortLibrary.agedAtMost(4), "effectiveDate=${onDate}")); + dim.addCohortDefinition("5+", map(commonCohortLibrary.agedAtLeast(5), "effectiveDate=${onDate}")); + dim.addCohortDefinition("60+", map(commonCohortLibrary.agedAtLeast(60), "effectiveDate=${onDate}")); return dim; } diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index c17efbf42d..7598a81309 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,7 +89,7 @@ - + @@ -917,7 +917,7 @@ - + From eade44278312a1fc9961ac3752c24f33dc29ce43 Mon Sep 17 00:00:00 2001 From: injiri Date: Thu, 21 Mar 2024 12:50:55 +0300 Subject: [PATCH 42/98] Add report metadata in the context and supply the template --- api/src/main/resources/content/kenyaemr.common.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 7598a81309..02454cbaa2 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,7 +89,6 @@ - From 84bcd7f2f4212216765cd9251793e6c905d22a35 Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Mon, 22 Jan 2024 23:46:19 +0300 Subject: [PATCH 43/98] adapt endpoint for running and returning sql results --- .../module/kenyaemr/api/KenyaEmrService.java | 12 ++ .../api/impl/KenyaEmrServiceImpl.java | 55 ++++++- .../kenyaemr/model/AdditionalSearchParam.java | 39 +++++ .../module/kenyaemr/util/RowMapper.java | 35 +++++ .../module/kenyaemr/util/SqlQueryHelper.java | 140 ++++++++++++++++++ .../KenyaemrCoreRestController.java | 20 ++- 6 files changed, 290 insertions(+), 11 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/model/AdditionalSearchParam.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/util/RowMapper.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/api/KenyaEmrService.java b/api/src/main/java/org/openmrs/module/kenyaemr/api/KenyaEmrService.java index b5e21f9aad..ee5d63f53b 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/api/KenyaEmrService.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/api/KenyaEmrService.java @@ -12,7 +12,9 @@ import org.openmrs.Location; import org.openmrs.Patient; import org.openmrs.Visit; +import org.openmrs.annotation.Authorized; import org.openmrs.api.OpenmrsService; +import org.openmrs.module.webservices.rest.SimpleObject; import org.springframework.transaction.annotation.Transactional; import java.util.Date; @@ -95,4 +97,14 @@ public interface KenyaEmrService extends OpenmrsService { public List executeSqlQuery(String query, Map substitutions); public List executeHqlQuery(String query, Map substitutions); + + /** + * Executes a sql query with params. + * Adapted from Bahmni core + * @param sqlQuery + * @param params + * @return + */ + @Authorized + public List search(String sqlQuery, Map params); } \ No newline at end of file diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java b/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java index f6678d753b..3be5083323 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java @@ -33,17 +33,20 @@ import org.openmrs.module.kenyaemr.metadata.CommonMetadata; import org.openmrs.module.kenyaemr.metadata.FacilityMetadata; import org.openmrs.module.kenyaemr.metadata.HivMetadata; +import org.openmrs.module.kenyaemr.util.RowMapper; +import org.openmrs.module.kenyaemr.util.SqlQueryHelper; import org.openmrs.module.kenyaemr.wrapper.Facility; import org.openmrs.module.metadatadeploy.MetadataUtils; +import org.openmrs.module.webservices.rest.SimpleObject; +import org.openmrs.util.DatabaseUpdater; import org.openmrs.util.OpenmrsUtil; import org.openmrs.util.PrivilegeConstants; import org.springframework.beans.factory.annotation.Autowired; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.*; /** * Implementations of business logic methods for KenyaEMR @@ -258,4 +261,46 @@ public List executeSqlQuery(String query, Map substituti public List executeHqlQuery(String query, Map substitutions) { return dao.executeHqlQuery(query, substitutions); } + + /** + * @param queryId + * @param params + * @return + */ + @Override + public List search(String queryId, Map params) { + Map updatedParams = conditionallyAddVisitLocation(params); + List results = new ArrayList(); + SqlQueryHelper sqlQueryHelper = new SqlQueryHelper(); + String query = getSql(queryId); + try(Connection conn = DatabaseUpdater.getConnection(); + PreparedStatement statement = sqlQueryHelper.constructPreparedStatement(query,updatedParams,conn); + ResultSet resultSet = statement.executeQuery()) { + + RowMapper rowMapper = new RowMapper(); + while (resultSet.next()) { + results.add(rowMapper.mapRow(resultSet)); + } + return results; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + private String getSql(String queryId) { + String query = Context.getAdministrationService().getGlobalProperty(queryId); + if (query == null) throw new RuntimeException("No such query:" + queryId); + return query; + } + + private Map conditionallyAddVisitLocation(Map params) { + Map updatedParams = new HashMap(params); + if (params.containsKey("location_uuid")) { + String locationUuid = params.get("location_uuid")[0]; + String visitLocation = ""; + String[] visitLcoationValue = {visitLocation}; + updatedParams.put("visit_location_uuid", visitLcoationValue); + } + return updatedParams; + } } \ No newline at end of file diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/model/AdditionalSearchParam.java b/api/src/main/java/org/openmrs/module/kenyaemr/model/AdditionalSearchParam.java new file mode 100644 index 0000000000..7084f62b39 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/model/AdditionalSearchParam.java @@ -0,0 +1,39 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.model; + +public class AdditionalSearchParam { + private String additionalSearchHandler; + private String tests; + + public AdditionalSearchParam(String additionalSearchHandler, String tests) { + this.additionalSearchHandler = additionalSearchHandler; + this.tests = tests; + } + + public AdditionalSearchParam() { + } + + public String getAdditionalSearchHandler() { + return additionalSearchHandler; + } + + public void setAdditionalSearchHandler(String additionalSearchHandler) { + this.additionalSearchHandler = additionalSearchHandler; + } + + public String getTests(){ + return tests; + } + + public void setTests(String tests){ + this.tests = tests; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/util/RowMapper.java b/api/src/main/java/org/openmrs/module/kenyaemr/util/RowMapper.java new file mode 100644 index 0000000000..3571df14cc --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/util/RowMapper.java @@ -0,0 +1,35 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.util; + +import org.openmrs.module.webservices.rest.SimpleObject; +import org.springframework.jdbc.support.JdbcUtils; + +import java.sql.ResultSet; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; + +public class RowMapper { + public SimpleObject mapRow(ResultSet rs) throws SQLException { + SimpleObject row = new SimpleObject(); + ResultSetMetaData rsmd = rs.getMetaData(); + int columnCount = rsmd.getColumnCount(); + for (int index = 1; index <= columnCount; index++) { + String column = JdbcUtils.lookupColumnName(rsmd, index); + Object value = rs.getObject(column); + if (value == null) { + row.put(column, ""); + } else { + row.put(column, value); + } + } + return row; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java new file mode 100644 index 0000000000..bec4a635ba --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java @@ -0,0 +1,140 @@ +package org.openmrs.module.kenyaemr.util; + +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +import org.apache.commons.lang3.StringUtils; +import org.apache.log4j.LogManager; +import org.apache.log4j.Logger; +import org.codehaus.jackson.map.ObjectMapper; +import org.openmrs.module.kenyaemr.model.AdditionalSearchParam; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class SqlQueryHelper { + private final Pattern paramPlaceHolderPattern; + private static final String PARAM_PLACE_HOLDER_REGEX = "\\$\\{[^{]*\\}"; + private static final Logger log = LogManager.getLogger(SqlQueryHelper.class); + + public SqlQueryHelper() { + this.paramPlaceHolderPattern = Pattern.compile(PARAM_PLACE_HOLDER_REGEX); + } + + List getParamNamesFromPlaceHolders(String query){ + List params = new ArrayList<>(); + Matcher matcher = paramPlaceHolderPattern.matcher(query); + while(matcher.find()){ + params.add(stripDelimiters(matcher.group())); + } + return params; + } + + private String stripDelimiters(String text) { + return text.replaceAll("[${}]", ""); + } + + public String transformIntoPreparedStatementFormat(String queryString){ + return queryString.replaceAll(PARAM_PLACE_HOLDER_REGEX,"?"); + } + + public PreparedStatement constructPreparedStatement(String queryString, Map params, Connection conn) throws SQLException { + String finalQueryString = queryString; + if (params.get("additionalParams") != null && params.get("additionalParams") != null) { + finalQueryString = parseAdditionalParams(params.get("additionalParams")[0], queryString); + } + + List paramNamesFromPlaceHolders = getParamNamesFromPlaceHolders(finalQueryString); + String statement = transformIntoPreparedStatementFormat(finalQueryString); + PreparedStatement preparedStatement = conn.prepareStatement(statement); + if(params != null ){ + int i=1; + for (String paramName : paramNamesFromPlaceHolders) { + String paramValue = params.get(paramName)[0]; + preparedStatement.setObject(i++,paramValue); + } + } + return preparedStatement; + } + + String parseAdditionalParams(String additionalParams, String queryString) { + String queryWithAdditionalParams = queryString; + try { + AdditionalSearchParam additionalSearchParams = new ObjectMapper().readValue(additionalParams, AdditionalSearchParam.class); + String test = additionalSearchParams.getTests(); + queryWithAdditionalParams = queryString.replaceAll("\\$\\{testName\\}", test); + } catch (IOException e) { + log.error("Failed to parse Additional Search Parameters."); + e.printStackTrace(); + } + return queryWithAdditionalParams; + } + + public static String escapeSQL(String str, boolean escapeDoubleQuotes, Character escapeChar) { + if (StringUtils.isBlank(str)) { + return str; + } + char escChar = '\\'; + if (escapeChar != null) { + escChar = escapeChar.charValue(); + } + String strToCheck = str.trim().replace("0x", "0X").replace("/*", "\\/*"); + StringBuilder sBuilder = new StringBuilder(); + int stringLength = strToCheck.length(); + for (int i = 0; i < stringLength; ++i) { + char c = strToCheck.charAt(i); + switch (c) { + case 0: + sBuilder.append(escChar); + sBuilder.append('0'); + break; + case ';': + sBuilder.append(escChar); + sBuilder.append(';'); + break; + case '\n': /* Must be escaped for logs */ + sBuilder.append(escChar); + sBuilder.append('n'); + break; + case '\r': + sBuilder.append(escChar); + sBuilder.append('r'); + break; + case '\\': + sBuilder.append(escChar); + sBuilder.append('\\'); + break; + case '\'': + sBuilder.append(escChar); + sBuilder.append('\''); + break; + case '"': + if (escapeDoubleQuotes) { + sBuilder.append('\\'); + } + sBuilder.append('"'); + break; + case '\032': + sBuilder.append(escChar); + sBuilder.append('Z'); + break; + default: + sBuilder.append(c); + } + } + return sBuilder.toString(); + } +} diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index ac2c361c8e..82f4f23d50 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -305,7 +305,6 @@ public Object getAllPatientFlags(HttpServletRequest request, @RequestParam("pati /** * Returns custom patient object - * @param request * @param patientUuid * @return */ @@ -337,7 +336,6 @@ public Object getPatientIdByPatientUuid(@RequestParam("patientUuid") String pati /** * Returns regimen history for a patient - * @param request * @param category // ARV or TB * @param patientUuid * @return @@ -559,7 +557,6 @@ public Object getLastRegimenEncounterUuid(@RequestParam("category") String categ /** * Get a list of standard regimen - * @param request * @param * @return * @throws IOException @@ -672,9 +669,6 @@ public Object getStandardRegimen() throws SAXException, IOException, ParserConfi /** * Returns regimen change/stop reasons - * @param request - * @param category // ARV or TB - * @param patientUuid * @return */ @RequestMapping(method = RequestMethod.GET, value = "/regimenReason") @@ -2663,4 +2657,18 @@ private String mapConceptNamesToShortNames(String conceptUuid) { return name; } + + /** + * + * @param query + * @param request + * @return + * @throws Exception + */ + @RequestMapping(method = RequestMethod.GET, value = "/sql") // gets all flags for a patient + @ResponseBody + public List search(@RequestParam("q") String query, HttpServletRequest request) throws Exception { + return Context.getService(KenyaEmrService.class).search(query, request.getParameterMap()); + + } } From 03a48fc4d927db8a351779bed68e7bb8abd48a5f Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Wed, 13 Mar 2024 13:08:05 +0300 Subject: [PATCH 44/98] Add sql rest endpoint --- .../module/kenyaemr/api/impl/KenyaEmrServiceImpl.java | 5 ++--- .../org/openmrs/module/kenyaemr/util/SqlQueryHelper.java | 7 +++++-- .../web/controller/KenyaemrCoreRestController.java | 2 +- pom.xml | 4 ++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java b/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java index 3be5083323..c24db10d81 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/api/impl/KenyaEmrServiceImpl.java @@ -297,9 +297,8 @@ private Map conditionallyAddVisitLocation(Map updatedParams = new HashMap(params); if (params.containsKey("location_uuid")) { String locationUuid = params.get("location_uuid")[0]; - String visitLocation = ""; - String[] visitLcoationValue = {visitLocation}; - updatedParams.put("visit_location_uuid", visitLcoationValue); + String[] visitLocationValue = {locationUuid}; + updatedParams.put("visit_location_uuid", visitLocationValue); } return updatedParams; } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java index bec4a635ba..b45c1b6346 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java @@ -25,6 +25,9 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +/** + * Handler for raw SQL + */ public class SqlQueryHelper { private final Pattern paramPlaceHolderPattern; private static final String PARAM_PLACE_HOLDER_REGEX = "\\$\\{[^{]*\\}"; @@ -35,7 +38,7 @@ public SqlQueryHelper() { } List getParamNamesFromPlaceHolders(String query){ - List params = new ArrayList<>(); + List params = new ArrayList(); Matcher matcher = paramPlaceHolderPattern.matcher(query); while(matcher.find()){ params.add(stripDelimiters(matcher.group())); @@ -60,7 +63,7 @@ public PreparedStatement constructPreparedStatement(String queryString, Map paramNamesFromPlaceHolders = getParamNamesFromPlaceHolders(finalQueryString); String statement = transformIntoPreparedStatementFormat(finalQueryString); PreparedStatement preparedStatement = conn.prepareStatement(statement); - if(params != null ){ + if(params != null && params.size() > 0 ){ int i=1; for (String paramName : paramNamesFromPlaceHolders) { String paramValue = params.get(paramName)[0]; diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 82f4f23d50..7e77052cf7 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -2665,7 +2665,7 @@ private String mapConceptNamesToShortNames(String conceptUuid) { * @return * @throws Exception */ - @RequestMapping(method = RequestMethod.GET, value = "/sql") // gets all flags for a patient + @RequestMapping(method = RequestMethod.GET, value = "/sql") @ResponseBody public List search(@RequestParam("q") String query, HttpServletRequest request) throws Exception { return Context.getService(KenyaEmrService.class).search(query, request.getParameterMap()); diff --git a/pom.xml b/pom.xml index dd88cf1391..235eacc00f 100755 --- a/pom.xml +++ b/pom.xml @@ -381,8 +381,8 @@ org.apache.maven.plugins maven-compiler-plugin - 1.6 - 1.6 + 1.8 + 1.8 From cbaf8b0fd3cc50dc575eb6f089990d3634158b1b Mon Sep 17 00:00:00 2001 From: patryllus Date: Thu, 14 Mar 2024 20:37:01 +0300 Subject: [PATCH 45/98] Initial stubs at disaggregated MOH705A --- .../kenyaemr/reporting/EmrReportingUtils.java | 5 +- .../AutismDiagnosisConstants.java | 26 + .../Moh705ReportUtils/ColumnParameters.java | 74 + .../ConvulsiveDiagnosisConstants.java | 69 + .../DiabetesDiagnosisConstants.java | 439 + .../Moh705ReportUtils/DiagnosisConcepts.java | 9230 +++++++++++++++++ .../Moh705ReportUtils/DiagnosisLists.java | 4020 +++++++ .../MascularDiagnosisConstants.java | 118 + .../MentalPalsyDiagnosisConstants.java | 112 + .../Moh705ReportDimension.java | 83 + .../OncologyDiagnosisConstants.java | 2452 +++++ .../OtherBitesDiagnosisConstants.java | 377 + .../Moh705ReportUtils/ReportAddonUtils.java | 241 + .../Moh705ReportUtils/ReportingUtils.java | 67 + .../RicketsDiagnosisConstants.java | 55 + .../builder/common/MOH705AReportBuilder.java | 35 +- .../builder/common/MOH705BReportBuilder.java | 280 +- .../MOH705/MOH705CohortLibrary.java | 9 +- .../MOH705/MOH705IndicatorLibrary.java | 6 +- .../resources/content/kenyaemr.common.xml | 26 +- .../webapp/resources/reports/MOH_705a.xls | Bin 0 -> 167936 bytes 21 files changed, 17553 insertions(+), 171 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java create mode 100644 omod/src/main/webapp/resources/reports/MOH_705a.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/EmrReportingUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/EmrReportingUtils.java index 75c5e8c3ce..83910217b7 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/EmrReportingUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/EmrReportingUtils.java @@ -25,7 +25,8 @@ /** * Utility methods for reporting */ -public class EmrReportingUtils { +public class +EmrReportingUtils { /** * Creates a new cohort indicator @@ -115,4 +116,4 @@ public static Date todaysDate(){ return today; } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java new file mode 100644 index 0000000000..52b6b359a3 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java @@ -0,0 +1,26 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class AutismDiagnosisConstants { + + public static final Integer AUTISM_1 = 121303; + + public static final Integer AUTISM_2 = 127653; + + public static final Integer AUTISM_3 = 137557; + + public static final Integer AUTISM_4 = 149941; + + public static final Integer AUTISM_5 = 152042; + + public static final Integer AUTISM_6 = 155013; + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java new file mode 100644 index 0000000000..d677c52a7e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java @@ -0,0 +1,74 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +/** + * Describes a column in a CohortIndicatorDataSetDefinition + */ +public class ColumnParameters { + + private String name; + + private String label; + + private String dimensions; + + private String column; + + /** + * Default constructor + * + * @param name the name + * @param label the label + * @param dimensions the dimension parameters + */ + public ColumnParameters(String name, String label, String dimensions, String column) { + this.name = name; + this.label = label; + this.dimensions = dimensions; + this.column = column; + } + + /** + * Gets the name + * + * @return the name + */ + public String getName() { + return name; + } + + /** + * Gets the label + * + * @return the label + */ + public String getLabel() { + return label; + } + + /** + * Gets the dimension parameters + * + * @return the dimension parameters + */ + public String getDimensions() { + return dimensions; + } + + /** + * Gets the column + * + * @return the column + */ + public String getColumn() { + return column; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java new file mode 100644 index 0000000000..9d6f171903 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java @@ -0,0 +1,69 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class ConvulsiveDiagnosisConstants { + + public static final Integer CONVULSIVE1 = 206; + + public static final Integer CONVULSIVE2 = 110191; + + public static final Integer CONVULSIVE3 = 110664; + + public static final Integer CONVULSIVE4 = 110815; + + public static final Integer CONVULSIVE5 = 110818; + + public static final Integer CONVULSIVE6 = 112353; + + public static final Integer CONVULSIVE7 = 113054; + + public static final Integer CONVULSIVE8 = 114180; + + public static final Integer CONVULSIVE9 = 117849; + + public static final Integer CONVULSIVE10 = 117858; + + public static final Integer CONVULSIVE11 = 118580; + + public static final Integer CONVULSIVE12 = 123550; + + public static final Integer CONVULSIVE13 = 124958; + + public static final Integer CONVULSIVE14 = 126474; + + public static final Integer CONVULSIVE15 = 129948; + + public static final Integer CONVULSIVE16 = 138960; + + public static final Integer CONVULSIVE17 = 140339; + + public static final Integer CONVULSIVE18 = 140485; + + public static final Integer CONVULSIVE19 = 143388; + + public static final Integer CONVULSIVE20 = 144471; + + public static final Integer CONVULSIVE21 = 147874; + + public static final Integer CONVULSIVE22 = 148590; + + public static final Integer CONVULSIVE23 = 150308; + + public static final Integer CONVULSIVE24 = 151678; + + public static final Integer CONVULSIVE25 = 155756; + + public static final Integer CONVULSIVE26 = 156027; + + public static final Integer CONVULSIVE27 = 156119; + + public static final Integer CONVULSIVE28 = 161101; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java new file mode 100644 index 0000000000..5323303aa7 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java @@ -0,0 +1,439 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class DiabetesDiagnosisConstants { + + public static final Integer DIABETIC1 = 1449; + + public static final Integer DIABETIC2 = 110154; + + public static final Integer DIABETIC3 = 110155; + + public static final Integer DIABETIC4 = 110785; + + public static final Integer DIABETIC5 = 111367; + + public static final Integer DIABETIC6 = 111368; + + public static final Integer DIABETIC7 = 111735; + + public static final Integer DIABETIC8 = 111737; + + public static final Integer DIABETIC9 = 111740; + + public static final Integer DIABETIC10 = 111750; + + public static final Integer DIABETIC11 = 111752; + + public static final Integer DIABETIC12 = 111754; + + public static final Integer DIABETIC13 = 111755; + + public static final Integer DIABETIC14 = 112502; + + public static final Integer DIABETIC15 = 115223; + + public static final Integer DIABETIC16 = 115273; + + public static final Integer DIABETIC17 = 115910; + + public static final Integer DIABETIC18 = 117348; + + public static final Integer DIABETIC19 = 117351; + + public static final Integer DIABETIC20 = 117807; + + public static final Integer DIABETIC21 = 119434; + + public static final Integer DIABETIC22 = 119435; + + public static final Integer DIABETIC23 = 119438; + + public static final Integer DIABETIC24 = 119441; + + public static final Integer DIABETIC25 = 119450; + + public static final Integer DIABETIC26 = 119452; + + public static final Integer DIABETIC27 = 119453; + + public static final Integer DIABETIC28 = 119455; + + public static final Integer DIABETIC29 = 119457; + + public static final Integer DIABETIC30 = 119459; + + public static final Integer DIABETIC31 = 119461; + + public static final Integer DIABETIC32 = 119465; + + public static final Integer DIABETIC33 = 119466; + + public static final Integer DIABETIC34 = 119468; + + public static final Integer DIABETIC35 = 119474; + + public static final Integer DIABETIC36 = 119476; + + public static final Integer DIABETIC37 = 119477; + + public static final Integer DIABETIC38 = 119479; + + public static final Integer DIABETIC39 = 119480; + + public static final Integer DIABETIC40 = 119481; + + public static final Integer DIABETIC41 = 120870; + + public static final Integer DIABETIC42 = 122630; + + public static final Integer DIABETIC43 = 122714; + + public static final Integer DIABETIC44 = 122815; + + public static final Integer DIABETIC45 = 123574; + + public static final Integer DIABETIC46 = 123579; + + public static final Integer DIABETIC47 = 123941; + + public static final Integer DIABETIC48 = 123942; + + public static final Integer DIABETIC49 = 123944; + + public static final Integer DIABETIC50 = 123945; + + public static final Integer DIABETIC51 = 123946; + + public static final Integer DIABETIC52 = 125191; + + public static final Integer DIABETIC53 = 126603; + + public static final Integer DIABETIC54 = 126985; + + public static final Integer DIABETIC55 = 126986; + + public static final Integer DIABETIC56 = 127706; + + public static final Integer DIABETIC57 = 128343; + + public static final Integer DIABETIC58 = 128401; + + public static final Integer DIABETIC59 = 129179; + + public static final Integer DIABETIC60 = 129233; + + public static final Integer DIABETIC61 = 129234; + + public static final Integer DIABETIC62 = 129235; + + public static final Integer DIABETIC63 = 129236; + + public static final Integer DIABETIC64 = 129237; + + public static final Integer DIABETIC65 = 129238; + + public static final Integer DIABETIC66 = 129239; + + public static final Integer DIABETIC67 = 129946; + + public static final Integer DIABETIC68 = 130189; + + public static final Integer DIABETIC69 = 132887; + + public static final Integer DIABETIC70 = 132889; + + public static final Integer DIABETIC71 = 132978; + + public static final Integer DIABETIC72 = 133150; + + public static final Integer DIABETIC73 = 133152; + + public static final Integer DIABETIC74 = 133409; + + public static final Integer DIABETIC75 = 133460; + + public static final Integer DIABETIC76 = 134012; + + public static final Integer DIABETIC77 = 134141; + + public static final Integer DIABETIC78 = 134573; + + public static final Integer DIABETIC79 = 134611; + + public static final Integer DIABETIC80 = 134721; + + public static final Integer DIABETIC81 = 135765; + + public static final Integer DIABETIC82 = 136773; + + public static final Integer DIABETIC83 = 136774; + + public static final Integer DIABETIC84 = 136779; + + public static final Integer DIABETIC85 = 136780; + + public static final Integer DIABETIC86 = 137744; + + public static final Integer DIABETIC87 = 137914; + + public static final Integer DIABETIC88 = 137941; + + public static final Integer DIABETIC89 = 138458; + + public static final Integer DIABETIC90 = 138755; + + public static final Integer DIABETIC91 = 139482; + + public static final Integer DIABETIC92 = 139483; + + public static final Integer DIABETIC93 = 139484; + + public static final Integer DIABETIC94 = 140205; + + public static final Integer DIABETIC95 = 140228; + + public static final Integer DIABETIC96 = 140589; + + public static final Integer DIABETIC97 = 141730; + + public static final Integer DIABETIC98 = 142258; + + public static final Integer DIABETIC99 = 142336; + + public static final Integer DIABETIC100 = 142408; + + public static final Integer DIABETIC101 = 142428; + + public static final Integer DIABETIC102 = 142429; + + public static final Integer DIABETIC103 = 142430; + + public static final Integer DIABETIC104 = 142431; + + public static final Integer DIABETIC105 = 142432; + + public static final Integer DIABETIC106 = 142433; + + public static final Integer DIABETIC107 = 142434; + + public static final Integer DIABETIC108 = 142435; + + public static final Integer DIABETIC109 = 142437; + + public static final Integer DIABETIC110 = 142439; + + public static final Integer DIABETIC111 = 142440; + + public static final Integer DIABETIC112 = 142441; + + public static final Integer DIABETIC113 = 142442; + + public static final Integer DIABETIC114 = 142444; + + public static final Integer DIABETIC115 = 142445; + + public static final Integer DIABETIC116 = 142446; + + public static final Integer DIABETIC117 = 142447; + + public static final Integer DIABETIC118 = 142448; + + public static final Integer DIABETIC119 = 142449; + + public static final Integer DIABETIC120 = 142450; + + public static final Integer DIABETIC121 = 142451; + + public static final Integer DIABETIC122 = 142452; + + public static final Integer DIABETIC123 = 142453; + + public static final Integer DIABETIC124 = 142454; + + public static final Integer DIABETIC125 = 142455; + + public static final Integer DIABETIC126 = 142456; + + public static final Integer DIABETIC127 = 142457; + + public static final Integer DIABETIC128 = 142458; + + public static final Integer DIABETIC129 = 142460; + + public static final Integer DIABETIC130 = 142463; + + public static final Integer DIABETIC131 = 142469; + + public static final Integer DIABETIC132 = 142471; + + public static final Integer DIABETIC133 = 142472; + + public static final Integer DIABETIC134 = 142473; + + public static final Integer DIABETIC135 = 142474; + + public static final Integer DIABETIC136 = 142475; + + public static final Integer DIABETIC137 = 142476; + + public static final Integer DIABETIC138 = 142478; + + public static final Integer DIABETIC139 = 142480; + + public static final Integer DIABETIC140 = 142481; + + public static final Integer DIABETIC141 = 142482; + + public static final Integer DIABETIC142 = 142483; + + public static final Integer DIABETIC143 = 142484; + + public static final Integer DIABETIC144 = 142485; + + public static final Integer DIABETIC145 = 142486; + + public static final Integer DIABETIC146 = 146841; + + public static final Integer DIABETIC147 = 146869; + + public static final Integer DIABETIC148 = 146910; + + public static final Integer DIABETIC149 = 148267; + + public static final Integer DIABETIC150 = 148839; + + public static final Integer DIABETIC151 = 150021; + + public static final Integer DIABETIC152 = 152429; + + public static final Integer DIABETIC153 = 152430; + + public static final Integer DIABETIC154 = 152431; + + public static final Integer DIABETIC155 = 152432; + + public static final Integer DIABETIC156 = 152433; + + public static final Integer DIABETIC157 = 152434; + + public static final Integer DIABETIC158 = 152435; + + public static final Integer DIABETIC159 = 152909; + + public static final Integer DIABETIC160 = 152910; + + public static final Integer DIABETIC161 = 153741; + + public static final Integer DIABETIC162 = 154201; + + public static final Integer DIABETIC163 = 154205; + + public static final Integer DIABETIC164 = 154216; + + public static final Integer DIABETIC165 = 154229; + + public static final Integer DIABETIC166 = 154231; + + public static final Integer DIABETIC167 = 154239; + + public static final Integer DIABETIC168 = 154241; + + public static final Integer DIABETIC169 = 154445; + + public static final Integer DIABETIC170 = 155216; + + public static final Integer DIABETIC171 = 155461; + + public static final Integer DIABETIC172 = 155914; + + public static final Integer DIABETIC173 = 155915; + + public static final Integer DIABETIC174 = 155916; + + public static final Integer DIABETIC175 = 155917; + + public static final Integer DIABETIC176 = 155918; + + public static final Integer DIABETIC177 = 155919; + + public static final Integer DIABETIC178 = 155993; + + public static final Integer DIABETIC179 = 156162; + + public static final Integer DIABETIC180 = 156299; + + public static final Integer DIABETIC181 = 156630; + + public static final Integer DIABETIC182 = 156780; + + public static final Integer DIABETIC183 = 157649; + + public static final Integer DIABETIC184 = 157650; + + public static final Integer DIABETIC185 = 157651; + + public static final Integer DIABETIC186 = 157652; + + public static final Integer DIABETIC187 = 157653; + + public static final Integer DIABETIC188 = 157990; + + public static final Integer DIABETIC189 = 158013; + + public static final Integer DIABETIC190 = 158049; + + public static final Integer DIABETIC191 = 158392; + + public static final Integer DIABETIC192 = 158448; + + public static final Integer DIABETIC193 = 158473; + + public static final Integer DIABETIC194 = 158474; + + public static final Integer DIABETIC195 = 158480; + + public static final Integer DIABETIC196 = 158495; + + public static final Integer DIABETIC197 = 158632; + + public static final Integer DIABETIC198 = 159185; + + public static final Integer DIABETIC200 = 159186; + + public static final Integer DIABETIC201 = 159187; + + public static final Integer DIABETIC202 = 159188; + + public static final Integer DIABETIC203 = 159189; + + public static final Integer DIABETIC204 = 159191; + + public static final Integer DIABETIC205 = 159192; + + public static final Integer DIABETIC206 = 159193; + + public static final Integer DIABETIC207 = 159199; + + public static final Integer DIABETIC208 = 159200; + + public static final Integer DIABETIC209 = 159202; + + public static final Integer DIABETIC210 = 159203; + + public static final Integer DIABETIC211 = 159226; + + public static final Integer DIABETIC212 = 159227; + + public static final Integer DIABETIC213 = 159342; + + public static final Integer DIABETIC214 = 162491; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java new file mode 100644 index 0000000000..76f4506a01 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java @@ -0,0 +1,9230 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +import org.openmrs.Concept; +import org.openmrs.api.context.Context; + +public class DiagnosisConcepts { + public static final class _DiagnosisConcepts { + // Central naval + public static final Integer CENTRAL_NAVAL1 = 990; + + public static final Integer CENTRAL_NAVAL2 = 110484; + + public static final Integer CENTRAL_NAVAL3 = 112094; + + public static final Integer CENTRAL_NAVAL4 = 112101; + + public static final Integer CENTRAL_NAVAL5 = 114058; + + public static final Integer CENTRAL_NAVAL6 = 114059; + + public static final Integer CENTRAL_NAVAL7 = 115062; + + public static final Integer CENTRAL_NAVAL8 = 115213; + + public static final Integer CENTRAL_NAVAL9 = 116984; + + public static final Integer CENTRAL_NAVAL10 = 118597; + + public static final Integer CENTRAL_NAVAL11 = 118994; + + public static final Integer CENTRAL_NAVAL12 = 119564; + + public static final Integer CENTRAL_NAVAL13 = 119599; + + public static final Integer CENTRAL_NAVAL14 = 120831; + + public static final Integer CENTRAL_NAVAL15 = 120833; + + public static final Integer CENTRAL_NAVAL16 = 121765; + + public static final Integer CENTRAL_NAVAL17 = 122230; + + public static final Integer CENTRAL_NAVAL18 = 125108; + + public static final Integer CENTRAL_NAVAL19 = 126354; + + public static final Integer CENTRAL_NAVAL20 = 129158; + + public static final Integer CENTRAL_NAVAL21 = 129899; + + public static final Integer CENTRAL_NAVAL22 = 132604; + + public static final Integer CENTRAL_NAVAL23 = 132605; + + public static final Integer CENTRAL_NAVAL24 = 136055; + + public static final Integer CENTRAL_NAVAL25 = 136489; + + public static final Integer CENTRAL_NAVAL26 = 140252; + + public static final Integer CENTRAL_NAVAL27 = 140253; + + public static final Integer CENTRAL_NAVAL28 = 142107; + + public static final Integer CENTRAL_NAVAL29 = 143880; + + public static final Integer CENTRAL_NAVAL30 = 145953; + + public static final Integer CENTRAL_NAVAL31 = 145954; + + public static final Integer CENTRAL_NAVAL32 = 145955; + + public static final Integer CENTRAL_NAVAL33 = 147831; + + public static final Integer CENTRAL_NAVAL34 = 149308; + + public static final Integer CENTRAL_NAVAL35 = 150292; + + public static final Integer CENTRAL_NAVAL36 = 150813; + + public static final Integer CENTRAL_NAVAL37 = 154234; + + public static final Integer CENTRAL_NAVAL38 = 155270; + + public static final Integer CENTRAL_NAVAL39 = 155466; + + public static final Integer CENTRAL_NAVAL40 = 155467; + + public static final Integer CENTRAL_NAVAL41 = 155468; + + public static final Integer CENTRAL_NAVAL42 = 155469; + + public static final Integer CENTRAL_NAVAL43 = 155838; + + public static final Integer CENTRAL_NAVAL44 = 157611; + + public static final Integer CENTRAL_NAVAL45 = 157675; + + public static final Integer CENTRAL_NAVAL46 = 157913; + + public static final Integer CENTRAL_NAVAL47 = 157921; + + public static final Integer CENTRAL_NAVAL48 = 158777; + + public static final Integer CENTRAL_NAVAL49 = 160308; + + public static final Integer CENTRAL_NAVAL50 = 161220; + + // Dysentery (Blood Bloody diarrhoea) + public static final Integer DYSENTERY = 152; // 152 + + public static final Integer AMOEBIC_DYSENTERY = 149004; // 149004 + + public static final Integer SHIGELLA_DYSENTERY = 117126; // 117126 + + public static final Integer BACILLARY_DYSENTERY = 148036; // 148036 + + public static final Integer Viral_Dysentery = 111485; + + public static final Integer Haemorrhagic_Dysentery = 138861; + + public static final Integer Catarrhal_Dysentery = 146099; + + public static final Integer Acute_Amebic_Dysentery_without_Abscess = 149918; + + public static final Integer Acute_Amebic_Dysentery = 149919; + + public static final Integer Joint_problem_following_dysentery = 157405; + + // Meningococcal + public static final Integer MENINGOCOCCAL_MENINGITIS = 134369; // 134369 + + // OTHER MENINGITIS + public static final Integer BACTERIAL_MENINGITIS = 121255; // 121255 + + public static final Integer CRYPTOCOCCAL_MENINGITIS = 1294; // 1294 + + public static final Integer VIRAL_MENINGITIS = 123103; // 123103 + + public static final Integer OM1 = 997; + + public static final Integer OM2 = 5033; + + public static final Integer OM3 = 111967; + + public static final Integer OM4 = 112488; + + public static final Integer OM5 = 116183; + + public static final Integer OM6 = 121210; + + public static final Integer OM7 = 121211; + + public static final Integer OM8 = 121258; + + public static final Integer OM9 = 124076; + + public static final Integer OM10 = 125820; + + public static final Integer OM11 = 125958; + + public static final Integer OM12 = 127200; + + public static final Integer OM13 = 128274; + + public static final Integer OM14 = 128335; + + public static final Integer OM15 = 130035; + + public static final Integer OM16 = 130095; + + public static final Integer OM17 = 132819; + + public static final Integer OM18 = 133667; + + public static final Integer OM19 = 135234; + + public static final Integer OM20 = 135731; + + public static final Integer OM21 = 135895; + + public static final Integer OM22 = 138586; + + public static final Integer OM23 = 138589; + + public static final Integer OM24 = 138594; + + public static final Integer OM25 = 138691; + + public static final Integer OM26 = 138698; + + public static final Integer OM27 = 139159; + + public static final Integer OM28 = 139164; + + public static final Integer OM29 = 139195; + + public static final Integer OM30 = 139329; + + public static final Integer OM31 = 139736; + + public static final Integer OM32 = 141008; + + public static final Integer OM33 = 141169; + + public static final Integer OM34 = 141201; + + public static final Integer OM35 = 141541; + + public static final Integer OM36 = 143122; + + public static final Integer OM37 = 143245; + + public static final Integer OM38 = 143664; + + public static final Integer OM39 = 144646; + + public static final Integer OM40 = 145289; + + public static final Integer OM41 = 145481; + + public static final Integer OM42 = 145722; + + public static final Integer OM43 = 146525; + + public static final Integer OM44 = 148342; + + public static final Integer OM45 = 148343; + + public static final Integer OM46 = 149250; + + public static final Integer OM47 = 149421; + + public static final Integer OM48 = 149498; + + public static final Integer OM49 = 149524; + + public static final Integer OM50 = 149944; + + public static final Integer OM51 = 152206; + + public static final Integer OM52 = 152953; + + public static final Integer OM53 = 157565; + + public static final Integer OM54 = 160440; + + public static final Integer OM55 = 160441; + + // Tetanus + public static final Integer TETANUS = 124957; // 124957 + + public static final Integer TETANUS_NEONATORUM = 124954; // 124954 + + public static final Integer OBSTETRICAL_TETANUS = 152276; + + // CHICKEN POX + public static final Integer CHICKEN_POX = 892; + + public static final Integer CP2 = 5029; + + public static final Integer CP3 = 120744; + + public static final Integer CP4 = 123357; + + public static final Integer CP5 = 145698; + + public static final Integer CP6 = 162273; + + // MEASLES + public static final Integer MEASLES = 134561; + + public static final Integer MSC1 = 115885; + + public static final Integer MSC2 = 115886; + + public static final Integer MSC3 = 117161; + + public static final Integer MSC4 = 129467; + + public static final Integer MSC5 = 129468; + + public static final Integer MSC6 = 129469; + + public static final Integer MSC7 = 129768; + + public static final Integer MSC8 = 134558; + + public static final Integer MSC9 = 134559; + + public static final Integer MSC10 = 134560; + + public static final Integer MSC12 = 149286; + + public static final Integer MSC13 = 152206; + + public static final Integer MSC14 = 152208; + + public static final Integer MSC15 = 152209; + + public static final Integer MSC16 = 154730; + + public static final Integer MSC17 = 157151; + + public static final Integer MSC18 = 157691; + + public static final Integer MSC19 = 157692; + + public static final Integer MSC20 = 163396; + + // HEPATITIS + public static final Integer HP1 = 28; + + public static final Integer HP2 = 110389; + + public static final Integer HP3 = 110407; + + public static final Integer HP4 = 110409; + + public static final Integer HP5 = 111064; + + public static final Integer HP6 = 111065; + + public static final Integer HP7 = 111467; + + public static final Integer HP8 = 111474; + + public static final Integer HP9 = 111475; + + public static final Integer HP10 = 111477; + + public static final Integer HP11 = 111479; + + public static final Integer HP12 = 111481; + + public static final Integer HP13 = 111759; + + public static final Integer HP14 = 113392; + + public static final Integer HP15 = 115215; + + public static final Integer HP16 = 116986; + + public static final Integer HP17 = 117591; + + public static final Integer HP18 = 117592; + + public static final Integer HP19 = 117593; + + public static final Integer HP20 = 120548; + + public static final Integer HP21 = 120557; + + public static final Integer HP22 = 120558; + + public static final Integer HP23 = 120637; + + public static final Integer HP24 = 120682; + + public static final Integer HP25 = 120683; + + public static final Integer HP26 = 121812; + + public static final Integer HP27 = 121816; + + public static final Integer HP28 = 122027; + + public static final Integer HP29 = 122028; + + public static final Integer HP30 = 122029; + + public static final Integer HP31 = 122054; + + public static final Integer HP32 = 123106; + + public static final Integer HP33 = 123107; + + public static final Integer HP34 = 123108; + + public static final Integer HP35 = 123109; + + public static final Integer HP36 = 123111; + + public static final Integer HP37 = 124412; + + public static final Integer HP38 = 124427; + + public static final Integer HP39 = 124443; + + public static final Integer HP40 = 125726; + + public static final Integer HP41 = 127725; + + public static final Integer HP42 = 127726; + + public static final Integer HP43 = 127727; + + public static final Integer HP44 = 127942; + + public static final Integer HP45 = 130513; + + public static final Integer HP46 = 130527; + + public static final Integer HP47 = 131704; + + public static final Integer HP48 = 133403; + + public static final Integer HP49 = 133668; + + public static final Integer HP50 = 135360; + + public static final Integer HP51 = 135508; + + public static final Integer HP52 = 137274; + + public static final Integer HP53 = 138816; + + public static final Integer HP54 = 138817; + + public static final Integer HP55 = 138818; + + public static final Integer HP56 = 138819; + + public static final Integer HP57 = 138820; + + public static final Integer HP58 = 138821; + + public static final Integer HP59 = 139176; + + public static final Integer HP60 = 139327; + + public static final Integer HP61 = 141090; + + public static final Integer HP62 = 141723; + + public static final Integer HP63 = 142964; + + public static final Integer HP64 = 145131; + + public static final Integer HP65 = 145216; + + public static final Integer HP66 = 145217; + + public static final Integer HP67 = 145218; + + public static final Integer HP68 = 145347; + + public static final Integer HP69 = 145500; + + public static final Integer HP70 = 145502; + + public static final Integer HP71 = 145503; + + public static final Integer HP72 = 145504; + + public static final Integer HP73 = 145508; + + public static final Integer HP74 = 145509; + + public static final Integer HP75 = 145615; + + public static final Integer HP76 = 145663; + + public static final Integer HP77 = 148756; + + public static final Integer HP78 = 148757; + + public static final Integer HP79 = 148758; + + public static final Integer HP80 = 149003; + + public static final Integer HP81 = 149153; + + public static final Integer HP82 = 149471; + + public static final Integer HP83 = 149484; + + public static final Integer HP84 = 149625; + + public static final Integer HP85 = 149742; + + public static final Integer HP86 = 149743; + + public static final Integer HP87 = 149745; + + public static final Integer HP88 = 149799; + + public static final Integer HP89 = 149800; + + public static final Integer HP90 = 152080; + + public static final Integer HP91 = 152275; + + public static final Integer HP92 = 152350; + + public static final Integer HP93 = 152408; + + public static final Integer HP94 = 152410; + + public static final Integer HP95 = 152411; + + public static final Integer HP96 = 152412; + + public static final Integer HP97 = 152441; + + public static final Integer HP98 = 152453; + + public static final Integer HP99 = 152665; + + public static final Integer HP100 = 152762; + + public static final Integer HP101 = 154951; + + public static final Integer HP102 = 156437; + + public static final Integer HP103 = 156589; + + public static final Integer HP104 = 156590; + + public static final Integer HP105 = 156751; + + public static final Integer HP106 = 156752; + + public static final Integer HP107 = 158257; + + public static final Integer HP108 = 158927; + + public static final Integer HP109 = 159295; + + public static final Integer HP110 = 160143; + + public static final Integer HP111 = 162269; + + public static final Integer HP112 = 162270; + + public static final Integer HP113 = 162271; + + public static final Integer HP114 = 163325; + + //Mumps + public static final Integer MUMPS1 = 115486; + + public static final Integer MUMPS2 = 115487; + + public static final Integer MUMPS3 = 129750; + + public static final Integer MUMPS4 = 133658; + + public static final Integer MUMPS5 = 133659; + + public static final Integer MUMPS6 = 133660; + + public static final Integer MUMPS7 = 133661; + + public static final Integer MUMPS8 = 133662; + + public static final Integer MUMPS9 = 133663; + + public static final Integer MUMPS10 = 133664; + + public static final Integer MUMPS11 = 133665; + + public static final Integer MUMPS12 = 133666; + + public static final Integer MUMPS13 = 133667; + + public static final Integer MUMPS14 = 133668; + + public static final Integer MUMPS15 = 133669; + + public static final Integer MUMPS16 = 133670; + + public static final Integer MUMPS17 = 133671; + + public static final Integer MUMPS18 = 152238; + + public static final Integer MUMPS19 = 154763; + + public static final Integer MUMPS20 = 157186; + + public static final Integer MUMPS21 = 157870; + + public static final Integer MUMPS22 = 157871; + + // Diarrhoe + public static final Integer ACUTE_DIARRHEA = 149856; + + public static final Integer FUNCTIONAL_DIARRHOEA = 139753; + + public static final Integer CHRONIC_DIARRHOEA = 5018; + + public static final Integer Hemorrhagic_Diarrhea = 138868; + + //public static final Integer Bacterial_Gastroenteritis = 148023; + + public static final Integer DIARRHEA_AMOEBIASIS = 14; + + public static final Integer DIARRHOEA = 16; + + public static final Integer Diarrhea_for_less_than_one_month = 1467; + + public static final Integer CHRONIC_DIARRHEA = 1468; + + public static final Integer WHO_HIV_CRYPTOSPORIDIOSIS_WITH_DIARRHEA = 5342; + + public static final Integer Clostridium_Difficile_Diarrhea = 110032; + + public static final Integer Antibiotic_Associated_Diarrhea = 110529; + + public static final Integer Psychogenic_Diarrhea = 113549; + + public static final Integer Protozoal_Diarrhoea = 113585; + + public static final Integer Diarrhea_of_Infectious_Origin = 117065; + + public static final Integer Infectious_Diarrhea = 117066; + + public static final Integer Diarrhea_Resulting_from_Infection_of_the_Bowel_Mucosa = 117068; + + public static final Integer Campylobacter_Diarrhoea = 118609; + + public static final Integer Dyspeptic_Diarrhea = 119429; + + public static final Integer Allergic_Diarrhea = 121697; + + public static final Integer Traveler_Diarrhea = 124154; + + public static final Integer Toddler_Diarrhea = 124619; + + public static final Integer Severe_Diarrhea = 126626; + + public static final Integer Secretory_Diarrhea = 126841; + + public static final Integer Raw_Milk_Associated_Diarrhea = 127901; + + public static final Integer Post_Vagotomy_Diarrhea = 129281; + + public static final Integer Postcholecystectomy_Diarrhea = 129454; + + public static final Integer Poisoning_by_Antidiarrheal_Drug = 129945; + + public static final Integer Osmotic_Diarrhea = 131681; + + public static final Integer Non_Infective_Diarrhea = 132853; + + public static final Integer Nervous_Diarrhea = 133133; + + public static final Integer Neonatal_Diarrhea = 133408; + + public static final Integer Infective_Diarrhea = 137262; + + public static final Integer Diabetic_Diarrhea = 138458; + + public static final Integer Hill_Diarrhea = 138639; + + public static final Integer Hemorrhagic_diarrhea = 138868; + + public static final Integer Bloody_diarrhea = 138868; + + public static final Integer Functional_Diarrhea = 139753; + + public static final Integer Epidemic_Diarrhea = 141158; + + public static final Integer Dysenteric_Diarrhea = 141638; + + public static final Integer Drug_and_Toxin_Induced_Diarrhea = 141759; + + public static final Integer Dietetic_Diarrhea = 142381; + + public static final Integer Diarrhea_of_presumed_infectious_origin = 142407; + + public static final Integer Diarrhea_in_Diabetes = 142408; + + public static final Integer Diarrhea_due_to_Staphylococcus = 142409; + + public static final Integer Diarrhea_due_to_Alcohol_Intake = 142410; + + public static final Integer Diarrhea_After_Gastrointestinal_Tract_Surgery = 142411; + + public static final Integer Diarrhea_2 = 142412; + + public static final Integer Congenital_Secretory_Diarrhea_Sodium_Type = 143733; + + public static final Integer Congenital_Secretory_Diarrhea_Chloride_Type = 143734; + + public static final Integer Congenital_Secretory_Diarrhea = 143735; + + public static final Integer Chronic_diarrhea_of_unknown_origin = 145443; + + public static final Integer Diarrhoea_chronic_1_month_unexplained = 145443; + + public static final Integer Chronic_Diarrhea_of_Infants_and_Young_Children = 145444; + + //public static final Integer diarrhea_bacterial = 148023; + + //public static final Integer Bacterial_diarrhea = 148023; + + public static final Integer Adverse_Reaction_of_Antidiarrheal_Drug = 148588; + + public static final Integer Acute_diarrhea_more_than_three_stools_in_24_hours = 149856; + + public static final Integer CHRONIC_DIARRHEA_1 = 151680; + + public static final Integer Irritable_Bowel_Syndrome_with_Diarrhea = 151981; + + public static final Integer diarrhea_due_to_drug = 155920; + + public static final Integer irritable_bowel_syndrome_without_diarrhoea = 157376; + + public static final Integer nausea_vomiting_and_diarrhea = 157892; + + public static final Integer postvagotomy_diarrhea = 158462; + + public static final Integer Diarrhea_for_2_weeks = 163465; + + public static final Integer Diarrhea_for_more_2_weeks = 163713; + + // TUBERCULORSIS + public static final Integer TUBERCULOSIS = 112141; // + + public static final Integer TUBERCULOSIS_OF_OTHER_ORGANS = 112058; // 1752 + + public static final Integer TUBERCULOSIS_IN_PREGNANCY = 124065; // 4592 + + public static final Integer TUBERCULOSIS_OF_THE_GENITOURINARY_SYSTEM = 136054; // 3860 + + public static final Integer MILIARY_TUBERCULOSIS = 115753; // 1708 + + public static final Integer PULMONARY_TUBERCULOSIS = 42; // 1010 + + public static final Integer RESPIRATORY_TUBERCULOSIS = 113303; // 4298 + + public static final Integer EXTRAPULMONARY_TUBERCULOSIS = 156204; // 1470 + + public static final Integer ACUTE_MILIARY_TUBERCULOSIS_UNSPECIFIED = 121986; // 4148 + + public static final Integer MULTI_DRUG_RESISTANT_TUBERCULOSIS = 159345; // 1213 + + public static final Integer EPTB = 5042; + + public static final Integer HIV_STAGING_TUBERCULOSIS_WITHIN_YEAR = 5338; + + public static final Integer Tuberculosis_Polyserositis = 111787; + + public static final Integer Tuberculous_Pleurisy_in_Primary_Progressive_Tuberculosis = 111809; + + public static final Integer Erythema_Nodosum_with_Hypersensitivity_Reaction_in_Tuberculosis = 111844; + + public static final Integer Tuberculosis_of_Joint = 111866; + + public static final Integer Addisons_Disease_due_to_Tuberculosis = 111875; + + public static final Integer Tuberculosis_of_Urinary_Organs = 111911; + + public static final Integer Tuberculosis_of_Ureter = 111918; + + public static final Integer Tuberculosis_of_Thyroid_Gland = 111925; + + public static final Integer Tuberculosis_of_Spleen = 111932; + + public static final Integer TSS = 111933; + + public static final Integer TSS1 = 111934; + + public static final Integer TSS2 = 111935; + + public static final Integer TSS3 = 111937; + + public static final Integer TSS4 = 111939; + + public static final Integer TSS5 = 111946; + + public static final Integer TSS6 = 111953; + + public static final Integer TB1 = 111968; + + public static final Integer TB2 = 111969; + + public static final Integer TB3 = 111971; + + public static final Integer TB4 = 111973; + + public static final Integer TB5 = 111974; + + public static final Integer TB6 = 111981; + + public static final Integer TB7 = 111988; + + public static final Integer TB8 = 111995; + + public static final Integer TB9 = 112002; + + public static final Integer TB10 = 112009; + + public static final Integer TB11 = 112023; + + public static final Integer TB12 = 112030; + + public static final Integer TB13 = 112037; + + public static final Integer TB14 = 112044; + + public static final Integer TB15 = 112051; + + public static final Integer TB16 = 112066; + + public static final Integer TB17 = 112073; + + public static final Integer TB18 = 112080; + + public static final Integer TB19 = 112087; + + public static final Integer TB20 = 112094; + + public static final Integer TB21 = 112101; + + public static final Integer TB22 = 112108; + + public static final Integer TB23 = 112115; + + public static final Integer TB24 = 112116; + + public static final Integer TB25 = 112130; + + public static final Integer TB26 = 112137; + + public static final Integer TB27 = 112139; + + public static final Integer TB28 = 113024; + + public static final Integer TB29 = 113025; + + public static final Integer TB30 = 113486; + + public static final Integer TB31 = 113487; + + public static final Integer TB32 = 113488; + + public static final Integer TB33 = 113489; + + public static final Integer TB34 = 113491; + + public static final Integer TB35 = 113663; + + public static final Integer TB36 = 115233; + + public static final Integer TB37 = 116592; + + public static final Integer TB38 = 117002; + + public static final Integer TB39 = 117825; + + public static final Integer TB40 = 118890; + + public static final Integer TB41 = 124020; + + public static final Integer TB42 = 124021; + + public static final Integer TB43 = 124022; + + public static final Integer TB44 = 124023; + + public static final Integer TB45 = 124024; + + public static final Integer TB46 = 124025; + + public static final Integer TB47 = 124026; + + public static final Integer TB48 = 124027; + + public static final Integer TB49 = 124028; + + public static final Integer TB50 = 124029; + + public static final Integer TB51 = 124030; + + public static final Integer TB52 = 124031; + + public static final Integer TB53 = 124032; + + public static final Integer TB54 = 124033; + + public static final Integer TB55 = 124039; + + public static final Integer TB56 = 124040; + + public static final Integer TB57 = 124041; + + public static final Integer TB58 = 124042; + + public static final Integer TB59 = 124043; + + public static final Integer TB60 = 124044; + + public static final Integer TB61 = 124045; + + public static final Integer TB62 = 124046; + + public static final Integer TB63 = 124049; + + public static final Integer TB64 = 124051; + + public static final Integer TB65 = 124054; + + public static final Integer TB66 = 124055; + + public static final Integer TB67 = 124056; + + public static final Integer TB68 = 124057; + + public static final Integer TB69 = 124058; + + public static final Integer TB70 = 124059; + + public static final Integer TB71 = 124060; + + public static final Integer TB72 = 124061; + + public static final Integer TB73 = 124062; + + public static final Integer TB74 = 124063; + + public static final Integer TB75 = 124066; + + public static final Integer TB76 = 124067; + + public static final Integer TB77 = 124068; + + public static final Integer TB78 = 126497; + + public static final Integer TB79 = 127893; + + public static final Integer TB80 = 128255; + + public static final Integer TB81 = 130052; + + public static final Integer TB82 = 133604; + + public static final Integer TB83 = 134579; + + public static final Integer TB84 = 134580; + + public static final Integer TB85 = 134581; + + public static final Integer TB86 = 134582; + + public static final Integer TB87 = 136040; + + public static final Integer TB88 = 136044; + + public static final Integer TB89 = 136055; + + public static final Integer TB90 = 136465; + + public static final Integer TB91 = 136487; + + public static final Integer TB92 = 137675; + + public static final Integer TB93 = 139519; + + public static final Integer TB94 = 141048; + + public static final Integer TB95 = 143645; + + public static final Integer TB96 = 145154; + + public static final Integer TB97 = 145286; + + public static final Integer TB98 = 145351; + + public static final Integer TB99 = 148068; + + public static final Integer TB100 = 149488; + + public static final Integer TB101 = 149855; + + public static final Integer TB102 = 151141; + + public static final Integer TB103 = 151363; + + public static final Integer TB104 = 151632; + + public static final Integer TB105 = 152012; + + public static final Integer TB106 = 152293; + + public static final Integer TB107 = 152306; + + public static final Integer TB108 = 152424; + + public static final Integer TB109 = 152427; + + public static final Integer TB110 = 152460; + + public static final Integer TB111 = 153467; + + public static final Integer TB112 = 153471; + + public static final Integer TB113 = 153781; + + public static final Integer TB114 = 153782; + + public static final Integer TB115 = 153783; + + public static final Integer TB116 = 153784; + + public static final Integer TB117 = 154164; + + public static final Integer TB118 = 156080; + + public static final Integer TB119 = 159167; + + public static final Integer TB120 = 159168; + + public static final Integer TB121 = 159169; + + public static final Integer TB122 = 159170; + + public static final Integer TB123 = 159171; + + public static final Integer TB124 = 159172; + + public static final Integer TB125 = 159173; + + public static final Integer TB126 = 159346; + + public static final Integer TB127 = 159788; + + public static final Integer TB128 = 159789; + + public static final Integer TB129 = 159790; + + public static final Integer TB130 = 159871; + + public static final Integer TB131 = 159874; + + public static final Integer TB132 = 159875; + + public static final Integer TB133 = 159876; + + public static final Integer TB134 = 159877; + + public static final Integer TB135 = 159878; + + public static final Integer TB136 = 160156; + + public static final Integer TB137 = 160247; + + public static final Integer TB138 = 160248; + + public static final Integer TB139 = 161355; + + public static final Integer TB140 = 163324; + + public static final Integer TB141 = 164366; + + public static final Integer TB142 = 164367; + + public static final Integer TB143 = 5042; + + public static final Integer TB144 = 5338; + + public static final Integer TB145 = 111787; + + public static final Integer TB146 = 111809; + + public static final Integer TB147 = 111844; + + public static final Integer TB148 = 111866; + + public static final Integer TB149 = 111875; + + public static final Integer TB150 = 111911; + + public static final Integer TB151 = 111918; + + public static final Integer TB152 = 111925; + + public static final Integer TB153 = 111932; + + public static final Integer TB154 = 111933; + + public static final Integer TB155 = 111934; + + public static final Integer TB156 = 111935; + + public static final Integer TB157 = 111937; + + public static final Integer TB158 = 111939; + + public static final Integer TB159 = 111946; + + public static final Integer TB160 = 111953; + + public static final Integer TB161 = 111968; + + public static final Integer TB162 = 111969; + + public static final Integer TB163 = 111971; + + public static final Integer TB164 = 111973; + + public static final Integer TB165 = 111974; + + public static final Integer TB166 = 111981; + + public static final Integer TB167 = 111988; + + public static final Integer TB168 = 111995; + + public static final Integer TB169 = 112002; + + public static final Integer TB170 = 112009; + + public static final Integer TB171 = 112023; + + public static final Integer TB172 = 112030; + + public static final Integer TB173 = 112037; + + public static final Integer TB174 = 112044; + + public static final Integer TB175 = 112051; + + public static final Integer TB176 = 112066; + + public static final Integer TB177 = 112073; + + public static final Integer TB178 = 112080; + + public static final Integer TB179 = 112087; + + public static final Integer TB180 = 112094; + + public static final Integer TB181 = 112101; + + public static final Integer TB182 = 112108; + + public static final Integer TB183 = 112115; + + public static final Integer TB184 = 112116; + + public static final Integer TB185 = 112130; + + public static final Integer TB186 = 112137; + + public static final Integer TB187 = 112139; + + public static final Integer TB188 = 113024; + + public static final Integer TB189 = 113025; + + public static final Integer TB190 = 113486; + + public static final Integer TB191 = 113487; + + public static final Integer TB192 = 113488; + + public static final Integer TB193 = 113489; + + public static final Integer TB194 = 113491; + + public static final Integer TB195 = 113663; + + public static final Integer TB196 = 115233; + + public static final Integer TB197 = 116592; + + public static final Integer TB198 = 117002; + + public static final Integer TB199 = 117825; + + public static final Integer TB200 = 118890; + + public static final Integer TB201 = 124020; + + public static final Integer TB202 = 124021; + + public static final Integer TB203 = 124022; + + public static final Integer TB204 = 124023; + + public static final Integer TB205 = 124024; + + public static final Integer TB206 = 124025; + + public static final Integer TB207 = 124026; + + public static final Integer TB208 = 124027; + + public static final Integer TB209 = 124028; + + public static final Integer TB210 = 124029; + + public static final Integer TB211 = 124030; + + public static final Integer TB212 = 124031; + + public static final Integer TB213 = 124032; + + public static final Integer TB214 = 124033; + + public static final Integer TB215 = 124039; + + public static final Integer TB216 = 124040; + + public static final Integer TB217 = 124041; + + public static final Integer TB218 = 124042; + + public static final Integer TB219 = 124043; + + public static final Integer TB220 = 124044; + + public static final Integer TB221 = 124045; + + public static final Integer TB222 = 124046; + + public static final Integer TB223 = 124049; + + public static final Integer TB224 = 124051; + + public static final Integer TB225 = 124054; + + public static final Integer TB226 = 124055; + + public static final Integer TB227 = 124056; + + public static final Integer TB228 = 124057; + + public static final Integer TB229 = 124058; + + public static final Integer TB230 = 124059; + + public static final Integer TB231 = 124060; + + public static final Integer TB232 = 124061; + + public static final Integer TB233 = 124062; + + public static final Integer TB234 = 124063; + + public static final Integer TB235 = 124066; + + public static final Integer TB236 = 124067; + + public static final Integer TB237 = 124068; + + public static final Integer TB238 = 126497; + + public static final Integer TB239 = 127893; + + public static final Integer TB240 = 128255; + + public static final Integer TB241 = 130052; + + public static final Integer TB242 = 133604; + + public static final Integer TB243 = 134579; + + public static final Integer TB244 = 134580; + + public static final Integer TB245 = 134581; + + public static final Integer TB246 = 134582; + + public static final Integer TB247 = 136040; + + public static final Integer TB248 = 136044; + + public static final Integer TB249 = 136055; + + public static final Integer TB250 = 136465; + + public static final Integer TB251 = 136487; + + public static final Integer TB252 = 137675; + + public static final Integer TB253 = 139519; + + public static final Integer TB254 = 141048; + + public static final Integer TB255 = 143645; + + public static final Integer TB256 = 145154; + + public static final Integer TB257 = 145286; + + public static final Integer TB258 = 145351; + + public static final Integer TB259 = 148068; + + public static final Integer TB260 = 149488; + + public static final Integer TB261 = 149855; + + public static final Integer TB262 = 151141; + + public static final Integer TB263 = 151363; + + public static final Integer TB264 = 151632; + + public static final Integer TB265 = 152012; + + public static final Integer TB266 = 152293; + + public static final Integer TB267 = 152306; + + public static final Integer TB268 = 152424; + + public static final Integer TB269 = 152427; + + public static final Integer TB270 = 152460; + + public static final Integer TB271 = 153467; + + public static final Integer TB272 = 153471; + + public static final Integer TB273 = 153781; + + public static final Integer TB274 = 153782; + + public static final Integer TB275 = 153783; + + public static final Integer TB276 = 153784; + + public static final Integer TB277 = 154164; + + public static final Integer TB278 = 156080; + + public static final Integer TB279 = 159167; + + public static final Integer TB280 = 159168; + + public static final Integer TB281 = 159169; + + public static final Integer TB282 = 159170; + + public static final Integer TB283 = 159171; + + public static final Integer TB284 = 159172; + + public static final Integer TB285 = 159173; + + public static final Integer TB286 = 159346; + + public static final Integer TB287 = 159788; + + public static final Integer TB288 = 159789; + + public static final Integer TB289 = 159790; + + public static final Integer TB290 = 159871; + + public static final Integer TB291 = 159874; + + public static final Integer TB292 = 159875; + + public static final Integer TB293 = 159876; + + public static final Integer TB294 = 159877; + + public static final Integer TB295 = 159878; + + public static final Integer TB296 = 160156; + + public static final Integer TB297 = 160247; + + public static final Integer TB298 = 160248; + + public static final Integer TB299 = 161355; + + public static final Integer TB300 = 163324; + + public static final Integer TB301 = 164366; + + public static final Integer TB302 = 164367; + + //ViralHaemorrhagicFever + public static final Integer HAEMORRHAGICFEVER_1 = 123112; + + public static final Integer HAEMORRHAGICFEVER_2 = 148483; + + //end TB diagnosis + + public static final Integer FEVERS = 140238; + + public static final Integer YELLOW_FEVER = 122759; + + public static final Integer PUERPERAL_FEVER = 113511; + + public static final Integer URINARY_TRACT_INFECTION = 111633; + + public static final Integer TYPHOID_FEVER = 1141; + + public static final Integer BILHARZIA_SCHISTOSOMIASIS = 117152; + + public static final Integer INTERSTINAL_WORMS = 116699; + + public static final Integer MALNUTRITION = 115122; + + public static final Integer ANAEMIA = 121629; + + public static final Integer EYE_INFECTIONS = 140832; + + public static final Integer GONOCOCCAL_INFECTIONOFEYE = 117770; + + // Chronic Ear Infection + public static final Integer CHRONIC_EAR_INFECTION = 117087; + + public static final Integer VIRAL_EAR_INFECTION = 123119; + + public static final Integer CHRONIC_EXTERNAL_EAR_INFECTION = 110889; + + //Respiratory Tract Infections + + public static final Integer ASTHMA = 121375; + + public static final Integer TONSILLITIS = 112; + + public static final Integer PNEUMONIA = 114100; + + public static final Integer CHRONIC_DISEASE_OF_RESPIRATORY_SYSTEM = 145437; + + public static final Integer MENTAL_DISORDER = 134337; + + public static final Integer DENTAL_DISORDERS = 151733; + + public static final Integer DISEASES_OF_THE_SKIN = 119022; + + public static final Integer DISEASE_OF_RESPIRATORY_SYSTEM = 119051; + + public static final Integer CHROMOSOMAL_ABNORMALITIES = 145521; + + public static final Integer CONGENITAL_ANOMALIES = 144025; + + public static final Integer POISONING = 114088; // 1026 + + public static final Integer DEATHS_DUE_TO_ROAD_TRAFFIC_INJURIES = 86; + + public static final Integer OTHER_BITE = 116757; + + public static final Integer DIABETES = 119481; + + public static final Integer EPILEPSY = 155; + + public static final Integer CONVULSIVE_DISORDERS = 116757; + + public static final Integer NEWLY_DIAGNOSED_HIV = 160170; + + public static final Integer BRUCELLOSIS = 121005; + + public static final Integer RICKETS = 127394; + + public static final Integer CARDIOVASCULAR_CONDITIONS = 119270; + + public static final Integer VIOLENCE_RELATED_INJURIES = 141814; + + public static final Integer CEREBRAL_PALSY = 152492; + + public static final Integer AUTISM = 121303; + + public static final Integer CENTRAL_NERVOUS_SYSTEM_CONDITIONS = 155468; + + public static final Integer TRYPONOSOMIASIS = 124078; + + public static final Integer LEISHMANIASIS = 116350; + + public static final Integer DRACUNCULOSIS = 116350; + + //public static final Integer YELLOW_FEVER = 122759; + public static final Integer HAEMORRHAGIC_FEVER = 123112; + + public static final Integer PLAGUE = 114120; + + public static final Integer ROAD_TRAFIC_INJURIES = 86; + + public static final Integer MULTIPLE_MYELOMA_AND_IMMUNOPROLIFERATIVE_NEOPLASMS = 137768; + + public static final Integer MALIGNANT_NEOPLASMS_OF_INDEPENDENT_PRIMARY_MULTIPLE_SITES = 152207; + + public static final Integer IMMUNOPROLIFERATIVE_NEOPLASMS_IN_REMISSION = 117271; + + public static final Integer INTRADURAL_EXTRAMEDULLARY_SPINAL_CORD_NEOPLASMS = 117271; + + public static final Integer CHRONIC_PHYSICAL_DISABILITY = 164538; + + //special clinics + public static final String SPECIAL_CLINIC = "b5e0cfd3-1009-4527-8e36-83b5e902b3ea"; // 1000005 + + public static final String EYE_CLINIC = "36f7a4c9-a64b-4351-bd08-fe185c7470dc"; // 1000155 + + public static final Integer PSYCHIATRIC_CLINIC = 160461; // 160461 + + public static final Integer CCC_CLINIC = 162050; // 162050 + + public static final String MCH_CLINIC = "1acb3707-9e03-40e3-b157-ce28451c3fd0"; //159937 + + public static final Integer ENT = 160455; //160455 + + public static final String TBL = "d0ed935d-0c32-451f-b9f4-f5743e267bbe"; //1000044 + + public static final Integer STI = 160546; //160546 + + public static final Integer ORT = 160465; //160465 + + public static final String OCP = "c2f85aed-695f-49b1-973e-002c37cbdebf"; //1000209 + + public static final String PHYS = "c2f85aed-695f-49b1-973e-002c37cbdebf"; //1000209 to create + + public static final String SC = "db1ba5ed-1da0-430d-9744-4dcc006f98b0"; //1000047 + + public static final Integer PAED = 160544; //160544 + + public static final Integer OG = 160456; //160456 + + public static final String MOPC = "66710a6d-5894-4f7d-a874-b449df77314d"; //1000042 + + //Cholera + public static final Integer DIARRHEA_CHOLERA = 15; + + public static final Integer CHOLERA = 198; + + public static final Integer Cholera_due_to_Vibrio_Cholerae = 122604; + + public static final Integer Need_for_Vaccination_for_Cholera = 127665; + + public static final Integer Pseudopancreatic_Cholera_Syndrome = 128269; + + public static final Integer Poisoning_by_Cholera_Vaccine = 129883; + + public static final Integer Hog_Cholera = 138460; + + public static final Integer Cholera_due_to_Vibrio_Cholerae_El_Tor = 145620; + + public static final Integer Cholera_Contact = 145621; + + public static final Integer Cholera_Carrier = 145622; + + public static final Integer CHOLERA_1 = 145623; + + public static final Integer Adverse_Reaction_to_Cholera_Vaccine = 149307; + + public static final Integer accidental_cholera_vaccine_poisoning = 154594; + + public static final Integer cholera_due_to_vibrio_cholerae_01_biovar_cholerae = 155541; + + public static final Integer cholera_due_to_vibrio_cholerae_01_biovar_El_Tor = 155542; + + public static final Integer cholera_vaccine_adverse_reaction = 155543; + + public static final Integer cholera_vaccine_poisoning_of_undetermined_intent = 155544; + + public static final Integer intentional_cholera_vaccine_poisoning = 157004; + + //Malaria + public static final Integer MALARIA_MILD = 33; + + public static final Integer MALARIA_SEVERE = 34; + + public static final Integer MALARIA_PRESUMED = 35; + + public static final Integer MALARIA = 123; + + public static final Integer MALARIA_RULE_OUT = 189; + + public static final Integer MALARIA_R_O = 189; + + public static final Integer MALARIA_CLINICAL = 364; + + public static final Integer CLINICAL_MALARIA = 397; + + public static final Integer UNSPECIFIED_MALARIA = 906; + + public static final Integer Maternal_Malaria_with_Delivery = 115898; + + public static final Integer Malarial_Fever = 116125; + + public static final Integer Complicated_malaria = 116127; + + public static final Integer MALARIA_1 = 116128; + + public static final Integer Haemolytic_Anaemia_due_to_Malaria = 117627; + + public static final Integer Falciparum_Malaria = 118353; + + public static final Integer Vivax_Malaria = 123008; + + public static final Integer Therapeutically_Induced_Malaria = 124925; + + public static final Integer Simian_malaria = 126490; + + public static final Integer Quartan_Malaria = 127971; + + public static final Integer Malariae_malaria = 127971; + + public static final Integer Poisoning_by_Antimalarial_Drug = 129936; + + public static final Integer Ovale_Malaria = 131096; + + public static final Integer Other_malaria = 131377; + + public static final Integer Mixed_Malaria = 134041; + + public static final Integer Maternal_Malaria_with_Delivery_with_Current_Postpartum_Complication = 134592; + + public static final Integer Maternal_Malaria_During_Pregnancy_Baby_Not_Yet_Delivered = 134594; + + public static final Integer Malaria_in_pregnancy = 134594; + + public static final Integer Malarial_Nephrosis = 135359; + + public static final Integer Malarial_Hepatitis = 135360; + + public static final Integer Malaria_in_Mother_Complicating_Pregnancy_Childbirth_and_or_Puerperium = 135361; + + public static final Integer Malaria_during_pregnancy = 135361; + + public static final Integer Induced_Malaria = 137565; + + public static final Integer hyper_reactive_malarial_splenomegaly = 138283; + + public static final Integer HO_Malaria = 139197; + + public static final Integer Congenital_Malaria = 143850; + + public static final Integer Cerebral_Malaria = 145851; + + public static final Integer Algid_Malaria = 149132; + + public static final Integer Plasmodium_Falciparum_Malaria_with_Cerebral_Complications = 152295; + + public static final Integer Plasmodium_Malariae_Malaria_with_Nephropathy = 152296; + + public static final Integer congenital_falciparum_malaria = 155686; + + public static final Integer Plasmodium_vivax_malaria_with_rupture_of_spleen = 158379; + + public static final Integer Uncomplicated_malaria = 159950; + + public static final Integer Malaria_uncomplicated = 159950; + + public static final Integer Malaria_confirmed = 160148; + + public static final Integer Presumptive_malaria_with_minor_digestive_system = 160149; + + public static final Integer Malaria_confirmed_with_minor_digestive_symptoms = 160150; + + public static final Integer Presumptive_malaria_with_pregnancy = 160151; + + public static final Integer Confirmed_malaria_with_pregnancy = 160152; + + public static final Integer Presumptive_malaria_with_minor_digestive_symptoms_pregnant = 160153; + + public static final Integer Confirmed_malaria_with_minor_digestive_symptoms_pregnant = 160154; + + public static final Integer Severe_malaria = 160155; + + public static final Integer Non_falciparum_malaria = 162754; + + //malaria confirmed + public static final Integer POSITIVE = 703; + + public static final Integer Positive_for_Plasmodium_falciparum = 161246; + + public static final Integer Positive_for_Plasmodium_vivax = 161247; + + public static final Integer Positive_for_both_Plasmodium_falciparum_and_Plasmodium_vivax = 161248; + + //Malaria suspected + public static final Integer NEGATIVE = 664; + + public static final Integer INDETERMINATE = 1138; + + public static final Integer Test_not_performed_due_to_lack_of_availability_of_test_materials = 160352; + + public static final Integer Procedure_performed = 1651; + + //Poliomyelitis (AFP) + public static final Integer PLY1 = 5258; + + public static final Integer PLY2 = 114004; + + public static final Integer PLY3 = 114663; + + public static final Integer PLY4 = 114664; + + public static final Integer PLY5 = 121870; + + public static final Integer PLY6 = 121892; + + public static final Integer PLY7 = 121922; + + public static final Integer PLY8 = 121925; + + public static final Integer PLY9 = 121926; + + public static final Integer PLY10 = 127663; + + public static final Integer PLY11 = 129466; + + public static final Integer PLY12 = 129578; + + public static final Integer PLY13 = 129579; + + public static final Integer PLY14 = 129580; + + public static final Integer PLY15 = 129581; + + public static final Integer PLY16 = 129582; + + public static final Integer PLY17 = 129583; + + public static final Integer PLY18 = 129584; + + public static final Integer PLY19 = 129585; + + public static final Integer PLY20 = 129586; + + public static final Integer PLY21 = 129692; + + public static final Integer PLY22 = 136046; + + public static final Integer PLY23 = 139188; + + public static final Integer PLY24 = 141160; + + public static final Integer PLY25 = 148628; + + public static final Integer PLY26 = 149568; + + public static final Integer PLY27 = 152009; + + public static final Integer PLY28 = 152010; + + public static final Integer PLY29 = 152011; + + public static final Integer PLY30 = 154938; + + public static final Integer PLY31 = 154970; + + public static final Integer PLY32 = 158143; + + public static final Integer PLY33 = 158786; + + public static final Integer PLY34 = 160195; + + //fevers + public static final Integer FEVER1 = 130; + + public static final Integer FEVER2 = 141; + + public static final Integer FEVER3 = 1494; + + public static final Integer FEVER4 = 1870; + + public static final Integer FEVER5 = 1892; + + public static final Integer FEVER6 = 112372; + + public static final Integer FEVER7 = 112373; + + public static final Integer FEVER8 = 113213; + + public static final Integer RIFT_VALLEY_FEVER = 113217; + + public static final Integer FEVER10 = 113228; + + public static final Integer FEVER11 = 113229; + + public static final Integer FEVER12 = 113230; + + public static final Integer FEVER13 = 113511; + + public static final Integer FEVER14 = 115681; + + public static final Integer FEVER15 = 115794; + + public static final Integer FEVER16 = 116125; + + public static final Integer FEVER17 = 118491; + + public static final Integer FEVER18 = 119353; + + public static final Integer Chikungunya_Fever = 120742; + + public static final Integer Chikungunya_Haemorrhagic_Fever = 120743; + + public static final Integer FEVER21 = 121005; + + public static final Integer FEVER22 = 121039; + + public static final Integer FEVER23 = 121040; + + public static final Integer FEVER24 = 121508; + + public static final Integer FEVER25 = 121690; + + public static final Integer FEVER26 = 121843; + + public static final Integer FEVER27 = 122759; + + public static final Integer FEVER28 = 122873; + + public static final Integer FEVER29 = 123112; + + public static final Integer FEVER30 = 123272; + + public static final Integer FEVER31 = 123557; + + public static final Integer FEVER32 = 123922; + + public static final Integer FEVER33 = 123936; + + public static final Integer FEVER34 = 124151; + + public static final Integer FEVER35 = 124291; + + public static final Integer FEVER36 = 125053; + + public static final Integer FEVER37 = 125220; + + public static final Integer FEVER38 = 125825; + + public static final Integer FEVER39 = 126057; + + public static final Integer FEVER40 = 126147; + + public static final Integer FEVER41 = 126171; + + public static final Integer FEVER42 = 126223; + + public static final Integer FEVER43 = 126272; + + public static final Integer FEVER44 = 126273; + + public static final Integer FEVER45 = 126455; + + public static final Integer FEVER46 = 126787; + + public static final Integer FEVER47 = 127144; + + public static final Integer FEVER48 = 127189; + + public static final Integer FEVER49 = 127328; + + public static final Integer FEVER50 = 127345; + + public static final Integer FEVER51 = 127447; + + public static final Integer FEVER52 = 127664; + + public static final Integer FEVER53 = 127719; + + public static final Integer FEVER54 = 127730; + + public static final Integer FEVER55 = 127731; + + public static final Integer FEVER56 = 127732; + + public static final Integer FEVER57 = 127733; + + public static final Integer FEVER58 = 127734; + + public static final Integer FEVER59 = 127735; + + public static final Integer FEVER60 = 127736; + + public static final Integer FEVER61 = 127737; + + public static final Integer FEVER62 = 127738; + + public static final Integer FEVER63 = 127739; + + public static final Integer FEVER64 = 127740; + + public static final Integer FEVER65 = 127902; + + public static final Integer FEVER66 = 127972; + + public static final Integer FEVER67 = 127981; + + public static final Integer FEVER68 = 127990; + + public static final Integer FEVER69 = 128392; + + public static final Integer FEVER70 = 129324; + + public static final Integer FEVER71 = 129354; + + public static final Integer FEVER72 = 129554; + + public static final Integer FEVER73 = 129599; + + public static final Integer FEVER74 = 130008; + + public static final Integer FEVER75 = 130010; + + public static final Integer FEVER76 = 130147; + + public static final Integer FEVER77 = 130558; + + public static final Integer FEVER78 = 130811; + + public static final Integer FEVER79 = 130812; + + public static final Integer FEVER80 = 130813; + + public static final Integer FEVER81 = 130814; + + public static final Integer FEVER82 = 131690; + + public static final Integer FEVER83 = 132381; + + public static final Integer FEVER84 = 132400; + + public static final Integer FEVER85 = 133472; + + public static final Integer FEVER86 = 133830; + + public static final Integer FEVER87 = 133937; + + public static final Integer FEVER88 = 134096; + + public static final Integer FEVER89 = 134124; + + public static final Integer FEVER90 = 134372; + + public static final Integer FEVER91 = 134380; + + public static final Integer FEVER92 = 134567; + + public static final Integer FEVER93 = 135579; + + public static final Integer FEVER94 = 136116; + + public static final Integer FEVER95 = 136221; + + public static final Integer FEVER96 = 136391; + + public static final Integer FEVER97 = 136451; + + public static final Integer FEVER98 = 139094; + + public static final Integer FEVER99 = 139297; + + public static final Integer FEVER100 = 139917; + + public static final Integer FEVER101 = 140237; + + public static final Integer FEVER102 = 140238; + + public static final Integer FEVER103 = 140471; + + public static final Integer FEVER104 = 140562; + + public static final Integer FEVER105 = 141205; + + public static final Integer FEVER106 = 141564; + + public static final Integer Dengue_haemorrhagic_fever = 142591; + + public static final Integer Dengue_fever = 142592; + + public static final Integer FEVER109 = 142629; + + public static final Integer FEVER110 = 143384; + + public static final Integer FEVER111 = 143621; + + public static final Integer FEVER112 = 144579; + + public static final Integer FEVER113 = 145182; + + public static final Integer FEVER114 = 146087; + + public static final Integer FEVER115 = 146943; + + public static final Integer FEVER116 = 146948; + + public static final Integer FEVER117 = 147043; + + public static final Integer FEVER118 = 147079; + + public static final Integer FEVER119 = 147260; + + public static final Integer FEVER120 = 147928; + + public static final Integer FEVER121 = 147950; + + public static final Integer FEVER122 = 148481; + + public static final Integer FEVER123 = 148483; + + public static final Integer FEVER124 = 148922; + + public static final Integer FEVER125 = 149253; + + public static final Integer FEVER126 = 149533; + + public static final Integer FEVER127 = 149939; + + public static final Integer FEVER128 = 152161; + + public static final Integer FEVER129 = 152456; + + public static final Integer FEVER130 = 153869; + + public static final Integer FEVER131 = 154892; + + public static final Integer FEVER132 = 155879; + + public static final Integer FEVER133 = 156083; + + public static final Integer FEVER134 = 156659; + + public static final Integer FEVER135 = 157324; + + public static final Integer FEVER136 = 157827; + + public static final Integer FEVER137 = 158019; + + public static final Integer FEVER138 = 158615; + + public static final Integer FEVER139 = 158796; + + public static final Integer FEVER140 = 158867; + + public static final Integer FEVER141 = 159336; + + //UTIs + public static final Integer UTI1 = 111633; + + public static final Integer UTI2 = 123489; + + public static final Integer UTI3 = 123491; + + public static final Integer UTI4 = 123492; + + public static final Integer UTI5 = 126076; + + public static final Integer UTI6 = 127783; + + public static final Integer UTI7 = 133367; + + public static final Integer UTI8 = 135918; + + public static final Integer UTI9 = 137795; + + public static final Integer UTI10 = 139498; + + public static final Integer UTI11 = 139499; + + public static final Integer UTI12 = 139500; + + public static final Integer UTI13 = 139501; + + public static final Integer UTI14 = 139502; + + public static final Integer UTI15 = 140736; + + public static final Integer UTI16 = 145137; + + public static final Integer UTI17 = 150740; + + public static final Integer UTI18 = 154960; + + public static final Integer UTI19 = 154988; + + public static final Integer UTI20 = 155191; + + public static final Integer UTI21 = 155391; + + public static final Integer UTI22 = 156175; + + public static final Integer UTI23 = 158151; + + public static final Integer UTI24 = 158447; + + public static final Integer UTI25 = 159255; + + //Typhoid fever + public static final Integer TF1 = 141; + + public static final Integer TF2 = 123936; + + public static final Integer TF3 = 130008; + + public static final Integer TF4 = 130811; + + public static final Integer TF5 = 134380; + + //bilhazia + public static final Integer BL1 = 117152; + + public static final Integer BL2 = 119683; + + public static final Integer BL3 = 119684; + + //Worms + public static final Integer ISW1 = 199; + + public static final Integer ISW2 = 116699; + + public static final Integer ISW3 = 122834; + + //Malnutritions + public static final Integer MALN1 = 113960; + + public static final Integer MALN2 = 115122; + + public static final Integer MALN3 = 116304; + + public static final Integer MALN4 = 116314; + + public static final Integer MALN5 = 119614; + + public static final Integer MALN6 = 126358; + + public static final Integer MALN7 = 126598; + + public static final Integer MALN8 = 134721; + + public static final Integer MALN9 = 134722; + + public static final Integer MALN10 = 134723; + + public static final Integer MALN11 = 134724; + + public static final Integer MALN12 = 134725; + + public static final Integer MALN13 = 141591; + + public static final Integer MALN14 = 148471; + + public static final Integer MALN15 = 152022; + + public static final Integer MALN16 = 152346; + + public static final Integer MALN17 = 157648; + + public static final Integer MALN18 = 157649; + + public static final Integer MALN19 = 157650; + + public static final Integer MALN20 = 157651; + + public static final Integer MALN21 = 157652; + + public static final Integer MALN22 = 157653; + + public static final Integer MALN23 = 157793; + + public static final Integer MALN24 = 157812; + + public static final Integer MALN25 = 158480; + + public static final Integer MALN26 = 160205; + + public static final Integer MALN27 = 162330; + + public static final Integer MALN28 = 162331; + + public static final Integer MALN29 = 163302; + + public static final Integer MALN30 = 163303; + + //Diagnosis concepts + public static final String PROBLEM_ADDED = "6042AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + + public static final String PROVISIONAL_DIAGNOSIS = "160249AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + + public static final String FINA_DIAGNOSIS = "160250AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; + + //eye infections + public static final Integer EI1 = 140832; + + public static final Integer EI2 = 160517; + + //Anaemia + public static final Integer ANEMIA1 = 110128; + + public static final Integer ANEMIA2 = 110833; + + public static final Integer ANEMIA3 = 110835; + + public static final Integer ANEMIA4 = 113053; + + public static final Integer ANEMIA5 = 113372; + + public static final Integer ANEMIA6 = 115128; + + public static final Integer ANEMIA7 = 115212; + + public static final Integer ANEMIA8 = 115791; + + public static final Integer ANEMIA9 = 115849; + + public static final Integer ANEMIA10 = 115851; + + public static final Integer ANEMIA11 = 115852; + + public static final Integer ANEMIA12 = 117576; + + public static final Integer ANEMIA13 = 117627; + + public static final Integer ANEMIA14 = 117628; + + public static final Integer ANEMIA15 = 119618; + + public static final Integer ANEMIA16 = 119909; + + public static final Integer ANEMIA17 = 121618; + + public static final Integer ANEMIA18 = 121624; + + public static final Integer ANEMIA19 = 121627; + + public static final Integer ANEMIA20 = 121629; + + public static final Integer ANEMIA21 = 122180; + + public static final Integer ANEMIA22 = 122819; + + public static final Integer ANEMIA23 = 122912; + + public static final Integer ANEMIA24 = 122978; + + public static final Integer ANEMIA25 = 123042; + + public static final Integer ANEMIA26 = 123043; + + public static final Integer ANEMIA27 = 123578; + + public static final Integer ANEMIA28 = 124444; + + public static final Integer ANEMIA29 = 124914; + + public static final Integer ANEMIA30 = 126058; + + public static final Integer ANEMIA31 = 126509; + + public static final Integer ANEMIA32 = 127011; + + public static final Integer ANEMIA33 = 127724; + + public static final Integer ANEMIA34 = 127753; + + public static final Integer ANEMIA35 = 127987; + + public static final Integer ANEMIA36 = 128344; + + public static final Integer ANEMIA37 = 130556; + + public static final Integer ANEMIA38 = 132673; + + public static final Integer ANEMIA39 = 132969; + + public static final Integer ANEMIA40 = 134206; + + public static final Integer ANEMIA41 = 134208; + + public static final Integer ANEMIA42 = 134429; + + public static final Integer ANEMIA43 = 134431; + + public static final Integer ANEMIA44 = 134433; + + public static final Integer ANEMIA45 = 134434; + + public static final Integer ANEMIA46 = 134438; + + public static final Integer ANEMIA47 = 134439; + + public static final Integer ANEMIA48 = 134440; + + public static final Integer ANEMIA49 = 134442; + + public static final Integer ANEMIA50 = 134443; + + public static final Integer ANEMIA51 = 134444; + + public static final Integer ANEMIA52 = 134445; + + public static final Integer ANEMIA53 = 134449; + + public static final Integer ANEMIA54 = 134450; + + public static final Integer ANEMIA55 = 134451; + + public static final Integer ANEMIA56 = 135425; + + public static final Integer ANEMIA57 = 136114; + + public static final Integer ANEMIA58 = 138565; + + public static final Integer ANEMIA59 = 138736; + + public static final Integer ANEMIA60 = 138923; + + public static final Integer ANEMIA61 = 138924; + + public static final Integer ANEMIA62 = 138926; + + public static final Integer ANEMIA63 = 138927; + + public static final Integer ANEMIA64 = 138928; + + public static final Integer ANEMIA65 = 138929; + + public static final Integer ANEMIA66 = 138930; + + public static final Integer ANEMIA67 = 138931; + + public static final Integer ANEMIA68 = 138932; + + public static final Integer ANEMIA69 = 139109; + + public static final Integer ANEMIA70 = 139110; + + public static final Integer ANEMIA71 = 139679; + + public static final Integer ANEMIA72 = 139680; + + public static final Integer ANEMIA73 = 139681; + + public static final Integer ANEMIA74 = 139682; + + public static final Integer ANEMIA75 = 139683; + + public static final Integer ANEMIA76 = 140561; + + public static final Integer ANEMIA77 = 141086; + + public static final Integer ANEMIA78 = 141726; + + public static final Integer ANEMIA79 = 141738; + + public static final Integer ANEMIA80 = 142277; + + public static final Integer ANEMIA81 = 143579; + + public static final Integer ANEMIA82 = 143989; + + public static final Integer ANEMIA83 = 143990; + + public static final Integer ANEMIA84 = 144271; + + public static final Integer ANEMIA85 = 144571; + + public static final Integer ANEMIA86 = 145510; + + public static final Integer ANEMIA87 = 146060; + + public static final Integer ANEMIA88 = 148078; + + public static final Integer ANEMIA89 = 148110; + + public static final Integer ANEMIA90 = 148111; + + public static final Integer ANEMIA91 = 148112; + + public static final Integer ANEMIA92 = 148113; + + public static final Integer ANEMIA93 = 148114; + + public static final Integer ANEMIA94 = 148115; + + public static final Integer ANEMIA95 = 148116; + + public static final Integer ANEMIA96 = 148524; + + public static final Integer ANEMIA97 = 148525; + + public static final Integer ANEMIA98 = 148832; + + public static final Integer ANEMIA99 = 148833; + + public static final Integer ANEMIA100 = 148835; + + public static final Integer ANEMIA101 = 148836; + + public static final Integer ANEMIA102 = 148837; + + public static final Integer ANEMIA103 = 148838; + + public static final Integer ANEMIA104 = 148839; + + public static final Integer ANEMIA105 = 148840; + + public static final Integer ANEMIA106 = 148842; + + public static final Integer ANEMIA107 = 148843; + + public static final Integer ANEMIA108 = 148844; + + public static final Integer ANEMIA109 = 148845; + + public static final Integer ANEMIA110 = 148846; + + public static final Integer ANEMIA111 = 148848; + + public static final Integer ANEMIA112 = 148849; + + public static final Integer ANEMIA113 = 148850; + + public static final Integer ANEMIA114 = 148851; + + public static final Integer ANEMIA115 = 148852; + + public static final Integer ANEMIA116 = 148854; + + public static final Integer ANEMIA117 = 148855; + + public static final Integer ANEMIA118 = 148856; + + public static final Integer ANEMIA119 = 148857; + + public static final Integer ANEMIA120 = 148858; + + public static final Integer ANEMIA121 = 148859; + + public static final Integer ANEMIA122 = 148860; + + public static final Integer ANEMIA123 = 148861; + + public static final Integer ANEMIA124 = 148862; + + public static final Integer ANEMIA125 = 148863; + + public static final Integer ANEMIA126 = 148864; + + public static final Integer ANEMIA127 = 148865; + + public static final Integer ANEMIA128 = 148866; + + public static final Integer ANEMIA129 = 148867; + + public static final Integer ANEMIA130 = 148868; + + public static final Integer ANEMIA131 = 148869; + + public static final Integer ANEMIA132 = 148870; + + public static final Integer ANEMIA133 = 148871; + + public static final Integer ANEMIA134 = 148872; + + public static final Integer ANEMIA135 = 148874; + + public static final Integer ANEMIA136 = 148875; + + public static final Integer ANEMIA137 = 148876; + + public static final Integer ANEMIA138 = 149566; + + public static final Integer ANEMIA139 = 149660; + + public static final Integer ANEMIA140 = 149661; + + public static final Integer ANEMIA141 = 149662; + + public static final Integer ANEMIA142 = 149663; + + public static final Integer ANEMIA143 = 149664; + + public static final Integer ANEMIA144 = 150037; + + public static final Integer ANEMIA145 = 150038; + + public static final Integer ANEMIA146 = 151529; + + public static final Integer ANEMIA147 = 152029; + + public static final Integer ANEMIA148 = 152334; + + public static final Integer ANEMIA149 = 152335; + + public static final Integer ANEMIA150 = 158812; + + public static final Integer ANEMIA151 = 162042; + + public static final Integer ANEMIA152 = 162043; + + public static final Integer ANEMIA153 = 162044; + + //Other eye problems + public static final Integer OE1 = 110043; + + public static final Integer OE2 = 110330; + + public static final Integer OE3 = 110398; + + public static final Integer OE4 = 111049; + + public static final Integer OE5 = 111184; + + public static final Integer OE6 = 111217; + + public static final Integer OE7 = 111218; + + public static final Integer OE8 = 111367; + + public static final Integer OE9 = 111368; + + public static final Integer OE10 = 112066; + + public static final Integer OE11 = 112198; + + public static final Integer OE12 = 112570; + + public static final Integer OE13 = 113109; + + public static final Integer OE14 = 113242; + + public static final Integer OE15 = 113290; + + public static final Integer OE16 = 113291; + + public static final Integer OE17 = 113292; + + public static final Integer OE18 = 113516; + + public static final Integer OE19 = 113757; + + public static final Integer OE20 = 114265; + + public static final Integer OE21 = 114266; + + public static final Integer OE41 = 114781; + + public static final Integer OE22 = 116072; + + public static final Integer OE23 = 116433; + + public static final Integer OE24 = 116572; + + public static final Integer OE25 = 116653; + + public static final Integer OE26 = 116971; + + public static final Integer OE27 = 117173; + + public static final Integer OE28 = 117253; + + public static final Integer OE29 = 117254; + + public static final Integer OE30 = 117256; + + public static final Integer OE31 = 117257; + + public static final Integer OE32 = 117258; + + public static final Integer OE33 = 117318; + + public static final Integer OE34 = 117428; + + public static final Integer OE35 = 117770; + + public static final Integer OE36 = 117954; + + public static final Integer OE37 = 118074; + + public static final Integer OE38 = 118075; + + public static final Integer OE39 = 118393; + + public static final Integer OE40 = 118439; + + public static final Integer OE42 = 119220; + + public static final Integer OE43 = 119222; + + public static final Integer OE44 = 119323; + + public static final Integer OE45 = 119595; + + public static final Integer OE46 = 119596; + + public static final Integer OE47 = 119638; + + public static final Integer OE48 = 119852; + + public static final Integer OE49 = 119853; + + public static final Integer OE50 = 120096; + + public static final Integer OE51 = 120097; + + public static final Integer OE52 = 120098; + + public static final Integer OE53 = 120099; + + public static final Integer OE54 = 120101; + + public static final Integer OE55 = 120983; + + public static final Integer OE56 = 120989; + + public static final Integer OE57 = 121099; + + public static final Integer OE58 = 121100; + + public static final Integer OE59 = 121101; + + public static final Integer OE60 = 121205; + + public static final Integer OE61 = 121206; + + public static final Integer OE62 = 122681; + + public static final Integer OE63 = 122803; + + public static final Integer OE64 = 122812; + + public static final Integer OE65 = 122813; + + public static final Integer OE66 = 123024; + + public static final Integer OE67 = 123064; + + public static final Integer OE68 = 123065; + + public static final Integer OE69 = 123328; + + public static final Integer OE70 = 123906; + + public static final Integer OE71 = 124200; + + public static final Integer OE72 = 124717; + + public static final Integer OE73 = 125211; + + public static final Integer OE74 = 125319; + + public static final Integer OE75 = 125391; + + public static final Integer OE76 = 125392; + + public static final Integer OE77 = 125503; + + public static final Integer OE78 = 125989; + + public static final Integer OE79 = 126507; + + public static final Integer OE80 = 126738; + + public static final Integer OE81 = 126744; + + public static final Integer OE82 = 127064; + + public static final Integer OE83 = 127147; + + public static final Integer OE84 = 127276; + + public static final Integer OE85 = 127391; + + public static final Integer OE86 = 127513; + + public static final Integer OE87 = 127596; + + public static final Integer OE88 = 127597; + + public static final Integer OE89 = 127602; + + public static final Integer OE90 = 127777; + + public static final Integer OE91 = 128422; + + public static final Integer OE92 = 128448; + + public static final Integer OE93 = 128616; + + public static final Integer OE94 = 128752; + + public static final Integer OE95 = 129109; + + public static final Integer OE96 = 129832; + + public static final Integer OE97 = 130184; + + public static final Integer OE98 = 130410; + + public static final Integer OE99 = 130611; + + public static final Integer OE100 = 130616; + + public static final Integer OE121 = 128422; + + public static final Integer OE122 = 128448; + + public static final Integer OE123 = 128616; + + public static final Integer OE124 = 128752; + + public static final Integer OE125 = 129109; + + public static final Integer OE126 = 129832; + + public static final Integer OE127 = 130184; + + public static final Integer OE128 = 130410; + + public static final Integer OE129 = 130611; + + public static final Integer OE130 = 130616; + + public static final Integer OE101 = 130742; + + public static final Integer OE102 = 130831; + + public static final Integer OE103 = 131040; + + public static final Integer OE104 = 131047; + + public static final Integer OE105 = 131995; + + public static final Integer OE106 = 131996; + + public static final Integer OE107 = 132396; + + public static final Integer OE108 = 132475; + + public static final Integer OE110 = 132633; + + public static final Integer OE111 = 132842; + + public static final Integer OE112 = 132862; + + public static final Integer OE113 = 134195; + + public static final Integer OE114 = 134517; + + public static final Integer OE115 = 134644; + + public static final Integer OE116 = 134645; + + public static final Integer OE117 = 134733; + + public static final Integer OE118 = 135151; + + public static final Integer OE119 = 135270; + + public static final Integer OE120 = 135271; + + public static final Integer OE135 = 135564; + + public static final Integer OE136 = 135566; + + public static final Integer OE137 = 135784; + + public static final Integer OE138 = 135878; + + public static final Integer OE139 = 135879; + + public static final Integer OE140 = 135998; + + public static final Integer OE141 = 136009; + + public static final Integer OE142 = 136107; + + public static final Integer OE143 = 136180; + + public static final Integer OE144 = 136186; + + public static final Integer OE145 = 136187; + + public static final Integer OE146 = 136523; + + public static final Integer OE147 = 136812; + + public static final Integer OE148 = 136813; + + public static final Integer OE149 = 137013; + + public static final Integer OE150 = 137027; + + public static final Integer OE151 = 137263; + + public static final Integer OE152 = 137264; + + public static final Integer OE153 = 137707; + + public static final Integer OE154 = 137708; + + public static final Integer OE155 = 137709; + + public static final Integer OE156 = 137710; + + public static final Integer OE157 = 137711; + + public static final Integer OE158 = 137712; + + public static final Integer OE159 = 137713; + + public static final Integer OE160 = 137714; + + public static final Integer OE131 = 135288; + + public static final Integer OE132 = 135390; + + public static final Integer OE133 = 135402; + + public static final Integer OE134 = 135501; + + public static final Integer OE161 = 137715; + + public static final Integer OE162 = 137717; + + public static final Integer OE163 = 137718; + + public static final Integer OE164 = 137719; + + public static final Integer OE165 = 137720; + + public static final Integer OE166 = 137721; + + public static final Integer OE167 = 137722; + + public static final Integer OE168 = 137723; + + public static final Integer OE169 = 137724; + + public static final Integer OE170 = 137725; + + public static final Integer OE171 = 137726; + + public static final Integer OE172 = 137727; + + public static final Integer OE173 = 137728; + + public static final Integer OE174 = 137729; + + public static final Integer OE175 = 137731; + + public static final Integer OE176 = 137733; + + public static final Integer OE177 = 137735; + + public static final Integer OE178 = 137736; + + public static final Integer OE179 = 137737; + + public static final Integer OE180 = 137738; + + public static final Integer OE184 = 137847; + + public static final Integer OE185 = 137974; + + public static final Integer OE186 = 137976; + + public static final Integer OE187 = 138023; + + public static final Integer OE188 = 138028; + + public static final Integer OE189 = 138164; + + public static final Integer OE190 = 138297; + + public static final Integer OE191 = 138694; + + public static final Integer OE192 = 138703; + + public static final Integer OE193 = 138892; + + public static final Integer OE194 = 139098; + + public static final Integer OE195 = 139100; + + public static final Integer OE196 = 139417; + + public static final Integer OE197 = 139771; + + public static final Integer OE198 = 139945; + + public static final Integer OE199 = 139977; + + public static final Integer OE200 = 140053; + + public static final Integer OE201 = 140068; + + public static final Integer OE202 = 140226; + + public static final Integer OE203 = 140827; + + public static final Integer OE204 = 140828; + + public static final Integer OE205 = 140831; + + public static final Integer OE206 = 140833; + + public static final Integer OE207 = 140949; + + public static final Integer OE208 = 140950; + + public static final Integer OE209 = 141191; + + public static final Integer OE210 = 141398; + + public static final Integer OE181 = 137739; + + public static final Integer OE182 = 137740; + + public static final Integer OE183 = 137742; + + public static final Integer OE211 = 141482; + + public static final Integer OE212 = 141485; + + public static final Integer OE213 = 141606; + + public static final Integer OE214 = 141695; + + public static final Integer OE215 = 142085; + + public static final Integer OE216 = 142239; + + public static final Integer OE217 = 142246; + + public static final Integer OE218 = 142646; + + public static final Integer OE219 = 142668; + + public static final Integer OE220 = 142695; + + public static final Integer OE221 = 142850; + + public static final Integer OE222 = 142876; + + public static final Integer OE223 = 143019; + + public static final Integer OE224 = 143453; + + public static final Integer OE225 = 143462; + + public static final Integer OE226 = 143491; + + public static final Integer OE227 = 143505; + + public static final Integer OE228 = 143508; + + public static final Integer OE229 = 143638; + + public static final Integer OE230 = 143756; + + public static final Integer OE231 = 143959; + + public static final Integer OE232 = 144056; + + public static final Integer OE233 = 144060; + + public static final Integer OE234 = 144199; + + public static final Integer OE235 = 144260; + + public static final Integer OE236 = 144263; + + public static final Integer OE237 = 144348; + + public static final Integer OE238 = 144588; + + public static final Integer OE239 = 145725; + + public static final Integer OE240 = 145726; + + public static final Integer OE241 = 145767; + + public static final Integer OE242 = 146111; + + public static final Integer OE243 = 146321; + + public static final Integer OE244 = 146322; + + public static final Integer OE245 = 146371; + + public static final Integer OE246 = 146632; + + public static final Integer OE247 = 146688; + + public static final Integer OE248 = 146799; + + public static final Integer OE249 = 146829; + + public static final Integer OE250 = 147116; + + public static final Integer OE251 = 147214; + + public static final Integer OE252 = 147217; + + public static final Integer OE253 = 147219; + + public static final Integer OE254 = 147394; + + public static final Integer OE255 = 147395; + + public static final Integer OE256 = 147396; + + public static final Integer OE257 = 147397; + + public static final Integer OE258 = 147398; + + public static final Integer OE259 = 147399; + + public static final Integer OE260 = 147400; + + public static final Integer OE261 = 147401; + + public static final Integer OE262 = 147402; + + public static final Integer OE263 = 147403; + + public static final Integer OE264 = 147404; + + public static final Integer OE265 = 147405; + + public static final Integer OE266 = 147582; + + public static final Integer OE267 = 147652; + + public static final Integer OE268 = 147653; + + public static final Integer OE269 = 147802; + + public static final Integer OE270 = 147963; + + public static final Integer OE271 = 148064; + + public static final Integer OE272 = 149176; + + public static final Integer OE273 = 150114; + + public static final Integer OE274 = 150478; + + public static final Integer OE275 = 150479; + + public static final Integer OE276 = 150523; + + public static final Integer OE277 = 150610; + + public static final Integer OE278 = 150658; + + public static final Integer OE279 = 150818; + + public static final Integer OE280 = 152481; + + public static final Integer OE281 = 152789; + + public static final Integer OE282 = 153557; + + public static final Integer OE283 = 153975; + + public static final Integer OE284 = 154250; + + public static final Integer OE285 = 155307; + + public static final Integer OE286 = 155308; + + public static final Integer OE287 = 155355; + + public static final Integer OE288 = 155773; + + public static final Integer OE289 = 155839; + + public static final Integer OE290 = 155899; + + public static final Integer OE291 = 156111; + + public static final Integer OE292 = 156208; + + public static final Integer OE293 = 156354; + + public static final Integer OE294 = 156504; + + public static final Integer OE295 = 156505; + + public static final Integer OE296 = 156506; + + public static final Integer OE297 = 157482; + + public static final Integer OE298 = 157617; + + public static final Integer OE299 = 157713; + + public static final Integer OE300 = 157718; + + public static final Integer OE301 = 158183; + + public static final Integer OE302 = 158496; + + public static final Integer OE303 = 158778; + + public static final Integer OE304 = 158807; + + public static final Integer OE305 = 159129; + + public static final Integer OE306 = 159317; + + public static final Integer OE307 = 160230; + + public static final Integer OE308 = 160923; + + public static final Integer OE309 = 162236; + + public static final Integer OE310 = 162835; + + public static final Integer OE311 = 163032; + + //Ear infections + public static final Integer ERA1 = 110189; + + public static final Integer ERA2 = 110889; + + public static final Integer ERA3 = 117086; + + public static final Integer ERA4 = 117087; + + public static final Integer ERA5 = 123119; + + public static final Integer ERA6 = 139740; + + public static final Integer ERA7 = 156628; + + //Atshima cases + + public static final Integer ASTHMA1 = 4; + + public static final Integer ASTHMA2 = 110826; + + public static final Integer ASTHMA3 = 113017; + + public static final Integer ASTHMA4 = 113018; + + public static final Integer ASTHMA5 = 116632; + + public static final Integer ASTHMA6 = 116633; + + public static final Integer ASTHMA7 = 116634; + + public static final Integer ASTHMA8 = 116635; + + public static final Integer ASTHMA9 = 118494; + + public static final Integer ASTHMA10 = 119500; + + public static final Integer ASTHMA11 = 120675; + + public static final Integer ASTHMA12 = 120676; + + public static final Integer ASTHMA13 = 121366; + + public static final Integer ASTHMA14 = 121367; + + public static final Integer ASTHMA15 = 121369; + + public static final Integer ASTHMA16 = 121372; + + public static final Integer ASTHMA17 = 121373; + + public static final Integer ASTHMA18 = 121375; + + public static final Integer ASTHMA19 = 121699; + + public static final Integer ASTHMA20 = 122838; + + public static final Integer ASTHMA21 = 125023; + + public static final Integer ASTHMA22 = 128465; + + public static final Integer ASTHMA23 = 129952; + + public static final Integer ASTHMA24 = 130070; + + public static final Integer ASTHMA25 = 132491; + + public static final Integer ASTHMA26 = 134026; + + public static final Integer ASTHMA27 = 134121; + + public static final Integer ASTHMA28 = 134161; + + public static final Integer ASTHMA29 = 134557; + + public static final Integer ASTHMA30 = 136032; + + public static final Integer ASTHMA31 = 136577; + + public static final Integer ASTHMA32 = 136578; + + public static final Integer ASTHMA33 = 139094; + + public static final Integer ASTHMA34 = 139212; + + public static final Integer ASTHMA35 = 140234; + + public static final Integer ASTHMA36 = 140848; + + public static final Integer ASTHMA37 = 140849; + + public static final Integer ASTHMA38 = 140850; + + public static final Integer ASTHMA39 = 140926; + + public static final Integer ASTHMA40 = 143261; + + public static final Integer ASTHMA41 = 145683; + + public static final Integer ASTHMA42 = 145742; + + public static final Integer ASTHMA43 = 146186; + + public static final Integer ASTHMA44 = 147994; + + public static final Integer ASTHMA45 = 148272; + + public static final Integer ASTHMA46 = 148273; + + public static final Integer ASTHMA47 = 148307; + + public static final Integer ASTHMA48 = 149075; + + public static final Integer ASTHMA49 = 149319; + + public static final Integer ASTHMA50 = 149899; + + public static final Integer ASTHMA51 = 153753; + + public static final Integer ASTHMA52 = 153754; + + public static final Integer ASTHMA53 = 155022; + + public static final Integer ASTHMA54 = 155180; + + public static final Integer ASTHMA55 = 155181; + + public static final Integer ASTHMA56 = 157788; + + public static final Integer ASTHMA57 = 157792; + + public static final Integer ASTHMA58 = 157802; + + //Tonsililites + public static final Integer TONSILITIES = 112; + + //Chromosomes abnomarlities + public static final Integer CHRAB1 = 116496; + + public static final Integer CHRAB2 = 116497; + + public static final Integer CHRAB3 = 116498; + + public static final Integer CHRAB4 = 120684; + + public static final Integer CHRAB5 = 120685; + + public static final Integer CHRAB6 = 140250; + + public static final Integer CHRAB7 = 140251; + + public static final Integer CHRAB8 = 145521; + + public static final Integer CHRAB9 = 154401; + + public static final Integer CHRAB10 = 157676; + + //congenal anoamalies + public static final Integer COAN1 = 119927; + + public static final Integer COAN2 = 119946; + + public static final Integer COAN3 = 119947; + + public static final Integer COAN4 = 119956; + + public static final Integer COAN5 = 120020; + + public static final Integer COAN7 = 120024; + + public static final Integer COAN8 = 120025; + + public static final Integer COAN9 = 120026; + + public static final Integer COAN10 = 120028; + + public static final Integer COAN11 = 120031; + + public static final Integer COAN12 = 120032; + + public static final Integer COAN13 = 120036; + + public static final Integer COAN14 = 120043; + + public static final Integer COAN15 = 120045; + + public static final Integer COAN16 = 120048; + + public static final Integer COAN17 = 120049; + + public static final Integer COAN18 = 120051; + + public static final Integer COAN19 = 120053; + + public static final Integer COAN20 = 120055; + + public static final Integer COAN21 = 120058; + + public static final Integer COAN22 = 120060; + + public static final Integer COAN23 = 120064; + + public static final Integer COAN24 = 120066; + + public static final Integer COAN25 = 120067; + + public static final Integer COAN26 = 120070; + + public static final Integer COAN27 = 120071; + + public static final Integer COAN28 = 120073; + + public static final Integer COAN29 = 120076; + + public static final Integer COAN30 = 120077; + + public static final Integer COAN31 = 120080; + + public static final Integer COAN32 = 120082; + + public static final Integer COAN33 = 120085; + + public static final Integer COAN34 = 120088; + + public static final Integer COAN35 = 120090; + + public static final Integer COAN36 = 120091; + + public static final Integer COAN37 = 120094; + + public static final Integer COAN38 = 120095; + + public static final Integer COAN39 = 120096; + + public static final Integer COAN40 = 120099; + + public static final Integer COAN41 = 120101; + + public static final Integer COAN42 = 120102; + + public static final Integer COAN43 = 120105; + + public static final Integer COAN44 = 120107; + + public static final Integer COAN45 = 120108; + + public static final Integer COAN46 = 120111; + + public static final Integer COAN47 = 120113; + + public static final Integer COAN48 = 120115; + + public static final Integer COAN49 = 120117; + + public static final Integer COAN50 = 120119; + + public static final Integer COAN51 = 120122; + + public static final Integer COAN52 = 120125; + + public static final Integer COAN53 = 120126; + + public static final Integer COAN54 = 120141; + + public static final Integer COAN55 = 120143; + + public static final Integer COAN56 = 120144; + + public static final Integer COAN57 = 120765; + + public static final Integer COAN58 = 120766; + + public static final Integer COAN59 = 121595; + + public static final Integer COAN60 = 140449; + + public static final Integer COAN61 = 140450; + + public static final Integer COAN62 = 140453; + + public static final Integer COAN63 = 140456; + + public static final Integer COAN64 = 144159; + + public static final Integer COAN65 = 144160; + + public static final Integer COAN66 = 144161; + + public static final Integer COAN67 = 144162; + + public static final Integer COAN68 = 144163; + + public static final Integer COAN69 = 144164; + + public static final Integer COAN70 = 144165; + + public static final Integer COAN71 = 144166; + + public static final Integer COAN72 = 144167; + + public static final Integer COAN73 = 144168; + + public static final Integer COAN74 = 144169; + + public static final Integer COAN75 = 144171; + + public static final Integer COAN76 = 144172; + + public static final Integer COAN77 = 144173; + + public static final Integer COAN78 = 144174; + + public static final Integer COAN79 = 144177; + + public static final Integer COAN80 = 144178; + + public static final Integer COAN81 = 144179; + + public static final Integer COAN82 = 144180; + + public static final Integer COAN83 = 144181; + + public static final Integer COAN84 = 144182; + + public static final Integer COAN85 = 144183; + + public static final Integer COAN86 = 144184; + + public static final Integer COAN87 = 144185; + + public static final Integer COAN88 = 144187; + + public static final Integer COAN89 = 144188; + + public static final Integer COAN90 = 144189; + + public static final Integer COAN91 = 144191; + + public static final Integer COAN92 = 144192; + + public static final Integer COAN93 = 144193; + + public static final Integer COAN94 = 144194; + + public static final Integer COAN95 = 144195; + + public static final Integer COAN96 = 144196; + + public static final Integer COAN97 = 144197; + + public static final Integer COAN98 = 144198; + + public static final Integer COAN99 = 144199; + + public static final Integer COAN100 = 144200; + + public static final Integer COAN101 = 144202; + + public static final Integer COAN120 = 144222; + + public static final Integer COAN121 = 144223; + + public static final Integer COAN122 = 144224; + + public static final Integer COAN123 = 144225; + + public static final Integer COAN124 = 144226; + + public static final Integer COAN125 = 144227; + + public static final Integer COAN126 = 144228; + + public static final Integer COAN127 = 144230; + + public static final Integer COAN128 = 144231; + + public static final Integer COAN129 = 144232; + + public static final Integer COAN130 = 144233; + + public static final Integer COAN131 = 144237; + + public static final Integer COAN132 = 144238; + + public static final Integer COAN133 = 144239; + + public static final Integer COAN134 = 144240; + + public static final Integer COAN135 = 144242; + + public static final Integer COAN136 = 144243; + + public static final Integer COAN137 = 144244; + + public static final Integer COAN138 = 144245; + + public static final Integer COAN139 = 144246; + + public static final Integer COAN140 = 144247; + + public static final Integer COAN141 = 144248; + + public static final Integer COAN142 = 144249; + + public static final Integer COAN143 = 144250; + + public static final Integer COAN144 = 144251; + + public static final Integer COAN145 = 144252; + + public static final Integer COAN146 = 144253; + + public static final Integer COAN147 = 144254; + + public static final Integer COAN148 = 144255; + + public static final Integer COAN149 = 144256; + + public static final Integer COAN150 = 144257; + + public static final Integer COAN151 = 144258; + + public static final Integer COAN152 = 144259; + + public static final Integer COAN153 = 144260; + + public static final Integer COAN154 = 144261; + + public static final Integer COAN155 = 151524; + + public static final Integer COAN156 = 151686; + + public static final Integer COAN157 = 152443; + + public static final Integer COAN158 = 155681; + + public static final Integer COAN159 = 155682; + + public static final Integer COAN160 = 155683; + + public static final Integer COAN161 = 163390; + + //pneumonia + public static final Integer PNEUMONIA_1 = 42; + + public static final Integer PNEUMONIA_2 = 482; + + public static final Integer PNEUMONIA_3 = 882; + + public static final Integer PNEUMONIA_4 = 1215; + + public static final Integer PNEUMONIA_6 = 5024; + + public static final Integer PNEUMONIA_7 = 110131; + + public static final Integer PNEUMONIA_8 = 110290; + + public static final Integer PNEUMONIA_9 = 110839; + + public static final Integer PNEUMONIA_11 = 111802; + + public static final Integer PNEUMONIA_12 = 112744; + + public static final Integer PNEUMONIA_13 = 113020; + + public static final Integer PNEUMONIA_14 = 113809; + + public static final Integer PNEUMONIA_15 = 114096; + + public static final Integer PNEUMONIA_16 = 114099; + + public static final Integer PNEUMONIA_17 = 114100; + + public static final Integer PNEUMONIA_18 = 114105; + + public static final Integer PNEUMONIA_19 = 114106; + + public static final Integer PNEUMONIA_20 = 115379; + + public static final Integer PNEUMONIA_21 = 115447; + + public static final Integer PNEUMONIA_23 = 116709; + + public static final Integer PNEUMONIA_24 = 119679; + + public static final Integer PNEUMONIA_25 = 119680; + + public static final Integer PNEUMONIA_26 = 120724; + + public static final Integer PNEUMONIA_27 = 120725; + + public static final Integer PNEUMONIA_28 = 121252; + + public static final Integer PNEUMONIA_29 = 121254; + + public static final Integer PNEUMONIA_30 = 121268; + + public static final Integer PNEUMONIA_31 = 121269; + + public static final Integer PNEUMONIA_32 = 121392; + + public static final Integer PNEUMONIA_33 = 123098; + + public static final Integer PNEUMONIA_34 = 123742; + + public static final Integer PNEUMONIA_35 = 123743; + + public static final Integer PNEUMONIA_36 = 124979; + + public static final Integer PNEUMONIA_37 = 127199; + + public static final Integer PNEUMONIA_38 = 127429; + + public static final Integer PNEUMONIA_39 = 128334; + + public static final Integer PNEUMONIA_40 = 128429; + + public static final Integer PNEUMONIA_41 = 129467; + + public static final Integer PNEUMONIA_42 = 130007; + + public static final Integer PNEUMONIA_43 = 130008; + + public static final Integer PNEUMONIA_44 = 130009; + + public static final Integer PNEUMONIA_45 = 130010; + + public static final Integer PNEUMONIA_46 = 130011; + + public static final Integer PNEUMONIA_47 = 130012; + + public static final Integer PNEUMONIA_48 = 130013; + + public static final Integer PNEUMONIA_49 = 130014; + + public static final Integer PNEUMONIA_50 = 130015; + + public static final Integer PNEUMONIA_51 = 130018; + + public static final Integer PNEUMONIA_52 = 130019; + + public static final Integer PNEUMONIA_53 = 130020; + + public static final Integer PNEUMONIA_55 = 130021; + + public static final Integer PNEUMONIA_56 = 130036; + + public static final Integer PNEUMONIA_57 = 130050; + + public static final Integer PNEUMONIA_58 = 130164; + + public static final Integer PNEUMONIA_59 = 130880; + + public static final Integer PNEUMONIA_60 = 130885; + + public static final Integer PNEUMONIA_61 = 131697; + + public static final Integer PNEUMONIA_62 = 131709; + + public static final Integer PNEUMONIA_63 = 135458; + + public static final Integer PNEUMONIA_64 = 135695; + + public static final Integer PNEUMONIA_65 = 135701; + + public static final Integer PNEUMONIA_66 = 137164; + + public static final Integer PNEUMONIA_67 = 137166; + + public static final Integer PNEUMONIA_68 = 137167; + + public static final Integer PNEUMONIA_69 = 137255; + + public static final Integer PNEUMONIA_70 = 137256; + + public static final Integer PNEUMONIA_71 = 138005; + + public static final Integer PNEUMONIA_72 = 138006; + + public static final Integer PNEUMONIA_73 = 138584; + + public static final Integer PNEUMONIA_74 = 138592; + + public static final Integer PNEUMONIA_75 = 138876; + + public static final Integer PNEUMONIA_76 = 139077; + + public static final Integer PNEUMONIA_77 = 139160; + + public static final Integer PNEUMONIA_78 = 139243; + + public static final Integer PNEUMONIA_79 = 139468; + + public static final Integer PNEUMONIA_80 = 139639; + + public static final Integer PNEUMONIA_81 = 139933; + + public static final Integer PNEUMONIA_82 = 141182; + + public static final Integer PNEUMONIA_83 = 141278; + + public static final Integer PNEUMONIA_84 = 142515; + + public static final Integer PNEUMONIA_85 = 143772; + + public static final Integer PNEUMONIA_86 = 144541; + + public static final Integer PNEUMONIA_87 = 144625; + + public static final Integer PNEUMONIA_88 = 145698; + + public static final Integer PNEUMONIA_89 = 146885; + + public static final Integer PNEUMONIA_90 = 147378; + + public static final Integer PNEUMONIA_91 = 148309; + + public static final Integer PNEUMONIA_92 = 148310; + + public static final Integer PNEUMONIA_93 = 148311; + + public static final Integer PNEUMONIA_94 = 148312; + + public static final Integer PNEUMONIA_95 = 148313; + + public static final Integer PNEUMONIA_96 = 148314; + + public static final Integer PNEUMONIA_97 = 148601; + + public static final Integer PNEUMONIA_98 = 148986; + + public static final Integer PNEUMONIA_99 = 149089; + + public static final Integer PNEUMONIA_100 = 149417; + + public static final Integer PNEUMONIA_101 = 149425; + + public static final Integer PNEUMONIA_102 = 150155; + + public static final Integer PNEUMONIA_103 = 150584; + + public static final Integer PNEUMONIA_107 = 155714; + + public static final Integer PNEUMONIA_108 = 155715; + + public static final Integer PNEUMONIA_109 = 155716; + + public static final Integer PNEUMONIA_110 = 155717; + + public static final Integer PNEUMONIA_111 = 155718; + + public static final Integer PNEUMONIA_112 = 155719; + + public static final Integer PNEUMONIA_113 = 156818; + + public static final Integer PNEUMONIA_114 = 157468; + + public static final Integer PNEUMONIA_115 = 157470; + + public static final Integer PNEUMONIA_117 = 158384; + + public static final Integer PNEUMONIA_118 = 158444; + + public static final Integer PNEUMONIA_119 = 158647; + + public static final Integer PNEUMONIA_120 = 158700; + + public static final Integer PNEUMONIA_121 = 158702; + + public static final Integer PNEUMONIA_122 = 159277; + + //respiratory disorders + public static final Integer OTHER_REP_1 = 148393; + + public static final Integer OTHER_REP_2 = 158451; + + //Arbotion + public static final Integer ABORTION_1 = 50; + + public static final Integer ABORTION_2 = 112415; + + public static final Integer ABORTION_3 = 112416; + + public static final Integer ABORTION_4 = 112789; + + public static final Integer ABORTION_5 = 112791; + + public static final Integer ABORTION_6 = 112792; + + public static final Integer ABORTION_7 = 112793; + + public static final Integer ABORTION_8 = 112794; + + public static final Integer ABORTION_9 = 112795; + + public static final Integer ABORTION_10 = 112796; + + public static final Integer ABORTION_11 = 112797; + + public static final Integer ABORTION_12 = 116352; + + public static final Integer ABORTION_13 = 116353; + + public static final Integer ABORTION_14 = 116354; + + public static final Integer ABORTION_15 = 116357; + + public static final Integer ABORTION_16 = 116359; + + public static final Integer ABORTION_17 = 116360; + + public static final Integer ABORTION_18 = 116361; + + public static final Integer ABORTION_19 = 117189; + + public static final Integer ABORTION_20 = 117212; + + public static final Integer ABORTION_21 = 117213; + + public static final Integer ABORTION_22 = 117214; + + public static final Integer ABORTION_23 = 117215; + + public static final Integer ABORTION_24 = 117216; + + public static final Integer ABORTION_25 = 117217; + + public static final Integer ABORTION_26 = 117218; + + public static final Integer ABORTION_27 = 117221; + + public static final Integer ABORTION_28 = 117222; + + public static final Integer ABORTION_29 = 117223; + + public static final Integer ABORTION_30 = 117224; + + public static final Integer ABORTION_31 = 117226; + + public static final Integer ABORTION_32 = 117228; + + public static final Integer ABORTION_33 = 117233; + + public static final Integer ABORTION_34 = 117237; + + public static final Integer ABORTION_35 = 117238; + + public static final Integer ABORTION_36 = 117241; + + public static final Integer ABORTION_37 = 117242; + + public static final Integer ABORTION_38 = 117243; + + public static final Integer ABORTION_39 = 117280; + + public static final Integer ABORTION_40 = 117281; + + public static final Integer ABORTION_41 = 117282; + + public static final Integer ABORTION_42 = 117283; + + public static final Integer ABORTION_43 = 117285; + + public static final Integer ABORTION_44 = 117287; + + public static final Integer ABORTION_45 = 117289; + + public static final Integer ABORTION_46 = 117290; + + public static final Integer ABORTION_47 = 118370; + + public static final Integer ABORTION_48 = 118371; + + public static final Integer ABORTION_49 = 119671; + + public static final Integer ABORTION_50 = 120238; + + public static final Integer ABORTION_51 = 120260; + + public static final Integer ABORTION_52 = 120261; + + public static final Integer ABORTION_53 = 120262; + + public static final Integer ABORTION_54 = 120263; + + public static final Integer ABORTION_55 = 120268; + + public static final Integer ABORTION_56 = 120270; + + public static final Integer ABORTION_57 = 120271; + + public static final Integer ABORTION_58 = 120272; + + public static final Integer ABORTION_59 = 120274; + + public static final Integer ABORTION_60 = 120276; + + public static final Integer ABORTION_61 = 120282; + + public static final Integer ABORTION_62 = 120294; + + public static final Integer ABORTION_63 = 120295; + + public static final Integer ABORTION_64 = 122298; + + public static final Integer ABORTION_65 = 122299; + + public static final Integer ABORTION_66 = 122302; + + public static final Integer ABORTION_67 = 122304; + + public static final Integer ABORTION_68 = 122306; + + public static final Integer ABORTION_69 = 122308; + + public static final Integer ABORTION_70 = 122310; + + public static final Integer ABORTION_71 = 123673; + + public static final Integer ABORTION_72 = 123674; + + public static final Integer ABORTION_73 = 123677; + + public static final Integer ABORTION_74 = 123735; + + public static final Integer ABORTION_75 = 123736; + + public static final Integer ABORTION_76 = 124072; + + public static final Integer ABORTION_77 = 124819; + + public static final Integer ABORTION_78 = 124820; + + public static final Integer ABORTION_79 = 124821; + + public static final Integer ABORTION_80 = 124927; + + public static final Integer ABORTION_81 = 124956; + + public static final Integer ABORTION_82 = 126076; + + public static final Integer ABORTION_83 = 126077; + + public static final Integer ABORTION_84 = 126078; + + public static final Integer ABORTION_85 = 126079; + + public static final Integer ABORTION_86 = 126080; + + public static final Integer ABORTION_87 = 126081; + + public static final Integer ABORTION_88 = 126082; + + public static final Integer ABORTION_89 = 126083; + + public static final Integer ABORTION_90 = 126084; + + public static final Integer ABORTION_91 = 126085; + + public static final Integer ABORTION_92 = 126086; + + public static final Integer ABORTION_93 = 126087; + + public static final Integer ABORTION_94 = 126088; + + public static final Integer ABORTION_95 = 126089; + + public static final Integer ABORTION_96 = 126090; + + public static final Integer ABORTION_97 = 126091; + + public static final Integer ABORTION_98 = 126092; + + public static final Integer ABORTION_99 = 126093; + + public static final Integer ABORTION_100 = 126094; + + public static final Integer ABORTION_101 = 126095; + + public static final Integer ABORTION_102 = 126096; + + public static final Integer ABORTION_103 = 126097; + + public static final Integer ABORTION_104 = 126098; + + public static final Integer ABORTION_105 = 126099; + + public static final Integer ABORTION_106 = 126100; + + public static final Integer ABORTION_107 = 126101; + + public static final Integer ABORTION_108 = 126102; + + public static final Integer ABORTION_109 = 126103; + + public static final Integer ABORTION_110 = 126104; + + public static final Integer ABORTION_111 = 126105; + + public static final Integer ABORTION_112 = 126106; + + public static final Integer ABORTION_113 = 126107; + + public static final Integer ABORTION_114 = 126108; + + public static final Integer ABORTION_115 = 126109; + + public static final Integer ABORTION_116 = 126110; + + public static final Integer ABORTION_117 = 126111; + + public static final Integer ABORTION_118 = 126112; + + public static final Integer ABORTION_119 = 126113; + + public static final Integer ABORTION_120 = 126114; + + public static final Integer ABORTION_121 = 126115; + + public static final Integer ABORTION_122 = 126116; + + public static final Integer ABORTION_123 = 126117; + + public static final Integer ABORTION_124 = 126118; + + public static final Integer ABORTION_125 = 126119; + + public static final Integer ABORTION_126 = 126120; + + public static final Integer ABORTION_127 = 126121; + + public static final Integer ABORTION_128 = 126122; + + public static final Integer ABORTION_129 = 126123; + + public static final Integer ABORTION_130 = 126124; + + public static final Integer ABORTION_131 = 126125; + + public static final Integer ABORTION_132 = 126126; + + public static final Integer ABORTION_133 = 126127; + + public static final Integer ABORTION_134 = 126802; + + public static final Integer ABORTION_135 = 127586; + + public static final Integer ABORTION_136 = 127587; + + public static final Integer ABORTION_137 = 134100; + + public static final Integer ABORTION_138 = 135918; + + public static final Integer ABORTION_139 = 135919; + + public static final Integer ABORTION_140 = 135920; + + public static final Integer ABORTION_141 = 135921; + + public static final Integer ABORTION_142 = 135922; + + public static final Integer ABORTION_143 = 135923; + + public static final Integer ABORTION_144 = 135924; + + public static final Integer ABORTION_145 = 135925; + + public static final Integer ABORTION_146 = 135926; + + public static final Integer ABORTION_147 = 135927; + + public static final Integer ABORTION_148 = 135928; + + public static final Integer ABORTION_149 = 135929; + + public static final Integer ABORTION_150 = 135930; + + public static final Integer ABORTION_151 = 135931; + + public static final Integer ABORTION_152 = 135932; + + public static final Integer ABORTION_153 = 135933; + + public static final Integer ABORTION_154 = 135934; + + public static final Integer ABORTION_155 = 135935; + + public static final Integer ABORTION_156 = 135936; + + public static final Integer ABORTION_157 = 135937; + + public static final Integer ABORTION_158 = 135938; + + public static final Integer ABORTION_159 = 135939; + + public static final Integer ABORTION_160 = 135940; + + public static final Integer ABORTION_161 = 135941; + + public static final Integer ABORTION_176 = 135942; + + public static final Integer ABORTION_177 = 135943; + + public static final Integer ABORTION_162 = 135944; + + public static final Integer ABORTION_163 = 135945; + + public static final Integer ABORTION_164 = 135946; + + public static final Integer ABORTION_165 = 135947; + + public static final Integer ABORTION_166 = 135948; + + public static final Integer ABORTION_167 = 135949; + + public static final Integer ABORTION_168 = 135950; + + public static final Integer ABORTION_169 = 135951; + + public static final Integer ABORTION_170 = 135952; + + public static final Integer ABORTION_171 = 135953; + + public static final Integer ABORTION_172 = 135954; + + public static final Integer ABORTION_173 = 135955; + + public static final Integer ABORTION_174 = 135956; + + public static final Integer ABORTION_175 = 135957; + + public static final Integer ABORTION_178 = 135958; + + public static final Integer ABORTION_179 = 135959; + + public static final Integer ABORTION_180 = 135960; + + public static final Integer ABORTION_181 = 135961; + + public static final Integer ABORTION_182 = 135962; + + public static final Integer ABORTION_183 = 135963; + + public static final Integer ABORTION_185 = 135964; + + public static final Integer ABORTION_186 = 135965; + + public static final Integer ABORTION_187 = 137611; + + public static final Integer ABORTION_188 = 137612; + + public static final Integer ABORTION_189 = 137614; + + public static final Integer ABORTION_190 = 137615; + + public static final Integer ABORTION_191 = 137616; + + public static final Integer ABORTION_192 = 137618; + + public static final Integer ABORTION_193 = 137625; + + public static final Integer ABORTION_194 = 137628; + + public static final Integer ABORTION_195 = 137629; + + public static final Integer ABORTION_196 = 137630; + + public static final Integer ABORTION_197 = 137631; + + public static final Integer ABORTION_198 = 137632; + + public static final Integer ABORTION_199 = 137633; + + public static final Integer ABORTION_200 = 137795; + + public static final Integer ABORTION_201 = 137796; + + public static final Integer ABORTION_202 = 137797; + + public static final Integer ABORTION_203 = 137798; + + public static final Integer ABORTION_204 = 137799; + + public static final Integer ABORTION_205 = 137800; + + public static final Integer ABORTION_206 = 137801; + + public static final Integer ABORTION_207 = 137802; + + public static final Integer ABORTION_208 = 137803; + + public static final Integer ABORTION_209 = 137804; + + public static final Integer ABORTION_210 = 137805; + + public static final Integer ABORTION_211 = 137806; + + public static final Integer ABORTION_212 = 137807; + + public static final Integer ABORTION_213 = 137808; + + public static final Integer ABORTION_214 = 137809; + + public static final Integer ABORTION_215 = 137810; + + public static final Integer ABORTION_216 = 137811; + + public static final Integer ABORTION_217 = 137812; + + public static final Integer ABORTION_218 = 137813; + + public static final Integer ABORTION_219 = 137814; + + public static final Integer ABORTION_220 = 137815; + + public static final Integer ABORTION_221 = 137816; + + public static final Integer ABORTION_222 = 137817; + + public static final Integer ABORTION_223 = 137818; + + public static final Integer ABORTION_224 = 137819; + + public static final Integer ABORTION_225 = 137820; + + public static final Integer ABORTION_226 = 137821; + + public static final Integer ABORTION_227 = 137822; + + public static final Integer ABORTION_228 = 137823; + + public static final Integer ABORTION_229 = 137824; + + public static final Integer ABORTION_230 = 137825; + + public static final Integer ABORTION_231 = 137826; + + public static final Integer ABORTION_232 = 137827; + + public static final Integer ABORTION_233 = 137828; + + public static final Integer ABORTION_234 = 137829; + + public static final Integer ABORTION_235 = 137830; + + public static final Integer ABORTION_236 = 137831; + + public static final Integer ABORTION_237 = 137832; + + public static final Integer ABORTION_238 = 137833; + + public static final Integer ABORTION_239 = 137834; + + public static final Integer ABORTION_240 = 137835; + + public static final Integer ABORTION_241 = 137836; + + public static final Integer ABORTION_242 = 137837; + + public static final Integer ABORTION_243 = 137838; + + public static final Integer ABORTION_244 = 137839; + + public static final Integer ABORTION_245 = 137840; + + public static final Integer ABORTION_246 = 137841; + + public static final Integer ABORTION_247 = 137842; + + public static final Integer ABORTION_248 = 137843; + + public static final Integer ABORTION_250 = 140264; + + public static final Integer ABORTION_251 = 140735; + + public static final Integer ABORTION_252 = 140736; + + public static final Integer ABORTION_253 = 140737; + + public static final Integer ABORTION_254 = 140738; + + public static final Integer ABORTION_255 = 140739; + + public static final Integer ABORTION_256 = 140740; + + public static final Integer ABORTION_257 = 140741; + + public static final Integer ABORTION_258 = 140742; + + public static final Integer ABORTION_259 = 140743; + + public static final Integer ABORTION_260 = 140744; + + public static final Integer ABORTION_261 = 140745; + + public static final Integer ABORTION_262 = 140746; + + public static final Integer ABORTION_263 = 140747; + + public static final Integer ABORTION_264 = 140748; + + public static final Integer ABORTION_265 = 140749; + + public static final Integer ABORTION_266 = 140750; + + public static final Integer ABORTION_267 = 140751; + + public static final Integer ABORTION_268 = 140752; + + public static final Integer ABORTION_269 = 140753; + + public static final Integer ABORTION_270 = 140754; + + public static final Integer ABORTION_271 = 140755; + + public static final Integer ABORTION_272 = 140756; + + public static final Integer ABORTION_273 = 140757; + + public static final Integer ABORTION_274 = 140759; + + public static final Integer ABORTION_275 = 140760; + + public static final Integer ABORTION_276 = 140761; + + public static final Integer ABORTION_277 = 140762; + + public static final Integer ABORTION_278 = 140763; + + public static final Integer ABORTION_279 = 140764; + + public static final Integer ABORTION_280 = 140765; + + public static final Integer ABORTION_281 = 140766; + + public static final Integer ABORTION_282 = 140767; + + public static final Integer ABORTION_283 = 140769; + + public static final Integer ABORTION_284 = 140770; + + public static final Integer ABORTION_285 = 140771; + + public static final Integer ABORTION_286 = 140772; + + public static final Integer ABORTION_287 = 140773; + + public static final Integer ABORTION_288 = 140774; + + public static final Integer ABORTION_289 = 140775; + + public static final Integer ABORTION_290 = 140776; + + public static final Integer ABORTION_291 = 140777; + + public static final Integer ABORTION_292 = 140778; + + public static final Integer ABORTION_293 = 140779; + + public static final Integer ABORTION_294 = 140780; + + public static final Integer ABORTION_295 = 140781; + + public static final Integer ABORTION_296 = 140782; + + public static final Integer ABORTION_297 = 140783; + + public static final Integer ABORTION_298 = 140784; + + public static final Integer ABORTION_299 = 140785; + + public static final Integer ABORTION_300 = 140786; + + public static final Integer ABORTION_301 = 140787; + + public static final Integer ABORTION_302 = 140788; + + public static final Integer ABORTION_303 = 140789; + + public static final Integer ABORTION_304 = 140790; + + public static final Integer ABORTION_305 = 140791; + + public static final Integer ABORTION_306 = 141409; + + public static final Integer ABORTION_307 = 142615; + + public static final Integer ABORTION_308 = 144490; + + public static final Integer ABORTION_309 = 144491; + + public static final Integer ABORTION_310 = 144492; + + public static final Integer ABORTION_311 = 144493; + + public static final Integer ABORTION_312 = 144494; + + public static final Integer ABORTION_313 = 144495; + + public static final Integer ABORTION_314 = 144496; + + public static final Integer ABORTION_315 = 144507; + + public static final Integer ABORTION_316 = 144508; + + public static final Integer ABORTION_317 = 144509; + + public static final Integer ABORTION_318 = 144510; + + public static final Integer ABORTION_319 = 144511; + + public static final Integer ABORTION_320 = 144512; + + public static final Integer ABORTION_321 = 144513; + + public static final Integer ABORTION_322 = 144514; + + public static final Integer ABORTION_323 = 150740; + + public static final Integer ABORTION_324 = 150741; + + public static final Integer ABORTION_325 = 150742; + + public static final Integer ABORTION_326 = 150743; + + public static final Integer ABORTION_327 = 150744; + + public static final Integer ABORTION_328 = 150745; + + public static final Integer ABORTION_329 = 150746; + + public static final Integer ABORTION_330 = 150747; + + public static final Integer ABORTION_331 = 150748; + + public static final Integer ABORTION_332 = 150749; + + public static final Integer ABORTION_333 = 150750; + + public static final Integer ABORTION_334 = 150751; + + public static final Integer ABORTION_335 = 150752; + + public static final Integer ABORTION_336 = 150753; + + public static final Integer ABORTION_337 = 150754; + + public static final Integer ABORTION_338 = 150755; + + public static final Integer ABORTION_339 = 150756; + + public static final Integer ABORTION_340 = 150757; + + public static final Integer ABORTION_341 = 150758; + + public static final Integer ABORTION_342 = 150759; + + public static final Integer ABORTION_343 = 150760; + + public static final Integer ABORTION_344 = 150761; + + public static final Integer ABORTION_345 = 150762; + + public static final Integer ABORTION_346 = 150763; + + public static final Integer ABORTION_347 = 150764; + + public static final Integer ABORTION_348 = 150765; + + public static final Integer ABORTION_349 = 150766; + + public static final Integer ABORTION_350 = 150767; + + public static final Integer ABORTION_351 = 150768; + + public static final Integer ABORTION_352 = 150769; + + public static final Integer ABORTION_353 = 150770; + + public static final Integer ABORTION_354 = 150771; + + public static final Integer ABORTION_355 = 150772; + + public static final Integer ABORTION_356 = 150773; + + public static final Integer ABORTION_357 = 150774; + + public static final Integer ABORTION_358 = 150775; + + public static final Integer ABORTION_359 = 150776; + + public static final Integer ABORTION_360 = 150777; + + public static final Integer ABORTION_361 = 150778; + + public static final Integer ABORTION_362 = 150779; + + public static final Integer ABORTION_363 = 150780; + + public static final Integer ABORTION_364 = 150781; + + public static final Integer ABORTION_365 = 150782; + + public static final Integer ABORTION_366 = 150783; + + public static final Integer ABORTION_367 = 150784; + + public static final Integer ABORTION_368 = 150785; + + public static final Integer ABORTION_369 = 151743; + + public static final Integer ABORTION_370 = 155740; + + public static final Integer ABORTION_371 = 156218; + + public static final Integer ABORTION_372 = 156219; + + public static final Integer ABORTION_373 = 156220; + + public static final Integer ABORTION_374 = 156312; + + public static final Integer ABORTION_375 = 158148; + + public static final Integer ABORTION_376 = 158149; + + public static final Integer ABORTION_377 = 158150; + + public static final Integer ABORTION_378 = 158735; + + public static final Integer ABORTION_379 = 159066; + + public static final Integer ABORTION_380 = 159220; + + public static final Integer ABORTION_381 = 162206; + + //DisOfPuerperiumChildbath + public static final Integer DPCB1 = 117058; + + public static final Integer DPCB2 = 118739; + + public static final Integer DPCB3 = 123448; + + public static final Integer DPCB4 = 127686; + + public static final Integer DPCB5 = 127687; + + public static final Integer DPCB6 = 127688; + + public static final Integer DPCB7 = 127689; + + public static final Integer DPCB8 = 129240; + + public static final Integer DPCB9 = 130617; + + public static final Integer DPCB10 = 130637; + + public static final Integer DPCB11 = 130638; + + public static final Integer DPCB12 = 130834; + + public static final Integer DPCB13 = 134581; + + public static final Integer DPCB14 = 135361; + + public static final Integer DPCB15 = 139317; + + public static final Integer DPCB16 = 141346; + + public static final Integer DPCB17 = 144098; + + public static final Integer DPCB18 = 144101; + + public static final Integer DPCB19 = 147075; + + public static final Integer DPCB20 = 147076; + + public static final Integer DPCB21 = 147077; + + public static final Integer DPCB22 = 147895; + + public static final Integer DPCB23 = 147896; + + public static final Integer DPCB24 = 147897; + + public static final Integer DPCB25 = 147898; + + public static final Integer DPCB26 = 147899; + + public static final Integer DPCB27 = 155979; + + public static final Integer DPCB28 = 155980; + + public static final Integer DPCB29 = 155981; + + public static final Integer DPCB30 = 156132; + + public static final Integer DPCB31 = 156561; + + public static final Integer DPCB32 = 158475; + + public static final Integer DPCB33 = 158476; + + public static final Integer DPCB34 = 158477; + + public static final Integer DPCB35 = 158478; + + public static final Integer DPCB36 = 158479; + + public static final Integer DPCB37 = 158481; + + public static final Integer DPCB38 = 158969; + + public static final Integer DPCB39 = 159242; + + public static final Integer DPCB40 = 159243; + + public static final Integer DPCB41 = 159244; + + public static final Integer DPCB42 = 159295; + + //Hypertension + public static final Integer HYPERTENSION_1 = 47; + + public static final Integer HYPERTENSION_2 = 110405; + + public static final Integer HYPERTENSION_3 = 111543; + + public static final Integer HYPERTENSION_4 = 112275; + + public static final Integer HYPERTENSION_5 = 113087; + + public static final Integer HYPERTENSION_6 = 113324; + + public static final Integer HYPERTENSION_7 = 113858; + + public static final Integer HYPERTENSION_8 = 113859; + + public static final Integer HYPERTENSION_9 = 113875; + + public static final Integer HYPERTENSION_10 = 116115; + + public static final Integer HYPERTENSION_11 = 116116; + + public static final Integer HYPERTENSION_12 = 117383; + + public static final Integer HYPERTENSION_13 = 117398; + + public static final Integer HYPERTENSION_14 = 117399; + + public static final Integer HYPERTENSION_15 = 118504; + + public static final Integer HYPERTENSION_16 = 121060; + + public static final Integer HYPERTENSION_17 = 124310; + + public static final Integer HYPERTENSION_18 = 124311; + + public static final Integer HYPERTENSION_19 = 124312; + + public static final Integer HYPERTENSION_20 = 124313; + + public static final Integer HYPERTENSION_21 = 124314; + + public static final Integer HYPERTENSION_22 = 125073; + + public static final Integer HYPERTENSION_23 = 125230; + + public static final Integer HYPERTENSION_24 = 126876; + + public static final Integer HYPERTENSION_25 = 126984; + + public static final Integer HYPERTENSION_26 = 127677; + + public static final Integer HYPERTENSION_27 = 127686; + + public static final Integer HYPERTENSION_28 = 127687; + + public static final Integer HYPERTENSION_29 = 127688; + + public static final Integer HYPERTENSION_30 = 127689; + + public static final Integer HYPERTENSION_31 = 127691; + + public static final Integer HYPERTENSION_32 = 127705; + + public static final Integer HYPERTENSION_33 = 127713; + + public static final Integer HYPERTENSION_34 = 127869; + + public static final Integer HYPERTENSION_35 = 128125; + + public static final Integer HYPERTENSION_36 = 128428; + + public static final Integer HYPERTENSION_37 = 128489; + + public static final Integer HYPERTENSION_38 = 129240; + + public static final Integer HYPERTENSION_39 = 129241; + + public static final Integer HYPERTENSION_40 = 129242; + + public static final Integer HYPERTENSION_41 = 129243; + + public static final Integer HYPERTENSION_42 = 129245; + + public static final Integer HYPERTENSION_43 = 129246; + + public static final Integer HYPERTENSION_44 = 129247; + + public static final Integer HYPERTENSION_45 = 129248; + + public static final Integer HYPERTENSION_46 = 129249; + + public static final Integer HYPERTENSION_47 = 129250; + + public static final Integer HYPERTENSION_48 = 129484; + + public static final Integer HYPERTENSION_49 = 130342; + + public static final Integer HYPERTENSION_50 = 130784; + + public static final Integer HYPERTENSION_51 = 130806; + + public static final Integer HYPERTENSION_52 = 132472; + + public static final Integer HYPERTENSION_53 = 132823; + + public static final Integer HYPERTENSION_54 = 134601; + + public static final Integer HYPERTENSION_55 = 134908; + + public static final Integer HYPERTENSION_56 = 134909; + + public static final Integer HYPERTENSION_57 = 135319; + + public static final Integer HYPERTENSION_58 = 135320; + + public static final Integer HYPERTENSION_59 = 135321; + + public static final Integer HYPERTENSION_60 = 135322; + + public static final Integer HYPERTENSION_61 = 135340; + + public static final Integer HYPERTENSION_62 = 135550; + + public static final Integer HYPERTENSION_63 = 136205; + + public static final Integer HYPERTENSION_64 = 136207; + + public static final Integer HYPERTENSION_65 = 138198; + + public static final Integer HYPERTENSION_66 = 138199; + + public static final Integer HYPERTENSION_67 = 138200; + + public static final Integer HYPERTENSION_68 = 138201; + + public static final Integer HYPERTENSION_69 = 138202; + + public static final Integer HYPERTENSION_70 = 138640; + + public static final Integer HYPERTENSION_71 = 139349; + + public static final Integer HYPERTENSION_72 = 139481; + + public static final Integer HYPERTENSION_73 = 140984; + + public static final Integer HYPERTENSION_74 = 140985; + + public static final Integer HYPERTENSION_75 = 140986; + + public static final Integer HYPERTENSION_76 = 140987; + + public static final Integer HYPERTENSION_77 = 141103; + + public static final Integer HYPERTENSION_78 = 141283; + + public static final Integer HYPERTENSION_79 = 141397; + + public static final Integer HYPERTENSION_80 = 141539; + + public static final Integer HYPERTENSION_81 = 142402; + + public static final Integer HYPERTENSION_82 = 145341; + + public static final Integer HYPERTENSION_83 = 145342; + + public static final Integer HYPERTENSION_84 = 145343; + + public static final Integer HYPERTENSION_85 = 145344; + + public static final Integer HYPERTENSION_86 = 147453; + + public static final Integer HYPERTENSION_87 = 147454; + + public static final Integer HYPERTENSION_88 = 147883; + + public static final Integer HYPERTENSION_89 = 147888; + + public static final Integer HYPERTENSION_90 = 147894; + + public static final Integer HYPERTENSION_91 = 147895; + + public static final Integer HYPERTENSION_92 = 147896; + + public static final Integer HYPERTENSION_93 = 147897; + + public static final Integer HYPERTENSION_94 = 147898; + + public static final Integer HYPERTENSION_95 = 147899; + + public static final Integer HYPERTENSION_96 = 147900; + + public static final Integer HYPERTENSION_97 = 147901; + + public static final Integer HYPERTENSION_98 = 147902; + + public static final Integer HYPERTENSION_99 = 147903; + + public static final Integer HYPERTENSION_100 = 149169; + + public static final Integer HYPERTENSION_101 = 151927; + + public static final Integer HYPERTENSION_102 = 152264; + + public static final Integer HYPERTENSION_103 = 156639; + + public static final Integer HYPERTENSION_104 = 156710; + + public static final Integer HYPERTENSION_105 = 158049; + + public static final Integer HYPERTENSION_106 = 158423; + + public static final Integer HYPERTENSION_107 = 158475; + + public static final Integer HYPERTENSION_108 = 158481; + + public static final Integer HYPERTENSION_109 = 158595; + + public static final Integer HYPERTENSION_110 = 159240; + + public static final Integer HYPERTENSION_111 = 159241; + + //mental dosorder + public static final Integer MENTALDIS_1 = 112851; + + public static final Integer MENTALDIS_2 = 113550; + + public static final Integer MENTALDIS_3 = 113551; + + public static final Integer MENTALDIS_4 = 114187; + + public static final Integer MENTALDIS_5 = 114723; + + public static final Integer MENTALDIS_6 = 114724; + + public static final Integer MENTALDIS_7 = 114725; + + public static final Integer MENTALDIS_8 = 114742; + + public static final Integer MENTALDIS_9 = 115251; + + public static final Integer MENTALDIS_10 = 115259; + + public static final Integer MENTALDIS_11 = 115811; + + public static final Integer MENTALDIS_12 = 115812; + + public static final Integer MENTALDIS_13 = 115813; + + public static final Integer MENTALDIS_14 = 121643; + + public static final Integer MENTALDIS_15 = 121716; + + public static final Integer MENTALDIS_16 = 121717; + + public static final Integer MENTALDIS_17 = 129228; + + public static final Integer MENTALDIS_18 = 131715; + + public static final Integer MENTALDIS_19 = 134329; + + public static final Integer MENTALDIS_20 = 134330; + + public static final Integer MENTALDIS_21 = 134331; + + public static final Integer MENTALDIS_22 = 134332; + + public static final Integer MENTALDIS_23 = 134333; + + public static final Integer MENTALDIS_24 = 134334; + + public static final Integer MENTALDIS_25 = 134335; + + public static final Integer MENTALDIS_26 = 134336; + + public static final Integer MENTALDIS_27 = 134337; + + public static final Integer MENTALDIS_28 = 136792; + + public static final Integer MENTALDIS_30 = 137147; + + public static final Integer MENTALDIS_31 = 138092; + + public static final Integer MENTALDIS_32 = 138207; + + public static final Integer MENTALDIS_33 = 139133; + + public static final Integer MENTALDIS_34 = 140526; + + public static final Integer MENTALDIS_35 = 142502; + + public static final Integer MENTALDIS_36 = 144651; + + public static final Integer MENTALDIS_37 = 146492; + + public static final Integer MENTALDIS_38 = 146593; + + public static final Integer MENTALDIS_39 = 148356; + + public static final Integer MENTALDIS_40 = 148556; + + public static final Integer MENTALDIS_41 = 151277; + + public static final Integer MENTALDIS_42 = 151282; + + public static final Integer MENTALDIS_43 = 151569; + + public static final Integer MENTALDIS_44 = 155571; + + public static final Integer MENTALDIS_45 = 158848; + + public static final Integer MENTALDIS_46 = 160518; + + public static final Integer F000_Dementia_in_Alzheimer_disease_with_early_onset = 152127; + + public static final Integer F01_Vascular_dementia = 159269; + + public static final Integer F010_Vascular_dementia_of_acute_onset = 123322; + + public static final Integer F011_Multi_infarct_dementia = 133779; + + public static final Integer F012_Subcortical_vascular_dementia = 125665; + + public static final Integer F013_Mixed_cortical_and_subcortical_vascular_dementia = 157803; + + public static final Integer F03_Unspecified_dementia = 119566; + + public static final Integer F20_Schizophrenia = 113155; + + public static final Integer F200_Paranoid_schizophrenia = 130851; + + public static final Integer F201_Hebephrenic_schizophrenia = 123682; + + public static final Integer F202_Catatonic_schizophrenia = 146090; + + public static final Integer F203_Undifferentiated_schizophrenia = 111683; + + public static final Integer F204_Post_schizophrenic_depression = 152297; + + public static final Integer F205_Residual_schizophrenia = 127651; + + public static final Integer F206_Simple_schizophrenia = 126462; + + public static final Integer F208_Other_schizophrenia = 113156; + + public static final Integer F21_Schizotypal_disorder = 113139; + + public static final Integer F22_Persistent_delusional_disorders = 158297; + + public static final Integer F220_Delusional_disorder = 119570; + + //public static final Integer F229_Persistent_delusional_disorder_unspecified = 158297; + + public static final Integer F23_Acute_and_transient_psychotic_disorders = 154937; + + public static final Integer F232_Acute_schizophrenia_like_psychotic_disorder = 151997; + + public static final Integer F24_Induced_delusional_disorder = 128237; + + public static final Integer F25_Schizoaffective_disorders = 127132; + + public static final Integer F250_Schizoaffective_disorder_manic_type = 152338; + + public static final Integer F251_Schizoaffective_disorder_depressive_type = 127130; + + public static final Integer F252_Schizoaffective_disorder_mixed_type = 127129; + + public static final Integer F30_Manic_episode = 134696; + + public static final Integer F300_Hypomania = 138045; + + public static final Integer F301_Mania_without_psychotic_symptoms = 162314; + + public static final Integer F302_Mania_with_psychotic_symptoms = 162313; + + public static final Integer F320_Mild_depressive_episode = 157791; + + public static final Integer F321_Moderate_depressive_episode = 157810; + + public static final Integer F322_Severe_depressive_episode_without_psychotic_symptoms = 158802; + + public static final Integer F323_Severe_depressive_episode_with_psychotic_symptoms = 158801; + + public static final Integer F340_Cyclothymia = 121757; + + //Dental disorders + public static final Integer DENTAL_1 = 151733; + + public static final Integer DENTAL_2 = 142587; + + public static final Integer DENTAL_3 = 142586; + + public static final Integer DENTAL_4 = 119558; + + public static final Integer DENTAL_5 = 120169; + + public static final Integer DENTAL_6 = 120254; + + public static final Integer DENTAL_7 = 118661; + + public static final Integer DENTAL_8 = 120844; + + public static final Integer DENTAL_9 = 129138; + + public static final Integer DENTAL_10 = 161903; + + public static final Integer DENTAL_11 = 161904; + + public static final Integer DENTAL_12 = 161905; + + public static final Integer DENTAL_13 = 161906; + + public static final Integer DENTAL_14 = 161907; + + public static final Integer DENTAL_15 = 142584; + + public static final Integer DENTAL_16 = 118138; + + public static final Integer DENTAL_17 = 155892; + + public static final Integer DENTAL_18 = 124601; + + public static final Integer DENTAL_19 = 142583; + + public static final Integer DENTAL_20 = 142582; + + public static final Integer DENTAL_21 = 142581; + + public static final Integer DENTAL_22 = 142580; + + public static final Integer DENTAL_23 = 160228; + + public static final Integer DENTAL_24 = 110979; + + public static final Integer DENTAL_25 = 118659; + + public static final Integer DENTAL_26 = 120168; + + public static final Integer DENTAL_27 = 120253; + + public static final Integer DENTAL_28 = 145416; + + public static final Integer DENTAL_29 = 145448; + + public static final Integer DENTAL_30 = 148472; + + public static final Integer DENTAL_31 = 149831; + + public static final Integer DENTAL_32 = 110720; + + public static final Integer DENTAL_33 = 110721; + + public static final Integer DENTAL_34 = 110722; + + public static final Integer DENTAL_35 = 110725; + + public static final Integer DENTAL_36 = 110726; + + public static final Integer DENTAL_37 = 110736; + + public static final Integer DENTAL_38 = 111032; + + public static final Integer DENTAL_39 = 112345; + + public static final Integer DENTAL_40 = 112347; + + public static final Integer DENTAL_41 = 112348; + + public static final Integer DENTAL_42 = 112350; + + public static final Integer DENTAL_43 = 112351; + + public static final Integer DENTAL_44 = 114734; + + public static final Integer DENTAL_45 = 116719; + + public static final Integer DENTAL_46 = 117245; + + public static final Integer DENTAL_47 = 120292; + + public static final Integer DENTAL_48 = 120293; + + public static final Integer DENTAL_49 = 121583; + + public static final Integer DENTAL_50 = 124601; + + public static final Integer DENTAL_51 = 124602; + + public static final Integer DENTAL_52 = 125290; + + public static final Integer DENTAL_53 = 125967; + + public static final Integer DENTAL_54 = 127326; + + public static final Integer DENTAL_55 = 129207; + + public static final Integer DENTAL_56 = 129208; + + public static final Integer DENTAL_57 = 129244; + + public static final Integer DENTAL_58 = 129415; + + public static final Integer DENTAL_59 = 129416; + + public static final Integer DENTAL_60 = 129417; + + public static final Integer DENTAL_61 = 129418; + + public static final Integer DENTAL_62 = 129420; + + public static final Integer DENTAL_63 = 132536; + + public static final Integer DENTAL_64 = 133369; + + public static final Integer DENTAL_65 = 133482; + + public static final Integer DENTAL_66 = 134029; + + public static final Integer DENTAL_67 = 135600; + + public static final Integer DENTAL_68 = 136024; + + public static final Integer DENTAL_69 = 136520; + + public static final Integer DENTAL_70 = 136727; + + public static final Integer DENTAL_71 = 137757; + + public static final Integer DENTAL_72 = 138041; + + public static final Integer DENTAL_73 = 139835; + + public static final Integer DENTAL_74 = 140721; + + public static final Integer DENTAL_75 = 140845; + + public static final Integer DENTAL_76 = 140886; + + public static final Integer DENTAL_77 = 141387; + + public static final Integer DENTAL_78 = 141497; + + public static final Integer DENTAL_79 = 141859; + + public static final Integer DENTAL_80 = 141925; + + public static final Integer DENTAL_81 = 142009; + + public static final Integer DENTAL_82 = 142021; + + public static final Integer DENTAL_83 = 142142; + + public static final Integer DENTAL_84 = 142323; + + public static final Integer DENTAL_85 = 142508; + + public static final Integer DENTAL_86 = 145750; + + public static final Integer DENTAL_87 = 145751; + + public static final Integer DENTAL_88 = 145752; + + public static final Integer DENTAL_89 = 145753; + + public static final Integer DENTAL_90 = 145754; + + public static final Integer DENTAL_91 = 146901; + + public static final Integer DENTAL_92 = 146902; + + public static final Integer DENTAL_93 = 146903; + + public static final Integer DENTAL_94 = 148501; + + public static final Integer DENTAL_95 = 148708; + + public static final Integer DENTAL_96 = 152843; + + public static final Integer DENTAL_97 = 156013; + + public static final Integer DENTAL_99 = 156203; + + public static final Integer DENTAL_100 = 156758; + + public static final Integer DENTAL_101 = 112884; + + public static final Integer DENTAL_102 = 113938; + + public static final Integer DENTAL_103 = 114239; + + public static final Integer DENTAL_104 = 114307; + + public static final Integer DENTAL_105 = 115025; + + public static final Integer DENTAL_106 = 115684; + + public static final Integer DENTAL_107 = 116226; + + public static final Integer DENTAL_108 = 117244; + + public static final Integer DENTAL_109 = 117479; + + public static final Integer DENTAL_110 = 118490; + + public static final Integer DENTAL_111 = 118548; + + public static final Integer DENTAL_112 = 119183; + + public static final Integer DENTAL_113 = 119427; + + public static final Integer DENTAL_114 = 119549; + + public static final Integer DENTAL_115 = 119758; + + public static final Integer DENTAL_116 = 119759; + + public static final Integer DENTAL_117 = 120043; + + public static final Integer DENTAL_118 = 121515; + + public static final Integer DENTAL_119 = 121582; + + public static final Integer DENTAL_120 = 122609; + + public static final Integer DENTAL_121 = 122893; + + public static final Integer DENTAL_122 = 124385; + + public static final Integer DENTAL_123 = 124580; + + public static final Integer DENTAL_124 = 124604; + + public static final Integer DENTAL_125 = 124622; + + public static final Integer DENTAL_126 = 125015; + + public static final Integer DENTAL_127 = 125016; + + public static final Integer DENTAL_128 = 125017; + + public static final Integer DENTAL_129 = 125018; + + public static final Integer DENTAL_130 = 126299; + + public static final Integer DENTAL_131 = 126565; + + public static final Integer DENTAL_132 = 127344; + + public static final Integer DENTAL_133 = 127472; + + public static final Integer DENTAL_134 = 129419; + + public static final Integer DENTAL_135 = 130658; + + public static final Integer DENTAL_136 = 130765; + + public static final Integer DENTAL_137 = 131639; + + public static final Integer DENTAL_138 = 132487; + + public static final Integer DENTAL_139 = 132493; + + public static final Integer DENTAL_140 = 132890; + + public static final Integer DENTAL_141 = 133838; + + public static final Integer DENTAL_142 = 134291; + + public static final Integer DENTAL_143 = 135586; + + public static final Integer DENTAL_144 = 135587; + + public static final Integer DENTAL_145 = 137758; + + public static final Integer DENTAL_146 = 137909; + + public static final Integer DENTAL_147 = 138428; + + public static final Integer DENTAL_148 = 139171; + + public static final Integer DENTAL_149 = 139562; + + public static final Integer DENTAL_150 = 139687; + + public static final Integer DENTAL_151 = 140924; + + public static final Integer DENTAL_152 = 141077; + + public static final Integer DENTAL_153 = 141078; + + public static final Integer DENTAL_154 = 141388; + + public static final Integer DENTAL_155 = 141872; + + public static final Integer DENTAL_156 = 142577; + + public static final Integer DENTAL_157 = 144412; + + public static final Integer DENTAL_158 = 146859; + + public static final Integer DENTAL_159 = 147406; + + public static final Integer DENTAL_160 = 147999; + + public static final Integer DENTAL_167 = 150120; + + public static final Integer DENTAL_161 = 150186; + + public static final Integer DENTAL_162 = 150652; + + public static final Integer DENTAL_163 = 150827; + + public static final Integer DENTAL_164 = 154911; + + public static final Integer DENTAL_165 = 160141; + + public static final Integer DENTAL_166 = 160142; + + //Skin disease + public static final Integer SKIN_1 = 119022; + + public static final Integer SKIN_2 = 125954; + + public static final Integer SKIN_3 = 128208; + + public static final Integer SKIN_4 = 142634; + + public static final Integer SKIN_5 = 160229; + + //Joint pains + public static final Integer JOINT_PAIN_1 = 116557; + + public static final Integer JOINT_PAIN_2 = 122827; + + public static final Integer JOINT_PAIN_3 = 125897; + + public static final Integer JOINT_PAIN_4 = 126536; + + public static final Integer JOINT_PAIN_5 = 127216; + + public static final Integer JOINT_PAIN_6 = 134261; + + public static final Integer JOINT_PAIN_7 = 139117; + + public static final Integer JOINT_PAIN_8 = 139986; + + public static final Integer JOINT_PAIN_9 = 141413; + + public static final Integer JOINT_PAIN_10 = 148729; + + public static final Integer JOINT_PAIN_11 = 149956; + + public static final Integer JOINT_PAIN_12 = 156619; + + public static final Integer JOINT_PAIN_13 = 117045; + + //poisoning list + public static final Integer POISONING_1 = 368; + + public static final Integer POISONING_2 = 156346; + + public static final Integer POISONING_3 = 118107; + + public static final Integer POISONING_4 = 139992; + + public static final Integer POISONING_5 = 139991; + + public static final Integer POISONING_6 = 139990; + + public static final Integer POISONING_7 = 139989; + + public static final Integer POISONING_8 = 156347; + + public static final Integer POISONING_9 = 102; + + public static final Integer POISONING_10 = 113058; + + public static final Integer POISONING_11 = 124599; + + public static final Integer POISONING_12 = 135735; + + public static final Integer POISONING_13 = 139551; + + public static final Integer POISONING_14 = 146481; + + public static final Integer POISONING_15 = 148569; + + public static final Integer POISONING_16 = 154531; + + public static final Integer POISONING_17 = 368; + + public static final Integer POISONING_18 = 118107; + + public static final Integer POISONING_19 = 121272; + + public static final Integer POISONING_20 = 125952; + + public static final Integer POISONING_21 = 127202; + + public static final Integer POISONING_22 = 139988; + + public static final Integer POISONING_23 = 139989; + + public static final Integer POISONING_24 = 139990; + + public static final Integer POISONING_25 = 139991; + + public static final Integer POISONING_26 = 139992; + + public static final Integer POISONING_27 = 156346; + + public static final Integer POISONING_28 = 156347; + + public static final Integer POISONING_29 = 156805; + + public static final Integer POISONING_30 = 114088; + + public static final Integer POISONING_31 = 118445; + + public static final Integer POISONING_32 = 118446; + + public static final Integer POISONING_33 = 130089; + + public static final Integer POISONING_34 = 129979; + + public static final Integer POISONING_35 = 129978; + + public static final Integer POISONING_36 = 129977; + + public static final Integer POISONING_37 = 129976; + + public static final Integer POISONING_38 = 129975; + + public static final Integer POISONING_39 = 129974; + + public static final Integer POISONING_40 = 129973; + + public static final Integer POISONING_41 = 129972; + + public static final Integer POISONING_42 = 114086; + + public static final Integer POISONING_43 = 114024; + + public static final Integer POISONING_44 = 114044; + + public static final Integer POISONING_45 = 114025; + + public static final Integer POISONING_46 = 122226; + + public static final Integer POISONING_47 = 129971; + + public static final Integer POISONING_48 = 129970; + + public static final Integer POISONING_49 = 129969; + + public static final Integer POISONING_50 = 129968; + + //New and revisit clients + public static final Integer NEW_PATIENT = 164144; + + public static final String REVISIT_PATIENT = "d5ea1533-7346-4e0b-8626-9bff6cd183b2"; + + //Additional special clinic concepts + public static final Integer NUTRITION_PROGRAM = 160552; + + public static final Integer RENAL_CLINIC = 160475; + + public static final Integer ONCOLOGY_CLINIC = 116030; + + //Injuries + public static final Integer INJURY1 = 163; + + public static final Integer INJURY2 = 1490; + + public static final Integer INJURY3 = 110738; + + public static final Integer INJURY4 = 110802; + + public static final Integer INJURY5 = 110959; + + public static final Integer INJURY6 = 111455; + + public static final Integer INJURY7 = 112209; + + public static final Integer INJURY8 = 112234; + + public static final Integer INJURY9 = 112237; + + public static final Integer INJURY10 = 112260; + + public static final Integer INJURY11 = 112261; + + public static final Integer INJURY12 = 112554; + + public static final Integer INJURY13 = 112555; + + public static final Integer INJURY14 = 112559; + + public static final Integer INJURY15 = 112561; + + public static final Integer INJURY16 = 112564; + + public static final Integer INJURY17 = 112565; + + public static final Integer INJURY18 = 112568; + + public static final Integer INJURY19 = 112570; + + public static final Integer INJURY20 = 112585; + + public static final Integer INJURY21 = 112586; + + public static final Integer INJURY22 = 112592; + + public static final Integer INJURY23 = 112593; + + public static final Integer INJURY24 = 112594; + + public static final Integer INJURY25 = 112631; + + public static final Integer INJURY26 = 112633; + + public static final Integer INJURY27 = 112635; + + public static final Integer INJURY28 = 112636; + + public static final Integer INJURY29 = 112637; + + public static final Integer INJURY30 = 112638; + + public static final Integer INJURY31 = 112639; + + public static final Integer INJURY32 = 112641; + + public static final Integer INJURY33 = 112643; + + public static final Integer INJURY34 = 112646; + + public static final Integer INJURY35 = 112662; + + public static final Integer INJURY36 = 112664; + + public static final Integer INJURY37 = 112666; + + public static final Integer INJURY38 = 112667; + + public static final Integer INJURY39 = 112670; + + public static final Integer INJURY40 = 112671; + + public static final Integer INJURY41 = 112672; + + public static final Integer INJURY42 = 112673; + + public static final Integer INJURY43 = 112825; + + public static final Integer INJURY44 = 112826; + + public static final Integer INJURY45 = 112827; + + public static final Integer INJURY46 = 112905; + + public static final Integer INJURY47 = 112906; + + public static final Integer INJURY48 = 112969; + + public static final Integer INJURY49 = 113250; + + public static final Integer INJURY50 = 113346; + + public static final Integer INJURY51 = 113347; + + public static final Integer INJURY52 = 113401; + + public static final Integer INJURY53 = 113402; + + public static final Integer INJURY54 = 114010; + + public static final Integer INJURY55 = 114273; + + public static final Integer INJURY56 = 114274; + + public static final Integer INJURY57 = 114275; + + public static final Integer INJURY58 = 114277; + + public static final Integer INJURY59 = 114280; + + public static final Integer INJURY60 = 114281; + + public static final Integer INJURY61 = 114385; + + public static final Integer INJURY62 = 114819; + + public static final Integer INJURY63 = 114839; + + public static final Integer INJURY64 = 114860; + + public static final Integer INJURY65 = 114861; + + public static final Integer INJURY66 = 114862; + + public static final Integer INJURY67 = 114886; + + public static final Integer INJURY68 = 114888; + + public static final Integer INJURY69 = 114900; + + public static final Integer INJURY70 = 114902; + + public static final Integer INJURY71 = 114938; + + public static final Integer INJURY72 = 114940; + + public static final Integer INJURY73 = 114952; + + public static final Integer INJURY74 = 114953; + + public static final Integer INJURY75 = 115297; + + public static final Integer INJURY76 = 115311; + + public static final Integer INJURY77 = 115537; + + public static final Integer INJURY78 = 115648; + + public static final Integer INJURY79 = 116380; + + public static final Integer INJURY80 = 116421; + + public static final Integer INJURY81 = 116659; + + public static final Integer INJURY82 = 116661; + + public static final Integer INJURY83 = 116662; + + public static final Integer INJURY84 = 116663; + + public static final Integer INJURY85 = 116665; + + public static final Integer INJURY86 = 116666; + + public static final Integer INJURY87 = 116667; + + public static final Integer INJURY88 = 116668; + + public static final Integer INJURY89 = 116673; + + public static final Integer INJURY90 = 116722; + + public static final Integer INJURY91 = 116723; + + public static final Integer INJURY92 = 116725; + + public static final Integer INJURY93 = 116727; + + public static final Integer INJURY94 = 116762; + + public static final Integer INJURY95 = 116764; + + public static final Integer INJURY96 = 116765; + + public static final Integer INJURY97 = 116767; + + public static final Integer INJURY98 = 116769; + + public static final Integer INJURY99 = 116772; + + public static final Integer INJURY100 = 116774; + + public static final Integer INJURY101 = 116775; + + public static final Integer INJURY102 = 116781; + + public static final Integer INJURY103 = 116782; + + public static final Integer INJURY104 = 116786; + + public static final Integer INJURY105 = 116788; + + public static final Integer INJURY106 = 116789; + + public static final Integer INJURY107 = 116793; + + public static final Integer INJURY108 = 116795; + + public static final Integer INJURY109 = 116796; + + public static final Integer INJURY110 = 116800; + + public static final Integer INJURY111 = 116802; + + public static final Integer INJURY112 = 116804; + + public static final Integer INJURY113 = 116806; + + public static final Integer INJURY114 = 116810; + + public static final Integer INJURY115 = 116812; + + public static final Integer INJURY116 = 116813; + + public static final Integer INJURY117 = 116814; + + public static final Integer INJURY118 = 116815; + + public static final Integer INJURY119 = 116816; + + public static final Integer INJURY120 = 116817; + + public static final Integer INJURY121 = 116820; + + public static final Integer INJURY122 = 116825; + + public static final Integer INJURY123 = 116828; + + public static final Integer INJURY124 = 116832; + + public static final Integer INJURY125 = 116833; + + public static final Integer INJURY126 = 116835; + + public static final Integer INJURY127 = 116837; + + public static final Integer INJURY128 = 116838; + + public static final Integer INJURY129 = 116848; + + public static final Integer INJURY130 = 116850; + + public static final Integer INJURY131 = 116852; + + public static final Integer INJURY132 = 116854; + + public static final Integer INJURY133 = 116858; + + public static final Integer INJURY134 = 116859; + + public static final Integer INJURY135 = 116860; + + public static final Integer INJURY136 = 116862; + + public static final Integer INJURY137 = 116864; + + public static final Integer INJURY138 = 116866; + + public static final Integer INJURY139 = 116867; + + public static final Integer INJURY140 = 116869; + + public static final Integer INJURY141 = 116870; + + public static final Integer INJURY142 = 116871; + + public static final Integer INJURY143 = 116873; + + public static final Integer INJURY144 = 116874; + + public static final Integer INJURY145 = 116878; + + public static final Integer INJURY146 = 116879; + + public static final Integer INJURY147 = 116883; + + public static final Integer INJURY148 = 116885; + + public static final Integer INJURY149 = 116887; + + public static final Integer INJURY150 = 116888; + + public static final Integer INJURY151 = 116889; + + public static final Integer INJURY152 = 116890; + + public static final Integer INJURY153 = 116891; + + public static final Integer INJURY154 = 116894; + + public static final Integer INJURY155 = 116895; + + public static final Integer INJURY156 = 116896; + + public static final Integer INJURY157 = 116898; + + public static final Integer INJURY158 = 116899; + + public static final Integer INJURY159 = 116901; + + public static final Integer INJURY160 = 116904; + + public static final Integer INJURY161 = 116906; + + public static final Integer INJURY162 = 116907; + + public static final Integer INJURY163 = 116910; + + public static final Integer INJURY164 = 116913; + + public static final Integer INJURY165 = 116915; + + public static final Integer INJURY166 = 116918; + + public static final Integer INJURY167 = 116919; + + public static final Integer INJURY168 = 116920; + + public static final Integer INJURY169 = 116921; + + public static final Integer INJURY170 = 116922; + + public static final Integer INJURY171 = 116923; + + public static final Integer INJURY172 = 116924; + + public static final Integer INJURY173 = 116925; + + public static final Integer INJURY174 = 116927; + + public static final Integer INJURY175 = 117293; + + public static final Integer INJURY176 = 117309; + + public static final Integer INJURY177 = 117882; + + public static final Integer INJURY178 = 118092; + + public static final Integer INJURY179 = 118102; + + public static final Integer INJURY180 = 118149; + + public static final Integer INJURY181 = 118354; + + public static final Integer INJURY182 = 118412; + + public static final Integer INJURY183 = 118413; + + public static final Integer INJURY184 = 118414; + + public static final Integer INJURY185 = 118415; + + public static final Integer INJURY186 = 118416; + + public static final Integer INJURY187 = 118418; + + public static final Integer INJURY188 = 118422; + + public static final Integer INJURY189 = 118424; + + public static final Integer INJURY190 = 118426; + + public static final Integer INJURY191 = 118429; + + public static final Integer INJURY192 = 118433; + + public static final Integer INJURY193 = 118676; + + public static final Integer INJURY194 = 118700; + + public static final Integer INJURY195 = 118806; + + public static final Integer INJURY196 = 118807; + + public static final Integer INJURY197 = 119418; + + public static final Integer INJURY198 = 119502; + + public static final Integer INJURY199 = 119503; + + public static final Integer INJURY200 = 119751; + + public static final Integer INJURY201 = 119753; + + public static final Integer INJURY202 = 119754; + + public static final Integer INJURY203 = 120160; + + public static final Integer INJURY204 = 120166; + + public static final Integer INJURY205 = 120315; + + public static final Integer INJURY206 = 120363; + + public static final Integer INJURY207 = 120387; + + public static final Integer INJURY208 = 120388; + + public static final Integer INJURY209 = 120402; + + public static final Integer INJURY210 = 120413; + + public static final Integer INJURY211 = 120415; + + public static final Integer INJURY212 = 120435; + + public static final Integer INJURY213 = 120437; + + public static final Integer INJURY214 = 120453; + + public static final Integer INJURY215 = 120454; + + public static final Integer INJURY216 = 120455; + + public static final Integer INJURY217 = 120475; + + public static final Integer INJURY218 = 120477; + + public static final Integer INJURY219 = 120493; + + public static final Integer INJURY220 = 120495; + + public static final Integer INJURY221 = 120750; + + public static final Integer INJURY222 = 120751; + + public static final Integer INJURY223 = 120773; + + public static final Integer INJURY224 = 121021; + + public static final Integer INJURY225 = 121022; + + public static final Integer INJURY226 = 121023; + + public static final Integer INJURY227 = 121026; + + public static final Integer INJURY228 = 121027; + + public static final Integer INJURY229 = 121029; + + public static final Integer INJURY230 = 121516; + + public static final Integer INJURY231 = 121517; + + public static final Integer INJURY232 = 122278; + + public static final Integer INJURY233 = 122279; + + public static final Integer INJURY234 = 122862; + + public static final Integer INJURY235 = 122916; + + public static final Integer INJURY236 = 122917; + + public static final Integer INJURY237 = 122920; + + public static final Integer INJURY238 = 122921; + + public static final Integer INJURY239 = 122923; + + public static final Integer INJURY240 = 122924; + + public static final Integer INJURY241 = 122926; + + public static final Integer INJURY242 = 122929; + + public static final Integer INJURY243 = 122930; + + public static final Integer INJURY244 = 122931; + + public static final Integer INJURY245 = 122932; + + public static final Integer INJURY246 = 122993; + + public static final Integer INJURY247 = 123076; + + public static final Integer INJURY248 = 123153; + + public static final Integer INJURY249 = 123533; + + public static final Integer INJURY250 = 123545; + + public static final Integer INJURY251 = 123856; + + public static final Integer INJURY252 = 124183; + + public static final Integer INJURY253 = 124188; + + public static final Integer INJURY254 = 124189; + + public static final Integer INJURY255 = 124190; + + public static final Integer INJURY256 = 124191; + + public static final Integer INJURY257 = 124192; + + public static final Integer INJURY258 = 124193; + + public static final Integer INJURY259 = 124198; + + public static final Integer INJURY260 = 124205; + + public static final Integer INJURY261 = 124208; + + public static final Integer INJURY262 = 124209; + + public static final Integer INJURY263 = 124729; + + public static final Integer INJURY264 = 124731; + + public static final Integer INJURY265 = 124844; + + public static final Integer INJURY266 = 125189; + + public static final Integer INJURY267 = 125278; + + public static final Integer INJURY268 = 125279; + + public static final Integer INJURY269 = 125280; + + public static final Integer INJURY270 = 125281; + + public static final Integer INJURY271 = 125282; + + public static final Integer INJURY272 = 125283; + + public static final Integer INJURY273 = 125284; + + public static final Integer INJURY274 = 125285; + + public static final Integer INJURY275 = 125286; + + public static final Integer INJURY276 = 125299; + + public static final Integer INJURY277 = 125319; + + public static final Integer INJURY278 = 125320; + + public static final Integer INJURY279 = 125321; + + public static final Integer INJURY280 = 125322; + + public static final Integer INJURY281 = 125323; + + public static final Integer INJURY282 = 125324; + + public static final Integer INJURY283 = 125325; + + public static final Integer INJURY284 = 125326; + + public static final Integer INJURY285 = 125327; + + public static final Integer INJURY286 = 125328; + + public static final Integer INJURY287 = 125329; + + public static final Integer INJURY288 = 125331; + + public static final Integer INJURY289 = 125332; + + public static final Integer INJURY290 = 125333; + + public static final Integer INJURY291 = 125334; + + public static final Integer INJURY292 = 125335; + + public static final Integer INJURY293 = 125336; + + public static final Integer INJURY294 = 125337; + + public static final Integer INJURY295 = 125338; + + public static final Integer INJURY296 = 125339; + + public static final Integer INJURY297 = 125343; + + public static final Integer INJURY298 = 125344; + + public static final Integer INJURY299 = 125345; + + public static final Integer INJURY300 = 125346; + + public static final Integer INJURY301 = 125347; + + public static final Integer INJURY302 = 125348; + + public static final Integer INJURY303 = 125349; + + public static final Integer INJURY304 = 125350; + + public static final Integer INJURY305 = 125351; + + public static final Integer INJURY306 = 125352; + + public static final Integer INJURY307 = 125353; + + public static final Integer INJURY308 = 125354; + + public static final Integer INJURY309 = 125355; + + public static final Integer INJURY310 = 125356; + + public static final Integer INJURY311 = 125357; + + public static final Integer INJURY312 = 125358; + + public static final Integer INJURY313 = 125361; + + public static final Integer INJURY314 = 125362; + + public static final Integer INJURY315 = 125363; + + public static final Integer INJURY316 = 125364; + + public static final Integer INJURY317 = 125365; + + public static final Integer INJURY318 = 125366; + + public static final Integer INJURY319 = 125367; + + public static final Integer INJURY320 = 125368; + + public static final Integer INJURY321 = 125370; + + public static final Integer INJURY322 = 125372; + + public static final Integer INJURY323 = 125373; + + public static final Integer INJURY324 = 125374; + + public static final Integer INJURY325 = 125375; + + public static final Integer INJURY326 = 125376; + + public static final Integer INJURY327 = 125377; + + public static final Integer INJURY328 = 125378; + + public static final Integer INJURY329 = 125379; + + public static final Integer INJURY330 = 125380; + + public static final Integer INJURY331 = 125381; + + public static final Integer INJURY332 = 125382; + + public static final Integer INJURY333 = 125383; + + public static final Integer INJURY334 = 125384; + + public static final Integer INJURY335 = 125387; + + public static final Integer INJURY336 = 125389; + + public static final Integer INJURY337 = 125390; + + public static final Integer INJURY338 = 125391; + + public static final Integer INJURY339 = 125392; + + public static final Integer INJURY340 = 125393; + + public static final Integer INJURY341 = 125394; + + public static final Integer INJURY342 = 125395; + + public static final Integer INJURY343 = 125396; + + public static final Integer INJURY344 = 125397; + + public static final Integer INJURY345 = 125398; + + public static final Integer INJURY346 = 125399; + + public static final Integer INJURY347 = 125400; + + public static final Integer INJURY348 = 125401; + + public static final Integer INJURY349 = 125402; + + public static final Integer INJURY350 = 125403; + + public static final Integer INJURY351 = 125404; + + public static final Integer INJURY352 = 125405; + + public static final Integer INJURY353 = 125406; + + public static final Integer INJURY354 = 125407; + + public static final Integer INJURY355 = 125408; + + public static final Integer INJURY356 = 125409; + + public static final Integer INJURY357 = 125410; + + public static final Integer INJURY358 = 125411; + + public static final Integer INJURY359 = 125412; + + public static final Integer INJURY360 = 125413; + + public static final Integer INJURY361 = 125414; + + public static final Integer INJURY362 = 125415; + + public static final Integer INJURY363 = 125416; + + public static final Integer INJURY364 = 125417; + + public static final Integer INJURY365 = 125418; + + public static final Integer INJURY366 = 125522; + + public static final Integer INJURY367 = 125523; + + public static final Integer INJURY368 = 125524; + + public static final Integer INJURY369 = 125525; + + public static final Integer INJURY370 = 125526; + + public static final Integer INJURY371 = 125527; + + public static final Integer INJURY372 = 125528; + + public static final Integer INJURY373 = 125529; + + public static final Integer INJURY374 = 125530; + + public static final Integer INJURY375 = 125531; + + public static final Integer INJURY376 = 125532; + + public static final Integer INJURY377 = 125533; + + public static final Integer INJURY378 = 125534; + + public static final Integer INJURY379 = 125552; + + public static final Integer INJURY380 = 125554; + + public static final Integer INJURY381 = 125555; + + public static final Integer INJURY382 = 125556; + + public static final Integer INJURY383 = 125557; + + public static final Integer INJURY384 = 125609; + + public static final Integer INJURY385 = 125610; + + public static final Integer INJURY386 = 125632; + + public static final Integer INJURY387 = 125641; + + public static final Integer INJURY388 = 125642; + + public static final Integer INJURY389 = 125643; + + public static final Integer INJURY390 = 125645; + + public static final Integer INJURY391 = 125646; + + public static final Integer INJURY392 = 125647; + + public static final Integer INJURY393 = 125698; + + public static final Integer INJURY394 = 125700; + + public static final Integer INJURY395 = 125701; + + public static final Integer INJURY396 = 125702; + + public static final Integer INJURY397 = 125703; + + public static final Integer INJURY398 = 125705; + + public static final Integer INJURY399 = 125706; + + public static final Integer INJURY400 = 125707; + + public static final Integer INJURY401 = 125709; + + public static final Integer INJURY402 = 125863; + + public static final Integer INJURY403 = 125901; + + public static final Integer INJURY404 = 126050; + + public static final Integer INJURY405 = 126167; + + public static final Integer INJURY406 = 126168; + + public static final Integer INJURY407 = 126186; + + public static final Integer INJURY408 = 126194; + + public static final Integer INJURY409 = 126195; + + public static final Integer INJURY410 = 126196; + + public static final Integer INJURY411 = 126248; + + public static final Integer INJURY412 = 126249; + + public static final Integer INJURY413 = 126250; + + public static final Integer INJURY414 = 126410; + + public static final Integer INJURY415 = 126538; + + public static final Integer INJURY416 = 126631; + + public static final Integer INJURY417 = 126632; + + public static final Integer INJURY418 = 126808; + + public static final Integer INJURY419 = 127155; + + public static final Integer INJURY420 = 127156; + + public static final Integer INJURY421 = 127220; + + public static final Integer INJURY422 = 127667; + + public static final Integer INJURY423 = 127940; + + public static final Integer INJURY424 = 127941; + + public static final Integer INJURY425 = 128138; + + public static final Integer INJURY426 = 128142; + + public static final Integer INJURY427 = 129457; + + public static final Integer INJURY428 = 130376; + + public static final Integer INJURY429 = 130387; + + public static final Integer INJURY430 = 130420; + + public static final Integer INJURY431 = 130421; + + public static final Integer INJURY432 = 130647; + + public static final Integer INJURY433 = 130672; + + public static final Integer INJURY434 = 130673; + + public static final Integer INJURY435 = 130674; + + public static final Integer INJURY436 = 130979; + + public static final Integer INJURY437 = 130981; + + public static final Integer INJURY438 = 131398; + + public static final Integer INJURY439 = 131757; + + public static final Integer INJURY440 = 131992; + + public static final Integer INJURY441 = 132101; + + public static final Integer INJURY442 = 132102; + + public static final Integer INJURY443 = 132103; + + public static final Integer INJURY444 = 132108; + + public static final Integer INJURY445 = 132114; + + public static final Integer INJURY446 = 132115; + + public static final Integer INJURY447 = 132122; + + public static final Integer INJURY448 = 132123; + + public static final Integer INJURY449 = 132126; + + public static final Integer INJURY450 = 132142; + + public static final Integer INJURY451 = 132143; + + public static final Integer INJURY452 = 132145; + + public static final Integer INJURY453 = 132171; + + public static final Integer INJURY454 = 132184; + + public static final Integer INJURY455 = 132188; + + public static final Integer INJURY456 = 132198; + + public static final Integer INJURY457 = 132202; + + public static final Integer INJURY458 = 132244; + + public static final Integer INJURY459 = 132245; + + public static final Integer INJURY460 = 132265; + + public static final Integer INJURY461 = 132272; + + public static final Integer INJURY462 = 132274; + + public static final Integer INJURY463 = 132292; + + public static final Integer INJURY464 = 132294; + + public static final Integer INJURY465 = 132316; + + public static final Integer INJURY466 = 132317; + + public static final Integer INJURY467 = 132321; + + public static final Integer INJURY468 = 132804; + + public static final Integer INJURY469 = 133136; + + public static final Integer INJURY470 = 133137; + + public static final Integer INJURY471 = 133439; + + public static final Integer INJURY472 = 133685; + + public static final Integer INJURY473 = 133707; + + public static final Integer INJURY474 = 133724; + + public static final Integer INJURY475 = 133727; + + public static final Integer INJURY476 = 133728; + + public static final Integer INJURY477 = 133729; + + public static final Integer INJURY478 = 133730; + + public static final Integer INJURY479 = 133731; + + public static final Integer INJURY480 = 133740; + + public static final Integer INJURY481 = 133741; + + public static final Integer INJURY482 = 133856; + + public static final Integer INJURY483 = 133857; + + public static final Integer INJURY484 = 133858; + + public static final Integer INJURY485 = 133859; + + public static final Integer INJURY486 = 133862; + + public static final Integer INJURY487 = 133863; + + public static final Integer INJURY488 = 133870; + + public static final Integer INJURY489 = 133894; + + public static final Integer INJURY490 = 133914; + + public static final Integer INJURY491 = 133917; + + public static final Integer INJURY492 = 133918; + + public static final Integer INJURY493 = 133920; + + public static final Integer INJURY494 = 134110; + + public static final Integer INJURY495 = 134173; + + public static final Integer INJURY496 = 135543; + + public static final Integer INJURY497 = 136042; + + public static final Integer INJURY498 = 136051; + + public static final Integer INJURY499 = 136052; + + public static final Integer INJURY500 = 136063; + + public static final Integer INJURY501 = 136064; + + public static final Integer INJURY502 = 136065; + + public static final Integer INJURY503 = 136066; + + public static final Integer INJURY504 = 136073; + + public static final Integer INJURY505 = 136074; + + public static final Integer INJURY506 = 136075; + + public static final Integer INJURY507 = 136077; + + public static final Integer INJURY508 = 136079; + + public static final Integer INJURY509 = 136080; + + public static final Integer INJURY510 = 136082; + + public static final Integer INJURY511 = 136083; + + public static final Integer INJURY512 = 136084; + + public static final Integer INJURY513 = 136085; + + public static final Integer INJURY514 = 136086; + + public static final Integer INJURY515 = 136087; + + public static final Integer INJURY516 = 136088; + + public static final Integer INJURY517 = 136089; + + public static final Integer INJURY518 = 136090; + + public static final Integer INJURY519 = 136091; + + public static final Integer INJURY520 = 136092; + + public static final Integer INJURY521 = 136102; + + public static final Integer INJURY522 = 136268; + + public static final Integer INJURY523 = 136412; + + public static final Integer INJURY524 = 136627; + + public static final Integer INJURY525 = 136628; + + public static final Integer INJURY526 = 136629; + + public static final Integer INJURY527 = 136630; + + public static final Integer INJURY528 = 136643; + + public static final Integer INJURY529 = 136644; + + public static final Integer INJURY530 = 136645; + + public static final Integer INJURY531 = 136647; + + public static final Integer INJURY532 = 136648; + + public static final Integer INJURY533 = 136649; + + public static final Integer INJURY534 = 136650; + + public static final Integer INJURY535 = 136651; + + public static final Integer INJURY536 = 136652; + + public static final Integer INJURY537 = 136653; + + public static final Integer INJURY538 = 136654; + + public static final Integer INJURY539 = 136656; + + public static final Integer INJURY540 = 136658; + + public static final Integer INJURY541 = 136728; + + public static final Integer INJURY542 = 136729; + + public static final Integer INJURY543 = 136834; + + public static final Integer INJURY544 = 136835; + + public static final Integer INJURY545 = 136836; + + public static final Integer INJURY546 = 136837; + + public static final Integer INJURY547 = 136838; + + public static final Integer INJURY548 = 136839; + + public static final Integer INJURY549 = 136840; + + public static final Integer INJURY550 = 136841; + + public static final Integer INJURY551 = 136843; + + public static final Integer INJURY552 = 136844; + + public static final Integer INJURY553 = 136845; + + public static final Integer INJURY554 = 136846; + + public static final Integer INJURY555 = 136847; + + public static final Integer INJURY556 = 136848; + + public static final Integer INJURY557 = 136850; + + public static final Integer INJURY558 = 136851; + + public static final Integer INJURY559 = 136852; + + public static final Integer INJURY560 = 136853; + + public static final Integer INJURY561 = 136855; + + public static final Integer INJURY562 = 136857; + + public static final Integer INJURY563 = 136858; + + public static final Integer INJURY564 = 136859; + + public static final Integer INJURY565 = 136860; + + public static final Integer INJURY566 = 136861; + + public static final Integer INJURY567 = 136862; + + public static final Integer INJURY568 = 136863; + + public static final Integer INJURY569 = 136864; + + public static final Integer INJURY570 = 136865; + + public static final Integer INJURY571 = 136866; + + public static final Integer INJURY572 = 136867; + + public static final Integer INJURY573 = 136868; + + public static final Integer INJURY574 = 136869; + + public static final Integer INJURY575 = 136870; + + public static final Integer INJURY576 = 136871; + + public static final Integer INJURY577 = 136872; + + public static final Integer INJURY578 = 136873; + + public static final Integer INJURY579 = 136874; + + public static final Integer INJURY580 = 136875; + + public static final Integer INJURY581 = 136876; + + public static final Integer INJURY582 = 136877; + + public static final Integer INJURY583 = 136878; + + public static final Integer INJURY584 = 136879; + + public static final Integer INJURY585 = 136880; + + public static final Integer INJURY586 = 136881; + + public static final Integer INJURY587 = 136882; + + public static final Integer INJURY588 = 136883; + + public static final Integer INJURY589 = 136884; + + public static final Integer INJURY590 = 136887; + + public static final Integer INJURY591 = 136888; + + public static final Integer INJURY592 = 136889; + + public static final Integer INJURY593 = 136890; + + public static final Integer INJURY594 = 136892; + + public static final Integer INJURY595 = 136893; + + public static final Integer INJURY596 = 136894; + + public static final Integer INJURY597 = 136895; + + public static final Integer INJURY598 = 136896; + + public static final Integer INJURY599 = 136897; + + public static final Integer INJURY600 = 136898; + + public static final Integer INJURY601 = 136899; + + public static final Integer INJURY602 = 136900; + + public static final Integer INJURY603 = 136902; + + public static final Integer INJURY604 = 136903; + + public static final Integer INJURY605 = 136904; + + public static final Integer INJURY606 = 136905; + + public static final Integer INJURY607 = 136906; + + public static final Integer INJURY608 = 136907; + + public static final Integer INJURY609 = 136908; + + public static final Integer INJURY610 = 136909; + + public static final Integer INJURY611 = 136910; + + public static final Integer INJURY612 = 136911; + + public static final Integer INJURY613 = 136912; + + public static final Integer INJURY614 = 136913; + + public static final Integer INJURY615 = 136914; + + public static final Integer INJURY616 = 136916; + + public static final Integer INJURY617 = 136917; + + public static final Integer INJURY618 = 136918; + + public static final Integer INJURY619 = 136919; + + public static final Integer INJURY620 = 136920; + + public static final Integer INJURY621 = 136921; + + public static final Integer INJURY622 = 136922; + + public static final Integer INJURY623 = 136923; + + public static final Integer INJURY624 = 136924; + + public static final Integer INJURY625 = 136925; + + public static final Integer INJURY626 = 136926; + + public static final Integer INJURY627 = 136927; + + public static final Integer INJURY628 = 136928; + + public static final Integer INJURY629 = 136929; + + public static final Integer INJURY630 = 136930; + + public static final Integer INJURY631 = 136931; + + public static final Integer INJURY632 = 136932; + + public static final Integer INJURY633 = 136933; + + public static final Integer INJURY634 = 136934; + + public static final Integer INJURY635 = 136935; + + public static final Integer INJURY636 = 136936; + + public static final Integer INJURY637 = 136938; + + public static final Integer INJURY638 = 136940; + + public static final Integer INJURY639 = 136941; + + public static final Integer INJURY640 = 136942; + + public static final Integer INJURY641 = 136943; + + public static final Integer INJURY642 = 136944; + + public static final Integer INJURY643 = 136945; + + public static final Integer INJURY644 = 136946; + + public static final Integer INJURY645 = 136947; + + public static final Integer INJURY646 = 136948; + + public static final Integer INJURY647 = 136949; + + public static final Integer INJURY648 = 136950; + + public static final Integer INJURY649 = 136951; + + public static final Integer INJURY650 = 136953; + + public static final Integer INJURY651 = 136954; + + public static final Integer INJURY652 = 136955; + + public static final Integer INJURY653 = 136956; + + public static final Integer INJURY654 = 136957; + + public static final Integer INJURY655 = 136959; + + public static final Integer INJURY656 = 136960; + + public static final Integer INJURY657 = 136961; + + public static final Integer INJURY658 = 136964; + + public static final Integer INJURY659 = 136965; + + public static final Integer INJURY660 = 136967; + + public static final Integer INJURY661 = 136968; + + public static final Integer INJURY662 = 136969; + + public static final Integer INJURY663 = 136970; + + public static final Integer INJURY664 = 136971; + + public static final Integer INJURY665 = 136972; + + public static final Integer INJURY666 = 136973; + + public static final Integer INJURY667 = 136974; + + public static final Integer INJURY668 = 136975; + + public static final Integer INJURY669 = 136976; + + public static final Integer INJURY670 = 136977; + + public static final Integer INJURY671 = 136978; + + public static final Integer INJURY672 = 136979; + + public static final Integer INJURY673 = 136980; + + public static final Integer INJURY674 = 136981; + + public static final Integer INJURY675 = 136982; + + public static final Integer INJURY676 = 136983; + + public static final Integer INJURY677 = 136984; + + public static final Integer INJURY678 = 136985; + + public static final Integer INJURY679 = 136986; + + public static final Integer INJURY680 = 136987; + + public static final Integer INJURY681 = 136988; + + public static final Integer INJURY682 = 136989; + + public static final Integer INJURY683 = 136990; + + public static final Integer INJURY684 = 136991; + + public static final Integer INJURY685 = 136992; + + public static final Integer INJURY686 = 136993; + + public static final Integer INJURY687 = 136994; + + public static final Integer INJURY688 = 136995; + + public static final Integer INJURY689 = 136996; + + public static final Integer INJURY690 = 136997; + + public static final Integer INJURY691 = 136998; + + public static final Integer INJURY692 = 136999; + + public static final Integer INJURY693 = 137000; + + public static final Integer INJURY694 = 137001; + + public static final Integer INJURY695 = 137002; + + public static final Integer INJURY696 = 137003; + + public static final Integer INJURY697 = 137004; + + public static final Integer INJURY698 = 137005; + + public static final Integer INJURY699 = 137006; + + public static final Integer INJURY700 = 137007; + + public static final Integer INJURY701 = 137008; + + public static final Integer INJURY702 = 137009; + + public static final Integer INJURY703 = 137010; + + public static final Integer INJURY704 = 137012; + + public static final Integer INJURY705 = 137013; + + public static final Integer INJURY706 = 137014; + + public static final Integer INJURY707 = 137015; + + public static final Integer INJURY708 = 137016; + + public static final Integer INJURY709 = 137017; + + public static final Integer INJURY710 = 137018; + + public static final Integer INJURY711 = 137019; + + public static final Integer INJURY712 = 137020; + + public static final Integer INJURY713 = 137021; + + public static final Integer INJURY714 = 137022; + + public static final Integer INJURY715 = 137023; + + public static final Integer INJURY716 = 137024; + + public static final Integer INJURY717 = 137025; + + public static final Integer INJURY718 = 137026; + + public static final Integer INJURY719 = 137027; + + public static final Integer INJURY720 = 137028; + + public static final Integer INJURY721 = 137029; + + public static final Integer INJURY722 = 137030; + + public static final Integer INJURY723 = 137031; + + public static final Integer INJURY724 = 137032; + + public static final Integer INJURY725 = 137033; + + public static final Integer INJURY726 = 137034; + + public static final Integer INJURY727 = 137036; + + public static final Integer INJURY728 = 137038; + + public static final Integer INJURY729 = 137039; + + public static final Integer INJURY730 = 137040; + + public static final Integer INJURY731 = 137041; + + public static final Integer INJURY732 = 137042; + + public static final Integer INJURY733 = 137043; + + public static final Integer INJURY734 = 137044; + + public static final Integer INJURY735 = 137045; + + public static final Integer INJURY736 = 137046; + + public static final Integer INJURY737 = 137047; + + public static final Integer INJURY738 = 137049; + + public static final Integer INJURY739 = 137050; + + public static final Integer INJURY740 = 137051; + + public static final Integer INJURY741 = 137052; + + public static final Integer INJURY742 = 137053; + + public static final Integer INJURY743 = 137054; + + public static final Integer INJURY744 = 137055; + + public static final Integer INJURY745 = 137056; + + public static final Integer INJURY746 = 137057; + + public static final Integer INJURY747 = 137058; + + public static final Integer INJURY748 = 137059; + + public static final Integer INJURY749 = 137060; + + public static final Integer INJURY750 = 137062; + + public static final Integer INJURY751 = 137063; + + public static final Integer INJURY752 = 137065; + + public static final Integer INJURY753 = 137066; + + public static final Integer INJURY754 = 137067; + + public static final Integer INJURY755 = 137068; + + public static final Integer INJURY756 = 137069; + + public static final Integer INJURY757 = 137070; + + public static final Integer INJURY758 = 137071; + + public static final Integer INJURY759 = 137072; + + public static final Integer INJURY760 = 137073; + + public static final Integer INJURY761 = 137074; + + public static final Integer INJURY762 = 137075; + + public static final Integer INJURY763 = 137079; + + public static final Integer INJURY764 = 137080; + + public static final Integer INJURY765 = 137081; + + public static final Integer INJURY766 = 137082; + + public static final Integer INJURY767 = 137084; + + public static final Integer INJURY768 = 137085; + + public static final Integer INJURY769 = 137086; + + public static final Integer INJURY770 = 137087; + + public static final Integer INJURY771 = 137089; + + public static final Integer INJURY772 = 137093; + + public static final Integer INJURY773 = 137096; + + public static final Integer INJURY774 = 137097; + + public static final Integer INJURY775 = 137098; + + public static final Integer INJURY776 = 137099; + + public static final Integer INJURY777 = 137100; + + public static final Integer INJURY778 = 137101; + + public static final Integer INJURY779 = 137103; + + public static final Integer INJURY780 = 137104; + + public static final Integer INJURY781 = 137106; + + public static final Integer INJURY782 = 137107; + + public static final Integer INJURY783 = 137108; + + public static final Integer INJURY784 = 137109; + + public static final Integer INJURY785 = 137110; + + public static final Integer INJURY786 = 137111; + + public static final Integer INJURY787 = 137112; + + public static final Integer INJURY788 = 137113; + + public static final Integer INJURY789 = 137114; + + public static final Integer INJURY790 = 137115; + + public static final Integer INJURY791 = 137116; + + public static final Integer INJURY792 = 137117; + + public static final Integer INJURY793 = 137118; + + public static final Integer INJURY794 = 137119; + + public static final Integer INJURY795 = 137120; + + public static final Integer INJURY796 = 137121; + + public static final Integer INJURY797 = 137619; + + public static final Integer INJURY798 = 137620; + + public static final Integer INJURY799 = 137621; + + public static final Integer INJURY800 = 137622; + + public static final Integer INJURY801 = 138907; + + public static final Integer INJURY802 = 139067; + + public static final Integer INJURY803 = 139091; + + public static final Integer INJURY804 = 139120; + + public static final Integer INJURY805 = 139424; + + public static final Integer INJURY806 = 139665; + + public static final Integer INJURY807 = 139666; + + public static final Integer INJURY808 = 139826; + + public static final Integer INJURY809 = 139827; + + public static final Integer INJURY810 = 140036; + + public static final Integer INJURY811 = 140291; + + public static final Integer INJURY812 = 140615; + + public static final Integer INJURY813 = 140616; + + public static final Integer INJURY814 = 140641; + + public static final Integer INJURY815 = 140673; + + public static final Integer INJURY816 = 140675; + + public static final Integer INJURY817 = 140677; + + public static final Integer INJURY818 = 140697; + + public static final Integer INJURY819 = 140698; + + public static final Integer INJURY820 = 140818; + + public static final Integer INJURY821 = 140869; + + public static final Integer INJURY822 = 140870; + + public static final Integer INJURY823 = 140874; + + public static final Integer INJURY824 = 140879; + + public static final Integer INJURY825 = 140880; + + public static final Integer INJURY826 = 140881; + + public static final Integer INJURY827 = 140882; + + public static final Integer INJURY828 = 140883; + + public static final Integer INJURY829 = 140907; + + public static final Integer INJURY830 = 141000; + + public static final Integer INJURY831 = 142330; + + public static final Integer INJURY832 = 143133; + + public static final Integer INJURY833 = 143134; + + public static final Integer INJURY834 = 143135; + + public static final Integer INJURY835 = 143136; + + public static final Integer INJURY836 = 143137; + + public static final Integer INJURY837 = 143138; + + public static final Integer INJURY838 = 143139; + + public static final Integer INJURY839 = 143140; + + public static final Integer INJURY840 = 143141; + + public static final Integer INJURY841 = 143142; + + public static final Integer INJURY842 = 143143; + + public static final Integer INJURY843 = 143144; + + public static final Integer INJURY844 = 143145; + + public static final Integer INJURY845 = 143146; + + public static final Integer INJURY846 = 143147; + + public static final Integer INJURY847 = 143148; + + public static final Integer INJURY848 = 143149; + + public static final Integer INJURY849 = 143150; + + public static final Integer INJURY850 = 143151; + + public static final Integer INJURY851 = 143152; + + public static final Integer INJURY852 = 143153; + + public static final Integer INJURY853 = 143154; + + public static final Integer INJURY854 = 143155; + + public static final Integer INJURY855 = 143156; + + public static final Integer INJURY856 = 143157; + + public static final Integer INJURY857 = 143158; + + public static final Integer INJURY858 = 143159; + + public static final Integer INJURY859 = 143160; + + public static final Integer INJURY860 = 143161; + + public static final Integer INJURY861 = 143162; + + public static final Integer INJURY862 = 143163; + + public static final Integer INJURY863 = 143164; + + public static final Integer INJURY864 = 143165; + + public static final Integer INJURY865 = 143166; + + public static final Integer INJURY866 = 143167; + + public static final Integer INJURY867 = 143168; + + public static final Integer INJURY868 = 143169; + + public static final Integer INJURY869 = 143170; + + public static final Integer INJURY870 = 143171; + + public static final Integer INJURY871 = 143176; + + public static final Integer INJURY872 = 143178; + + public static final Integer INJURY873 = 143179; + + public static final Integer INJURY874 = 143180; + + public static final Integer INJURY875 = 143183; + + public static final Integer INJURY876 = 143184; + + public static final Integer INJURY877 = 143185; + + public static final Integer INJURY878 = 143187; + + public static final Integer INJURY879 = 143189; + + public static final Integer INJURY880 = 143236; + + public static final Integer INJURY881 = 144585; + + public static final Integer INJURY882 = 144595; + + public static final Integer INJURY883 = 144596; + + public static final Integer INJURY884 = 144597; + + public static final Integer INJURY885 = 144598; + + public static final Integer INJURY886 = 144616; + + public static final Integer INJURY887 = 144617; + + public static final Integer INJURY888 = 144703; + + public static final Integer INJURY889 = 144730; + + public static final Integer INJURY890 = 144731; + + public static final Integer INJURY891 = 144732; + + public static final Integer INJURY892 = 144733; + + public static final Integer INJURY893 = 144734; + + public static final Integer INJURY894 = 144735; + + public static final Integer INJURY895 = 144736; + + public static final Integer INJURY896 = 144742; + + public static final Integer INJURY897 = 144751; + + public static final Integer INJURY898 = 144752; + + public static final Integer INJURY899 = 144756; + + public static final Integer INJURY900 = 144757; + + public static final Integer INJURY901 = 144759; + + public static final Integer INJURY902 = 144761; + + public static final Integer INJURY903 = 144783; + + public static final Integer INJURY904 = 144784; + + public static final Integer INJURY905 = 144786; + + public static final Integer INJURY906 = 144825; + + public static final Integer INJURY907 = 144840; + + public static final Integer INJURY908 = 144841; + + public static final Integer INJURY909 = 144885; + + public static final Integer INJURY910 = 144886; + + public static final Integer INJURY911 = 144913; + + public static final Integer INJURY912 = 144918; + + public static final Integer INJURY913 = 144920; + + public static final Integer INJURY914 = 144944; + + public static final Integer INJURY915 = 144946; + + public static final Integer INJURY916 = 144967; + + public static final Integer INJURY917 = 144969; + + public static final Integer INJURY918 = 144971; + + public static final Integer INJURY919 = 144972; + + public static final Integer INJURY920 = 144973; + + public static final Integer INJURY921 = 145743; + + public static final Integer INJURY922 = 145792; + + public static final Integer INJURY923 = 145796; + + public static final Integer INJURY924 = 145874; + + public static final Integer INJURY925 = 146076; + + public static final Integer INJURY926 = 146077; + + public static final Integer INJURY927 = 146083; + + public static final Integer INJURY928 = 146998; + + public static final Integer INJURY929 = 147000; + + public static final Integer INJURY930 = 147001; + + public static final Integer INJURY931 = 147002; + + public static final Integer INJURY932 = 147003; + + public static final Integer INJURY933 = 147004; + + public static final Integer INJURY934 = 147005; + + public static final Integer INJURY935 = 147006; + + public static final Integer INJURY936 = 147008; + + public static final Integer INJURY937 = 147244; + + public static final Integer INJURY938 = 147257; + + public static final Integer INJURY939 = 147279; + + public static final Integer INJURY940 = 147333; + + public static final Integer INJURY941 = 148059; + + public static final Integer INJURY942 = 148318; + + public static final Integer INJURY943 = 148351; + + public static final Integer INJURY944 = 148749; + + public static final Integer INJURY945 = 149359; + + public static final Integer INJURY946 = 149705; + + public static final Integer INJURY947 = 150359; + + public static final Integer INJURY948 = 150420; + + public static final Integer INJURY949 = 151290; + + public static final Integer INJURY950 = 151794; + + public static final Integer INJURY951 = 151825; + + public static final Integer INJURY952 = 151957; + + public static final Integer INJURY953 = 151958; + + public static final Integer INJURY954 = 151959; + + public static final Integer INJURY955 = 151960; + + public static final Integer INJURY956 = 151961; + + public static final Integer INJURY957 = 151962; + + public static final Integer INJURY958 = 151963; + + public static final Integer INJURY959 = 151964; + + public static final Integer INJURY960 = 151965; + + public static final Integer INJURY961 = 151966; + + public static final Integer INJURY962 = 151967; + + public static final Integer INJURY963 = 151968; + + public static final Integer INJURY964 = 151969; + + public static final Integer INJURY965 = 151970; + + public static final Integer INJURY966 = 151971; + + public static final Integer INJURY967 = 151973; + + public static final Integer INJURY968 = 151974; + + public static final Integer INJURY969 = 152048; + + public static final Integer INJURY970 = 152119; + + public static final Integer INJURY971 = 152120; + + public static final Integer INJURY972 = 152235; + + public static final Integer INJURY973 = 152236; + + public static final Integer INJURY974 = 152237; + + public static final Integer INJURY975 = 152239; + + public static final Integer INJURY976 = 152240; + + public static final Integer INJURY977 = 152242; + + public static final Integer INJURY978 = 152243; + + public static final Integer INJURY979 = 152244; + + public static final Integer INJURY980 = 152248; + + public static final Integer INJURY981 = 152249; + + public static final Integer INJURY982 = 152250; + + public static final Integer INJURY983 = 152251; + + public static final Integer INJURY984 = 152252; + + public static final Integer INJURY985 = 152348; + + public static final Integer INJURY986 = 152349; + + public static final Integer INJURY987 = 152358; + + public static final Integer INJURY988 = 152359; + + public static final Integer INJURY989 = 152362; + + public static final Integer INJURY990 = 152363; + + public static final Integer INJURY991 = 152372; + + public static final Integer INJURY992 = 152380; + + public static final Integer INJURY993 = 152381; + + public static final Integer INJURY994 = 152392; + + public static final Integer INJURY995 = 152393; + + public static final Integer INJURY996 = 152496; + + public static final Integer INJURY997 = 153574; + + public static final Integer INJURY998 = 153608; + + public static final Integer INJURY999 = 155220; + + public static final Integer INJURY1000 = 155237; + + public static final Integer INJURY1001 = 155303; + + public static final Integer INJURY1002 = 155475; + + public static final Integer INJURY1003 = 155478; + + public static final Integer INJURY1004 = 155501; + + public static final Integer INJURY1005 = 155632; + + public static final Integer INJURY1006 = 155634; + + public static final Integer INJURY1007 = 155648; + + public static final Integer INJURY1008 = 155801; + + public static final Integer INJURY1009 = 155802; + + public static final Integer INJURY1010 = 155803; + + public static final Integer INJURY1011 = 155804; + + public static final Integer INJURY1012 = 155805; + + public static final Integer INJURY1013 = 155877; + + public static final Integer INJURY1014 = 155878; + + public static final Integer INJURY1015 = 155897; + + public static final Integer INJURY1016 = 155970; + + public static final Integer INJURY1017 = 156210; + + public static final Integer INJURY1018 = 156230; + + public static final Integer INJURY1019 = 156232; + + public static final Integer INJURY1020 = 156234; + + public static final Integer INJURY1021 = 156236; + + public static final Integer INJURY1022 = 156238; + + public static final Integer INJURY1023 = 156240; + + public static final Integer INJURY1024 = 156508; + + public static final Integer INJURY1025 = 156819; + + public static final Integer INJURY1026 = 156822; + + public static final Integer INJURY1027 = 156823; + + public static final Integer INJURY1028 = 156824; + + public static final Integer INJURY1029 = 156825; + + public static final Integer INJURY1030 = 156826; + + public static final Integer INJURY1031 = 156827; + + public static final Integer INJURY1032 = 156828; + + public static final Integer INJURY1033 = 156829; + + public static final Integer INJURY1034 = 156830; + + public static final Integer INJURY1035 = 156831; + + public static final Integer INJURY1036 = 156832; + + public static final Integer INJURY1037 = 156833; + + public static final Integer INJURY1038 = 156834; + + public static final Integer INJURY1039 = 156835; + + public static final Integer INJURY1040 = 156836; + + public static final Integer INJURY1041 = 156837; + + public static final Integer INJURY1042 = 156838; + + public static final Integer INJURY1043 = 156839; + + public static final Integer INJURY1044 = 156840; + + public static final Integer INJURY1045 = 156841; + + public static final Integer INJURY1046 = 156842; + + public static final Integer INJURY1047 = 156843; + + public static final Integer INJURY1048 = 156844; + + public static final Integer INJURY1049 = 156845; + + public static final Integer INJURY1050 = 156846; + + public static final Integer INJURY1051 = 156847; + + public static final Integer INJURY1052 = 156848; + + public static final Integer INJURY1053 = 156849; + + public static final Integer INJURY1054 = 156850; + + public static final Integer INJURY1055 = 156851; + + public static final Integer INJURY1056 = 156852; + + public static final Integer INJURY1057 = 156853; + + public static final Integer INJURY1058 = 156854; + + public static final Integer INJURY1059 = 156855; + + public static final Integer INJURY1060 = 156856; + + public static final Integer INJURY1061 = 156857; + + public static final Integer INJURY1062 = 156858; + + public static final Integer INJURY1063 = 156859; + + public static final Integer INJURY1064 = 156860; + + public static final Integer INJURY1065 = 156861; + + public static final Integer INJURY1066 = 156862; + + public static final Integer INJURY1067 = 156863; + + public static final Integer INJURY1068 = 156864; + + public static final Integer INJURY1069 = 156865; + + public static final Integer INJURY1070 = 156866; + + public static final Integer INJURY1071 = 156867; + + public static final Integer INJURY1072 = 156868; + + public static final Integer INJURY1073 = 156869; + + public static final Integer INJURY1074 = 156870; + + public static final Integer INJURY1075 = 156871; + + public static final Integer INJURY1076 = 156872; + + public static final Integer INJURY1077 = 156873; + + public static final Integer INJURY1078 = 156874; + + public static final Integer INJURY1079 = 156875; + + public static final Integer INJURY1080 = 156876; + + public static final Integer INJURY1081 = 156877; + + public static final Integer INJURY1082 = 156878; + + public static final Integer INJURY1083 = 156879; + + public static final Integer INJURY1084 = 156880; + + public static final Integer INJURY1085 = 156881; + + public static final Integer INJURY1086 = 156882; + + public static final Integer INJURY1087 = 156883; + + public static final Integer INJURY1088 = 156884; + + public static final Integer INJURY1089 = 156885; + + public static final Integer INJURY1090 = 156886; + + public static final Integer INJURY1091 = 156887; + + public static final Integer INJURY1092 = 156888; + + public static final Integer INJURY1093 = 156889; + + public static final Integer INJURY1094 = 156890; + + public static final Integer INJURY1095 = 156891; + + public static final Integer INJURY1096 = 156892; + + public static final Integer INJURY1097 = 156893; + + public static final Integer INJURY1098 = 156894; + + public static final Integer INJURY1099 = 156895; + + public static final Integer INJURY1100 = 156896; + + public static final Integer INJURY1101 = 156897; + + public static final Integer INJURY1102 = 156898; + + public static final Integer INJURY1103 = 156899; + + public static final Integer INJURY1104 = 156900; + + public static final Integer INJURY1105 = 156901; + + public static final Integer INJURY1106 = 156902; + + public static final Integer INJURY1107 = 156903; + + public static final Integer INJURY1108 = 156904; + + public static final Integer INJURY1109 = 156905; + + public static final Integer INJURY1110 = 156906; + + public static final Integer INJURY1111 = 156907; + + public static final Integer INJURY1112 = 156908; + + public static final Integer INJURY1113 = 156909; + + public static final Integer INJURY1114 = 156910; + + public static final Integer INJURY1115 = 156911; + + public static final Integer INJURY1116 = 156912; + + public static final Integer INJURY1117 = 157355; + + public static final Integer INJURY1118 = 157459; + + public static final Integer INJURY1119 = 157814; + + public static final Integer INJURY1120 = 157821; + + public static final Integer INJURY1121 = 157822; + + public static final Integer INJURY1122 = 157832; + + public static final Integer INJURY1123 = 158089; + + public static final Integer INJURY1124 = 158152; + + public static final Integer INJURY1125 = 158153; + + public static final Integer INJURY1126 = 158154; + + public static final Integer INJURY1127 = 158155; + + public static final Integer INJURY1128 = 158237; + + public static final Integer INJURY1129 = 158268; + + public static final Integer INJURY1130 = 158269; + + public static final Integer INJURY1131 = 158298; + + public static final Integer INJURY1132 = 158299; + + public static final Integer INJURY1133 = 158300; + + public static final Integer INJURY1134 = 158301; + + public static final Integer INJURY1135 = 158778; + + public static final Integer INJURY1136 = 158779; + + public static final Integer INJURY1137 = 158789; + + public static final Integer INJURY1138 = 158790; + + public static final Integer INJURY1139 = 158791; + + public static final Integer INJURY1140 = 158792; + + public static final Integer INJURY1141 = 158866; + + public static final Integer INJURY1142 = 158952; + + public static final Integer INJURY1143 = 158992; + + public static final Integer INJURY1144 = 158993; + + public static final Integer INJURY1145 = 158994; + + public static final Integer INJURY1146 = 158995; + + public static final Integer INJURY1147 = 158996; + + public static final Integer INJURY1148 = 158997; + + public static final Integer INJURY1149 = 159031; + + public static final Integer INJURY1150 = 159121; + + public static final Integer INJURY1151 = 159224; + + public static final Integer INJURY1152 = 159225; + + public static final Integer INJURY1153 = 159239; + + public static final Integer INJURY1154 = 159311; + + public static final Integer INJURY1155 = 159312; + + public static final Integer INJURY1156 = 159929; + + public static final Integer INJURY1157 = 160183; + + public static final Integer INJURY1158 = 160184; + + public static final Integer INJURY1159 = 160185; + + public static final Integer INJURY1160 = 160186; + + public static final Integer INJURY1161 = 160187; + + public static final Integer INJURY1162 = 160188; + + public static final Integer INJURY1163 = 160191; + + public static final Integer INJURY1164 = 160192; + + public static final Integer INJURY1165 = 160230; + + public static final Integer INJURY1166 = 161575; + + public static final Integer INJURY1167 = 162482; + + public static final Integer INJURY1168 = 162495; + + public static final Integer INJURY1169 = 162527; + + public static final Integer INJURY1170 = 162528; + + public static final Integer INJURY1171 = 162529; + + public static final Integer INJURY1172 = 162530; + + public static final Integer INJURY1173 = 162534; + + public static final Integer INJURY1174 = 162783; + + public static final Integer INJURY1175 = 162784; + + public static final Integer INJURY1176 = 162786; + + public static final Integer INJURY1177 = 162787; + + public static final Integer INJURY1178 = 162788; + + public static final Integer INJURY1179 = 163487; + + public static final Integer INJURY1180 = 163864; + + //Victims of violences + public static final Integer VIOLENCE1 = 123160; + + public static final Integer VIOLENCE2 = 124824; + + public static final Integer VIOLENCE3 = 141814; + + public static final Integer VIOLENCE4 = 158358; + + //Dog bites + public static final Integer DOGBITE_1 = 166; + + public static final Integer DOGBITE_2 = 135667; + + public static final Integer DOGBITE_3 = 141821; + + public static final Integer DOGBITE_4 = 141822; + + public static final Integer DOGBITE_5 = 141823; + + public static final Integer DOGBITE_6 = 156048; + + public static final Integer DOGBITE_7 = 156049; + + public static final Integer DOGBITE_8 = 156050; + + public static final Integer DOGBITE_9 = 156051; + + public static final Integer DOGBITE_10 = 156052; + + //burns + public static final Integer BURN1 = 124859; + + public static final Integer BURN2 = 125534; + + public static final Integer BURN3 = 127018; + + public static final Integer BURN4 = 133761; + + public static final Integer BURN5 = 136071; + + public static final Integer BURN6 = 136867; + + public static final Integer BURN7 = 139089; + + public static final Integer BURN8 = 140826; + + public static final Integer BURN9 = 142743; + + public static final Integer BURN10 = 142744; + + public static final Integer BURN11 = 146622; + + public static final Integer BURN12 = 146623; + + public static final Integer BURN13 = 151679; + + public static final Integer BURN14 = 155357; + + public static final Integer BURN15 = 155358; + + public static final Integer BURN16 = 155359; + + public static final Integer BURN17 = 155360; + + public static final Integer BURN18 = 155361; + + public static final Integer BURN19 = 155362; + + public static final Integer BURN20 = 155363; + + public static final Integer BURN21 = 155364; + + public static final Integer BURN22 = 155365; + + public static final Integer BURN23 = 155378; + + //snake bites + public static final Integer SNAKEBITE1 = 111555; + + public static final Integer SNAKEBITE2 = 126323; + + public static final Integer SNAKEBITE3 = 132684; + + public static final Integer SNAKEBITE4 = 158628; + + //sexual assault + public static final Integer SEXUAL1 = 123160; + + public static final Integer SEXUAL2 = 126582; + + public static final Integer SEXUAL3 = 158805; + + //Diabetics + + //fistula + public static final Integer FISTULA1 = 49; + + public static final Integer FISTULA2 = 110168; + + public static final Integer FISTULA3 = 110267; + + public static final Integer FISTULA4 = 110268; + + public static final Integer FISTULA5 = 111645; + + public static final Integer FISTULA6 = 113876; + + public static final Integer FISTULA7 = 113877; + + public static final Integer FISTULA8 = 114601; + + public static final Integer FISTULA9 = 117885; + + public static final Integer FISTULA10 = 118145; + + public static final Integer FISTULA11 = 118808; + + public static final Integer FISTULA12 = 118809; + + public static final Integer FISTULA13 = 123201; + + public static final Integer FISTULA14 = 123202; + + public static final Integer FISTULA15 = 123203; + + public static final Integer FISTULA16 = 123204; + + public static final Integer FISTULA17 = 123205; + + public static final Integer FISTULA18 = 123289; + + public static final Integer FISTULA19 = 123310; + + public static final Integer FISTULA20 = 123377; + + public static final Integer FISTULA21 = 123423; + + public static final Integer FISTULA22 = 123439; + + public static final Integer FISTULA23 = 123442; + + public static final Integer FISTULA24 = 123443; + + public static final Integer FISTULA25 = 123497; + + public static final Integer FISTULA26 = 123509; + + public static final Integer FISTULA27 = 123510; + + public static final Integer FISTULA28 = 123511; + + public static final Integer FISTULA29 = 123513; + + public static final Integer FISTULA30 = 123514; + + public static final Integer FISTULA31 = 123535; + + public static final Integer FISTULA32 = 123541; + + public static final Integer FISTULA33 = 123659; + + public static final Integer FISTULA34 = 124267; + + public static final Integer FISTULA35 = 124402; + + public static final Integer FISTULA36 = 124403; + + public static final Integer FISTULA37 = 125865; + + public static final Integer FISTULA38 = 126503; + + public static final Integer FISTULA39 = 126794; + + public static final Integer FISTULA40 = 127319; + + public static final Integer FISTULA41 = 127844; + + public static final Integer FISTULA42 = 127846; + + public static final Integer FISTULA43 = 127847; + + public static final Integer FISTULA44 = 127855; + + public static final Integer FISTULA45 = 129265; + + public static final Integer FISTULA46 = 129460; + + public static final Integer FISTULA47 = 130056; + + public static final Integer FISTULA48 = 130345; + + public static final Integer FISTULA49 = 130573; + + public static final Integer FISTULA50 = 130974; + + public static final Integer FISTULA51 = 131097; + + public static final Integer FISTULA52 = 131696; + + public static final Integer FISTULA53 = 131748; + + public static final Integer FISTULA54 = 132475; + + public static final Integer FISTULA55 = 134295; + + public static final Integer FISTULA56 = 134306; + + public static final Integer FISTULA57 = 134540; + + public static final Integer FISTULA58 = 134541; + + public static final Integer FISTULA59 = 134705; + + public static final Integer FISTULA60 = 135494; + + public static final Integer FISTULA61 = 135551; + + public static final Integer FISTULA62 = 136170; + + public static final Integer FISTULA63 = 136196; + + public static final Integer FISTULA64 = 136197; + + public static final Integer FISTULA65 = 136492; + + public static final Integer FISTULA66 = 136671; + + public static final Integer FISTULA67 = 136672; + + public static final Integer FISTULA68 = 136673; + + public static final Integer FISTULA69 = 136731; + + public static final Integer FISTULA70 = 136732; + + public static final Integer FISTULA71 = 137857; + + public static final Integer FISTULA72 = 138413; + + public static final Integer FISTULA73 = 138642; + + public static final Integer FISTULA74 = 139570; + + public static final Integer FISTULA75 = 139592; + + public static final Integer FISTULA76 = 139595; + + public static final Integer FISTULA77 = 139615; + + public static final Integer FISTULA78 = 140083; + + public static final Integer FISTULA79 = 140084; + + public static final Integer FISTULA80 = 140085; + + public static final Integer FISTULA81 = 140086; + + public static final Integer FISTULA82 = 140087; + + public static final Integer FISTULA83 = 140088; + + public static final Integer FISTULA84 = 140089; + + public static final Integer FISTULA85 = 140090; + + public static final Integer FISTULA86 = 140091; + + public static final Integer FISTULA87 = 140092; + + public static final Integer FISTULA88 = 140093; + + public static final Integer FISTULA89 = 140094; + + public static final Integer FISTULA90 = 140095; + + public static final Integer FISTULA91 = 140096; + + public static final Integer FISTULA92 = 140097; + + public static final Integer FISTULA93 = 140098; + + public static final Integer FISTULA94 = 140099; + + public static final Integer FISTULA95 = 140100; + + public static final Integer FISTULA96 = 140102; + + public static final Integer FISTULA97 = 140428; + + public static final Integer FISTULA98 = 140464; + + public static final Integer FISTULA99 = 140465; + + public static final Integer FISTULA100 = 140889; + + public static final Integer FISTULA101 = 140892; + + public static final Integer FISTULA102 = 140996; + + public static final Integer FISTULA103 = 141001; + + public static final Integer FISTULA104 = 141006; + + public static final Integer FISTULA105 = 141214; + + public static final Integer FISTULA106 = 141215; + + public static final Integer FISTULA107 = 141327; + + public static final Integer FISTULA108 = 141328; + + public static final Integer FISTULA109 = 141329; + + public static final Integer FISTULA110 = 141330; + + public static final Integer FISTULA111 = 141331; + + public static final Integer FISTULA112 = 141662; + + public static final Integer FISTULA113 = 141663; + + public static final Integer FISTULA114 = 141677; + + public static final Integer FISTULA115 = 143642; + + public static final Integer FISTULA116 = 143737; + + public static final Integer FISTULA117 = 143743; + + public static final Integer FISTULA118 = 143744; + + public static final Integer FISTULA119 = 143745; + + public static final Integer FISTULA120 = 143746; + + public static final Integer FISTULA121 = 143747; + + public static final Integer FISTULA122 = 143960; + + public static final Integer FISTULA123 = 143961; + + public static final Integer FISTULA124 = 143970; + + public static final Integer FISTULA125 = 143971; + + public static final Integer FISTULA126 = 144070; + + public static final Integer FISTULA127 = 144090; + + public static final Integer FISTULA128 = 144156; + + public static final Integer FISTULA129 = 144157; + + public static final Integer FISTULA130 = 145626; + + public static final Integer FISTULA131 = 145628; + + public static final Integer FISTULA132 = 145629; + + public static final Integer FISTULA133 = 145778; + + public static final Integer FISTULA134 = 145783; + + public static final Integer FISTULA135 = 146144; + + public static final Integer FISTULA136 = 146875; + + public static final Integer FISTULA137 = 146879; + + public static final Integer FISTULA138 = 146880; + + public static final Integer FISTULA139 = 146890; + + public static final Integer FISTULA140 = 146950; + + public static final Integer FISTULA141 = 147251; + + public static final Integer FISTULA142 = 148441; + + public static final Integer FISTULA143 = 148454; + + public static final Integer FISTULA144 = 148505; + + public static final Integer FISTULA145 = 148541; + + public static final Integer FISTULA146 = 148543; + + public static final Integer FISTULA147 = 148544; + + public static final Integer FISTULA148 = 148652; + + public static final Integer FISTULA149 = 148903; + + public static final Integer FISTULA150 = 150103; + + public static final Integer FISTULA151 = 150104; + + public static final Integer FISTULA152 = 150111; + + public static final Integer FISTULA153 = 150112; + + public static final Integer FISTULA154 = 150899; + + public static final Integer FISTULA155 = 151765; + + public static final Integer FISTULA156 = 152085; + + public static final Integer FISTULA157 = 152086; + + public static final Integer FISTULA158 = 152300; + + public static final Integer FISTULA159 = 152671; + + public static final Integer FISTULA160 = 155120; + + public static final Integer FISTULA161 = 155197; + + public static final Integer FISTULA162 = 155684; + + public static final Integer FISTULA163 = 155761; + + public static final Integer FISTULA164 = 156140; + + public static final Integer FISTULA165 = 156313; + + public static final Integer FISTULA166 = 156315; + + public static final Integer FISTULA167 = 156316; + + public static final Integer FISTULA168 = 156463; + + public static final Integer FISTULA169 = 156616; + + public static final Integer FISTULA170 = 157329; + + public static final Integer FISTULA171 = 157402; + + public static final Integer FISTULA172 = 157974; + + public static final Integer FISTULA173 = 157980; + + public static final Integer FISTULA174 = 158603; + + public static final Integer FISTULA175 = 158635; + + public static final Integer FISTULA176 = 159919; + + public static final Integer FISTULA177 = 163848; + + public static final Integer FISTULA178 = 163870; + + public static final Integer FISTULA179 = 163871; + + public static final Integer FISTULA180 = 163872; + + // start EPILEPSY const + public static final Integer EPILEPSY_1 = 155; + + public static final Integer EPILEPSY_2 = 1625; + + public static final Integer EPILEPSY_3 = 110876; + + public static final Integer EPILEPSY_4 = 111656; + + public static final Integer EPILEPSY_5 = 112355; + + public static final Integer EPILEPSY_6 = 112455; + + public static final Integer EPILEPSY_7 = 112515; + + public static final Integer EPILEPSY_8 = 112516; + + public static final Integer EPILEPSY_9 = 113375; + + public static final Integer EPILEPSY_10 = 113539; + + public static final Integer EPILEPSY_11 = 113541; + + public static final Integer EPILEPSY_12 = 114320; + + public static final Integer EPILEPSY_13 = 114325; + + public static final Integer EPILEPSY_14 = 115425; + + public static final Integer EPILEPSY_15 = 116266; + + public static final Integer EPILEPSY_16 = 116410; + + public static final Integer EPILEPSY_17 = 116552; + + public static final Integer EPILEPSY_18 = 117849; + + public static final Integer EPILEPSY_19 = 117855; + + public static final Integer EPILEPSY_20 = 117858; + + public static final Integer EPILEPSY_21 = 118560; + + public static final Integer EPILEPSY_22 = 118561; + + public static final Integer EPILEPSY_23 = 120251; + + public static final Integer EPILEPSY_24 = 120738; + + public static final Integer EPILEPSY_25 = 120740; + + public static final Integer EPILEPSY_26 = 121208; + + public static final Integer EPILEPSY_27 = 121209; + + public static final Integer EPILEPSY_28 = 122824; + + public static final Integer EPILEPSY_29 = 123062; + + public static final Integer EPILEPSY_30 = 123073; + + public static final Integer EPILEPSY_31 = 123087; + + public static final Integer EPILEPSY_32 = 125059; + + public static final Integer EPILEPSY_33 = 125177; + + public static final Integer EPILEPSY_34 = 126281; + + public static final Integer EPILEPSY_35 = 126605; + + public static final Integer EPILEPSY_36 = 126874; + + public static final Integer EPILEPSY_37 = 127407; + + public static final Integer EPILEPSY_38 = 128191; + + public static final Integer EPILEPSY_39 = 128433; + + public static final Integer EPILEPSY_40 = 129292; + + public static final Integer EPILEPSY_41 = 130240; + + public static final Integer EPILEPSY_42 = 130745; + + public static final Integer EPILEPSY_43 = 132503; + + public static final Integer EPILEPSY_44 = 133553; + + public static final Integer EPILEPSY_45 = 133555; + + public static final Integer EPILEPSY_46 = 133556; + + public static final Integer EPILEPSY_47 = 133928; + + public static final Integer EPILEPSY_48 = 133929; + + public static final Integer EPILEPSY_49 = 134293; + + public static final Integer EPILEPSY_50 = 136005; + + public static final Integer EPILEPSY_51 = 136389; + + public static final Integer EPILEPSY_52 = 137891; + + public static final Integer EPILEPSY_53 = 137906; + + public static final Integer EPILEPSY_54 = 138960; + + public static final Integer EPILEPSY_55 = 140859; + + public static final Integer EPILEPSY_56 = 141120; + + public static final Integer EPILEPSY_57 = 141122; + + public static final Integer EPILEPSY_58 = 141123; + + public static final Integer EPILEPSY_59 = 141565; + + public static final Integer EPILEPSY_60 = 142913; + + public static final Integer EPILEPSY_61 = 143094; + + public static final Integer EPILEPSY_62 = 143116; + + public static final Integer EPILEPSY_63 = 143117; + + public static final Integer EPILEPSY_64 = 145678; + + public static final Integer EPILEPSY_65 = 145944; + + public static final Integer EPILEPSY_66 = 147455; + + public static final Integer EPILEPSY_67 = 147458; + + public static final Integer EPILEPSY_68 = 147890; + + public static final Integer EPILEPSY_69 = 148493; + + public static final Integer EPILEPSY_70 = 148926; + + public static final Integer EPILEPSY_71 = 152450; + + public static final Integer EPILEPSY_72 = 155255; + + public static final Integer EPILEPSY_73 = 155806; + + public static final Integer EPILEPSY_74 = 156153; + + public static final Integer EPILEPSY_75 = 156154; + + public static final Integer EPILEPSY_76 = 156155; + + public static final Integer EPILEPSY_77 = 156734; + + public static final Integer EPILEPSY_78 = 157343; + + public static final Integer EPILEPSY_79 = 157438; + + public static final Integer EPILEPSY_80 = 157523; + + public static final Integer EPILEPSY_81 = 158764; + + public static final Integer EPILEPSY_82 = 159014; + + public static final Integer EPILEPSY_83 = 159512; + + public static final Integer EPILEPSY_84 = 159546; + + public static final Integer EPILEPSY_85 = 160928; + + public static final Integer EPILEPSY_86 = 161039; + + public static final Integer EPILEPSY_87 = 161040; + + public static final Integer EPILEPSY_88 = 161041; + + public static final Integer EPILEPSY_89 = 161042; + + public static final Integer EPILEPSY_90 = 161043; + + public static final Integer EPILEPSY_91 = 161044; + + public static final Integer EPILEPSY_92 = 161045; + + public static final Integer EPILEPSY_93 = 161046; + + public static final Integer EPILEPSY_94 = 161047; + + public static final Integer EPILEPSY_95 = 161089; + + public static final Integer EPILEPSY_96 = 161090; + + public static final Integer EPILEPSY_97 = 161091; + + public static final Integer EPILEPSY_98 = 161093; + + public static final Integer EPILEPSY_99 = 161098; + + public static final Integer EPILEPSY_100 = 161099; + + public static final Integer EPILEPSY_101 = 161100; + + public static final Integer EPILEPSY_102 = 161383; + + public static final Integer EPILEPSY_103 = 161384; + + public static final Integer EPILEPSY_104 = 161385; + + public static final Integer EPILEPSY_105 = 161386; + + public static final Integer EPILEPSY_106 = 161391; + + public static final Integer EPILEPSY_107 = 161392; + + public static final Integer EPILEPSY_108 = 161394; + + public static final Integer EPILEPSY_109 = 161396; + + // end EPILEPSY + // start CARDIOVASCULAR Consts + public static final Integer CARDIOVASCULAR_1 = 110462; + + public static final Integer CARDIOVASCULAR_2 = 117397; + + public static final Integer CARDIOVASCULAR_3 = 119270; + + public static final Integer CARDIOVASCULAR_4 = 120001; + + public static final Integer CARDIOVASCULAR_5 = 120002; + + public static final Integer CARDIOVASCULAR_6 = 120003; + + public static final Integer CARDIOVASCULAR_7 = 120004; + + public static final Integer CARDIOVASCULAR_8 = 120005; + + public static final Integer CARDIOVASCULAR_9 = 120115; + + public static final Integer CARDIOVASCULAR_10 = 120874; + + public static final Integer CARDIOVASCULAR_11 = 120875; + + public static final Integer CARDIOVASCULAR_12 = 121486; + + public static final Integer CARDIOVASCULAR_13 = 122227; + + public static final Integer CARDIOVASCULAR_14 = 122432; + + public static final Integer CARDIOVASCULAR_15 = 122727; + + public static final Integer CARDIOVASCULAR_16 = 129903; + + public static final Integer CARDIOVASCULAR_17 = 140231; + + public static final Integer CARDIOVASCULAR_18 = 141036; + + public static final Integer CARDIOVASCULAR_19 = 141752; + + public static final Integer CARDIOVASCULAR_20 = 144098; + + public static final Integer CARDIOVASCULAR_21 = 144099; + + public static final Integer CARDIOVASCULAR_22 = 144100; + + public static final Integer CARDIOVASCULAR_23 = 144101; + + public static final Integer CARDIOVASCULAR_24 = 146153; + + public static final Integer CARDIOVASCULAR_25 = 146154; + + public static final Integer CARDIOVASCULAR_26 = 146155; + + public static final Integer CARDIOVASCULAR_27 = 150812; + + public static final Integer CARDIOVASCULAR_28 = 155434; + + public static final Integer CARDIOVASCULAR_29 = 155687; + + //Overweight + public static final Integer OVERWEIGHT1 = 114413; + + public static final Integer OVERWEIGHT2 = 158204; + + //Yellow Fever + public static final Integer YELLOWFEVER_1 = 123557; + + public static final Integer YELLOWFEVER_2 = 127664; + + public static final Integer YELLOWFEVER_3 = 129599; + + public static final Integer YELLOWFEVER_4 = 136391; + + public static final Integer YELLOWFEVER_5 = 149253; + + public static final Integer YELLOWFEVER_6 = 154892; + + public static final Integer YELLOWFEVER_7 = 157324; + + public static final Integer YELLOWFEVER_8 = 159336; + + public static final Integer YELLOWFEVER_9 = 122759; + + //Brucelosis + public static final Integer BRUCELOSIS1 = 121005; + + public static final Integer BRUCELOSIS2 = 121042; + + public static final Integer BRUCELOSIS3 = 129500; + + public static final Integer BRUCELOSIS4 = 138391; + + public static final Integer BRUCELOSIS5 = 146480; + + public static final Integer BRUCELOSIS6 = 146866; + + public static final Integer BRUCELOSIS7 = 155336; + + public static final Integer EAR_INFECTION_0 = 110189; + + public static final Integer EAR_INFECTION_1 = 110889; + + public static final Integer EAR_INFECTION_2 = 117086; + + public static final Integer EAR_INFECTION_3 = 117086; + + public static final Integer EAR_INFECTION_4 = 117087; + + public static final Integer EAR_INFECTION_5 = 123119; + + public static final Integer EAR_INFECTION_6 = 139740; + + public static final Integer EAR_INFECTION_7 = 156628; + + //Physical Disability + public static final Integer PHYSICAL_DISABILITY1 = 110104; + + public static final Integer PHYSICAL_DISABILITY2 = 119485; + + public static final Integer PHYSICAL_DISABILITY3 = 122936; + + public static final Integer PHYSICAL_DISABILITY4 = 152464; + + public static final Integer PHYSICAL_DISABILITY5 = 153343; + + public static final Integer PHYSICAL_DISABILITY6 = 156923; + + public static final Integer PHYSICAL_DISABILITY7 = 164538; + + //Trypanosomiasis + public static final Integer TRYPANOSOMIASIS1 = 124076; + + public static final Integer TRYPANOSOMIASIS2 = 124077; + + public static final Integer TRYPANOSOMIASIS3 = 124078; + + public static final Integer TRYPANOSOMIASIS4 = 124079; + + public static final Integer TRYPANOSOMIASIS5 = 137342; + + public static final Integer TRYPANOSOMIASIS6 = 137343; + + public static final Integer TRYPANOSOMIASIS7 = 137344; + + public static final Integer TRYPANOSOMIASIS8 = 149241; + + //Kalazar + public static final Integer KALAZAR = 129386; + + //Plague + public static final Integer PLAGUE1 = 114093; + + public static final Integer PLAGUE2 = 114120; + + public static final Integer PLAGUE3 = 126687; + + public static final Integer PLAGUE4 = 126882; + + public static final Integer PLAGUE5 = 128493; + + public static final Integer PLAGUE6 = 129694; + + public static final Integer PLAGUE7 = 130003; + + public static final Integer PLAGUE8 = 130095; + + public static final Integer PLAGUE9 = 130096; + + public static final Integer PLAGUE10 = 145971; + + public static final Integer PLAGUE11 = 146858; + + public static final Integer PLAGUE12 = 149270; + + public static final Integer PLAGUE13 = 150738; + + public static final Integer PLAGUE14 = 154809; + + public static final Integer PLAGUE15 = 157238; + + public static final Integer PLAGUE16 = 158375; + + public static final Integer PLAGUE17 = 158376; + + //STI + public static final Integer STI1 = 112992; + + public static final Integer STI2 = 156660; + + public static final Integer STI3 = 160202; + + public static final Integer STI4 = 163771; + + public static final String MOPC_TRAIGE = "98f596cc-5ad1-4c58-91e8-d1ea0329c89d"; + + public static final String DENTAL_OPD = "548bf465-fdfb-43f1-836e-76d0416789bf"; + + public static final String DENTAL_SPECIAL_CLINIC = "30aff715-92de-4662-aa33-fa6b6179fed0"; + + //Dangue fever + public static final Integer Dengue_Shock_Syndrome = 142590; + + public static final Integer Dry_Form_of_Cutaneous_Leishmaniasis = 118825; + + public static final Integer Zoonotic_Form_of_Cutaneous_Leishmaniasis = 122736; + + public static final Integer Wet_Form_of_Cutaneous_Leishmaniasis = 122866; + + public static final Integer Ulcerating_Cutaneous_Leishmaniasis = 123882; + + public static final Integer Recurrent_Cutaneous_Leishmaniasis = 127835; + + public static final Integer Late_Cutaneous_Leishmaniasis = 136110; + + public static final Integer Disseminated_Mucocutaneous_Leishmaniasis = 141897; + + public static final Integer Diffuse_Cutaneous_Leishmaniasis = 142362; + + public static final Integer Cutaneous_Leishmaniasis = 143074; + + public static final Integer Asian_Desert_Cutaneous_Leishmaniasis = 148329; + + public static final Integer American_Cutaneous_Mucocutaneous_Leishmaniasis = 148988; + + public static final Integer Acute_Necrotising_Cutaneous_Leishmaniasis = 149635; + + //Anthrax + public static final Integer Pulmonary_Anthrax = 116937; + + public static final Integer Contact_with_or_Exposure_to_Anthrax = 121554; + + public static final Integer Anthrax = 121555; + + public static final Integer Gastrointestinal_Anthrax = 139588; + + public static final Integer Cutaneous_Anthrax = 143086; + + public static final Integer Anthrax_Septicaemia = 148600; + + public static final Integer Anthrax_Pneumonia = 148601; + + //Dehydration + public static final Integer DEHYDRATION = 991; + + public static final Integer Neonatal_dehydration = 133410; + + public static final Integer Dehydration = 142630; + + public static final Integer severe_dehydration = 154015; + + public static final Integer Moderate_dehydration = 154016; + + public static final Integer Mild_dehydration = 154017; + + //Gastroenteritis + public static final Integer Gastroenteritis_1 = 197; + + public static final Integer Gastroenteritis_2 = 428; + + public static final Integer Gastroenteritis_3 = 900; + + public static final Integer Gastroenteritis_4 = 112749; + + public static final Integer Gastroenteritis_5 = 113172; + + public static final Integer Gastroenteritis_6 = 117050; + + public static final Integer Gastroenteritis_7 = 117889; + + public static final Integer Gastroenteritis_8 = 118586; + + public static final Integer Gastroenteritis_9 = 123113; + + public static final Integer Gastroenteritis_10 = 123114; + + public static final Integer Gastroenteritis_11 = 124445; + + public static final Integer Gastroenteritis_13 = 127943; + + public static final Integer Gastroenteritis_14 = 132860; + + public static final Integer Gastroenteritis_15 = 132941; + + public static final Integer Gastroenteritis_16 = 137284; + + public static final Integer Gastroenteritis_17 = 139591; + + public static final Integer Gastroenteritis_18 = 142379; + + public static final Integer Gastroenteritis_19 = 148023; + + public static final Integer Gastroenteritis_20 = 149097; + + public static final Integer Gastroenteritis_21 = 149098; + + public static final Integer Gastroenteritis_22 = 149725; + + public static final Integer Gastroenteritis_23 = 149727; + + public static final Integer Gastroenteritis_24 = 149779; + + public static final Integer Gastroenteritis_25 = 151875; + + public static final Integer Gastroenteritis_26 = 151876; + + public static final Integer Gastroenteritis_27 = 151877; + + //severe pneumonia + public static final Integer acute_bacterial_pneumonia = 1463; + + public static final Integer Acute_Interstitial_Pneumonia = 111028; + + public static final Integer Chronic_Interstitial_Pneumonia = 116708; + + public static final Integer acute_bronchitis_due_to_Mycoplasma_pneumoniae = 154944; + + public static final Integer acute_mucous_pneumonia = 154964; + + public static final Integer bilateral_pneumonia = 155296; + + public static final Integer neonatal_pneumonia = 157907; + + public static final Integer Acute_bacterial_pneumonia_presumed = 160437; + + public static final Integer Sub_acute_pneumonia_presumed_PCP = 160438; + + //lower tract infection + public static final Integer Lower_Respiratory_Tract_Infection = 135556; + + public static final Integer Chronic_Obstructive_Pulmonary_Disease_with_Acute_Lower_Respiratory_Infection = 152062; + + public static final Integer unspecified_acute_lower_respiratory_infection = 159222; + + public static final Integer RESPIRATORY_TRACT_INFECTION_LOWER = 998; + + public static final Integer RESPIRATORY_TRACT_COVID = 165868; + + //upeer tract infection + public static final Integer UPPER_RESPIRATORY_TRACT_INFECTION = 895; + + public static final Integer WHO_HIV_RECURRENT_UPPER_RESPIRATORY_INFECTIONS = 5331; + + public static final Integer Congenital_Anomaly_of_Upper_Respiratory_System = 120022; + + public static final Integer Congenital_Abnormality_of_Upper_Respiratory_Tract = 120023; + + public static final Integer Benign_Neoplasm_of_Upper_Respiratory_Tract = 121172; + + public static final Integer Viral_Upper_Respiratory_Tract_Infection = 123093; + + public static final Integer Upper_Respiratory_Tract_Obstruction = 123561; + + public static final Integer Upper_Respiratory_Tract_Hypersensitivity_Reaction = 123562; + + public static final Integer Upper_Respiratory_Inflammation_due_to_Fumes_and_or_Vapors = 123563; + + public static final Integer Upper_Respiratory_Inflammation_due_to_Chemical_Fumes = 123564; + + public static final Integer Upper_Respiratory_Infection = 123565; + + public static final Integer Recurrent_Upper_Respiratory_Tract_Infection = 127784; + + public static final Integer Influenzal_Acute_Upper_Respiratory_Infection = 137165; + + public static final Integer Disorder_of_Upper_Respiratory_System = 141964; + + public static final Integer Acute_Upper_Respiratory_Infection_of_Multiple_Sites = 149477; + + public static final Integer Acute_Upper_Respiratory_Infection = 149478; + + public static final Integer COVID = 165633; + + //Neutal Sepsis + public static final Integer NEUTAL_SEPISIS = 226; + + //Down's syndrome + public static final Integer DOWN_SYNDROME = 144481; + + //Reumonic fever + public static final Integer REUMONIC_FEVER_1 = 1870; + + public static final Integer REUMONIC_FEVER_2 = 113228; + + public static final Integer REUMONIC_FEVER_3 = 113229; + + public static final Integer REUMONIC_FEVER_4 = 113230; + + public static final Integer REUMONIC_FEVER_5 = 121843; + + public static final Integer REUMONIC_FEVER_6 = 127447; + + public static final Integer REUMONIC_FEVER_7 = 145182; + + public static final Integer REUMONIC_FEVER_8 = 149533; + + public static final Integer REUMONIC_FEVER_9 = 149939; + + public static final Integer REUMONIC_FEVER_10 = 152161; + + public static final Integer REUMONIC_FEVER_11 = 152456; + + public static final Integer REUMONIC_FEVER_12 = 156659; + + // + public static final Integer Hypoxaemia = 117312; + + //cHILDHOOD CANCERS + public static final Integer CCANCER_1 = 216; + + public static final Integer CCANCER_2 = 217; + + public static final Integer CCANCER_3 = 112679; + + public static final Integer CCANCER_4 = 112683; + + public static final Integer CCANCER_5 = 112685; + + public static final Integer CCANCER_6 = 115436; + + public static final Integer CCANCER_7 = 115438; + + public static final Integer CCANCER_8 = 115714; + + public static final Integer CCANCER_9 = 116170; + + public static final Integer CCANCER_10 = 116174; + + public static final Integer CCANCER_11 = 116327; + + public static final Integer CCANCER_12 = 116328; + + public static final Integer CCANCER_13 = 116329; + + public static final Integer CCANCER_14 = 116331; + + public static final Integer CCANCER_15 = 116332; + + public static final Integer CCANCER_16 = 121711; + + public static final Integer CCANCER_17 = 121964; + + public static final Integer CCANCER_18 = 121966; + + public static final Integer CCANCER_19 = 121975; + + public static final Integer CCANCER_20 = 121977; + + public static final Integer CCANCER_21 = 121979; + + public static final Integer CCANCER_22 = 121994; + + public static final Integer CCANCER_23 = 121996; + + public static final Integer CCANCER_24 = 122004; + + public static final Integer CCANCER_25 = 125024; + + public static final Integer CCANCER_26 = 125025; + + public static final Integer CCANCER_27 = 125732; + + public static final Integer CCANCER_28 = 130085; + + public static final Integer CCANCER_29 = 134453; + + public static final Integer CCANCER_30 = 136139; + + public static final Integer CCANCER_31 = 141018; + + public static final Integer CCANCER_32 = 145280; + + public static final Integer CCANCER_33 = 145284; + + public static final Integer CCANCER_34 = 145294; + + public static final Integer CCANCER_35 = 145299; + + public static final Integer CCANCER_36 = 147952; + + public static final Integer CCANCER_37 = 148134; + + public static final Integer CCANCER_38 = 149330; + + public static final Integer CCANCER_39 = 149564; + + public static final Integer CCANCER_40 = 149649; + + public static final Integer CCANCER_41 = 149654; + + public static final Integer CCANCER_42 = 149665; + + public static final Integer CCANCER_43 = 149828; + + public static final Integer CCANCER_44 = 151838; + + public static final Integer CCANCER_45 = 152915; + + public static final Integer CCANCER_46 = 153563; + + public static final Integer CCANCER_47 = 153788; + + public static final Integer CCANCER_48 = 155225; + + public static final Integer CCANCER_49 = 155559; + + public static final Integer CCANCER_50 = 155576; + + public static final Integer CCANCER_51 = 156169; + + public static final Integer CCANCER_52 = 157708; + + public static final Integer CCANCER_53 = 158377; + + public static final Integer CCANCER_54 = 161077; + + public static final Integer CCANCER_55 = 161220; + + public static final Integer CCANCER_56 = 115835; + + public static final Integer CCANCER_57 = 115836; + + public static final Integer CCANCER_58 = 126949; + + public static final Integer CCANCER_59 = 133288; + + public static final Integer CCANCER_60 = 134951; + + public static final Integer CCANCER_61 = 157349; + + public static final Integer CCANCER_62 = 158317; + + public static final Integer CCANCER_63 = 133154; + + public static final Integer CCANCER_64 = 116088; + + public static final Integer CCANCER_65 = 116090; + + public static final Integer CCANCER_66 = 116092; + + public static final Integer CCANCER_67 = 116094; + + public static final Integer CCANCER_68 = 116096; + + public static final Integer CCANCER_69 = 116098; + + public static final Integer CCANCER_70 = 116100; + + public static final Integer CCANCER_71 = 116102; + + public static final Integer CCANCER_72 = 135457; + + public static final Integer CCANCER_73 = 113240; + + public static final Integer CCANCER_74 = 127466; + + public static final Integer CCANCER_75 = 130064; + + public static final Integer CCANCER_76 = 147050; + + public static final Integer CCANCER_77 = 149025; + + public static final Integer CCANCER_78 = 127527; + + public static final Integer CCANCER_79 = 157588; + + public static final Integer CCANCER_80 = 159349; + + //filling concepts ids + public static final Integer Temporary_Filling_Per_Tooth = 1000342; + + public static final Integer Amalgam_filling = 1000300; + + public static final Integer Composite_Filling = 1000306; + + public static final Integer Glass_Lonomer_Filling = 1000317; + + //extraction concept ids + public static final Integer Extra_Tooth_extraction = 1000315; + + public static final Integer Tooth_Extraction_simple = 1000344; + + public static final Integer Excision_of_Tooth = 1000314; + + //Medical examination + public static final Integer MEDICAL_EXAMINATION_ROUTINE = 432; + + public static final Integer Student_Medical_Assessment = 1000446; + + //Dressing + public static final Integer CLEAN_AND_DRESSING = 441; + + public static final Integer Suture_wound_with_dressing = 1934; + + public static final Integer Wound_Dressing = 1935; + + public static final Integer Change_of_Dressing = 151596; + + public static final Integer Burn_dressing = 161668; + + public static final Integer Dressing_change_under_anesthesia = 161945; + + public static final Integer Dressing_change_for_open_wound_of_breast = 162210; + + public static final Integer Cleaning_and_Dressing = 1000242; + + public static final Integer Casualty_Dressing = 1000245; + + public static final Integer ENT_Dressing = 1000356; + + public static final Integer Removal_Of_Ear_Dressing = 1000363; + + public static final Integer Wound_Dressing_ENT = 1000368; + + public static final Integer Dressing_Per_Session_Female_Medical_Ward = 1000424; + + //Removal of stitches + public static final Integer Removal_Of_Stitches = 1000365; + + public static final Integer Removal_Of_Corneal_Stitches = 1000397; + + //injection + public static final Integer INJECTION = 1000251; + + public static final Integer Sub_Conjuctiral_Sub_Tenon_Injections = 1000399; + + public static final Integer Intra_arterial_injection = 164677; + + public static final Integer Intralesional_injection = 164000; + + //Stitching + public static final Integer STITCHING = 1000251; + + public static final Integer Stitching_Casualty = 1000260; + + public static final Integer Stitching_In_Minor_Theatre = 1000261; + + public static final Integer Dental_stitching = 1000340; + + public static final Integer Diarrhoea_with_no_dehydration = 168737; + + public static final Integer Diarrhoea_with_some_dehydration = 166569; + + public static final Integer Diarrhoea_with_severe_dehydration = 168736; + + } + +// public static final Concept Diarrhoea_with_no_dehydration_concept = getConcept(__DiagnosisConcepts.Diarrhoea_with_no_dehydration); +// +// public static final Concept Diarrhoea_with_some_dehydration_concept = getConcept(__DiagnosisConcepts.Diarrhoea_with_some_dehydration); +// +// public static final Concept Diarrhoea_with_severe_dehydration_concept = getConcept(__DiagnosisConcepts.Diarrhoea_with_severe_dehydration); + + /** + * @return the Concept that matches the passed uuid, name, source:code mapping, or primary key + * id + */ + public static Concept getConcept(String lookup) { + Concept c = Context.getConceptService().getConceptByUuid(lookup); + if (c == null) { + c = Context.getConceptService().getConceptByName(lookup); + } + if (c == null) { + try { + String[] split = lookup.split("\\:"); + if (split.length == 2) { + c = Context.getConceptService().getConceptByMapping(split[1], split[0]); + } + } + catch (Exception e) {} + } + if (c == null) { + try { + c = Context.getConceptService().getConcept(Integer.parseInt(lookup)); + } + catch (Exception e) { + throw new RuntimeException(e.toString()); + } + } + return c; + } + + public static Concept getConcept(Integer lookup) { + + return Context.getConceptService().getConcept(lookup); + } + } + + diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java new file mode 100644 index 0000000000..cb676d4cd0 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java @@ -0,0 +1,4020 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +import org.openmrs.Concept; + +import static org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisConcepts.getConcept; + +public class DiagnosisLists { + + public static List getDiarrheaDiagnosisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CHRONIC_DIARRHOEA, + DiagnosisConcepts._DiagnosisConcepts.ACUTE_DIARRHEA, DiagnosisConcepts._DiagnosisConcepts.FUNCTIONAL_DIARRHOEA, + DiagnosisConcepts._DiagnosisConcepts.Hemorrhagic_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.DIARRHOEA, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_for_less_than_one_month, + DiagnosisConcepts._DiagnosisConcepts.CHRONIC_DIARRHEA, + DiagnosisConcepts._DiagnosisConcepts.WHO_HIV_CRYPTOSPORIDIOSIS_WITH_DIARRHEA, + DiagnosisConcepts._DiagnosisConcepts.Clostridium_Difficile_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Antibiotic_Associated_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Psychogenic_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Protozoal_Diarrhoea, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_of_Infectious_Origin, + DiagnosisConcepts._DiagnosisConcepts.Infectious_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_Resulting_from_Infection_of_the_Bowel_Mucosa, + DiagnosisConcepts._DiagnosisConcepts.Campylobacter_Diarrhoea, + DiagnosisConcepts._DiagnosisConcepts.Dyspeptic_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Allergic_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Traveler_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Toddler_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Severe_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Secretory_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Raw_Milk_Associated_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Postcholecystectomy_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Post_Vagotomy_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_for_more_2_weeks, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_for_2_weeks, + DiagnosisConcepts._DiagnosisConcepts.postvagotomy_diarrhea, + DiagnosisConcepts._DiagnosisConcepts.nausea_vomiting_and_diarrhea, + DiagnosisConcepts._DiagnosisConcepts.diarrhea_due_to_drug, + DiagnosisConcepts._DiagnosisConcepts.Irritable_Bowel_Syndrome_with_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.CHRONIC_DIARRHEA_1, + DiagnosisConcepts._DiagnosisConcepts.Acute_diarrhea_more_than_three_stools_in_24_hours, + DiagnosisConcepts._DiagnosisConcepts.Chronic_Diarrhea_of_Infants_and_Young_Children, + DiagnosisConcepts._DiagnosisConcepts.Diarrhoea_chronic_1_month_unexplained, + DiagnosisConcepts._DiagnosisConcepts.Chronic_diarrhea_of_unknown_origin, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Secretory_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Secretory_Diarrhea_Chloride_Type, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Secretory_Diarrhea_Sodium_Type, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_2, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_After_Gastrointestinal_Tract_Surgery, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_due_to_Alcohol_Intake, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_due_to_Staphylococcus, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_in_Diabetes, + DiagnosisConcepts._DiagnosisConcepts.Diarrhea_of_presumed_infectious_origin, + DiagnosisConcepts._DiagnosisConcepts.Dietetic_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Drug_and_Toxin_Induced_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Dysenteric_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Epidemic_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Functional_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Bloody_diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Hemorrhagic_diarrhea, DiagnosisConcepts._DiagnosisConcepts.Hill_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Diabetic_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Infective_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Neonatal_Diarrhea, DiagnosisConcepts._DiagnosisConcepts.Nervous_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Non_Infective_Diarrhea, + DiagnosisConcepts._DiagnosisConcepts.Osmotic_Diarrhea); + } + + public static List getTuberculosisDiagnosisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ACUTE_MILIARY_TUBERCULOSIS_UNSPECIFIED, + DiagnosisConcepts._DiagnosisConcepts.EXTRAPULMONARY_TUBERCULOSIS, + DiagnosisConcepts._DiagnosisConcepts.MULTI_DRUG_RESISTANT_TUBERCULOSIS, + DiagnosisConcepts._DiagnosisConcepts.PULMONARY_TUBERCULOSIS, + DiagnosisConcepts._DiagnosisConcepts.TUBERCULOSIS_OF_THE_GENITOURINARY_SYSTEM, + DiagnosisConcepts._DiagnosisConcepts.TUBERCULOSIS_OF_OTHER_ORGANS, + DiagnosisConcepts._DiagnosisConcepts.TUBERCULOSIS_IN_PREGNANCY, + DiagnosisConcepts._DiagnosisConcepts.ACUTE_MILIARY_TUBERCULOSIS_UNSPECIFIED, + DiagnosisConcepts._DiagnosisConcepts.TUBERCULOSIS, DiagnosisConcepts._DiagnosisConcepts.MILIARY_TUBERCULOSIS, + DiagnosisConcepts._DiagnosisConcepts.RESPIRATORY_TUBERCULOSIS, DiagnosisConcepts._DiagnosisConcepts.EPTB, + DiagnosisConcepts._DiagnosisConcepts.HIV_STAGING_TUBERCULOSIS_WITHIN_YEAR, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_Polyserositis, + DiagnosisConcepts._DiagnosisConcepts.Tuberculous_Pleurisy_in_Primary_Progressive_Tuberculosis, + DiagnosisConcepts._DiagnosisConcepts.Erythema_Nodosum_with_Hypersensitivity_Reaction_in_Tuberculosis, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_of_Joint, + DiagnosisConcepts._DiagnosisConcepts.Addisons_Disease_due_to_Tuberculosis, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_of_Urinary_Organs, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_of_Ureter, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_of_Thyroid_Gland, + DiagnosisConcepts._DiagnosisConcepts.Tuberculosis_of_Spleen, DiagnosisConcepts._DiagnosisConcepts.TSS, + DiagnosisConcepts._DiagnosisConcepts.TSS1, DiagnosisConcepts._DiagnosisConcepts.TSS2, + DiagnosisConcepts._DiagnosisConcepts.TSS3, DiagnosisConcepts._DiagnosisConcepts.TSS4, + DiagnosisConcepts._DiagnosisConcepts.TSS5, DiagnosisConcepts._DiagnosisConcepts.TSS6, + DiagnosisConcepts._DiagnosisConcepts.TB1, DiagnosisConcepts._DiagnosisConcepts.TB2, + DiagnosisConcepts._DiagnosisConcepts.TB3, DiagnosisConcepts._DiagnosisConcepts.TB4, + DiagnosisConcepts._DiagnosisConcepts.TB5, DiagnosisConcepts._DiagnosisConcepts.TB6, + DiagnosisConcepts._DiagnosisConcepts.TB7, DiagnosisConcepts._DiagnosisConcepts.TB8, + DiagnosisConcepts._DiagnosisConcepts.TB9, DiagnosisConcepts._DiagnosisConcepts.TB10, + DiagnosisConcepts._DiagnosisConcepts.TB11, DiagnosisConcepts._DiagnosisConcepts.TB12, + DiagnosisConcepts._DiagnosisConcepts.TB13, DiagnosisConcepts._DiagnosisConcepts.TB14, + DiagnosisConcepts._DiagnosisConcepts.TB15, DiagnosisConcepts._DiagnosisConcepts.TB16, + DiagnosisConcepts._DiagnosisConcepts.TB17, DiagnosisConcepts._DiagnosisConcepts.TB18, + DiagnosisConcepts._DiagnosisConcepts.TB19, DiagnosisConcepts._DiagnosisConcepts.TB20, + DiagnosisConcepts._DiagnosisConcepts.TB21, DiagnosisConcepts._DiagnosisConcepts.TB22, + DiagnosisConcepts._DiagnosisConcepts.TB23, DiagnosisConcepts._DiagnosisConcepts.TB24, + DiagnosisConcepts._DiagnosisConcepts.TB25, DiagnosisConcepts._DiagnosisConcepts.TB26, + DiagnosisConcepts._DiagnosisConcepts.TB27, DiagnosisConcepts._DiagnosisConcepts.TB28, + DiagnosisConcepts._DiagnosisConcepts.TB29, DiagnosisConcepts._DiagnosisConcepts.TB30, + DiagnosisConcepts._DiagnosisConcepts.TB31, DiagnosisConcepts._DiagnosisConcepts.TB32, + DiagnosisConcepts._DiagnosisConcepts.TB33, DiagnosisConcepts._DiagnosisConcepts.TB34, + DiagnosisConcepts._DiagnosisConcepts.TB35, DiagnosisConcepts._DiagnosisConcepts.TB36, + DiagnosisConcepts._DiagnosisConcepts.TB37, DiagnosisConcepts._DiagnosisConcepts.TB38, + DiagnosisConcepts._DiagnosisConcepts.TB39, DiagnosisConcepts._DiagnosisConcepts.TB40, + DiagnosisConcepts._DiagnosisConcepts.TB41, DiagnosisConcepts._DiagnosisConcepts.TB42, + DiagnosisConcepts._DiagnosisConcepts.TB43, DiagnosisConcepts._DiagnosisConcepts.TB44, + DiagnosisConcepts._DiagnosisConcepts.TB44, DiagnosisConcepts._DiagnosisConcepts.TB45, + DiagnosisConcepts._DiagnosisConcepts.TB46, DiagnosisConcepts._DiagnosisConcepts.TB47, + DiagnosisConcepts._DiagnosisConcepts.TB48, DiagnosisConcepts._DiagnosisConcepts.TB49, + DiagnosisConcepts._DiagnosisConcepts.TB50, DiagnosisConcepts._DiagnosisConcepts.TB51, + DiagnosisConcepts._DiagnosisConcepts.TB52, DiagnosisConcepts._DiagnosisConcepts.TB53, + DiagnosisConcepts._DiagnosisConcepts.TB54, DiagnosisConcepts._DiagnosisConcepts.TB55, + DiagnosisConcepts._DiagnosisConcepts.TB56, DiagnosisConcepts._DiagnosisConcepts.TB57, + DiagnosisConcepts._DiagnosisConcepts.TB58, DiagnosisConcepts._DiagnosisConcepts.TB59, + DiagnosisConcepts._DiagnosisConcepts.TB60, DiagnosisConcepts._DiagnosisConcepts.TB61, + DiagnosisConcepts._DiagnosisConcepts.TB62, DiagnosisConcepts._DiagnosisConcepts.TB63, + DiagnosisConcepts._DiagnosisConcepts.TB64, DiagnosisConcepts._DiagnosisConcepts.TB65, + DiagnosisConcepts._DiagnosisConcepts.TB66, DiagnosisConcepts._DiagnosisConcepts.TB67, + DiagnosisConcepts._DiagnosisConcepts.TB68, DiagnosisConcepts._DiagnosisConcepts.TB69, + DiagnosisConcepts._DiagnosisConcepts.TB70, DiagnosisConcepts._DiagnosisConcepts.TB71, + DiagnosisConcepts._DiagnosisConcepts.TB72, DiagnosisConcepts._DiagnosisConcepts.TB73, + DiagnosisConcepts._DiagnosisConcepts.TB74, DiagnosisConcepts._DiagnosisConcepts.TB75, + DiagnosisConcepts._DiagnosisConcepts.TB76, DiagnosisConcepts._DiagnosisConcepts.TB77, + DiagnosisConcepts._DiagnosisConcepts.TB78, DiagnosisConcepts._DiagnosisConcepts.TB79, + DiagnosisConcepts._DiagnosisConcepts.TB80, DiagnosisConcepts._DiagnosisConcepts.TB81, + DiagnosisConcepts._DiagnosisConcepts.TB82, DiagnosisConcepts._DiagnosisConcepts.TB83, + DiagnosisConcepts._DiagnosisConcepts.TB84, DiagnosisConcepts._DiagnosisConcepts.TB85, + DiagnosisConcepts._DiagnosisConcepts.TB86, DiagnosisConcepts._DiagnosisConcepts.TB87, + DiagnosisConcepts._DiagnosisConcepts.TB88, DiagnosisConcepts._DiagnosisConcepts.TB89, + DiagnosisConcepts._DiagnosisConcepts.TB90, DiagnosisConcepts._DiagnosisConcepts.TB91, + DiagnosisConcepts._DiagnosisConcepts.TB92, DiagnosisConcepts._DiagnosisConcepts.TB93, + DiagnosisConcepts._DiagnosisConcepts.TB94, DiagnosisConcepts._DiagnosisConcepts.TB95, + DiagnosisConcepts._DiagnosisConcepts.TB96, DiagnosisConcepts._DiagnosisConcepts.TB97, + DiagnosisConcepts._DiagnosisConcepts.TB98, DiagnosisConcepts._DiagnosisConcepts.TB99, + DiagnosisConcepts._DiagnosisConcepts.TB100, DiagnosisConcepts._DiagnosisConcepts.TB101, + DiagnosisConcepts._DiagnosisConcepts.TB102, DiagnosisConcepts._DiagnosisConcepts.TB103, + DiagnosisConcepts._DiagnosisConcepts.TB104, DiagnosisConcepts._DiagnosisConcepts.TB105, + DiagnosisConcepts._DiagnosisConcepts.TB106, DiagnosisConcepts._DiagnosisConcepts.TB107, + DiagnosisConcepts._DiagnosisConcepts.TB108, DiagnosisConcepts._DiagnosisConcepts.TB109, + DiagnosisConcepts._DiagnosisConcepts.TB110, DiagnosisConcepts._DiagnosisConcepts.TB111, + DiagnosisConcepts._DiagnosisConcepts.TB112, DiagnosisConcepts._DiagnosisConcepts.TB113, + DiagnosisConcepts._DiagnosisConcepts.TB114, DiagnosisConcepts._DiagnosisConcepts.TB115, + DiagnosisConcepts._DiagnosisConcepts.TB116, DiagnosisConcepts._DiagnosisConcepts.TB117, + DiagnosisConcepts._DiagnosisConcepts.TB118, DiagnosisConcepts._DiagnosisConcepts.TB119, + DiagnosisConcepts._DiagnosisConcepts.TB120, DiagnosisConcepts._DiagnosisConcepts.TB121, + DiagnosisConcepts._DiagnosisConcepts.TB122, DiagnosisConcepts._DiagnosisConcepts.TB123, + DiagnosisConcepts._DiagnosisConcepts.TB124, DiagnosisConcepts._DiagnosisConcepts.TB125, + DiagnosisConcepts._DiagnosisConcepts.TB126, DiagnosisConcepts._DiagnosisConcepts.TB127, + DiagnosisConcepts._DiagnosisConcepts.TB128, DiagnosisConcepts._DiagnosisConcepts.TB129, + DiagnosisConcepts._DiagnosisConcepts.TB130, DiagnosisConcepts._DiagnosisConcepts.TB131, + DiagnosisConcepts._DiagnosisConcepts.TB132, DiagnosisConcepts._DiagnosisConcepts.TB133, + DiagnosisConcepts._DiagnosisConcepts.TB134, DiagnosisConcepts._DiagnosisConcepts.TB135, + DiagnosisConcepts._DiagnosisConcepts.TB136, DiagnosisConcepts._DiagnosisConcepts.TB137, + DiagnosisConcepts._DiagnosisConcepts.TB138, DiagnosisConcepts._DiagnosisConcepts.TB139, + DiagnosisConcepts._DiagnosisConcepts.TB140, DiagnosisConcepts._DiagnosisConcepts.TB141, + DiagnosisConcepts._DiagnosisConcepts.TB142, DiagnosisConcepts._DiagnosisConcepts.TB143, + DiagnosisConcepts._DiagnosisConcepts.TB144, DiagnosisConcepts._DiagnosisConcepts.TB145, + DiagnosisConcepts._DiagnosisConcepts.TB146, DiagnosisConcepts._DiagnosisConcepts.TB147, + DiagnosisConcepts._DiagnosisConcepts.TB148, DiagnosisConcepts._DiagnosisConcepts.TB149, + DiagnosisConcepts._DiagnosisConcepts.TB150, DiagnosisConcepts._DiagnosisConcepts.TB151, + DiagnosisConcepts._DiagnosisConcepts.TB152, DiagnosisConcepts._DiagnosisConcepts.TB153, + DiagnosisConcepts._DiagnosisConcepts.TB154, DiagnosisConcepts._DiagnosisConcepts.TB155, + DiagnosisConcepts._DiagnosisConcepts.TB156, DiagnosisConcepts._DiagnosisConcepts.TB157, + DiagnosisConcepts._DiagnosisConcepts.TB158, DiagnosisConcepts._DiagnosisConcepts.TB159, + DiagnosisConcepts._DiagnosisConcepts.TB160, DiagnosisConcepts._DiagnosisConcepts.TB161, + DiagnosisConcepts._DiagnosisConcepts.TB162, DiagnosisConcepts._DiagnosisConcepts.TB163, + DiagnosisConcepts._DiagnosisConcepts.TB164, DiagnosisConcepts._DiagnosisConcepts.TB165, + DiagnosisConcepts._DiagnosisConcepts.TB166, DiagnosisConcepts._DiagnosisConcepts.TB167, + DiagnosisConcepts._DiagnosisConcepts.TB168, DiagnosisConcepts._DiagnosisConcepts.TB169, + DiagnosisConcepts._DiagnosisConcepts.TB170, DiagnosisConcepts._DiagnosisConcepts.TB171, + DiagnosisConcepts._DiagnosisConcepts.TB172, DiagnosisConcepts._DiagnosisConcepts.TB173, + DiagnosisConcepts._DiagnosisConcepts.TB174, DiagnosisConcepts._DiagnosisConcepts.TB175, + DiagnosisConcepts._DiagnosisConcepts.TB176, DiagnosisConcepts._DiagnosisConcepts.TB177, + DiagnosisConcepts._DiagnosisConcepts.TB178, DiagnosisConcepts._DiagnosisConcepts.TB179, + DiagnosisConcepts._DiagnosisConcepts.TB180, DiagnosisConcepts._DiagnosisConcepts.TB181, + DiagnosisConcepts._DiagnosisConcepts.TB182, DiagnosisConcepts._DiagnosisConcepts.TB183, + DiagnosisConcepts._DiagnosisConcepts.TB184, DiagnosisConcepts._DiagnosisConcepts.TB185, + DiagnosisConcepts._DiagnosisConcepts.TB186, DiagnosisConcepts._DiagnosisConcepts.TB187, + DiagnosisConcepts._DiagnosisConcepts.TB188, DiagnosisConcepts._DiagnosisConcepts.TB189, + DiagnosisConcepts._DiagnosisConcepts.TB190, DiagnosisConcepts._DiagnosisConcepts.TB191, + DiagnosisConcepts._DiagnosisConcepts.TB192, DiagnosisConcepts._DiagnosisConcepts.TB193, + DiagnosisConcepts._DiagnosisConcepts.TB194, DiagnosisConcepts._DiagnosisConcepts.TB195, + DiagnosisConcepts._DiagnosisConcepts.TB196, DiagnosisConcepts._DiagnosisConcepts.TB197, + DiagnosisConcepts._DiagnosisConcepts.TB198, DiagnosisConcepts._DiagnosisConcepts.TB199, + DiagnosisConcepts._DiagnosisConcepts.TB200, DiagnosisConcepts._DiagnosisConcepts.TB201, + DiagnosisConcepts._DiagnosisConcepts.TB202, DiagnosisConcepts._DiagnosisConcepts.TB204, + DiagnosisConcepts._DiagnosisConcepts.TB205, DiagnosisConcepts._DiagnosisConcepts.TB203, + DiagnosisConcepts._DiagnosisConcepts.TB206, DiagnosisConcepts._DiagnosisConcepts.TB207, + DiagnosisConcepts._DiagnosisConcepts.TB208, DiagnosisConcepts._DiagnosisConcepts.TB209, + DiagnosisConcepts._DiagnosisConcepts.TB210, DiagnosisConcepts._DiagnosisConcepts.TB211, + DiagnosisConcepts._DiagnosisConcepts.TB212, DiagnosisConcepts._DiagnosisConcepts.TB213, + DiagnosisConcepts._DiagnosisConcepts.TB214, DiagnosisConcepts._DiagnosisConcepts.TB215, + DiagnosisConcepts._DiagnosisConcepts.TB216, DiagnosisConcepts._DiagnosisConcepts.TB217, + DiagnosisConcepts._DiagnosisConcepts.TB218, DiagnosisConcepts._DiagnosisConcepts.TB219, + DiagnosisConcepts._DiagnosisConcepts.TB220, DiagnosisConcepts._DiagnosisConcepts.TB221, + DiagnosisConcepts._DiagnosisConcepts.TB222, DiagnosisConcepts._DiagnosisConcepts.TB223, + DiagnosisConcepts._DiagnosisConcepts.TB224, DiagnosisConcepts._DiagnosisConcepts.TB225, + DiagnosisConcepts._DiagnosisConcepts.TB226, DiagnosisConcepts._DiagnosisConcepts.TB227, + DiagnosisConcepts._DiagnosisConcepts.TB228, DiagnosisConcepts._DiagnosisConcepts.TB229, + DiagnosisConcepts._DiagnosisConcepts.TB230, DiagnosisConcepts._DiagnosisConcepts.TB231, + DiagnosisConcepts._DiagnosisConcepts.TB232, DiagnosisConcepts._DiagnosisConcepts.TB233, + DiagnosisConcepts._DiagnosisConcepts.TB234, DiagnosisConcepts._DiagnosisConcepts.TB235, + DiagnosisConcepts._DiagnosisConcepts.TB236, DiagnosisConcepts._DiagnosisConcepts.TB237, + DiagnosisConcepts._DiagnosisConcepts.TB238, DiagnosisConcepts._DiagnosisConcepts.TB239, + DiagnosisConcepts._DiagnosisConcepts.TB240, DiagnosisConcepts._DiagnosisConcepts.TB241, + DiagnosisConcepts._DiagnosisConcepts.TB242, DiagnosisConcepts._DiagnosisConcepts.TB243, + DiagnosisConcepts._DiagnosisConcepts.TB244, DiagnosisConcepts._DiagnosisConcepts.TB245, + DiagnosisConcepts._DiagnosisConcepts.TB246, DiagnosisConcepts._DiagnosisConcepts.TB247, + DiagnosisConcepts._DiagnosisConcepts.TB248, DiagnosisConcepts._DiagnosisConcepts.TB249, + DiagnosisConcepts._DiagnosisConcepts.TB250, DiagnosisConcepts._DiagnosisConcepts.TB251, + DiagnosisConcepts._DiagnosisConcepts.TB252, DiagnosisConcepts._DiagnosisConcepts.TB253, + DiagnosisConcepts._DiagnosisConcepts.TB254, DiagnosisConcepts._DiagnosisConcepts.TB255, + DiagnosisConcepts._DiagnosisConcepts.TB256, DiagnosisConcepts._DiagnosisConcepts.TB257, + DiagnosisConcepts._DiagnosisConcepts.TB258, DiagnosisConcepts._DiagnosisConcepts.TB259, + DiagnosisConcepts._DiagnosisConcepts.TB260, DiagnosisConcepts._DiagnosisConcepts.TB261, + DiagnosisConcepts._DiagnosisConcepts.TB262, DiagnosisConcepts._DiagnosisConcepts.TB263, + DiagnosisConcepts._DiagnosisConcepts.TB264, DiagnosisConcepts._DiagnosisConcepts.TB265, + DiagnosisConcepts._DiagnosisConcepts.TB266, DiagnosisConcepts._DiagnosisConcepts.TB267, + DiagnosisConcepts._DiagnosisConcepts.TB268, DiagnosisConcepts._DiagnosisConcepts.TB269, + DiagnosisConcepts._DiagnosisConcepts.TB270, DiagnosisConcepts._DiagnosisConcepts.TB271, + DiagnosisConcepts._DiagnosisConcepts.TB272, DiagnosisConcepts._DiagnosisConcepts.TB273, + DiagnosisConcepts._DiagnosisConcepts.TB274, DiagnosisConcepts._DiagnosisConcepts.TB275, + DiagnosisConcepts._DiagnosisConcepts.TB276, DiagnosisConcepts._DiagnosisConcepts.TB277, + DiagnosisConcepts._DiagnosisConcepts.TB278, DiagnosisConcepts._DiagnosisConcepts.TB279, + DiagnosisConcepts._DiagnosisConcepts.TB280, DiagnosisConcepts._DiagnosisConcepts.TB281, + DiagnosisConcepts._DiagnosisConcepts.TB282, DiagnosisConcepts._DiagnosisConcepts.TB283, + DiagnosisConcepts._DiagnosisConcepts.TB284, DiagnosisConcepts._DiagnosisConcepts.TB285, + DiagnosisConcepts._DiagnosisConcepts.TB286, DiagnosisConcepts._DiagnosisConcepts.TB287, + DiagnosisConcepts._DiagnosisConcepts.TB288, DiagnosisConcepts._DiagnosisConcepts.TB289, + DiagnosisConcepts._DiagnosisConcepts.TB290, DiagnosisConcepts._DiagnosisConcepts.TB291, + DiagnosisConcepts._DiagnosisConcepts.TB292, DiagnosisConcepts._DiagnosisConcepts.TB293, + DiagnosisConcepts._DiagnosisConcepts.TB294, DiagnosisConcepts._DiagnosisConcepts.TB295, + DiagnosisConcepts._DiagnosisConcepts.TB296, DiagnosisConcepts._DiagnosisConcepts.TB297, + DiagnosisConcepts._DiagnosisConcepts.TB298, DiagnosisConcepts._DiagnosisConcepts.TB299, + DiagnosisConcepts._DiagnosisConcepts.TB300, DiagnosisConcepts._DiagnosisConcepts.TB301, + DiagnosisConcepts._DiagnosisConcepts.TB302 + + ); + } + + public static List getDysenteryList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DYSENTERY, + DiagnosisConcepts._DiagnosisConcepts.AMOEBIC_DYSENTERY, DiagnosisConcepts._DiagnosisConcepts.SHIGELLA_DYSENTERY, + DiagnosisConcepts._DiagnosisConcepts.BACILLARY_DYSENTERY, DiagnosisConcepts._DiagnosisConcepts.Viral_Dysentery, + DiagnosisConcepts._DiagnosisConcepts.Haemorrhagic_Dysentery, + DiagnosisConcepts._DiagnosisConcepts.Catarrhal_Dysentery, + DiagnosisConcepts._DiagnosisConcepts.Acute_Amebic_Dysentery_without_Abscess, + DiagnosisConcepts._DiagnosisConcepts.Joint_problem_following_dysentery); + } + + public static List getCholeraList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DIARRHEA_CHOLERA, + DiagnosisConcepts._DiagnosisConcepts.CHOLERA, + DiagnosisConcepts._DiagnosisConcepts.Cholera_due_to_Vibrio_Cholerae, + DiagnosisConcepts._DiagnosisConcepts.Need_for_Vaccination_for_Cholera, + DiagnosisConcepts._DiagnosisConcepts.Pseudopancreatic_Cholera_Syndrome, + DiagnosisConcepts._DiagnosisConcepts.Poisoning_by_Cholera_Vaccine, + DiagnosisConcepts._DiagnosisConcepts.Hog_Cholera, + DiagnosisConcepts._DiagnosisConcepts.Cholera_due_to_Vibrio_Cholerae_El_Tor, + DiagnosisConcepts._DiagnosisConcepts.Cholera_Contact, DiagnosisConcepts._DiagnosisConcepts.Cholera_Carrier, + DiagnosisConcepts._DiagnosisConcepts.CHOLERA_1, + DiagnosisConcepts._DiagnosisConcepts.Adverse_Reaction_to_Cholera_Vaccine, + DiagnosisConcepts._DiagnosisConcepts.accidental_cholera_vaccine_poisoning, + DiagnosisConcepts._DiagnosisConcepts.cholera_due_to_vibrio_cholerae_01_biovar_cholerae, + DiagnosisConcepts._DiagnosisConcepts.cholera_due_to_vibrio_cholerae_01_biovar_El_Tor, + DiagnosisConcepts._DiagnosisConcepts.cholera_vaccine_adverse_reaction, + DiagnosisConcepts._DiagnosisConcepts.cholera_vaccine_poisoning_of_undetermined_intent, + DiagnosisConcepts._DiagnosisConcepts.intentional_cholera_vaccine_poisoning + + ); + } + + public static List getMeningococcalMeningitisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.MENINGOCOCCAL_MENINGITIS); + } + + public static List getOtherMenigitisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.BACTERIAL_MENINGITIS, + DiagnosisConcepts._DiagnosisConcepts.CRYPTOCOCCAL_MENINGITIS, + DiagnosisConcepts._DiagnosisConcepts.VIRAL_MENINGITIS, DiagnosisConcepts._DiagnosisConcepts.OM1, + DiagnosisConcepts._DiagnosisConcepts.OM2, DiagnosisConcepts._DiagnosisConcepts.OM3, + DiagnosisConcepts._DiagnosisConcepts.OM4, DiagnosisConcepts._DiagnosisConcepts.OM5, + DiagnosisConcepts._DiagnosisConcepts.OM6, DiagnosisConcepts._DiagnosisConcepts.OM7, + DiagnosisConcepts._DiagnosisConcepts.OM8, DiagnosisConcepts._DiagnosisConcepts.OM9, + DiagnosisConcepts._DiagnosisConcepts.OM10, DiagnosisConcepts._DiagnosisConcepts.OM11, + DiagnosisConcepts._DiagnosisConcepts.OM12, DiagnosisConcepts._DiagnosisConcepts.OM13, + DiagnosisConcepts._DiagnosisConcepts.OM14, DiagnosisConcepts._DiagnosisConcepts.OM15, + DiagnosisConcepts._DiagnosisConcepts.OM16, DiagnosisConcepts._DiagnosisConcepts.OM17, + DiagnosisConcepts._DiagnosisConcepts.OM18, DiagnosisConcepts._DiagnosisConcepts.OM19, + DiagnosisConcepts._DiagnosisConcepts.OM20, DiagnosisConcepts._DiagnosisConcepts.OM21, + DiagnosisConcepts._DiagnosisConcepts.OM22, DiagnosisConcepts._DiagnosisConcepts.OM23, + DiagnosisConcepts._DiagnosisConcepts.OM24, DiagnosisConcepts._DiagnosisConcepts.OM25, + DiagnosisConcepts._DiagnosisConcepts.OM26, DiagnosisConcepts._DiagnosisConcepts.OM27, + DiagnosisConcepts._DiagnosisConcepts.OM28, DiagnosisConcepts._DiagnosisConcepts.OM29, + DiagnosisConcepts._DiagnosisConcepts.OM30, DiagnosisConcepts._DiagnosisConcepts.OM31, + DiagnosisConcepts._DiagnosisConcepts.OM32, DiagnosisConcepts._DiagnosisConcepts.OM33, + DiagnosisConcepts._DiagnosisConcepts.OM34, DiagnosisConcepts._DiagnosisConcepts.OM35, + DiagnosisConcepts._DiagnosisConcepts.OM36, DiagnosisConcepts._DiagnosisConcepts.OM37, + DiagnosisConcepts._DiagnosisConcepts.OM38, DiagnosisConcepts._DiagnosisConcepts.OM39, + DiagnosisConcepts._DiagnosisConcepts.OM40, DiagnosisConcepts._DiagnosisConcepts.OM41, + DiagnosisConcepts._DiagnosisConcepts.OM42, DiagnosisConcepts._DiagnosisConcepts.OM43, + DiagnosisConcepts._DiagnosisConcepts.OM44, DiagnosisConcepts._DiagnosisConcepts.OM45, + DiagnosisConcepts._DiagnosisConcepts.OM46, DiagnosisConcepts._DiagnosisConcepts.OM47, + DiagnosisConcepts._DiagnosisConcepts.OM48, DiagnosisConcepts._DiagnosisConcepts.OM49, + DiagnosisConcepts._DiagnosisConcepts.OM50, DiagnosisConcepts._DiagnosisConcepts.OM51, + DiagnosisConcepts._DiagnosisConcepts.OM52, DiagnosisConcepts._DiagnosisConcepts.OM53, + DiagnosisConcepts._DiagnosisConcepts.OM54, DiagnosisConcepts._DiagnosisConcepts.OM55 + + ); + } + + public static List getPoliomyelitisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.PLY1, DiagnosisConcepts._DiagnosisConcepts.PLY2, + DiagnosisConcepts._DiagnosisConcepts.PLY3, DiagnosisConcepts._DiagnosisConcepts.PLY4, + DiagnosisConcepts._DiagnosisConcepts.PLY5, DiagnosisConcepts._DiagnosisConcepts.PLY6, + DiagnosisConcepts._DiagnosisConcepts.PLY7, DiagnosisConcepts._DiagnosisConcepts.PLY8, + DiagnosisConcepts._DiagnosisConcepts.PLY9, DiagnosisConcepts._DiagnosisConcepts.PLY10, + DiagnosisConcepts._DiagnosisConcepts.PLY11, DiagnosisConcepts._DiagnosisConcepts.PLY12, + DiagnosisConcepts._DiagnosisConcepts.PLY13, DiagnosisConcepts._DiagnosisConcepts.PLY14, + DiagnosisConcepts._DiagnosisConcepts.PLY15, DiagnosisConcepts._DiagnosisConcepts.PLY16, + DiagnosisConcepts._DiagnosisConcepts.PLY17, DiagnosisConcepts._DiagnosisConcepts.PLY18, + DiagnosisConcepts._DiagnosisConcepts.PLY19, DiagnosisConcepts._DiagnosisConcepts.PLY20, + DiagnosisConcepts._DiagnosisConcepts.PLY21, DiagnosisConcepts._DiagnosisConcepts.PLY22, + DiagnosisConcepts._DiagnosisConcepts.PLY23, DiagnosisConcepts._DiagnosisConcepts.PLY24, + DiagnosisConcepts._DiagnosisConcepts.PLY25, DiagnosisConcepts._DiagnosisConcepts.PLY26, + DiagnosisConcepts._DiagnosisConcepts.PLY27, DiagnosisConcepts._DiagnosisConcepts.PLY28, + DiagnosisConcepts._DiagnosisConcepts.PLY29, DiagnosisConcepts._DiagnosisConcepts.PLY30, + DiagnosisConcepts._DiagnosisConcepts.PLY31, DiagnosisConcepts._DiagnosisConcepts.PLY32, + DiagnosisConcepts._DiagnosisConcepts.PLY33, DiagnosisConcepts._DiagnosisConcepts.PLY34 + + ); + } + + public static List getNeonatalTetanusList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.TETANUS_NEONATORUM); + } + + public static List getChickenPoxList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CHICKEN_POX, DiagnosisConcepts._DiagnosisConcepts.CP2, + DiagnosisConcepts._DiagnosisConcepts.CP3, DiagnosisConcepts._DiagnosisConcepts.CP4, + DiagnosisConcepts._DiagnosisConcepts.CP5, DiagnosisConcepts._DiagnosisConcepts.CP6); + } + + public static List getMeaslesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.MEASLES, DiagnosisConcepts._DiagnosisConcepts.MSC1, + DiagnosisConcepts._DiagnosisConcepts.MSC2, DiagnosisConcepts._DiagnosisConcepts.MSC3, + DiagnosisConcepts._DiagnosisConcepts.MSC4, DiagnosisConcepts._DiagnosisConcepts.MSC5, + DiagnosisConcepts._DiagnosisConcepts.MSC6, DiagnosisConcepts._DiagnosisConcepts.MSC7, + DiagnosisConcepts._DiagnosisConcepts.MSC8, DiagnosisConcepts._DiagnosisConcepts.MSC9, + DiagnosisConcepts._DiagnosisConcepts.MSC10, DiagnosisConcepts._DiagnosisConcepts.MSC12, + DiagnosisConcepts._DiagnosisConcepts.MSC13, DiagnosisConcepts._DiagnosisConcepts.MSC14, + DiagnosisConcepts._DiagnosisConcepts.MSC15, DiagnosisConcepts._DiagnosisConcepts.MSC16, + DiagnosisConcepts._DiagnosisConcepts.MSC17, DiagnosisConcepts._DiagnosisConcepts.MSC18, + DiagnosisConcepts._DiagnosisConcepts.MSC19, DiagnosisConcepts._DiagnosisConcepts.MSC20 + + ); + } + + public static List getHepatitisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.HP1, DiagnosisConcepts._DiagnosisConcepts.HP2, + DiagnosisConcepts._DiagnosisConcepts.HP3, DiagnosisConcepts._DiagnosisConcepts.HP4, + DiagnosisConcepts._DiagnosisConcepts.HP5, DiagnosisConcepts._DiagnosisConcepts.HP6, + DiagnosisConcepts._DiagnosisConcepts.HP7, DiagnosisConcepts._DiagnosisConcepts.HP8, + DiagnosisConcepts._DiagnosisConcepts.HP9, DiagnosisConcepts._DiagnosisConcepts.HP10, + DiagnosisConcepts._DiagnosisConcepts.HP11, DiagnosisConcepts._DiagnosisConcepts.HP12, + DiagnosisConcepts._DiagnosisConcepts.HP13, DiagnosisConcepts._DiagnosisConcepts.HP14, + DiagnosisConcepts._DiagnosisConcepts.HP15, DiagnosisConcepts._DiagnosisConcepts.HP16, + DiagnosisConcepts._DiagnosisConcepts.HP17, DiagnosisConcepts._DiagnosisConcepts.HP18, + DiagnosisConcepts._DiagnosisConcepts.HP19, DiagnosisConcepts._DiagnosisConcepts.HP20, + DiagnosisConcepts._DiagnosisConcepts.HP21, DiagnosisConcepts._DiagnosisConcepts.HP22, + DiagnosisConcepts._DiagnosisConcepts.HP23, DiagnosisConcepts._DiagnosisConcepts.HP24, + DiagnosisConcepts._DiagnosisConcepts.HP25, DiagnosisConcepts._DiagnosisConcepts.HP26, + DiagnosisConcepts._DiagnosisConcepts.HP27, DiagnosisConcepts._DiagnosisConcepts.HP28, + DiagnosisConcepts._DiagnosisConcepts.HP29, DiagnosisConcepts._DiagnosisConcepts.HP30, + DiagnosisConcepts._DiagnosisConcepts.HP31, DiagnosisConcepts._DiagnosisConcepts.HP32, + DiagnosisConcepts._DiagnosisConcepts.HP33, DiagnosisConcepts._DiagnosisConcepts.HP34, + DiagnosisConcepts._DiagnosisConcepts.HP35, DiagnosisConcepts._DiagnosisConcepts.HP36, + DiagnosisConcepts._DiagnosisConcepts.HP37, DiagnosisConcepts._DiagnosisConcepts.HP38, + DiagnosisConcepts._DiagnosisConcepts.HP39, DiagnosisConcepts._DiagnosisConcepts.HP40, + DiagnosisConcepts._DiagnosisConcepts.HP41, DiagnosisConcepts._DiagnosisConcepts.HP42, + DiagnosisConcepts._DiagnosisConcepts.HP43, DiagnosisConcepts._DiagnosisConcepts.HP44, + DiagnosisConcepts._DiagnosisConcepts.HP45, DiagnosisConcepts._DiagnosisConcepts.HP46, + DiagnosisConcepts._DiagnosisConcepts.HP47, DiagnosisConcepts._DiagnosisConcepts.HP48, + DiagnosisConcepts._DiagnosisConcepts.HP49, DiagnosisConcepts._DiagnosisConcepts.HP50, + DiagnosisConcepts._DiagnosisConcepts.HP51, DiagnosisConcepts._DiagnosisConcepts.HP52, + DiagnosisConcepts._DiagnosisConcepts.HP53, DiagnosisConcepts._DiagnosisConcepts.HP54, + DiagnosisConcepts._DiagnosisConcepts.HP55, DiagnosisConcepts._DiagnosisConcepts.HP56, + DiagnosisConcepts._DiagnosisConcepts.HP57, DiagnosisConcepts._DiagnosisConcepts.HP58, + DiagnosisConcepts._DiagnosisConcepts.HP59, DiagnosisConcepts._DiagnosisConcepts.HP60, + DiagnosisConcepts._DiagnosisConcepts.HP61, DiagnosisConcepts._DiagnosisConcepts.HP62, + DiagnosisConcepts._DiagnosisConcepts.HP63, DiagnosisConcepts._DiagnosisConcepts.HP64, + DiagnosisConcepts._DiagnosisConcepts.HP65, DiagnosisConcepts._DiagnosisConcepts.HP66, + DiagnosisConcepts._DiagnosisConcepts.HP67, DiagnosisConcepts._DiagnosisConcepts.HP68, + DiagnosisConcepts._DiagnosisConcepts.HP69, DiagnosisConcepts._DiagnosisConcepts.HP70, + DiagnosisConcepts._DiagnosisConcepts.HP71, DiagnosisConcepts._DiagnosisConcepts.HP72, + DiagnosisConcepts._DiagnosisConcepts.HP73, DiagnosisConcepts._DiagnosisConcepts.HP74, + DiagnosisConcepts._DiagnosisConcepts.HP75, DiagnosisConcepts._DiagnosisConcepts.HP76, + DiagnosisConcepts._DiagnosisConcepts.HP77, DiagnosisConcepts._DiagnosisConcepts.HP78, + DiagnosisConcepts._DiagnosisConcepts.HP79, DiagnosisConcepts._DiagnosisConcepts.HP80, + DiagnosisConcepts._DiagnosisConcepts.HP81, DiagnosisConcepts._DiagnosisConcepts.HP82, + DiagnosisConcepts._DiagnosisConcepts.HP83, DiagnosisConcepts._DiagnosisConcepts.HP84, + DiagnosisConcepts._DiagnosisConcepts.HP85, DiagnosisConcepts._DiagnosisConcepts.HP86, + DiagnosisConcepts._DiagnosisConcepts.HP87, DiagnosisConcepts._DiagnosisConcepts.HP88, + DiagnosisConcepts._DiagnosisConcepts.HP89, DiagnosisConcepts._DiagnosisConcepts.HP90, + DiagnosisConcepts._DiagnosisConcepts.HP91, DiagnosisConcepts._DiagnosisConcepts.HP92, + DiagnosisConcepts._DiagnosisConcepts.HP93, DiagnosisConcepts._DiagnosisConcepts.HP94, + DiagnosisConcepts._DiagnosisConcepts.HP95, DiagnosisConcepts._DiagnosisConcepts.HP96, + DiagnosisConcepts._DiagnosisConcepts.HP97, DiagnosisConcepts._DiagnosisConcepts.HP98, + DiagnosisConcepts._DiagnosisConcepts.HP99, DiagnosisConcepts._DiagnosisConcepts.HP100, + DiagnosisConcepts._DiagnosisConcepts.HP101, DiagnosisConcepts._DiagnosisConcepts.HP102, + DiagnosisConcepts._DiagnosisConcepts.HP103, DiagnosisConcepts._DiagnosisConcepts.HP104, + DiagnosisConcepts._DiagnosisConcepts.HP105, DiagnosisConcepts._DiagnosisConcepts.HP106, + DiagnosisConcepts._DiagnosisConcepts.HP107, DiagnosisConcepts._DiagnosisConcepts.HP108, + DiagnosisConcepts._DiagnosisConcepts.HP109, DiagnosisConcepts._DiagnosisConcepts.HP110, + DiagnosisConcepts._DiagnosisConcepts.HP111, DiagnosisConcepts._DiagnosisConcepts.HP112, + DiagnosisConcepts._DiagnosisConcepts.HP113, DiagnosisConcepts._DiagnosisConcepts.HP114 + + ); + } + + public static List getMumpsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.MUMPS1, DiagnosisConcepts._DiagnosisConcepts.MUMPS2, + DiagnosisConcepts._DiagnosisConcepts.MUMPS3, DiagnosisConcepts._DiagnosisConcepts.MUMPS4, + DiagnosisConcepts._DiagnosisConcepts.MUMPS5, DiagnosisConcepts._DiagnosisConcepts.MUMPS6, + DiagnosisConcepts._DiagnosisConcepts.MUMPS7, DiagnosisConcepts._DiagnosisConcepts.MUMPS8, + DiagnosisConcepts._DiagnosisConcepts.MUMPS9, DiagnosisConcepts._DiagnosisConcepts.MUMPS10, + DiagnosisConcepts._DiagnosisConcepts.MUMPS11, DiagnosisConcepts._DiagnosisConcepts.MUMPS12, + DiagnosisConcepts._DiagnosisConcepts.MUMPS13, DiagnosisConcepts._DiagnosisConcepts.MUMPS14, + DiagnosisConcepts._DiagnosisConcepts.MUMPS15, DiagnosisConcepts._DiagnosisConcepts.MUMPS16, + DiagnosisConcepts._DiagnosisConcepts.MUMPS17, DiagnosisConcepts._DiagnosisConcepts.MUMPS18, + DiagnosisConcepts._DiagnosisConcepts.MUMPS19, DiagnosisConcepts._DiagnosisConcepts.MUMPS20, + DiagnosisConcepts._DiagnosisConcepts.MUMPS21, DiagnosisConcepts._DiagnosisConcepts.MUMPS22 + + ); + } + + public static List getMalariaList() { + return Arrays + .asList( + DiagnosisConcepts._DiagnosisConcepts.MALARIA_MILD, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_SEVERE, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_PRESUMED, + DiagnosisConcepts._DiagnosisConcepts.MALARIA, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_RULE_OUT, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_R_O, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_CLINICAL, + DiagnosisConcepts._DiagnosisConcepts.CLINICAL_MALARIA, + DiagnosisConcepts._DiagnosisConcepts.UNSPECIFIED_MALARIA, + DiagnosisConcepts._DiagnosisConcepts.Maternal_Malaria_with_Delivery, + DiagnosisConcepts._DiagnosisConcepts.Malarial_Fever, + DiagnosisConcepts._DiagnosisConcepts.Complicated_malaria, + DiagnosisConcepts._DiagnosisConcepts.MALARIA_1, + DiagnosisConcepts._DiagnosisConcepts.Haemolytic_Anaemia_due_to_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Falciparum_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Vivax_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Therapeutically_Induced_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Simian_malaria, + DiagnosisConcepts._DiagnosisConcepts.Quartan_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Malariae_malaria, + DiagnosisConcepts._DiagnosisConcepts.Poisoning_by_Antimalarial_Drug, + DiagnosisConcepts._DiagnosisConcepts.Ovale_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Other_malaria, + DiagnosisConcepts._DiagnosisConcepts.Mixed_Malaria, + + DiagnosisConcepts._DiagnosisConcepts.Maternal_Malaria_with_Delivery_with_Current_Postpartum_Complication, + DiagnosisConcepts._DiagnosisConcepts.Malarial_Nephrosis, + DiagnosisConcepts._DiagnosisConcepts.Malarial_Hepatitis, + DiagnosisConcepts._DiagnosisConcepts.Induced_Malaria, + DiagnosisConcepts._DiagnosisConcepts.hyper_reactive_malarial_splenomegaly, + DiagnosisConcepts._DiagnosisConcepts.HO_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Cerebral_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Algid_Malaria, + DiagnosisConcepts._DiagnosisConcepts.Plasmodium_Falciparum_Malaria_with_Cerebral_Complications, + DiagnosisConcepts._DiagnosisConcepts.Plasmodium_Malariae_Malaria_with_Nephropathy, + DiagnosisConcepts._DiagnosisConcepts.congenital_falciparum_malaria, + DiagnosisConcepts._DiagnosisConcepts.Plasmodium_vivax_malaria_with_rupture_of_spleen, + DiagnosisConcepts._DiagnosisConcepts.Uncomplicated_malaria, + DiagnosisConcepts._DiagnosisConcepts.Malaria_uncomplicated, + DiagnosisConcepts._DiagnosisConcepts.Malaria_confirmed, + DiagnosisConcepts._DiagnosisConcepts.Presumptive_malaria_with_minor_digestive_system, + DiagnosisConcepts._DiagnosisConcepts.Malaria_confirmed_with_minor_digestive_symptoms, + DiagnosisConcepts._DiagnosisConcepts.Presumptive_malaria_with_pregnancy, + DiagnosisConcepts._DiagnosisConcepts.Confirmed_malaria_with_pregnancy, + DiagnosisConcepts._DiagnosisConcepts.Presumptive_malaria_with_minor_digestive_symptoms_pregnant, + DiagnosisConcepts._DiagnosisConcepts.Confirmed_malaria_with_minor_digestive_symptoms_pregnant, + DiagnosisConcepts._DiagnosisConcepts.Severe_malaria, + DiagnosisConcepts._DiagnosisConcepts.Non_falciparum_malaria); + } + + public static List getUrinaryTractInfectionList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.UTI1, DiagnosisConcepts._DiagnosisConcepts.UTI2, + DiagnosisConcepts._DiagnosisConcepts.UTI3, DiagnosisConcepts._DiagnosisConcepts.UTI4, + DiagnosisConcepts._DiagnosisConcepts.UTI5, DiagnosisConcepts._DiagnosisConcepts.UTI6, + DiagnosisConcepts._DiagnosisConcepts.UTI7, DiagnosisConcepts._DiagnosisConcepts.UTI8, + DiagnosisConcepts._DiagnosisConcepts.UTI9, DiagnosisConcepts._DiagnosisConcepts.UTI10, + DiagnosisConcepts._DiagnosisConcepts.UTI11, DiagnosisConcepts._DiagnosisConcepts.UTI12, + DiagnosisConcepts._DiagnosisConcepts.UTI13, DiagnosisConcepts._DiagnosisConcepts.UTI14, + DiagnosisConcepts._DiagnosisConcepts.UTI15, DiagnosisConcepts._DiagnosisConcepts.UTI16, + DiagnosisConcepts._DiagnosisConcepts.UTI17, DiagnosisConcepts._DiagnosisConcepts.UTI18, + DiagnosisConcepts._DiagnosisConcepts.UTI19, DiagnosisConcepts._DiagnosisConcepts.UTI20, + DiagnosisConcepts._DiagnosisConcepts.UTI21, DiagnosisConcepts._DiagnosisConcepts.UTI22, + DiagnosisConcepts._DiagnosisConcepts.UTI23, DiagnosisConcepts._DiagnosisConcepts.UTI24, + DiagnosisConcepts._DiagnosisConcepts.UTI25 + + ); + } + + public static List getTyphoidList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.TF1, DiagnosisConcepts._DiagnosisConcepts.TF2, + DiagnosisConcepts._DiagnosisConcepts.TF3, DiagnosisConcepts._DiagnosisConcepts.TF4, + DiagnosisConcepts._DiagnosisConcepts.TF5 + + ); + } + + public static List getBilharziaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.BL1, DiagnosisConcepts._DiagnosisConcepts.BL2, + DiagnosisConcepts._DiagnosisConcepts.BL3 + + ); + } + + public static List getInterstinalwormsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ISW1, DiagnosisConcepts._DiagnosisConcepts.ISW2, + DiagnosisConcepts._DiagnosisConcepts.ISW3 + + ); + } + + public static List getMalnutritionList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.MALN1, DiagnosisConcepts._DiagnosisConcepts.MALN2, + DiagnosisConcepts._DiagnosisConcepts.MALN3, DiagnosisConcepts._DiagnosisConcepts.MALN4, + DiagnosisConcepts._DiagnosisConcepts.MALN5, DiagnosisConcepts._DiagnosisConcepts.MALN6, + DiagnosisConcepts._DiagnosisConcepts.MALN7, DiagnosisConcepts._DiagnosisConcepts.MALN8, + DiagnosisConcepts._DiagnosisConcepts.MALN9, DiagnosisConcepts._DiagnosisConcepts.MALN10, + DiagnosisConcepts._DiagnosisConcepts.MALN11, DiagnosisConcepts._DiagnosisConcepts.MALN12, + DiagnosisConcepts._DiagnosisConcepts.MALN13, DiagnosisConcepts._DiagnosisConcepts.MALN14, + DiagnosisConcepts._DiagnosisConcepts.MALN15, DiagnosisConcepts._DiagnosisConcepts.MALN16, + DiagnosisConcepts._DiagnosisConcepts.MALN17, DiagnosisConcepts._DiagnosisConcepts.MALN18, + DiagnosisConcepts._DiagnosisConcepts.MALN19, DiagnosisConcepts._DiagnosisConcepts.MALN20, + DiagnosisConcepts._DiagnosisConcepts.MALN21, DiagnosisConcepts._DiagnosisConcepts.MALN22, + DiagnosisConcepts._DiagnosisConcepts.MALN23, DiagnosisConcepts._DiagnosisConcepts.MALN24, + DiagnosisConcepts._DiagnosisConcepts.MALN25, DiagnosisConcepts._DiagnosisConcepts.MALN26, + DiagnosisConcepts._DiagnosisConcepts.MALN27, DiagnosisConcepts._DiagnosisConcepts.MALN28, + DiagnosisConcepts._DiagnosisConcepts.MALN29, DiagnosisConcepts._DiagnosisConcepts.MALN30 + + ); + } + + public static List getAnaemiaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ANEMIA1, DiagnosisConcepts._DiagnosisConcepts.ANEMIA2, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA3, DiagnosisConcepts._DiagnosisConcepts.ANEMIA4, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA5, DiagnosisConcepts._DiagnosisConcepts.ANEMIA6, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA7, DiagnosisConcepts._DiagnosisConcepts.ANEMIA8, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA9, DiagnosisConcepts._DiagnosisConcepts.ANEMIA10, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA11, DiagnosisConcepts._DiagnosisConcepts.ANEMIA12, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA13, DiagnosisConcepts._DiagnosisConcepts.ANEMIA14, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA15, DiagnosisConcepts._DiagnosisConcepts.ANEMIA16, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA17, DiagnosisConcepts._DiagnosisConcepts.ANEMIA18, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA19, DiagnosisConcepts._DiagnosisConcepts.ANEMIA20, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA21, DiagnosisConcepts._DiagnosisConcepts.ANEMIA22, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA23, DiagnosisConcepts._DiagnosisConcepts.ANEMIA24, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA25, DiagnosisConcepts._DiagnosisConcepts.ANEMIA26, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA27, DiagnosisConcepts._DiagnosisConcepts.ANEMIA28, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA29, DiagnosisConcepts._DiagnosisConcepts.ANEMIA30, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA31, DiagnosisConcepts._DiagnosisConcepts.ANEMIA32, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA33, DiagnosisConcepts._DiagnosisConcepts.ANEMIA34, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA35, DiagnosisConcepts._DiagnosisConcepts.ANEMIA36, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA37, DiagnosisConcepts._DiagnosisConcepts.ANEMIA38, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA39, DiagnosisConcepts._DiagnosisConcepts.ANEMIA40, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA41, DiagnosisConcepts._DiagnosisConcepts.ANEMIA42, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA43, DiagnosisConcepts._DiagnosisConcepts.ANEMIA44, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA45, DiagnosisConcepts._DiagnosisConcepts.ANEMIA46, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA47, DiagnosisConcepts._DiagnosisConcepts.ANEMIA48, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA49, DiagnosisConcepts._DiagnosisConcepts.ANEMIA50, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA51, DiagnosisConcepts._DiagnosisConcepts.ANEMIA52, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA53, DiagnosisConcepts._DiagnosisConcepts.ANEMIA54, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA55, DiagnosisConcepts._DiagnosisConcepts.ANEMIA56, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA57, DiagnosisConcepts._DiagnosisConcepts.ANEMIA58, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA59, DiagnosisConcepts._DiagnosisConcepts.ANEMIA60, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA61, DiagnosisConcepts._DiagnosisConcepts.ANEMIA62, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA63, DiagnosisConcepts._DiagnosisConcepts.ANEMIA64, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA65, DiagnosisConcepts._DiagnosisConcepts.ANEMIA66, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA67, DiagnosisConcepts._DiagnosisConcepts.ANEMIA68, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA69, DiagnosisConcepts._DiagnosisConcepts.ANEMIA70, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA71, DiagnosisConcepts._DiagnosisConcepts.ANEMIA72, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA73, DiagnosisConcepts._DiagnosisConcepts.ANEMIA74, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA75, DiagnosisConcepts._DiagnosisConcepts.ANEMIA76, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA77, DiagnosisConcepts._DiagnosisConcepts.ANEMIA78, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA79, DiagnosisConcepts._DiagnosisConcepts.ANEMIA80, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA81, DiagnosisConcepts._DiagnosisConcepts.ANEMIA82, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA83, DiagnosisConcepts._DiagnosisConcepts.ANEMIA84, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA85, DiagnosisConcepts._DiagnosisConcepts.ANEMIA86, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA87, DiagnosisConcepts._DiagnosisConcepts.ANEMIA88, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA89, DiagnosisConcepts._DiagnosisConcepts.ANEMIA90, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA91, DiagnosisConcepts._DiagnosisConcepts.ANEMIA92, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA93, DiagnosisConcepts._DiagnosisConcepts.ANEMIA94, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA95, DiagnosisConcepts._DiagnosisConcepts.ANEMIA96, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA97, DiagnosisConcepts._DiagnosisConcepts.ANEMIA98, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA99, DiagnosisConcepts._DiagnosisConcepts.ANEMIA100, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA101, DiagnosisConcepts._DiagnosisConcepts.ANEMIA102, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA103, DiagnosisConcepts._DiagnosisConcepts.ANEMIA104, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA105, DiagnosisConcepts._DiagnosisConcepts.ANEMIA106, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA107, DiagnosisConcepts._DiagnosisConcepts.ANEMIA108, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA109, DiagnosisConcepts._DiagnosisConcepts.ANEMIA110, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA111, DiagnosisConcepts._DiagnosisConcepts.ANEMIA112, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA113, DiagnosisConcepts._DiagnosisConcepts.ANEMIA114, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA115, DiagnosisConcepts._DiagnosisConcepts.ANEMIA116, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA117, DiagnosisConcepts._DiagnosisConcepts.ANEMIA118, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA119, DiagnosisConcepts._DiagnosisConcepts.ANEMIA120, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA121, DiagnosisConcepts._DiagnosisConcepts.ANEMIA122, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA123, DiagnosisConcepts._DiagnosisConcepts.ANEMIA124, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA125, DiagnosisConcepts._DiagnosisConcepts.ANEMIA126, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA127, DiagnosisConcepts._DiagnosisConcepts.ANEMIA128, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA129, DiagnosisConcepts._DiagnosisConcepts.ANEMIA130, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA131, DiagnosisConcepts._DiagnosisConcepts.ANEMIA132, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA133, DiagnosisConcepts._DiagnosisConcepts.ANEMIA134, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA135, DiagnosisConcepts._DiagnosisConcepts.ANEMIA136, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA137, DiagnosisConcepts._DiagnosisConcepts.ANEMIA138, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA139, DiagnosisConcepts._DiagnosisConcepts.ANEMIA140, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA141, DiagnosisConcepts._DiagnosisConcepts.ANEMIA142, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA143, DiagnosisConcepts._DiagnosisConcepts.ANEMIA144, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA145, DiagnosisConcepts._DiagnosisConcepts.ANEMIA146, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA147, DiagnosisConcepts._DiagnosisConcepts.ANEMIA148, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA149, DiagnosisConcepts._DiagnosisConcepts.ANEMIA150, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA151, DiagnosisConcepts._DiagnosisConcepts.ANEMIA152, + DiagnosisConcepts._DiagnosisConcepts.ANEMIA153 + + ); + } + + public static List getEyeInfectionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.OE1, DiagnosisConcepts._DiagnosisConcepts.OE2, + DiagnosisConcepts._DiagnosisConcepts.EI1, DiagnosisConcepts._DiagnosisConcepts.EI2, + DiagnosisConcepts._DiagnosisConcepts.OE3, DiagnosisConcepts._DiagnosisConcepts.OE4, + DiagnosisConcepts._DiagnosisConcepts.OE5, DiagnosisConcepts._DiagnosisConcepts.OE6, + DiagnosisConcepts._DiagnosisConcepts.OE7, DiagnosisConcepts._DiagnosisConcepts.OE8, + DiagnosisConcepts._DiagnosisConcepts.OE9, DiagnosisConcepts._DiagnosisConcepts.OE10, + DiagnosisConcepts._DiagnosisConcepts.OE11, DiagnosisConcepts._DiagnosisConcepts.OE12, + DiagnosisConcepts._DiagnosisConcepts.OE13, DiagnosisConcepts._DiagnosisConcepts.OE14, + DiagnosisConcepts._DiagnosisConcepts.OE15, DiagnosisConcepts._DiagnosisConcepts.OE16, + DiagnosisConcepts._DiagnosisConcepts.OE17, DiagnosisConcepts._DiagnosisConcepts.OE18, + DiagnosisConcepts._DiagnosisConcepts.OE19, DiagnosisConcepts._DiagnosisConcepts.OE20, + DiagnosisConcepts._DiagnosisConcepts.OE21, DiagnosisConcepts._DiagnosisConcepts.OE22, + DiagnosisConcepts._DiagnosisConcepts.OE23, DiagnosisConcepts._DiagnosisConcepts.OE24, + DiagnosisConcepts._DiagnosisConcepts.OE25, DiagnosisConcepts._DiagnosisConcepts.OE26, + DiagnosisConcepts._DiagnosisConcepts.OE27, DiagnosisConcepts._DiagnosisConcepts.OE28, + DiagnosisConcepts._DiagnosisConcepts.OE29, DiagnosisConcepts._DiagnosisConcepts.OE30, + DiagnosisConcepts._DiagnosisConcepts.OE31, DiagnosisConcepts._DiagnosisConcepts.OE32, + DiagnosisConcepts._DiagnosisConcepts.OE33, DiagnosisConcepts._DiagnosisConcepts.OE34, + DiagnosisConcepts._DiagnosisConcepts.OE35, DiagnosisConcepts._DiagnosisConcepts.OE36, + DiagnosisConcepts._DiagnosisConcepts.OE37, DiagnosisConcepts._DiagnosisConcepts.OE38, + DiagnosisConcepts._DiagnosisConcepts.OE39, DiagnosisConcepts._DiagnosisConcepts.OE40, + DiagnosisConcepts._DiagnosisConcepts.OE41, DiagnosisConcepts._DiagnosisConcepts.OE42, + DiagnosisConcepts._DiagnosisConcepts.OE43, DiagnosisConcepts._DiagnosisConcepts.OE44, + DiagnosisConcepts._DiagnosisConcepts.OE45, DiagnosisConcepts._DiagnosisConcepts.OE46, + DiagnosisConcepts._DiagnosisConcepts.OE47, DiagnosisConcepts._DiagnosisConcepts.OE48, + DiagnosisConcepts._DiagnosisConcepts.OE49, DiagnosisConcepts._DiagnosisConcepts.OE50, + DiagnosisConcepts._DiagnosisConcepts.OE51, DiagnosisConcepts._DiagnosisConcepts.OE52, + DiagnosisConcepts._DiagnosisConcepts.OE53, DiagnosisConcepts._DiagnosisConcepts.OE54, + DiagnosisConcepts._DiagnosisConcepts.OE55, DiagnosisConcepts._DiagnosisConcepts.OE56, + DiagnosisConcepts._DiagnosisConcepts.OE57, DiagnosisConcepts._DiagnosisConcepts.OE58, + DiagnosisConcepts._DiagnosisConcepts.OE59, DiagnosisConcepts._DiagnosisConcepts.OE60, + DiagnosisConcepts._DiagnosisConcepts.OE61, DiagnosisConcepts._DiagnosisConcepts.OE62, + DiagnosisConcepts._DiagnosisConcepts.OE63, DiagnosisConcepts._DiagnosisConcepts.OE64, + DiagnosisConcepts._DiagnosisConcepts.OE65, DiagnosisConcepts._DiagnosisConcepts.OE66, + DiagnosisConcepts._DiagnosisConcepts.OE67, DiagnosisConcepts._DiagnosisConcepts.OE68, + DiagnosisConcepts._DiagnosisConcepts.OE69, DiagnosisConcepts._DiagnosisConcepts.OE70, + DiagnosisConcepts._DiagnosisConcepts.OE71, DiagnosisConcepts._DiagnosisConcepts.OE72, + DiagnosisConcepts._DiagnosisConcepts.OE73, DiagnosisConcepts._DiagnosisConcepts.OE74, + DiagnosisConcepts._DiagnosisConcepts.OE75, DiagnosisConcepts._DiagnosisConcepts.OE76, + DiagnosisConcepts._DiagnosisConcepts.OE77, DiagnosisConcepts._DiagnosisConcepts.OE78, + DiagnosisConcepts._DiagnosisConcepts.OE79, DiagnosisConcepts._DiagnosisConcepts.OE80, + DiagnosisConcepts._DiagnosisConcepts.OE81, DiagnosisConcepts._DiagnosisConcepts.OE82, + DiagnosisConcepts._DiagnosisConcepts.OE83, DiagnosisConcepts._DiagnosisConcepts.OE84, + DiagnosisConcepts._DiagnosisConcepts.OE85, DiagnosisConcepts._DiagnosisConcepts.OE86, + DiagnosisConcepts._DiagnosisConcepts.OE87, DiagnosisConcepts._DiagnosisConcepts.OE88, + DiagnosisConcepts._DiagnosisConcepts.OE89, DiagnosisConcepts._DiagnosisConcepts.OE90, + DiagnosisConcepts._DiagnosisConcepts.OE91, DiagnosisConcepts._DiagnosisConcepts.OE92, + DiagnosisConcepts._DiagnosisConcepts.OE93, DiagnosisConcepts._DiagnosisConcepts.OE94, + DiagnosisConcepts._DiagnosisConcepts.OE95, DiagnosisConcepts._DiagnosisConcepts.OE96, + DiagnosisConcepts._DiagnosisConcepts.OE97, DiagnosisConcepts._DiagnosisConcepts.OE98, + DiagnosisConcepts._DiagnosisConcepts.OE99, DiagnosisConcepts._DiagnosisConcepts.OE100, + DiagnosisConcepts._DiagnosisConcepts.OE101, DiagnosisConcepts._DiagnosisConcepts.OE102, + DiagnosisConcepts._DiagnosisConcepts.OE103, DiagnosisConcepts._DiagnosisConcepts.OE104, + DiagnosisConcepts._DiagnosisConcepts.OE105, DiagnosisConcepts._DiagnosisConcepts.OE106, + DiagnosisConcepts._DiagnosisConcepts.OE107, DiagnosisConcepts._DiagnosisConcepts.OE108, + DiagnosisConcepts._DiagnosisConcepts.OE110, DiagnosisConcepts._DiagnosisConcepts.OE111, + DiagnosisConcepts._DiagnosisConcepts.OE112, DiagnosisConcepts._DiagnosisConcepts.OE113, + DiagnosisConcepts._DiagnosisConcepts.OE114, DiagnosisConcepts._DiagnosisConcepts.OE115, + DiagnosisConcepts._DiagnosisConcepts.OE116, DiagnosisConcepts._DiagnosisConcepts.OE117, + DiagnosisConcepts._DiagnosisConcepts.OE118, DiagnosisConcepts._DiagnosisConcepts.OE119, + DiagnosisConcepts._DiagnosisConcepts.OE120, DiagnosisConcepts._DiagnosisConcepts.OE121, + DiagnosisConcepts._DiagnosisConcepts.OE122, DiagnosisConcepts._DiagnosisConcepts.OE123, + DiagnosisConcepts._DiagnosisConcepts.OE124, DiagnosisConcepts._DiagnosisConcepts.OE125, + DiagnosisConcepts._DiagnosisConcepts.OE126, DiagnosisConcepts._DiagnosisConcepts.OE127, + DiagnosisConcepts._DiagnosisConcepts.OE128, DiagnosisConcepts._DiagnosisConcepts.OE129, + DiagnosisConcepts._DiagnosisConcepts.OE130, DiagnosisConcepts._DiagnosisConcepts.OE131, + DiagnosisConcepts._DiagnosisConcepts.OE132, DiagnosisConcepts._DiagnosisConcepts.OE133, + DiagnosisConcepts._DiagnosisConcepts.OE134, DiagnosisConcepts._DiagnosisConcepts.OE135, + DiagnosisConcepts._DiagnosisConcepts.OE136, DiagnosisConcepts._DiagnosisConcepts.OE137, + DiagnosisConcepts._DiagnosisConcepts.OE138, DiagnosisConcepts._DiagnosisConcepts.OE139, + DiagnosisConcepts._DiagnosisConcepts.OE140, DiagnosisConcepts._DiagnosisConcepts.OE141, + DiagnosisConcepts._DiagnosisConcepts.OE142, DiagnosisConcepts._DiagnosisConcepts.OE143, + DiagnosisConcepts._DiagnosisConcepts.OE144, DiagnosisConcepts._DiagnosisConcepts.OE145, + DiagnosisConcepts._DiagnosisConcepts.OE146, DiagnosisConcepts._DiagnosisConcepts.OE147, + DiagnosisConcepts._DiagnosisConcepts.OE148, DiagnosisConcepts._DiagnosisConcepts.OE149, + DiagnosisConcepts._DiagnosisConcepts.OE150, DiagnosisConcepts._DiagnosisConcepts.OE151, + DiagnosisConcepts._DiagnosisConcepts.OE152, DiagnosisConcepts._DiagnosisConcepts.OE153, + DiagnosisConcepts._DiagnosisConcepts.OE154, DiagnosisConcepts._DiagnosisConcepts.OE155, + DiagnosisConcepts._DiagnosisConcepts.OE156, DiagnosisConcepts._DiagnosisConcepts.OE157, + DiagnosisConcepts._DiagnosisConcepts.OE158, DiagnosisConcepts._DiagnosisConcepts.OE159, + DiagnosisConcepts._DiagnosisConcepts.OE160, DiagnosisConcepts._DiagnosisConcepts.OE161, + DiagnosisConcepts._DiagnosisConcepts.OE162, DiagnosisConcepts._DiagnosisConcepts.OE163, + DiagnosisConcepts._DiagnosisConcepts.OE164, DiagnosisConcepts._DiagnosisConcepts.OE165, + DiagnosisConcepts._DiagnosisConcepts.OE166, DiagnosisConcepts._DiagnosisConcepts.OE167, + DiagnosisConcepts._DiagnosisConcepts.OE168, DiagnosisConcepts._DiagnosisConcepts.OE169, + DiagnosisConcepts._DiagnosisConcepts.OE170, DiagnosisConcepts._DiagnosisConcepts.OE171, + DiagnosisConcepts._DiagnosisConcepts.OE172, DiagnosisConcepts._DiagnosisConcepts.OE173, + DiagnosisConcepts._DiagnosisConcepts.OE174, DiagnosisConcepts._DiagnosisConcepts.OE175, + DiagnosisConcepts._DiagnosisConcepts.OE176, DiagnosisConcepts._DiagnosisConcepts.OE177, + DiagnosisConcepts._DiagnosisConcepts.OE178, DiagnosisConcepts._DiagnosisConcepts.OE179, + DiagnosisConcepts._DiagnosisConcepts.OE180, DiagnosisConcepts._DiagnosisConcepts.OE181, + DiagnosisConcepts._DiagnosisConcepts.OE182, DiagnosisConcepts._DiagnosisConcepts.OE183, + DiagnosisConcepts._DiagnosisConcepts.OE184, DiagnosisConcepts._DiagnosisConcepts.OE185, + DiagnosisConcepts._DiagnosisConcepts.OE186, DiagnosisConcepts._DiagnosisConcepts.OE187, + DiagnosisConcepts._DiagnosisConcepts.OE188, DiagnosisConcepts._DiagnosisConcepts.OE189, + DiagnosisConcepts._DiagnosisConcepts.OE190, DiagnosisConcepts._DiagnosisConcepts.OE191, + DiagnosisConcepts._DiagnosisConcepts.OE192, DiagnosisConcepts._DiagnosisConcepts.OE193, + DiagnosisConcepts._DiagnosisConcepts.OE194, DiagnosisConcepts._DiagnosisConcepts.OE195, + DiagnosisConcepts._DiagnosisConcepts.OE196, DiagnosisConcepts._DiagnosisConcepts.OE197, + DiagnosisConcepts._DiagnosisConcepts.OE198, DiagnosisConcepts._DiagnosisConcepts.OE199, + DiagnosisConcepts._DiagnosisConcepts.OE200, DiagnosisConcepts._DiagnosisConcepts.OE201, + DiagnosisConcepts._DiagnosisConcepts.OE202, DiagnosisConcepts._DiagnosisConcepts.OE203, + DiagnosisConcepts._DiagnosisConcepts.OE204, DiagnosisConcepts._DiagnosisConcepts.OE205, + DiagnosisConcepts._DiagnosisConcepts.OE206, DiagnosisConcepts._DiagnosisConcepts.OE207, + DiagnosisConcepts._DiagnosisConcepts.OE208, DiagnosisConcepts._DiagnosisConcepts.OE209, + DiagnosisConcepts._DiagnosisConcepts.OE210, DiagnosisConcepts._DiagnosisConcepts.OE211, + DiagnosisConcepts._DiagnosisConcepts.OE212, DiagnosisConcepts._DiagnosisConcepts.OE213, + DiagnosisConcepts._DiagnosisConcepts.OE214, DiagnosisConcepts._DiagnosisConcepts.OE215, + DiagnosisConcepts._DiagnosisConcepts.OE216, DiagnosisConcepts._DiagnosisConcepts.OE217, + DiagnosisConcepts._DiagnosisConcepts.OE218, DiagnosisConcepts._DiagnosisConcepts.OE219, + DiagnosisConcepts._DiagnosisConcepts.OE220, DiagnosisConcepts._DiagnosisConcepts.OE221, + DiagnosisConcepts._DiagnosisConcepts.OE222, DiagnosisConcepts._DiagnosisConcepts.OE223, + DiagnosisConcepts._DiagnosisConcepts.OE224, DiagnosisConcepts._DiagnosisConcepts.OE225, + DiagnosisConcepts._DiagnosisConcepts.OE226, DiagnosisConcepts._DiagnosisConcepts.OE227, + DiagnosisConcepts._DiagnosisConcepts.OE228, DiagnosisConcepts._DiagnosisConcepts.OE229, + DiagnosisConcepts._DiagnosisConcepts.OE230, DiagnosisConcepts._DiagnosisConcepts.OE231, + DiagnosisConcepts._DiagnosisConcepts.OE232, DiagnosisConcepts._DiagnosisConcepts.OE233, + DiagnosisConcepts._DiagnosisConcepts.OE234, DiagnosisConcepts._DiagnosisConcepts.OE235, + DiagnosisConcepts._DiagnosisConcepts.OE236, DiagnosisConcepts._DiagnosisConcepts.OE237, + DiagnosisConcepts._DiagnosisConcepts.OE238, DiagnosisConcepts._DiagnosisConcepts.OE239, + DiagnosisConcepts._DiagnosisConcepts.OE240, DiagnosisConcepts._DiagnosisConcepts.OE241, + DiagnosisConcepts._DiagnosisConcepts.OE242, DiagnosisConcepts._DiagnosisConcepts.OE243, + DiagnosisConcepts._DiagnosisConcepts.OE244, DiagnosisConcepts._DiagnosisConcepts.OE245, + DiagnosisConcepts._DiagnosisConcepts.OE246, DiagnosisConcepts._DiagnosisConcepts.OE247, + DiagnosisConcepts._DiagnosisConcepts.OE248, DiagnosisConcepts._DiagnosisConcepts.OE249, + DiagnosisConcepts._DiagnosisConcepts.OE250, DiagnosisConcepts._DiagnosisConcepts.OE251, + DiagnosisConcepts._DiagnosisConcepts.OE252, DiagnosisConcepts._DiagnosisConcepts.OE253, + DiagnosisConcepts._DiagnosisConcepts.OE254, DiagnosisConcepts._DiagnosisConcepts.OE255, + DiagnosisConcepts._DiagnosisConcepts.OE256, DiagnosisConcepts._DiagnosisConcepts.OE257, + DiagnosisConcepts._DiagnosisConcepts.OE258, DiagnosisConcepts._DiagnosisConcepts.OE259, + DiagnosisConcepts._DiagnosisConcepts.OE260, DiagnosisConcepts._DiagnosisConcepts.OE261, + DiagnosisConcepts._DiagnosisConcepts.OE262, DiagnosisConcepts._DiagnosisConcepts.OE263, + DiagnosisConcepts._DiagnosisConcepts.OE264, DiagnosisConcepts._DiagnosisConcepts.OE265, + DiagnosisConcepts._DiagnosisConcepts.OE266, DiagnosisConcepts._DiagnosisConcepts.OE267, + DiagnosisConcepts._DiagnosisConcepts.OE268, DiagnosisConcepts._DiagnosisConcepts.OE269, + DiagnosisConcepts._DiagnosisConcepts.OE270, DiagnosisConcepts._DiagnosisConcepts.OE271, + DiagnosisConcepts._DiagnosisConcepts.OE272, DiagnosisConcepts._DiagnosisConcepts.OE273, + DiagnosisConcepts._DiagnosisConcepts.OE274, DiagnosisConcepts._DiagnosisConcepts.OE275, + DiagnosisConcepts._DiagnosisConcepts.OE276, DiagnosisConcepts._DiagnosisConcepts.OE277, + DiagnosisConcepts._DiagnosisConcepts.OE278, DiagnosisConcepts._DiagnosisConcepts.OE279, + DiagnosisConcepts._DiagnosisConcepts.OE280, DiagnosisConcepts._DiagnosisConcepts.OE281, + DiagnosisConcepts._DiagnosisConcepts.OE282, DiagnosisConcepts._DiagnosisConcepts.OE283, + DiagnosisConcepts._DiagnosisConcepts.OE284, DiagnosisConcepts._DiagnosisConcepts.OE285, + DiagnosisConcepts._DiagnosisConcepts.OE286, DiagnosisConcepts._DiagnosisConcepts.OE287, + DiagnosisConcepts._DiagnosisConcepts.OE288, DiagnosisConcepts._DiagnosisConcepts.OE289, + DiagnosisConcepts._DiagnosisConcepts.OE290, DiagnosisConcepts._DiagnosisConcepts.OE291, + DiagnosisConcepts._DiagnosisConcepts.OE292, DiagnosisConcepts._DiagnosisConcepts.OE293, + DiagnosisConcepts._DiagnosisConcepts.OE294, DiagnosisConcepts._DiagnosisConcepts.OE295, + DiagnosisConcepts._DiagnosisConcepts.OE296, DiagnosisConcepts._DiagnosisConcepts.OE297, + DiagnosisConcepts._DiagnosisConcepts.OE298, DiagnosisConcepts._DiagnosisConcepts.OE299, + DiagnosisConcepts._DiagnosisConcepts.OE300, DiagnosisConcepts._DiagnosisConcepts.OE301, + DiagnosisConcepts._DiagnosisConcepts.OE302, DiagnosisConcepts._DiagnosisConcepts.OE303, + DiagnosisConcepts._DiagnosisConcepts.OE304, DiagnosisConcepts._DiagnosisConcepts.OE305, + DiagnosisConcepts._DiagnosisConcepts.OE306, DiagnosisConcepts._DiagnosisConcepts.OE307, + DiagnosisConcepts._DiagnosisConcepts.OE308, DiagnosisConcepts._DiagnosisConcepts.OE309, + DiagnosisConcepts._DiagnosisConcepts.OE310, DiagnosisConcepts._DiagnosisConcepts.OE311 + + ); + } + + public static List getEarInfectionsConditionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ERA1, DiagnosisConcepts._DiagnosisConcepts.ERA2, + DiagnosisConcepts._DiagnosisConcepts.ERA3, DiagnosisConcepts._DiagnosisConcepts.ERA4, + DiagnosisConcepts._DiagnosisConcepts.ERA5, DiagnosisConcepts._DiagnosisConcepts.ERA6, + DiagnosisConcepts._DiagnosisConcepts.ERA7); + } + + public static List getUpperRespiratoryTractInfectionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.UPPER_RESPIRATORY_TRACT_INFECTION, + DiagnosisConcepts._DiagnosisConcepts.WHO_HIV_RECURRENT_UPPER_RESPIRATORY_INFECTIONS, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Anomaly_of_Upper_Respiratory_System, + DiagnosisConcepts._DiagnosisConcepts.Congenital_Abnormality_of_Upper_Respiratory_Tract, + DiagnosisConcepts._DiagnosisConcepts.Benign_Neoplasm_of_Upper_Respiratory_Tract, + DiagnosisConcepts._DiagnosisConcepts.Viral_Upper_Respiratory_Tract_Infection, + DiagnosisConcepts._DiagnosisConcepts.Upper_Respiratory_Tract_Obstruction, + DiagnosisConcepts._DiagnosisConcepts.Upper_Respiratory_Tract_Hypersensitivity_Reaction, + DiagnosisConcepts._DiagnosisConcepts.Upper_Respiratory_Inflammation_due_to_Fumes_and_or_Vapors, + DiagnosisConcepts._DiagnosisConcepts.Upper_Respiratory_Inflammation_due_to_Chemical_Fumes, + DiagnosisConcepts._DiagnosisConcepts.Upper_Respiratory_Infection, + DiagnosisConcepts._DiagnosisConcepts.Recurrent_Upper_Respiratory_Tract_Infection, + DiagnosisConcepts._DiagnosisConcepts.Influenzal_Acute_Upper_Respiratory_Infection, + DiagnosisConcepts._DiagnosisConcepts.Disorder_of_Upper_Respiratory_System, + DiagnosisConcepts._DiagnosisConcepts.Acute_Upper_Respiratory_Infection_of_Multiple_Sites, + DiagnosisConcepts._DiagnosisConcepts.Acute_Upper_Respiratory_Infection, + DiagnosisConcepts._DiagnosisConcepts.COVID); + } + + public static List getAsthmaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ASTHMA1, DiagnosisConcepts._DiagnosisConcepts.ASTHMA2, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA3, DiagnosisConcepts._DiagnosisConcepts.ASTHMA4, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA5, DiagnosisConcepts._DiagnosisConcepts.ASTHMA6, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA6, DiagnosisConcepts._DiagnosisConcepts.ASTHMA7, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA8, DiagnosisConcepts._DiagnosisConcepts.ASTHMA9, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA10, DiagnosisConcepts._DiagnosisConcepts.ASTHMA11, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA12, DiagnosisConcepts._DiagnosisConcepts.ASTHMA13, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA14, DiagnosisConcepts._DiagnosisConcepts.ASTHMA15, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA16, DiagnosisConcepts._DiagnosisConcepts.ASTHMA17, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA18, DiagnosisConcepts._DiagnosisConcepts.ASTHMA19, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA20, DiagnosisConcepts._DiagnosisConcepts.ASTHMA21, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA22, DiagnosisConcepts._DiagnosisConcepts.ASTHMA23, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA24, DiagnosisConcepts._DiagnosisConcepts.ASTHMA25, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA26, DiagnosisConcepts._DiagnosisConcepts.ASTHMA27, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA28, DiagnosisConcepts._DiagnosisConcepts.ASTHMA29, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA30, DiagnosisConcepts._DiagnosisConcepts.ASTHMA31, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA32, DiagnosisConcepts._DiagnosisConcepts.ASTHMA33, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA34, DiagnosisConcepts._DiagnosisConcepts.ASTHMA35, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA36, DiagnosisConcepts._DiagnosisConcepts.ASTHMA37, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA38, DiagnosisConcepts._DiagnosisConcepts.ASTHMA39, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA40, DiagnosisConcepts._DiagnosisConcepts.ASTHMA41, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA42, DiagnosisConcepts._DiagnosisConcepts.ASTHMA43, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA44, DiagnosisConcepts._DiagnosisConcepts.ASTHMA45, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA46, DiagnosisConcepts._DiagnosisConcepts.ASTHMA47, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA48, DiagnosisConcepts._DiagnosisConcepts.ASTHMA49, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA50, DiagnosisConcepts._DiagnosisConcepts.ASTHMA51, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA52, DiagnosisConcepts._DiagnosisConcepts.ASTHMA53, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA54, DiagnosisConcepts._DiagnosisConcepts.ASTHMA55, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA56, DiagnosisConcepts._DiagnosisConcepts.ASTHMA57, + DiagnosisConcepts._DiagnosisConcepts.ASTHMA58 + + ); + } + + public static List getTonsilitiesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.TONSILITIES + + ); + } + + public static List getChromosomalAbnormalitiesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CHRAB1, DiagnosisConcepts._DiagnosisConcepts.CHRAB2, + DiagnosisConcepts._DiagnosisConcepts.CHRAB3, DiagnosisConcepts._DiagnosisConcepts.CHRAB4, + DiagnosisConcepts._DiagnosisConcepts.CHRAB5, DiagnosisConcepts._DiagnosisConcepts.CHRAB6, + DiagnosisConcepts._DiagnosisConcepts.CHRAB7, DiagnosisConcepts._DiagnosisConcepts.CHRAB8, + DiagnosisConcepts._DiagnosisConcepts.CHRAB9, DiagnosisConcepts._DiagnosisConcepts.CHRAB10 + + ); + } + + public static List getCongenitalAnomaliesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.COAN1, DiagnosisConcepts._DiagnosisConcepts.COAN2, + DiagnosisConcepts._DiagnosisConcepts.COAN3, DiagnosisConcepts._DiagnosisConcepts.COAN4, + DiagnosisConcepts._DiagnosisConcepts.COAN5, DiagnosisConcepts._DiagnosisConcepts.COAN7, + DiagnosisConcepts._DiagnosisConcepts.COAN8, DiagnosisConcepts._DiagnosisConcepts.COAN9, + DiagnosisConcepts._DiagnosisConcepts.COAN10, DiagnosisConcepts._DiagnosisConcepts.COAN11, + DiagnosisConcepts._DiagnosisConcepts.COAN12, DiagnosisConcepts._DiagnosisConcepts.COAN13, + DiagnosisConcepts._DiagnosisConcepts.COAN14, DiagnosisConcepts._DiagnosisConcepts.COAN15, + DiagnosisConcepts._DiagnosisConcepts.COAN16, DiagnosisConcepts._DiagnosisConcepts.COAN17, + DiagnosisConcepts._DiagnosisConcepts.COAN18, DiagnosisConcepts._DiagnosisConcepts.COAN19, + DiagnosisConcepts._DiagnosisConcepts.COAN20, DiagnosisConcepts._DiagnosisConcepts.COAN21, + DiagnosisConcepts._DiagnosisConcepts.COAN22, DiagnosisConcepts._DiagnosisConcepts.COAN23, + DiagnosisConcepts._DiagnosisConcepts.COAN24, DiagnosisConcepts._DiagnosisConcepts.COAN25, + DiagnosisConcepts._DiagnosisConcepts.COAN26, DiagnosisConcepts._DiagnosisConcepts.COAN27, + DiagnosisConcepts._DiagnosisConcepts.COAN28, DiagnosisConcepts._DiagnosisConcepts.COAN29, + DiagnosisConcepts._DiagnosisConcepts.COAN30, DiagnosisConcepts._DiagnosisConcepts.COAN31, + DiagnosisConcepts._DiagnosisConcepts.COAN32, DiagnosisConcepts._DiagnosisConcepts.COAN33, + DiagnosisConcepts._DiagnosisConcepts.COAN34, DiagnosisConcepts._DiagnosisConcepts.COAN35, + DiagnosisConcepts._DiagnosisConcepts.COAN36, DiagnosisConcepts._DiagnosisConcepts.COAN37, + DiagnosisConcepts._DiagnosisConcepts.COAN38, DiagnosisConcepts._DiagnosisConcepts.COAN39, + DiagnosisConcepts._DiagnosisConcepts.COAN40, DiagnosisConcepts._DiagnosisConcepts.COAN41, + DiagnosisConcepts._DiagnosisConcepts.COAN42, DiagnosisConcepts._DiagnosisConcepts.COAN43, + DiagnosisConcepts._DiagnosisConcepts.COAN44, DiagnosisConcepts._DiagnosisConcepts.COAN45, + DiagnosisConcepts._DiagnosisConcepts.COAN46, DiagnosisConcepts._DiagnosisConcepts.COAN47, + DiagnosisConcepts._DiagnosisConcepts.COAN48, DiagnosisConcepts._DiagnosisConcepts.COAN49, + DiagnosisConcepts._DiagnosisConcepts.COAN50, DiagnosisConcepts._DiagnosisConcepts.COAN51, + DiagnosisConcepts._DiagnosisConcepts.COAN52, DiagnosisConcepts._DiagnosisConcepts.COAN53, + DiagnosisConcepts._DiagnosisConcepts.COAN54, DiagnosisConcepts._DiagnosisConcepts.COAN55, + DiagnosisConcepts._DiagnosisConcepts.COAN56, DiagnosisConcepts._DiagnosisConcepts.COAN57, + DiagnosisConcepts._DiagnosisConcepts.COAN58, DiagnosisConcepts._DiagnosisConcepts.COAN59, + DiagnosisConcepts._DiagnosisConcepts.COAN60, DiagnosisConcepts._DiagnosisConcepts.COAN61, + DiagnosisConcepts._DiagnosisConcepts.COAN62, DiagnosisConcepts._DiagnosisConcepts.COAN63, + DiagnosisConcepts._DiagnosisConcepts.COAN64, DiagnosisConcepts._DiagnosisConcepts.COAN65, + DiagnosisConcepts._DiagnosisConcepts.COAN66, DiagnosisConcepts._DiagnosisConcepts.COAN67, + DiagnosisConcepts._DiagnosisConcepts.COAN68, DiagnosisConcepts._DiagnosisConcepts.COAN69, + DiagnosisConcepts._DiagnosisConcepts.COAN70, DiagnosisConcepts._DiagnosisConcepts.COAN71, + DiagnosisConcepts._DiagnosisConcepts.COAN72, DiagnosisConcepts._DiagnosisConcepts.COAN73, + DiagnosisConcepts._DiagnosisConcepts.COAN74, DiagnosisConcepts._DiagnosisConcepts.COAN75, + DiagnosisConcepts._DiagnosisConcepts.COAN76, DiagnosisConcepts._DiagnosisConcepts.COAN77, + DiagnosisConcepts._DiagnosisConcepts.COAN78, DiagnosisConcepts._DiagnosisConcepts.COAN79, + DiagnosisConcepts._DiagnosisConcepts.COAN80, DiagnosisConcepts._DiagnosisConcepts.COAN81, + DiagnosisConcepts._DiagnosisConcepts.COAN82, DiagnosisConcepts._DiagnosisConcepts.COAN83, + DiagnosisConcepts._DiagnosisConcepts.COAN84, DiagnosisConcepts._DiagnosisConcepts.COAN85, + DiagnosisConcepts._DiagnosisConcepts.COAN86, DiagnosisConcepts._DiagnosisConcepts.COAN87, + DiagnosisConcepts._DiagnosisConcepts.COAN88, DiagnosisConcepts._DiagnosisConcepts.COAN89, + DiagnosisConcepts._DiagnosisConcepts.COAN90, DiagnosisConcepts._DiagnosisConcepts.COAN91, + DiagnosisConcepts._DiagnosisConcepts.COAN92, DiagnosisConcepts._DiagnosisConcepts.COAN93, + DiagnosisConcepts._DiagnosisConcepts.COAN94, DiagnosisConcepts._DiagnosisConcepts.COAN95, + DiagnosisConcepts._DiagnosisConcepts.COAN96, DiagnosisConcepts._DiagnosisConcepts.COAN97, + DiagnosisConcepts._DiagnosisConcepts.COAN98, DiagnosisConcepts._DiagnosisConcepts.COAN99, + DiagnosisConcepts._DiagnosisConcepts.COAN100, DiagnosisConcepts._DiagnosisConcepts.COAN101, + DiagnosisConcepts._DiagnosisConcepts.COAN121, DiagnosisConcepts._DiagnosisConcepts.COAN120, + DiagnosisConcepts._DiagnosisConcepts.COAN122, DiagnosisConcepts._DiagnosisConcepts.COAN123, + DiagnosisConcepts._DiagnosisConcepts.COAN124, DiagnosisConcepts._DiagnosisConcepts.COAN125, + DiagnosisConcepts._DiagnosisConcepts.COAN126, DiagnosisConcepts._DiagnosisConcepts.COAN127, + DiagnosisConcepts._DiagnosisConcepts.COAN128, DiagnosisConcepts._DiagnosisConcepts.COAN129, + DiagnosisConcepts._DiagnosisConcepts.COAN130, DiagnosisConcepts._DiagnosisConcepts.COAN131, + DiagnosisConcepts._DiagnosisConcepts.COAN132, DiagnosisConcepts._DiagnosisConcepts.COAN133, + DiagnosisConcepts._DiagnosisConcepts.COAN134, DiagnosisConcepts._DiagnosisConcepts.COAN135, + DiagnosisConcepts._DiagnosisConcepts.COAN136, DiagnosisConcepts._DiagnosisConcepts.COAN137, + DiagnosisConcepts._DiagnosisConcepts.COAN138, DiagnosisConcepts._DiagnosisConcepts.COAN139, + DiagnosisConcepts._DiagnosisConcepts.COAN140, DiagnosisConcepts._DiagnosisConcepts.COAN141, + DiagnosisConcepts._DiagnosisConcepts.COAN142, DiagnosisConcepts._DiagnosisConcepts.COAN143, + DiagnosisConcepts._DiagnosisConcepts.COAN144, DiagnosisConcepts._DiagnosisConcepts.COAN145, + DiagnosisConcepts._DiagnosisConcepts.COAN146, DiagnosisConcepts._DiagnosisConcepts.COAN147, + DiagnosisConcepts._DiagnosisConcepts.COAN148, DiagnosisConcepts._DiagnosisConcepts.COAN149, + DiagnosisConcepts._DiagnosisConcepts.COAN150, DiagnosisConcepts._DiagnosisConcepts.COAN151, + DiagnosisConcepts._DiagnosisConcepts.COAN152, DiagnosisConcepts._DiagnosisConcepts.COAN153, + DiagnosisConcepts._DiagnosisConcepts.COAN154, DiagnosisConcepts._DiagnosisConcepts.COAN155, + DiagnosisConcepts._DiagnosisConcepts.COAN156, DiagnosisConcepts._DiagnosisConcepts.COAN157, + DiagnosisConcepts._DiagnosisConcepts.COAN158, DiagnosisConcepts._DiagnosisConcepts.COAN159, + DiagnosisConcepts._DiagnosisConcepts.COAN160, DiagnosisConcepts._DiagnosisConcepts.COAN161); + } + + public static List getPneumoniaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_1, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_2, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_3, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_4, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_6, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_7, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_8, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_9, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_11, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_12, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_13, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_14, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_15, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_16, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_17, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_18, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_19, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_20, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_21, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_23, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_24, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_25, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_26, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_27, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_28, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_29, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_30, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_31, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_32, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_33, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_34, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_35, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_36, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_37, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_38, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_39, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_40, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_41, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_42, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_43, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_44, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_45, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_46, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_47, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_48, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_49, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_50, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_51, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_52, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_53, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_58, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_55, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_56, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_57, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_59, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_60, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_61, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_62, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_63, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_64, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_65, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_66, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_67, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_68, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_69, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_70, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_71, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_72, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_73, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_74, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_75, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_76, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_77, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_78, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_79, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_80, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_81, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_82, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_83, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_84, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_85, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_86, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_87, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_88, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_89, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_90, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_91, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_92, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_93, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_94, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_95, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_96, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_97, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_98, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_99, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_100, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_101, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_102, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_103, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_107, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_108, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_109, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_110, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_111, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_112, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_113, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_114, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_115, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_117, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_118, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_119, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_120, DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_121, + DiagnosisConcepts._DiagnosisConcepts.PNEUMONIA_122); + } + + public static List getAbortionList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.ABORTION_1, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_2, DiagnosisConcepts._DiagnosisConcepts.ABORTION_3, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_4, DiagnosisConcepts._DiagnosisConcepts.ABORTION_5, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_6, DiagnosisConcepts._DiagnosisConcepts.ABORTION_7, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_8, DiagnosisConcepts._DiagnosisConcepts.ABORTION_9, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_10, DiagnosisConcepts._DiagnosisConcepts.ABORTION_11, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_12, DiagnosisConcepts._DiagnosisConcepts.ABORTION_13, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_14, DiagnosisConcepts._DiagnosisConcepts.ABORTION_15, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_16, DiagnosisConcepts._DiagnosisConcepts.ABORTION_17, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_18, DiagnosisConcepts._DiagnosisConcepts.ABORTION_19, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_20, DiagnosisConcepts._DiagnosisConcepts.ABORTION_21, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_22, DiagnosisConcepts._DiagnosisConcepts.ABORTION_23, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_24, DiagnosisConcepts._DiagnosisConcepts.ABORTION_25, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_26, DiagnosisConcepts._DiagnosisConcepts.ABORTION_27, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_28, DiagnosisConcepts._DiagnosisConcepts.ABORTION_29, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_30, DiagnosisConcepts._DiagnosisConcepts.ABORTION_31, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_32, DiagnosisConcepts._DiagnosisConcepts.ABORTION_33, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_34, DiagnosisConcepts._DiagnosisConcepts.ABORTION_35, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_36, DiagnosisConcepts._DiagnosisConcepts.ABORTION_37, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_38, DiagnosisConcepts._DiagnosisConcepts.ABORTION_39, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_40, DiagnosisConcepts._DiagnosisConcepts.ABORTION_41, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_42, DiagnosisConcepts._DiagnosisConcepts.ABORTION_43, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_44, DiagnosisConcepts._DiagnosisConcepts.ABORTION_45, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_46, DiagnosisConcepts._DiagnosisConcepts.ABORTION_47, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_48, DiagnosisConcepts._DiagnosisConcepts.ABORTION_49, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_50, DiagnosisConcepts._DiagnosisConcepts.ABORTION_51, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_52, DiagnosisConcepts._DiagnosisConcepts.ABORTION_53, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_54, DiagnosisConcepts._DiagnosisConcepts.ABORTION_55, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_56, DiagnosisConcepts._DiagnosisConcepts.ABORTION_57, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_58, DiagnosisConcepts._DiagnosisConcepts.ABORTION_59, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_60, DiagnosisConcepts._DiagnosisConcepts.ABORTION_61, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_62, DiagnosisConcepts._DiagnosisConcepts.ABORTION_63, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_64, DiagnosisConcepts._DiagnosisConcepts.ABORTION_65, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_66, DiagnosisConcepts._DiagnosisConcepts.ABORTION_67, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_68, DiagnosisConcepts._DiagnosisConcepts.ABORTION_69, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_70, DiagnosisConcepts._DiagnosisConcepts.ABORTION_71, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_72, DiagnosisConcepts._DiagnosisConcepts.ABORTION_73, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_74, DiagnosisConcepts._DiagnosisConcepts.ABORTION_75, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_76, DiagnosisConcepts._DiagnosisConcepts.ABORTION_77, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_78, DiagnosisConcepts._DiagnosisConcepts.ABORTION_79, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_80, DiagnosisConcepts._DiagnosisConcepts.ABORTION_81, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_82, DiagnosisConcepts._DiagnosisConcepts.ABORTION_83, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_84, DiagnosisConcepts._DiagnosisConcepts.ABORTION_85, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_86, DiagnosisConcepts._DiagnosisConcepts.ABORTION_87, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_88, DiagnosisConcepts._DiagnosisConcepts.ABORTION_89, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_90, DiagnosisConcepts._DiagnosisConcepts.ABORTION_91, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_92, DiagnosisConcepts._DiagnosisConcepts.ABORTION_93, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_94, DiagnosisConcepts._DiagnosisConcepts.ABORTION_95, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_96, DiagnosisConcepts._DiagnosisConcepts.ABORTION_97, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_98, DiagnosisConcepts._DiagnosisConcepts.ABORTION_99, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_100, DiagnosisConcepts._DiagnosisConcepts.ABORTION_101, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_102, DiagnosisConcepts._DiagnosisConcepts.ABORTION_103, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_104, DiagnosisConcepts._DiagnosisConcepts.ABORTION_105, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_106, DiagnosisConcepts._DiagnosisConcepts.ABORTION_107, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_108, DiagnosisConcepts._DiagnosisConcepts.ABORTION_109, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_110, DiagnosisConcepts._DiagnosisConcepts.ABORTION_111, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_112, DiagnosisConcepts._DiagnosisConcepts.ABORTION_113, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_114, DiagnosisConcepts._DiagnosisConcepts.ABORTION_115, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_116, DiagnosisConcepts._DiagnosisConcepts.ABORTION_117, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_118, DiagnosisConcepts._DiagnosisConcepts.ABORTION_119, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_120, DiagnosisConcepts._DiagnosisConcepts.ABORTION_121, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_122, DiagnosisConcepts._DiagnosisConcepts.ABORTION_123, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_124, DiagnosisConcepts._DiagnosisConcepts.ABORTION_125, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_126, DiagnosisConcepts._DiagnosisConcepts.ABORTION_127, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_128, DiagnosisConcepts._DiagnosisConcepts.ABORTION_129, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_130, DiagnosisConcepts._DiagnosisConcepts.ABORTION_131, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_132, DiagnosisConcepts._DiagnosisConcepts.ABORTION_133, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_134, DiagnosisConcepts._DiagnosisConcepts.ABORTION_135, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_136, DiagnosisConcepts._DiagnosisConcepts.ABORTION_137, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_138, DiagnosisConcepts._DiagnosisConcepts.ABORTION_139, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_140, DiagnosisConcepts._DiagnosisConcepts.ABORTION_141, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_142, DiagnosisConcepts._DiagnosisConcepts.ABORTION_143, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_144, DiagnosisConcepts._DiagnosisConcepts.ABORTION_145, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_146, DiagnosisConcepts._DiagnosisConcepts.ABORTION_147, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_148, DiagnosisConcepts._DiagnosisConcepts.ABORTION_149, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_150, DiagnosisConcepts._DiagnosisConcepts.ABORTION_151, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_152, DiagnosisConcepts._DiagnosisConcepts.ABORTION_153, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_154, DiagnosisConcepts._DiagnosisConcepts.ABORTION_155, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_156, DiagnosisConcepts._DiagnosisConcepts.ABORTION_157, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_158, DiagnosisConcepts._DiagnosisConcepts.ABORTION_159, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_160, DiagnosisConcepts._DiagnosisConcepts.ABORTION_161, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_162, DiagnosisConcepts._DiagnosisConcepts.ABORTION_163, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_164, DiagnosisConcepts._DiagnosisConcepts.ABORTION_165, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_166, DiagnosisConcepts._DiagnosisConcepts.ABORTION_167, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_168, DiagnosisConcepts._DiagnosisConcepts.ABORTION_169, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_170, DiagnosisConcepts._DiagnosisConcepts.ABORTION_171, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_172, DiagnosisConcepts._DiagnosisConcepts.ABORTION_173, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_174, DiagnosisConcepts._DiagnosisConcepts.ABORTION_175, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_176, DiagnosisConcepts._DiagnosisConcepts.ABORTION_177, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_178, DiagnosisConcepts._DiagnosisConcepts.ABORTION_179, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_180, DiagnosisConcepts._DiagnosisConcepts.ABORTION_181, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_182, DiagnosisConcepts._DiagnosisConcepts.ABORTION_183, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_186, DiagnosisConcepts._DiagnosisConcepts.ABORTION_185, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_187, DiagnosisConcepts._DiagnosisConcepts.ABORTION_188, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_189, DiagnosisConcepts._DiagnosisConcepts.ABORTION_190, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_191, DiagnosisConcepts._DiagnosisConcepts.ABORTION_192, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_193, DiagnosisConcepts._DiagnosisConcepts.ABORTION_194, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_195, DiagnosisConcepts._DiagnosisConcepts.ABORTION_196, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_197, DiagnosisConcepts._DiagnosisConcepts.ABORTION_198, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_199, DiagnosisConcepts._DiagnosisConcepts.ABORTION_200, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_201, DiagnosisConcepts._DiagnosisConcepts.ABORTION_202, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_203, DiagnosisConcepts._DiagnosisConcepts.ABORTION_204, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_205, DiagnosisConcepts._DiagnosisConcepts.ABORTION_206, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_207, DiagnosisConcepts._DiagnosisConcepts.ABORTION_208, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_209, DiagnosisConcepts._DiagnosisConcepts.ABORTION_210, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_211, DiagnosisConcepts._DiagnosisConcepts.ABORTION_212, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_213, DiagnosisConcepts._DiagnosisConcepts.ABORTION_214, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_215, DiagnosisConcepts._DiagnosisConcepts.ABORTION_216, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_217, DiagnosisConcepts._DiagnosisConcepts.ABORTION_218, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_219, DiagnosisConcepts._DiagnosisConcepts.ABORTION_220, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_221, DiagnosisConcepts._DiagnosisConcepts.ABORTION_222, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_223, DiagnosisConcepts._DiagnosisConcepts.ABORTION_224, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_225, DiagnosisConcepts._DiagnosisConcepts.ABORTION_226, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_227, DiagnosisConcepts._DiagnosisConcepts.ABORTION_228, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_229, DiagnosisConcepts._DiagnosisConcepts.ABORTION_230, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_231, DiagnosisConcepts._DiagnosisConcepts.ABORTION_232, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_233, DiagnosisConcepts._DiagnosisConcepts.ABORTION_234, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_235, DiagnosisConcepts._DiagnosisConcepts.ABORTION_236, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_237, DiagnosisConcepts._DiagnosisConcepts.ABORTION_238, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_239, DiagnosisConcepts._DiagnosisConcepts.ABORTION_240, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_241, DiagnosisConcepts._DiagnosisConcepts.ABORTION_242, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_243, DiagnosisConcepts._DiagnosisConcepts.ABORTION_244, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_245, DiagnosisConcepts._DiagnosisConcepts.ABORTION_246, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_247, DiagnosisConcepts._DiagnosisConcepts.ABORTION_248, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_252, DiagnosisConcepts._DiagnosisConcepts.ABORTION_250, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_251, DiagnosisConcepts._DiagnosisConcepts.ABORTION_253, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_254, DiagnosisConcepts._DiagnosisConcepts.ABORTION_255, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_256, DiagnosisConcepts._DiagnosisConcepts.ABORTION_257, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_258, DiagnosisConcepts._DiagnosisConcepts.ABORTION_259, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_260, DiagnosisConcepts._DiagnosisConcepts.ABORTION_261, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_262, DiagnosisConcepts._DiagnosisConcepts.ABORTION_263, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_264, DiagnosisConcepts._DiagnosisConcepts.ABORTION_265, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_266, DiagnosisConcepts._DiagnosisConcepts.ABORTION_267, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_268, DiagnosisConcepts._DiagnosisConcepts.ABORTION_269, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_270, DiagnosisConcepts._DiagnosisConcepts.ABORTION_271, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_272, DiagnosisConcepts._DiagnosisConcepts.ABORTION_273, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_274, DiagnosisConcepts._DiagnosisConcepts.ABORTION_275, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_276, DiagnosisConcepts._DiagnosisConcepts.ABORTION_277, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_278, DiagnosisConcepts._DiagnosisConcepts.ABORTION_279, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_280, DiagnosisConcepts._DiagnosisConcepts.ABORTION_281, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_282, DiagnosisConcepts._DiagnosisConcepts.ABORTION_283, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_284, DiagnosisConcepts._DiagnosisConcepts.ABORTION_285, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_286, DiagnosisConcepts._DiagnosisConcepts.ABORTION_287, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_288, DiagnosisConcepts._DiagnosisConcepts.ABORTION_289, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_290, DiagnosisConcepts._DiagnosisConcepts.ABORTION_291, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_292, DiagnosisConcepts._DiagnosisConcepts.ABORTION_293, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_294, DiagnosisConcepts._DiagnosisConcepts.ABORTION_295, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_296, DiagnosisConcepts._DiagnosisConcepts.ABORTION_297, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_298, DiagnosisConcepts._DiagnosisConcepts.ABORTION_299, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_300, DiagnosisConcepts._DiagnosisConcepts.ABORTION_301, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_302, DiagnosisConcepts._DiagnosisConcepts.ABORTION_303, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_304, DiagnosisConcepts._DiagnosisConcepts.ABORTION_305, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_306, DiagnosisConcepts._DiagnosisConcepts.ABORTION_307, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_307, DiagnosisConcepts._DiagnosisConcepts.ABORTION_308, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_309, DiagnosisConcepts._DiagnosisConcepts.ABORTION_310, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_311, DiagnosisConcepts._DiagnosisConcepts.ABORTION_312, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_313, DiagnosisConcepts._DiagnosisConcepts.ABORTION_314, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_315, DiagnosisConcepts._DiagnosisConcepts.ABORTION_316, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_317, DiagnosisConcepts._DiagnosisConcepts.ABORTION_317, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_318, DiagnosisConcepts._DiagnosisConcepts.ABORTION_319, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_320, DiagnosisConcepts._DiagnosisConcepts.ABORTION_321, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_322, DiagnosisConcepts._DiagnosisConcepts.ABORTION_323, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_324, DiagnosisConcepts._DiagnosisConcepts.ABORTION_325, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_326, DiagnosisConcepts._DiagnosisConcepts.ABORTION_327, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_328, DiagnosisConcepts._DiagnosisConcepts.ABORTION_329, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_330, DiagnosisConcepts._DiagnosisConcepts.ABORTION_331, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_332, DiagnosisConcepts._DiagnosisConcepts.ABORTION_333, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_334, DiagnosisConcepts._DiagnosisConcepts.ABORTION_335, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_336, DiagnosisConcepts._DiagnosisConcepts.ABORTION_337, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_338, DiagnosisConcepts._DiagnosisConcepts.ABORTION_339, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_340, DiagnosisConcepts._DiagnosisConcepts.ABORTION_341, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_342, DiagnosisConcepts._DiagnosisConcepts.ABORTION_343, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_344, DiagnosisConcepts._DiagnosisConcepts.ABORTION_345, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_346, DiagnosisConcepts._DiagnosisConcepts.ABORTION_347, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_348, DiagnosisConcepts._DiagnosisConcepts.ABORTION_349, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_351, DiagnosisConcepts._DiagnosisConcepts.ABORTION_352, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_353, DiagnosisConcepts._DiagnosisConcepts.ABORTION_354, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_355, DiagnosisConcepts._DiagnosisConcepts.ABORTION_356, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_357, DiagnosisConcepts._DiagnosisConcepts.ABORTION_358, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_359, DiagnosisConcepts._DiagnosisConcepts.ABORTION_360, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_361, DiagnosisConcepts._DiagnosisConcepts.ABORTION_362, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_363, DiagnosisConcepts._DiagnosisConcepts.ABORTION_364, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_365, DiagnosisConcepts._DiagnosisConcepts.ABORTION_366, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_367, DiagnosisConcepts._DiagnosisConcepts.ABORTION_368, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_369, DiagnosisConcepts._DiagnosisConcepts.ABORTION_370, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_371, DiagnosisConcepts._DiagnosisConcepts.ABORTION_372, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_373, DiagnosisConcepts._DiagnosisConcepts.ABORTION_374, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_375, DiagnosisConcepts._DiagnosisConcepts.ABORTION_376, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_377, DiagnosisConcepts._DiagnosisConcepts.ABORTION_378, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_379, DiagnosisConcepts._DiagnosisConcepts.ABORTION_380, + DiagnosisConcepts._DiagnosisConcepts.ABORTION_381); + + } + + public static List getDisOfPuerperiumChildbathList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DPCB1, DiagnosisConcepts._DiagnosisConcepts.DPCB2, + DiagnosisConcepts._DiagnosisConcepts.DPCB3, DiagnosisConcepts._DiagnosisConcepts.DPCB4, + DiagnosisConcepts._DiagnosisConcepts.DPCB5, DiagnosisConcepts._DiagnosisConcepts.DPCB6, + DiagnosisConcepts._DiagnosisConcepts.DPCB7, DiagnosisConcepts._DiagnosisConcepts.DPCB8, + DiagnosisConcepts._DiagnosisConcepts.DPCB9, DiagnosisConcepts._DiagnosisConcepts.DPCB10, + DiagnosisConcepts._DiagnosisConcepts.DPCB11, DiagnosisConcepts._DiagnosisConcepts.DPCB12, + DiagnosisConcepts._DiagnosisConcepts.DPCB13, DiagnosisConcepts._DiagnosisConcepts.DPCB14, + DiagnosisConcepts._DiagnosisConcepts.DPCB15, DiagnosisConcepts._DiagnosisConcepts.DPCB16, + DiagnosisConcepts._DiagnosisConcepts.DPCB17, DiagnosisConcepts._DiagnosisConcepts.DPCB18, + DiagnosisConcepts._DiagnosisConcepts.DPCB19, DiagnosisConcepts._DiagnosisConcepts.DPCB20, + DiagnosisConcepts._DiagnosisConcepts.DPCB21, DiagnosisConcepts._DiagnosisConcepts.DPCB22, + DiagnosisConcepts._DiagnosisConcepts.DPCB23, DiagnosisConcepts._DiagnosisConcepts.DPCB24, + DiagnosisConcepts._DiagnosisConcepts.DPCB25, DiagnosisConcepts._DiagnosisConcepts.DPCB26, + DiagnosisConcepts._DiagnosisConcepts.DPCB27, DiagnosisConcepts._DiagnosisConcepts.DPCB28, + DiagnosisConcepts._DiagnosisConcepts.DPCB29, DiagnosisConcepts._DiagnosisConcepts.DPCB30, + DiagnosisConcepts._DiagnosisConcepts.DPCB31, DiagnosisConcepts._DiagnosisConcepts.DPCB32, + DiagnosisConcepts._DiagnosisConcepts.DPCB33, DiagnosisConcepts._DiagnosisConcepts.DPCB34, + DiagnosisConcepts._DiagnosisConcepts.DPCB35, DiagnosisConcepts._DiagnosisConcepts.DPCB36, + DiagnosisConcepts._DiagnosisConcepts.DPCB37, DiagnosisConcepts._DiagnosisConcepts.DPCB38, + DiagnosisConcepts._DiagnosisConcepts.DPCB39, DiagnosisConcepts._DiagnosisConcepts.DPCB40, + DiagnosisConcepts._DiagnosisConcepts.DPCB41, DiagnosisConcepts._DiagnosisConcepts.DPCB42 + + ); + } + + public static List getHypertensionList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_1, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_2, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_3, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_4, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_5, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_6, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_7, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_8, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_9, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_10, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_11, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_12, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_13, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_14, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_15, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_16, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_17, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_18, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_19, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_20, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_21, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_22, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_23, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_24, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_25, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_26, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_27, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_28, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_29, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_30, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_31, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_32, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_33, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_34, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_35, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_36, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_37, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_38, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_39, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_40, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_41, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_42, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_43, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_44, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_45, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_46, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_47, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_48, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_49, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_50, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_51, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_52, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_53, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_54, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_55, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_56, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_57, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_58, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_59, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_60, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_61, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_62, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_63, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_64, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_65, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_66, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_67, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_68, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_69, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_70, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_71, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_72, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_73, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_74, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_75, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_76, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_77, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_78, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_79, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_80, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_81, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_82, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_83, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_84, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_85, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_86, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_87, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_88, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_89, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_90, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_91, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_92, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_93, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_94, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_95, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_96, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_97, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_98, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_99, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_100, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_101, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_102, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_103, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_104, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_105, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_106, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_107, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_108, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_109, + DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_110, DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_111 + + ); + } + + public static List getHypertensionConceptList() { + return Arrays.asList(getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_1), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_2), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_3), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_5), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_6), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_7), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_8), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_9), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_10), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_11), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_12), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_13), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_14), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_15), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_16), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_17), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_18), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_19), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_20), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_21), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_22), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_23), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_24), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_25), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_26), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_27), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_28), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_29), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_30), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_31), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_32), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_33), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_34), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_35), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_36), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_37), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_38), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_39), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_40), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_41), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_42), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_43), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_44), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_45), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_46), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_47), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_48), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_49), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_50), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_51), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_52), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_53), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_54), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_55), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_56), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_57), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_58), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_59), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_60), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_61), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_62), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_63), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_64), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_65), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_66), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_67), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_68), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_69), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_70), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_71), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_72), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_73), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_75), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_76), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_77), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_78), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_79), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_80), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_81), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_82), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_83), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_84), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_85), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_86), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_87), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_88), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_89), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_90), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_91), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_92), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_93), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_94), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_95), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_96), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_97), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_98), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_99), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_100), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_101), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_102), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_103), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_104), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_105), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_106), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_107), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_108), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_109), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_110), + getConcept(DiagnosisConcepts._DiagnosisConcepts.HYPERTENSION_111) + + ); + } + + public static List getMentalDisordersList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_1, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_2, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_3, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_4, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_5, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_6, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_7, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_8, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_9, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_10, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_11, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_12, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_13, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_14, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_15, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_16, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_17, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_18, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_19, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_20, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_21, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_22, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_23, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_24, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_25, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_26, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_27, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_28, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_37, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_30, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_31, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_32, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_33, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_34, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_35, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_36, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_36, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_38, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_39, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_40, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_41, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_42, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_43, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_44, DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_45, + DiagnosisConcepts._DiagnosisConcepts.MENTALDIS_46, + DiagnosisConcepts._DiagnosisConcepts.F000_Dementia_in_Alzheimer_disease_with_early_onset, + DiagnosisConcepts._DiagnosisConcepts.F01_Vascular_dementia, + DiagnosisConcepts._DiagnosisConcepts.F03_Unspecified_dementia, + DiagnosisConcepts._DiagnosisConcepts.F21_Schizotypal_disorder, + DiagnosisConcepts._DiagnosisConcepts.F010_Vascular_dementia_of_acute_onset, + DiagnosisConcepts._DiagnosisConcepts.F012_Subcortical_vascular_dementia, + DiagnosisConcepts._DiagnosisConcepts.F013_Mixed_cortical_and_subcortical_vascular_dementia, + DiagnosisConcepts._DiagnosisConcepts.F20_Schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F22_Persistent_delusional_disorders, + DiagnosisConcepts._DiagnosisConcepts.F23_Acute_and_transient_psychotic_disorders, + DiagnosisConcepts._DiagnosisConcepts.F24_Induced_delusional_disorder, + DiagnosisConcepts._DiagnosisConcepts.F25_Schizoaffective_disorders, + DiagnosisConcepts._DiagnosisConcepts.F250_Schizoaffective_disorder_manic_type, + DiagnosisConcepts._DiagnosisConcepts.F251_Schizoaffective_disorder_depressive_type, + DiagnosisConcepts._DiagnosisConcepts.F252_Schizoaffective_disorder_mixed_type, + DiagnosisConcepts._DiagnosisConcepts.F30_Manic_episode, DiagnosisConcepts._DiagnosisConcepts.F300_Hypomania, + DiagnosisConcepts._DiagnosisConcepts.F340_Cyclothymia, + DiagnosisConcepts._DiagnosisConcepts.F323_Severe_depressive_episode_with_psychotic_symptoms, + DiagnosisConcepts._DiagnosisConcepts.F322_Severe_depressive_episode_without_psychotic_symptoms, + DiagnosisConcepts._DiagnosisConcepts.F321_Moderate_depressive_episode, + DiagnosisConcepts._DiagnosisConcepts.F320_Mild_depressive_episode, + DiagnosisConcepts._DiagnosisConcepts.F302_Mania_with_psychotic_symptoms, + DiagnosisConcepts._DiagnosisConcepts.F301_Mania_without_psychotic_symptoms, + DiagnosisConcepts._DiagnosisConcepts.F011_Multi_infarct_dementia, + DiagnosisConcepts._DiagnosisConcepts.F200_Paranoid_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F201_Hebephrenic_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F202_Catatonic_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F203_Undifferentiated_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F204_Post_schizophrenic_depression, + DiagnosisConcepts._DiagnosisConcepts.F205_Residual_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F206_Simple_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F208_Other_schizophrenia, + DiagnosisConcepts._DiagnosisConcepts.F220_Delusional_disorder, + //DiagnosisConcepts._DiagnosisConcepts.F229_Persistent_delusional_disorder_unspecified, + DiagnosisConcepts._DiagnosisConcepts.F232_Acute_schizophrenia_like_psychotic_disorder + + ); + + } + + public static List getDentalDisordersList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DENTAL_1, DiagnosisConcepts._DiagnosisConcepts.DENTAL_2, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_3, DiagnosisConcepts._DiagnosisConcepts.DENTAL_4, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_5, DiagnosisConcepts._DiagnosisConcepts.DENTAL_6, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_7, DiagnosisConcepts._DiagnosisConcepts.DENTAL_8, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_9, DiagnosisConcepts._DiagnosisConcepts.DENTAL_10, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_11, DiagnosisConcepts._DiagnosisConcepts.DENTAL_12, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_13, DiagnosisConcepts._DiagnosisConcepts.DENTAL_14, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_15, DiagnosisConcepts._DiagnosisConcepts.DENTAL_16, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_17, DiagnosisConcepts._DiagnosisConcepts.DENTAL_18, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_19, DiagnosisConcepts._DiagnosisConcepts.DENTAL_20, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_21, DiagnosisConcepts._DiagnosisConcepts.DENTAL_22, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_23, DiagnosisConcepts._DiagnosisConcepts.DENTAL_24, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_25, DiagnosisConcepts._DiagnosisConcepts.DENTAL_26, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_27, DiagnosisConcepts._DiagnosisConcepts.DENTAL_28, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_29, DiagnosisConcepts._DiagnosisConcepts.DENTAL_30, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_31, DiagnosisConcepts._DiagnosisConcepts.DENTAL_32, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_33, DiagnosisConcepts._DiagnosisConcepts.DENTAL_34, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_35, DiagnosisConcepts._DiagnosisConcepts.DENTAL_36, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_37, DiagnosisConcepts._DiagnosisConcepts.DENTAL_38, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_39, DiagnosisConcepts._DiagnosisConcepts.DENTAL_40, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_41, DiagnosisConcepts._DiagnosisConcepts.DENTAL_42, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_43, DiagnosisConcepts._DiagnosisConcepts.DENTAL_44, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_45, DiagnosisConcepts._DiagnosisConcepts.DENTAL_46, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_47, DiagnosisConcepts._DiagnosisConcepts.DENTAL_48, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_49, DiagnosisConcepts._DiagnosisConcepts.DENTAL_50, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_51, DiagnosisConcepts._DiagnosisConcepts.DENTAL_52, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_53, DiagnosisConcepts._DiagnosisConcepts.DENTAL_54, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_55, DiagnosisConcepts._DiagnosisConcepts.DENTAL_56, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_57, DiagnosisConcepts._DiagnosisConcepts.DENTAL_58, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_59, DiagnosisConcepts._DiagnosisConcepts.DENTAL_60, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_61, DiagnosisConcepts._DiagnosisConcepts.DENTAL_62, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_63, DiagnosisConcepts._DiagnosisConcepts.DENTAL_64, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_65, DiagnosisConcepts._DiagnosisConcepts.DENTAL_66, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_67, DiagnosisConcepts._DiagnosisConcepts.DENTAL_68, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_69, DiagnosisConcepts._DiagnosisConcepts.DENTAL_70, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_71, DiagnosisConcepts._DiagnosisConcepts.DENTAL_72, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_73, DiagnosisConcepts._DiagnosisConcepts.DENTAL_74, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_75, DiagnosisConcepts._DiagnosisConcepts.DENTAL_76, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_77, DiagnosisConcepts._DiagnosisConcepts.DENTAL_78, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_79, DiagnosisConcepts._DiagnosisConcepts.DENTAL_80, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_81, DiagnosisConcepts._DiagnosisConcepts.DENTAL_82, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_83, DiagnosisConcepts._DiagnosisConcepts.DENTAL_84, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_85, DiagnosisConcepts._DiagnosisConcepts.DENTAL_86, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_87, DiagnosisConcepts._DiagnosisConcepts.DENTAL_88, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_89, DiagnosisConcepts._DiagnosisConcepts.DENTAL_90, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_91, DiagnosisConcepts._DiagnosisConcepts.DENTAL_92, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_93, DiagnosisConcepts._DiagnosisConcepts.DENTAL_94, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_95, DiagnosisConcepts._DiagnosisConcepts.DENTAL_96, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_97, DiagnosisConcepts._DiagnosisConcepts.DENTAL_100, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_99, DiagnosisConcepts._DiagnosisConcepts.DENTAL_101, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_102, DiagnosisConcepts._DiagnosisConcepts.DENTAL_103, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_104, DiagnosisConcepts._DiagnosisConcepts.DENTAL_105, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_106, DiagnosisConcepts._DiagnosisConcepts.DENTAL_107, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_108, DiagnosisConcepts._DiagnosisConcepts.DENTAL_109, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_110, DiagnosisConcepts._DiagnosisConcepts.DENTAL_111, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_112, DiagnosisConcepts._DiagnosisConcepts.DENTAL_113, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_114, DiagnosisConcepts._DiagnosisConcepts.DENTAL_115, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_116, DiagnosisConcepts._DiagnosisConcepts.DENTAL_117, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_118, DiagnosisConcepts._DiagnosisConcepts.DENTAL_119, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_120, DiagnosisConcepts._DiagnosisConcepts.DENTAL_121, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_122, DiagnosisConcepts._DiagnosisConcepts.DENTAL_123, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_124, DiagnosisConcepts._DiagnosisConcepts.DENTAL_125, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_126, DiagnosisConcepts._DiagnosisConcepts.DENTAL_127, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_128, DiagnosisConcepts._DiagnosisConcepts.DENTAL_129, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_130, DiagnosisConcepts._DiagnosisConcepts.DENTAL_131, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_132, DiagnosisConcepts._DiagnosisConcepts.DENTAL_133, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_134, DiagnosisConcepts._DiagnosisConcepts.DENTAL_135, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_136, DiagnosisConcepts._DiagnosisConcepts.DENTAL_137, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_138, DiagnosisConcepts._DiagnosisConcepts.DENTAL_139, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_140, DiagnosisConcepts._DiagnosisConcepts.DENTAL_141, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_142, DiagnosisConcepts._DiagnosisConcepts.DENTAL_143, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_144, DiagnosisConcepts._DiagnosisConcepts.DENTAL_145, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_146, DiagnosisConcepts._DiagnosisConcepts.DENTAL_147, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_147, DiagnosisConcepts._DiagnosisConcepts.DENTAL_149, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_150, DiagnosisConcepts._DiagnosisConcepts.DENTAL_151, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_152, DiagnosisConcepts._DiagnosisConcepts.DENTAL_153, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_154, DiagnosisConcepts._DiagnosisConcepts.DENTAL_155, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_156, DiagnosisConcepts._DiagnosisConcepts.DENTAL_157, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_158, DiagnosisConcepts._DiagnosisConcepts.DENTAL_159, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_160, DiagnosisConcepts._DiagnosisConcepts.DENTAL_161, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_162, DiagnosisConcepts._DiagnosisConcepts.DENTAL_163, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_164, DiagnosisConcepts._DiagnosisConcepts.DENTAL_165, + DiagnosisConcepts._DiagnosisConcepts.DENTAL_166, DiagnosisConcepts._DiagnosisConcepts.DENTAL_167 + + ); + + } + + public static List getDiseaseOfTheSkinList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.SKIN_1, DiagnosisConcepts._DiagnosisConcepts.SKIN_2, + DiagnosisConcepts._DiagnosisConcepts.SKIN_3, DiagnosisConcepts._DiagnosisConcepts.SKIN_4, + DiagnosisConcepts._DiagnosisConcepts.SKIN_5 + + ); + } + + public static List getAnthritisJointPainsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_1, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_2, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_3, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_4, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_5, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_6, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_7, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_8, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_9, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_10, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_11, + DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_12, DiagnosisConcepts._DiagnosisConcepts.JOINT_PAIN_13 + + ); + } + + public static List getPoisoningList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.POISONING_1, + DiagnosisConcepts._DiagnosisConcepts.POISONING_2, DiagnosisConcepts._DiagnosisConcepts.POISONING_3, + DiagnosisConcepts._DiagnosisConcepts.POISONING_4, DiagnosisConcepts._DiagnosisConcepts.POISONING_5, + DiagnosisConcepts._DiagnosisConcepts.POISONING_6, DiagnosisConcepts._DiagnosisConcepts.POISONING_7, + DiagnosisConcepts._DiagnosisConcepts.POISONING_8, DiagnosisConcepts._DiagnosisConcepts.POISONING_9, + DiagnosisConcepts._DiagnosisConcepts.POISONING_10, DiagnosisConcepts._DiagnosisConcepts.POISONING_11, + DiagnosisConcepts._DiagnosisConcepts.POISONING_12, DiagnosisConcepts._DiagnosisConcepts.POISONING_13, + DiagnosisConcepts._DiagnosisConcepts.POISONING_14, DiagnosisConcepts._DiagnosisConcepts.POISONING_15, + DiagnosisConcepts._DiagnosisConcepts.POISONING_16, DiagnosisConcepts._DiagnosisConcepts.POISONING_17, + DiagnosisConcepts._DiagnosisConcepts.POISONING_18, DiagnosisConcepts._DiagnosisConcepts.POISONING_19, + DiagnosisConcepts._DiagnosisConcepts.POISONING_20, DiagnosisConcepts._DiagnosisConcepts.POISONING_21, + DiagnosisConcepts._DiagnosisConcepts.POISONING_22, DiagnosisConcepts._DiagnosisConcepts.POISONING_23, + DiagnosisConcepts._DiagnosisConcepts.POISONING_24, DiagnosisConcepts._DiagnosisConcepts.POISONING_25, + DiagnosisConcepts._DiagnosisConcepts.POISONING_26, DiagnosisConcepts._DiagnosisConcepts.POISONING_27, + DiagnosisConcepts._DiagnosisConcepts.POISONING_28, DiagnosisConcepts._DiagnosisConcepts.POISONING_29, + DiagnosisConcepts._DiagnosisConcepts.POISONING_30, DiagnosisConcepts._DiagnosisConcepts.POISONING_31, + DiagnosisConcepts._DiagnosisConcepts.POISONING_32, DiagnosisConcepts._DiagnosisConcepts.POISONING_33, + DiagnosisConcepts._DiagnosisConcepts.POISONING_34, DiagnosisConcepts._DiagnosisConcepts.POISONING_35, + DiagnosisConcepts._DiagnosisConcepts.POISONING_36, DiagnosisConcepts._DiagnosisConcepts.POISONING_37, + DiagnosisConcepts._DiagnosisConcepts.POISONING_38, DiagnosisConcepts._DiagnosisConcepts.POISONING_39, + DiagnosisConcepts._DiagnosisConcepts.POISONING_40, DiagnosisConcepts._DiagnosisConcepts.POISONING_41, + DiagnosisConcepts._DiagnosisConcepts.POISONING_42, DiagnosisConcepts._DiagnosisConcepts.POISONING_43, + DiagnosisConcepts._DiagnosisConcepts.POISONING_44, DiagnosisConcepts._DiagnosisConcepts.POISONING_45, + DiagnosisConcepts._DiagnosisConcepts.POISONING_46, DiagnosisConcepts._DiagnosisConcepts.POISONING_47, + DiagnosisConcepts._DiagnosisConcepts.POISONING_48, DiagnosisConcepts._DiagnosisConcepts.POISONING_49, + DiagnosisConcepts._DiagnosisConcepts.POISONING_50 + + ); + } + + public static List getOtherInjuriesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.INJURY1, DiagnosisConcepts._DiagnosisConcepts.INJURY2, + DiagnosisConcepts._DiagnosisConcepts.INJURY3, DiagnosisConcepts._DiagnosisConcepts.INJURY4, + DiagnosisConcepts._DiagnosisConcepts.INJURY5, DiagnosisConcepts._DiagnosisConcepts.INJURY6, + DiagnosisConcepts._DiagnosisConcepts.INJURY7, DiagnosisConcepts._DiagnosisConcepts.INJURY8, + DiagnosisConcepts._DiagnosisConcepts.INJURY9, DiagnosisConcepts._DiagnosisConcepts.INJURY10, + DiagnosisConcepts._DiagnosisConcepts.INJURY11, DiagnosisConcepts._DiagnosisConcepts.INJURY12, + DiagnosisConcepts._DiagnosisConcepts.INJURY13, DiagnosisConcepts._DiagnosisConcepts.INJURY14, + DiagnosisConcepts._DiagnosisConcepts.INJURY15, DiagnosisConcepts._DiagnosisConcepts.INJURY16, + DiagnosisConcepts._DiagnosisConcepts.INJURY17, DiagnosisConcepts._DiagnosisConcepts.INJURY18, + DiagnosisConcepts._DiagnosisConcepts.INJURY19, DiagnosisConcepts._DiagnosisConcepts.INJURY20, + DiagnosisConcepts._DiagnosisConcepts.INJURY21, DiagnosisConcepts._DiagnosisConcepts.INJURY22, + DiagnosisConcepts._DiagnosisConcepts.INJURY23, DiagnosisConcepts._DiagnosisConcepts.INJURY24, + DiagnosisConcepts._DiagnosisConcepts.INJURY25, DiagnosisConcepts._DiagnosisConcepts.INJURY26, + DiagnosisConcepts._DiagnosisConcepts.INJURY27, DiagnosisConcepts._DiagnosisConcepts.INJURY28, + DiagnosisConcepts._DiagnosisConcepts.INJURY29, DiagnosisConcepts._DiagnosisConcepts.INJURY30, + DiagnosisConcepts._DiagnosisConcepts.INJURY31, DiagnosisConcepts._DiagnosisConcepts.INJURY32, + DiagnosisConcepts._DiagnosisConcepts.INJURY33, DiagnosisConcepts._DiagnosisConcepts.INJURY34, + DiagnosisConcepts._DiagnosisConcepts.INJURY35, DiagnosisConcepts._DiagnosisConcepts.INJURY36, + DiagnosisConcepts._DiagnosisConcepts.INJURY37, DiagnosisConcepts._DiagnosisConcepts.INJURY38, + DiagnosisConcepts._DiagnosisConcepts.INJURY39, DiagnosisConcepts._DiagnosisConcepts.INJURY40, + DiagnosisConcepts._DiagnosisConcepts.INJURY41, DiagnosisConcepts._DiagnosisConcepts.INJURY42, + DiagnosisConcepts._DiagnosisConcepts.INJURY43, DiagnosisConcepts._DiagnosisConcepts.INJURY44, + DiagnosisConcepts._DiagnosisConcepts.INJURY45, DiagnosisConcepts._DiagnosisConcepts.INJURY46, + DiagnosisConcepts._DiagnosisConcepts.INJURY47, DiagnosisConcepts._DiagnosisConcepts.INJURY48, + DiagnosisConcepts._DiagnosisConcepts.INJURY49, DiagnosisConcepts._DiagnosisConcepts.INJURY50, + DiagnosisConcepts._DiagnosisConcepts.INJURY51, DiagnosisConcepts._DiagnosisConcepts.INJURY52, + DiagnosisConcepts._DiagnosisConcepts.INJURY53, DiagnosisConcepts._DiagnosisConcepts.INJURY54, + DiagnosisConcepts._DiagnosisConcepts.INJURY55, DiagnosisConcepts._DiagnosisConcepts.INJURY56, + DiagnosisConcepts._DiagnosisConcepts.INJURY57, DiagnosisConcepts._DiagnosisConcepts.INJURY58, + DiagnosisConcepts._DiagnosisConcepts.INJURY59, DiagnosisConcepts._DiagnosisConcepts.INJURY60, + DiagnosisConcepts._DiagnosisConcepts.INJURY61, DiagnosisConcepts._DiagnosisConcepts.INJURY62, + DiagnosisConcepts._DiagnosisConcepts.INJURY63, DiagnosisConcepts._DiagnosisConcepts.INJURY64, + DiagnosisConcepts._DiagnosisConcepts.INJURY65, DiagnosisConcepts._DiagnosisConcepts.INJURY66, + DiagnosisConcepts._DiagnosisConcepts.INJURY67, DiagnosisConcepts._DiagnosisConcepts.INJURY68, + DiagnosisConcepts._DiagnosisConcepts.INJURY69, DiagnosisConcepts._DiagnosisConcepts.INJURY70, + DiagnosisConcepts._DiagnosisConcepts.INJURY71, DiagnosisConcepts._DiagnosisConcepts.INJURY72, + DiagnosisConcepts._DiagnosisConcepts.INJURY73, DiagnosisConcepts._DiagnosisConcepts.INJURY74, + DiagnosisConcepts._DiagnosisConcepts.INJURY75, DiagnosisConcepts._DiagnosisConcepts.INJURY76, + DiagnosisConcepts._DiagnosisConcepts.INJURY77, DiagnosisConcepts._DiagnosisConcepts.INJURY78, + DiagnosisConcepts._DiagnosisConcepts.INJURY79, DiagnosisConcepts._DiagnosisConcepts.INJURY80, + DiagnosisConcepts._DiagnosisConcepts.INJURY81, DiagnosisConcepts._DiagnosisConcepts.INJURY82, + DiagnosisConcepts._DiagnosisConcepts.INJURY83, DiagnosisConcepts._DiagnosisConcepts.INJURY84, + DiagnosisConcepts._DiagnosisConcepts.INJURY85, DiagnosisConcepts._DiagnosisConcepts.INJURY86, + DiagnosisConcepts._DiagnosisConcepts.INJURY87, DiagnosisConcepts._DiagnosisConcepts.INJURY88, + DiagnosisConcepts._DiagnosisConcepts.INJURY89, DiagnosisConcepts._DiagnosisConcepts.INJURY90, + DiagnosisConcepts._DiagnosisConcepts.INJURY91, DiagnosisConcepts._DiagnosisConcepts.INJURY92, + DiagnosisConcepts._DiagnosisConcepts.INJURY93, DiagnosisConcepts._DiagnosisConcepts.INJURY94, + DiagnosisConcepts._DiagnosisConcepts.INJURY95, DiagnosisConcepts._DiagnosisConcepts.INJURY96, + DiagnosisConcepts._DiagnosisConcepts.INJURY97, DiagnosisConcepts._DiagnosisConcepts.INJURY98, + DiagnosisConcepts._DiagnosisConcepts.INJURY99, DiagnosisConcepts._DiagnosisConcepts.INJURY100, + DiagnosisConcepts._DiagnosisConcepts.INJURY101, DiagnosisConcepts._DiagnosisConcepts.INJURY102, + DiagnosisConcepts._DiagnosisConcepts.INJURY103, DiagnosisConcepts._DiagnosisConcepts.INJURY104, + DiagnosisConcepts._DiagnosisConcepts.INJURY105, DiagnosisConcepts._DiagnosisConcepts.INJURY106, + DiagnosisConcepts._DiagnosisConcepts.INJURY107, DiagnosisConcepts._DiagnosisConcepts.INJURY108, + DiagnosisConcepts._DiagnosisConcepts.INJURY109, DiagnosisConcepts._DiagnosisConcepts.INJURY110, + DiagnosisConcepts._DiagnosisConcepts.INJURY111, DiagnosisConcepts._DiagnosisConcepts.INJURY112, + DiagnosisConcepts._DiagnosisConcepts.INJURY113, DiagnosisConcepts._DiagnosisConcepts.INJURY114, + DiagnosisConcepts._DiagnosisConcepts.INJURY115, DiagnosisConcepts._DiagnosisConcepts.INJURY116, + DiagnosisConcepts._DiagnosisConcepts.INJURY117, DiagnosisConcepts._DiagnosisConcepts.INJURY118, + DiagnosisConcepts._DiagnosisConcepts.INJURY119, DiagnosisConcepts._DiagnosisConcepts.INJURY120, + DiagnosisConcepts._DiagnosisConcepts.INJURY121, DiagnosisConcepts._DiagnosisConcepts.INJURY122, + DiagnosisConcepts._DiagnosisConcepts.INJURY123, DiagnosisConcepts._DiagnosisConcepts.INJURY124, + DiagnosisConcepts._DiagnosisConcepts.INJURY125, DiagnosisConcepts._DiagnosisConcepts.INJURY126, + DiagnosisConcepts._DiagnosisConcepts.INJURY127, DiagnosisConcepts._DiagnosisConcepts.INJURY128, + DiagnosisConcepts._DiagnosisConcepts.INJURY129, DiagnosisConcepts._DiagnosisConcepts.INJURY130, + DiagnosisConcepts._DiagnosisConcepts.INJURY131, DiagnosisConcepts._DiagnosisConcepts.INJURY132, + DiagnosisConcepts._DiagnosisConcepts.INJURY133, DiagnosisConcepts._DiagnosisConcepts.INJURY134, + DiagnosisConcepts._DiagnosisConcepts.INJURY135, DiagnosisConcepts._DiagnosisConcepts.INJURY136, + DiagnosisConcepts._DiagnosisConcepts.INJURY137, DiagnosisConcepts._DiagnosisConcepts.INJURY138, + DiagnosisConcepts._DiagnosisConcepts.INJURY139, DiagnosisConcepts._DiagnosisConcepts.INJURY140, + DiagnosisConcepts._DiagnosisConcepts.INJURY141, DiagnosisConcepts._DiagnosisConcepts.INJURY142, + DiagnosisConcepts._DiagnosisConcepts.INJURY143, DiagnosisConcepts._DiagnosisConcepts.INJURY144, + DiagnosisConcepts._DiagnosisConcepts.INJURY145, DiagnosisConcepts._DiagnosisConcepts.INJURY146, + DiagnosisConcepts._DiagnosisConcepts.INJURY147, DiagnosisConcepts._DiagnosisConcepts.INJURY148, + DiagnosisConcepts._DiagnosisConcepts.INJURY149, DiagnosisConcepts._DiagnosisConcepts.INJURY150, + DiagnosisConcepts._DiagnosisConcepts.INJURY151, DiagnosisConcepts._DiagnosisConcepts.INJURY152, + DiagnosisConcepts._DiagnosisConcepts.INJURY153, DiagnosisConcepts._DiagnosisConcepts.INJURY154, + DiagnosisConcepts._DiagnosisConcepts.INJURY155, DiagnosisConcepts._DiagnosisConcepts.INJURY156, + DiagnosisConcepts._DiagnosisConcepts.INJURY157, DiagnosisConcepts._DiagnosisConcepts.INJURY158, + DiagnosisConcepts._DiagnosisConcepts.INJURY159, DiagnosisConcepts._DiagnosisConcepts.INJURY160, + DiagnosisConcepts._DiagnosisConcepts.INJURY161, DiagnosisConcepts._DiagnosisConcepts.INJURY162, + DiagnosisConcepts._DiagnosisConcepts.INJURY163, DiagnosisConcepts._DiagnosisConcepts.INJURY164, + DiagnosisConcepts._DiagnosisConcepts.INJURY165, DiagnosisConcepts._DiagnosisConcepts.INJURY166, + DiagnosisConcepts._DiagnosisConcepts.INJURY167, DiagnosisConcepts._DiagnosisConcepts.INJURY168, + DiagnosisConcepts._DiagnosisConcepts.INJURY169, DiagnosisConcepts._DiagnosisConcepts.INJURY170, + DiagnosisConcepts._DiagnosisConcepts.INJURY171, DiagnosisConcepts._DiagnosisConcepts.INJURY172, + DiagnosisConcepts._DiagnosisConcepts.INJURY173, DiagnosisConcepts._DiagnosisConcepts.INJURY174, + DiagnosisConcepts._DiagnosisConcepts.INJURY175, DiagnosisConcepts._DiagnosisConcepts.INJURY176, + DiagnosisConcepts._DiagnosisConcepts.INJURY177, DiagnosisConcepts._DiagnosisConcepts.INJURY178, + DiagnosisConcepts._DiagnosisConcepts.INJURY179, DiagnosisConcepts._DiagnosisConcepts.INJURY180, + DiagnosisConcepts._DiagnosisConcepts.INJURY181, DiagnosisConcepts._DiagnosisConcepts.INJURY182, + DiagnosisConcepts._DiagnosisConcepts.INJURY183, DiagnosisConcepts._DiagnosisConcepts.INJURY184, + DiagnosisConcepts._DiagnosisConcepts.INJURY185, DiagnosisConcepts._DiagnosisConcepts.INJURY186, + DiagnosisConcepts._DiagnosisConcepts.INJURY187, DiagnosisConcepts._DiagnosisConcepts.INJURY188, + DiagnosisConcepts._DiagnosisConcepts.INJURY189, DiagnosisConcepts._DiagnosisConcepts.INJURY190, + DiagnosisConcepts._DiagnosisConcepts.INJURY191, DiagnosisConcepts._DiagnosisConcepts.INJURY192, + DiagnosisConcepts._DiagnosisConcepts.INJURY193, DiagnosisConcepts._DiagnosisConcepts.INJURY194, + DiagnosisConcepts._DiagnosisConcepts.INJURY195, DiagnosisConcepts._DiagnosisConcepts.INJURY196, + DiagnosisConcepts._DiagnosisConcepts.INJURY197, DiagnosisConcepts._DiagnosisConcepts.INJURY198, + DiagnosisConcepts._DiagnosisConcepts.INJURY199, DiagnosisConcepts._DiagnosisConcepts.INJURY200, + DiagnosisConcepts._DiagnosisConcepts.INJURY201, DiagnosisConcepts._DiagnosisConcepts.INJURY202, + DiagnosisConcepts._DiagnosisConcepts.INJURY203, DiagnosisConcepts._DiagnosisConcepts.INJURY204, + DiagnosisConcepts._DiagnosisConcepts.INJURY205, DiagnosisConcepts._DiagnosisConcepts.INJURY206, + DiagnosisConcepts._DiagnosisConcepts.INJURY207, DiagnosisConcepts._DiagnosisConcepts.INJURY208, + DiagnosisConcepts._DiagnosisConcepts.INJURY209, DiagnosisConcepts._DiagnosisConcepts.INJURY210, + DiagnosisConcepts._DiagnosisConcepts.INJURY211, DiagnosisConcepts._DiagnosisConcepts.INJURY212, + DiagnosisConcepts._DiagnosisConcepts.INJURY213, DiagnosisConcepts._DiagnosisConcepts.INJURY214, + DiagnosisConcepts._DiagnosisConcepts.INJURY215, DiagnosisConcepts._DiagnosisConcepts.INJURY216, + DiagnosisConcepts._DiagnosisConcepts.INJURY217, DiagnosisConcepts._DiagnosisConcepts.INJURY218, + DiagnosisConcepts._DiagnosisConcepts.INJURY219, DiagnosisConcepts._DiagnosisConcepts.INJURY220, + DiagnosisConcepts._DiagnosisConcepts.INJURY221, DiagnosisConcepts._DiagnosisConcepts.INJURY222, + DiagnosisConcepts._DiagnosisConcepts.INJURY223, DiagnosisConcepts._DiagnosisConcepts.INJURY224, + DiagnosisConcepts._DiagnosisConcepts.INJURY225, DiagnosisConcepts._DiagnosisConcepts.INJURY226, + DiagnosisConcepts._DiagnosisConcepts.INJURY227, DiagnosisConcepts._DiagnosisConcepts.INJURY228, + DiagnosisConcepts._DiagnosisConcepts.INJURY229, DiagnosisConcepts._DiagnosisConcepts.INJURY230, + DiagnosisConcepts._DiagnosisConcepts.INJURY231, DiagnosisConcepts._DiagnosisConcepts.INJURY232, + DiagnosisConcepts._DiagnosisConcepts.INJURY233, DiagnosisConcepts._DiagnosisConcepts.INJURY234, + DiagnosisConcepts._DiagnosisConcepts.INJURY235, DiagnosisConcepts._DiagnosisConcepts.INJURY236, + DiagnosisConcepts._DiagnosisConcepts.INJURY237, DiagnosisConcepts._DiagnosisConcepts.INJURY238, + DiagnosisConcepts._DiagnosisConcepts.INJURY239, DiagnosisConcepts._DiagnosisConcepts.INJURY240, + DiagnosisConcepts._DiagnosisConcepts.INJURY241, DiagnosisConcepts._DiagnosisConcepts.INJURY242, + DiagnosisConcepts._DiagnosisConcepts.INJURY243, DiagnosisConcepts._DiagnosisConcepts.INJURY244, + DiagnosisConcepts._DiagnosisConcepts.INJURY245, DiagnosisConcepts._DiagnosisConcepts.INJURY246, + DiagnosisConcepts._DiagnosisConcepts.INJURY247, DiagnosisConcepts._DiagnosisConcepts.INJURY248, + DiagnosisConcepts._DiagnosisConcepts.INJURY249, DiagnosisConcepts._DiagnosisConcepts.INJURY250, + DiagnosisConcepts._DiagnosisConcepts.INJURY251, DiagnosisConcepts._DiagnosisConcepts.INJURY252, + DiagnosisConcepts._DiagnosisConcepts.INJURY253, DiagnosisConcepts._DiagnosisConcepts.INJURY254, + DiagnosisConcepts._DiagnosisConcepts.INJURY255, DiagnosisConcepts._DiagnosisConcepts.INJURY256, + DiagnosisConcepts._DiagnosisConcepts.INJURY257, DiagnosisConcepts._DiagnosisConcepts.INJURY258, + DiagnosisConcepts._DiagnosisConcepts.INJURY259, DiagnosisConcepts._DiagnosisConcepts.INJURY260, + DiagnosisConcepts._DiagnosisConcepts.INJURY261, DiagnosisConcepts._DiagnosisConcepts.INJURY262, + DiagnosisConcepts._DiagnosisConcepts.INJURY263, DiagnosisConcepts._DiagnosisConcepts.INJURY264, + DiagnosisConcepts._DiagnosisConcepts.INJURY265, DiagnosisConcepts._DiagnosisConcepts.INJURY266, + DiagnosisConcepts._DiagnosisConcepts.INJURY267, DiagnosisConcepts._DiagnosisConcepts.INJURY268, + DiagnosisConcepts._DiagnosisConcepts.INJURY269, DiagnosisConcepts._DiagnosisConcepts.INJURY270, + DiagnosisConcepts._DiagnosisConcepts.INJURY271, DiagnosisConcepts._DiagnosisConcepts.INJURY272, + DiagnosisConcepts._DiagnosisConcepts.INJURY273, DiagnosisConcepts._DiagnosisConcepts.INJURY274, + DiagnosisConcepts._DiagnosisConcepts.INJURY275, DiagnosisConcepts._DiagnosisConcepts.INJURY276, + DiagnosisConcepts._DiagnosisConcepts.INJURY277, DiagnosisConcepts._DiagnosisConcepts.INJURY278, + DiagnosisConcepts._DiagnosisConcepts.INJURY279, DiagnosisConcepts._DiagnosisConcepts.INJURY280, + DiagnosisConcepts._DiagnosisConcepts.INJURY281, DiagnosisConcepts._DiagnosisConcepts.INJURY282, + DiagnosisConcepts._DiagnosisConcepts.INJURY283, DiagnosisConcepts._DiagnosisConcepts.INJURY284, + DiagnosisConcepts._DiagnosisConcepts.INJURY285, DiagnosisConcepts._DiagnosisConcepts.INJURY286, + DiagnosisConcepts._DiagnosisConcepts.INJURY287, DiagnosisConcepts._DiagnosisConcepts.INJURY288, + DiagnosisConcepts._DiagnosisConcepts.INJURY289, DiagnosisConcepts._DiagnosisConcepts.INJURY290, + DiagnosisConcepts._DiagnosisConcepts.INJURY291, DiagnosisConcepts._DiagnosisConcepts.INJURY292, + DiagnosisConcepts._DiagnosisConcepts.INJURY293, DiagnosisConcepts._DiagnosisConcepts.INJURY294, + DiagnosisConcepts._DiagnosisConcepts.INJURY295, DiagnosisConcepts._DiagnosisConcepts.INJURY296, + DiagnosisConcepts._DiagnosisConcepts.INJURY297, DiagnosisConcepts._DiagnosisConcepts.INJURY298, + DiagnosisConcepts._DiagnosisConcepts.INJURY299, DiagnosisConcepts._DiagnosisConcepts.INJURY300, + DiagnosisConcepts._DiagnosisConcepts.INJURY301, DiagnosisConcepts._DiagnosisConcepts.INJURY302, + DiagnosisConcepts._DiagnosisConcepts.INJURY303, DiagnosisConcepts._DiagnosisConcepts.INJURY304, + DiagnosisConcepts._DiagnosisConcepts.INJURY305, DiagnosisConcepts._DiagnosisConcepts.INJURY306, + DiagnosisConcepts._DiagnosisConcepts.INJURY307, DiagnosisConcepts._DiagnosisConcepts.INJURY308, + DiagnosisConcepts._DiagnosisConcepts.INJURY309, DiagnosisConcepts._DiagnosisConcepts.INJURY310, + DiagnosisConcepts._DiagnosisConcepts.INJURY311, DiagnosisConcepts._DiagnosisConcepts.INJURY312, + DiagnosisConcepts._DiagnosisConcepts.INJURY313, DiagnosisConcepts._DiagnosisConcepts.INJURY314, + DiagnosisConcepts._DiagnosisConcepts.INJURY315, DiagnosisConcepts._DiagnosisConcepts.INJURY316, + DiagnosisConcepts._DiagnosisConcepts.INJURY317, DiagnosisConcepts._DiagnosisConcepts.INJURY318, + DiagnosisConcepts._DiagnosisConcepts.INJURY319, DiagnosisConcepts._DiagnosisConcepts.INJURY320, + DiagnosisConcepts._DiagnosisConcepts.INJURY321, DiagnosisConcepts._DiagnosisConcepts.INJURY322, + DiagnosisConcepts._DiagnosisConcepts.INJURY323, DiagnosisConcepts._DiagnosisConcepts.INJURY324, + DiagnosisConcepts._DiagnosisConcepts.INJURY325, DiagnosisConcepts._DiagnosisConcepts.INJURY326, + DiagnosisConcepts._DiagnosisConcepts.INJURY327, DiagnosisConcepts._DiagnosisConcepts.INJURY328, + DiagnosisConcepts._DiagnosisConcepts.INJURY329, DiagnosisConcepts._DiagnosisConcepts.INJURY330, + DiagnosisConcepts._DiagnosisConcepts.INJURY331, DiagnosisConcepts._DiagnosisConcepts.INJURY332, + DiagnosisConcepts._DiagnosisConcepts.INJURY333, DiagnosisConcepts._DiagnosisConcepts.INJURY334, + DiagnosisConcepts._DiagnosisConcepts.INJURY335, DiagnosisConcepts._DiagnosisConcepts.INJURY336, + DiagnosisConcepts._DiagnosisConcepts.INJURY337, DiagnosisConcepts._DiagnosisConcepts.INJURY338, + DiagnosisConcepts._DiagnosisConcepts.INJURY339, DiagnosisConcepts._DiagnosisConcepts.INJURY340, + DiagnosisConcepts._DiagnosisConcepts.INJURY341, DiagnosisConcepts._DiagnosisConcepts.INJURY342, + DiagnosisConcepts._DiagnosisConcepts.INJURY343, DiagnosisConcepts._DiagnosisConcepts.INJURY344, + DiagnosisConcepts._DiagnosisConcepts.INJURY345, DiagnosisConcepts._DiagnosisConcepts.INJURY346, + DiagnosisConcepts._DiagnosisConcepts.INJURY347, DiagnosisConcepts._DiagnosisConcepts.INJURY348, + DiagnosisConcepts._DiagnosisConcepts.INJURY349, DiagnosisConcepts._DiagnosisConcepts.INJURY350, + DiagnosisConcepts._DiagnosisConcepts.INJURY351, DiagnosisConcepts._DiagnosisConcepts.INJURY352, + DiagnosisConcepts._DiagnosisConcepts.INJURY353, DiagnosisConcepts._DiagnosisConcepts.INJURY354, + DiagnosisConcepts._DiagnosisConcepts.INJURY355, DiagnosisConcepts._DiagnosisConcepts.INJURY356, + DiagnosisConcepts._DiagnosisConcepts.INJURY357, DiagnosisConcepts._DiagnosisConcepts.INJURY358, + DiagnosisConcepts._DiagnosisConcepts.INJURY359, DiagnosisConcepts._DiagnosisConcepts.INJURY360, + DiagnosisConcepts._DiagnosisConcepts.INJURY361, DiagnosisConcepts._DiagnosisConcepts.INJURY362, + DiagnosisConcepts._DiagnosisConcepts.INJURY363, DiagnosisConcepts._DiagnosisConcepts.INJURY364, + DiagnosisConcepts._DiagnosisConcepts.INJURY365, DiagnosisConcepts._DiagnosisConcepts.INJURY366, + DiagnosisConcepts._DiagnosisConcepts.INJURY367, DiagnosisConcepts._DiagnosisConcepts.INJURY368, + DiagnosisConcepts._DiagnosisConcepts.INJURY369, DiagnosisConcepts._DiagnosisConcepts.INJURY370, + DiagnosisConcepts._DiagnosisConcepts.INJURY371, DiagnosisConcepts._DiagnosisConcepts.INJURY372, + DiagnosisConcepts._DiagnosisConcepts.INJURY373, DiagnosisConcepts._DiagnosisConcepts.INJURY374, + DiagnosisConcepts._DiagnosisConcepts.INJURY375, DiagnosisConcepts._DiagnosisConcepts.INJURY376, + DiagnosisConcepts._DiagnosisConcepts.INJURY377, DiagnosisConcepts._DiagnosisConcepts.INJURY378, + DiagnosisConcepts._DiagnosisConcepts.INJURY379, DiagnosisConcepts._DiagnosisConcepts.INJURY380, + DiagnosisConcepts._DiagnosisConcepts.INJURY381, DiagnosisConcepts._DiagnosisConcepts.INJURY382, + DiagnosisConcepts._DiagnosisConcepts.INJURY383, DiagnosisConcepts._DiagnosisConcepts.INJURY384, + DiagnosisConcepts._DiagnosisConcepts.INJURY385, DiagnosisConcepts._DiagnosisConcepts.INJURY386, + DiagnosisConcepts._DiagnosisConcepts.INJURY387, DiagnosisConcepts._DiagnosisConcepts.INJURY388, + DiagnosisConcepts._DiagnosisConcepts.INJURY389, DiagnosisConcepts._DiagnosisConcepts.INJURY390, + DiagnosisConcepts._DiagnosisConcepts.INJURY391, DiagnosisConcepts._DiagnosisConcepts.INJURY392, + DiagnosisConcepts._DiagnosisConcepts.INJURY393, DiagnosisConcepts._DiagnosisConcepts.INJURY394, + DiagnosisConcepts._DiagnosisConcepts.INJURY395, DiagnosisConcepts._DiagnosisConcepts.INJURY396, + DiagnosisConcepts._DiagnosisConcepts.INJURY397, DiagnosisConcepts._DiagnosisConcepts.INJURY398, + DiagnosisConcepts._DiagnosisConcepts.INJURY399, DiagnosisConcepts._DiagnosisConcepts.INJURY400, + DiagnosisConcepts._DiagnosisConcepts.INJURY401, DiagnosisConcepts._DiagnosisConcepts.INJURY402, + DiagnosisConcepts._DiagnosisConcepts.INJURY403, DiagnosisConcepts._DiagnosisConcepts.INJURY404, + DiagnosisConcepts._DiagnosisConcepts.INJURY405, DiagnosisConcepts._DiagnosisConcepts.INJURY406, + DiagnosisConcepts._DiagnosisConcepts.INJURY407, DiagnosisConcepts._DiagnosisConcepts.INJURY408, + DiagnosisConcepts._DiagnosisConcepts.INJURY409, DiagnosisConcepts._DiagnosisConcepts.INJURY410, + DiagnosisConcepts._DiagnosisConcepts.INJURY411, DiagnosisConcepts._DiagnosisConcepts.INJURY412, + DiagnosisConcepts._DiagnosisConcepts.INJURY413, DiagnosisConcepts._DiagnosisConcepts.INJURY414, + DiagnosisConcepts._DiagnosisConcepts.INJURY415, DiagnosisConcepts._DiagnosisConcepts.INJURY416, + DiagnosisConcepts._DiagnosisConcepts.INJURY417, DiagnosisConcepts._DiagnosisConcepts.INJURY418, + DiagnosisConcepts._DiagnosisConcepts.INJURY419, DiagnosisConcepts._DiagnosisConcepts.INJURY420, + DiagnosisConcepts._DiagnosisConcepts.INJURY421, DiagnosisConcepts._DiagnosisConcepts.INJURY422, + DiagnosisConcepts._DiagnosisConcepts.INJURY423, DiagnosisConcepts._DiagnosisConcepts.INJURY424, + DiagnosisConcepts._DiagnosisConcepts.INJURY425, DiagnosisConcepts._DiagnosisConcepts.INJURY426, + DiagnosisConcepts._DiagnosisConcepts.INJURY427, DiagnosisConcepts._DiagnosisConcepts.INJURY428, + DiagnosisConcepts._DiagnosisConcepts.INJURY429, DiagnosisConcepts._DiagnosisConcepts.INJURY430, + DiagnosisConcepts._DiagnosisConcepts.INJURY431, DiagnosisConcepts._DiagnosisConcepts.INJURY432, + DiagnosisConcepts._DiagnosisConcepts.INJURY433, DiagnosisConcepts._DiagnosisConcepts.INJURY434, + DiagnosisConcepts._DiagnosisConcepts.INJURY435, DiagnosisConcepts._DiagnosisConcepts.INJURY436, + DiagnosisConcepts._DiagnosisConcepts.INJURY437, DiagnosisConcepts._DiagnosisConcepts.INJURY438, + DiagnosisConcepts._DiagnosisConcepts.INJURY439, DiagnosisConcepts._DiagnosisConcepts.INJURY440, + DiagnosisConcepts._DiagnosisConcepts.INJURY441, DiagnosisConcepts._DiagnosisConcepts.INJURY442, + DiagnosisConcepts._DiagnosisConcepts.INJURY443, DiagnosisConcepts._DiagnosisConcepts.INJURY444, + DiagnosisConcepts._DiagnosisConcepts.INJURY445, DiagnosisConcepts._DiagnosisConcepts.INJURY446, + DiagnosisConcepts._DiagnosisConcepts.INJURY447, DiagnosisConcepts._DiagnosisConcepts.INJURY448, + DiagnosisConcepts._DiagnosisConcepts.INJURY449, DiagnosisConcepts._DiagnosisConcepts.INJURY450, + DiagnosisConcepts._DiagnosisConcepts.INJURY451, DiagnosisConcepts._DiagnosisConcepts.INJURY452, + DiagnosisConcepts._DiagnosisConcepts.INJURY453, DiagnosisConcepts._DiagnosisConcepts.INJURY454, + DiagnosisConcepts._DiagnosisConcepts.INJURY455, DiagnosisConcepts._DiagnosisConcepts.INJURY456, + DiagnosisConcepts._DiagnosisConcepts.INJURY457, DiagnosisConcepts._DiagnosisConcepts.INJURY458, + DiagnosisConcepts._DiagnosisConcepts.INJURY459, DiagnosisConcepts._DiagnosisConcepts.INJURY460, + DiagnosisConcepts._DiagnosisConcepts.INJURY461, DiagnosisConcepts._DiagnosisConcepts.INJURY462, + DiagnosisConcepts._DiagnosisConcepts.INJURY463, DiagnosisConcepts._DiagnosisConcepts.INJURY464, + DiagnosisConcepts._DiagnosisConcepts.INJURY465, DiagnosisConcepts._DiagnosisConcepts.INJURY466, + DiagnosisConcepts._DiagnosisConcepts.INJURY467, DiagnosisConcepts._DiagnosisConcepts.INJURY468, + DiagnosisConcepts._DiagnosisConcepts.INJURY469, DiagnosisConcepts._DiagnosisConcepts.INJURY470, + DiagnosisConcepts._DiagnosisConcepts.INJURY471, DiagnosisConcepts._DiagnosisConcepts.INJURY472, + DiagnosisConcepts._DiagnosisConcepts.INJURY473, DiagnosisConcepts._DiagnosisConcepts.INJURY474, + DiagnosisConcepts._DiagnosisConcepts.INJURY475, DiagnosisConcepts._DiagnosisConcepts.INJURY476, + DiagnosisConcepts._DiagnosisConcepts.INJURY477, DiagnosisConcepts._DiagnosisConcepts.INJURY478, + DiagnosisConcepts._DiagnosisConcepts.INJURY479, DiagnosisConcepts._DiagnosisConcepts.INJURY480, + DiagnosisConcepts._DiagnosisConcepts.INJURY481, DiagnosisConcepts._DiagnosisConcepts.INJURY482, + DiagnosisConcepts._DiagnosisConcepts.INJURY483, DiagnosisConcepts._DiagnosisConcepts.INJURY484, + DiagnosisConcepts._DiagnosisConcepts.INJURY485, DiagnosisConcepts._DiagnosisConcepts.INJURY486, + DiagnosisConcepts._DiagnosisConcepts.INJURY487, DiagnosisConcepts._DiagnosisConcepts.INJURY488, + DiagnosisConcepts._DiagnosisConcepts.INJURY489, DiagnosisConcepts._DiagnosisConcepts.INJURY490, + DiagnosisConcepts._DiagnosisConcepts.INJURY491, DiagnosisConcepts._DiagnosisConcepts.INJURY492, + DiagnosisConcepts._DiagnosisConcepts.INJURY493, DiagnosisConcepts._DiagnosisConcepts.INJURY494, + DiagnosisConcepts._DiagnosisConcepts.INJURY495, DiagnosisConcepts._DiagnosisConcepts.INJURY496, + DiagnosisConcepts._DiagnosisConcepts.INJURY497, DiagnosisConcepts._DiagnosisConcepts.INJURY498, + DiagnosisConcepts._DiagnosisConcepts.INJURY499, DiagnosisConcepts._DiagnosisConcepts.INJURY500, + DiagnosisConcepts._DiagnosisConcepts.INJURY501, DiagnosisConcepts._DiagnosisConcepts.INJURY502, + DiagnosisConcepts._DiagnosisConcepts.INJURY503, DiagnosisConcepts._DiagnosisConcepts.INJURY504, + DiagnosisConcepts._DiagnosisConcepts.INJURY505, DiagnosisConcepts._DiagnosisConcepts.INJURY506, + DiagnosisConcepts._DiagnosisConcepts.INJURY507, DiagnosisConcepts._DiagnosisConcepts.INJURY508, + DiagnosisConcepts._DiagnosisConcepts.INJURY509, DiagnosisConcepts._DiagnosisConcepts.INJURY510, + DiagnosisConcepts._DiagnosisConcepts.INJURY511, DiagnosisConcepts._DiagnosisConcepts.INJURY512, + DiagnosisConcepts._DiagnosisConcepts.INJURY513, DiagnosisConcepts._DiagnosisConcepts.INJURY514, + DiagnosisConcepts._DiagnosisConcepts.INJURY515, DiagnosisConcepts._DiagnosisConcepts.INJURY516, + DiagnosisConcepts._DiagnosisConcepts.INJURY517, DiagnosisConcepts._DiagnosisConcepts.INJURY518, + DiagnosisConcepts._DiagnosisConcepts.INJURY519, DiagnosisConcepts._DiagnosisConcepts.INJURY520, + DiagnosisConcepts._DiagnosisConcepts.INJURY521, DiagnosisConcepts._DiagnosisConcepts.INJURY522, + DiagnosisConcepts._DiagnosisConcepts.INJURY523, DiagnosisConcepts._DiagnosisConcepts.INJURY524, + DiagnosisConcepts._DiagnosisConcepts.INJURY525, DiagnosisConcepts._DiagnosisConcepts.INJURY526, + DiagnosisConcepts._DiagnosisConcepts.INJURY527, DiagnosisConcepts._DiagnosisConcepts.INJURY528, + DiagnosisConcepts._DiagnosisConcepts.INJURY529, DiagnosisConcepts._DiagnosisConcepts.INJURY530, + DiagnosisConcepts._DiagnosisConcepts.INJURY531, DiagnosisConcepts._DiagnosisConcepts.INJURY532, + DiagnosisConcepts._DiagnosisConcepts.INJURY533, DiagnosisConcepts._DiagnosisConcepts.INJURY534, + DiagnosisConcepts._DiagnosisConcepts.INJURY535, DiagnosisConcepts._DiagnosisConcepts.INJURY536, + DiagnosisConcepts._DiagnosisConcepts.INJURY537, DiagnosisConcepts._DiagnosisConcepts.INJURY538, + DiagnosisConcepts._DiagnosisConcepts.INJURY539, DiagnosisConcepts._DiagnosisConcepts.INJURY540, + DiagnosisConcepts._DiagnosisConcepts.INJURY541, DiagnosisConcepts._DiagnosisConcepts.INJURY542, + DiagnosisConcepts._DiagnosisConcepts.INJURY543, DiagnosisConcepts._DiagnosisConcepts.INJURY544, + DiagnosisConcepts._DiagnosisConcepts.INJURY545, DiagnosisConcepts._DiagnosisConcepts.INJURY546, + DiagnosisConcepts._DiagnosisConcepts.INJURY547, DiagnosisConcepts._DiagnosisConcepts.INJURY548, + DiagnosisConcepts._DiagnosisConcepts.INJURY549, DiagnosisConcepts._DiagnosisConcepts.INJURY550, + DiagnosisConcepts._DiagnosisConcepts.INJURY551, DiagnosisConcepts._DiagnosisConcepts.INJURY552, + DiagnosisConcepts._DiagnosisConcepts.INJURY553, DiagnosisConcepts._DiagnosisConcepts.INJURY554, + DiagnosisConcepts._DiagnosisConcepts.INJURY555, DiagnosisConcepts._DiagnosisConcepts.INJURY556, + DiagnosisConcepts._DiagnosisConcepts.INJURY557, DiagnosisConcepts._DiagnosisConcepts.INJURY558, + DiagnosisConcepts._DiagnosisConcepts.INJURY559, DiagnosisConcepts._DiagnosisConcepts.INJURY560, + DiagnosisConcepts._DiagnosisConcepts.INJURY561, DiagnosisConcepts._DiagnosisConcepts.INJURY562, + DiagnosisConcepts._DiagnosisConcepts.INJURY563, DiagnosisConcepts._DiagnosisConcepts.INJURY564, + DiagnosisConcepts._DiagnosisConcepts.INJURY565, DiagnosisConcepts._DiagnosisConcepts.INJURY566, + DiagnosisConcepts._DiagnosisConcepts.INJURY567, DiagnosisConcepts._DiagnosisConcepts.INJURY568, + DiagnosisConcepts._DiagnosisConcepts.INJURY569, DiagnosisConcepts._DiagnosisConcepts.INJURY570, + DiagnosisConcepts._DiagnosisConcepts.INJURY571, DiagnosisConcepts._DiagnosisConcepts.INJURY572, + DiagnosisConcepts._DiagnosisConcepts.INJURY573, DiagnosisConcepts._DiagnosisConcepts.INJURY574, + DiagnosisConcepts._DiagnosisConcepts.INJURY575, DiagnosisConcepts._DiagnosisConcepts.INJURY576, + DiagnosisConcepts._DiagnosisConcepts.INJURY577, DiagnosisConcepts._DiagnosisConcepts.INJURY578, + DiagnosisConcepts._DiagnosisConcepts.INJURY579, DiagnosisConcepts._DiagnosisConcepts.INJURY580, + DiagnosisConcepts._DiagnosisConcepts.INJURY581, DiagnosisConcepts._DiagnosisConcepts.INJURY582, + DiagnosisConcepts._DiagnosisConcepts.INJURY583, DiagnosisConcepts._DiagnosisConcepts.INJURY584, + DiagnosisConcepts._DiagnosisConcepts.INJURY585, DiagnosisConcepts._DiagnosisConcepts.INJURY586, + DiagnosisConcepts._DiagnosisConcepts.INJURY587, DiagnosisConcepts._DiagnosisConcepts.INJURY588, + DiagnosisConcepts._DiagnosisConcepts.INJURY589, DiagnosisConcepts._DiagnosisConcepts.INJURY590, + DiagnosisConcepts._DiagnosisConcepts.INJURY591, DiagnosisConcepts._DiagnosisConcepts.INJURY592, + DiagnosisConcepts._DiagnosisConcepts.INJURY593, DiagnosisConcepts._DiagnosisConcepts.INJURY594, + DiagnosisConcepts._DiagnosisConcepts.INJURY595, DiagnosisConcepts._DiagnosisConcepts.INJURY596, + DiagnosisConcepts._DiagnosisConcepts.INJURY597, DiagnosisConcepts._DiagnosisConcepts.INJURY598, + DiagnosisConcepts._DiagnosisConcepts.INJURY599, DiagnosisConcepts._DiagnosisConcepts.INJURY600, + DiagnosisConcepts._DiagnosisConcepts.INJURY601, DiagnosisConcepts._DiagnosisConcepts.INJURY602, + DiagnosisConcepts._DiagnosisConcepts.INJURY603, DiagnosisConcepts._DiagnosisConcepts.INJURY604, + DiagnosisConcepts._DiagnosisConcepts.INJURY605, DiagnosisConcepts._DiagnosisConcepts.INJURY606, + DiagnosisConcepts._DiagnosisConcepts.INJURY607, DiagnosisConcepts._DiagnosisConcepts.INJURY608, + DiagnosisConcepts._DiagnosisConcepts.INJURY609, DiagnosisConcepts._DiagnosisConcepts.INJURY610, + DiagnosisConcepts._DiagnosisConcepts.INJURY611, DiagnosisConcepts._DiagnosisConcepts.INJURY612, + DiagnosisConcepts._DiagnosisConcepts.INJURY613, DiagnosisConcepts._DiagnosisConcepts.INJURY614, + DiagnosisConcepts._DiagnosisConcepts.INJURY615, DiagnosisConcepts._DiagnosisConcepts.INJURY616, + DiagnosisConcepts._DiagnosisConcepts.INJURY617, DiagnosisConcepts._DiagnosisConcepts.INJURY618, + DiagnosisConcepts._DiagnosisConcepts.INJURY619, DiagnosisConcepts._DiagnosisConcepts.INJURY620, + DiagnosisConcepts._DiagnosisConcepts.INJURY621, DiagnosisConcepts._DiagnosisConcepts.INJURY622, + DiagnosisConcepts._DiagnosisConcepts.INJURY623, DiagnosisConcepts._DiagnosisConcepts.INJURY624, + DiagnosisConcepts._DiagnosisConcepts.INJURY625, DiagnosisConcepts._DiagnosisConcepts.INJURY626, + DiagnosisConcepts._DiagnosisConcepts.INJURY627, DiagnosisConcepts._DiagnosisConcepts.INJURY628, + DiagnosisConcepts._DiagnosisConcepts.INJURY629, DiagnosisConcepts._DiagnosisConcepts.INJURY630, + DiagnosisConcepts._DiagnosisConcepts.INJURY631, DiagnosisConcepts._DiagnosisConcepts.INJURY632, + DiagnosisConcepts._DiagnosisConcepts.INJURY633, DiagnosisConcepts._DiagnosisConcepts.INJURY634, + DiagnosisConcepts._DiagnosisConcepts.INJURY635, DiagnosisConcepts._DiagnosisConcepts.INJURY636, + DiagnosisConcepts._DiagnosisConcepts.INJURY637, DiagnosisConcepts._DiagnosisConcepts.INJURY638, + DiagnosisConcepts._DiagnosisConcepts.INJURY639, DiagnosisConcepts._DiagnosisConcepts.INJURY640, + DiagnosisConcepts._DiagnosisConcepts.INJURY641, DiagnosisConcepts._DiagnosisConcepts.INJURY642, + DiagnosisConcepts._DiagnosisConcepts.INJURY643, DiagnosisConcepts._DiagnosisConcepts.INJURY644, + DiagnosisConcepts._DiagnosisConcepts.INJURY645, DiagnosisConcepts._DiagnosisConcepts.INJURY646, + DiagnosisConcepts._DiagnosisConcepts.INJURY647, DiagnosisConcepts._DiagnosisConcepts.INJURY648, + DiagnosisConcepts._DiagnosisConcepts.INJURY649, DiagnosisConcepts._DiagnosisConcepts.INJURY650, + DiagnosisConcepts._DiagnosisConcepts.INJURY651, DiagnosisConcepts._DiagnosisConcepts.INJURY652, + DiagnosisConcepts._DiagnosisConcepts.INJURY653, DiagnosisConcepts._DiagnosisConcepts.INJURY654, + DiagnosisConcepts._DiagnosisConcepts.INJURY655, DiagnosisConcepts._DiagnosisConcepts.INJURY656, + DiagnosisConcepts._DiagnosisConcepts.INJURY657, DiagnosisConcepts._DiagnosisConcepts.INJURY658, + DiagnosisConcepts._DiagnosisConcepts.INJURY659, DiagnosisConcepts._DiagnosisConcepts.INJURY660, + DiagnosisConcepts._DiagnosisConcepts.INJURY661, DiagnosisConcepts._DiagnosisConcepts.INJURY662, + DiagnosisConcepts._DiagnosisConcepts.INJURY663, DiagnosisConcepts._DiagnosisConcepts.INJURY664, + DiagnosisConcepts._DiagnosisConcepts.INJURY665, DiagnosisConcepts._DiagnosisConcepts.INJURY666, + DiagnosisConcepts._DiagnosisConcepts.INJURY667, DiagnosisConcepts._DiagnosisConcepts.INJURY668, + DiagnosisConcepts._DiagnosisConcepts.INJURY669, DiagnosisConcepts._DiagnosisConcepts.INJURY670, + DiagnosisConcepts._DiagnosisConcepts.INJURY671, DiagnosisConcepts._DiagnosisConcepts.INJURY672, + DiagnosisConcepts._DiagnosisConcepts.INJURY673, DiagnosisConcepts._DiagnosisConcepts.INJURY674, + DiagnosisConcepts._DiagnosisConcepts.INJURY675, DiagnosisConcepts._DiagnosisConcepts.INJURY676, + DiagnosisConcepts._DiagnosisConcepts.INJURY677, DiagnosisConcepts._DiagnosisConcepts.INJURY678, + DiagnosisConcepts._DiagnosisConcepts.INJURY679, DiagnosisConcepts._DiagnosisConcepts.INJURY680, + DiagnosisConcepts._DiagnosisConcepts.INJURY681, DiagnosisConcepts._DiagnosisConcepts.INJURY682, + DiagnosisConcepts._DiagnosisConcepts.INJURY683, DiagnosisConcepts._DiagnosisConcepts.INJURY684, + DiagnosisConcepts._DiagnosisConcepts.INJURY685, DiagnosisConcepts._DiagnosisConcepts.INJURY686, + DiagnosisConcepts._DiagnosisConcepts.INJURY687, DiagnosisConcepts._DiagnosisConcepts.INJURY688, + DiagnosisConcepts._DiagnosisConcepts.INJURY689, DiagnosisConcepts._DiagnosisConcepts.INJURY690, + DiagnosisConcepts._DiagnosisConcepts.INJURY691, DiagnosisConcepts._DiagnosisConcepts.INJURY692, + DiagnosisConcepts._DiagnosisConcepts.INJURY693, DiagnosisConcepts._DiagnosisConcepts.INJURY694, + DiagnosisConcepts._DiagnosisConcepts.INJURY695, DiagnosisConcepts._DiagnosisConcepts.INJURY696, + DiagnosisConcepts._DiagnosisConcepts.INJURY697, DiagnosisConcepts._DiagnosisConcepts.INJURY698, + DiagnosisConcepts._DiagnosisConcepts.INJURY699, DiagnosisConcepts._DiagnosisConcepts.INJURY700, + DiagnosisConcepts._DiagnosisConcepts.INJURY701, DiagnosisConcepts._DiagnosisConcepts.INJURY702, + DiagnosisConcepts._DiagnosisConcepts.INJURY703, DiagnosisConcepts._DiagnosisConcepts.INJURY704, + DiagnosisConcepts._DiagnosisConcepts.INJURY705, DiagnosisConcepts._DiagnosisConcepts.INJURY706, + DiagnosisConcepts._DiagnosisConcepts.INJURY707, DiagnosisConcepts._DiagnosisConcepts.INJURY708, + DiagnosisConcepts._DiagnosisConcepts.INJURY709, DiagnosisConcepts._DiagnosisConcepts.INJURY710, + DiagnosisConcepts._DiagnosisConcepts.INJURY711, DiagnosisConcepts._DiagnosisConcepts.INJURY712, + DiagnosisConcepts._DiagnosisConcepts.INJURY713, DiagnosisConcepts._DiagnosisConcepts.INJURY714, + DiagnosisConcepts._DiagnosisConcepts.INJURY715, DiagnosisConcepts._DiagnosisConcepts.INJURY716, + DiagnosisConcepts._DiagnosisConcepts.INJURY717, DiagnosisConcepts._DiagnosisConcepts.INJURY718, + DiagnosisConcepts._DiagnosisConcepts.INJURY719, DiagnosisConcepts._DiagnosisConcepts.INJURY720, + DiagnosisConcepts._DiagnosisConcepts.INJURY721, DiagnosisConcepts._DiagnosisConcepts.INJURY722, + DiagnosisConcepts._DiagnosisConcepts.INJURY723, DiagnosisConcepts._DiagnosisConcepts.INJURY724, + DiagnosisConcepts._DiagnosisConcepts.INJURY725, DiagnosisConcepts._DiagnosisConcepts.INJURY726, + DiagnosisConcepts._DiagnosisConcepts.INJURY727, DiagnosisConcepts._DiagnosisConcepts.INJURY728, + DiagnosisConcepts._DiagnosisConcepts.INJURY729, DiagnosisConcepts._DiagnosisConcepts.INJURY730, + DiagnosisConcepts._DiagnosisConcepts.INJURY731, DiagnosisConcepts._DiagnosisConcepts.INJURY732, + DiagnosisConcepts._DiagnosisConcepts.INJURY733, DiagnosisConcepts._DiagnosisConcepts.INJURY734, + DiagnosisConcepts._DiagnosisConcepts.INJURY735, DiagnosisConcepts._DiagnosisConcepts.INJURY736, + DiagnosisConcepts._DiagnosisConcepts.INJURY737, DiagnosisConcepts._DiagnosisConcepts.INJURY738, + DiagnosisConcepts._DiagnosisConcepts.INJURY739, DiagnosisConcepts._DiagnosisConcepts.INJURY740, + DiagnosisConcepts._DiagnosisConcepts.INJURY741, DiagnosisConcepts._DiagnosisConcepts.INJURY742, + DiagnosisConcepts._DiagnosisConcepts.INJURY743, DiagnosisConcepts._DiagnosisConcepts.INJURY744, + DiagnosisConcepts._DiagnosisConcepts.INJURY745, DiagnosisConcepts._DiagnosisConcepts.INJURY746, + DiagnosisConcepts._DiagnosisConcepts.INJURY747, DiagnosisConcepts._DiagnosisConcepts.INJURY748, + DiagnosisConcepts._DiagnosisConcepts.INJURY749, DiagnosisConcepts._DiagnosisConcepts.INJURY750, + DiagnosisConcepts._DiagnosisConcepts.INJURY751, DiagnosisConcepts._DiagnosisConcepts.INJURY752, + DiagnosisConcepts._DiagnosisConcepts.INJURY753, DiagnosisConcepts._DiagnosisConcepts.INJURY754, + DiagnosisConcepts._DiagnosisConcepts.INJURY755, DiagnosisConcepts._DiagnosisConcepts.INJURY756, + DiagnosisConcepts._DiagnosisConcepts.INJURY757, DiagnosisConcepts._DiagnosisConcepts.INJURY758, + DiagnosisConcepts._DiagnosisConcepts.INJURY759, DiagnosisConcepts._DiagnosisConcepts.INJURY760, + DiagnosisConcepts._DiagnosisConcepts.INJURY761, DiagnosisConcepts._DiagnosisConcepts.INJURY762, + DiagnosisConcepts._DiagnosisConcepts.INJURY763, DiagnosisConcepts._DiagnosisConcepts.INJURY764, + DiagnosisConcepts._DiagnosisConcepts.INJURY765, DiagnosisConcepts._DiagnosisConcepts.INJURY766, + DiagnosisConcepts._DiagnosisConcepts.INJURY767, DiagnosisConcepts._DiagnosisConcepts.INJURY768, + DiagnosisConcepts._DiagnosisConcepts.INJURY769, DiagnosisConcepts._DiagnosisConcepts.INJURY770, + DiagnosisConcepts._DiagnosisConcepts.INJURY771, DiagnosisConcepts._DiagnosisConcepts.INJURY772, + DiagnosisConcepts._DiagnosisConcepts.INJURY773, DiagnosisConcepts._DiagnosisConcepts.INJURY774, + DiagnosisConcepts._DiagnosisConcepts.INJURY775, DiagnosisConcepts._DiagnosisConcepts.INJURY776, + DiagnosisConcepts._DiagnosisConcepts.INJURY777, DiagnosisConcepts._DiagnosisConcepts.INJURY778, + DiagnosisConcepts._DiagnosisConcepts.INJURY779, DiagnosisConcepts._DiagnosisConcepts.INJURY780, + DiagnosisConcepts._DiagnosisConcepts.INJURY781, DiagnosisConcepts._DiagnosisConcepts.INJURY782, + DiagnosisConcepts._DiagnosisConcepts.INJURY783, DiagnosisConcepts._DiagnosisConcepts.INJURY784, + DiagnosisConcepts._DiagnosisConcepts.INJURY785, DiagnosisConcepts._DiagnosisConcepts.INJURY786, + DiagnosisConcepts._DiagnosisConcepts.INJURY787, DiagnosisConcepts._DiagnosisConcepts.INJURY788, + DiagnosisConcepts._DiagnosisConcepts.INJURY789, DiagnosisConcepts._DiagnosisConcepts.INJURY790, + DiagnosisConcepts._DiagnosisConcepts.INJURY791, DiagnosisConcepts._DiagnosisConcepts.INJURY792, + DiagnosisConcepts._DiagnosisConcepts.INJURY793, DiagnosisConcepts._DiagnosisConcepts.INJURY794, + DiagnosisConcepts._DiagnosisConcepts.INJURY795, DiagnosisConcepts._DiagnosisConcepts.INJURY796, + DiagnosisConcepts._DiagnosisConcepts.INJURY797, DiagnosisConcepts._DiagnosisConcepts.INJURY798, + DiagnosisConcepts._DiagnosisConcepts.INJURY799, DiagnosisConcepts._DiagnosisConcepts.INJURY800, + DiagnosisConcepts._DiagnosisConcepts.INJURY801, DiagnosisConcepts._DiagnosisConcepts.INJURY802, + DiagnosisConcepts._DiagnosisConcepts.INJURY803, DiagnosisConcepts._DiagnosisConcepts.INJURY804, + DiagnosisConcepts._DiagnosisConcepts.INJURY805, DiagnosisConcepts._DiagnosisConcepts.INJURY806, + DiagnosisConcepts._DiagnosisConcepts.INJURY807, DiagnosisConcepts._DiagnosisConcepts.INJURY808, + DiagnosisConcepts._DiagnosisConcepts.INJURY809, DiagnosisConcepts._DiagnosisConcepts.INJURY810, + DiagnosisConcepts._DiagnosisConcepts.INJURY811, DiagnosisConcepts._DiagnosisConcepts.INJURY812, + DiagnosisConcepts._DiagnosisConcepts.INJURY813, DiagnosisConcepts._DiagnosisConcepts.INJURY814, + DiagnosisConcepts._DiagnosisConcepts.INJURY815, DiagnosisConcepts._DiagnosisConcepts.INJURY816, + DiagnosisConcepts._DiagnosisConcepts.INJURY817, DiagnosisConcepts._DiagnosisConcepts.INJURY818, + DiagnosisConcepts._DiagnosisConcepts.INJURY819, DiagnosisConcepts._DiagnosisConcepts.INJURY820, + DiagnosisConcepts._DiagnosisConcepts.INJURY821, DiagnosisConcepts._DiagnosisConcepts.INJURY822, + DiagnosisConcepts._DiagnosisConcepts.INJURY823, DiagnosisConcepts._DiagnosisConcepts.INJURY824, + DiagnosisConcepts._DiagnosisConcepts.INJURY825, DiagnosisConcepts._DiagnosisConcepts.INJURY826, + DiagnosisConcepts._DiagnosisConcepts.INJURY827, DiagnosisConcepts._DiagnosisConcepts.INJURY828, + DiagnosisConcepts._DiagnosisConcepts.INJURY829, DiagnosisConcepts._DiagnosisConcepts.INJURY830, + DiagnosisConcepts._DiagnosisConcepts.INJURY831, DiagnosisConcepts._DiagnosisConcepts.INJURY832, + DiagnosisConcepts._DiagnosisConcepts.INJURY833, DiagnosisConcepts._DiagnosisConcepts.INJURY834, + DiagnosisConcepts._DiagnosisConcepts.INJURY835, DiagnosisConcepts._DiagnosisConcepts.INJURY836, + DiagnosisConcepts._DiagnosisConcepts.INJURY837, DiagnosisConcepts._DiagnosisConcepts.INJURY838, + DiagnosisConcepts._DiagnosisConcepts.INJURY839, DiagnosisConcepts._DiagnosisConcepts.INJURY840, + DiagnosisConcepts._DiagnosisConcepts.INJURY841, DiagnosisConcepts._DiagnosisConcepts.INJURY842, + DiagnosisConcepts._DiagnosisConcepts.INJURY843, DiagnosisConcepts._DiagnosisConcepts.INJURY844, + DiagnosisConcepts._DiagnosisConcepts.INJURY845, DiagnosisConcepts._DiagnosisConcepts.INJURY846, + DiagnosisConcepts._DiagnosisConcepts.INJURY847, DiagnosisConcepts._DiagnosisConcepts.INJURY848, + DiagnosisConcepts._DiagnosisConcepts.INJURY849, DiagnosisConcepts._DiagnosisConcepts.INJURY850, + DiagnosisConcepts._DiagnosisConcepts.INJURY851, DiagnosisConcepts._DiagnosisConcepts.INJURY852, + DiagnosisConcepts._DiagnosisConcepts.INJURY853, DiagnosisConcepts._DiagnosisConcepts.INJURY854, + DiagnosisConcepts._DiagnosisConcepts.INJURY855, DiagnosisConcepts._DiagnosisConcepts.INJURY856, + DiagnosisConcepts._DiagnosisConcepts.INJURY857, DiagnosisConcepts._DiagnosisConcepts.INJURY858, + DiagnosisConcepts._DiagnosisConcepts.INJURY859, DiagnosisConcepts._DiagnosisConcepts.INJURY860, + DiagnosisConcepts._DiagnosisConcepts.INJURY861, DiagnosisConcepts._DiagnosisConcepts.INJURY862, + DiagnosisConcepts._DiagnosisConcepts.INJURY863, DiagnosisConcepts._DiagnosisConcepts.INJURY864, + DiagnosisConcepts._DiagnosisConcepts.INJURY865, DiagnosisConcepts._DiagnosisConcepts.INJURY866, + DiagnosisConcepts._DiagnosisConcepts.INJURY867, DiagnosisConcepts._DiagnosisConcepts.INJURY868, + DiagnosisConcepts._DiagnosisConcepts.INJURY869, DiagnosisConcepts._DiagnosisConcepts.INJURY870, + DiagnosisConcepts._DiagnosisConcepts.INJURY871, DiagnosisConcepts._DiagnosisConcepts.INJURY872, + DiagnosisConcepts._DiagnosisConcepts.INJURY873, DiagnosisConcepts._DiagnosisConcepts.INJURY874, + DiagnosisConcepts._DiagnosisConcepts.INJURY875, DiagnosisConcepts._DiagnosisConcepts.INJURY876, + DiagnosisConcepts._DiagnosisConcepts.INJURY877, DiagnosisConcepts._DiagnosisConcepts.INJURY878, + DiagnosisConcepts._DiagnosisConcepts.INJURY879, DiagnosisConcepts._DiagnosisConcepts.INJURY880, + DiagnosisConcepts._DiagnosisConcepts.INJURY881, DiagnosisConcepts._DiagnosisConcepts.INJURY882, + DiagnosisConcepts._DiagnosisConcepts.INJURY883, DiagnosisConcepts._DiagnosisConcepts.INJURY884, + DiagnosisConcepts._DiagnosisConcepts.INJURY885, DiagnosisConcepts._DiagnosisConcepts.INJURY886, + DiagnosisConcepts._DiagnosisConcepts.INJURY887, DiagnosisConcepts._DiagnosisConcepts.INJURY888, + DiagnosisConcepts._DiagnosisConcepts.INJURY889, DiagnosisConcepts._DiagnosisConcepts.INJURY890, + DiagnosisConcepts._DiagnosisConcepts.INJURY891, DiagnosisConcepts._DiagnosisConcepts.INJURY892, + DiagnosisConcepts._DiagnosisConcepts.INJURY893, DiagnosisConcepts._DiagnosisConcepts.INJURY894, + DiagnosisConcepts._DiagnosisConcepts.INJURY895, DiagnosisConcepts._DiagnosisConcepts.INJURY896, + DiagnosisConcepts._DiagnosisConcepts.INJURY897, DiagnosisConcepts._DiagnosisConcepts.INJURY898, + DiagnosisConcepts._DiagnosisConcepts.INJURY899, DiagnosisConcepts._DiagnosisConcepts.INJURY900, + DiagnosisConcepts._DiagnosisConcepts.INJURY901, DiagnosisConcepts._DiagnosisConcepts.INJURY902, + DiagnosisConcepts._DiagnosisConcepts.INJURY903, DiagnosisConcepts._DiagnosisConcepts.INJURY904, + DiagnosisConcepts._DiagnosisConcepts.INJURY905, DiagnosisConcepts._DiagnosisConcepts.INJURY906, + DiagnosisConcepts._DiagnosisConcepts.INJURY907, DiagnosisConcepts._DiagnosisConcepts.INJURY908, + DiagnosisConcepts._DiagnosisConcepts.INJURY909, DiagnosisConcepts._DiagnosisConcepts.INJURY910, + DiagnosisConcepts._DiagnosisConcepts.INJURY911, DiagnosisConcepts._DiagnosisConcepts.INJURY912, + DiagnosisConcepts._DiagnosisConcepts.INJURY913, DiagnosisConcepts._DiagnosisConcepts.INJURY914, + DiagnosisConcepts._DiagnosisConcepts.INJURY915, DiagnosisConcepts._DiagnosisConcepts.INJURY916, + DiagnosisConcepts._DiagnosisConcepts.INJURY917, DiagnosisConcepts._DiagnosisConcepts.INJURY918, + DiagnosisConcepts._DiagnosisConcepts.INJURY919, DiagnosisConcepts._DiagnosisConcepts.INJURY920, + DiagnosisConcepts._DiagnosisConcepts.INJURY921, DiagnosisConcepts._DiagnosisConcepts.INJURY922, + DiagnosisConcepts._DiagnosisConcepts.INJURY923, DiagnosisConcepts._DiagnosisConcepts.INJURY924, + DiagnosisConcepts._DiagnosisConcepts.INJURY925, DiagnosisConcepts._DiagnosisConcepts.INJURY926, + DiagnosisConcepts._DiagnosisConcepts.INJURY927, DiagnosisConcepts._DiagnosisConcepts.INJURY928, + DiagnosisConcepts._DiagnosisConcepts.INJURY929, DiagnosisConcepts._DiagnosisConcepts.INJURY930, + DiagnosisConcepts._DiagnosisConcepts.INJURY931, DiagnosisConcepts._DiagnosisConcepts.INJURY932, + DiagnosisConcepts._DiagnosisConcepts.INJURY933, DiagnosisConcepts._DiagnosisConcepts.INJURY934, + DiagnosisConcepts._DiagnosisConcepts.INJURY935, DiagnosisConcepts._DiagnosisConcepts.INJURY936, + DiagnosisConcepts._DiagnosisConcepts.INJURY937, DiagnosisConcepts._DiagnosisConcepts.INJURY938, + DiagnosisConcepts._DiagnosisConcepts.INJURY939, DiagnosisConcepts._DiagnosisConcepts.INJURY940, + DiagnosisConcepts._DiagnosisConcepts.INJURY941, DiagnosisConcepts._DiagnosisConcepts.INJURY942, + DiagnosisConcepts._DiagnosisConcepts.INJURY943, DiagnosisConcepts._DiagnosisConcepts.INJURY944, + DiagnosisConcepts._DiagnosisConcepts.INJURY945, DiagnosisConcepts._DiagnosisConcepts.INJURY946, + DiagnosisConcepts._DiagnosisConcepts.INJURY947, DiagnosisConcepts._DiagnosisConcepts.INJURY948, + DiagnosisConcepts._DiagnosisConcepts.INJURY949, DiagnosisConcepts._DiagnosisConcepts.INJURY950, + DiagnosisConcepts._DiagnosisConcepts.INJURY951, DiagnosisConcepts._DiagnosisConcepts.INJURY952, + DiagnosisConcepts._DiagnosisConcepts.INJURY953, DiagnosisConcepts._DiagnosisConcepts.INJURY954, + DiagnosisConcepts._DiagnosisConcepts.INJURY955, DiagnosisConcepts._DiagnosisConcepts.INJURY956, + DiagnosisConcepts._DiagnosisConcepts.INJURY957, DiagnosisConcepts._DiagnosisConcepts.INJURY958, + DiagnosisConcepts._DiagnosisConcepts.INJURY959, DiagnosisConcepts._DiagnosisConcepts.INJURY960, + DiagnosisConcepts._DiagnosisConcepts.INJURY961, DiagnosisConcepts._DiagnosisConcepts.INJURY962, + DiagnosisConcepts._DiagnosisConcepts.INJURY963, DiagnosisConcepts._DiagnosisConcepts.INJURY964, + DiagnosisConcepts._DiagnosisConcepts.INJURY965, DiagnosisConcepts._DiagnosisConcepts.INJURY966, + DiagnosisConcepts._DiagnosisConcepts.INJURY967, DiagnosisConcepts._DiagnosisConcepts.INJURY968, + DiagnosisConcepts._DiagnosisConcepts.INJURY969, DiagnosisConcepts._DiagnosisConcepts.INJURY970, + DiagnosisConcepts._DiagnosisConcepts.INJURY971, DiagnosisConcepts._DiagnosisConcepts.INJURY972, + DiagnosisConcepts._DiagnosisConcepts.INJURY973, DiagnosisConcepts._DiagnosisConcepts.INJURY974, + DiagnosisConcepts._DiagnosisConcepts.INJURY975, DiagnosisConcepts._DiagnosisConcepts.INJURY976, + DiagnosisConcepts._DiagnosisConcepts.INJURY977, DiagnosisConcepts._DiagnosisConcepts.INJURY978, + DiagnosisConcepts._DiagnosisConcepts.INJURY979, DiagnosisConcepts._DiagnosisConcepts.INJURY980, + DiagnosisConcepts._DiagnosisConcepts.INJURY981, DiagnosisConcepts._DiagnosisConcepts.INJURY982, + DiagnosisConcepts._DiagnosisConcepts.INJURY983, DiagnosisConcepts._DiagnosisConcepts.INJURY984, + DiagnosisConcepts._DiagnosisConcepts.INJURY985, DiagnosisConcepts._DiagnosisConcepts.INJURY986, + DiagnosisConcepts._DiagnosisConcepts.INJURY987, DiagnosisConcepts._DiagnosisConcepts.INJURY988, + DiagnosisConcepts._DiagnosisConcepts.INJURY989, DiagnosisConcepts._DiagnosisConcepts.INJURY990, + DiagnosisConcepts._DiagnosisConcepts.INJURY991, DiagnosisConcepts._DiagnosisConcepts.INJURY992, + DiagnosisConcepts._DiagnosisConcepts.INJURY993, DiagnosisConcepts._DiagnosisConcepts.INJURY994, + DiagnosisConcepts._DiagnosisConcepts.INJURY995, DiagnosisConcepts._DiagnosisConcepts.INJURY996, + DiagnosisConcepts._DiagnosisConcepts.INJURY997, DiagnosisConcepts._DiagnosisConcepts.INJURY998, + DiagnosisConcepts._DiagnosisConcepts.INJURY999, DiagnosisConcepts._DiagnosisConcepts.INJURY1000, + DiagnosisConcepts._DiagnosisConcepts.INJURY1001, DiagnosisConcepts._DiagnosisConcepts.INJURY1002, + DiagnosisConcepts._DiagnosisConcepts.INJURY1003, DiagnosisConcepts._DiagnosisConcepts.INJURY1004, + DiagnosisConcepts._DiagnosisConcepts.INJURY1005, DiagnosisConcepts._DiagnosisConcepts.INJURY1006, + DiagnosisConcepts._DiagnosisConcepts.INJURY1007, DiagnosisConcepts._DiagnosisConcepts.INJURY1008, + DiagnosisConcepts._DiagnosisConcepts.INJURY1009, DiagnosisConcepts._DiagnosisConcepts.INJURY1010, + DiagnosisConcepts._DiagnosisConcepts.INJURY1011, DiagnosisConcepts._DiagnosisConcepts.INJURY1012, + DiagnosisConcepts._DiagnosisConcepts.INJURY1013, DiagnosisConcepts._DiagnosisConcepts.INJURY1014, + DiagnosisConcepts._DiagnosisConcepts.INJURY1015, DiagnosisConcepts._DiagnosisConcepts.INJURY1016, + DiagnosisConcepts._DiagnosisConcepts.INJURY1017, DiagnosisConcepts._DiagnosisConcepts.INJURY1018, + DiagnosisConcepts._DiagnosisConcepts.INJURY1019, DiagnosisConcepts._DiagnosisConcepts.INJURY1020, + DiagnosisConcepts._DiagnosisConcepts.INJURY1021, DiagnosisConcepts._DiagnosisConcepts.INJURY1022, + DiagnosisConcepts._DiagnosisConcepts.INJURY1023, DiagnosisConcepts._DiagnosisConcepts.INJURY1024, + DiagnosisConcepts._DiagnosisConcepts.INJURY1025, DiagnosisConcepts._DiagnosisConcepts.INJURY1026, + DiagnosisConcepts._DiagnosisConcepts.INJURY1027, DiagnosisConcepts._DiagnosisConcepts.INJURY1028, + DiagnosisConcepts._DiagnosisConcepts.INJURY1029, DiagnosisConcepts._DiagnosisConcepts.INJURY1030, + DiagnosisConcepts._DiagnosisConcepts.INJURY1031, DiagnosisConcepts._DiagnosisConcepts.INJURY1032, + DiagnosisConcepts._DiagnosisConcepts.INJURY1033, DiagnosisConcepts._DiagnosisConcepts.INJURY1034, + DiagnosisConcepts._DiagnosisConcepts.INJURY1035, DiagnosisConcepts._DiagnosisConcepts.INJURY1036, + DiagnosisConcepts._DiagnosisConcepts.INJURY1037, DiagnosisConcepts._DiagnosisConcepts.INJURY1038, + DiagnosisConcepts._DiagnosisConcepts.INJURY1039, DiagnosisConcepts._DiagnosisConcepts.INJURY1040, + DiagnosisConcepts._DiagnosisConcepts.INJURY1041, DiagnosisConcepts._DiagnosisConcepts.INJURY1042, + DiagnosisConcepts._DiagnosisConcepts.INJURY1043, DiagnosisConcepts._DiagnosisConcepts.INJURY1044, + DiagnosisConcepts._DiagnosisConcepts.INJURY1045, DiagnosisConcepts._DiagnosisConcepts.INJURY1046, + DiagnosisConcepts._DiagnosisConcepts.INJURY1047, DiagnosisConcepts._DiagnosisConcepts.INJURY1048, + DiagnosisConcepts._DiagnosisConcepts.INJURY1049, DiagnosisConcepts._DiagnosisConcepts.INJURY1050, + DiagnosisConcepts._DiagnosisConcepts.INJURY1051, DiagnosisConcepts._DiagnosisConcepts.INJURY1052, + DiagnosisConcepts._DiagnosisConcepts.INJURY1053, DiagnosisConcepts._DiagnosisConcepts.INJURY1054, + DiagnosisConcepts._DiagnosisConcepts.INJURY1055, DiagnosisConcepts._DiagnosisConcepts.INJURY1056, + DiagnosisConcepts._DiagnosisConcepts.INJURY1057, DiagnosisConcepts._DiagnosisConcepts.INJURY1058, + DiagnosisConcepts._DiagnosisConcepts.INJURY1059, DiagnosisConcepts._DiagnosisConcepts.INJURY1060, + DiagnosisConcepts._DiagnosisConcepts.INJURY1061, DiagnosisConcepts._DiagnosisConcepts.INJURY1062, + DiagnosisConcepts._DiagnosisConcepts.INJURY1063, DiagnosisConcepts._DiagnosisConcepts.INJURY1064, + DiagnosisConcepts._DiagnosisConcepts.INJURY1065, DiagnosisConcepts._DiagnosisConcepts.INJURY1066, + DiagnosisConcepts._DiagnosisConcepts.INJURY1067, DiagnosisConcepts._DiagnosisConcepts.INJURY1068, + DiagnosisConcepts._DiagnosisConcepts.INJURY1069, DiagnosisConcepts._DiagnosisConcepts.INJURY1070, + DiagnosisConcepts._DiagnosisConcepts.INJURY1071, DiagnosisConcepts._DiagnosisConcepts.INJURY1072, + DiagnosisConcepts._DiagnosisConcepts.INJURY1073, DiagnosisConcepts._DiagnosisConcepts.INJURY1074, + DiagnosisConcepts._DiagnosisConcepts.INJURY1075, DiagnosisConcepts._DiagnosisConcepts.INJURY1076, + DiagnosisConcepts._DiagnosisConcepts.INJURY1077, DiagnosisConcepts._DiagnosisConcepts.INJURY1078, + DiagnosisConcepts._DiagnosisConcepts.INJURY1079, DiagnosisConcepts._DiagnosisConcepts.INJURY1080, + DiagnosisConcepts._DiagnosisConcepts.INJURY1081, DiagnosisConcepts._DiagnosisConcepts.INJURY1082, + DiagnosisConcepts._DiagnosisConcepts.INJURY1083, DiagnosisConcepts._DiagnosisConcepts.INJURY1084, + DiagnosisConcepts._DiagnosisConcepts.INJURY1085, DiagnosisConcepts._DiagnosisConcepts.INJURY1086, + DiagnosisConcepts._DiagnosisConcepts.INJURY1087, DiagnosisConcepts._DiagnosisConcepts.INJURY1088, + DiagnosisConcepts._DiagnosisConcepts.INJURY1089, DiagnosisConcepts._DiagnosisConcepts.INJURY1090, + DiagnosisConcepts._DiagnosisConcepts.INJURY1091, DiagnosisConcepts._DiagnosisConcepts.INJURY1092, + DiagnosisConcepts._DiagnosisConcepts.INJURY1093, DiagnosisConcepts._DiagnosisConcepts.INJURY1094, + DiagnosisConcepts._DiagnosisConcepts.INJURY1095, DiagnosisConcepts._DiagnosisConcepts.INJURY1096, + DiagnosisConcepts._DiagnosisConcepts.INJURY1097, DiagnosisConcepts._DiagnosisConcepts.INJURY1098, + DiagnosisConcepts._DiagnosisConcepts.INJURY1099, DiagnosisConcepts._DiagnosisConcepts.INJURY1100, + DiagnosisConcepts._DiagnosisConcepts.INJURY1101, DiagnosisConcepts._DiagnosisConcepts.INJURY1102, + DiagnosisConcepts._DiagnosisConcepts.INJURY1103, DiagnosisConcepts._DiagnosisConcepts.INJURY1104, + DiagnosisConcepts._DiagnosisConcepts.INJURY1105, DiagnosisConcepts._DiagnosisConcepts.INJURY1106, + DiagnosisConcepts._DiagnosisConcepts.INJURY1107, DiagnosisConcepts._DiagnosisConcepts.INJURY1108, + DiagnosisConcepts._DiagnosisConcepts.INJURY1109, DiagnosisConcepts._DiagnosisConcepts.INJURY1110, + DiagnosisConcepts._DiagnosisConcepts.INJURY1111, DiagnosisConcepts._DiagnosisConcepts.INJURY1112, + DiagnosisConcepts._DiagnosisConcepts.INJURY1113, DiagnosisConcepts._DiagnosisConcepts.INJURY1114, + DiagnosisConcepts._DiagnosisConcepts.INJURY1115, DiagnosisConcepts._DiagnosisConcepts.INJURY1116, + DiagnosisConcepts._DiagnosisConcepts.INJURY1117, DiagnosisConcepts._DiagnosisConcepts.INJURY1118, + DiagnosisConcepts._DiagnosisConcepts.INJURY1119, DiagnosisConcepts._DiagnosisConcepts.INJURY1120, + DiagnosisConcepts._DiagnosisConcepts.INJURY1121, DiagnosisConcepts._DiagnosisConcepts.INJURY1122, + DiagnosisConcepts._DiagnosisConcepts.INJURY1123, DiagnosisConcepts._DiagnosisConcepts.INJURY1124, + DiagnosisConcepts._DiagnosisConcepts.INJURY1125, DiagnosisConcepts._DiagnosisConcepts.INJURY1126, + DiagnosisConcepts._DiagnosisConcepts.INJURY1127, DiagnosisConcepts._DiagnosisConcepts.INJURY1128, + DiagnosisConcepts._DiagnosisConcepts.INJURY1129, DiagnosisConcepts._DiagnosisConcepts.INJURY1130, + DiagnosisConcepts._DiagnosisConcepts.INJURY1131, DiagnosisConcepts._DiagnosisConcepts.INJURY1132, + DiagnosisConcepts._DiagnosisConcepts.INJURY1133, DiagnosisConcepts._DiagnosisConcepts.INJURY1134, + DiagnosisConcepts._DiagnosisConcepts.INJURY1135, DiagnosisConcepts._DiagnosisConcepts.INJURY1136, + DiagnosisConcepts._DiagnosisConcepts.INJURY1137, DiagnosisConcepts._DiagnosisConcepts.INJURY1138, + DiagnosisConcepts._DiagnosisConcepts.INJURY1139, DiagnosisConcepts._DiagnosisConcepts.INJURY1140, + DiagnosisConcepts._DiagnosisConcepts.INJURY1141, DiagnosisConcepts._DiagnosisConcepts.INJURY1142, + DiagnosisConcepts._DiagnosisConcepts.INJURY1143, DiagnosisConcepts._DiagnosisConcepts.INJURY1144, + DiagnosisConcepts._DiagnosisConcepts.INJURY1145, DiagnosisConcepts._DiagnosisConcepts.INJURY1146, + DiagnosisConcepts._DiagnosisConcepts.INJURY1147, DiagnosisConcepts._DiagnosisConcepts.INJURY1148, + DiagnosisConcepts._DiagnosisConcepts.INJURY1149, DiagnosisConcepts._DiagnosisConcepts.INJURY1150, + DiagnosisConcepts._DiagnosisConcepts.INJURY1151, DiagnosisConcepts._DiagnosisConcepts.INJURY1152, + DiagnosisConcepts._DiagnosisConcepts.INJURY1153, DiagnosisConcepts._DiagnosisConcepts.INJURY1154, + DiagnosisConcepts._DiagnosisConcepts.INJURY1155, DiagnosisConcepts._DiagnosisConcepts.INJURY1156, + DiagnosisConcepts._DiagnosisConcepts.INJURY1157, DiagnosisConcepts._DiagnosisConcepts.INJURY1158, + DiagnosisConcepts._DiagnosisConcepts.INJURY1159, DiagnosisConcepts._DiagnosisConcepts.INJURY1160, + DiagnosisConcepts._DiagnosisConcepts.INJURY1161, DiagnosisConcepts._DiagnosisConcepts.INJURY1162, + DiagnosisConcepts._DiagnosisConcepts.INJURY1163, DiagnosisConcepts._DiagnosisConcepts.INJURY1164, + DiagnosisConcepts._DiagnosisConcepts.INJURY1165, DiagnosisConcepts._DiagnosisConcepts.INJURY1166, + DiagnosisConcepts._DiagnosisConcepts.INJURY1167, DiagnosisConcepts._DiagnosisConcepts.INJURY1168, + DiagnosisConcepts._DiagnosisConcepts.INJURY1169, DiagnosisConcepts._DiagnosisConcepts.INJURY1170, + DiagnosisConcepts._DiagnosisConcepts.INJURY1171, DiagnosisConcepts._DiagnosisConcepts.INJURY1172, + DiagnosisConcepts._DiagnosisConcepts.INJURY1173, DiagnosisConcepts._DiagnosisConcepts.INJURY1174, + DiagnosisConcepts._DiagnosisConcepts.INJURY1175, DiagnosisConcepts._DiagnosisConcepts.INJURY1176, + DiagnosisConcepts._DiagnosisConcepts.INJURY1177, DiagnosisConcepts._DiagnosisConcepts.INJURY1178, + DiagnosisConcepts._DiagnosisConcepts.INJURY1179, DiagnosisConcepts._DiagnosisConcepts.INJURY1180 + + ); + + } + + public static List getSexualAssaultList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.SEXUAL1, DiagnosisConcepts._DiagnosisConcepts.SEXUAL2, + DiagnosisConcepts._DiagnosisConcepts.SEXUAL3 + + ); + } + + public static List getViolenceRelatedInjuriesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.VIOLENCE1, DiagnosisConcepts._DiagnosisConcepts.VIOLENCE2, + DiagnosisConcepts._DiagnosisConcepts.VIOLENCE3, DiagnosisConcepts._DiagnosisConcepts.VIOLENCE4 + + ); + } + + public static List getBurnsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.BURN1, DiagnosisConcepts._DiagnosisConcepts.BURN2, + DiagnosisConcepts._DiagnosisConcepts.BURN3, DiagnosisConcepts._DiagnosisConcepts.BURN4, + DiagnosisConcepts._DiagnosisConcepts.BURN5, DiagnosisConcepts._DiagnosisConcepts.BURN6, + DiagnosisConcepts._DiagnosisConcepts.BURN7, DiagnosisConcepts._DiagnosisConcepts.BURN8, + DiagnosisConcepts._DiagnosisConcepts.BURN9, DiagnosisConcepts._DiagnosisConcepts.BURN10, + DiagnosisConcepts._DiagnosisConcepts.BURN11, DiagnosisConcepts._DiagnosisConcepts.BURN12, + DiagnosisConcepts._DiagnosisConcepts.BURN13, DiagnosisConcepts._DiagnosisConcepts.BURN14, + DiagnosisConcepts._DiagnosisConcepts.BURN15, DiagnosisConcepts._DiagnosisConcepts.BURN16, + DiagnosisConcepts._DiagnosisConcepts.BURN17, DiagnosisConcepts._DiagnosisConcepts.BURN18, + DiagnosisConcepts._DiagnosisConcepts.BURN19, DiagnosisConcepts._DiagnosisConcepts.BURN20, + DiagnosisConcepts._DiagnosisConcepts.BURN21, DiagnosisConcepts._DiagnosisConcepts.BURN22, + DiagnosisConcepts._DiagnosisConcepts.BURN23 + + ); + } + + public static List getSnakeBitesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.SNAKEBITE1, + DiagnosisConcepts._DiagnosisConcepts.SNAKEBITE2, DiagnosisConcepts._DiagnosisConcepts.SNAKEBITE3, + DiagnosisConcepts._DiagnosisConcepts.SNAKEBITE4 + + ); + } + + public static List getDogBitesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DOGBITE_1, DiagnosisConcepts._DiagnosisConcepts.DOGBITE_2, + DiagnosisConcepts._DiagnosisConcepts.DOGBITE_3, DiagnosisConcepts._DiagnosisConcepts.DOGBITE_4, + DiagnosisConcepts._DiagnosisConcepts.DOGBITE_5, DiagnosisConcepts._DiagnosisConcepts.DOGBITE_6, + DiagnosisConcepts._DiagnosisConcepts.DOGBITE_7, DiagnosisConcepts._DiagnosisConcepts.DOGBITE_8, + DiagnosisConcepts._DiagnosisConcepts.DOGBITE_9, DiagnosisConcepts._DiagnosisConcepts.DOGBITE_10 + + ); + + } + + public static List getDiabetesList() { + return Arrays.asList(DiabetesDiagnosisConstants.DIABETIC1, DiabetesDiagnosisConstants.DIABETIC2, + DiabetesDiagnosisConstants.DIABETIC3, DiabetesDiagnosisConstants.DIABETIC4, + DiabetesDiagnosisConstants.DIABETIC5, DiabetesDiagnosisConstants.DIABETIC6, + DiabetesDiagnosisConstants.DIABETIC7, DiabetesDiagnosisConstants.DIABETIC8, + DiabetesDiagnosisConstants.DIABETIC9, DiabetesDiagnosisConstants.DIABETIC10, + DiabetesDiagnosisConstants.DIABETIC11, DiabetesDiagnosisConstants.DIABETIC12, + DiabetesDiagnosisConstants.DIABETIC13, DiabetesDiagnosisConstants.DIABETIC14, + DiabetesDiagnosisConstants.DIABETIC15, DiabetesDiagnosisConstants.DIABETIC16, + DiabetesDiagnosisConstants.DIABETIC17, DiabetesDiagnosisConstants.DIABETIC18, + DiabetesDiagnosisConstants.DIABETIC19, DiabetesDiagnosisConstants.DIABETIC20, + DiabetesDiagnosisConstants.DIABETIC21, DiabetesDiagnosisConstants.DIABETIC22, + DiabetesDiagnosisConstants.DIABETIC23, DiabetesDiagnosisConstants.DIABETIC24, + DiabetesDiagnosisConstants.DIABETIC25, DiabetesDiagnosisConstants.DIABETIC26, + DiabetesDiagnosisConstants.DIABETIC27, DiabetesDiagnosisConstants.DIABETIC28, + DiabetesDiagnosisConstants.DIABETIC29, DiabetesDiagnosisConstants.DIABETIC30, + DiabetesDiagnosisConstants.DIABETIC31, DiabetesDiagnosisConstants.DIABETIC32, + DiabetesDiagnosisConstants.DIABETIC33, DiabetesDiagnosisConstants.DIABETIC34, + DiabetesDiagnosisConstants.DIABETIC35, DiabetesDiagnosisConstants.DIABETIC36, + DiabetesDiagnosisConstants.DIABETIC37, DiabetesDiagnosisConstants.DIABETIC38, + DiabetesDiagnosisConstants.DIABETIC39, DiabetesDiagnosisConstants.DIABETIC40, + DiabetesDiagnosisConstants.DIABETIC41, DiabetesDiagnosisConstants.DIABETIC42, + DiabetesDiagnosisConstants.DIABETIC43, DiabetesDiagnosisConstants.DIABETIC44, + DiabetesDiagnosisConstants.DIABETIC45, DiabetesDiagnosisConstants.DIABETIC46, + DiabetesDiagnosisConstants.DIABETIC47, DiabetesDiagnosisConstants.DIABETIC48, + DiabetesDiagnosisConstants.DIABETIC49, DiabetesDiagnosisConstants.DIABETIC50, + DiabetesDiagnosisConstants.DIABETIC51, DiabetesDiagnosisConstants.DIABETIC52, + DiabetesDiagnosisConstants.DIABETIC53, DiabetesDiagnosisConstants.DIABETIC54, + DiabetesDiagnosisConstants.DIABETIC55, DiabetesDiagnosisConstants.DIABETIC56, + DiabetesDiagnosisConstants.DIABETIC57, DiabetesDiagnosisConstants.DIABETIC58, + DiabetesDiagnosisConstants.DIABETIC59, DiabetesDiagnosisConstants.DIABETIC60, + DiabetesDiagnosisConstants.DIABETIC61, DiabetesDiagnosisConstants.DIABETIC62, + DiabetesDiagnosisConstants.DIABETIC63, DiabetesDiagnosisConstants.DIABETIC64, + DiabetesDiagnosisConstants.DIABETIC65, DiabetesDiagnosisConstants.DIABETIC66, + DiabetesDiagnosisConstants.DIABETIC67, DiabetesDiagnosisConstants.DIABETIC68, + DiabetesDiagnosisConstants.DIABETIC69, DiabetesDiagnosisConstants.DIABETIC70, + DiabetesDiagnosisConstants.DIABETIC71, DiabetesDiagnosisConstants.DIABETIC72, + DiabetesDiagnosisConstants.DIABETIC73, DiabetesDiagnosisConstants.DIABETIC74, + DiabetesDiagnosisConstants.DIABETIC75, DiabetesDiagnosisConstants.DIABETIC76, + DiabetesDiagnosisConstants.DIABETIC77, DiabetesDiagnosisConstants.DIABETIC78, + DiabetesDiagnosisConstants.DIABETIC79, DiabetesDiagnosisConstants.DIABETIC80, + DiabetesDiagnosisConstants.DIABETIC81, DiabetesDiagnosisConstants.DIABETIC82, + DiabetesDiagnosisConstants.DIABETIC83, DiabetesDiagnosisConstants.DIABETIC84, + DiabetesDiagnosisConstants.DIABETIC85, DiabetesDiagnosisConstants.DIABETIC86, + DiabetesDiagnosisConstants.DIABETIC87, DiabetesDiagnosisConstants.DIABETIC88, + DiabetesDiagnosisConstants.DIABETIC89, DiabetesDiagnosisConstants.DIABETIC90, + DiabetesDiagnosisConstants.DIABETIC91, DiabetesDiagnosisConstants.DIABETIC92, + DiabetesDiagnosisConstants.DIABETIC93, DiabetesDiagnosisConstants.DIABETIC94, + DiabetesDiagnosisConstants.DIABETIC95, DiabetesDiagnosisConstants.DIABETIC96, + DiabetesDiagnosisConstants.DIABETIC97, DiabetesDiagnosisConstants.DIABETIC98, + DiabetesDiagnosisConstants.DIABETIC99, DiabetesDiagnosisConstants.DIABETIC100, + DiabetesDiagnosisConstants.DIABETIC101, DiabetesDiagnosisConstants.DIABETIC102, + DiabetesDiagnosisConstants.DIABETIC103, DiabetesDiagnosisConstants.DIABETIC104, + DiabetesDiagnosisConstants.DIABETIC105, DiabetesDiagnosisConstants.DIABETIC106, + DiabetesDiagnosisConstants.DIABETIC107, DiabetesDiagnosisConstants.DIABETIC108, + DiabetesDiagnosisConstants.DIABETIC109, DiabetesDiagnosisConstants.DIABETIC110, + DiabetesDiagnosisConstants.DIABETIC111, DiabetesDiagnosisConstants.DIABETIC112, + DiabetesDiagnosisConstants.DIABETIC113, DiabetesDiagnosisConstants.DIABETIC114, + DiabetesDiagnosisConstants.DIABETIC115, DiabetesDiagnosisConstants.DIABETIC116, + DiabetesDiagnosisConstants.DIABETIC117, DiabetesDiagnosisConstants.DIABETIC118, + DiabetesDiagnosisConstants.DIABETIC119, DiabetesDiagnosisConstants.DIABETIC120, + DiabetesDiagnosisConstants.DIABETIC121, DiabetesDiagnosisConstants.DIABETIC122, + DiabetesDiagnosisConstants.DIABETIC123, DiabetesDiagnosisConstants.DIABETIC124, + DiabetesDiagnosisConstants.DIABETIC125, DiabetesDiagnosisConstants.DIABETIC126, + DiabetesDiagnosisConstants.DIABETIC127, DiabetesDiagnosisConstants.DIABETIC128, + DiabetesDiagnosisConstants.DIABETIC129, DiabetesDiagnosisConstants.DIABETIC130, + DiabetesDiagnosisConstants.DIABETIC131, DiabetesDiagnosisConstants.DIABETIC132, + DiabetesDiagnosisConstants.DIABETIC133, DiabetesDiagnosisConstants.DIABETIC134, + DiabetesDiagnosisConstants.DIABETIC135, DiabetesDiagnosisConstants.DIABETIC136, + DiabetesDiagnosisConstants.DIABETIC137, DiabetesDiagnosisConstants.DIABETIC138, + DiabetesDiagnosisConstants.DIABETIC139, DiabetesDiagnosisConstants.DIABETIC140, + DiabetesDiagnosisConstants.DIABETIC141, DiabetesDiagnosisConstants.DIABETIC142, + DiabetesDiagnosisConstants.DIABETIC143, DiabetesDiagnosisConstants.DIABETIC144, + DiabetesDiagnosisConstants.DIABETIC145, DiabetesDiagnosisConstants.DIABETIC146, + DiabetesDiagnosisConstants.DIABETIC147, DiabetesDiagnosisConstants.DIABETIC148, + DiabetesDiagnosisConstants.DIABETIC149, DiabetesDiagnosisConstants.DIABETIC150, + DiabetesDiagnosisConstants.DIABETIC151, DiabetesDiagnosisConstants.DIABETIC152, + DiabetesDiagnosisConstants.DIABETIC153, DiabetesDiagnosisConstants.DIABETIC154, + DiabetesDiagnosisConstants.DIABETIC155, DiabetesDiagnosisConstants.DIABETIC156, + DiabetesDiagnosisConstants.DIABETIC157, DiabetesDiagnosisConstants.DIABETIC158, + DiabetesDiagnosisConstants.DIABETIC159, DiabetesDiagnosisConstants.DIABETIC160, + DiabetesDiagnosisConstants.DIABETIC161, DiabetesDiagnosisConstants.DIABETIC162, + DiabetesDiagnosisConstants.DIABETIC163, DiabetesDiagnosisConstants.DIABETIC164, + DiabetesDiagnosisConstants.DIABETIC165, DiabetesDiagnosisConstants.DIABETIC166, + DiabetesDiagnosisConstants.DIABETIC167, DiabetesDiagnosisConstants.DIABETIC168, + DiabetesDiagnosisConstants.DIABETIC169, DiabetesDiagnosisConstants.DIABETIC170, + DiabetesDiagnosisConstants.DIABETIC171, DiabetesDiagnosisConstants.DIABETIC172, + DiabetesDiagnosisConstants.DIABETIC173, DiabetesDiagnosisConstants.DIABETIC174, + DiabetesDiagnosisConstants.DIABETIC175, DiabetesDiagnosisConstants.DIABETIC176, + DiabetesDiagnosisConstants.DIABETIC177, DiabetesDiagnosisConstants.DIABETIC178, + DiabetesDiagnosisConstants.DIABETIC179, DiabetesDiagnosisConstants.DIABETIC180, + DiabetesDiagnosisConstants.DIABETIC181, DiabetesDiagnosisConstants.DIABETIC182, + DiabetesDiagnosisConstants.DIABETIC183, DiabetesDiagnosisConstants.DIABETIC184, + DiabetesDiagnosisConstants.DIABETIC185, DiabetesDiagnosisConstants.DIABETIC186, + DiabetesDiagnosisConstants.DIABETIC187, DiabetesDiagnosisConstants.DIABETIC188, + DiabetesDiagnosisConstants.DIABETIC189, DiabetesDiagnosisConstants.DIABETIC190, + DiabetesDiagnosisConstants.DIABETIC191, DiabetesDiagnosisConstants.DIABETIC192, + DiabetesDiagnosisConstants.DIABETIC193, DiabetesDiagnosisConstants.DIABETIC194, + DiabetesDiagnosisConstants.DIABETIC195, DiabetesDiagnosisConstants.DIABETIC196, + DiabetesDiagnosisConstants.DIABETIC197, DiabetesDiagnosisConstants.DIABETIC198, + DiabetesDiagnosisConstants.DIABETIC200, DiabetesDiagnosisConstants.DIABETIC201, + DiabetesDiagnosisConstants.DIABETIC202, DiabetesDiagnosisConstants.DIABETIC203, + DiabetesDiagnosisConstants.DIABETIC204, DiabetesDiagnosisConstants.DIABETIC205, + DiabetesDiagnosisConstants.DIABETIC206, DiabetesDiagnosisConstants.DIABETIC207, + DiabetesDiagnosisConstants.DIABETIC208, DiabetesDiagnosisConstants.DIABETIC209, + DiabetesDiagnosisConstants.DIABETIC210, DiabetesDiagnosisConstants.DIABETIC211, + DiabetesDiagnosisConstants.DIABETIC212, DiabetesDiagnosisConstants.DIABETIC213, + DiabetesDiagnosisConstants.DIABETIC214 + + ); + } + + public static List getDiabetesListConcepts() { + return Arrays.asList( + + getConcept(DiabetesDiagnosisConstants.DIABETIC1), getConcept(DiabetesDiagnosisConstants.DIABETIC2), + getConcept(DiabetesDiagnosisConstants.DIABETIC3), getConcept(DiabetesDiagnosisConstants.DIABETIC4), + getConcept(DiabetesDiagnosisConstants.DIABETIC5), getConcept(DiabetesDiagnosisConstants.DIABETIC6), + getConcept(DiabetesDiagnosisConstants.DIABETIC7), getConcept(DiabetesDiagnosisConstants.DIABETIC8), + getConcept(DiabetesDiagnosisConstants.DIABETIC9), getConcept(DiabetesDiagnosisConstants.DIABETIC10), + getConcept(DiabetesDiagnosisConstants.DIABETIC11), getConcept(DiabetesDiagnosisConstants.DIABETIC12), + getConcept(DiabetesDiagnosisConstants.DIABETIC13), getConcept(DiabetesDiagnosisConstants.DIABETIC14), + getConcept(DiabetesDiagnosisConstants.DIABETIC15), getConcept(DiabetesDiagnosisConstants.DIABETIC16), + getConcept(DiabetesDiagnosisConstants.DIABETIC17), getConcept(DiabetesDiagnosisConstants.DIABETIC18), + getConcept(DiabetesDiagnosisConstants.DIABETIC19), getConcept(DiabetesDiagnosisConstants.DIABETIC20), + getConcept(DiabetesDiagnosisConstants.DIABETIC21), getConcept(DiabetesDiagnosisConstants.DIABETIC22), + getConcept(DiabetesDiagnosisConstants.DIABETIC23), getConcept(DiabetesDiagnosisConstants.DIABETIC24), + getConcept(DiabetesDiagnosisConstants.DIABETIC25), getConcept(DiabetesDiagnosisConstants.DIABETIC26), + getConcept(DiabetesDiagnosisConstants.DIABETIC27), getConcept(DiabetesDiagnosisConstants.DIABETIC28), + getConcept(DiabetesDiagnosisConstants.DIABETIC29), getConcept(DiabetesDiagnosisConstants.DIABETIC30), + getConcept(DiabetesDiagnosisConstants.DIABETIC31), getConcept(DiabetesDiagnosisConstants.DIABETIC32), + getConcept(DiabetesDiagnosisConstants.DIABETIC33), getConcept(DiabetesDiagnosisConstants.DIABETIC34), + getConcept(DiabetesDiagnosisConstants.DIABETIC35), getConcept(DiabetesDiagnosisConstants.DIABETIC36), + getConcept(DiabetesDiagnosisConstants.DIABETIC37), getConcept(DiabetesDiagnosisConstants.DIABETIC38), + getConcept(DiabetesDiagnosisConstants.DIABETIC39), getConcept(DiabetesDiagnosisConstants.DIABETIC40), + getConcept(DiabetesDiagnosisConstants.DIABETIC41), getConcept(DiabetesDiagnosisConstants.DIABETIC42), + getConcept(DiabetesDiagnosisConstants.DIABETIC43), getConcept(DiabetesDiagnosisConstants.DIABETIC44), + getConcept(DiabetesDiagnosisConstants.DIABETIC45), getConcept(DiabetesDiagnosisConstants.DIABETIC46), + getConcept(DiabetesDiagnosisConstants.DIABETIC47), getConcept(DiabetesDiagnosisConstants.DIABETIC48), + getConcept(DiabetesDiagnosisConstants.DIABETIC49), getConcept(DiabetesDiagnosisConstants.DIABETIC50), + getConcept(DiabetesDiagnosisConstants.DIABETIC51), getConcept(DiabetesDiagnosisConstants.DIABETIC52), + getConcept(DiabetesDiagnosisConstants.DIABETIC53), getConcept(DiabetesDiagnosisConstants.DIABETIC54), + getConcept(DiabetesDiagnosisConstants.DIABETIC55), getConcept(DiabetesDiagnosisConstants.DIABETIC56), + getConcept(DiabetesDiagnosisConstants.DIABETIC57), getConcept(DiabetesDiagnosisConstants.DIABETIC58), + getConcept(DiabetesDiagnosisConstants.DIABETIC59), getConcept(DiabetesDiagnosisConstants.DIABETIC60), + getConcept(DiabetesDiagnosisConstants.DIABETIC61), getConcept(DiabetesDiagnosisConstants.DIABETIC62), + getConcept(DiabetesDiagnosisConstants.DIABETIC63), getConcept(DiabetesDiagnosisConstants.DIABETIC64), + getConcept(DiabetesDiagnosisConstants.DIABETIC65), getConcept(DiabetesDiagnosisConstants.DIABETIC66), + getConcept(DiabetesDiagnosisConstants.DIABETIC67), getConcept(DiabetesDiagnosisConstants.DIABETIC68), + getConcept(DiabetesDiagnosisConstants.DIABETIC69), getConcept(DiabetesDiagnosisConstants.DIABETIC70), + getConcept(DiabetesDiagnosisConstants.DIABETIC71), getConcept(DiabetesDiagnosisConstants.DIABETIC72), + getConcept(DiabetesDiagnosisConstants.DIABETIC73), getConcept(DiabetesDiagnosisConstants.DIABETIC74), + getConcept(DiabetesDiagnosisConstants.DIABETIC75), getConcept(DiabetesDiagnosisConstants.DIABETIC76), + getConcept(DiabetesDiagnosisConstants.DIABETIC77), getConcept(DiabetesDiagnosisConstants.DIABETIC78), + getConcept(DiabetesDiagnosisConstants.DIABETIC79), getConcept(DiabetesDiagnosisConstants.DIABETIC80), + getConcept(DiabetesDiagnosisConstants.DIABETIC81), getConcept(DiabetesDiagnosisConstants.DIABETIC82), + getConcept(DiabetesDiagnosisConstants.DIABETIC83), getConcept(DiabetesDiagnosisConstants.DIABETIC84), + getConcept(DiabetesDiagnosisConstants.DIABETIC85), getConcept(DiabetesDiagnosisConstants.DIABETIC86), + getConcept(DiabetesDiagnosisConstants.DIABETIC87), getConcept(DiabetesDiagnosisConstants.DIABETIC88), + getConcept(DiabetesDiagnosisConstants.DIABETIC89), getConcept(DiabetesDiagnosisConstants.DIABETIC90), + getConcept(DiabetesDiagnosisConstants.DIABETIC91), getConcept(DiabetesDiagnosisConstants.DIABETIC92), + getConcept(DiabetesDiagnosisConstants.DIABETIC93), getConcept(DiabetesDiagnosisConstants.DIABETIC94), + getConcept(DiabetesDiagnosisConstants.DIABETIC95), getConcept(DiabetesDiagnosisConstants.DIABETIC96), + getConcept(DiabetesDiagnosisConstants.DIABETIC97), getConcept(DiabetesDiagnosisConstants.DIABETIC98), + getConcept(DiabetesDiagnosisConstants.DIABETIC99), getConcept(DiabetesDiagnosisConstants.DIABETIC100), + getConcept(DiabetesDiagnosisConstants.DIABETIC101), getConcept(DiabetesDiagnosisConstants.DIABETIC102), + getConcept(DiabetesDiagnosisConstants.DIABETIC105), getConcept(DiabetesDiagnosisConstants.DIABETIC106), + getConcept(DiabetesDiagnosisConstants.DIABETIC107), getConcept(DiabetesDiagnosisConstants.DIABETIC108), + getConcept(DiabetesDiagnosisConstants.DIABETIC109), getConcept(DiabetesDiagnosisConstants.DIABETIC110), + getConcept(DiabetesDiagnosisConstants.DIABETIC111), getConcept(DiabetesDiagnosisConstants.DIABETIC112), + getConcept(DiabetesDiagnosisConstants.DIABETIC113), getConcept(DiabetesDiagnosisConstants.DIABETIC114), + getConcept(DiabetesDiagnosisConstants.DIABETIC115), getConcept(DiabetesDiagnosisConstants.DIABETIC116), + getConcept(DiabetesDiagnosisConstants.DIABETIC117), getConcept(DiabetesDiagnosisConstants.DIABETIC118), + getConcept(DiabetesDiagnosisConstants.DIABETIC119), getConcept(DiabetesDiagnosisConstants.DIABETIC120), + getConcept(DiabetesDiagnosisConstants.DIABETIC121), getConcept(DiabetesDiagnosisConstants.DIABETIC122), + getConcept(DiabetesDiagnosisConstants.DIABETIC123), getConcept(DiabetesDiagnosisConstants.DIABETIC124), + getConcept(DiabetesDiagnosisConstants.DIABETIC125), getConcept(DiabetesDiagnosisConstants.DIABETIC126), + getConcept(DiabetesDiagnosisConstants.DIABETIC127), getConcept(DiabetesDiagnosisConstants.DIABETIC128), + getConcept(DiabetesDiagnosisConstants.DIABETIC129), getConcept(DiabetesDiagnosisConstants.DIABETIC130), + getConcept(DiabetesDiagnosisConstants.DIABETIC131), getConcept(DiabetesDiagnosisConstants.DIABETIC132), + getConcept(DiabetesDiagnosisConstants.DIABETIC133), getConcept(DiabetesDiagnosisConstants.DIABETIC134), + getConcept(DiabetesDiagnosisConstants.DIABETIC135), getConcept(DiabetesDiagnosisConstants.DIABETIC136), + getConcept(DiabetesDiagnosisConstants.DIABETIC137), getConcept(DiabetesDiagnosisConstants.DIABETIC138), + getConcept(DiabetesDiagnosisConstants.DIABETIC139), getConcept(DiabetesDiagnosisConstants.DIABETIC140), + getConcept(DiabetesDiagnosisConstants.DIABETIC141), getConcept(DiabetesDiagnosisConstants.DIABETIC142), + getConcept(DiabetesDiagnosisConstants.DIABETIC143), getConcept(DiabetesDiagnosisConstants.DIABETIC144), + getConcept(DiabetesDiagnosisConstants.DIABETIC145), getConcept(DiabetesDiagnosisConstants.DIABETIC146), + getConcept(DiabetesDiagnosisConstants.DIABETIC147), getConcept(DiabetesDiagnosisConstants.DIABETIC148), + getConcept(DiabetesDiagnosisConstants.DIABETIC149), getConcept(DiabetesDiagnosisConstants.DIABETIC150), + getConcept(DiabetesDiagnosisConstants.DIABETIC151), getConcept(DiabetesDiagnosisConstants.DIABETIC152), + getConcept(DiabetesDiagnosisConstants.DIABETIC153), getConcept(DiabetesDiagnosisConstants.DIABETIC154), + getConcept(DiabetesDiagnosisConstants.DIABETIC155), getConcept(DiabetesDiagnosisConstants.DIABETIC156), + getConcept(DiabetesDiagnosisConstants.DIABETIC157), getConcept(DiabetesDiagnosisConstants.DIABETIC158), + getConcept(DiabetesDiagnosisConstants.DIABETIC159), getConcept(DiabetesDiagnosisConstants.DIABETIC160), + getConcept(DiabetesDiagnosisConstants.DIABETIC161), getConcept(DiabetesDiagnosisConstants.DIABETIC162), + getConcept(DiabetesDiagnosisConstants.DIABETIC163), getConcept(DiabetesDiagnosisConstants.DIABETIC164), + getConcept(DiabetesDiagnosisConstants.DIABETIC165), getConcept(DiabetesDiagnosisConstants.DIABETIC166), + getConcept(DiabetesDiagnosisConstants.DIABETIC167), getConcept(DiabetesDiagnosisConstants.DIABETIC168), + getConcept(DiabetesDiagnosisConstants.DIABETIC169), getConcept(DiabetesDiagnosisConstants.DIABETIC170), + getConcept(DiabetesDiagnosisConstants.DIABETIC171), getConcept(DiabetesDiagnosisConstants.DIABETIC172), + getConcept(DiabetesDiagnosisConstants.DIABETIC173), getConcept(DiabetesDiagnosisConstants.DIABETIC174), + getConcept(DiabetesDiagnosisConstants.DIABETIC175), getConcept(DiabetesDiagnosisConstants.DIABETIC176), + getConcept(DiabetesDiagnosisConstants.DIABETIC177), getConcept(DiabetesDiagnosisConstants.DIABETIC178), + getConcept(DiabetesDiagnosisConstants.DIABETIC179), getConcept(DiabetesDiagnosisConstants.DIABETIC180), + getConcept(DiabetesDiagnosisConstants.DIABETIC181), getConcept(DiabetesDiagnosisConstants.DIABETIC182), + getConcept(DiabetesDiagnosisConstants.DIABETIC183), getConcept(DiabetesDiagnosisConstants.DIABETIC184), + getConcept(DiabetesDiagnosisConstants.DIABETIC185), getConcept(DiabetesDiagnosisConstants.DIABETIC186), + getConcept(DiabetesDiagnosisConstants.DIABETIC187), getConcept(DiabetesDiagnosisConstants.DIABETIC188), + getConcept(DiabetesDiagnosisConstants.DIABETIC189), getConcept(DiabetesDiagnosisConstants.DIABETIC190), + getConcept(DiabetesDiagnosisConstants.DIABETIC191), getConcept(DiabetesDiagnosisConstants.DIABETIC192), + getConcept(DiabetesDiagnosisConstants.DIABETIC193), getConcept(DiabetesDiagnosisConstants.DIABETIC194), + getConcept(DiabetesDiagnosisConstants.DIABETIC195), getConcept(DiabetesDiagnosisConstants.DIABETIC196), + getConcept(DiabetesDiagnosisConstants.DIABETIC197), getConcept(DiabetesDiagnosisConstants.DIABETIC198), + getConcept(DiabetesDiagnosisConstants.DIABETIC200), getConcept(DiabetesDiagnosisConstants.DIABETIC201), + getConcept(DiabetesDiagnosisConstants.DIABETIC202), getConcept(DiabetesDiagnosisConstants.DIABETIC203), + getConcept(DiabetesDiagnosisConstants.DIABETIC204), getConcept(DiabetesDiagnosisConstants.DIABETIC205), + getConcept(DiabetesDiagnosisConstants.DIABETIC206), getConcept(DiabetesDiagnosisConstants.DIABETIC207), + getConcept(DiabetesDiagnosisConstants.DIABETIC208), getConcept(DiabetesDiagnosisConstants.DIABETIC209), + getConcept(DiabetesDiagnosisConstants.DIABETIC210), getConcept(DiabetesDiagnosisConstants.DIABETIC211), + getConcept(DiabetesDiagnosisConstants.DIABETIC212), getConcept(DiabetesDiagnosisConstants.DIABETIC213), + getConcept(DiabetesDiagnosisConstants.DIABETIC214) + + ); + } + + public static List getOtherBitesList() { + + return Arrays.asList(OtherBitesDiagnosisConstants.OTHER_BITES1, OtherBitesDiagnosisConstants.OTHER_BITES2, + OtherBitesDiagnosisConstants.OTHER_BITES3, OtherBitesDiagnosisConstants.OTHER_BITES4, + OtherBitesDiagnosisConstants.OTHER_BITES5, OtherBitesDiagnosisConstants.OTHER_BITES6, + OtherBitesDiagnosisConstants.OTHER_BITES7, OtherBitesDiagnosisConstants.OTHER_BITES8, + OtherBitesDiagnosisConstants.OTHER_BITES9, OtherBitesDiagnosisConstants.OTHER_BITES10, + OtherBitesDiagnosisConstants.OTHER_BITES11, OtherBitesDiagnosisConstants.OTHER_BITES12, + OtherBitesDiagnosisConstants.OTHER_BITES13, OtherBitesDiagnosisConstants.OTHER_BITES14, + OtherBitesDiagnosisConstants.OTHER_BITES15, OtherBitesDiagnosisConstants.OTHER_BITES16, + OtherBitesDiagnosisConstants.OTHER_BITES17, OtherBitesDiagnosisConstants.OTHER_BITES18, + OtherBitesDiagnosisConstants.OTHER_BITES19, OtherBitesDiagnosisConstants.OTHER_BITES20, + OtherBitesDiagnosisConstants.OTHER_BITES21, OtherBitesDiagnosisConstants.OTHER_BITES22, + OtherBitesDiagnosisConstants.OTHER_BITES23, OtherBitesDiagnosisConstants.OTHER_BITES24, + OtherBitesDiagnosisConstants.OTHER_BITES25, OtherBitesDiagnosisConstants.OTHER_BITES26, + OtherBitesDiagnosisConstants.OTHER_BITES27, OtherBitesDiagnosisConstants.OTHER_BITES28, + OtherBitesDiagnosisConstants.OTHER_BITES29, OtherBitesDiagnosisConstants.OTHER_BITES30, + OtherBitesDiagnosisConstants.OTHER_BITES31, OtherBitesDiagnosisConstants.OTHER_BITES32, + OtherBitesDiagnosisConstants.OTHER_BITES33, OtherBitesDiagnosisConstants.OTHER_BITES34, + OtherBitesDiagnosisConstants.OTHER_BITES35, OtherBitesDiagnosisConstants.OTHER_BITES36, + OtherBitesDiagnosisConstants.OTHER_BITES37, OtherBitesDiagnosisConstants.OTHER_BITES38, + OtherBitesDiagnosisConstants.OTHER_BITES39, OtherBitesDiagnosisConstants.OTHER_BITES40, + OtherBitesDiagnosisConstants.OTHER_BITES41, OtherBitesDiagnosisConstants.OTHER_BITES42, + OtherBitesDiagnosisConstants.OTHER_BITES43, OtherBitesDiagnosisConstants.OTHER_BITES44, + OtherBitesDiagnosisConstants.OTHER_BITES45, OtherBitesDiagnosisConstants.OTHER_BITES46, + OtherBitesDiagnosisConstants.OTHER_BITES47, OtherBitesDiagnosisConstants.OTHER_BITES48, + OtherBitesDiagnosisConstants.OTHER_BITES49, OtherBitesDiagnosisConstants.OTHER_BITES50, + OtherBitesDiagnosisConstants.OTHER_BITES51, OtherBitesDiagnosisConstants.OTHER_BITES52, + OtherBitesDiagnosisConstants.OTHER_BITES53, OtherBitesDiagnosisConstants.OTHER_BITES54, + OtherBitesDiagnosisConstants.OTHER_BITES55, OtherBitesDiagnosisConstants.OTHER_BITES56, + OtherBitesDiagnosisConstants.OTHER_BITES57, OtherBitesDiagnosisConstants.OTHER_BITES58, + OtherBitesDiagnosisConstants.OTHER_BITES59, OtherBitesDiagnosisConstants.OTHER_BITES60, + OtherBitesDiagnosisConstants.OTHER_BITES61, OtherBitesDiagnosisConstants.OTHER_BITES62, + OtherBitesDiagnosisConstants.OTHER_BITES63, OtherBitesDiagnosisConstants.OTHER_BITES64, + OtherBitesDiagnosisConstants.OTHER_BITES65, OtherBitesDiagnosisConstants.OTHER_BITES66, + OtherBitesDiagnosisConstants.OTHER_BITES67, OtherBitesDiagnosisConstants.OTHER_BITES68, + OtherBitesDiagnosisConstants.OTHER_BITES69, OtherBitesDiagnosisConstants.OTHER_BITES70, + OtherBitesDiagnosisConstants.OTHER_BITES71, OtherBitesDiagnosisConstants.OTHER_BITES72, + OtherBitesDiagnosisConstants.OTHER_BITES73, OtherBitesDiagnosisConstants.OTHER_BITES74, + OtherBitesDiagnosisConstants.OTHER_BITES75, OtherBitesDiagnosisConstants.OTHER_BITES76, + OtherBitesDiagnosisConstants.OTHER_BITES77, OtherBitesDiagnosisConstants.OTHER_BITES78, + OtherBitesDiagnosisConstants.OTHER_BITES79, OtherBitesDiagnosisConstants.OTHER_BITES80, + OtherBitesDiagnosisConstants.OTHER_BITES81, OtherBitesDiagnosisConstants.OTHER_BITES82, + OtherBitesDiagnosisConstants.OTHER_BITES83, OtherBitesDiagnosisConstants.OTHER_BITES84, + OtherBitesDiagnosisConstants.OTHER_BITES85, OtherBitesDiagnosisConstants.OTHER_BITES86, + OtherBitesDiagnosisConstants.OTHER_BITES87, OtherBitesDiagnosisConstants.OTHER_BITES88, + OtherBitesDiagnosisConstants.OTHER_BITES89, OtherBitesDiagnosisConstants.OTHER_BITES90, + OtherBitesDiagnosisConstants.OTHER_BITES91, OtherBitesDiagnosisConstants.OTHER_BITES92, + OtherBitesDiagnosisConstants.OTHER_BITES93, OtherBitesDiagnosisConstants.OTHER_BITES94, + OtherBitesDiagnosisConstants.OTHER_BITES95, OtherBitesDiagnosisConstants.OTHER_BITES96, + OtherBitesDiagnosisConstants.OTHER_BITES97, OtherBitesDiagnosisConstants.OTHER_BITES98, + OtherBitesDiagnosisConstants.OTHER_BITES99, OtherBitesDiagnosisConstants.OTHER_BITES100, + OtherBitesDiagnosisConstants.OTHER_BITES101, OtherBitesDiagnosisConstants.OTHER_BITES102, + OtherBitesDiagnosisConstants.OTHER_BITES103, OtherBitesDiagnosisConstants.OTHER_BITES104, + OtherBitesDiagnosisConstants.OTHER_BITES105, OtherBitesDiagnosisConstants.OTHER_BITES106, + OtherBitesDiagnosisConstants.OTHER_BITES107, OtherBitesDiagnosisConstants.OTHER_BITES108, + OtherBitesDiagnosisConstants.OTHER_BITES109, OtherBitesDiagnosisConstants.OTHER_BITES110, + OtherBitesDiagnosisConstants.OTHER_BITES111, OtherBitesDiagnosisConstants.OTHER_BITES112, + OtherBitesDiagnosisConstants.OTHER_BITES113, OtherBitesDiagnosisConstants.OTHER_BITES114, + OtherBitesDiagnosisConstants.OTHER_BITES115, OtherBitesDiagnosisConstants.OTHER_BITES116, + OtherBitesDiagnosisConstants.OTHER_BITES117, OtherBitesDiagnosisConstants.OTHER_BITES118, + OtherBitesDiagnosisConstants.OTHER_BITES119, OtherBitesDiagnosisConstants.OTHER_BITES120, + OtherBitesDiagnosisConstants.OTHER_BITES121, OtherBitesDiagnosisConstants.OTHER_BITES122, + OtherBitesDiagnosisConstants.OTHER_BITES123, OtherBitesDiagnosisConstants.OTHER_BITES124, + OtherBitesDiagnosisConstants.OTHER_BITES125, OtherBitesDiagnosisConstants.OTHER_BITES126, + OtherBitesDiagnosisConstants.OTHER_BITES127, OtherBitesDiagnosisConstants.OTHER_BITES128, + OtherBitesDiagnosisConstants.OTHER_BITES129, OtherBitesDiagnosisConstants.OTHER_BITES130, + OtherBitesDiagnosisConstants.OTHER_BITES131, OtherBitesDiagnosisConstants.OTHER_BITES132, + OtherBitesDiagnosisConstants.OTHER_BITES133, OtherBitesDiagnosisConstants.OTHER_BITES134, + OtherBitesDiagnosisConstants.OTHER_BITES135, OtherBitesDiagnosisConstants.OTHER_BITES136, + OtherBitesDiagnosisConstants.OTHER_BITES137, OtherBitesDiagnosisConstants.OTHER_BITES138, + OtherBitesDiagnosisConstants.OTHER_BITES139, OtherBitesDiagnosisConstants.OTHER_BITES140, + OtherBitesDiagnosisConstants.OTHER_BITES141, OtherBitesDiagnosisConstants.OTHER_BITES142, + OtherBitesDiagnosisConstants.OTHER_BITES143, OtherBitesDiagnosisConstants.OTHER_BITES144, + OtherBitesDiagnosisConstants.OTHER_BITES145, OtherBitesDiagnosisConstants.OTHER_BITES146, + OtherBitesDiagnosisConstants.OTHER_BITES147, OtherBitesDiagnosisConstants.OTHER_BITES148, + OtherBitesDiagnosisConstants.OTHER_BITES149, OtherBitesDiagnosisConstants.OTHER_BITES150, + OtherBitesDiagnosisConstants.OTHER_BITES151, OtherBitesDiagnosisConstants.OTHER_BITES152, + OtherBitesDiagnosisConstants.OTHER_BITES153, OtherBitesDiagnosisConstants.OTHER_BITES154, + OtherBitesDiagnosisConstants.OTHER_BITES155, OtherBitesDiagnosisConstants.OTHER_BITES156, + OtherBitesDiagnosisConstants.OTHER_BITES157, OtherBitesDiagnosisConstants.OTHER_BITES158, + OtherBitesDiagnosisConstants.OTHER_BITES159, OtherBitesDiagnosisConstants.OTHER_BITES160, + OtherBitesDiagnosisConstants.OTHER_BITES161, OtherBitesDiagnosisConstants.OTHER_BITES162, + OtherBitesDiagnosisConstants.OTHER_BITES163, OtherBitesDiagnosisConstants.OTHER_BITES164, + OtherBitesDiagnosisConstants.OTHER_BITES165, OtherBitesDiagnosisConstants.OTHER_BITES166, + OtherBitesDiagnosisConstants.OTHER_BITES167, OtherBitesDiagnosisConstants.OTHER_BITES168, + OtherBitesDiagnosisConstants.OTHER_BITES169, OtherBitesDiagnosisConstants.OTHER_BITES170, + OtherBitesDiagnosisConstants.OTHER_BITES171, OtherBitesDiagnosisConstants.OTHER_BITES172, + OtherBitesDiagnosisConstants.OTHER_BITES173, OtherBitesDiagnosisConstants.OTHER_BITES174, + OtherBitesDiagnosisConstants.OTHER_BITES175, OtherBitesDiagnosisConstants.OTHER_BITES176, + OtherBitesDiagnosisConstants.OTHER_BITES177, OtherBitesDiagnosisConstants.OTHER_BITES178, + OtherBitesDiagnosisConstants.OTHER_BITES179, OtherBitesDiagnosisConstants.OTHER_BITES180, + OtherBitesDiagnosisConstants.OTHER_BITES181, OtherBitesDiagnosisConstants.OTHER_BITES182 + + ); + + } + + public static List getEpilepsyList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_1, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_2, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_3, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_4, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_5, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_6, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_7, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_8, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_9, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_10, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_11, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_12, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_13, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_14, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_15, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_16, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_17, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_18, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_19, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_20, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_21, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_22, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_23, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_24, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_25, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_26, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_27, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_28, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_29, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_30, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_31, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_32, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_33, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_34, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_35, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_36, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_37, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_38, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_39, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_40, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_41, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_42, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_43, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_44, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_45, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_46, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_47, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_48, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_49, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_50, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_51, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_52, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_53, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_54, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_55, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_56, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_57, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_58, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_59, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_60, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_61, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_62, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_63, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_64, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_65, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_66, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_67, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_68, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_69, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_70, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_71, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_72, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_73, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_74, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_75, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_76, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_77, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_78, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_79, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_80, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_81, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_82, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_83, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_84, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_85, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_86, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_87, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_88, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_89, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_90, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_91, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_92, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_93, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_94, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_95, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_96, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_97, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_98, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_99, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_100, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_101, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_102, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_103, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_104, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_105, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_106, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_107, + DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_108, DiagnosisConcepts._DiagnosisConcepts.EPILEPSY_109 + + ); + } + + public static List getBrucellosisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS1, + DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS2, DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS3, + DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS4, DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS5, + DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS6, DiagnosisConcepts._DiagnosisConcepts.BRUCELOSIS7, + DiagnosisConcepts._DiagnosisConcepts.BRUCELLOSIS); + } + + public static List getCardiovascularConditionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_1, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_2, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_3, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_4, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_5, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_6, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_7, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_8, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_9, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_10, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_11, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_12, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_13, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_14, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_15, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_16, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_17, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_18, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_19, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_20, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_21, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_22, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_23, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_24, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_25, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_26, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_27, + DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_28, DiagnosisConcepts._DiagnosisConcepts.CARDIOVASCULAR_29 + + ); + } + + public static List getOvrerweightList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.OVERWEIGHT1, + DiagnosisConcepts._DiagnosisConcepts.OVERWEIGHT2 + + ); + } + + public static List getMuscularSkeletalConditionsList() { + return Arrays.asList(MascularDiagnosisConstants.Muscular1, MascularDiagnosisConstants.Muscular2, + MascularDiagnosisConstants.Muscular3, MascularDiagnosisConstants.Muscular4, + MascularDiagnosisConstants.Muscular5, MascularDiagnosisConstants.Muscular6, + MascularDiagnosisConstants.Muscular7, MascularDiagnosisConstants.Muscular8, + MascularDiagnosisConstants.Muscular9, MascularDiagnosisConstants.Muscular10, + MascularDiagnosisConstants.Muscular11, MascularDiagnosisConstants.Muscular12, + MascularDiagnosisConstants.Muscular13, MascularDiagnosisConstants.Muscular14, + MascularDiagnosisConstants.Muscular15, MascularDiagnosisConstants.Muscular16, + MascularDiagnosisConstants.Muscular17, MascularDiagnosisConstants.Muscular18, + MascularDiagnosisConstants.Muscular19, MascularDiagnosisConstants.Muscular20, + MascularDiagnosisConstants.Muscular21, MascularDiagnosisConstants.Muscular22, + MascularDiagnosisConstants.Muscular23, MascularDiagnosisConstants.Muscular24, + MascularDiagnosisConstants.Muscular25, MascularDiagnosisConstants.Muscular26, + MascularDiagnosisConstants.Muscular27, MascularDiagnosisConstants.Muscular28, + MascularDiagnosisConstants.Muscular29, MascularDiagnosisConstants.Muscular30, + MascularDiagnosisConstants.Muscular31, MascularDiagnosisConstants.Muscular32, + MascularDiagnosisConstants.Muscular33, MascularDiagnosisConstants.Muscular34, + MascularDiagnosisConstants.Muscular35, MascularDiagnosisConstants.Muscular36, + MascularDiagnosisConstants.Muscular37, MascularDiagnosisConstants.Muscular38, + MascularDiagnosisConstants.Muscular39, MascularDiagnosisConstants.Muscular40, + MascularDiagnosisConstants.Muscular41, MascularDiagnosisConstants.Muscular42, + MascularDiagnosisConstants.Muscular43, MascularDiagnosisConstants.Muscular44, + MascularDiagnosisConstants.Muscular45, MascularDiagnosisConstants.Muscular46, + MascularDiagnosisConstants.Muscular47, MascularDiagnosisConstants.Muscular48, + MascularDiagnosisConstants.Muscular49, MascularDiagnosisConstants.Muscular50, + MascularDiagnosisConstants.Muscular51, MascularDiagnosisConstants.Muscular52 + + ); + } + + public static List getFistulaBirthRelatedList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.FISTULA1, DiagnosisConcepts._DiagnosisConcepts.FISTULA2, + DiagnosisConcepts._DiagnosisConcepts.FISTULA3, DiagnosisConcepts._DiagnosisConcepts.FISTULA4, + DiagnosisConcepts._DiagnosisConcepts.FISTULA5, DiagnosisConcepts._DiagnosisConcepts.FISTULA6, + DiagnosisConcepts._DiagnosisConcepts.FISTULA7, DiagnosisConcepts._DiagnosisConcepts.FISTULA8, + DiagnosisConcepts._DiagnosisConcepts.FISTULA9, DiagnosisConcepts._DiagnosisConcepts.FISTULA10, + DiagnosisConcepts._DiagnosisConcepts.FISTULA11, DiagnosisConcepts._DiagnosisConcepts.FISTULA12, + DiagnosisConcepts._DiagnosisConcepts.FISTULA13, DiagnosisConcepts._DiagnosisConcepts.FISTULA14, + DiagnosisConcepts._DiagnosisConcepts.FISTULA15, DiagnosisConcepts._DiagnosisConcepts.FISTULA16, + DiagnosisConcepts._DiagnosisConcepts.FISTULA17, DiagnosisConcepts._DiagnosisConcepts.FISTULA18, + DiagnosisConcepts._DiagnosisConcepts.FISTULA19, DiagnosisConcepts._DiagnosisConcepts.FISTULA20, + DiagnosisConcepts._DiagnosisConcepts.FISTULA21, DiagnosisConcepts._DiagnosisConcepts.FISTULA22, + DiagnosisConcepts._DiagnosisConcepts.FISTULA23, DiagnosisConcepts._DiagnosisConcepts.FISTULA24, + DiagnosisConcepts._DiagnosisConcepts.FISTULA25, DiagnosisConcepts._DiagnosisConcepts.FISTULA26, + DiagnosisConcepts._DiagnosisConcepts.FISTULA27, DiagnosisConcepts._DiagnosisConcepts.FISTULA28, + DiagnosisConcepts._DiagnosisConcepts.FISTULA29, DiagnosisConcepts._DiagnosisConcepts.FISTULA30, + DiagnosisConcepts._DiagnosisConcepts.FISTULA31, DiagnosisConcepts._DiagnosisConcepts.FISTULA32, + DiagnosisConcepts._DiagnosisConcepts.FISTULA33, DiagnosisConcepts._DiagnosisConcepts.FISTULA34, + DiagnosisConcepts._DiagnosisConcepts.FISTULA35, DiagnosisConcepts._DiagnosisConcepts.FISTULA36, + DiagnosisConcepts._DiagnosisConcepts.FISTULA37, DiagnosisConcepts._DiagnosisConcepts.FISTULA38, + DiagnosisConcepts._DiagnosisConcepts.FISTULA39, DiagnosisConcepts._DiagnosisConcepts.FISTULA40, + DiagnosisConcepts._DiagnosisConcepts.FISTULA41, DiagnosisConcepts._DiagnosisConcepts.FISTULA42, + DiagnosisConcepts._DiagnosisConcepts.FISTULA43, DiagnosisConcepts._DiagnosisConcepts.FISTULA44, + DiagnosisConcepts._DiagnosisConcepts.FISTULA45, DiagnosisConcepts._DiagnosisConcepts.FISTULA46, + DiagnosisConcepts._DiagnosisConcepts.FISTULA47, DiagnosisConcepts._DiagnosisConcepts.FISTULA48, + DiagnosisConcepts._DiagnosisConcepts.FISTULA49, DiagnosisConcepts._DiagnosisConcepts.FISTULA50, + DiagnosisConcepts._DiagnosisConcepts.FISTULA51, DiagnosisConcepts._DiagnosisConcepts.FISTULA52, + DiagnosisConcepts._DiagnosisConcepts.FISTULA53, DiagnosisConcepts._DiagnosisConcepts.FISTULA54, + DiagnosisConcepts._DiagnosisConcepts.FISTULA55, DiagnosisConcepts._DiagnosisConcepts.FISTULA56, + DiagnosisConcepts._DiagnosisConcepts.FISTULA57, DiagnosisConcepts._DiagnosisConcepts.FISTULA58, + DiagnosisConcepts._DiagnosisConcepts.FISTULA59, DiagnosisConcepts._DiagnosisConcepts.FISTULA60, + DiagnosisConcepts._DiagnosisConcepts.FISTULA61, DiagnosisConcepts._DiagnosisConcepts.FISTULA62, + DiagnosisConcepts._DiagnosisConcepts.FISTULA63, DiagnosisConcepts._DiagnosisConcepts.FISTULA64, + DiagnosisConcepts._DiagnosisConcepts.FISTULA65, DiagnosisConcepts._DiagnosisConcepts.FISTULA66, + DiagnosisConcepts._DiagnosisConcepts.FISTULA67, DiagnosisConcepts._DiagnosisConcepts.FISTULA68, + DiagnosisConcepts._DiagnosisConcepts.FISTULA69, DiagnosisConcepts._DiagnosisConcepts.FISTULA70, + DiagnosisConcepts._DiagnosisConcepts.FISTULA71, DiagnosisConcepts._DiagnosisConcepts.FISTULA72, + DiagnosisConcepts._DiagnosisConcepts.FISTULA73, DiagnosisConcepts._DiagnosisConcepts.FISTULA74, + DiagnosisConcepts._DiagnosisConcepts.FISTULA75, DiagnosisConcepts._DiagnosisConcepts.FISTULA76, + DiagnosisConcepts._DiagnosisConcepts.FISTULA77, DiagnosisConcepts._DiagnosisConcepts.FISTULA78, + DiagnosisConcepts._DiagnosisConcepts.FISTULA79, DiagnosisConcepts._DiagnosisConcepts.FISTULA80, + DiagnosisConcepts._DiagnosisConcepts.FISTULA81, DiagnosisConcepts._DiagnosisConcepts.FISTULA82, + DiagnosisConcepts._DiagnosisConcepts.FISTULA83, DiagnosisConcepts._DiagnosisConcepts.FISTULA84, + DiagnosisConcepts._DiagnosisConcepts.FISTULA85, DiagnosisConcepts._DiagnosisConcepts.FISTULA86, + DiagnosisConcepts._DiagnosisConcepts.FISTULA87, DiagnosisConcepts._DiagnosisConcepts.FISTULA88, + DiagnosisConcepts._DiagnosisConcepts.FISTULA89, DiagnosisConcepts._DiagnosisConcepts.FISTULA90, + DiagnosisConcepts._DiagnosisConcepts.FISTULA91, DiagnosisConcepts._DiagnosisConcepts.FISTULA92, + DiagnosisConcepts._DiagnosisConcepts.FISTULA93, DiagnosisConcepts._DiagnosisConcepts.FISTULA94, + DiagnosisConcepts._DiagnosisConcepts.FISTULA95, DiagnosisConcepts._DiagnosisConcepts.FISTULA96, + DiagnosisConcepts._DiagnosisConcepts.FISTULA97, DiagnosisConcepts._DiagnosisConcepts.FISTULA98, + DiagnosisConcepts._DiagnosisConcepts.FISTULA99, DiagnosisConcepts._DiagnosisConcepts.FISTULA100, + DiagnosisConcepts._DiagnosisConcepts.FISTULA101, DiagnosisConcepts._DiagnosisConcepts.FISTULA102, + DiagnosisConcepts._DiagnosisConcepts.FISTULA103, DiagnosisConcepts._DiagnosisConcepts.FISTULA104, + DiagnosisConcepts._DiagnosisConcepts.FISTULA105, DiagnosisConcepts._DiagnosisConcepts.FISTULA106, + DiagnosisConcepts._DiagnosisConcepts.FISTULA107, DiagnosisConcepts._DiagnosisConcepts.FISTULA108, + DiagnosisConcepts._DiagnosisConcepts.FISTULA109, DiagnosisConcepts._DiagnosisConcepts.FISTULA110, + DiagnosisConcepts._DiagnosisConcepts.FISTULA111, DiagnosisConcepts._DiagnosisConcepts.FISTULA112, + DiagnosisConcepts._DiagnosisConcepts.FISTULA113, DiagnosisConcepts._DiagnosisConcepts.FISTULA114, + DiagnosisConcepts._DiagnosisConcepts.FISTULA115, DiagnosisConcepts._DiagnosisConcepts.FISTULA116, + DiagnosisConcepts._DiagnosisConcepts.FISTULA117, DiagnosisConcepts._DiagnosisConcepts.FISTULA118, + DiagnosisConcepts._DiagnosisConcepts.FISTULA119, DiagnosisConcepts._DiagnosisConcepts.FISTULA120, + DiagnosisConcepts._DiagnosisConcepts.FISTULA121, DiagnosisConcepts._DiagnosisConcepts.FISTULA122, + DiagnosisConcepts._DiagnosisConcepts.FISTULA123, DiagnosisConcepts._DiagnosisConcepts.FISTULA124, + DiagnosisConcepts._DiagnosisConcepts.FISTULA125, DiagnosisConcepts._DiagnosisConcepts.FISTULA126, + DiagnosisConcepts._DiagnosisConcepts.FISTULA127, DiagnosisConcepts._DiagnosisConcepts.FISTULA128, + DiagnosisConcepts._DiagnosisConcepts.FISTULA129, DiagnosisConcepts._DiagnosisConcepts.FISTULA130, + DiagnosisConcepts._DiagnosisConcepts.FISTULA131, DiagnosisConcepts._DiagnosisConcepts.FISTULA132, + DiagnosisConcepts._DiagnosisConcepts.FISTULA133, DiagnosisConcepts._DiagnosisConcepts.FISTULA134, + DiagnosisConcepts._DiagnosisConcepts.FISTULA135, DiagnosisConcepts._DiagnosisConcepts.FISTULA136, + DiagnosisConcepts._DiagnosisConcepts.FISTULA137, DiagnosisConcepts._DiagnosisConcepts.FISTULA138, + DiagnosisConcepts._DiagnosisConcepts.FISTULA139, DiagnosisConcepts._DiagnosisConcepts.FISTULA140, + DiagnosisConcepts._DiagnosisConcepts.FISTULA141, DiagnosisConcepts._DiagnosisConcepts.FISTULA142, + DiagnosisConcepts._DiagnosisConcepts.FISTULA143, DiagnosisConcepts._DiagnosisConcepts.FISTULA144, + DiagnosisConcepts._DiagnosisConcepts.FISTULA145, DiagnosisConcepts._DiagnosisConcepts.FISTULA146, + DiagnosisConcepts._DiagnosisConcepts.FISTULA147, DiagnosisConcepts._DiagnosisConcepts.FISTULA148, + DiagnosisConcepts._DiagnosisConcepts.FISTULA149, DiagnosisConcepts._DiagnosisConcepts.FISTULA150, + DiagnosisConcepts._DiagnosisConcepts.FISTULA151, DiagnosisConcepts._DiagnosisConcepts.FISTULA152, + DiagnosisConcepts._DiagnosisConcepts.FISTULA153, DiagnosisConcepts._DiagnosisConcepts.FISTULA154, + DiagnosisConcepts._DiagnosisConcepts.FISTULA155, DiagnosisConcepts._DiagnosisConcepts.FISTULA156, + DiagnosisConcepts._DiagnosisConcepts.FISTULA157, DiagnosisConcepts._DiagnosisConcepts.FISTULA158, + DiagnosisConcepts._DiagnosisConcepts.FISTULA159, DiagnosisConcepts._DiagnosisConcepts.FISTULA160, + DiagnosisConcepts._DiagnosisConcepts.FISTULA161, DiagnosisConcepts._DiagnosisConcepts.FISTULA162, + DiagnosisConcepts._DiagnosisConcepts.FISTULA163, DiagnosisConcepts._DiagnosisConcepts.FISTULA164, + DiagnosisConcepts._DiagnosisConcepts.FISTULA165, DiagnosisConcepts._DiagnosisConcepts.FISTULA166, + DiagnosisConcepts._DiagnosisConcepts.FISTULA167, DiagnosisConcepts._DiagnosisConcepts.FISTULA168, + DiagnosisConcepts._DiagnosisConcepts.FISTULA169, DiagnosisConcepts._DiagnosisConcepts.FISTULA170, + DiagnosisConcepts._DiagnosisConcepts.FISTULA171, DiagnosisConcepts._DiagnosisConcepts.FISTULA172, + DiagnosisConcepts._DiagnosisConcepts.FISTULA173, DiagnosisConcepts._DiagnosisConcepts.FISTULA174, + DiagnosisConcepts._DiagnosisConcepts.FISTULA175, DiagnosisConcepts._DiagnosisConcepts.FISTULA176, + DiagnosisConcepts._DiagnosisConcepts.FISTULA177, DiagnosisConcepts._DiagnosisConcepts.FISTULA178, + DiagnosisConcepts._DiagnosisConcepts.FISTULA179, DiagnosisConcepts._DiagnosisConcepts.FISTULA180 + + ); + } + + public static List getNeoplamsList() { + return Arrays.asList(OncologyDiagnosisConstants.CANCER_1, OncologyDiagnosisConstants.CANCER_2, + OncologyDiagnosisConstants.CANCER_3, OncologyDiagnosisConstants.CANCER_4, OncologyDiagnosisConstants.CANCER_5, + OncologyDiagnosisConstants.CANCER_6, OncologyDiagnosisConstants.CANCER_7, OncologyDiagnosisConstants.CANCER_8, + OncologyDiagnosisConstants.CANCER_9, OncologyDiagnosisConstants.CANCER_10, OncologyDiagnosisConstants.CANCER_11, + OncologyDiagnosisConstants.CANCER_12, OncologyDiagnosisConstants.CANCER_13, + OncologyDiagnosisConstants.CANCER_14, OncologyDiagnosisConstants.CANCER_15, + OncologyDiagnosisConstants.CANCER_16, OncologyDiagnosisConstants.CANCER_17, + OncologyDiagnosisConstants.CANCER_18, OncologyDiagnosisConstants.CANCER_19, + OncologyDiagnosisConstants.CANCER_20, OncologyDiagnosisConstants.CANCER_21, + OncologyDiagnosisConstants.CANCER_22, OncologyDiagnosisConstants.CANCER_23, + OncologyDiagnosisConstants.CANCER_24, OncologyDiagnosisConstants.CANCER_25, + OncologyDiagnosisConstants.CANCER_26, OncologyDiagnosisConstants.CANCER_27, + OncologyDiagnosisConstants.CANCER_28, OncologyDiagnosisConstants.CANCER_29, + OncologyDiagnosisConstants.CANCER_30, OncologyDiagnosisConstants.CANCER_31, + OncologyDiagnosisConstants.CANCER_32, OncologyDiagnosisConstants.CANCER_33, + OncologyDiagnosisConstants.CANCER_34, OncologyDiagnosisConstants.CANCER_35, + OncologyDiagnosisConstants.CANCER_36, OncologyDiagnosisConstants.CANCER_37, + OncologyDiagnosisConstants.CANCER_38, OncologyDiagnosisConstants.CANCER_39, + OncologyDiagnosisConstants.CANCER_40, OncologyDiagnosisConstants.CANCER_41, + OncologyDiagnosisConstants.CANCER_42, OncologyDiagnosisConstants.CANCER_43, + OncologyDiagnosisConstants.CANCER_44, OncologyDiagnosisConstants.CANCER_45, + OncologyDiagnosisConstants.CANCER_46, OncologyDiagnosisConstants.CANCER_47, + OncologyDiagnosisConstants.CANCER_48, OncologyDiagnosisConstants.CANCER_49, + OncologyDiagnosisConstants.CANCER_50, OncologyDiagnosisConstants.CANCER_51, + OncologyDiagnosisConstants.CANCER_52, OncologyDiagnosisConstants.CANCER_53, + OncologyDiagnosisConstants.CANCER_54, OncologyDiagnosisConstants.CANCER_55, + OncologyDiagnosisConstants.CANCER_56, OncologyDiagnosisConstants.CANCER_57, + OncologyDiagnosisConstants.CANCER_58, OncologyDiagnosisConstants.CANCER_59, + OncologyDiagnosisConstants.CANCER_60, OncologyDiagnosisConstants.CANCER_61, + OncologyDiagnosisConstants.CANCER_62, OncologyDiagnosisConstants.CANCER_63, + OncologyDiagnosisConstants.CANCER_64, OncologyDiagnosisConstants.CANCER_65, + OncologyDiagnosisConstants.CANCER_66, OncologyDiagnosisConstants.CANCER_67, + OncologyDiagnosisConstants.CANCER_68, OncologyDiagnosisConstants.CANCER_69, + OncologyDiagnosisConstants.CANCER_70, OncologyDiagnosisConstants.CANCER_71, + OncologyDiagnosisConstants.CANCER_72, OncologyDiagnosisConstants.CANCER_73, + OncologyDiagnosisConstants.CANCER_74, OncologyDiagnosisConstants.CANCER_75, + OncologyDiagnosisConstants.CANCER_76, OncologyDiagnosisConstants.CANCER_77, + OncologyDiagnosisConstants.CANCER_78, OncologyDiagnosisConstants.CANCER_79, + OncologyDiagnosisConstants.CANCER_80, OncologyDiagnosisConstants.CANCER_81, + OncologyDiagnosisConstants.CANCER_82, OncologyDiagnosisConstants.CANCER_83, + OncologyDiagnosisConstants.CANCER_84, OncologyDiagnosisConstants.CANCER_85, + OncologyDiagnosisConstants.CANCER_86, OncologyDiagnosisConstants.CANCER_87, + OncologyDiagnosisConstants.CANCER_88, OncologyDiagnosisConstants.CANCER_89, + OncologyDiagnosisConstants.CANCER_90, OncologyDiagnosisConstants.CANCER_91, + OncologyDiagnosisConstants.CANCER_92, OncologyDiagnosisConstants.CANCER_93, + OncologyDiagnosisConstants.CANCER_94, OncologyDiagnosisConstants.CANCER_95, + OncologyDiagnosisConstants.CANCER_96, OncologyDiagnosisConstants.CANCER_97, + OncologyDiagnosisConstants.CANCER_98, OncologyDiagnosisConstants.CANCER_99, + OncologyDiagnosisConstants.CANCER_100, OncologyDiagnosisConstants.CANCER_101, + OncologyDiagnosisConstants.CANCER_102, OncologyDiagnosisConstants.CANCER_103, + OncologyDiagnosisConstants.CANCER_104, OncologyDiagnosisConstants.CANCER_105, + OncologyDiagnosisConstants.CANCER_106, OncologyDiagnosisConstants.CANCER_107, + OncologyDiagnosisConstants.CANCER_108, OncologyDiagnosisConstants.CANCER_109, + OncologyDiagnosisConstants.CANCER_110, OncologyDiagnosisConstants.CANCER_111, + OncologyDiagnosisConstants.CANCER_112, OncologyDiagnosisConstants.CANCER_113, + OncologyDiagnosisConstants.CANCER_114, OncologyDiagnosisConstants.CANCER_115, + OncologyDiagnosisConstants.CANCER_116, OncologyDiagnosisConstants.CANCER_117, + OncologyDiagnosisConstants.CANCER_118, OncologyDiagnosisConstants.CANCER_119, + OncologyDiagnosisConstants.CANCER_120, OncologyDiagnosisConstants.CANCER_121, + OncologyDiagnosisConstants.CANCER_122, OncologyDiagnosisConstants.CANCER_123, + OncologyDiagnosisConstants.CANCER_124, OncologyDiagnosisConstants.CANCER_125, + OncologyDiagnosisConstants.CANCER_126, OncologyDiagnosisConstants.CANCER_127, + OncologyDiagnosisConstants.CANCER_128, OncologyDiagnosisConstants.CANCER_129, + OncologyDiagnosisConstants.CANCER_130, OncologyDiagnosisConstants.CANCER_131, + OncologyDiagnosisConstants.CANCER_132, OncologyDiagnosisConstants.CANCER_133, + OncologyDiagnosisConstants.CANCER_134, OncologyDiagnosisConstants.CANCER_135, + OncologyDiagnosisConstants.CANCER_136, OncologyDiagnosisConstants.CANCER_137, + OncologyDiagnosisConstants.CANCER_138, OncologyDiagnosisConstants.CANCER_139, + OncologyDiagnosisConstants.CANCER_140, OncologyDiagnosisConstants.CANCER_141, + OncologyDiagnosisConstants.CANCER_142, OncologyDiagnosisConstants.CANCER_143, + OncologyDiagnosisConstants.CANCER_144, OncologyDiagnosisConstants.CANCER_145, + OncologyDiagnosisConstants.CANCER_146, OncologyDiagnosisConstants.CANCER_147, + OncologyDiagnosisConstants.CANCER_148, OncologyDiagnosisConstants.CANCER_149, + OncologyDiagnosisConstants.CANCER_150, OncologyDiagnosisConstants.CANCER_151, + OncologyDiagnosisConstants.CANCER_152, OncologyDiagnosisConstants.CANCER_153, + OncologyDiagnosisConstants.CANCER_154, OncologyDiagnosisConstants.CANCER_155, + OncologyDiagnosisConstants.CANCER_156, OncologyDiagnosisConstants.CANCER_157, + OncologyDiagnosisConstants.CANCER_158, OncologyDiagnosisConstants.CANCER_159, + OncologyDiagnosisConstants.CANCER_160, OncologyDiagnosisConstants.CANCER_161, + OncologyDiagnosisConstants.CANCER_162, OncologyDiagnosisConstants.CANCER_163, + OncologyDiagnosisConstants.CANCER_164, OncologyDiagnosisConstants.CANCER_165, + OncologyDiagnosisConstants.CANCER_166, OncologyDiagnosisConstants.CANCER_167, + OncologyDiagnosisConstants.CANCER_168, OncologyDiagnosisConstants.CANCER_169, + OncologyDiagnosisConstants.CANCER_170, OncologyDiagnosisConstants.CANCER_171, + OncologyDiagnosisConstants.CANCER_172, OncologyDiagnosisConstants.CANCER_173, + OncologyDiagnosisConstants.CANCER_174, OncologyDiagnosisConstants.CANCER_175, + OncologyDiagnosisConstants.CANCER_176, OncologyDiagnosisConstants.CANCER_177, + OncologyDiagnosisConstants.CANCER_178, OncologyDiagnosisConstants.CANCER_179, + OncologyDiagnosisConstants.CANCER_180, OncologyDiagnosisConstants.CANCER_181, + OncologyDiagnosisConstants.CANCER_182, OncologyDiagnosisConstants.CANCER_183, + OncologyDiagnosisConstants.CANCER_184, OncologyDiagnosisConstants.CANCER_185, + OncologyDiagnosisConstants.CANCER_186, OncologyDiagnosisConstants.CANCER_187, + OncologyDiagnosisConstants.CANCER_188, OncologyDiagnosisConstants.CANCER_189, + OncologyDiagnosisConstants.CANCER_190, OncologyDiagnosisConstants.CANCER_191, + OncologyDiagnosisConstants.CANCER_192, OncologyDiagnosisConstants.CANCER_193, + OncologyDiagnosisConstants.CANCER_194, OncologyDiagnosisConstants.CANCER_195, + OncologyDiagnosisConstants.CANCER_196, OncologyDiagnosisConstants.CANCER_197, + OncologyDiagnosisConstants.CANCER_198, OncologyDiagnosisConstants.CANCER_199, + OncologyDiagnosisConstants.CANCER_200, OncologyDiagnosisConstants.CANCER_201, + OncologyDiagnosisConstants.CANCER_202, OncologyDiagnosisConstants.CANCER_203, + OncologyDiagnosisConstants.CANCER_204, OncologyDiagnosisConstants.CANCER_205, + OncologyDiagnosisConstants.CANCER_206, OncologyDiagnosisConstants.CANCER_207, + OncologyDiagnosisConstants.CANCER_208, OncologyDiagnosisConstants.CANCER_209, + OncologyDiagnosisConstants.CANCER_210, OncologyDiagnosisConstants.CANCER_211, + OncologyDiagnosisConstants.CANCER_212, OncologyDiagnosisConstants.CANCER_213, + OncologyDiagnosisConstants.CANCER_214, OncologyDiagnosisConstants.CANCER_215, + OncologyDiagnosisConstants.CANCER_216, OncologyDiagnosisConstants.CANCER_217, + OncologyDiagnosisConstants.CANCER_218, OncologyDiagnosisConstants.CANCER_219, + OncologyDiagnosisConstants.CANCER_220, OncologyDiagnosisConstants.CANCER_221, + OncologyDiagnosisConstants.CANCER_222, OncologyDiagnosisConstants.CANCER_223, + OncologyDiagnosisConstants.CANCER_224, OncologyDiagnosisConstants.CANCER_225, + OncologyDiagnosisConstants.CANCER_226, OncologyDiagnosisConstants.CANCER_227, + OncologyDiagnosisConstants.CANCER_228, OncologyDiagnosisConstants.CANCER_229, + OncologyDiagnosisConstants.CANCER_230, OncologyDiagnosisConstants.CANCER_231, + OncologyDiagnosisConstants.CANCER_232, OncologyDiagnosisConstants.CANCER_233, + OncologyDiagnosisConstants.CANCER_234, OncologyDiagnosisConstants.CANCER_235, + OncologyDiagnosisConstants.CANCER_236, OncologyDiagnosisConstants.CANCER_237, + OncologyDiagnosisConstants.CANCER_238, OncologyDiagnosisConstants.CANCER_239, + OncologyDiagnosisConstants.CANCER_240, OncologyDiagnosisConstants.CANCER_241, + OncologyDiagnosisConstants.CANCER_242, OncologyDiagnosisConstants.CANCER_243, + OncologyDiagnosisConstants.CANCER_244, OncologyDiagnosisConstants.CANCER_245, + OncologyDiagnosisConstants.CANCER_246, OncologyDiagnosisConstants.CANCER_247, + OncologyDiagnosisConstants.CANCER_248, OncologyDiagnosisConstants.CANCER_249, + OncologyDiagnosisConstants.CANCER_250, OncologyDiagnosisConstants.CANCER_251, + OncologyDiagnosisConstants.CANCER_252, OncologyDiagnosisConstants.CANCER_253, + OncologyDiagnosisConstants.CANCER_254, OncologyDiagnosisConstants.CANCER_255, + OncologyDiagnosisConstants.CANCER_256, OncologyDiagnosisConstants.CANCER_257, + OncologyDiagnosisConstants.CANCER_258, OncologyDiagnosisConstants.CANCER_259, + OncologyDiagnosisConstants.CANCER_260, OncologyDiagnosisConstants.CANCER_261, + OncologyDiagnosisConstants.CANCER_262, OncologyDiagnosisConstants.CANCER_263, + OncologyDiagnosisConstants.CANCER_264, OncologyDiagnosisConstants.CANCER_265, + OncologyDiagnosisConstants.CANCER_266, OncologyDiagnosisConstants.CANCER_267, + OncologyDiagnosisConstants.CANCER_268, OncologyDiagnosisConstants.CANCER_269, + OncologyDiagnosisConstants.CANCER_270, OncologyDiagnosisConstants.CANCER_271, + OncologyDiagnosisConstants.CANCER_272, OncologyDiagnosisConstants.CANCER_273, + OncologyDiagnosisConstants.CANCER_274, OncologyDiagnosisConstants.CANCER_275, + OncologyDiagnosisConstants.CANCER_276, OncologyDiagnosisConstants.CANCER_277, + OncologyDiagnosisConstants.CANCER_278, OncologyDiagnosisConstants.CANCER_279, + OncologyDiagnosisConstants.CANCER_280, OncologyDiagnosisConstants.CANCER_281, + OncologyDiagnosisConstants.CANCER_282, OncologyDiagnosisConstants.CANCER_283, + OncologyDiagnosisConstants.CANCER_284, OncologyDiagnosisConstants.CANCER_285, + OncologyDiagnosisConstants.CANCER_286, OncologyDiagnosisConstants.CANCER_287, + OncologyDiagnosisConstants.CANCER_288, OncologyDiagnosisConstants.CANCER_289, + OncologyDiagnosisConstants.CANCER_290, OncologyDiagnosisConstants.CANCER_291, + OncologyDiagnosisConstants.CANCER_292, OncologyDiagnosisConstants.CANCER_293, + OncologyDiagnosisConstants.CANCER_294, OncologyDiagnosisConstants.CANCER_295, + OncologyDiagnosisConstants.CANCER_296, OncologyDiagnosisConstants.CANCER_297, + OncologyDiagnosisConstants.CANCER_298, OncologyDiagnosisConstants.CANCER_299, + OncologyDiagnosisConstants.CANCER_300, OncologyDiagnosisConstants.CANCER_301, + OncologyDiagnosisConstants.CANCER_302, OncologyDiagnosisConstants.CANCER_303, + OncologyDiagnosisConstants.CANCER_304, OncologyDiagnosisConstants.CANCER_305, + OncologyDiagnosisConstants.CANCER_306, OncologyDiagnosisConstants.CANCER_307, + OncologyDiagnosisConstants.CANCER_308, OncologyDiagnosisConstants.CANCER_309, + OncologyDiagnosisConstants.CANCER_310, OncologyDiagnosisConstants.CANCER_311, + OncologyDiagnosisConstants.CANCER_312, OncologyDiagnosisConstants.CANCER_313, + OncologyDiagnosisConstants.CANCER_314, OncologyDiagnosisConstants.CANCER_315, + OncologyDiagnosisConstants.CANCER_316, OncologyDiagnosisConstants.CANCER_317, + OncologyDiagnosisConstants.CANCER_318, OncologyDiagnosisConstants.CANCER_319, + OncologyDiagnosisConstants.CANCER_320, OncologyDiagnosisConstants.CANCER_321, + OncologyDiagnosisConstants.CANCER_322, OncologyDiagnosisConstants.CANCER_323, + OncologyDiagnosisConstants.CANCER_324, OncologyDiagnosisConstants.CANCER_325, + OncologyDiagnosisConstants.CANCER_326, OncologyDiagnosisConstants.CANCER_327, + OncologyDiagnosisConstants.CANCER_328, OncologyDiagnosisConstants.CANCER_329, + OncologyDiagnosisConstants.CANCER_330, OncologyDiagnosisConstants.CANCER_331, + OncologyDiagnosisConstants.CANCER_332, OncologyDiagnosisConstants.CANCER_333, + OncologyDiagnosisConstants.CANCER_334, OncologyDiagnosisConstants.CANCER_335, + OncologyDiagnosisConstants.CANCER_336, OncologyDiagnosisConstants.CANCER_337, + OncologyDiagnosisConstants.CANCER_338, OncologyDiagnosisConstants.CANCER_339, + OncologyDiagnosisConstants.CANCER_340, OncologyDiagnosisConstants.CANCER_341, + OncologyDiagnosisConstants.CANCER_342, OncologyDiagnosisConstants.CANCER_343, + OncologyDiagnosisConstants.CANCER_344, OncologyDiagnosisConstants.CANCER_345, + OncologyDiagnosisConstants.CANCER_346, OncologyDiagnosisConstants.CANCER_347, + OncologyDiagnosisConstants.CANCER_348, OncologyDiagnosisConstants.CANCER_349, + OncologyDiagnosisConstants.CANCER_350, OncologyDiagnosisConstants.CANCER_351, + OncologyDiagnosisConstants.CANCER_352, OncologyDiagnosisConstants.CANCER_353, + OncologyDiagnosisConstants.CANCER_354, OncologyDiagnosisConstants.CANCER_355, + OncologyDiagnosisConstants.CANCER_356, OncologyDiagnosisConstants.CANCER_357, + OncologyDiagnosisConstants.CANCER_358, OncologyDiagnosisConstants.CANCER_359, + OncologyDiagnosisConstants.CANCER_360, OncologyDiagnosisConstants.CANCER_361, + OncologyDiagnosisConstants.CANCER_362, OncologyDiagnosisConstants.CANCER_363, + OncologyDiagnosisConstants.CANCER_364, OncologyDiagnosisConstants.CANCER_365, + OncologyDiagnosisConstants.CANCER_366, OncologyDiagnosisConstants.CANCER_367, + OncologyDiagnosisConstants.CANCER_368, OncologyDiagnosisConstants.CANCER_369, + OncologyDiagnosisConstants.CANCER_370, OncologyDiagnosisConstants.CANCER_371, + OncologyDiagnosisConstants.CANCER_372, OncologyDiagnosisConstants.CANCER_373, + OncologyDiagnosisConstants.CANCER_374, OncologyDiagnosisConstants.CANCER_375, + OncologyDiagnosisConstants.CANCER_376, OncologyDiagnosisConstants.CANCER_377, + OncologyDiagnosisConstants.CANCER_378, OncologyDiagnosisConstants.CANCER_379, + OncologyDiagnosisConstants.CANCER_380, OncologyDiagnosisConstants.CANCER_381, + OncologyDiagnosisConstants.CANCER_382, OncologyDiagnosisConstants.CANCER_383, + OncologyDiagnosisConstants.CANCER_384, OncologyDiagnosisConstants.CANCER_385, + OncologyDiagnosisConstants.CANCER_386, OncologyDiagnosisConstants.CANCER_387, + OncologyDiagnosisConstants.CANCER_388, OncologyDiagnosisConstants.CANCER_389, + OncologyDiagnosisConstants.CANCER_390, OncologyDiagnosisConstants.CANCER_391, + OncologyDiagnosisConstants.CANCER_392, OncologyDiagnosisConstants.CANCER_393, + OncologyDiagnosisConstants.CANCER_394, OncologyDiagnosisConstants.CANCER_395, + OncologyDiagnosisConstants.CANCER_396, OncologyDiagnosisConstants.CANCER_397, + OncologyDiagnosisConstants.CANCER_398, OncologyDiagnosisConstants.CANCER_399, + OncologyDiagnosisConstants.CANCER_400, OncologyDiagnosisConstants.CANCER_401, + OncologyDiagnosisConstants.CANCER_402, OncologyDiagnosisConstants.CANCER_403, + OncologyDiagnosisConstants.CANCER_404, OncologyDiagnosisConstants.CANCER_405, + OncologyDiagnosisConstants.CANCER_406, OncologyDiagnosisConstants.CANCER_407, + OncologyDiagnosisConstants.CANCER_408, OncologyDiagnosisConstants.CANCER_409, + OncologyDiagnosisConstants.CANCER_410, OncologyDiagnosisConstants.CANCER_411, + OncologyDiagnosisConstants.CANCER_412, OncologyDiagnosisConstants.CANCER_413, + OncologyDiagnosisConstants.CANCER_414, OncologyDiagnosisConstants.CANCER_415, + OncologyDiagnosisConstants.CANCER_416, OncologyDiagnosisConstants.CANCER_417, + OncologyDiagnosisConstants.CANCER_418, OncologyDiagnosisConstants.CANCER_419, + OncologyDiagnosisConstants.CANCER_420, OncologyDiagnosisConstants.CANCER_421, + OncologyDiagnosisConstants.CANCER_422, OncologyDiagnosisConstants.CANCER_423, + OncologyDiagnosisConstants.CANCER_424, OncologyDiagnosisConstants.CANCER_425, + OncologyDiagnosisConstants.CANCER_426, OncologyDiagnosisConstants.CANCER_427, + OncologyDiagnosisConstants.CANCER_428, OncologyDiagnosisConstants.CANCER_429, + OncologyDiagnosisConstants.CANCER_430, OncologyDiagnosisConstants.CANCER_431, + OncologyDiagnosisConstants.CANCER_432, OncologyDiagnosisConstants.CANCER_433, + OncologyDiagnosisConstants.CANCER_434, OncologyDiagnosisConstants.CANCER_435, + OncologyDiagnosisConstants.CANCER_436, OncologyDiagnosisConstants.CANCER_437, + OncologyDiagnosisConstants.CANCER_438, OncologyDiagnosisConstants.CANCER_439, + OncologyDiagnosisConstants.CANCER_440, OncologyDiagnosisConstants.CANCER_441, + OncologyDiagnosisConstants.CANCER_442, OncologyDiagnosisConstants.CANCER_443, + OncologyDiagnosisConstants.CANCER_444, OncologyDiagnosisConstants.CANCER_445, + OncologyDiagnosisConstants.CANCER_446, OncologyDiagnosisConstants.CANCER_447, + OncologyDiagnosisConstants.CANCER_448, OncologyDiagnosisConstants.CANCER_449, + OncologyDiagnosisConstants.CANCER_450, OncologyDiagnosisConstants.CANCER_451, + OncologyDiagnosisConstants.CANCER_452, OncologyDiagnosisConstants.CANCER_453, + OncologyDiagnosisConstants.CANCER_454, OncologyDiagnosisConstants.CANCER_455, + OncologyDiagnosisConstants.CANCER_456, OncologyDiagnosisConstants.CANCER_457, + OncologyDiagnosisConstants.CANCER_458, OncologyDiagnosisConstants.CANCER_459, + OncologyDiagnosisConstants.CANCER_460, OncologyDiagnosisConstants.CANCER_461, + OncologyDiagnosisConstants.CANCER_462, OncologyDiagnosisConstants.CANCER_463, + OncologyDiagnosisConstants.CANCER_464, OncologyDiagnosisConstants.CANCER_465, + OncologyDiagnosisConstants.CANCER_466, OncologyDiagnosisConstants.CANCER_467, + OncologyDiagnosisConstants.CANCER_468, OncologyDiagnosisConstants.CANCER_469, + OncologyDiagnosisConstants.CANCER_470, OncologyDiagnosisConstants.CANCER_471, + OncologyDiagnosisConstants.CANCER_472, OncologyDiagnosisConstants.CANCER_473, + OncologyDiagnosisConstants.CANCER_474, OncologyDiagnosisConstants.CANCER_475, + OncologyDiagnosisConstants.CANCER_476, OncologyDiagnosisConstants.CANCER_477, + OncologyDiagnosisConstants.CANCER_478, OncologyDiagnosisConstants.CANCER_479, + OncologyDiagnosisConstants.CANCER_480, OncologyDiagnosisConstants.CANCER_481, + OncologyDiagnosisConstants.CANCER_482, OncologyDiagnosisConstants.CANCER_483, + OncologyDiagnosisConstants.CANCER_484, OncologyDiagnosisConstants.CANCER_485, + OncologyDiagnosisConstants.CANCER_486, OncologyDiagnosisConstants.CANCER_487, + OncologyDiagnosisConstants.CANCER_488, OncologyDiagnosisConstants.CANCER_489, + OncologyDiagnosisConstants.CANCER_490, OncologyDiagnosisConstants.CANCER_491, + OncologyDiagnosisConstants.CANCER_492, OncologyDiagnosisConstants.CANCER_493, + OncologyDiagnosisConstants.CANCER_494, OncologyDiagnosisConstants.CANCER_495, + OncologyDiagnosisConstants.CANCER_496, OncologyDiagnosisConstants.CANCER_497, + OncologyDiagnosisConstants.CANCER_498, OncologyDiagnosisConstants.CANCER_499, + OncologyDiagnosisConstants.CANCER_500, OncologyDiagnosisConstants.CANCER_501, + OncologyDiagnosisConstants.CANCER_502, OncologyDiagnosisConstants.CANCER_503, + OncologyDiagnosisConstants.CANCER_504, OncologyDiagnosisConstants.CANCER_505, + OncologyDiagnosisConstants.CANCER_506, OncologyDiagnosisConstants.CANCER_507, + OncologyDiagnosisConstants.CANCER_508, OncologyDiagnosisConstants.CANCER_509, + OncologyDiagnosisConstants.CANCER_510, OncologyDiagnosisConstants.CANCER_511, + OncologyDiagnosisConstants.CANCER_512, OncologyDiagnosisConstants.CANCER_513, + OncologyDiagnosisConstants.CANCER_514, OncologyDiagnosisConstants.CANCER_515, + OncologyDiagnosisConstants.CANCER_516, OncologyDiagnosisConstants.CANCER_517, + OncologyDiagnosisConstants.CANCER_518, OncologyDiagnosisConstants.CANCER_519, + OncologyDiagnosisConstants.CANCER_520, OncologyDiagnosisConstants.CANCER_521, + OncologyDiagnosisConstants.CANCER_522, OncologyDiagnosisConstants.CANCER_523, + OncologyDiagnosisConstants.CANCER_524, OncologyDiagnosisConstants.CANCER_525, + OncologyDiagnosisConstants.CANCER_526, OncologyDiagnosisConstants.CANCER_527, + OncologyDiagnosisConstants.CANCER_528, OncologyDiagnosisConstants.CANCER_529, + OncologyDiagnosisConstants.CANCER_530, OncologyDiagnosisConstants.CANCER_531, + OncologyDiagnosisConstants.CANCER_532, OncologyDiagnosisConstants.CANCER_533, + OncologyDiagnosisConstants.CANCER_534, OncologyDiagnosisConstants.CANCER_535, + OncologyDiagnosisConstants.CANCER_536, OncologyDiagnosisConstants.CANCER_537, + OncologyDiagnosisConstants.CANCER_538, OncologyDiagnosisConstants.CANCER_539, + OncologyDiagnosisConstants.CANCER_540, OncologyDiagnosisConstants.CANCER_541, + OncologyDiagnosisConstants.CANCER_542, OncologyDiagnosisConstants.CANCER_543, + OncologyDiagnosisConstants.CANCER_544, OncologyDiagnosisConstants.CANCER_545, + OncologyDiagnosisConstants.CANCER_546, OncologyDiagnosisConstants.CANCER_547, + OncologyDiagnosisConstants.CANCER_548, OncologyDiagnosisConstants.CANCER_549, + OncologyDiagnosisConstants.CANCER_550, OncologyDiagnosisConstants.CANCER_551, + OncologyDiagnosisConstants.CANCER_552, OncologyDiagnosisConstants.CANCER_553, + OncologyDiagnosisConstants.CANCER_554, OncologyDiagnosisConstants.CANCER_555, + OncologyDiagnosisConstants.CANCER_556, OncologyDiagnosisConstants.CANCER_557, + OncologyDiagnosisConstants.CANCER_558, OncologyDiagnosisConstants.CANCER_559, + OncologyDiagnosisConstants.CANCER_560, OncologyDiagnosisConstants.CANCER_561, + OncologyDiagnosisConstants.CANCER_562, OncologyDiagnosisConstants.CANCER_563, + OncologyDiagnosisConstants.CANCER_564, OncologyDiagnosisConstants.CANCER_565, + OncologyDiagnosisConstants.CANCER_566, OncologyDiagnosisConstants.CANCER_567, + OncologyDiagnosisConstants.CANCER_568, OncologyDiagnosisConstants.CANCER_569, + OncologyDiagnosisConstants.CANCER_570, OncologyDiagnosisConstants.CANCER_571, + OncologyDiagnosisConstants.CANCER_572, OncologyDiagnosisConstants.CANCER_573, + OncologyDiagnosisConstants.CANCER_574, OncologyDiagnosisConstants.CANCER_575, + OncologyDiagnosisConstants.CANCER_576, OncologyDiagnosisConstants.CANCER_577, + OncologyDiagnosisConstants.CANCER_578, OncologyDiagnosisConstants.CANCER_579, + OncologyDiagnosisConstants.CANCER_580, OncologyDiagnosisConstants.CANCER_581, + OncologyDiagnosisConstants.CANCER_582, OncologyDiagnosisConstants.CANCER_583, + OncologyDiagnosisConstants.CANCER_584, OncologyDiagnosisConstants.CANCER_585, + OncologyDiagnosisConstants.CANCER_586, OncologyDiagnosisConstants.CANCER_587, + OncologyDiagnosisConstants.CANCER_588, OncologyDiagnosisConstants.CANCER_589, + OncologyDiagnosisConstants.CANCER_590, OncologyDiagnosisConstants.CANCER_591, + OncologyDiagnosisConstants.CANCER_592, OncologyDiagnosisConstants.CANCER_593, + OncologyDiagnosisConstants.CANCER_594, OncologyDiagnosisConstants.CANCER_595, + OncologyDiagnosisConstants.CANCER_596, OncologyDiagnosisConstants.CANCER_597, + OncologyDiagnosisConstants.CANCER_598, OncologyDiagnosisConstants.CANCER_599, + OncologyDiagnosisConstants.CANCER_600, OncologyDiagnosisConstants.CANCER_601, + OncologyDiagnosisConstants.CANCER_602, OncologyDiagnosisConstants.CANCER_603, + OncologyDiagnosisConstants.CANCER_604, OncologyDiagnosisConstants.CANCER_605, + OncologyDiagnosisConstants.CANCER_606, OncologyDiagnosisConstants.CANCER_607, + OncologyDiagnosisConstants.CANCER_608, OncologyDiagnosisConstants.CANCER_609, + OncologyDiagnosisConstants.CANCER_610, OncologyDiagnosisConstants.CANCER_611, + OncologyDiagnosisConstants.CANCER_612, OncologyDiagnosisConstants.CANCER_613, + OncologyDiagnosisConstants.CANCER_614, OncologyDiagnosisConstants.CANCER_615, + OncologyDiagnosisConstants.CANCER_616, OncologyDiagnosisConstants.CANCER_617, + OncologyDiagnosisConstants.CANCER_618, OncologyDiagnosisConstants.CANCER_619, + OncologyDiagnosisConstants.CANCER_620, OncologyDiagnosisConstants.CANCER_621, + OncologyDiagnosisConstants.CANCER_622, OncologyDiagnosisConstants.CANCER_623, + OncologyDiagnosisConstants.CANCER_624, OncologyDiagnosisConstants.CANCER_625, + OncologyDiagnosisConstants.CANCER_626, OncologyDiagnosisConstants.CANCER_627, + OncologyDiagnosisConstants.CANCER_628, OncologyDiagnosisConstants.CANCER_629, + OncologyDiagnosisConstants.CANCER_630, OncologyDiagnosisConstants.CANCER_631, + OncologyDiagnosisConstants.CANCER_632, OncologyDiagnosisConstants.CANCER_633, + OncologyDiagnosisConstants.CANCER_634, OncologyDiagnosisConstants.CANCER_635, + OncologyDiagnosisConstants.CANCER_636, OncologyDiagnosisConstants.CANCER_637, + OncologyDiagnosisConstants.CANCER_638, OncologyDiagnosisConstants.CANCER_639, + OncologyDiagnosisConstants.CANCER_640, OncologyDiagnosisConstants.CANCER_641, + OncologyDiagnosisConstants.CANCER_642, OncologyDiagnosisConstants.CANCER_643, + OncologyDiagnosisConstants.CANCER_644, OncologyDiagnosisConstants.CANCER_645, + OncologyDiagnosisConstants.CANCER_646, OncologyDiagnosisConstants.CANCER_647, + OncologyDiagnosisConstants.CANCER_648, OncologyDiagnosisConstants.CANCER_649, + OncologyDiagnosisConstants.CANCER_650, OncologyDiagnosisConstants.CANCER_651, + OncologyDiagnosisConstants.CANCER_652, OncologyDiagnosisConstants.CANCER_653, + OncologyDiagnosisConstants.CANCER_654, OncologyDiagnosisConstants.CANCER_655, + OncologyDiagnosisConstants.CANCER_656, OncologyDiagnosisConstants.CANCER_657, + OncologyDiagnosisConstants.CANCER_658, OncologyDiagnosisConstants.CANCER_659, + OncologyDiagnosisConstants.CANCER_660, OncologyDiagnosisConstants.CANCER_661, + OncologyDiagnosisConstants.CANCER_662, OncologyDiagnosisConstants.CANCER_663, + OncologyDiagnosisConstants.CANCER_664, OncologyDiagnosisConstants.CANCER_665, + OncologyDiagnosisConstants.CANCER_666, OncologyDiagnosisConstants.CANCER_667, + OncologyDiagnosisConstants.CANCER_668, OncologyDiagnosisConstants.CANCER_669, + OncologyDiagnosisConstants.CANCER_670, OncologyDiagnosisConstants.CANCER_671, + OncologyDiagnosisConstants.CANCER_672, OncologyDiagnosisConstants.CANCER_673, + OncologyDiagnosisConstants.CANCER_674, OncologyDiagnosisConstants.CANCER_675, + OncologyDiagnosisConstants.CANCER_676, OncologyDiagnosisConstants.CANCER_677, + OncologyDiagnosisConstants.CANCER_678, OncologyDiagnosisConstants.CANCER_679, + OncologyDiagnosisConstants.CANCER_680, OncologyDiagnosisConstants.CANCER_681, + OncologyDiagnosisConstants.CANCER_682, OncologyDiagnosisConstants.CANCER_683, + OncologyDiagnosisConstants.CANCER_684, OncologyDiagnosisConstants.CANCER_685, + OncologyDiagnosisConstants.CANCER_686, OncologyDiagnosisConstants.CANCER_687, + OncologyDiagnosisConstants.CANCER_688, OncologyDiagnosisConstants.CANCER_689, + OncologyDiagnosisConstants.CANCER_690, OncologyDiagnosisConstants.CANCER_691, + OncologyDiagnosisConstants.CANCER_692, OncologyDiagnosisConstants.CANCER_693, + OncologyDiagnosisConstants.CANCER_694, OncologyDiagnosisConstants.CANCER_695, + OncologyDiagnosisConstants.CANCER_696, OncologyDiagnosisConstants.CANCER_697, + OncologyDiagnosisConstants.CANCER_698, OncologyDiagnosisConstants.CANCER_699, + OncologyDiagnosisConstants.CANCER_700, OncologyDiagnosisConstants.CANCER_701, + OncologyDiagnosisConstants.CANCER_702, OncologyDiagnosisConstants.CANCER_703, + OncologyDiagnosisConstants.CANCER_704, OncologyDiagnosisConstants.CANCER_705, + OncologyDiagnosisConstants.CANCER_706, OncologyDiagnosisConstants.CANCER_707, + OncologyDiagnosisConstants.CANCER_708, OncologyDiagnosisConstants.CANCER_709, + OncologyDiagnosisConstants.CANCER_710, OncologyDiagnosisConstants.CANCER_711, + OncologyDiagnosisConstants.CANCER_712, OncologyDiagnosisConstants.CANCER_713, + OncologyDiagnosisConstants.CANCER_714, OncologyDiagnosisConstants.CANCER_715, + OncologyDiagnosisConstants.CANCER_716, OncologyDiagnosisConstants.CANCER_717, + OncologyDiagnosisConstants.CANCER_718, OncologyDiagnosisConstants.CANCER_719, + OncologyDiagnosisConstants.CANCER_720, OncologyDiagnosisConstants.CANCER_721, + OncologyDiagnosisConstants.CANCER_722, OncologyDiagnosisConstants.CANCER_723, + OncologyDiagnosisConstants.CANCER_724, OncologyDiagnosisConstants.CANCER_725, + OncologyDiagnosisConstants.CANCER_726, OncologyDiagnosisConstants.CANCER_727, + OncologyDiagnosisConstants.CANCER_728, OncologyDiagnosisConstants.CANCER_729, + OncologyDiagnosisConstants.CANCER_730, OncologyDiagnosisConstants.CANCER_731, + OncologyDiagnosisConstants.CANCER_732, OncologyDiagnosisConstants.CANCER_733, + OncologyDiagnosisConstants.CANCER_734, OncologyDiagnosisConstants.CANCER_735, + OncologyDiagnosisConstants.CANCER_736, OncologyDiagnosisConstants.CANCER_737, + OncologyDiagnosisConstants.CANCER_738, OncologyDiagnosisConstants.CANCER_739, + OncologyDiagnosisConstants.CANCER_740, OncologyDiagnosisConstants.CANCER_741, + OncologyDiagnosisConstants.CANCER_742, OncologyDiagnosisConstants.CANCER_743, + OncologyDiagnosisConstants.CANCER_744, OncologyDiagnosisConstants.CANCER_745, + OncologyDiagnosisConstants.CANCER_746, OncologyDiagnosisConstants.CANCER_747, + OncologyDiagnosisConstants.CANCER_748, OncologyDiagnosisConstants.CANCER_749, + OncologyDiagnosisConstants.CANCER_750, OncologyDiagnosisConstants.CANCER_751, + OncologyDiagnosisConstants.CANCER_752, OncologyDiagnosisConstants.CANCER_753, + OncologyDiagnosisConstants.CANCER_754, OncologyDiagnosisConstants.CANCER_755, + OncologyDiagnosisConstants.CANCER_756, OncologyDiagnosisConstants.CANCER_757, + OncologyDiagnosisConstants.CANCER_758, OncologyDiagnosisConstants.CANCER_759, + OncologyDiagnosisConstants.CANCER_760, OncologyDiagnosisConstants.CANCER_761, + OncologyDiagnosisConstants.CANCER_762, OncologyDiagnosisConstants.CANCER_763, + OncologyDiagnosisConstants.CANCER_764, OncologyDiagnosisConstants.CANCER_765, + OncologyDiagnosisConstants.CANCER_766, OncologyDiagnosisConstants.CANCER_767, + OncologyDiagnosisConstants.CANCER_768, OncologyDiagnosisConstants.CANCER_769, + OncologyDiagnosisConstants.CANCER_770, OncologyDiagnosisConstants.CANCER_771, + OncologyDiagnosisConstants.CANCER_772, OncologyDiagnosisConstants.CANCER_773, + OncologyDiagnosisConstants.CANCER_774, OncologyDiagnosisConstants.CANCER_775, + OncologyDiagnosisConstants.CANCER_776, OncologyDiagnosisConstants.CANCER_777, + OncologyDiagnosisConstants.CANCER_778, OncologyDiagnosisConstants.CANCER_779, + OncologyDiagnosisConstants.CANCER_780, OncologyDiagnosisConstants.CANCER_781, + OncologyDiagnosisConstants.CANCER_782, OncologyDiagnosisConstants.CANCER_783, + OncologyDiagnosisConstants.CANCER_784, OncologyDiagnosisConstants.CANCER_785, + OncologyDiagnosisConstants.CANCER_786, OncologyDiagnosisConstants.CANCER_787, + OncologyDiagnosisConstants.CANCER_788, OncologyDiagnosisConstants.CANCER_789, + OncologyDiagnosisConstants.CANCER_790, OncologyDiagnosisConstants.CANCER_791, + OncologyDiagnosisConstants.CANCER_792, OncologyDiagnosisConstants.CANCER_793, + OncologyDiagnosisConstants.CANCER_794, OncologyDiagnosisConstants.CANCER_795, + OncologyDiagnosisConstants.CANCER_796, OncologyDiagnosisConstants.CANCER_797, + OncologyDiagnosisConstants.CANCER_798, OncologyDiagnosisConstants.CANCER_799, + OncologyDiagnosisConstants.CANCER_800, OncologyDiagnosisConstants.CANCER_801, + OncologyDiagnosisConstants.CANCER_802, OncologyDiagnosisConstants.CANCER_803, + OncologyDiagnosisConstants.CANCER_804, OncologyDiagnosisConstants.CANCER_805, + OncologyDiagnosisConstants.CANCER_806, OncologyDiagnosisConstants.CANCER_807, + OncologyDiagnosisConstants.CANCER_808, OncologyDiagnosisConstants.CANCER_809, + OncologyDiagnosisConstants.CANCER_810, OncologyDiagnosisConstants.CANCER_811, + OncologyDiagnosisConstants.CANCER_812, OncologyDiagnosisConstants.CANCER_813, + OncologyDiagnosisConstants.CANCER_814, OncologyDiagnosisConstants.CANCER_815, + OncologyDiagnosisConstants.CANCER_816, OncologyDiagnosisConstants.CANCER_817, + OncologyDiagnosisConstants.CANCER_818, OncologyDiagnosisConstants.CANCER_819, + OncologyDiagnosisConstants.CANCER_820, OncologyDiagnosisConstants.CANCER_821, + OncologyDiagnosisConstants.CANCER_822, OncologyDiagnosisConstants.CANCER_823, + OncologyDiagnosisConstants.CANCER_824, OncologyDiagnosisConstants.CANCER_825, + OncologyDiagnosisConstants.CANCER_826, OncologyDiagnosisConstants.CANCER_827, + OncologyDiagnosisConstants.CANCER_828, OncologyDiagnosisConstants.CANCER_829, + OncologyDiagnosisConstants.CANCER_830, OncologyDiagnosisConstants.CANCER_831, + OncologyDiagnosisConstants.CANCER_832, OncologyDiagnosisConstants.CANCER_833, + OncologyDiagnosisConstants.CANCER_834, OncologyDiagnosisConstants.CANCER_835, + OncologyDiagnosisConstants.CANCER_836, OncologyDiagnosisConstants.CANCER_837, + OncologyDiagnosisConstants.CANCER_838, OncologyDiagnosisConstants.CANCER_839, + OncologyDiagnosisConstants.CANCER_840, OncologyDiagnosisConstants.CANCER_841, + OncologyDiagnosisConstants.CANCER_842, OncologyDiagnosisConstants.CANCER_843, + OncologyDiagnosisConstants.CANCER_844, OncologyDiagnosisConstants.CANCER_845, + OncologyDiagnosisConstants.CANCER_846, OncologyDiagnosisConstants.CANCER_847, + OncologyDiagnosisConstants.CANCER_848, OncologyDiagnosisConstants.CANCER_849, + OncologyDiagnosisConstants.CANCER_850, OncologyDiagnosisConstants.CANCER_851, + OncologyDiagnosisConstants.CANCER_852, OncologyDiagnosisConstants.CANCER_853, + OncologyDiagnosisConstants.CANCER_854, OncologyDiagnosisConstants.CANCER_855, + OncologyDiagnosisConstants.CANCER_856, OncologyDiagnosisConstants.CANCER_857, + OncologyDiagnosisConstants.CANCER_858, OncologyDiagnosisConstants.CANCER_859, + OncologyDiagnosisConstants.CANCER_860, OncologyDiagnosisConstants.CANCER_861, + OncologyDiagnosisConstants.CANCER_862, OncologyDiagnosisConstants.CANCER_863, + OncologyDiagnosisConstants.CANCER_864, OncologyDiagnosisConstants.CANCER_865, + OncologyDiagnosisConstants.CANCER_866, OncologyDiagnosisConstants.CANCER_867, + OncologyDiagnosisConstants.CANCER_868, OncologyDiagnosisConstants.CANCER_869, + OncologyDiagnosisConstants.CANCER_870, OncologyDiagnosisConstants.CANCER_871, + OncologyDiagnosisConstants.CANCER_872, OncologyDiagnosisConstants.CANCER_873, + OncologyDiagnosisConstants.CANCER_874, OncologyDiagnosisConstants.CANCER_875, + OncologyDiagnosisConstants.CANCER_876, OncologyDiagnosisConstants.CANCER_877, + OncologyDiagnosisConstants.CANCER_878, OncologyDiagnosisConstants.CANCER_879, + OncologyDiagnosisConstants.CANCER_880, OncologyDiagnosisConstants.CANCER_881, + OncologyDiagnosisConstants.CANCER_882, OncologyDiagnosisConstants.CANCER_883, + OncologyDiagnosisConstants.CANCER_884, OncologyDiagnosisConstants.CANCER_885, + OncologyDiagnosisConstants.CANCER_886, OncologyDiagnosisConstants.CANCER_887, + OncologyDiagnosisConstants.CANCER_888, OncologyDiagnosisConstants.CANCER_889, + OncologyDiagnosisConstants.CANCER_890, OncologyDiagnosisConstants.CANCER_891, + OncologyDiagnosisConstants.CANCER_892, OncologyDiagnosisConstants.CANCER_893, + OncologyDiagnosisConstants.CANCER_894, OncologyDiagnosisConstants.CANCER_895, + OncologyDiagnosisConstants.CANCER_896, OncologyDiagnosisConstants.CANCER_897, + OncologyDiagnosisConstants.CANCER_898, OncologyDiagnosisConstants.CANCER_899, + OncologyDiagnosisConstants.CANCER_900, OncologyDiagnosisConstants.CANCER_901, + OncologyDiagnosisConstants.CANCER_902, OncologyDiagnosisConstants.CANCER_903, + OncologyDiagnosisConstants.CANCER_904, OncologyDiagnosisConstants.CANCER_905, + OncologyDiagnosisConstants.CANCER_906, OncologyDiagnosisConstants.CANCER_907, + OncologyDiagnosisConstants.CANCER_908, OncologyDiagnosisConstants.CANCER_909, + OncologyDiagnosisConstants.CANCER_910, OncologyDiagnosisConstants.CANCER_911, + OncologyDiagnosisConstants.CANCER_912, OncologyDiagnosisConstants.CANCER_913, + OncologyDiagnosisConstants.CANCER_914, OncologyDiagnosisConstants.CANCER_915, + OncologyDiagnosisConstants.CANCER_916, OncologyDiagnosisConstants.CANCER_917, + OncologyDiagnosisConstants.CANCER_918, OncologyDiagnosisConstants.CANCER_919, + OncologyDiagnosisConstants.CANCER_920, OncologyDiagnosisConstants.CANCER_921, + OncologyDiagnosisConstants.CANCER_922, OncologyDiagnosisConstants.CANCER_923, + OncologyDiagnosisConstants.CANCER_924, OncologyDiagnosisConstants.CANCER_925, + OncologyDiagnosisConstants.CANCER_926, OncologyDiagnosisConstants.CANCER_927, + OncologyDiagnosisConstants.CANCER_928, OncologyDiagnosisConstants.CANCER_929, + OncologyDiagnosisConstants.CANCER_930, OncologyDiagnosisConstants.CANCER_931, + OncologyDiagnosisConstants.CANCER_932, OncologyDiagnosisConstants.CANCER_933, + OncologyDiagnosisConstants.CANCER_934, OncologyDiagnosisConstants.CANCER_935, + OncologyDiagnosisConstants.CANCER_936, OncologyDiagnosisConstants.CANCER_937, + OncologyDiagnosisConstants.CANCER_938, OncologyDiagnosisConstants.CANCER_939, + OncologyDiagnosisConstants.CANCER_940, OncologyDiagnosisConstants.CANCER_941, + OncologyDiagnosisConstants.CANCER_942, OncologyDiagnosisConstants.CANCER_943, + OncologyDiagnosisConstants.CANCER_944, OncologyDiagnosisConstants.CANCER_945, + OncologyDiagnosisConstants.CANCER_946, OncologyDiagnosisConstants.CANCER_947, + OncologyDiagnosisConstants.CANCER_948, OncologyDiagnosisConstants.CANCER_949, + OncologyDiagnosisConstants.CANCER_950, OncologyDiagnosisConstants.CANCER_951, + OncologyDiagnosisConstants.CANCER_952, OncologyDiagnosisConstants.CANCER_953, + OncologyDiagnosisConstants.CANCER_954, OncologyDiagnosisConstants.CANCER_955, + OncologyDiagnosisConstants.CANCER_956, OncologyDiagnosisConstants.CANCER_957, + OncologyDiagnosisConstants.CANCER_958, OncologyDiagnosisConstants.CANCER_959, + OncologyDiagnosisConstants.CANCER_960, OncologyDiagnosisConstants.CANCER_961, + OncologyDiagnosisConstants.CANCER_962, OncologyDiagnosisConstants.CANCER_963, + OncologyDiagnosisConstants.CANCER_964, OncologyDiagnosisConstants.CANCER_965, + OncologyDiagnosisConstants.CANCER_966, OncologyDiagnosisConstants.CANCER_967, + OncologyDiagnosisConstants.CANCER_968, OncologyDiagnosisConstants.CANCER_969, + OncologyDiagnosisConstants.CANCER_970, OncologyDiagnosisConstants.CANCER_971, + OncologyDiagnosisConstants.CANCER_972, OncologyDiagnosisConstants.CANCER_973, + OncologyDiagnosisConstants.CANCER_974, OncologyDiagnosisConstants.CANCER_975, + OncologyDiagnosisConstants.CANCER_976, OncologyDiagnosisConstants.CANCER_977, + OncologyDiagnosisConstants.CANCER_978, OncologyDiagnosisConstants.CANCER_979, + OncologyDiagnosisConstants.CANCER_980, OncologyDiagnosisConstants.CANCER_981, + OncologyDiagnosisConstants.CANCER_982, OncologyDiagnosisConstants.CANCER_983, + OncologyDiagnosisConstants.CANCER_984, OncologyDiagnosisConstants.CANCER_985, + OncologyDiagnosisConstants.CANCER_986, OncologyDiagnosisConstants.CANCER_987, + OncologyDiagnosisConstants.CANCER_988, OncologyDiagnosisConstants.CANCER_989, + OncologyDiagnosisConstants.CANCER_990, OncologyDiagnosisConstants.CANCER_991, + OncologyDiagnosisConstants.CANCER_992, OncologyDiagnosisConstants.CANCER_993, + OncologyDiagnosisConstants.CANCER_994, OncologyDiagnosisConstants.CANCER_995, + OncologyDiagnosisConstants.CANCER_996, OncologyDiagnosisConstants.CANCER_997, + OncologyDiagnosisConstants.CANCER_998, OncologyDiagnosisConstants.CANCER_999, + OncologyDiagnosisConstants.CANCER_1000, OncologyDiagnosisConstants.CANCER_1001, + OncologyDiagnosisConstants.CANCER_1002, OncologyDiagnosisConstants.CANCER_1003, + OncologyDiagnosisConstants.CANCER_1004, OncologyDiagnosisConstants.CANCER_1005, + OncologyDiagnosisConstants.CANCER_1006, OncologyDiagnosisConstants.CANCER_1007, + OncologyDiagnosisConstants.CANCER_1008, OncologyDiagnosisConstants.CANCER_1009, + OncologyDiagnosisConstants.CANCER_1010, OncologyDiagnosisConstants.CANCER_1011, + OncologyDiagnosisConstants.CANCER_1012, OncologyDiagnosisConstants.CANCER_1013, + OncologyDiagnosisConstants.CANCER_1014, OncologyDiagnosisConstants.CANCER_1015, + OncologyDiagnosisConstants.CANCER_1016, OncologyDiagnosisConstants.CANCER_1017, + OncologyDiagnosisConstants.CANCER_1018, OncologyDiagnosisConstants.CANCER_1019, + OncologyDiagnosisConstants.CANCER_1020, OncologyDiagnosisConstants.CANCER_1021, + OncologyDiagnosisConstants.CANCER_1022, OncologyDiagnosisConstants.CANCER_1023, + OncologyDiagnosisConstants.CANCER_1024, OncologyDiagnosisConstants.CANCER_1025, + OncologyDiagnosisConstants.CANCER_1026, OncologyDiagnosisConstants.CANCER_1027, + OncologyDiagnosisConstants.CANCER_1028, OncologyDiagnosisConstants.CANCER_1029, + OncologyDiagnosisConstants.CANCER_1030, OncologyDiagnosisConstants.CANCER_1031, + OncologyDiagnosisConstants.CANCER_1032, OncologyDiagnosisConstants.CANCER_1033, + OncologyDiagnosisConstants.CANCER_1034, OncologyDiagnosisConstants.CANCER_1035, + OncologyDiagnosisConstants.CANCER_1036, OncologyDiagnosisConstants.CANCER_1037, + OncologyDiagnosisConstants.CANCER_1038, OncologyDiagnosisConstants.CANCER_1039, + OncologyDiagnosisConstants.CANCER_1040, OncologyDiagnosisConstants.CANCER_1041, + OncologyDiagnosisConstants.CANCER_1042, OncologyDiagnosisConstants.CANCER_1043, + OncologyDiagnosisConstants.CANCER_1044, OncologyDiagnosisConstants.CANCER_1045, + OncologyDiagnosisConstants.CANCER_1046, OncologyDiagnosisConstants.CANCER_1047, + OncologyDiagnosisConstants.CANCER_1048, OncologyDiagnosisConstants.CANCER_1049, + OncologyDiagnosisConstants.CANCER_1050, OncologyDiagnosisConstants.CANCER_1051, + OncologyDiagnosisConstants.CANCER_1052, OncologyDiagnosisConstants.CANCER_1053, + OncologyDiagnosisConstants.CANCER_1054, OncologyDiagnosisConstants.CANCER_1055, + OncologyDiagnosisConstants.CANCER_1056, OncologyDiagnosisConstants.CANCER_1057, + OncologyDiagnosisConstants.CANCER_1058, OncologyDiagnosisConstants.CANCER_1059, + OncologyDiagnosisConstants.CANCER_1060, OncologyDiagnosisConstants.CANCER_1061, + OncologyDiagnosisConstants.CANCER_1062, OncologyDiagnosisConstants.CANCER_1063, + OncologyDiagnosisConstants.CANCER_1064, OncologyDiagnosisConstants.CANCER_1065, + OncologyDiagnosisConstants.CANCER_1066, OncologyDiagnosisConstants.CANCER_1067, + OncologyDiagnosisConstants.CANCER_1068, OncologyDiagnosisConstants.CANCER_1069, + OncologyDiagnosisConstants.CANCER_1070, OncologyDiagnosisConstants.CANCER_1071, + OncologyDiagnosisConstants.CANCER_1072, OncologyDiagnosisConstants.CANCER_1073, + OncologyDiagnosisConstants.CANCER_1074, OncologyDiagnosisConstants.CANCER_1075, + OncologyDiagnosisConstants.CANCER_1076, OncologyDiagnosisConstants.CANCER_1077, + OncologyDiagnosisConstants.CANCER_1078, OncologyDiagnosisConstants.CANCER_1079, + OncologyDiagnosisConstants.CANCER_1080, OncologyDiagnosisConstants.CANCER_1081, + OncologyDiagnosisConstants.CANCER_1082, OncologyDiagnosisConstants.CANCER_1083, + OncologyDiagnosisConstants.CANCER_1084, OncologyDiagnosisConstants.CANCER_1085, + OncologyDiagnosisConstants.CANCER_1086, OncologyDiagnosisConstants.CANCER_1087, + OncologyDiagnosisConstants.CANCER_1088, OncologyDiagnosisConstants.CANCER_1089, + OncologyDiagnosisConstants.CANCER_1090, OncologyDiagnosisConstants.CANCER_1091, + OncologyDiagnosisConstants.CANCER_1092, OncologyDiagnosisConstants.CANCER_1093, + OncologyDiagnosisConstants.CANCER_1094, OncologyDiagnosisConstants.CANCER_1095, + OncologyDiagnosisConstants.CANCER_1096, OncologyDiagnosisConstants.CANCER_1097, + OncologyDiagnosisConstants.CANCER_1098, OncologyDiagnosisConstants.CANCER_1099, + OncologyDiagnosisConstants.CANCER_1100, OncologyDiagnosisConstants.CANCER_1101, + OncologyDiagnosisConstants.CANCER_1102, OncologyDiagnosisConstants.CANCER_1103, + OncologyDiagnosisConstants.CANCER_1104, OncologyDiagnosisConstants.CANCER_1105, + OncologyDiagnosisConstants.CANCER_1106, OncologyDiagnosisConstants.CANCER_1107, + OncologyDiagnosisConstants.CANCER_1108, OncologyDiagnosisConstants.CANCER_1109, + OncologyDiagnosisConstants.CANCER_1110, OncologyDiagnosisConstants.CANCER_1111, + OncologyDiagnosisConstants.CANCER_1112, OncologyDiagnosisConstants.CANCER_1113, + OncologyDiagnosisConstants.CANCER_1114, OncologyDiagnosisConstants.CANCER_1115, + OncologyDiagnosisConstants.CANCER_1116, OncologyDiagnosisConstants.CANCER_1117, + OncologyDiagnosisConstants.CANCER_1118, OncologyDiagnosisConstants.CANCER_1119, + OncologyDiagnosisConstants.CANCER_1120, OncologyDiagnosisConstants.CANCER_1121, + OncologyDiagnosisConstants.CANCER_1122, OncologyDiagnosisConstants.CANCER_1123, + OncologyDiagnosisConstants.CANCER_1124, OncologyDiagnosisConstants.CANCER_1125, + OncologyDiagnosisConstants.CANCER_1126, OncologyDiagnosisConstants.CANCER_1127, + OncologyDiagnosisConstants.CANCER_1128, OncologyDiagnosisConstants.CANCER_1129, + OncologyDiagnosisConstants.CANCER_1130, OncologyDiagnosisConstants.CANCER_1131, + OncologyDiagnosisConstants.CANCER_1132, OncologyDiagnosisConstants.CANCER_1133, + OncologyDiagnosisConstants.CANCER_1134, OncologyDiagnosisConstants.CANCER_1135, + OncologyDiagnosisConstants.CANCER_1136, OncologyDiagnosisConstants.CANCER_1137, + OncologyDiagnosisConstants.CANCER_1138, OncologyDiagnosisConstants.CANCER_1139, + OncologyDiagnosisConstants.CANCER_1140, OncologyDiagnosisConstants.CANCER_1141, + OncologyDiagnosisConstants.CANCER_1142, OncologyDiagnosisConstants.CANCER_1143, + OncologyDiagnosisConstants.CANCER_1144, OncologyDiagnosisConstants.CANCER_1145, + OncologyDiagnosisConstants.CANCER_1146, OncologyDiagnosisConstants.CANCER_1147, + OncologyDiagnosisConstants.CANCER_1148, OncologyDiagnosisConstants.CANCER_1149, + OncologyDiagnosisConstants.CANCER_1150, OncologyDiagnosisConstants.CANCER_1151, + OncologyDiagnosisConstants.CANCER_1152, OncologyDiagnosisConstants.CANCER_1153, + OncologyDiagnosisConstants.CANCER_1154, OncologyDiagnosisConstants.CANCER_1155, + OncologyDiagnosisConstants.CANCER_1156, OncologyDiagnosisConstants.CANCER_1157, + OncologyDiagnosisConstants.CANCER_1158, OncologyDiagnosisConstants.CANCER_1159, + OncologyDiagnosisConstants.CANCER_1160, OncologyDiagnosisConstants.CANCER_1161, + OncologyDiagnosisConstants.CANCER_1162, OncologyDiagnosisConstants.CANCER_1163, + OncologyDiagnosisConstants.CANCER_1164, OncologyDiagnosisConstants.CANCER_1165, + OncologyDiagnosisConstants.CANCER_1166, OncologyDiagnosisConstants.CANCER_1167, + OncologyDiagnosisConstants.CANCER_1168, OncologyDiagnosisConstants.CANCER_1169, + OncologyDiagnosisConstants.CANCER_1170, OncologyDiagnosisConstants.CANCER_1171, + OncologyDiagnosisConstants.CANCER_1172, OncologyDiagnosisConstants.CANCER_1173, + OncologyDiagnosisConstants.CANCER_1174, OncologyDiagnosisConstants.CANCER_1175, + OncologyDiagnosisConstants.CANCER_1176, OncologyDiagnosisConstants.CANCER_1177, + OncologyDiagnosisConstants.CANCER_1178, OncologyDiagnosisConstants.CANCER_1179, + OncologyDiagnosisConstants.CANCER_1180, OncologyDiagnosisConstants.CANCER_1181, + OncologyDiagnosisConstants.CANCER_1182, OncologyDiagnosisConstants.CANCER_1183, + OncologyDiagnosisConstants.CANCER_1184, OncologyDiagnosisConstants.CANCER_1185, + OncologyDiagnosisConstants.CANCER_1186, OncologyDiagnosisConstants.CANCER_1187, + OncologyDiagnosisConstants.CANCER_1188, OncologyDiagnosisConstants.CANCER_1189, + OncologyDiagnosisConstants.CANCER_1190, OncologyDiagnosisConstants.CANCER_1191, + OncologyDiagnosisConstants.CANCER_1192, OncologyDiagnosisConstants.CANCER_1193, + OncologyDiagnosisConstants.CANCER_1194, OncologyDiagnosisConstants.CANCER_1195, + OncologyDiagnosisConstants.CANCER_1196, OncologyDiagnosisConstants.CANCER_1197, + OncologyDiagnosisConstants.CANCER_1198, OncologyDiagnosisConstants.CANCER_1199, + OncologyDiagnosisConstants.CANCER_1200, OncologyDiagnosisConstants.CANCER_1201, + OncologyDiagnosisConstants.CANCER_1202, OncologyDiagnosisConstants.CANCER_1203, + OncologyDiagnosisConstants.CANCER_1204, OncologyDiagnosisConstants.CANCER_1205, + OncologyDiagnosisConstants.CANCER_1206, OncologyDiagnosisConstants.CANCER_1207, + OncologyDiagnosisConstants.CANCER_1208, OncologyDiagnosisConstants.CANCER_1209, + OncologyDiagnosisConstants.CANCER_1210, OncologyDiagnosisConstants.CANCER_1211, + OncologyDiagnosisConstants.CANCER_1212, OncologyDiagnosisConstants.CANCER_1213, + OncologyDiagnosisConstants.CANCER_1214, OncologyDiagnosisConstants.CANCER_1215, + OncologyDiagnosisConstants.CANCER_1216, OncologyDiagnosisConstants.CANCER_1217, + OncologyDiagnosisConstants.CANCER_1218, OncologyDiagnosisConstants.CANCER_1219); + } + + public static List getPhysicalDisabilityList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY2, + DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY3, + DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY4, + DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY5, + DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY6, + DiagnosisConcepts._DiagnosisConcepts.PHYSICAL_DISABILITY7 + + ); + } + + public static List getTryponomiasisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS1, + DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS2, DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS3, + DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS4, DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS5, + DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS6, DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS7, + DiagnosisConcepts._DiagnosisConcepts.TRYPANOSOMIASIS8 + + ); + } + + public static List getKalazarLeishmaniasisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.KALAZAR); + } + + public static List getYellowFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_1, + DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_2, DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_3, + DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_4, DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_5, + DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_6, DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_7, + DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_8, DiagnosisConcepts._DiagnosisConcepts.YELLOWFEVER_9 + + ); + } + + public static List getViralHaemorrhagicFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.HAEMORRHAGICFEVER_1, + DiagnosisConcepts._DiagnosisConcepts.HAEMORRHAGICFEVER_2); + } + + public static List getMalariaInPregnancyList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Malaria_in_pregnancy, + + DiagnosisConcepts._DiagnosisConcepts.Malaria_in_Mother_Complicating_Pregnancy_Childbirth_and_or_Puerperium, + DiagnosisConcepts._DiagnosisConcepts.Malaria_during_pregnancy + + ); + } + + public static List getEarInfectionConditionsList() { + return Arrays.asList( + + DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_0, DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_1, + DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_2, DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_3, + DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_4, DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_5, + DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_6, DiagnosisConcepts._DiagnosisConcepts.EAR_INFECTION_7 + + ); + } + + public static List getRicketsList() { + return Arrays.asList(RicketsDiagnosisConstants.RICKETS1, RicketsDiagnosisConstants.RICKETS2, + RicketsDiagnosisConstants.RICKETS3, RicketsDiagnosisConstants.RICKETS4, RicketsDiagnosisConstants.RICKETS5, + RicketsDiagnosisConstants.RICKETS6, RicketsDiagnosisConstants.RICKETS7, RicketsDiagnosisConstants.RICKETS8, + RicketsDiagnosisConstants.RICKETS9, RicketsDiagnosisConstants.RICKETS10, RicketsDiagnosisConstants.RICKETS11, + RicketsDiagnosisConstants.RICKETS12, RicketsDiagnosisConstants.RICKETS13, RicketsDiagnosisConstants.RICKETS14, + RicketsDiagnosisConstants.RICKETS15, RicketsDiagnosisConstants.RICKETS16, RicketsDiagnosisConstants.RICKETS17, + RicketsDiagnosisConstants.RICKETS18, RicketsDiagnosisConstants.RICKETS19, RicketsDiagnosisConstants.RICKETS20, + RicketsDiagnosisConstants.RICKETS21 + + ); + } + + public static List getCerebralPalsyList() { + return Arrays.asList(MentalPalsyDiagnosisConstants.PALSY1, MentalPalsyDiagnosisConstants.PALSY2, + MentalPalsyDiagnosisConstants.PALSY3, MentalPalsyDiagnosisConstants.PALSY4, + MentalPalsyDiagnosisConstants.PALSY5, MentalPalsyDiagnosisConstants.PALSY6, + MentalPalsyDiagnosisConstants.PALSY7, MentalPalsyDiagnosisConstants.PALSY8, + MentalPalsyDiagnosisConstants.PALSY9, MentalPalsyDiagnosisConstants.PALSY10, + MentalPalsyDiagnosisConstants.PALSY11, MentalPalsyDiagnosisConstants.PALSY12, + MentalPalsyDiagnosisConstants.PALSY13, MentalPalsyDiagnosisConstants.PALSY14, + MentalPalsyDiagnosisConstants.PALSY15, MentalPalsyDiagnosisConstants.PALSY16, + MentalPalsyDiagnosisConstants.PALSY17, MentalPalsyDiagnosisConstants.PALSY18, + MentalPalsyDiagnosisConstants.PALSY19, MentalPalsyDiagnosisConstants.PALSY20, + MentalPalsyDiagnosisConstants.PALSY21, MentalPalsyDiagnosisConstants.PALSY22, + MentalPalsyDiagnosisConstants.PALSY23, MentalPalsyDiagnosisConstants.PALSY23, + MentalPalsyDiagnosisConstants.PALSY24, MentalPalsyDiagnosisConstants.PALSY25, + MentalPalsyDiagnosisConstants.PALSY26, MentalPalsyDiagnosisConstants.PALSY27, + MentalPalsyDiagnosisConstants.PALSY28, MentalPalsyDiagnosisConstants.PALSY29, + MentalPalsyDiagnosisConstants.PALSY30, MentalPalsyDiagnosisConstants.PALSY31, + MentalPalsyDiagnosisConstants.PALSY32, MentalPalsyDiagnosisConstants.PALSY33, + MentalPalsyDiagnosisConstants.PALSY34, MentalPalsyDiagnosisConstants.PALSY35, + MentalPalsyDiagnosisConstants.PALSY36, MentalPalsyDiagnosisConstants.PALSY37, + MentalPalsyDiagnosisConstants.PALSY38, MentalPalsyDiagnosisConstants.PALSY39, + MentalPalsyDiagnosisConstants.PALSY40, MentalPalsyDiagnosisConstants.PALSY41, + MentalPalsyDiagnosisConstants.PALSY42, MentalPalsyDiagnosisConstants.PALSY43, + MentalPalsyDiagnosisConstants.PALSY44, MentalPalsyDiagnosisConstants.PALSY45, + MentalPalsyDiagnosisConstants.PALSY46, MentalPalsyDiagnosisConstants.PALSY47, + MentalPalsyDiagnosisConstants.PALSY48, MentalPalsyDiagnosisConstants.PALSY49 + + ); + } + + public static List getOtherCentralNervousSystemConditionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL1, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL2, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL3, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL4, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL5, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL6, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL7, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL8, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL9, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL10, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL11, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL12, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL13, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL14, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL15, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL16, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL17, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL18, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL19, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL20, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL21, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL22, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL23, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL24, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL25, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL26, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL27, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL28, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL29, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL30, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL31, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL32, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL33, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL34, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL35, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL36, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL37, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL38, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL39, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL40, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL41, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL42, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL43, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL44, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL45, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL46, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL47, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL48, DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL49, + DiagnosisConcepts._DiagnosisConcepts.CENTRAL_NAVAL50 + + ); + } + + public static List getRoadTrafficInjuriesList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DEATHS_DUE_TO_ROAD_TRAFFIC_INJURIES); + + } + + public static List getConfirmedMalariaResults() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.POSITIVE, + DiagnosisConcepts._DiagnosisConcepts.Positive_for_Plasmodium_falciparum, + DiagnosisConcepts._DiagnosisConcepts.Positive_for_Plasmodium_vivax, + DiagnosisConcepts._DiagnosisConcepts.Positive_for_both_Plasmodium_falciparum_and_Plasmodium_vivax); + } + + public static List getSuspectedMalariaResults() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.NEGATIVE, + DiagnosisConcepts._DiagnosisConcepts.INDETERMINATE, + + DiagnosisConcepts._DiagnosisConcepts.Test_not_performed_due_to_lack_of_availability_of_test_materials, + DiagnosisConcepts._DiagnosisConcepts.POSITIVE, DiagnosisConcepts._DiagnosisConcepts.Procedure_performed); + } + + public static List getSexuallyTransmittedInfectionsList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.STI1, DiagnosisConcepts._DiagnosisConcepts.STI2, + DiagnosisConcepts._DiagnosisConcepts.STI3, DiagnosisConcepts._DiagnosisConcepts.STI4); + } + + public static List getAutismList() { + return Arrays.asList(AutismDiagnosisConstants.AUTISM_1, AutismDiagnosisConstants.AUTISM_2, + AutismDiagnosisConstants.AUTISM_3, AutismDiagnosisConstants.AUTISM_4, AutismDiagnosisConstants.AUTISM_5, + AutismDiagnosisConstants.AUTISM_6); + } + + public static List getOtherConvulsiveDisordersList() { + return Arrays.asList(ConvulsiveDiagnosisConstants.CONVULSIVE1, ConvulsiveDiagnosisConstants.CONVULSIVE2, + ConvulsiveDiagnosisConstants.CONVULSIVE3, ConvulsiveDiagnosisConstants.CONVULSIVE4, + ConvulsiveDiagnosisConstants.CONVULSIVE5, ConvulsiveDiagnosisConstants.CONVULSIVE6, + ConvulsiveDiagnosisConstants.CONVULSIVE7, ConvulsiveDiagnosisConstants.CONVULSIVE8, + ConvulsiveDiagnosisConstants.CONVULSIVE9, ConvulsiveDiagnosisConstants.CONVULSIVE10, + ConvulsiveDiagnosisConstants.CONVULSIVE11, ConvulsiveDiagnosisConstants.CONVULSIVE12, + ConvulsiveDiagnosisConstants.CONVULSIVE13, ConvulsiveDiagnosisConstants.CONVULSIVE14, + ConvulsiveDiagnosisConstants.CONVULSIVE15, ConvulsiveDiagnosisConstants.CONVULSIVE16, + ConvulsiveDiagnosisConstants.CONVULSIVE17, ConvulsiveDiagnosisConstants.CONVULSIVE18, + ConvulsiveDiagnosisConstants.CONVULSIVE19, ConvulsiveDiagnosisConstants.CONVULSIVE20, + ConvulsiveDiagnosisConstants.CONVULSIVE21, ConvulsiveDiagnosisConstants.CONVULSIVE22, + ConvulsiveDiagnosisConstants.CONVULSIVE23, ConvulsiveDiagnosisConstants.CONVULSIVE24, + ConvulsiveDiagnosisConstants.CONVULSIVE25, ConvulsiveDiagnosisConstants.CONVULSIVE26, + ConvulsiveDiagnosisConstants.CONVULSIVE27, ConvulsiveDiagnosisConstants.CONVULSIVE28 + + ); + } + + public static List getJiggersInfestationList() { + return Arrays.asList(123964); + } + + public static List getAmoebiasis() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DIARRHEA_AMOEBIASIS, 124); + } + + public static List getFeversList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.FEVER1, DiagnosisConcepts._DiagnosisConcepts.FEVER2, + DiagnosisConcepts._DiagnosisConcepts.FEVER3, DiagnosisConcepts._DiagnosisConcepts.FEVER4, + DiagnosisConcepts._DiagnosisConcepts.FEVER5, DiagnosisConcepts._DiagnosisConcepts.FEVER6, + DiagnosisConcepts._DiagnosisConcepts.FEVER7, DiagnosisConcepts._DiagnosisConcepts.FEVER8, + DiagnosisConcepts._DiagnosisConcepts.RIFT_VALLEY_FEVER, DiagnosisConcepts._DiagnosisConcepts.FEVER10, + DiagnosisConcepts._DiagnosisConcepts.FEVER11, DiagnosisConcepts._DiagnosisConcepts.FEVER12, + DiagnosisConcepts._DiagnosisConcepts.FEVER13, DiagnosisConcepts._DiagnosisConcepts.FEVER14, + DiagnosisConcepts._DiagnosisConcepts.FEVER15, DiagnosisConcepts._DiagnosisConcepts.FEVER16, + DiagnosisConcepts._DiagnosisConcepts.FEVER17, DiagnosisConcepts._DiagnosisConcepts.FEVER18, + DiagnosisConcepts._DiagnosisConcepts.Chikungunya_Fever, + DiagnosisConcepts._DiagnosisConcepts.Chikungunya_Haemorrhagic_Fever, + DiagnosisConcepts._DiagnosisConcepts.FEVER21, DiagnosisConcepts._DiagnosisConcepts.FEVER22, + DiagnosisConcepts._DiagnosisConcepts.FEVER23, DiagnosisConcepts._DiagnosisConcepts.FEVER24, + DiagnosisConcepts._DiagnosisConcepts.FEVER25, DiagnosisConcepts._DiagnosisConcepts.FEVER26, + DiagnosisConcepts._DiagnosisConcepts.FEVER27, DiagnosisConcepts._DiagnosisConcepts.FEVER28, + DiagnosisConcepts._DiagnosisConcepts.FEVER29, DiagnosisConcepts._DiagnosisConcepts.FEVER30, + DiagnosisConcepts._DiagnosisConcepts.FEVER31, DiagnosisConcepts._DiagnosisConcepts.FEVER32, + DiagnosisConcepts._DiagnosisConcepts.FEVER33, DiagnosisConcepts._DiagnosisConcepts.FEVER34, + DiagnosisConcepts._DiagnosisConcepts.FEVER35, DiagnosisConcepts._DiagnosisConcepts.FEVER36, + DiagnosisConcepts._DiagnosisConcepts.FEVER37, DiagnosisConcepts._DiagnosisConcepts.FEVER38, + DiagnosisConcepts._DiagnosisConcepts.FEVER39, DiagnosisConcepts._DiagnosisConcepts.FEVER40, + DiagnosisConcepts._DiagnosisConcepts.FEVER41, DiagnosisConcepts._DiagnosisConcepts.FEVER42, + DiagnosisConcepts._DiagnosisConcepts.FEVER43, DiagnosisConcepts._DiagnosisConcepts.FEVER44, + DiagnosisConcepts._DiagnosisConcepts.FEVER45, DiagnosisConcepts._DiagnosisConcepts.FEVER46, + DiagnosisConcepts._DiagnosisConcepts.FEVER47, DiagnosisConcepts._DiagnosisConcepts.FEVER48, + DiagnosisConcepts._DiagnosisConcepts.FEVER49, DiagnosisConcepts._DiagnosisConcepts.FEVER50, + DiagnosisConcepts._DiagnosisConcepts.FEVER51, DiagnosisConcepts._DiagnosisConcepts.FEVER52, + DiagnosisConcepts._DiagnosisConcepts.FEVER53, DiagnosisConcepts._DiagnosisConcepts.FEVER54, + DiagnosisConcepts._DiagnosisConcepts.FEVER55, DiagnosisConcepts._DiagnosisConcepts.FEVER56, + DiagnosisConcepts._DiagnosisConcepts.FEVER57, DiagnosisConcepts._DiagnosisConcepts.FEVER58, + DiagnosisConcepts._DiagnosisConcepts.FEVER59, DiagnosisConcepts._DiagnosisConcepts.FEVER60, + DiagnosisConcepts._DiagnosisConcepts.FEVER61, DiagnosisConcepts._DiagnosisConcepts.FEVER62, + DiagnosisConcepts._DiagnosisConcepts.FEVER63, DiagnosisConcepts._DiagnosisConcepts.FEVER64, + DiagnosisConcepts._DiagnosisConcepts.FEVER65, DiagnosisConcepts._DiagnosisConcepts.FEVER66, + DiagnosisConcepts._DiagnosisConcepts.FEVER67, DiagnosisConcepts._DiagnosisConcepts.FEVER68, + DiagnosisConcepts._DiagnosisConcepts.FEVER69, DiagnosisConcepts._DiagnosisConcepts.FEVER70, + DiagnosisConcepts._DiagnosisConcepts.FEVER71, DiagnosisConcepts._DiagnosisConcepts.FEVER72, + DiagnosisConcepts._DiagnosisConcepts.FEVER73, DiagnosisConcepts._DiagnosisConcepts.FEVER74, + DiagnosisConcepts._DiagnosisConcepts.FEVER75, DiagnosisConcepts._DiagnosisConcepts.FEVER76, + DiagnosisConcepts._DiagnosisConcepts.FEVER77, DiagnosisConcepts._DiagnosisConcepts.FEVER78, + DiagnosisConcepts._DiagnosisConcepts.FEVER79, DiagnosisConcepts._DiagnosisConcepts.FEVER80, + DiagnosisConcepts._DiagnosisConcepts.FEVER81, DiagnosisConcepts._DiagnosisConcepts.FEVER82, + DiagnosisConcepts._DiagnosisConcepts.FEVER83, DiagnosisConcepts._DiagnosisConcepts.FEVER84, + DiagnosisConcepts._DiagnosisConcepts.FEVER85, DiagnosisConcepts._DiagnosisConcepts.FEVER86, + DiagnosisConcepts._DiagnosisConcepts.FEVER87, DiagnosisConcepts._DiagnosisConcepts.FEVER88, + DiagnosisConcepts._DiagnosisConcepts.FEVER89, DiagnosisConcepts._DiagnosisConcepts.FEVER90, + DiagnosisConcepts._DiagnosisConcepts.FEVER91, DiagnosisConcepts._DiagnosisConcepts.FEVER92, + DiagnosisConcepts._DiagnosisConcepts.FEVER93, DiagnosisConcepts._DiagnosisConcepts.FEVER94, + DiagnosisConcepts._DiagnosisConcepts.FEVER95, DiagnosisConcepts._DiagnosisConcepts.FEVER96, + DiagnosisConcepts._DiagnosisConcepts.FEVER97, DiagnosisConcepts._DiagnosisConcepts.FEVER98, + DiagnosisConcepts._DiagnosisConcepts.FEVER99, DiagnosisConcepts._DiagnosisConcepts.FEVER100, + DiagnosisConcepts._DiagnosisConcepts.FEVER101, DiagnosisConcepts._DiagnosisConcepts.FEVER102, + DiagnosisConcepts._DiagnosisConcepts.FEVER103, DiagnosisConcepts._DiagnosisConcepts.FEVER103, + DiagnosisConcepts._DiagnosisConcepts.FEVER104, DiagnosisConcepts._DiagnosisConcepts.FEVER105, + DiagnosisConcepts._DiagnosisConcepts.FEVER106, DiagnosisConcepts._DiagnosisConcepts.Dengue_haemorrhagic_fever, + DiagnosisConcepts._DiagnosisConcepts.Dengue_fever, DiagnosisConcepts._DiagnosisConcepts.FEVER109, + DiagnosisConcepts._DiagnosisConcepts.FEVER110, DiagnosisConcepts._DiagnosisConcepts.FEVER111, + DiagnosisConcepts._DiagnosisConcepts.FEVER112, DiagnosisConcepts._DiagnosisConcepts.FEVER113, + DiagnosisConcepts._DiagnosisConcepts.FEVER114, DiagnosisConcepts._DiagnosisConcepts.FEVER115, + DiagnosisConcepts._DiagnosisConcepts.FEVER116, DiagnosisConcepts._DiagnosisConcepts.FEVER117, + DiagnosisConcepts._DiagnosisConcepts.FEVER118, DiagnosisConcepts._DiagnosisConcepts.FEVER119, + DiagnosisConcepts._DiagnosisConcepts.FEVER120, DiagnosisConcepts._DiagnosisConcepts.FEVER121, + DiagnosisConcepts._DiagnosisConcepts.FEVER122, DiagnosisConcepts._DiagnosisConcepts.FEVER123, + DiagnosisConcepts._DiagnosisConcepts.FEVER124, DiagnosisConcepts._DiagnosisConcepts.FEVER125, + DiagnosisConcepts._DiagnosisConcepts.FEVER126, DiagnosisConcepts._DiagnosisConcepts.FEVER127, + DiagnosisConcepts._DiagnosisConcepts.FEVER128, DiagnosisConcepts._DiagnosisConcepts.FEVER129, + DiagnosisConcepts._DiagnosisConcepts.FEVER130, DiagnosisConcepts._DiagnosisConcepts.FEVER131, + DiagnosisConcepts._DiagnosisConcepts.FEVER132, DiagnosisConcepts._DiagnosisConcepts.FEVER133, + DiagnosisConcepts._DiagnosisConcepts.FEVER134, DiagnosisConcepts._DiagnosisConcepts.FEVER135, + DiagnosisConcepts._DiagnosisConcepts.FEVER136, DiagnosisConcepts._DiagnosisConcepts.FEVER137, + DiagnosisConcepts._DiagnosisConcepts.FEVER138, DiagnosisConcepts._DiagnosisConcepts.FEVER139, + DiagnosisConcepts._DiagnosisConcepts.FEVER140, DiagnosisConcepts._DiagnosisConcepts.FEVER141 + + ); + } + + public static List getRiftValleyFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.RIFT_VALLEY_FEVER); + } + + public static List getChikungunyaFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Chikungunya_Fever, + DiagnosisConcepts._DiagnosisConcepts.Chikungunya_Haemorrhagic_Fever); + } + + public static List getDengueFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Dengue_haemorrhagic_fever, + DiagnosisConcepts._DiagnosisConcepts.Dengue_fever, DiagnosisConcepts._DiagnosisConcepts.Dengue_Shock_Syndrome); + } + + public static List mildDehydration() { + return Arrays + .asList(DiagnosisConcepts._DiagnosisConcepts.DEHYDRATION, + DiagnosisConcepts._DiagnosisConcepts.Neonatal_dehydration, + DiagnosisConcepts._DiagnosisConcepts.Dehydration, + DiagnosisConcepts._DiagnosisConcepts.Moderate_dehydration, + DiagnosisConcepts._DiagnosisConcepts.Mild_dehydration); + } + + public static List getCutaneousLeishmaniasisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Dry_Form_of_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Zoonotic_Form_of_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Wet_Form_of_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Ulcerating_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Recurrent_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Late_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Disseminated_Mucocutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Diffuse_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Asian_Desert_Cutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.American_Cutaneous_Mucocutaneous_Leishmaniasis, + DiagnosisConcepts._DiagnosisConcepts.Acute_Necrotising_Cutaneous_Leishmaniasis); + } + + public static List getAnthraxList() { + return Arrays + .asList(DiagnosisConcepts._DiagnosisConcepts.Pulmonary_Anthrax, + DiagnosisConcepts._DiagnosisConcepts.Contact_with_or_Exposure_to_Anthrax, + DiagnosisConcepts._DiagnosisConcepts.Anthrax, + DiagnosisConcepts._DiagnosisConcepts.Gastrointestinal_Anthrax, + DiagnosisConcepts._DiagnosisConcepts.Cutaneous_Anthrax, + DiagnosisConcepts._DiagnosisConcepts.Anthrax_Septicaemia, + DiagnosisConcepts._DiagnosisConcepts.Anthrax_Pneumonia); + } + + public static List getGastroenteritisList() { + return Arrays + .asList(DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_1, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_2, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_3, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_4, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_5, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_6, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_7, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_8, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_9, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_10, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_11, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_14, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_13, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_15, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_16, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_17, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_18, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_19, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_20, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_21, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_22, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_23, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_24, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_25, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_26, + DiagnosisConcepts._DiagnosisConcepts.Gastroenteritis_27); + } + + public static List getSeverePneumoniaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.acute_bacterial_pneumonia, + DiagnosisConcepts._DiagnosisConcepts.Acute_Interstitial_Pneumonia, + DiagnosisConcepts._DiagnosisConcepts.Chronic_Interstitial_Pneumonia, + DiagnosisConcepts._DiagnosisConcepts.acute_bronchitis_due_to_Mycoplasma_pneumoniae, + DiagnosisConcepts._DiagnosisConcepts.acute_mucous_pneumonia, + DiagnosisConcepts._DiagnosisConcepts.bilateral_pneumonia, + DiagnosisConcepts._DiagnosisConcepts.neonatal_pneumonia, + DiagnosisConcepts._DiagnosisConcepts.Acute_bacterial_pneumonia_presumed, + DiagnosisConcepts._DiagnosisConcepts.Sub_acute_pneumonia_presumed_PCP); + } + + public static List getSLowerTractInfectionList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Lower_Respiratory_Tract_Infection, + + DiagnosisConcepts._DiagnosisConcepts.Chronic_Obstructive_Pulmonary_Disease_with_Acute_Lower_Respiratory_Infection, + DiagnosisConcepts._DiagnosisConcepts.RESPIRATORY_TRACT_INFECTION_LOWER, + DiagnosisConcepts._DiagnosisConcepts.RESPIRATORY_TRACT_COVID, + DiagnosisConcepts._DiagnosisConcepts.unspecified_acute_lower_respiratory_infection); + } + + public static List getNeutalSepsisList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.NEUTAL_SEPISIS); + } + + public static List getDownSyndromeList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.DOWN_SYNDROME); + } + + public static List getOtherDisOfRespiratorySystemList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.OTHER_REP_1, + DiagnosisConcepts._DiagnosisConcepts.OTHER_REP_2 + + ); + } + + public static List getAllOtherDiseasesListForAdults() { + List allListedDiagnosis = new ArrayList(); + + allListedDiagnosis.addAll(getDiarrheaDiagnosisList()); + allListedDiagnosis.addAll(getDownSyndromeList()); + allListedDiagnosis.addAll(getOtherDisOfRespiratorySystemList()); + allListedDiagnosis.addAll(getNeutalSepsisList()); + allListedDiagnosis.addAll(getSLowerTractInfectionList()); + allListedDiagnosis.addAll(getAnthraxList()); + allListedDiagnosis.addAll(getSeverePneumoniaList()); + allListedDiagnosis.addAll(getCutaneousLeishmaniasisList()); + allListedDiagnosis.addAll(getChikungunyaFeverList()); + allListedDiagnosis.addAll(getDengueFeverList()); + allListedDiagnosis.addAll(getAutismList()); + allListedDiagnosis.addAll(getJiggersInfestationList()); + allListedDiagnosis.addAll(getOtherConvulsiveDisordersList()); + allListedDiagnosis.addAll(getSexuallyTransmittedInfectionsList()); + allListedDiagnosis.addAll(getSuspectedMalariaResults()); + allListedDiagnosis.addAll(getConfirmedMalariaResults()); + allListedDiagnosis.addAll(getRoadTrafficInjuriesList()); + allListedDiagnosis.addAll(getOtherCentralNervousSystemConditionsList()); + allListedDiagnosis.addAll(getCerebralPalsyList()); + allListedDiagnosis.addAll(getMalariaInPregnancyList()); + allListedDiagnosis.addAll(getEarInfectionConditionsList()); + allListedDiagnosis.addAll(getRicketsList()); + allListedDiagnosis.addAll(getTuberculosisDiagnosisList()); + allListedDiagnosis.addAll(getDysenteryList()); + allListedDiagnosis.addAll(getMeningococcalMeningitisList()); + allListedDiagnosis.addAll(getOtherMenigitisList()); + allListedDiagnosis.addAll(getPoliomyelitisList()); + allListedDiagnosis.addAll(getCholeraList()); + allListedDiagnosis.addAll(getNeonatalTetanusList()); + allListedDiagnosis.addAll(getChickenPoxList()); + allListedDiagnosis.addAll(getMeaslesList()); + allListedDiagnosis.addAll(getHepatitisList()); + allListedDiagnosis.addAll(getMumpsList()); + allListedDiagnosis.addAll(getMalariaList()); + allListedDiagnosis.addAll(getUrinaryTractInfectionList()); + allListedDiagnosis.addAll(getTyphoidList()); + allListedDiagnosis.addAll(getBilharziaList()); + allListedDiagnosis.addAll(getInterstinalwormsList()); + allListedDiagnosis.addAll(getMalnutritionList()); + allListedDiagnosis.addAll(getAnaemiaList()); + allListedDiagnosis.addAll(getEyeInfectionsList()); + allListedDiagnosis.addAll(getEarInfectionsConditionsList()); + allListedDiagnosis.addAll(getUpperRespiratoryTractInfectionsList()); + allListedDiagnosis.addAll(getAsthmaList()); + allListedDiagnosis.addAll(getTonsilitiesList()); + allListedDiagnosis.addAll(getPneumoniaList()); + allListedDiagnosis.addAll(getAbortionList()); + allListedDiagnosis.addAll(getDisOfPuerperiumChildbathList()); + allListedDiagnosis.addAll(getHypertensionList()); + allListedDiagnosis.addAll(getMentalDisordersList()); + allListedDiagnosis.addAll(getDentalDisordersList()); + allListedDiagnosis.addAll(getDiseaseOfTheSkinList()); + allListedDiagnosis.addAll(getAnthritisJointPainsList()); + allListedDiagnosis.addAll(getPoisoningList()); + allListedDiagnosis.addAll(getOtherInjuriesList()); + allListedDiagnosis.addAll(getSexualAssaultList()); + allListedDiagnosis.addAll(getViolenceRelatedInjuriesList()); + allListedDiagnosis.addAll(getBurnsList()); + allListedDiagnosis.addAll(getSnakeBitesList()); + allListedDiagnosis.addAll(getDogBitesList()); + allListedDiagnosis.addAll(getDiabetesList()); + allListedDiagnosis.addAll(getOtherBitesList()); + allListedDiagnosis.addAll(getEpilepsyList()); + allListedDiagnosis.addAll(getBrucellosisList()); + allListedDiagnosis.addAll(getCardiovascularConditionsList()); + allListedDiagnosis.addAll(getOvrerweightList()); + allListedDiagnosis.addAll(getMuscularSkeletalConditionsList()); + allListedDiagnosis.addAll(getFistulaBirthRelatedList()); + allListedDiagnosis.addAll(getNeoplamsList()); + allListedDiagnosis.addAll(getAmoebiasis()); + allListedDiagnosis.addAll(getPhysicalDisabilityList()); + allListedDiagnosis.addAll(getTryponomiasisList()); + allListedDiagnosis.addAll(getKalazarLeishmaniasisList()); + allListedDiagnosis.addAll(getYellowFeverList()); + allListedDiagnosis.addAll(getViralHaemorrhagicFeverList()); + allListedDiagnosis.addAll(getRiftValleyFeverList()); + allListedDiagnosis.addAll(getGastroenteritisList()); + + return allListedDiagnosis; + } + + public static List getReumonicFeverList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_1, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_1, DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_3, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_4, DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_5, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_6, DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_7, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_8, DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_9, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_10, DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_11, + DiagnosisConcepts._DiagnosisConcepts.REUMONIC_FEVER_12 + + ); + } + + public static List getHypoxaemiaList() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.Hypoxaemia); + } + + public static List getChildHoodCancerist() { + return Arrays.asList(DiagnosisConcepts._DiagnosisConcepts.CCANCER_1, DiagnosisConcepts._DiagnosisConcepts.CCANCER_1, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_2, DiagnosisConcepts._DiagnosisConcepts.CCANCER_3, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_4, DiagnosisConcepts._DiagnosisConcepts.CCANCER_5, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_6, DiagnosisConcepts._DiagnosisConcepts.CCANCER_7, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_8, DiagnosisConcepts._DiagnosisConcepts.CCANCER_9, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_10, DiagnosisConcepts._DiagnosisConcepts.CCANCER_11, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_12, DiagnosisConcepts._DiagnosisConcepts.CCANCER_13, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_14, DiagnosisConcepts._DiagnosisConcepts.CCANCER_15, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_16, DiagnosisConcepts._DiagnosisConcepts.CCANCER_17, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_18, DiagnosisConcepts._DiagnosisConcepts.CCANCER_19, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_20, DiagnosisConcepts._DiagnosisConcepts.CCANCER_21, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_22, DiagnosisConcepts._DiagnosisConcepts.CCANCER_23, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_24, DiagnosisConcepts._DiagnosisConcepts.CCANCER_25, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_26, DiagnosisConcepts._DiagnosisConcepts.CCANCER_27, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_28, DiagnosisConcepts._DiagnosisConcepts.CCANCER_29, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_30, DiagnosisConcepts._DiagnosisConcepts.CCANCER_31, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_32, DiagnosisConcepts._DiagnosisConcepts.CCANCER_33, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_34, DiagnosisConcepts._DiagnosisConcepts.CCANCER_35, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_36, DiagnosisConcepts._DiagnosisConcepts.CCANCER_37, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_38, DiagnosisConcepts._DiagnosisConcepts.CCANCER_39, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_40, DiagnosisConcepts._DiagnosisConcepts.CCANCER_41, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_42, DiagnosisConcepts._DiagnosisConcepts.CCANCER_43, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_44, DiagnosisConcepts._DiagnosisConcepts.CCANCER_45, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_46, DiagnosisConcepts._DiagnosisConcepts.CCANCER_47, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_48, DiagnosisConcepts._DiagnosisConcepts.CCANCER_49, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_50, DiagnosisConcepts._DiagnosisConcepts.CCANCER_51, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_52, DiagnosisConcepts._DiagnosisConcepts.CCANCER_53, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_54, DiagnosisConcepts._DiagnosisConcepts.CCANCER_55, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_56, DiagnosisConcepts._DiagnosisConcepts.CCANCER_57, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_58, DiagnosisConcepts._DiagnosisConcepts.CCANCER_59, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_60, DiagnosisConcepts._DiagnosisConcepts.CCANCER_61, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_62, DiagnosisConcepts._DiagnosisConcepts.CCANCER_63, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_64, DiagnosisConcepts._DiagnosisConcepts.CCANCER_65, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_66, DiagnosisConcepts._DiagnosisConcepts.CCANCER_67, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_68, DiagnosisConcepts._DiagnosisConcepts.CCANCER_69, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_70, DiagnosisConcepts._DiagnosisConcepts.CCANCER_71, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_72, DiagnosisConcepts._DiagnosisConcepts.CCANCER_73, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_74, DiagnosisConcepts._DiagnosisConcepts.CCANCER_75, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_76, DiagnosisConcepts._DiagnosisConcepts.CCANCER_77, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_78, DiagnosisConcepts._DiagnosisConcepts.CCANCER_79, + DiagnosisConcepts._DiagnosisConcepts.CCANCER_80); + } + + public static List getAllOtherDiseasesListForChildren() { + List allListedDiagnosisForChildren = new ArrayList(); + allListedDiagnosisForChildren.addAll(getDiarrheaDiagnosisList()); + //allListedDiagnosisForChildren.addAll(mildDehydration()); + allListedDiagnosisForChildren.addAll(getCholeraList()); + allListedDiagnosisForChildren.addAll(getDysenteryList()); + allListedDiagnosisForChildren.addAll(getGastroenteritisList()); + allListedDiagnosisForChildren.addAll(getPneumoniaList()); + allListedDiagnosisForChildren.addAll(getSeverePneumoniaList()); + allListedDiagnosisForChildren.addAll(getUpperRespiratoryTractInfectionsList()); + allListedDiagnosisForChildren.addAll(getSLowerTractInfectionList()); + allListedDiagnosisForChildren.addAll(getAsthmaList()); + allListedDiagnosisForChildren.addAll(getTuberculosisDiagnosisList()); + allListedDiagnosisForChildren.addAll(getSuspectedMalariaResults()); + allListedDiagnosisForChildren.addAll(getConfirmedMalariaResults()); + allListedDiagnosisForChildren.addAll(getEarInfectionsConditionsList()); + allListedDiagnosisForChildren.addAll(getMalnutritionList()); + allListedDiagnosisForChildren.addAll(getAnaemiaList()); + allListedDiagnosisForChildren.addAll(getMeningococcalMeningitisList()); + allListedDiagnosisForChildren.addAll(getOtherMenigitisList()); + allListedDiagnosisForChildren.addAll(getNeutalSepsisList()); + allListedDiagnosisForChildren.addAll(getNeonatalTetanusList()); + allListedDiagnosisForChildren.addAll(getPoliomyelitisList()); + allListedDiagnosisForChildren.addAll(getChickenPoxList()); + allListedDiagnosisForChildren.addAll(getMeaslesList()); + allListedDiagnosisForChildren.addAll(getAmoebiasis()); + allListedDiagnosisForChildren.addAll(getMumpsList()); + allListedDiagnosisForChildren.addAll(getTyphoidList()); + allListedDiagnosisForChildren.addAll(getBilharziaList()); + allListedDiagnosisForChildren.addAll(getInterstinalwormsList()); + allListedDiagnosisForChildren.addAll(getEyeInfectionsList()); + allListedDiagnosisForChildren.addAll(getTonsilitiesList()); + allListedDiagnosisForChildren.addAll(getUrinaryTractInfectionList()); + allListedDiagnosisForChildren.addAll(getMentalDisordersList()); + allListedDiagnosisForChildren.addAll(getDentalDisordersList()); + allListedDiagnosisForChildren.addAll(getDiseaseOfTheSkinList()); + allListedDiagnosisForChildren.addAll(getDownSyndromeList()); + allListedDiagnosisForChildren.addAll(getPoisoningList()); + allListedDiagnosisForChildren.addAll(getRoadTrafficInjuriesList()); + allListedDiagnosisForChildren.addAll(getRoadTrafficInjuriesList()); + allListedDiagnosisForChildren.addAll(getViolenceRelatedInjuriesList()); + allListedDiagnosisForChildren.addAll(getOtherInjuriesList()); + allListedDiagnosisForChildren.addAll(getSexualAssaultList()); + allListedDiagnosisForChildren.addAll(getBurnsList()); + allListedDiagnosisForChildren.addAll(getSnakeBitesList()); + allListedDiagnosisForChildren.addAll(getDogBitesList()); + allListedDiagnosisForChildren.addAll(getOtherBitesList()); + allListedDiagnosisForChildren.addAll(getDiabetesList()); + allListedDiagnosisForChildren.addAll(getEpilepsyList()); + allListedDiagnosisForChildren.addAll(getOtherConvulsiveDisordersList()); + allListedDiagnosisForChildren.addAll(getReumonicFeverList()); + allListedDiagnosisForChildren.addAll(getBrucellosisList()); + allListedDiagnosisForChildren.addAll(getRicketsList()); + allListedDiagnosisForChildren.addAll(getCerebralPalsyList()); + allListedDiagnosisForChildren.addAll(getAutismList()); + allListedDiagnosisForChildren.addAll(getTryponomiasisList()); + allListedDiagnosisForChildren.addAll(getYellowFeverList()); + allListedDiagnosisForChildren.addAll(getViralHaemorrhagicFeverList()); + allListedDiagnosisForChildren.addAll(getRiftValleyFeverList()); + allListedDiagnosisForChildren.addAll(getChikungunyaFeverList()); + allListedDiagnosisForChildren.addAll(getDengueFeverList()); + allListedDiagnosisForChildren.addAll(getKalazarLeishmaniasisList()); + allListedDiagnosisForChildren.addAll(getCutaneousLeishmaniasisList()); + allListedDiagnosisForChildren.addAll(getAnthraxList()); + allListedDiagnosisForChildren.addAll(getHypoxaemiaList()); + allListedDiagnosisForChildren.addAll(getChildHoodCancerist()); + + return allListedDiagnosisForChildren; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java new file mode 100644 index 0000000000..fd2fd02ded --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java @@ -0,0 +1,118 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class MascularDiagnosisConstants { + + // Muscular + public static final Integer Muscular1 = 112824; + + public static final Integer Muscular2 = 113158; + + public static final Integer Muscular3 = 113159; + + public static final Integer Muscular4 = 113623; + + public static final Integer Muscular5 = 115004; + + public static final Integer Muscular6 = 115010; + + public static final Integer Muscular7 = 115481; + + public static final Integer Muscular8 = 115483; + + public static final Integer Muscular9 = 116302; + + public static final Integer Muscular10 = 116303; + + public static final Integer Muscular11 = 116476; + + public static final Integer Muscular12 = 116603; + + public static final Integer Muscular13 = 118870; + + public static final Integer Muscular14 = 119562; + + public static final Integer Muscular15 = 120756; + + public static final Integer Muscular16 = 121230; + + public static final Integer Muscular17 = 125852; + + public static final Integer Muscular18 = 126183; + + public static final Integer Muscular19 = 132456; + + public static final Integer Muscular20 = 133088; + + public static final Integer Muscular21 = 133617; + + public static final Integer Muscular22 = 133618; + + public static final Integer Muscular23 = 133619; + + public static final Integer Muscular24 = 133621; + + public static final Integer Muscular25 = 133622; + + public static final Integer Muscular26 = 133624; + + public static final Integer Muscular27 = 133713; + + public static final Integer Muscular28 = 136736; + + public static final Integer Muscular29 = 138160; + + public static final Integer Muscular30 = 138743; + + public static final Integer Muscular31 = 139365; + + public static final Integer Muscular32 = 139527; + + public static final Integer Muscular33 = 140195; + + public static final Integer Muscular34 = 140812; + + public static final Integer Muscular35 = 141084; + + public static final Integer Muscular36 = 141349; + + public static final Integer Muscular37 = 141683; + + public static final Integer Muscular38 = 141876; + + public static final Integer Muscular39 = 141879; + + public static final Integer Muscular40 = 142036; + + public static final Integer Muscular41 = 142296; + + public static final Integer Muscular42 = 142298; + + public static final Integer Muscular43 = 143813; + + public static final Integer Muscular44 = 143819; + + public static final Integer Muscular45 = 143933; + + public static final Integer Muscular46 = 148596; + + public static final Integer Muscular47 = 149331; + + public static final Integer Muscular48 = 151876; + + public static final Integer Muscular49 = 152035; + + public static final Integer Muscular50 = 152486; + + public static final Integer Muscular51 = 152997; + + public static final Integer Muscular52 = 153309; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java new file mode 100644 index 0000000000..452c969967 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java @@ -0,0 +1,112 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class MentalPalsyDiagnosisConstants { + + //mental Palsy + public static final Integer PALSY1 = 112436; + + public static final Integer PALSY2 = 113136; + + public static final Integer PALSY3 = 113454; + + public static final Integer PALSY4 = 114388; + + public static final Integer PALSY5 = 115693; + + public static final Integer PALSY6 = 119395; + + public static final Integer PALSY7 = 119396; + + public static final Integer PALSY8 = 119750; + + public static final Integer PALSY9 = 121353; + + public static final Integer PALSY10 = 123006; + + public static final Integer PALSY11 = 124569; + + public static final Integer PALSY12 = 124572; + + public static final Integer PALSY13 = 124679; + + public static final Integer PALSY14 = 125035; + + public static final Integer PALSY15 = 126258; + + public static final Integer PALSY16 = 126839; + + public static final Integer PALSY17 = 128305; + + public static final Integer PALSY18 = 128442; + + public static final Integer PALSY19 = 128443; + + public static final Integer PALSY20 = 130738; + + public static final Integer PALSY21 = 130753; + + public static final Integer PALSY22 = 133748; + + public static final Integer PALSY23 = 137554; + + public static final Integer PALSY24 = 137978; + + public static final Integer PALSY25 = 138069; + + public static final Integer PALSY26 = 138959; + + public static final Integer PALSY27 = 139910; + + public static final Integer PALSY28 = 140815; + + public static final Integer PALSY29 = 140816; + + public static final Integer PALSY30 = 141085; + + public static final Integer PALSY31 = 141593; + + public static final Integer PALSY32 = 141625; + + public static final Integer PALSY33 = 143393; + + public static final Integer PALSY34 = 143633; + + public static final Integer PALSY35 = 143725; + + public static final Integer PALSY36 = 144091; + + public static final Integer PALSY37 = 145847; + + public static final Integer PALSY38 = 147031; + + public static final Integer PALSY39 = 147912; + + public static final Integer PALSY40 = 149550; + + public static final Integer PALSY41 = 149972; + + public static final Integer PALSY42 = 150895; + + public static final Integer PALSY43 = 152034; + + public static final Integer PALSY44 = 152484; + + public static final Integer PALSY45 = 152492; + + public static final Integer PALSY46 = 155483; + + public static final Integer PALSY47 = 155698; + + public static final Integer PALSY48 = 156626; + + public static final Integer PALSY49 = 158847; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java new file mode 100644 index 0000000000..04b074374e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java @@ -0,0 +1,83 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.indicator.dimension.CohortDefinitionDimension; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Date; + +import static org.openmrs.module.kenyacore.report.ReportUtils.map; + +@Component +public class Moh705ReportDimension { + + /** + * Patients with encounters on a given date + * + * @return @{@link org.openmrs.module.reporting.indicator.dimension.CohortDimension} + */ + public CohortDefinitionDimension encountersOfMonthPerDay() { + CohortDefinitionDimension dim = new CohortDefinitionDimension(); + dim.setName("Patient with encounters on date of day"); + dim.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dim.addParameter(new Parameter("endDate", "End Date", Date.class)); + dim.addCohortDefinition("1", map(getPatientsSeenOnDay(0), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("2", map(getPatientsSeenOnDay(1), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("3", map(getPatientsSeenOnDay(2), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("4", map(getPatientsSeenOnDay(3), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("5", map(getPatientsSeenOnDay(4), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("6", map(getPatientsSeenOnDay(5), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("7", map(getPatientsSeenOnDay(6), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("8", map(getPatientsSeenOnDay(7), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("9", map(getPatientsSeenOnDay(8), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("10", map(getPatientsSeenOnDay(9), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("11", map(getPatientsSeenOnDay(10), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("12", map(getPatientsSeenOnDay(11), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("13", map(getPatientsSeenOnDay(12), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("14", map(getPatientsSeenOnDay(13), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("15", map(getPatientsSeenOnDay(14), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("16", map(getPatientsSeenOnDay(15), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("17", map(getPatientsSeenOnDay(16), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("18", map(getPatientsSeenOnDay(17), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("19", map(getPatientsSeenOnDay(18), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("20", map(getPatientsSeenOnDay(19), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("21", map(getPatientsSeenOnDay(20), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("22", map(getPatientsSeenOnDay(21), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("23", map(getPatientsSeenOnDay(22), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("24", map(getPatientsSeenOnDay(23), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("25", map(getPatientsSeenOnDay(24), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("26", map(getPatientsSeenOnDay(25), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("27", map(getPatientsSeenOnDay(26), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("28", map(getPatientsSeenOnDay(27), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("29", map(getPatientsSeenOnDay(28), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("30", map(getPatientsSeenOnDay(29), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("31", map(getPatientsSeenOnDay(30), "startDate=${startDate},endDate=${endDate}")); + + return dim; + } + + + public CohortDefinition getPatientsSeenOnDay(int day) { + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("Get patients seen on a given day"); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id=e.patient_id" + + " WHERE p.voided= 0 AND e.voided = 0 AND e.encounter_datetime BETWEEN DATE_ADD(:startDate, INTERVAL " + + day + " DAY) AND DATE_ADD(DATE_ADD(DATE_ADD(:startDate, INTERVAL " + day + + " DAY), INTERVAL 23 HOUR), INTERVAL 59 MINUTE) AND e.encounter_datetime <= :endDate"); + return cd; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java new file mode 100644 index 0000000000..c472007681 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java @@ -0,0 +1,2452 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class OncologyDiagnosisConstants { + + public static final Integer CANCER_1 = 110513; + + public static final Integer CANCER_2 = 110590; + + public static final Integer CANCER_3 = 110913; + + public static final Integer CANCER_4 = 110914; + + public static final Integer CANCER_5 = 111089; + + public static final Integer CANCER_6 = 111188; + + public static final Integer CANCER_7 = 111189; + + public static final Integer CANCER_8 = 111190; + + public static final Integer CANCER_9 = 111195; + + public static final Integer CANCER_10 = 111196; + + public static final Integer CANCER_11 = 111197; + + public static final Integer CANCER_12 = 111198; + + public static final Integer CANCER_13 = 111225; + + public static final Integer CANCER_14 = 111226; + + public static final Integer CANCER_15 = 111227; + + public static final Integer CANCER_16 = 111228; + + public static final Integer CANCER_17 = 111229; + + public static final Integer CANCER_18 = 111230; + + public static final Integer CANCER_19 = 111231; + + public static final Integer CANCER_20 = 111232; + + public static final Integer CANCER_21 = 111233; + + public static final Integer CANCER_22 = 111234; + + public static final Integer CANCER_23 = 111235; + + public static final Integer CANCER_24 = 111236; + + public static final Integer CANCER_25 = 111237; + + public static final Integer CANCER_26 = 111238; + + public static final Integer CANCER_27 = 111239; + + public static final Integer CANCER_28 = 111240; + + public static final Integer CANCER_29 = 111241; + + public static final Integer CANCER_30 = 111242; + + public static final Integer CANCER_31 = 111243; + + public static final Integer CANCER_32 = 111244; + + public static final Integer CANCER_33 = 111245; + + public static final Integer CANCER_34 = 111246; + + public static final Integer CANCER_35 = 111247; + + public static final Integer CANCER_36 = 111248; + + public static final Integer CANCER_37 = 111249; + + public static final Integer CANCER_38 = 111250; + + public static final Integer CANCER_39 = 111251; + + public static final Integer CANCER_40 = 111252; + + public static final Integer CANCER_41 = 111253; + + public static final Integer CANCER_42 = 111254; + + public static final Integer CANCER_43 = 111255; + + public static final Integer CANCER_44 = 111256; + + public static final Integer CANCER_45 = 111257; + + public static final Integer CANCER_46 = 111258; + + public static final Integer CANCER_47 = 111259; + + public static final Integer CANCER_48 = 111260; + + public static final Integer CANCER_49 = 111261; + + public static final Integer CANCER_50 = 111262; + + public static final Integer CANCER_51 = 111263; + + public static final Integer CANCER_52 = 111264; + + public static final Integer CANCER_53 = 111265; + + public static final Integer CANCER_54 = 111266; + + public static final Integer CANCER_55 = 111267; + + public static final Integer CANCER_56 = 111269; + + public static final Integer CANCER_57 = 111271; + + public static final Integer CANCER_58 = 111272; + + public static final Integer CANCER_59 = 111273; + + public static final Integer CANCER_60 = 111274; + + public static final Integer CANCER_61 = 111276; + + public static final Integer CANCER_62 = 111277; + + public static final Integer CANCER_63 = 111278; + + public static final Integer CANCER_64 = 111279; + + public static final Integer CANCER_65 = 111280; + + public static final Integer CANCER_66 = 111281; + + public static final Integer CANCER_67 = 111282; + + public static final Integer CANCER_68 = 111283; + + public static final Integer CANCER_69 = 111285; + + public static final Integer CANCER_70 = 111286; + + public static final Integer CANCER_71 = 111287; + + public static final Integer CANCER_72 = 111288; + + public static final Integer CANCER_73 = 111289; + + public static final Integer CANCER_74 = 111302; + + public static final Integer CANCER_75 = 111303; + + public static final Integer CANCER_76 = 111304; + + public static final Integer CANCER_77 = 111305; + + public static final Integer CANCER_78 = 111306; + + public static final Integer CANCER_79 = 111307; + + public static final Integer CANCER_80 = 111309; + + public static final Integer CANCER_81 = 111310; + + public static final Integer CANCER_82 = 111314; + + public static final Integer CANCER_83 = 111323; + + public static final Integer CANCER_84 = 111325; + + public static final Integer CANCER_85 = 111342; + + public static final Integer CANCER_86 = 111343; + + public static final Integer CANCER_87 = 111344; + + public static final Integer CANCER_88 = 111345; + + public static final Integer CANCER_89 = 111346; + + public static final Integer CANCER_90 = 111347; + + public static final Integer CANCER_91 = 111348; + + public static final Integer CANCER_92 = 111349; + + public static final Integer CANCER_93 = 111382; + + public static final Integer CANCER_94 = 111386; + + public static final Integer CANCER_95 = 111387; + + public static final Integer CANCER_96 = 111388; + + public static final Integer CANCER_97 = 111389; + + public static final Integer CANCER_98 = 111390; + + public static final Integer CANCER_99 = 111391; + + public static final Integer CANCER_100 = 111393; + + public static final Integer CANCER_101 = 113076; + + public static final Integer CANCER_102 = 113079; + + public static final Integer CANCER_103 = 113084; + + public static final Integer CANCER_104 = 113668; + + public static final Integer CANCER_105 = 113670; + + public static final Integer CANCER_106 = 113674; + + public static final Integer CANCER_107 = 113676; + + public static final Integer CANCER_108 = 113680; + + public static final Integer CANCER_109 = 113681; + + public static final Integer CANCER_110 = 113684; + + public static final Integer CANCER_111 = 113686; + + public static final Integer CANCER_112 = 113689; + + public static final Integer CANCER_113 = 113690; + + public static final Integer CANCER_114 = 113694; + + public static final Integer CANCER_115 = 113696; + + public static final Integer CANCER_116 = 113698; + + public static final Integer CANCER_117 = 113700; + + public static final Integer CANCER_118 = 113701; + + public static final Integer CANCER_119 = 113704; + + public static final Integer CANCER_120 = 113705; + + public static final Integer CANCER_121 = 113709; + + public static final Integer CANCER_122 = 113711; + + public static final Integer CANCER_123 = 113712; + + public static final Integer CANCER_124 = 113713; + + public static final Integer CANCER_125 = 113715; + + public static final Integer CANCER_126 = 113716; + + public static final Integer CANCER_127 = 113717; + + public static final Integer CANCER_128 = 113718; + + public static final Integer CANCER_129 = 113721; + + public static final Integer CANCER_130 = 113723; + + public static final Integer CANCER_131 = 113729; + + public static final Integer CANCER_132 = 113732; + + public static final Integer CANCER_133 = 113735; + + public static final Integer CANCER_134 = 113740; + + public static final Integer CANCER_135 = 113742; + + public static final Integer CANCER_136 = 113743; + + public static final Integer CANCER_137 = 113744; + + public static final Integer CANCER_138 = 113746; + + public static final Integer CANCER_139 = 113748; + + public static final Integer CANCER_140 = 113751; + + public static final Integer CANCER_141 = 113753; + + public static final Integer CANCER_142 = 113754; + + public static final Integer CANCER_143 = 113757; + + public static final Integer CANCER_144 = 113761; + + public static final Integer CANCER_145 = 113762; + + public static final Integer CANCER_146 = 113763; + + public static final Integer CANCER_147 = 113778; + + public static final Integer CANCER_148 = 113782; + + public static final Integer CANCER_149 = 113784; + + public static final Integer CANCER_150 = 115324; + + public static final Integer CANCER_151 = 115327; + + public static final Integer CANCER_152 = 115335; + + public static final Integer CANCER_153 = 115340; + + public static final Integer CANCER_154 = 115341; + + public static final Integer CANCER_155 = 115344; + + public static final Integer CANCER_156 = 115346; + + public static final Integer CANCER_157 = 115349; + + public static final Integer CANCER_158 = 115354; + + public static final Integer CANCER_159 = 115355; + + public static final Integer CANCER_160 = 115356; + + public static final Integer CANCER_161 = 115357; + + public static final Integer CANCER_162 = 115359; + + public static final Integer CANCER_163 = 115362; + + public static final Integer CANCER_164 = 115363; + + public static final Integer CANCER_165 = 115365; + + public static final Integer CANCER_166 = 115720; + + public static final Integer CANCER_167 = 115958; + + public static final Integer CANCER_168 = 115959; + + public static final Integer CANCER_169 = 115960; + + public static final Integer CANCER_170 = 115961; + + public static final Integer CANCER_171 = 115963; + + public static final Integer CANCER_172 = 115965; + + public static final Integer CANCER_173 = 115966; + + public static final Integer CANCER_174 = 115968; + + public static final Integer CANCER_175 = 115973; + + public static final Integer CANCER_176 = 115976; + + public static final Integer CANCER_177 = 115980; + + public static final Integer CANCER_178 = 115983; + + public static final Integer CANCER_179 = 115984; + + public static final Integer CANCER_180 = 115985; + + public static final Integer CANCER_181 = 115986; + + public static final Integer CANCER_182 = 115992; + + public static final Integer CANCER_183 = 116000; + + public static final Integer CANCER_184 = 116004; + + public static final Integer CANCER_185 = 116010; + + public static final Integer CANCER_186 = 116013; + + public static final Integer CANCER_187 = 116016; + + public static final Integer CANCER_188 = 116017; + + public static final Integer CANCER_189 = 116021; + + public static final Integer CANCER_190 = 116023; + + public static final Integer CANCER_191 = 116024; + + public static final Integer CANCER_192 = 116026; + + public static final Integer CANCER_193 = 116030; + + public static final Integer CANCER_194 = 116031; + + public static final Integer CANCER_195 = 116033; + + public static final Integer CANCER_196 = 116040; + + public static final Integer CANCER_197 = 116041; + + public static final Integer CANCER_198 = 116046; + + public static final Integer CANCER_199 = 116049; + + public static final Integer CANCER_200 = 116055; + + public static final Integer CANCER_201 = 116057; + + public static final Integer CANCER_202 = 116058; + + public static final Integer CANCER_203 = 116059; + + public static final Integer CANCER_204 = 116060; + + public static final Integer CANCER_205 = 116061; + + public static final Integer CANCER_206 = 116065; + + public static final Integer CANCER_207 = 116066; + + public static final Integer CANCER_208 = 116067; + + public static final Integer CANCER_209 = 116068; + + public static final Integer CANCER_210 = 116072; + + public static final Integer CANCER_211 = 116074; + + public static final Integer CANCER_212 = 116075; + + public static final Integer CANCER_213 = 116076; + + public static final Integer CANCER_214 = 116077; + + public static final Integer CANCER_215 = 116079; + + public static final Integer CANCER_216 = 117271; + + public static final Integer CANCER_217 = 117272; + + public static final Integer CANCER_218 = 117504; + + public static final Integer CANCER_219 = 117508; + + public static final Integer CANCER_220 = 117743; + + public static final Integer CANCER_221 = 117918; + + public static final Integer CANCER_222 = 118192; + + public static final Integer CANCER_223 = 118193; + + public static final Integer CANCER_224 = 120781; + + public static final Integer CANCER_225 = 121153; + + public static final Integer CANCER_226 = 121165; + + public static final Integer CANCER_227 = 121166; + + public static final Integer CANCER_228 = 121167; + + public static final Integer CANCER_229 = 121171; + + public static final Integer CANCER_230 = 121172; + + public static final Integer CANCER_231 = 121175; + + public static final Integer CANCER_232 = 121176; + + public static final Integer CANCER_233 = 121184; + + public static final Integer CANCER_234 = 121186; + + public static final Integer CANCER_235 = 121188; + + public static final Integer CANCER_236 = 121190; + + public static final Integer CANCER_237 = 121192; + + public static final Integer CANCER_238 = 121194; + + public static final Integer CANCER_239 = 121199; + + public static final Integer CANCER_240 = 121202; + + public static final Integer CANCER_241 = 121203; + + public static final Integer CANCER_242 = 121204; + + public static final Integer CANCER_243 = 121205; + + public static final Integer CANCER_244 = 121206; + + public static final Integer CANCER_245 = 121207; + + public static final Integer CANCER_246 = 122424; + + public static final Integer CANCER_247 = 122508; + + public static final Integer CANCER_248 = 122509; + + public static final Integer CANCER_249 = 122512; + + public static final Integer CANCER_250 = 122574; + + public static final Integer CANCER_251 = 122575; + + public static final Integer CANCER_252 = 122577; + + public static final Integer CANCER_253 = 122580; + + public static final Integer CANCER_254 = 122603; + + public static final Integer CANCER_255 = 122654; + + public static final Integer CANCER_256 = 122655; + + public static final Integer CANCER_257 = 122707; + + public static final Integer CANCER_258 = 123078; + + public static final Integer CANCER_259 = 123973; + + public static final Integer CANCER_260 = 126899; + + public static final Integer CANCER_261 = 126900; + + public static final Integer CANCER_262 = 126901; + + public static final Integer CANCER_263 = 126902; + + public static final Integer CANCER_264 = 126903; + + public static final Integer CANCER_265 = 126904; + + public static final Integer CANCER_266 = 126905; + + public static final Integer CANCER_267 = 126906; + + public static final Integer CANCER_268 = 126907; + + public static final Integer CANCER_269 = 126908; + + public static final Integer CANCER_270 = 126909; + + public static final Integer CANCER_271 = 126910; + + public static final Integer CANCER_272 = 126911; + + public static final Integer CANCER_273 = 126912; + + public static final Integer CANCER_274 = 126913; + + public static final Integer CANCER_275 = 126914; + + public static final Integer CANCER_276 = 126915; + + public static final Integer CANCER_277 = 126916; + + public static final Integer CANCER_278 = 126917; + + public static final Integer CANCER_279 = 126919; + + public static final Integer CANCER_280 = 126920; + + public static final Integer CANCER_281 = 126921; + + public static final Integer CANCER_282 = 126923; + + public static final Integer CANCER_283 = 126924; + + public static final Integer CANCER_284 = 126925; + + public static final Integer CANCER_285 = 126926; + + public static final Integer CANCER_286 = 126927; + + public static final Integer CANCER_287 = 126928; + + public static final Integer CANCER_288 = 126929; + + public static final Integer CANCER_289 = 126930; + + public static final Integer CANCER_290 = 126931; + + public static final Integer CANCER_291 = 126932; + + public static final Integer CANCER_292 = 126933; + + public static final Integer CANCER_293 = 126936; + + public static final Integer CANCER_294 = 126937; + + public static final Integer CANCER_295 = 126938; + + public static final Integer CANCER_296 = 126939; + + public static final Integer CANCER_297 = 126940; + + public static final Integer CANCER_298 = 126941; + + public static final Integer CANCER_299 = 126942; + + public static final Integer CANCER_300 = 126943; + + public static final Integer CANCER_301 = 126944; + + public static final Integer CANCER_302 = 126945; + + public static final Integer CANCER_303 = 126946; + + public static final Integer CANCER_304 = 126947; + + public static final Integer CANCER_305 = 126948; + + public static final Integer CANCER_306 = 126949; + + public static final Integer CANCER_307 = 126950; + + public static final Integer CANCER_308 = 126951; + + public static final Integer CANCER_309 = 126952; + + public static final Integer CANCER_310 = 126953; + + public static final Integer CANCER_311 = 128614; + + public static final Integer CANCER_312 = 128616; + + public static final Integer CANCER_313 = 128618; + + public static final Integer CANCER_314 = 128619; + + public static final Integer CANCER_315 = 128620; + + public static final Integer CANCER_316 = 128622; + + public static final Integer CANCER_317 = 128625; + + public static final Integer CANCER_318 = 128628; + + public static final Integer CANCER_319 = 128629; + + public static final Integer CANCER_320 = 128630; + + public static final Integer CANCER_321 = 128631; + + public static final Integer CANCER_322 = 128632; + + public static final Integer CANCER_323 = 128633; + + public static final Integer CANCER_324 = 128635; + + public static final Integer CANCER_325 = 128641; + + public static final Integer CANCER_326 = 128642; + + public static final Integer CANCER_327 = 128644; + + public static final Integer CANCER_328 = 128645; + + public static final Integer CANCER_329 = 128649; + + public static final Integer CANCER_330 = 128651; + + public static final Integer CANCER_331 = 128652; + + public static final Integer CANCER_332 = 128653; + + public static final Integer CANCER_333 = 128655; + + public static final Integer CANCER_334 = 128656; + + public static final Integer CANCER_335 = 128658; + + public static final Integer CANCER_336 = 128661; + + public static final Integer CANCER_337 = 128663; + + public static final Integer CANCER_338 = 128664; + + public static final Integer CANCER_339 = 128667; + + public static final Integer CANCER_340 = 128675; + + public static final Integer CANCER_341 = 128678; + + public static final Integer CANCER_342 = 128679; + + public static final Integer CANCER_343 = 128682; + + public static final Integer CANCER_344 = 128685; + + public static final Integer CANCER_345 = 128688; + + public static final Integer CANCER_346 = 128690; + + public static final Integer CANCER_347 = 128692; + + public static final Integer CANCER_348 = 128693; + + public static final Integer CANCER_349 = 128694; + + public static final Integer CANCER_350 = 128695; + + public static final Integer CANCER_351 = 128697; + + public static final Integer CANCER_352 = 128699; + + public static final Integer CANCER_353 = 128700; + + public static final Integer CANCER_354 = 128701; + + public static final Integer CANCER_355 = 128702; + + public static final Integer CANCER_356 = 128706; + + public static final Integer CANCER_357 = 128707; + + public static final Integer CANCER_358 = 128710; + + public static final Integer CANCER_359 = 128711; + + public static final Integer CANCER_360 = 128714; + + public static final Integer CANCER_361 = 128716; + + public static final Integer CANCER_362 = 128731; + + public static final Integer CANCER_363 = 128732; + + public static final Integer CANCER_364 = 128733; + + public static final Integer CANCER_365 = 128735; + + public static final Integer CANCER_366 = 128736; + + public static final Integer CANCER_367 = 128737; + + public static final Integer CANCER_368 = 128747; + + public static final Integer CANCER_369 = 128749; + + public static final Integer CANCER_370 = 128752; + + public static final Integer CANCER_371 = 128754; + + public static final Integer CANCER_372 = 128755; + + public static final Integer CANCER_373 = 128756; + + public static final Integer CANCER_374 = 128757; + + public static final Integer CANCER_375 = 128759; + + public static final Integer CANCER_376 = 128761; + + public static final Integer CANCER_377 = 128763; + + public static final Integer CANCER_378 = 128765; + + public static final Integer CANCER_379 = 128770; + + public static final Integer CANCER_380 = 128771; + + public static final Integer CANCER_381 = 128773; + + public static final Integer CANCER_382 = 128778; + + public static final Integer CANCER_383 = 128779; + + public static final Integer CANCER_384 = 128781; + + public static final Integer CANCER_385 = 128782; + + public static final Integer CANCER_386 = 128783; + + public static final Integer CANCER_387 = 128785; + + public static final Integer CANCER_388 = 128786; + + public static final Integer CANCER_389 = 128788; + + public static final Integer CANCER_390 = 128789; + + public static final Integer CANCER_391 = 128790; + + public static final Integer CANCER_392 = 128791; + + public static final Integer CANCER_393 = 128792; + + public static final Integer CANCER_394 = 128794; + + public static final Integer CANCER_395 = 128795; + + public static final Integer CANCER_396 = 128797; + + public static final Integer CANCER_397 = 128798; + + public static final Integer CANCER_398 = 128799; + + public static final Integer CANCER_399 = 128801; + + public static final Integer CANCER_400 = 128802; + + public static final Integer CANCER_401 = 128803; + + public static final Integer CANCER_402 = 128804; + + public static final Integer CANCER_403 = 128805; + + public static final Integer CANCER_404 = 128808; + + public static final Integer CANCER_405 = 128809; + + public static final Integer CANCER_406 = 128810; + + public static final Integer CANCER_407 = 128813; + + public static final Integer CANCER_408 = 128816; + + public static final Integer CANCER_409 = 128818; + + public static final Integer CANCER_410 = 128819; + + public static final Integer CANCER_411 = 128822; + + public static final Integer CANCER_412 = 128823; + + public static final Integer CANCER_413 = 128824; + + public static final Integer CANCER_414 = 128825; + + public static final Integer CANCER_415 = 128826; + + public static final Integer CANCER_416 = 128828; + + public static final Integer CANCER_417 = 128830; + + public static final Integer CANCER_418 = 128832; + + public static final Integer CANCER_419 = 128833; + + public static final Integer CANCER_420 = 128834; + + public static final Integer CANCER_421 = 128835; + + public static final Integer CANCER_422 = 128836; + + public static final Integer CANCER_423 = 128838; + + public static final Integer CANCER_424 = 128840; + + public static final Integer CANCER_425 = 128845; + + public static final Integer CANCER_426 = 128848; + + public static final Integer CANCER_427 = 128850; + + public static final Integer CANCER_428 = 128852; + + public static final Integer CANCER_429 = 128854; + + public static final Integer CANCER_430 = 128856; + + public static final Integer CANCER_431 = 128857; + + public static final Integer CANCER_432 = 128858; + + public static final Integer CANCER_433 = 128859; + + public static final Integer CANCER_434 = 128862; + + public static final Integer CANCER_435 = 128863; + + public static final Integer CANCER_436 = 128864; + + public static final Integer CANCER_437 = 128865; + + public static final Integer CANCER_438 = 128869; + + public static final Integer CANCER_439 = 128871; + + public static final Integer CANCER_440 = 128872; + + public static final Integer CANCER_441 = 128877; + + public static final Integer CANCER_442 = 128879; + + public static final Integer CANCER_443 = 128881; + + public static final Integer CANCER_444 = 128884; + + public static final Integer CANCER_445 = 128885; + + public static final Integer CANCER_446 = 128888; + + public static final Integer CANCER_447 = 128889; + + public static final Integer CANCER_448 = 128891; + + public static final Integer CANCER_449 = 128894; + + public static final Integer CANCER_450 = 128895; + + public static final Integer CANCER_451 = 128896; + + public static final Integer CANCER_452 = 128897; + + public static final Integer CANCER_453 = 128898; + + public static final Integer CANCER_454 = 128899; + + public static final Integer CANCER_455 = 128902; + + public static final Integer CANCER_456 = 128903; + + public static final Integer CANCER_457 = 128904; + + public static final Integer CANCER_458 = 128905; + + public static final Integer CANCER_459 = 128906; + + public static final Integer CANCER_460 = 128907; + + public static final Integer CANCER_461 = 128912; + + public static final Integer CANCER_462 = 128913; + + public static final Integer CANCER_463 = 128915; + + public static final Integer CANCER_464 = 128917; + + public static final Integer CANCER_465 = 128918; + + public static final Integer CANCER_466 = 128920; + + public static final Integer CANCER_467 = 128921; + + public static final Integer CANCER_468 = 128922; + + public static final Integer CANCER_469 = 128926; + + public static final Integer CANCER_470 = 128928; + + public static final Integer CANCER_471 = 128930; + + public static final Integer CANCER_472 = 128931; + + public static final Integer CANCER_473 = 128932; + + public static final Integer CANCER_474 = 128934; + + public static final Integer CANCER_475 = 128936; + + public static final Integer CANCER_476 = 128937; + + public static final Integer CANCER_477 = 128938; + + public static final Integer CANCER_478 = 128941; + + public static final Integer CANCER_479 = 128943; + + public static final Integer CANCER_480 = 128944; + + public static final Integer CANCER_481 = 128946; + + public static final Integer CANCER_482 = 128947; + + public static final Integer CANCER_483 = 128949; + + public static final Integer CANCER_484 = 128955; + + public static final Integer CANCER_485 = 128958; + + public static final Integer CANCER_486 = 128960; + + public static final Integer CANCER_487 = 128962; + + public static final Integer CANCER_488 = 128964; + + public static final Integer CANCER_489 = 128966; + + public static final Integer CANCER_490 = 128967; + + public static final Integer CANCER_491 = 128968; + + public static final Integer CANCER_492 = 128970; + + public static final Integer CANCER_493 = 128972; + + public static final Integer CANCER_494 = 128974; + + public static final Integer CANCER_495 = 128976; + + public static final Integer CANCER_496 = 128979; + + public static final Integer CANCER_497 = 128980; + + public static final Integer CANCER_498 = 128983; + + public static final Integer CANCER_499 = 128985; + + public static final Integer CANCER_500 = 128986; + + public static final Integer CANCER_501 = 128988; + + public static final Integer CANCER_502 = 128989; + + public static final Integer CANCER_503 = 128991; + + public static final Integer CANCER_504 = 128992; + + public static final Integer CANCER_505 = 128993; + + public static final Integer CANCER_506 = 128995; + + public static final Integer CANCER_507 = 128996; + + public static final Integer CANCER_508 = 128999; + + public static final Integer CANCER_509 = 129001; + + public static final Integer CANCER_510 = 129003; + + public static final Integer CANCER_511 = 129004; + + public static final Integer CANCER_512 = 129007; + + public static final Integer CANCER_513 = 129008; + + public static final Integer CANCER_514 = 129011; + + public static final Integer CANCER_515 = 129013; + + public static final Integer CANCER_516 = 129014; + + public static final Integer CANCER_517 = 129015; + + public static final Integer CANCER_518 = 129016; + + public static final Integer CANCER_519 = 129018; + + public static final Integer CANCER_520 = 129020; + + public static final Integer CANCER_521 = 129022; + + public static final Integer CANCER_522 = 129024; + + public static final Integer CANCER_523 = 129025; + + public static final Integer CANCER_524 = 129033; + + public static final Integer CANCER_525 = 129035; + + public static final Integer CANCER_526 = 129039; + + public static final Integer CANCER_527 = 129040; + + public static final Integer CANCER_528 = 129041; + + public static final Integer CANCER_529 = 129042; + + public static final Integer CANCER_530 = 129045; + + public static final Integer CANCER_531 = 129047; + + public static final Integer CANCER_532 = 129050; + + public static final Integer CANCER_533 = 129054; + + public static final Integer CANCER_534 = 129055; + + public static final Integer CANCER_535 = 129056; + + public static final Integer CANCER_536 = 129061; + + public static final Integer CANCER_537 = 129063; + + public static final Integer CANCER_538 = 129066; + + public static final Integer CANCER_539 = 129067; + + public static final Integer CANCER_540 = 129068; + + public static final Integer CANCER_541 = 129069; + + public static final Integer CANCER_542 = 129070; + + public static final Integer CANCER_543 = 129072; + + public static final Integer CANCER_544 = 129074; + + public static final Integer CANCER_545 = 129075; + + public static final Integer CANCER_546 = 129077; + + public static final Integer CANCER_547 = 129079; + + public static final Integer CANCER_548 = 129080; + + public static final Integer CANCER_549 = 129082; + + public static final Integer CANCER_550 = 129088; + + public static final Integer CANCER_551 = 129090; + + public static final Integer CANCER_552 = 130083; + + public static final Integer CANCER_553 = 131071; + + public static final Integer CANCER_554 = 131073; + + public static final Integer CANCER_555 = 133204; + + public static final Integer CANCER_556 = 133205; + + public static final Integer CANCER_557 = 133206; + + public static final Integer CANCER_558 = 133207; + + public static final Integer CANCER_559 = 133208; + + public static final Integer CANCER_560 = 133209; + + public static final Integer CANCER_561 = 133221; + + public static final Integer CANCER_562 = 133224; + + public static final Integer CANCER_563 = 133226; + + public static final Integer CANCER_564 = 133227; + + public static final Integer CANCER_565 = 133228; + + public static final Integer CANCER_566 = 133231; + + public static final Integer CANCER_567 = 133232; + + public static final Integer CANCER_568 = 133233; + + public static final Integer CANCER_569 = 133235; + + public static final Integer CANCER_570 = 133238; + + public static final Integer CANCER_571 = 133239; + + public static final Integer CANCER_572 = 133240; + + public static final Integer CANCER_573 = 133246; + + public static final Integer CANCER_574 = 133253; + + public static final Integer CANCER_575 = 133256; + + public static final Integer CANCER_576 = 133257; + + public static final Integer CANCER_577 = 133258; + + public static final Integer CANCER_578 = 133261; + + public static final Integer CANCER_579 = 133262; + + public static final Integer CANCER_580 = 133263; + + public static final Integer CANCER_581 = 133264; + + public static final Integer CANCER_582 = 133265; + + public static final Integer CANCER_583 = 133266; + + public static final Integer CANCER_584 = 133267; + + public static final Integer CANCER_585 = 133268; + + public static final Integer CANCER_586 = 133269; + + public static final Integer CANCER_587 = 133270; + + public static final Integer CANCER_588 = 133271; + + public static final Integer CANCER_589 = 133272; + + public static final Integer CANCER_590 = 133274; + + public static final Integer CANCER_591 = 133275; + + public static final Integer CANCER_592 = 133276; + + public static final Integer CANCER_593 = 133277; + + public static final Integer CANCER_594 = 133278; + + public static final Integer CANCER_595 = 133287; + + public static final Integer CANCER_596 = 133288; + + public static final Integer CANCER_597 = 133293; + + public static final Integer CANCER_598 = 133298; + + public static final Integer CANCER_599 = 133299; + + public static final Integer CANCER_600 = 133300; + + public static final Integer CANCER_601 = 133301; + + public static final Integer CANCER_602 = 133302; + + public static final Integer CANCER_603 = 133303; + + public static final Integer CANCER_604 = 133304; + + public static final Integer CANCER_605 = 133305; + + public static final Integer CANCER_606 = 133306; + + public static final Integer CANCER_607 = 133308; + + public static final Integer CANCER_608 = 133310; + + public static final Integer CANCER_609 = 133311; + + public static final Integer CANCER_610 = 133312; + + public static final Integer CANCER_611 = 133313; + + public static final Integer CANCER_612 = 133314; + + public static final Integer CANCER_613 = 133315; + + public static final Integer CANCER_614 = 133316; + + public static final Integer CANCER_615 = 133317; + + public static final Integer CANCER_616 = 133318; + + public static final Integer CANCER_617 = 133319; + + public static final Integer CANCER_618 = 133320; + + public static final Integer CANCER_619 = 133321; + + public static final Integer CANCER_620 = 133322; + + public static final Integer CANCER_621 = 133324; + + public static final Integer CANCER_622 = 133325; + + public static final Integer CANCER_623 = 133328; + + public static final Integer CANCER_624 = 133329; + + public static final Integer CANCER_625 = 133330; + + public static final Integer CANCER_626 = 133332; + + public static final Integer CANCER_627 = 133334; + + public static final Integer CANCER_628 = 133335; + + public static final Integer CANCER_629 = 133336; + + public static final Integer CANCER_630 = 133339; + + public static final Integer CANCER_631 = 133340; + + public static final Integer CANCER_632 = 133341; + + public static final Integer CANCER_633 = 133342; + + public static final Integer CANCER_634 = 133343; + + public static final Integer CANCER_635 = 133344; + + public static final Integer CANCER_636 = 133345; + + public static final Integer CANCER_637 = 133346; + + public static final Integer CANCER_638 = 133347; + + public static final Integer CANCER_639 = 133349; + + public static final Integer CANCER_640 = 133350; + + public static final Integer CANCER_641 = 133351; + + public static final Integer CANCER_642 = 133352; + + public static final Integer CANCER_643 = 133353; + + public static final Integer CANCER_644 = 133354; + + public static final Integer CANCER_645 = 133356; + + public static final Integer CANCER_646 = 133357; + + public static final Integer CANCER_647 = 133359; + + public static final Integer CANCER_648 = 133360; + + public static final Integer CANCER_649 = 133361; + + public static final Integer CANCER_650 = 133362; + + public static final Integer CANCER_651 = 133363; + + public static final Integer CANCER_652 = 133365; + + public static final Integer CANCER_653 = 134244; + + public static final Integer CANCER_654 = 134756; + + public static final Integer CANCER_655 = 134828; + + public static final Integer CANCER_656 = 134841; + + public static final Integer CANCER_657 = 134890; + + public static final Integer CANCER_658 = 134892; + + public static final Integer CANCER_659 = 135011; + + public static final Integer CANCER_660 = 135012; + + public static final Integer CANCER_661 = 135014; + + public static final Integer CANCER_662 = 135015; + + public static final Integer CANCER_663 = 135017; + + public static final Integer CANCER_664 = 135018; + + public static final Integer CANCER_665 = 135019; + + public static final Integer CANCER_666 = 135020; + + public static final Integer CANCER_667 = 135021; + + public static final Integer CANCER_668 = 135023; + + public static final Integer CANCER_669 = 135025; + + public static final Integer CANCER_670 = 135026; + + public static final Integer CANCER_671 = 135027; + + public static final Integer CANCER_672 = 135031; + + public static final Integer CANCER_673 = 135034; + + public static final Integer CANCER_674 = 135035; + + public static final Integer CANCER_675 = 135036; + + public static final Integer CANCER_676 = 135037; + + public static final Integer CANCER_677 = 135043; + + public static final Integer CANCER_678 = 135045; + + public static final Integer CANCER_679 = 135046; + + public static final Integer CANCER_680 = 135047; + + public static final Integer CANCER_681 = 135048; + + public static final Integer CANCER_682 = 135049; + + public static final Integer CANCER_683 = 135050; + + public static final Integer CANCER_684 = 135051; + + public static final Integer CANCER_685 = 135052; + + public static final Integer CANCER_686 = 135054; + + public static final Integer CANCER_687 = 135055; + + public static final Integer CANCER_688 = 135056; + + public static final Integer CANCER_689 = 135057; + + public static final Integer CANCER_690 = 135059; + + public static final Integer CANCER_691 = 135061; + + public static final Integer CANCER_692 = 135062; + + public static final Integer CANCER_693 = 135063; + + public static final Integer CANCER_694 = 135064; + + public static final Integer CANCER_695 = 135066; + + public static final Integer CANCER_696 = 135067; + + public static final Integer CANCER_697 = 135087; + + public static final Integer CANCER_698 = 135089; + + public static final Integer CANCER_699 = 135090; + + public static final Integer CANCER_700 = 135091; + + public static final Integer CANCER_701 = 135092; + + public static final Integer CANCER_702 = 135093; + + public static final Integer CANCER_703 = 135095; + + public static final Integer CANCER_704 = 135096; + + public static final Integer CANCER_705 = 135097; + + public static final Integer CANCER_706 = 135098; + + public static final Integer CANCER_707 = 135099; + + public static final Integer CANCER_708 = 135100; + + public static final Integer CANCER_709 = 135102; + + public static final Integer CANCER_710 = 135103; + + public static final Integer CANCER_711 = 135104; + + public static final Integer CANCER_712 = 135105; + + public static final Integer CANCER_713 = 135106; + + public static final Integer CANCER_714 = 135108; + + public static final Integer CANCER_715 = 135109; + + public static final Integer CANCER_716 = 135110; + + public static final Integer CANCER_717 = 135112; + + public static final Integer CANCER_718 = 135113; + + public static final Integer CANCER_719 = 135114; + + public static final Integer CANCER_720 = 135115; + + public static final Integer CANCER_721 = 135116; + + public static final Integer CANCER_722 = 135117; + + public static final Integer CANCER_723 = 135118; + + public static final Integer CANCER_724 = 135122; + + public static final Integer CANCER_725 = 135125; + + public static final Integer CANCER_726 = 135126; + + public static final Integer CANCER_727 = 135127; + + public static final Integer CANCER_728 = 135129; + + public static final Integer CANCER_729 = 135130; + + public static final Integer CANCER_730 = 135132; + + public static final Integer CANCER_731 = 135134; + + public static final Integer CANCER_732 = 135136; + + public static final Integer CANCER_733 = 135137; + + public static final Integer CANCER_734 = 135139; + + public static final Integer CANCER_735 = 135140; + + public static final Integer CANCER_736 = 135141; + + public static final Integer CANCER_737 = 135144; + + public static final Integer CANCER_738 = 135145; + + public static final Integer CANCER_739 = 135146; + + public static final Integer CANCER_740 = 135151; + + public static final Integer CANCER_741 = 135153; + + public static final Integer CANCER_742 = 135156; + + public static final Integer CANCER_743 = 135157; + + public static final Integer CANCER_744 = 135158; + + public static final Integer CANCER_745 = 135159; + + public static final Integer CANCER_746 = 135160; + + public static final Integer CANCER_747 = 135161; + + public static final Integer CANCER_748 = 135163; + + public static final Integer CANCER_749 = 135164; + + public static final Integer CANCER_750 = 135165; + + public static final Integer CANCER_751 = 135166; + + public static final Integer CANCER_752 = 135167; + + public static final Integer CANCER_753 = 135170; + + public static final Integer CANCER_754 = 135172; + + public static final Integer CANCER_755 = 135173; + + public static final Integer CANCER_756 = 135174; + + public static final Integer CANCER_757 = 135175; + + public static final Integer CANCER_758 = 135176; + + public static final Integer CANCER_759 = 135179; + + public static final Integer CANCER_760 = 135181; + + public static final Integer CANCER_761 = 135183; + + public static final Integer CANCER_762 = 135186; + + public static final Integer CANCER_763 = 135187; + + public static final Integer CANCER_764 = 135194; + + public static final Integer CANCER_765 = 135196; + + public static final Integer CANCER_766 = 135197; + + public static final Integer CANCER_767 = 135198; + + public static final Integer CANCER_768 = 135199; + + public static final Integer CANCER_769 = 135201; + + public static final Integer CANCER_770 = 135204; + + public static final Integer CANCER_771 = 135206; + + public static final Integer CANCER_772 = 135207; + + public static final Integer CANCER_773 = 135208; + + public static final Integer CANCER_774 = 135209; + + public static final Integer CANCER_775 = 135210; + + public static final Integer CANCER_776 = 135211; + + public static final Integer CANCER_777 = 135212; + + public static final Integer CANCER_778 = 135213; + + public static final Integer CANCER_779 = 135214; + + public static final Integer CANCER_780 = 135215; + + public static final Integer CANCER_781 = 135216; + + public static final Integer CANCER_782 = 135217; + + public static final Integer CANCER_783 = 135218; + + public static final Integer CANCER_784 = 135219; + + public static final Integer CANCER_785 = 135220; + + public static final Integer CANCER_786 = 135222; + + public static final Integer CANCER_787 = 135223; + + public static final Integer CANCER_788 = 135224; + + public static final Integer CANCER_789 = 135225; + + public static final Integer CANCER_790 = 135226; + + public static final Integer CANCER_791 = 135228; + + public static final Integer CANCER_792 = 135229; + + public static final Integer CANCER_793 = 135230; + + public static final Integer CANCER_794 = 135231; + + public static final Integer CANCER_795 = 137768; + + public static final Integer CANCER_796 = 138309; + + public static final Integer CANCER_797 = 138576; + + public static final Integer CANCER_798 = 138924; + + public static final Integer CANCER_799 = 139194; + + public static final Integer CANCER_800 = 139477; + + public static final Integer CANCER_801 = 140220; + + public static final Integer CANCER_802 = 140235; + + public static final Integer CANCER_803 = 140532; + + public static final Integer CANCER_804 = 141953; + + public static final Integer CANCER_805 = 141957; + + public static final Integer CANCER_806 = 142031; + + public static final Integer CANCER_807 = 142032; + + public static final Integer CANCER_808 = 147435; + + public static final Integer CANCER_809 = 147443; + + public static final Integer CANCER_810 = 147450; + + public static final Integer CANCER_811 = 147582; + + public static final Integer CANCER_812 = 147583; + + public static final Integer CANCER_813 = 147584; + + public static final Integer CANCER_814 = 147585; + + public static final Integer CANCER_815 = 147586; + + public static final Integer CANCER_816 = 147587; + + public static final Integer CANCER_817 = 147588; + + public static final Integer CANCER_818 = 147589; + + public static final Integer CANCER_819 = 147593; + + public static final Integer CANCER_820 = 147594; + + public static final Integer CANCER_821 = 147595; + + public static final Integer CANCER_822 = 147598; + + public static final Integer CANCER_823 = 147599; + + public static final Integer CANCER_824 = 147600; + + public static final Integer CANCER_825 = 147601; + + public static final Integer CANCER_826 = 147603; + + public static final Integer CANCER_827 = 147604; + + public static final Integer CANCER_828 = 147606; + + public static final Integer CANCER_829 = 147607; + + public static final Integer CANCER_830 = 147608; + + public static final Integer CANCER_831 = 147613; + + public static final Integer CANCER_832 = 147614; + + public static final Integer CANCER_833 = 147615; + + public static final Integer CANCER_834 = 147619; + + public static final Integer CANCER_835 = 147620; + + public static final Integer CANCER_836 = 147621; + + public static final Integer CANCER_837 = 147622; + + public static final Integer CANCER_838 = 147623; + + public static final Integer CANCER_839 = 147624; + + public static final Integer CANCER_840 = 147625; + + public static final Integer CANCER_841 = 147626; + + public static final Integer CANCER_842 = 147627; + + public static final Integer CANCER_843 = 147629; + + public static final Integer CANCER_844 = 147630; + + public static final Integer CANCER_845 = 147631; + + public static final Integer CANCER_846 = 147632; + + public static final Integer CANCER_847 = 147633; + + public static final Integer CANCER_848 = 147639; + + public static final Integer CANCER_849 = 147640; + + public static final Integer CANCER_850 = 147641; + + public static final Integer CANCER_851 = 147642; + + public static final Integer CANCER_852 = 147643; + + public static final Integer CANCER_853 = 147644; + + public static final Integer CANCER_854 = 147646; + + public static final Integer CANCER_855 = 147647; + + public static final Integer CANCER_856 = 147648; + + public static final Integer CANCER_857 = 147649; + + public static final Integer CANCER_858 = 147650; + + public static final Integer CANCER_859 = 147651; + + public static final Integer CANCER_860 = 147652; + + public static final Integer CANCER_861 = 147653; + + public static final Integer CANCER_862 = 147654; + + public static final Integer CANCER_863 = 147655; + + public static final Integer CANCER_864 = 147656; + + public static final Integer CANCER_865 = 147657; + + public static final Integer CANCER_866 = 147658; + + public static final Integer CANCER_867 = 147659; + + public static final Integer CANCER_868 = 147660; + + public static final Integer CANCER_869 = 147661; + + public static final Integer CANCER_870 = 147662; + + public static final Integer CANCER_871 = 147663; + + public static final Integer CANCER_872 = 147664; + + public static final Integer CANCER_873 = 147665; + + public static final Integer CANCER_874 = 147666; + + public static final Integer CANCER_875 = 147667; + + public static final Integer CANCER_876 = 147668; + + public static final Integer CANCER_877 = 147669; + + public static final Integer CANCER_878 = 147670; + + public static final Integer CANCER_879 = 147671; + + public static final Integer CANCER_880 = 147672; + + public static final Integer CANCER_881 = 147673; + + public static final Integer CANCER_882 = 147674; + + public static final Integer CANCER_883 = 147675; + + public static final Integer CANCER_884 = 147676; + + public static final Integer CANCER_885 = 147677; + + public static final Integer CANCER_886 = 147678; + + public static final Integer CANCER_887 = 147679; + + public static final Integer CANCER_888 = 147680; + + public static final Integer CANCER_889 = 147681; + + public static final Integer CANCER_890 = 147682; + + public static final Integer CANCER_891 = 147683; + + public static final Integer CANCER_892 = 147684; + + public static final Integer CANCER_893 = 147685; + + public static final Integer CANCER_894 = 147686; + + public static final Integer CANCER_895 = 147687; + + public static final Integer CANCER_896 = 147688; + + public static final Integer CANCER_897 = 147689; + + public static final Integer CANCER_898 = 147690; + + public static final Integer CANCER_899 = 147691; + + public static final Integer CANCER_900 = 147692; + + public static final Integer CANCER_901 = 147693; + + public static final Integer CANCER_902 = 147694; + + public static final Integer CANCER_903 = 147695; + + public static final Integer CANCER_904 = 147696; + + public static final Integer CANCER_905 = 147698; + + public static final Integer CANCER_906 = 147699; + + public static final Integer CANCER_907 = 147700; + + public static final Integer CANCER_908 = 147708; + + public static final Integer CANCER_909 = 147716; + + public static final Integer CANCER_910 = 147717; + + public static final Integer CANCER_911 = 147718; + + public static final Integer CANCER_912 = 147720; + + public static final Integer CANCER_913 = 147725; + + public static final Integer CANCER_914 = 147726; + + public static final Integer CANCER_915 = 147728; + + public static final Integer CANCER_916 = 147729; + + public static final Integer CANCER_917 = 147730; + + public static final Integer CANCER_918 = 147742; + + public static final Integer CANCER_919 = 147743; + + public static final Integer CANCER_920 = 147746; + + public static final Integer CANCER_921 = 147748; + + public static final Integer CANCER_922 = 147750; + + public static final Integer CANCER_923 = 147751; + + public static final Integer CANCER_924 = 147752; + + public static final Integer CANCER_925 = 147753; + + public static final Integer CANCER_926 = 147757; + + public static final Integer CANCER_927 = 147758; + + public static final Integer CANCER_928 = 147759; + + public static final Integer CANCER_929 = 147760; + + public static final Integer CANCER_930 = 147761; + + public static final Integer CANCER_931 = 147762; + + public static final Integer CANCER_932 = 147763; + + public static final Integer CANCER_933 = 147764; + + public static final Integer CANCER_934 = 147765; + + public static final Integer CANCER_935 = 147766; + + public static final Integer CANCER_936 = 147775; + + public static final Integer CANCER_937 = 147776; + + public static final Integer CANCER_938 = 147777; + + public static final Integer CANCER_939 = 147778; + + public static final Integer CANCER_940 = 147779; + + public static final Integer CANCER_941 = 147780; + + public static final Integer CANCER_942 = 147781; + + public static final Integer CANCER_943 = 147786; + + public static final Integer CANCER_944 = 147787; + + public static final Integer CANCER_945 = 147788; + + public static final Integer CANCER_946 = 147789; + + public static final Integer CANCER_947 = 147790; + + public static final Integer CANCER_948 = 147791; + + public static final Integer CANCER_949 = 147792; + + public static final Integer CANCER_950 = 147793; + + public static final Integer CANCER_951 = 147794; + + public static final Integer CANCER_952 = 147795; + + public static final Integer CANCER_953 = 147796; + + public static final Integer CANCER_954 = 147797; + + public static final Integer CANCER_955 = 147798; + + public static final Integer CANCER_956 = 147800; + + public static final Integer CANCER_957 = 147801; + + public static final Integer CANCER_958 = 147802; + + public static final Integer CANCER_959 = 147803; + + public static final Integer CANCER_960 = 147804; + + public static final Integer CANCER_961 = 147805; + + public static final Integer CANCER_962 = 147807; + + public static final Integer CANCER_963 = 147808; + + public static final Integer CANCER_964 = 147809; + + public static final Integer CANCER_965 = 147810; + + public static final Integer CANCER_966 = 147811; + + public static final Integer CANCER_967 = 147812; + + public static final Integer CANCER_968 = 147813; + + public static final Integer CANCER_969 = 147818; + + public static final Integer CANCER_970 = 147822; + + public static final Integer CANCER_971 = 147823; + + public static final Integer CANCER_972 = 147824; + + public static final Integer CANCER_973 = 147825; + + public static final Integer CANCER_974 = 147826; + + public static final Integer CANCER_975 = 147827; + + public static final Integer CANCER_976 = 147828; + + public static final Integer CANCER_977 = 147829; + + public static final Integer CANCER_978 = 147830; + + public static final Integer CANCER_979 = 147831; + + public static final Integer CANCER_980 = 147832; + + public static final Integer CANCER_981 = 147833; + + public static final Integer CANCER_982 = 147834; + + public static final Integer CANCER_983 = 147835; + + public static final Integer CANCER_984 = 147836; + + public static final Integer CANCER_985 = 147838; + + public static final Integer CANCER_986 = 147840; + + public static final Integer CANCER_987 = 147845; + + public static final Integer CANCER_988 = 147846; + + public static final Integer CANCER_989 = 147847; + + public static final Integer CANCER_990 = 147852; + + public static final Integer CANCER_991 = 147853; + + public static final Integer CANCER_992 = 147854; + + public static final Integer CANCER_993 = 147855; + + public static final Integer CANCER_994 = 147856; + + public static final Integer CANCER_995 = 147857; + + public static final Integer CANCER_996 = 147858; + + public static final Integer CANCER_997 = 147860; + + public static final Integer CANCER_998 = 147862; + + public static final Integer CANCER_999 = 147864; + + public static final Integer CANCER_1000 = 147865; + + public static final Integer CANCER_1001 = 147866; + + public static final Integer CANCER_1002 = 147867; + + public static final Integer CANCER_1003 = 147870; + + public static final Integer CANCER_1004 = 147871; + + public static final Integer CANCER_1005 = 147905; + + public static final Integer CANCER_1006 = 149138; + + public static final Integer CANCER_1007 = 151185; + + public static final Integer CANCER_1008 = 151284; + + public static final Integer CANCER_1009 = 151285; + + public static final Integer CANCER_1010 = 151286; + + public static final Integer CANCER_1011 = 151519; + + public static final Integer CANCER_1012 = 151520; + + public static final Integer CANCER_1013 = 151521; + + public static final Integer CANCER_1014 = 151828; + + public static final Integer CANCER_1015 = 152199; + + public static final Integer CANCER_1016 = 152200; + + public static final Integer CANCER_1017 = 152201; + + public static final Integer CANCER_1018 = 152205; + + public static final Integer CANCER_1019 = 152207; + + public static final Integer CANCER_1020 = 152274; + + public static final Integer CANCER_1021 = 152445; + + public static final Integer CANCER_1022 = 152449; + + public static final Integer CANCER_1023 = 152458; + + public static final Integer CANCER_1024 = 152491; + + public static final Integer CANCER_1025 = 152506; + + public static final Integer CANCER_1026 = 152838; + + public static final Integer CANCER_1027 = 152986; + + public static final Integer CANCER_1028 = 153245; + + public static final Integer CANCER_1029 = 153387; + + public static final Integer CANCER_1030 = 153616; + + public static final Integer CANCER_1031 = 154235; + + public static final Integer CANCER_1032 = 155259; + + public static final Integer CANCER_1033 = 155261; + + public static final Integer CANCER_1034 = 155262; + + public static final Integer CANCER_1035 = 155263; + + public static final Integer CANCER_1036 = 155264; + + public static final Integer CANCER_1037 = 155265; + + public static final Integer CANCER_1038 = 155266; + + public static final Integer CANCER_1039 = 155267; + + public static final Integer CANCER_1040 = 155268; + + public static final Integer CANCER_1041 = 155269; + + public static final Integer CANCER_1042 = 155270; + + public static final Integer CANCER_1043 = 155271; + + public static final Integer CANCER_1044 = 155272; + + public static final Integer CANCER_1045 = 155273; + + public static final Integer CANCER_1046 = 155274; + + public static final Integer CANCER_1047 = 155275; + + public static final Integer CANCER_1048 = 155276; + + public static final Integer CANCER_1049 = 155325; + + public static final Integer CANCER_1050 = 156273; + + public static final Integer CANCER_1051 = 156274; + + public static final Integer CANCER_1052 = 156300; + + public static final Integer CANCER_1053 = 156645; + + public static final Integer CANCER_1054 = 156646; + + public static final Integer CANCER_1055 = 156672; + + public static final Integer CANCER_1056 = 157564; + + public static final Integer CANCER_1057 = 157584; + + public static final Integer CANCER_1058 = 157585; + + public static final Integer CANCER_1059 = 157586; + + public static final Integer CANCER_1060 = 157587; + + public static final Integer CANCER_1061 = 157588; + + public static final Integer CANCER_1062 = 157589; + + public static final Integer CANCER_1063 = 157590; + + public static final Integer CANCER_1064 = 157591; + + public static final Integer CANCER_1065 = 157592; + + public static final Integer CANCER_1066 = 157593; + + public static final Integer CANCER_1067 = 157594; + + public static final Integer CANCER_1068 = 157595; + + public static final Integer CANCER_1069 = 157596; + + public static final Integer CANCER_1070 = 157597; + + public static final Integer CANCER_1071 = 157598; + + public static final Integer CANCER_1072 = 157599; + + public static final Integer CANCER_1073 = 157600; + + public static final Integer CANCER_1074 = 157601; + + public static final Integer CANCER_1075 = 157602; + + public static final Integer CANCER_1076 = 157603; + + public static final Integer CANCER_1077 = 157604; + + public static final Integer CANCER_1078 = 157605; + + public static final Integer CANCER_1079 = 157606; + + public static final Integer CANCER_1080 = 157607; + + public static final Integer CANCER_1081 = 157608; + + public static final Integer CANCER_1082 = 157609; + + public static final Integer CANCER_1083 = 157610; + + public static final Integer CANCER_1084 = 157611; + + public static final Integer CANCER_1085 = 157612; + + public static final Integer CANCER_1086 = 157613; + + public static final Integer CANCER_1087 = 157614; + + public static final Integer CANCER_1088 = 157615; + + public static final Integer CANCER_1089 = 157616; + + public static final Integer CANCER_1090 = 157617; + + public static final Integer CANCER_1091 = 157618; + + public static final Integer CANCER_1092 = 157619; + + public static final Integer CANCER_1093 = 157620; + + public static final Integer CANCER_1094 = 157621; + + public static final Integer CANCER_1095 = 157622; + + public static final Integer CANCER_1096 = 157623; + + public static final Integer CANCER_1097 = 157624; + + public static final Integer CANCER_1098 = 157625; + + public static final Integer CANCER_1099 = 157626; + + public static final Integer CANCER_1100 = 157627; + + public static final Integer CANCER_1101 = 157628; + + public static final Integer CANCER_1102 = 157629; + + public static final Integer CANCER_1103 = 157630; + + public static final Integer CANCER_1104 = 157631; + + public static final Integer CANCER_1105 = 157632; + + public static final Integer CANCER_1106 = 157633; + + public static final Integer CANCER_1107 = 157634; + + public static final Integer CANCER_1108 = 157635; + + public static final Integer CANCER_1109 = 157636; + + public static final Integer CANCER_1110 = 157637; + + public static final Integer CANCER_1111 = 157638; + + public static final Integer CANCER_1112 = 157639; + + public static final Integer CANCER_1113 = 157640; + + public static final Integer CANCER_1114 = 157641; + + public static final Integer CANCER_1115 = 157642; + + public static final Integer CANCER_1116 = 157643; + + public static final Integer CANCER_1117 = 157644; + + public static final Integer CANCER_1118 = 157645; + + public static final Integer CANCER_1119 = 157646; + + public static final Integer CANCER_1120 = 157838; + + public static final Integer CANCER_1121 = 157909; + + public static final Integer CANCER_1122 = 157910; + + public static final Integer CANCER_1123 = 157911; + + public static final Integer CANCER_1124 = 157912; + + public static final Integer CANCER_1125 = 157913; + + public static final Integer CANCER_1126 = 157914; + + public static final Integer CANCER_1127 = 157915; + + public static final Integer CANCER_1128 = 157916; + + public static final Integer CANCER_1129 = 157917; + + public static final Integer CANCER_1130 = 157918; + + public static final Integer CANCER_1131 = 157919; + + public static final Integer CANCER_1132 = 157920; + + public static final Integer CANCER_1133 = 157921; + + public static final Integer CANCER_1134 = 157922; + + public static final Integer CANCER_1135 = 157923; + + public static final Integer CANCER_1136 = 157924; + + public static final Integer CANCER_1137 = 157925; + + public static final Integer CANCER_1138 = 157926; + + public static final Integer CANCER_1139 = 157927; + + public static final Integer CANCER_1140 = 157928; + + public static final Integer CANCER_1141 = 157929; + + public static final Integer CANCER_1142 = 157930; + + public static final Integer CANCER_1143 = 157931; + + public static final Integer CANCER_1144 = 157932; + + public static final Integer CANCER_1145 = 157933; + + public static final Integer CANCER_1146 = 157934; + + public static final Integer CANCER_1147 = 157935; + + public static final Integer CANCER_1148 = 157936; + + public static final Integer CANCER_1149 = 157937; + + public static final Integer CANCER_1150 = 157938; + + public static final Integer CANCER_1151 = 157939; + + public static final Integer CANCER_1152 = 157940; + + public static final Integer CANCER_1153 = 157941; + + public static final Integer CANCER_1154 = 157942; + + public static final Integer CANCER_1155 = 157943; + + public static final Integer CANCER_1156 = 157944; + + public static final Integer CANCER_1157 = 157945; + + public static final Integer CANCER_1158 = 157946; + + public static final Integer CANCER_1159 = 157947; + + public static final Integer CANCER_1160 = 157948; + + public static final Integer CANCER_1161 = 157949; + + public static final Integer CANCER_1162 = 157950; + + public static final Integer CANCER_1163 = 157951; + + public static final Integer CANCER_1164 = 157952; + + public static final Integer CANCER_1165 = 157953; + + public static final Integer CANCER_1166 = 157954; + + public static final Integer CANCER_1167 = 157955; + + public static final Integer CANCER_1168 = 157956; + + public static final Integer CANCER_1169 = 157957; + + public static final Integer CANCER_1170 = 157958; + + public static final Integer CANCER_1171 = 157959; + + public static final Integer CANCER_1172 = 157960; + + public static final Integer CANCER_1173 = 157961; + + public static final Integer CANCER_1174 = 157962; + + public static final Integer CANCER_1175 = 157963; + + public static final Integer CANCER_1176 = 157964; + + public static final Integer CANCER_1177 = 157965; + + public static final Integer CANCER_1178 = 157966; + + public static final Integer CANCER_1179 = 157967; + + public static final Integer CANCER_1180 = 157968; + + public static final Integer CANCER_1181 = 157969; + + public static final Integer CANCER_1182 = 157970; + + public static final Integer CANCER_1183 = 157971; + + public static final Integer CANCER_1184 = 158158; + + public static final Integer CANCER_1185 = 158255; + + public static final Integer CANCER_1186 = 158316; + + public static final Integer CANCER_1187 = 158373; + + public static final Integer CANCER_1188 = 158524; + + public static final Integer CANCER_1189 = 158525; + + public static final Integer CANCER_1190 = 158526; + + public static final Integer CANCER_1191 = 158527; + + public static final Integer CANCER_1192 = 158528; + + public static final Integer CANCER_1193 = 158529; + + public static final Integer CANCER_1194 = 158531; + + public static final Integer CANCER_1195 = 158532; + + public static final Integer CANCER_1196 = 158533; + + public static final Integer CANCER_1197 = 158738; + + public static final Integer CANCER_1198 = 158739; + + public static final Integer CANCER_1199 = 158740; + + public static final Integer CANCER_1200 = 158741; + + public static final Integer CANCER_1201 = 158742; + + public static final Integer CANCER_1202 = 158743; + + public static final Integer CANCER_1203 = 158744; + + public static final Integer CANCER_1204 = 158745; + + public static final Integer CANCER_1205 = 158746; + + public static final Integer CANCER_1206 = 158747; + + public static final Integer CANCER_1207 = 159349; + + public static final Integer CANCER_1208 = 159351; + + public static final Integer CANCER_1209 = 159988; + + public static final Integer CANCER_1210 = 160209; + + public static final Integer CANCER_1211 = 161892; + + public static final Integer CANCER_1212 = 161893; + + public static final Integer CANCER_1213 = 161894; + + public static final Integer CANCER_1214 = 161895; + + public static final Integer CANCER_1215 = 162236; + + public static final Integer CANCER_1216 = 163865; + + public static final Integer CANCER_1217 = 163880; + + public static final Integer CANCER_1218 = 164664; + + public static final Integer CANCER_1219 = 164666; + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java new file mode 100644 index 0000000000..956668314e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java @@ -0,0 +1,377 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +public class OtherBitesDiagnosisConstants { + + public static final Integer OTHER_BITES1 = 168; + + public static final Integer OTHER_BITES2 = 1715; + + public static final Integer OTHER_BITES3 = 110534; + + public static final Integer OTHER_BITES4 = 111557; + + public static final Integer OTHER_BITES5 = 113936; + + public static final Integer OTHER_BITES6 = 113937; + + public static final Integer OTHER_BITES7 = 113940; + + public static final Integer OTHER_BITES8 = 114019; + + public static final Integer OTHER_BITES9 = 114060; + + public static final Integer OTHER_BITES10 = 114061; + + public static final Integer OTHER_BITES11 = 114795; + + public static final Integer OTHER_BITES12 = 114994; + + public static final Integer OTHER_BITES13 = 115141; + + public static final Integer OTHER_BITES14 = 115142; + + public static final Integer OTHER_BITES15 = 115143; + + public static final Integer OTHER_BITES16 = 116755; + + public static final Integer OTHER_BITES17 = 116756; + + public static final Integer OTHER_BITES18 = 116757; + + public static final Integer OTHER_BITES19 = 116758; + + public static final Integer OTHER_BITES20 = 116759; + + public static final Integer OTHER_BITES21 = 117004; + + public static final Integer OTHER_BITES22 = 117173; + + public static final Integer OTHER_BITES23 = 117484; + + public static final Integer OTHER_BITES24 = 117489; + + public static final Integer OTHER_BITES25 = 119760; + + public static final Integer OTHER_BITES26 = 121115; + + public static final Integer OTHER_BITES27 = 121116; + + public static final Integer OTHER_BITES28 = 121557; + + public static final Integer OTHER_BITES29 = 121561; + + public static final Integer OTHER_BITES30 = 121605; + + public static final Integer OTHER_BITES31 = 123213; + + public static final Integer OTHER_BITES32 = 123752; + + public static final Integer OTHER_BITES33 = 124538; + + public static final Integer OTHER_BITES34 = 124539; + + public static final Integer OTHER_BITES35 = 124670; + + public static final Integer OTHER_BITES36 = 125422; + + public static final Integer OTHER_BITES37 = 126210; + + public static final Integer OTHER_BITES38 = 126273; + + public static final Integer OTHER_BITES39 = 127886; + + public static final Integer OTHER_BITES40 = 127887; + + public static final Integer OTHER_BITES41 = 127902; + + public static final Integer OTHER_BITES42 = 127903; + + public static final Integer OTHER_BITES43 = 129590; + + public static final Integer OTHER_BITES44 = 129598; + + public static final Integer OTHER_BITES45 = 129609; + + public static final Integer OTHER_BITES46 = 129610; + + public static final Integer OTHER_BITES47 = 132685; + + public static final Integer OTHER_BITES48 = 132686; + + public static final Integer OTHER_BITES49 = 132687; + + public static final Integer OTHER_BITES50 = 132688; + + public static final Integer OTHER_BITES51 = 132689; + + public static final Integer OTHER_BITES52 = 132690; + + public static final Integer OTHER_BITES53 = 132691; + + public static final Integer OTHER_BITES54 = 132692; + + public static final Integer OTHER_BITES55 = 132693; + + public static final Integer OTHER_BITES56 = 132694; + + public static final Integer OTHER_BITES57 = 132696; + + public static final Integer OTHER_BITES58 = 132697; + + public static final Integer OTHER_BITES59 = 132698; + + public static final Integer OTHER_BITES60 = 132699; + + public static final Integer OTHER_BITES61 = 132700; + + public static final Integer OTHER_BITES62 = 132701; + + public static final Integer OTHER_BITES63 = 132702; + + public static final Integer OTHER_BITES64 = 132703; + + public static final Integer OTHER_BITES65 = 132704; + + public static final Integer OTHER_BITES66 = 132705; + + public static final Integer OTHER_BITES67 = 132706; + + public static final Integer OTHER_BITES68 = 132707; + + public static final Integer OTHER_BITES69 = 132708; + + public static final Integer OTHER_BITES70 = 132709; + + public static final Integer OTHER_BITES71 = 132710; + + public static final Integer OTHER_BITES72 = 132711; + + public static final Integer OTHER_BITES73 = 132712; + + public static final Integer OTHER_BITES74 = 132713; + + public static final Integer OTHER_BITES75 = 132714; + + public static final Integer OTHER_BITES76 = 132715; + + public static final Integer OTHER_BITES77 = 132716; + + public static final Integer OTHER_BITES78 = 132717; + + public static final Integer OTHER_BITES79 = 132718; + + public static final Integer OTHER_BITES80 = 132719; + + public static final Integer OTHER_BITES81 = 132721; + + public static final Integer OTHER_BITES82 = 132722; + + public static final Integer OTHER_BITES83 = 132723; + + public static final Integer OTHER_BITES84 = 132724; + + public static final Integer OTHER_BITES85 = 132725; + + public static final Integer OTHER_BITES86 = 132726; + + public static final Integer OTHER_BITES87 = 132727; + + public static final Integer OTHER_BITES88 = 132728; + + public static final Integer OTHER_BITES89 = 132729; + + public static final Integer OTHER_BITES90 = 132730; + + public static final Integer OTHER_BITES91 = 132731; + + public static final Integer OTHER_BITES92 = 132732; + + public static final Integer OTHER_BITES93 = 132733; + + public static final Integer OTHER_BITES94 = 132734; + + public static final Integer OTHER_BITES95 = 132735; + + public static final Integer OTHER_BITES96 = 132736; + + public static final Integer OTHER_BITES97 = 132737; + + public static final Integer OTHER_BITES98 = 132738; + + public static final Integer OTHER_BITES99 = 132739; + + public static final Integer OTHER_BITES100 = 132740; + + public static final Integer OTHER_BITES101 = 132741; + + public static final Integer OTHER_BITES102 = 132742; + + public static final Integer OTHER_BITES103 = 132743; + + public static final Integer OTHER_BITES104 = 132744; + + public static final Integer OTHER_BITES105 = 132745; + + public static final Integer OTHER_BITES106 = 132746; + + public static final Integer OTHER_BITES107 = 132747; + + public static final Integer OTHER_BITES108 = 132748; + + public static final Integer OTHER_BITES109 = 132749; + + public static final Integer OTHER_BITES110 = 132750; + + public static final Integer OTHER_BITES111 = 132751; + + public static final Integer OTHER_BITES112 = 132752; + + public static final Integer OTHER_BITES113 = 132753; + + public static final Integer OTHER_BITES114 = 132754; + + public static final Integer OTHER_BITES115 = 132755; + + public static final Integer OTHER_BITES116 = 132756; + + public static final Integer OTHER_BITES117 = 132757; + + public static final Integer OTHER_BITES118 = 132758; + + public static final Integer OTHER_BITES119 = 132759; + + public static final Integer OTHER_BITES120 = 132760; + + public static final Integer OTHER_BITES121 = 132761; + + public static final Integer OTHER_BITES122 = 132762; + + public static final Integer OTHER_BITES123 = 136797; + + public static final Integer OTHER_BITES124 = 136798; + + public static final Integer OTHER_BITES125 = 136801; + + public static final Integer OTHER_BITES126 = 136802; + + public static final Integer OTHER_BITES127 = 136807; + + public static final Integer OTHER_BITES128 = 136808; + + public static final Integer OTHER_BITES129 = 136810; + + public static final Integer OTHER_BITES130 = 136811; + + public static final Integer OTHER_BITES131 = 136812; + + public static final Integer OTHER_BITES132 = 136813; + + public static final Integer OTHER_BITES133 = 137129; + + public static final Integer OTHER_BITES134 = 137130; + + public static final Integer OTHER_BITES135 = 137131; + + public static final Integer OTHER_BITES136 = 137521; + + public static final Integer OTHER_BITES137 = 138412; + + public static final Integer OTHER_BITES138 = 139785; + + public static final Integer OTHER_BITES139 = 139786; + + public static final Integer OTHER_BITES140 = 139787; + + public static final Integer OTHER_BITES141 = 139788; + + public static final Integer OTHER_BITES142 = 139789; + + public static final Integer OTHER_BITES143 = 142821; + + public static final Integer OTHER_BITES144 = 145966; + + public static final Integer OTHER_BITES145 = 146087; + + public static final Integer OTHER_BITES146 = 146112; + + public static final Integer OTHER_BITES147 = 147268; + + public static final Integer OTHER_BITES148 = 147269; + + public static final Integer OTHER_BITES149 = 147272; + + public static final Integer OTHER_BITES150 = 147273; + + public static final Integer OTHER_BITES151 = 148295; + + public static final Integer OTHER_BITES152 = 148375; + + public static final Integer OTHER_BITES153 = 148754; + + public static final Integer OTHER_BITES154 = 148755; + + public static final Integer OTHER_BITES155 = 149085; + + public static final Integer OTHER_BITES156 = 152189; + + public static final Integer OTHER_BITES157 = 152190; + + public static final Integer OTHER_BITES158 = 152191; + + public static final Integer OTHER_BITES159 = 152192; + + public static final Integer OTHER_BITES160 = 152193; + + public static final Integer OTHER_BITES161 = 152194; + + public static final Integer OTHER_BITES162 = 152195; + + public static final Integer OTHER_BITES163 = 152196; + + public static final Integer OTHER_BITES164 = 152197; + + public static final Integer OTHER_BITES165 = 152198; + + public static final Integer OTHER_BITES166 = 152354; + + public static final Integer OTHER_BITES167 = 152355; + + public static final Integer OTHER_BITES168 = 152356; + + public static final Integer OTHER_BITES169 = 152385; + + public static final Integer OTHER_BITES170 = 152386; + + public static final Integer OTHER_BITES171 = 152387; + + public static final Integer OTHER_BITES172 = 152388; + + public static final Integer OTHER_BITES173 = 152389; + + public static final Integer OTHER_BITES174 = 152390; + + public static final Integer OTHER_BITES175 = 152391; + + public static final Integer OTHER_BITES176 = 155982; + + public static final Integer OTHER_BITES177 = 156308; + + public static final Integer OTHER_BITES178 = 156435; + + public static final Integer OTHER_BITES179 = 158027; + + public static final Integer OTHER_BITES180 = 158784; + + public static final Integer OTHER_BITES181 = 158788; + + public static final Integer OTHER_BITES182 = 162179; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java new file mode 100644 index 0000000000..2904553d37 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java @@ -0,0 +1,241 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + + + +import java.util.Arrays; +import java.util.List; + +public class ReportAddonUtils { + + public static List getAdultChildrenColumns() { + ColumnParameters day1 = new ColumnParameters("day1", "Day 1", "day=1", "01"); + /*ColumnParameters day2 = new ColumnParameters("day2", "Day 2", "day=2", "02"); + ColumnParameters day3 = new ColumnParameters("day3", "Day 3", "day=3", "03"); + ColumnParameters day4 = new ColumnParameters("day4", "Day 4", "day=4", "04"); + ColumnParameters day5 = new ColumnParameters("day5", "Day 5", "day=5", "05"); + ColumnParameters day6 = new ColumnParameters("day6", "Day 6", "day=6", "06"); + ColumnParameters day7 = new ColumnParameters("day7", "Day 7", "day=7", "07"); + ColumnParameters day8 = new ColumnParameters("day8", "Day 8", "day=8", "08"); + ColumnParameters day9 = new ColumnParameters("day9", "Day 9", "day=9", "09"); + ColumnParameters day10 = new ColumnParameters("day10", "Day 10", "day=10", "10"); + ColumnParameters day11 = new ColumnParameters("day11", "Day 11", "day=11", "11"); + ColumnParameters day12 = new ColumnParameters("day12", "Day 12", "day=12", "12"); + ColumnParameters day13 = new ColumnParameters("day13", "Day 13", "day=13", "13"); + ColumnParameters day14 = new ColumnParameters("day14", "Day 14", "day=14", "14"); + ColumnParameters day15 = new ColumnParameters("day15", "Day 15", "day=15", "15"); + ColumnParameters day16 = new ColumnParameters("day16", "Day 16", "day=16", "16"); + ColumnParameters day17 = new ColumnParameters("day17", "Day 17", "day=17", "17"); + ColumnParameters day18 = new ColumnParameters("day18", "Day 18", "day=18", "18"); + ColumnParameters day19 = new ColumnParameters("day19", "Day 19", "day=19", "19"); + ColumnParameters day20 = new ColumnParameters("day20", "Day 20", "day=20", "20"); + ColumnParameters day21 = new ColumnParameters("day21", "Day 21", "day=21", "21"); + ColumnParameters day22 = new ColumnParameters("day22", "Day 22", "day=22", "22"); + ColumnParameters day23 = new ColumnParameters("day23", "Day 23", "day=23", "23"); + ColumnParameters day24 = new ColumnParameters("day24", "Day 24", "day=24", "24"); + ColumnParameters day25 = new ColumnParameters("day25", "Day 25", "day=25", "25"); + ColumnParameters day26 = new ColumnParameters("day26", "Day 26", "day=26", "26"); + ColumnParameters day27 = new ColumnParameters("day27", "Day 27", "day=27", "27"); + ColumnParameters day28 = new ColumnParameters("day28", "Day 28", "day=28", "28"); + ColumnParameters day29 = new ColumnParameters("day29", "Day 29", "day=29", "29"); + ColumnParameters day30 = new ColumnParameters("day30", "Day 30", "day=30", "30"); + ColumnParameters day31 = new ColumnParameters("day31", "Day 31", "day=31", "31"); + ColumnParameters dayTotal = new ColumnParameters("dayTotal", "Total", "", "32"); + */ + return Arrays.asList(day1); + /*day2, day3, day4, day5, day6, day7, day8, day9, day10, day11, day12, day13, day14, day15, + day16, day17, day18, day19, day20, day21, day22, day23, day24, day25, day26, day27, day28, day29, day30, day31, + dayTotal);*/ + } + + public static List getGeneralOutPatientFilters() { + + ColumnParameters under5MaleNew = new ColumnParameters("under5MaleNew", "below 5 and new", "age=<5|gender=M", "01"); + ColumnParameters under5MaleRevisit = new ColumnParameters("over5MaleRevisit", "below 5 and revisit", + "state=RVT|age=<5|gender=M", "02"); + ColumnParameters under5FemaleNew = new ColumnParameters("under5FemaleNew", "below 5 and new", + "state=NEW|age=<5|gender=F", "03"); + ColumnParameters under5FemaleRevisit = new ColumnParameters("over5FemaleRevisit", "below 5 and revisit", + "state=RVT|age=<5|gender=F", "04"); + ColumnParameters over5MaleNew = new ColumnParameters("over5MaleNew", "above 5 and new", "state=NEW|age=>5|gender=M", + "05"); + ColumnParameters over5MaleRevisit = new ColumnParameters("over5MaleRevisit", "above 5 and revisit", + "state=RVT|age=>5|gender=M", "06"); + ColumnParameters over5FemaleNew = new ColumnParameters("over5MaleNew", "above 5 and new", + "state=NEW|age=>5|gender=F", "07"); + ColumnParameters over5FemaleRevisit = new ColumnParameters("over5MaleRevisit", "above 5 and revisit", + "state=RVT|age=>5|gender=F", "08"); + ColumnParameters over60New = new ColumnParameters("over60New", "above 60 and new", "state=NEW|age=>60", "09"); + ColumnParameters over60Revisit = new ColumnParameters("over60Revisit", "above 60 and revisit", "state=RVT|age=>60", + "10"); + + return Arrays.asList(under5MaleNew, under5MaleRevisit, under5FemaleNew, under5FemaleRevisit, over5MaleNew, + over5MaleRevisit, over5FemaleNew, over5FemaleRevisit, over5MaleRevisit, over60New, over60Revisit); + + } + + public static List getSpecialClinicPatientFilters() { + + ColumnParameters entNew = new ColumnParameters("ENTNew", "ENT Clinic", "state=NEW|clinic=ENT", "01"); + ColumnParameters entRevisit = new ColumnParameters("ENTRevisit", "ENT Clinic", "state=RVT|clinic=ENT", "02"); + + ColumnParameters eyeClinicNew = new ColumnParameters("eyeClinicNew", "Eye Clinic", "state=NEW|clinic=EYE", "03"); + ColumnParameters eyeClinicRevisit = new ColumnParameters("eyeClinicRevisit", "Eye Clinic", "state=RVT|clinic=EYE", + "04"); + + ColumnParameters tbAndLeprosyNew = new ColumnParameters("tbAndLeprosyNew", "TB and Leprosy", "state=NEW|clinic=TBL", + "05"); + ColumnParameters tbAndLeprosyRevisit = new ColumnParameters("tbAndLeprosyRevisit", "TB and Leprosy", + "state=RVT|clinic=TBL", "06"); + + ColumnParameters sexuallyTransmittedNew = new ColumnParameters("sexuallyTransmittedNew", + "Sexually Transmitted infection", "state=NEW|clinic=STI", "07"); + ColumnParameters sexuallyTransmittedRevisit = new ColumnParameters("sexuallyTransmittedRevisit", + "Sexually Transmitted infection", "state=RVT|clinic=STI", "08"); + + ColumnParameters cccNew = new ColumnParameters("cccNew", "Comprehensive Care Clinic (CCC)", "state=NEW|clinic=CCC", + "09"); + ColumnParameters cccRevisit = new ColumnParameters("cccRevisit", "Comprehensive Care Clinic (CCC)", + "state=RVT|clinic=CCC", "10"); + + ColumnParameters psychiatryNew = new ColumnParameters("psychiatryNew", "Psychiatry", "state=NEW|clinic=PSY", "11"); + ColumnParameters psychiatryRevisit = new ColumnParameters("psychiatryRevisit", "Psychiatry", "state=RVT|clinic=PSY", + "12"); + + ColumnParameters orthopaedicNew = new ColumnParameters("orthopaedicNew", "Orthopaedic Clinic", + "state=NEW|clinic=ORT", "13"); + ColumnParameters orthopaedicRevisit = new ColumnParameters("orthopaedicRevisit", "Orthopaedic Clinic", + "state=RVT|clinic=ORT", "14"); + + ColumnParameters occupationalTherapyNew = new ColumnParameters("occupationalTherapyNew", + "Occupational Therapy Clinic", "state=NEW|clinc=OCP", "15"); + ColumnParameters occupationalTherapyRevisit = new ColumnParameters("occupationalTherapyRevisit", + "Occupational Therapy Clinic", "state=RVT|clinic=OCP", "16"); + + ColumnParameters physiotherapyNew = new ColumnParameters("physiotherapyNew", "Physiotherapy Clinic", + "state=NEW|clinic=PHYS", "17"); + ColumnParameters physiotherapyRevisit = new ColumnParameters("physiotherapyRevisit", "Physiotherapy Clinic", + "state=RVT|clinic=PHYS", "18"); + + ColumnParameters medicalClinicsNew = new ColumnParameters("medicalClinicsNew", "Medical Clinics", + "state=NEW|clinic=MC", "19"); + ColumnParameters medicalClinicsRevisit = new ColumnParameters("medicalClinicsRevisit", "Medical Clinics", + "state=RVT|clinic=MC", "20"); + + ColumnParameters surgicalClinicsNew = new ColumnParameters("surgicalClinicsNew", "Surgical Clinics", + "state=NEW|clinic=SC", "21"); + ColumnParameters surgicalClinicsRevisit = new ColumnParameters("surgicalClinicsRevisit", "Surgical Clinics", + "state=RVT|clinic=SC", "22"); + + ColumnParameters paediatricsNew = new ColumnParameters("paediatricsNew", "Paediatrics", "state=NEW|clinic=PAED", + "23"); + ColumnParameters paediatricsRevisit = new ColumnParameters("paediatricsRevisit", "Paediatrics", + "state=RVT|clinic=PAED", "24"); + + ColumnParameters obstetricsGynaecologyNew = new ColumnParameters("obstetricsGynaecologyNew", + "Obstetrics/Gynaecology", "state=NEW|clinic=OG", "25"); + ColumnParameters obstetricsGynaecologyRevisit = new ColumnParameters("obstetricsGynaecologyRevisit", + "Obstetrics/Gynaecology", "state=RVT|clinic=OG", "26"); + + return Arrays.asList(entNew, entRevisit, entNew, eyeClinicNew, eyeClinicRevisit, tbAndLeprosyNew, + tbAndLeprosyRevisit, sexuallyTransmittedNew, sexuallyTransmittedRevisit, cccNew, cccRevisit, psychiatryNew, + psychiatryRevisit, orthopaedicNew, orthopaedicRevisit, occupationalTherapyNew, occupationalTherapyRevisit, + psychiatryNew, physiotherapyNew, physiotherapyRevisit, medicalClinicsNew, medicalClinicsRevisit, + surgicalClinicsNew, surgicalClinicsRevisit, paediatricsNew, paediatricsRevisit, obstetricsGynaecologyNew, + obstetricsGynaecologyRevisit); + + } + + public static List getAgeUnderOver5Columns() { + ColumnParameters malariaTotalUnder5 = new ColumnParameters("malariaTotalUnder5", "Total Exam - under 5", "age=<5", + "01"); + ColumnParameters malariaTotalOver5 = new ColumnParameters("malariaTotalOver5", "Total Exam - over 5", "age=>5", "02"); + return Arrays.asList(malariaTotalUnder5, malariaTotalOver5); + } + + public static List getAdultChildrenWithGenderColumns() { + ColumnParameters day1Male = new ColumnParameters("day1Male", "Day 1 Male", "day=1|gender=M", "01"); + ColumnParameters day2Male = new ColumnParameters("day2Male", "Day 2 male", "day=2|gender=M", "02"); + ColumnParameters day3Male = new ColumnParameters("day3Male", "Day 3 male", "day=3|gender=M", "03"); + ColumnParameters day4Male = new ColumnParameters("day4Male", "Day 4 male", "day=4|gender=M", "04"); + ColumnParameters day5Male = new ColumnParameters("day5Male", "Day 5 male", "day=5|gender=M", "05"); + ColumnParameters day6Male = new ColumnParameters("day6Male", "Day 6 male", "day=6|gender=M", "06"); + ColumnParameters day7Male = new ColumnParameters("day7Male", "Day 7 male", "day=7|gender=M", "07"); + ColumnParameters day8Male = new ColumnParameters("day8Male", "Day 8 male", "day=8|gender=M", "08"); + ColumnParameters day9Male = new ColumnParameters("day9Male", "Day 9 male", "day=9|gender=M", "09"); + ColumnParameters day10Male = new ColumnParameters("day10Male", "Day 10 male", "day=10|gender=M", "10"); + ColumnParameters day11Male = new ColumnParameters("day11Male", "Day 11 male", "day=11|gender=M", "11"); + ColumnParameters day12Male = new ColumnParameters("day12Male", "Day 12 male", "day=12|gender=M", "12"); + ColumnParameters day13Male = new ColumnParameters("day13Male", "Day 13 male", "day=13|gender=M", "13"); + ColumnParameters day14Male = new ColumnParameters("day14Male", "Day 14 male", "day=14|gender=M", "14"); + ColumnParameters day15Male = new ColumnParameters("day15Male", "Day 15 male", "day=15|gender=M", "15"); + ColumnParameters day16Male = new ColumnParameters("day16Male", "Day 16 male", "day=16|gender=M", "16"); + ColumnParameters day17Male = new ColumnParameters("day17Male", "Day 17 male", "day=17|gender=M", "17"); + ColumnParameters day18Male = new ColumnParameters("day18Male", "Day 18 male", "day=18|gender=M", "18"); + ColumnParameters day19Male = new ColumnParameters("day19Male", "Day 19 male", "day=19|gender=M", "19"); + ColumnParameters day20Male = new ColumnParameters("day20Male", "Day 20 male", "day=20|gender=M", "20"); + ColumnParameters day21Male = new ColumnParameters("day21Male", "Day 21 male", "day=21|gender=M", "21"); + ColumnParameters day22Male = new ColumnParameters("day22Male", "Day 22 male", "day=22|gender=M", "22"); + ColumnParameters day23Male = new ColumnParameters("day23Male", "Day 23 male", "day=23|gender=M", "23"); + ColumnParameters day24Male = new ColumnParameters("day24Male", "Day 24 male", "day=24|gender=M", "24"); + ColumnParameters day25Male = new ColumnParameters("day25Male", "Day 25 male", "day=25|gender=M", "25"); + ColumnParameters day26Male = new ColumnParameters("day26Male", "Day 26 male", "day=26|gender=M", "26"); + ColumnParameters day27Male = new ColumnParameters("day27Male", "Day 27 male", "day=27|gender=M", "27"); + ColumnParameters day28Male = new ColumnParameters("day28Male", "Day 28 male", "day=28|gender=M", "28"); + ColumnParameters day29Male = new ColumnParameters("day29Male", "Day 29 male", "day=29|gender=M", "29"); + ColumnParameters day30Male = new ColumnParameters("day30Male", "Day 30 male", "day=30|gender=M", "30"); + ColumnParameters day31Male = new ColumnParameters("day31Male", "Day 31 male", "day=31|gender=M", "31"); + ColumnParameters dayTotalMale = new ColumnParameters("dayTotalMale", "Days total male", "gender=M", "32"); + + ColumnParameters day1Female = new ColumnParameters("day1Female", "Day 1 Female", "day=1|gender=F", "33"); + ColumnParameters day2Female = new ColumnParameters("day2Female", "Day 2 female", "day=2|gender=F", "34"); + ColumnParameters day3Female = new ColumnParameters("day3Female", "Day 3 female", "day=3|gender=F", "35"); + ColumnParameters day4Female = new ColumnParameters("day4Female", "Day 4 female", "day=4|gender=F", "36"); + ColumnParameters day5Female = new ColumnParameters("day5Female", "Day 5 female", "day=5|gender=F", "37"); + ColumnParameters day6Female = new ColumnParameters("day6Female", "Day 6 female", "day=6|gender=F", "38"); + ColumnParameters day7Female = new ColumnParameters("day7Female", "Day 7 female", "day=7|gender=F", "39"); + ColumnParameters day8Female = new ColumnParameters("day8Female", "Day 8 female", "day=8|gender=F", "40"); + ColumnParameters day9Female = new ColumnParameters("day9Female", "Day 9 female", "day=9|gender=F", "41"); + ColumnParameters day10Female = new ColumnParameters("day10Female", "Day 10 female", "day=10|gender=F", "42"); + ColumnParameters day11Female = new ColumnParameters("day11Female", "Day 11 female", "day=11|gender=F", "43"); + ColumnParameters day12Female = new ColumnParameters("day12Female", "Day 12 female", "day=12|gender=F", "44"); + ColumnParameters day13Female = new ColumnParameters("day13Female", "Day 13 female", "day=13|gender=F", "45"); + ColumnParameters day14Female = new ColumnParameters("day14Female", "Day 14 female", "day=14|gender=F", "46"); + ColumnParameters day15Female = new ColumnParameters("day15Female", "Day 15 female", "day=15|gender=F", "47"); + ColumnParameters day16Female = new ColumnParameters("day16Female", "Day 16 female", "day=16|gender=F", "48"); + ColumnParameters day17Female = new ColumnParameters("day17Female", "Day 17 female", "day=17|gender=F", "49"); + ColumnParameters day18Female = new ColumnParameters("day18Female", "Day 18 female", "day=18|gender=F", "50"); + ColumnParameters day19Female = new ColumnParameters("day19Female", "Day 19 female", "day=19|gender=F", "51"); + ColumnParameters day20Female = new ColumnParameters("day20Female", "Day 20 female", "day=20|gender=F", "52"); + ColumnParameters day21Female = new ColumnParameters("day21Female", "Day 21 female", "day=21|gender=F", "53"); + ColumnParameters day22Female = new ColumnParameters("day22Female", "Day 22 female", "day=22|gender=F", "54"); + ColumnParameters day23Female = new ColumnParameters("day23Female", "Day 23 female", "day=23|gender=F", "55"); + ColumnParameters day24Female = new ColumnParameters("day24Female", "Day 24 female", "day=24|gender=F", "56"); + ColumnParameters day25Female = new ColumnParameters("day25Female", "Day 25 female", "day=25|gender=F", "57"); + ColumnParameters day26Female = new ColumnParameters("day26Female", "Day 26 female", "day=26|gender=F", "58"); + ColumnParameters day27Female = new ColumnParameters("day27Female", "Day 27 female", "day=27|gender=F", "59"); + ColumnParameters day28Female = new ColumnParameters("day28Female", "Day 28 female", "day=28|gender=F", "60"); + ColumnParameters day29Female = new ColumnParameters("day29Female", "Day 29 female", "day=29|gender=F", "61"); + ColumnParameters day30Female = new ColumnParameters("day30Female", "Day 30 female", "day=30|gender=F", "62"); + ColumnParameters day31Female = new ColumnParameters("day31Female", "Day 31 female", "day=31|gender=F", "63"); + ColumnParameters dayTotalFemale = new ColumnParameters("dayTotalFemale", "Day total female", "gender=F", "64"); + + return Arrays.asList(day1Male, day2Male, day3Male, day4Male, day5Male, day6Male, day7Male, day8Male, day9Male, + day10Male, day11Male, day12Male, day13Male, day14Male, day15Male, day16Male, day17Male, day18Male, day19Male, + day20Male, day21Male, day22Male, day22Male, day23Male, day24Male, day25Male, day26Male, day27Male, day28Male, + day29Male, day30Male, day31Male, day1Female, day2Female, day3Female, day4Female, day5Female, day6Female, + day7Female, day8Female, day9Female, day10Female, day11Female, day12Female, day13Female, day14Female, + day15Female, day16Female, day17Female, day18Female, day19Female, day20Female, day21Female, day22Female, + day23Female, day24Female, day25Female, day26Female, day27Female, day28Female, day29Female, day30Female, + day31Female, dayTotalMale, dayTotalFemale); + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java new file mode 100644 index 0000000000..9dcc5cccc4 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java @@ -0,0 +1,67 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; + +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.indicator.CohortIndicator; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; +import org.openmrs.module.reporting.query.encounter.definition.SqlEncounterQuery; + +import java.util.Date; +import java.util.List; + +public class ReportingUtils { + + public ReportingUtils() { + } + + public static CohortIndicator cohortIndicator(String name, Mapped cohort) { + CohortIndicator ind = new CohortIndicator(name); + ind.addParameter(new Parameter("startDate", "Start Date", Date.class)); + ind.addParameter(new Parameter("endDate", "End Date", Date.class)); + ind.setCohortDefinition(cohort); + return ind; + } + + /** + * Adds a row to a dataset based on an indicator and a list of column parameters + * + * @param cohortDsd the dataset + * @param baseName the base columm name + * @param baseLabel the base column label + * @param indicator the indicator + * @param columns the column parameters + */ + public static void addRow(CohortIndicatorDataSetDefinition cohortDsd, String baseName, String baseLabel, + Mapped indicator, List columns) { + + for (ColumnParameters column : columns) { + String name = baseName + "-" + column.getColumn(); + String label = baseLabel + " (" + column.getLabel() + ")"; + cohortDsd.addColumn(name, label, indicator, column.getDimensions()); + System.out.println("DSDDSDDSDDSD"); + System.out.println(cohortDsd); + break; + } + } + + public static EncounterQuery getEncounterLimitsByDate() { + SqlEncounterQuery query = new SqlEncounterQuery(); + query.setName("Encounter per the given date"); + query.addParameter(new Parameter("startDate", "Start Date", Date.class)); + query.addParameter(new Parameter("endDate", "End Date", Date.class)); + query.setQuery("SELECT encounter_id FROM encounter WHERE encounter_datetime BETWEEN :startDate AND :endDate"); + return query; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java new file mode 100644 index 0000000000..337a587f22 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java @@ -0,0 +1,55 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +public class RicketsDiagnosisConstants { + + //Rickets + public static final Integer RICKETS1 = 111461; + + public static final Integer RICKETS2 = 112370; + + public static final Integer RICKETS3 = 119383; + + public static final Integer RICKETS4 = 119384; + + public static final Integer RICKETS5 = 123035; + + public static final Integer RICKETS6 = 123036; + + public static final Integer RICKETS7 = 127393; + + public static final Integer RICKETS8 = 127394; + + public static final Integer RICKETS9 = 129607; + + public static final Integer RICKETS10 = 129753; + + public static final Integer RICKETS11 = 130243; + + public static final Integer RICKETS12 = 133378; + + public static final Integer RICKETS13 = 136043; + + public static final Integer RICKETS14 = 136068; + + public static final Integer RICKETS15 = 139392; + + public static final Integer RICKETS16 = 142188; + + public static final Integer RICKETS17 = 146062; + + public static final Integer RICKETS18 = 146568; + + public static final Integer RICKETS19 = 148083; + + public static final Integer RICKETS20 = 149282; + + public static final Integer RICKETS21 = 158867; +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index 122448dc74..92762c9183 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -13,11 +13,17 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.EmrReportingUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.Moh705ReportDimension; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ColumnParameters; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; import org.openmrs.module.reporting.evaluation.parameter.Mapped; import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.indicator.CohortIndicator; import org.openmrs.module.reporting.report.definition.ReportDefinition; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -105,10 +111,10 @@ public class MOH705AReportBuilder extends AbstractReportBuilder { static final int HYPOXAEMIA = 117312; static final int ALL_OTHER_DISEASES = 0; - + @Autowired private MOH705IndicatorLibrary moh705indicatorLibrary; - + @Override protected List getParameters(ReportDescriptor reportDescriptor) { return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", @@ -122,24 +128,33 @@ protected List> buildDataSets(ReportDescriptor reportD } protected DataSetDefinition moh705ADataset() { + String indParams = "startDate=${startDate},endDate=${endDate}"; + CohortIndicatorDataSetDefinition cohortDsd = new CohortIndicatorDataSetDefinition(); cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); cohortDsd.setName("MOH705A"); - cohortDsd.setDescription("MOH 705A"); + cohortDsd.setDescription("MOH 705A"); +// cohortDsd.addDimension("day", - String indParams = "startDate=${startDate},endDate=${endDate}"; + // populate datasets +// EmrReportingUtils.addRow(indicatorDsd,"HV02-01", "First ANC Visit", ReportUtils.map(moh731GreenCardIndicators.firstANCVisitMchmsAntenatal(), indParams), cadreDisaggregation,Arrays.asList("1","2","3")); + ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenWithGenderColumns()); +// System.out.println("Cohort indicator dataset def ==>"+cohortDsd); + + cohortDsd.addColumn("Diarrhoea with no dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA_WITH_DEHYDRATION,AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); + /* cohortDsd.addColumn("Diarrhoea with some dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA_WITH_SOME_DEHYDRATION,AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Diarrhoea with severe dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA_WITH_SEVERE_DEHYDRATION,AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SEVERE_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Cholera", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHOLERA,AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(),AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Dysentery", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DYSENTRY,AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(),AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Gastroenteritis", "", ReportUtils.map(moh705indicatorLibrary.diagnosis(GASTROENTERITIS,AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Pneumonia", "", @@ -271,7 +286,7 @@ protected DataSetDefinition moh705ADataset() { cohortDsd.addColumn("New Attendances", "", ReportUtils.map(moh705indicatorLibrary.newAttendances(AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Re Attendances", "", - ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), ""); + ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), "");*/ return cohortDsd; } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index 3701ce8c45..664470880a 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -128,146 +128,146 @@ protected DataSetDefinition moh705BDataset() { String indParams = "startDate=${startDate},endDate=${endDate}"; - cohortDsd.addColumn("Diarrhoea", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Tuberculosis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TUBERCULOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Dysentry", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DYSENTRY,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Cholera", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHOLERA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Meningococcal Meningitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MENINGOCOCCAL_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Other Meningitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Tetanus", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TETANUS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Poliomyelitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(POLIOMYELITIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Chicken Pox", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHICKEN_POX,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Measles", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MEASLES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Hepatitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(HEPATITIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Mumps", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MUMPS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected Malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Tested for Malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TESTED_FOR_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Confirmed Malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CONFIRMED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Malaria in pregnancy", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MALARIA_IN_PREGNANCY,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Amoebiasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(AMOEBIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Typhoid fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TYPHOID_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Sexually Transmitted Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUALLY_TRANSMITTED_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Urinary Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(URINARY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Bilharzia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BILHARZIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Intestinal worms", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(INTESTINAL_WORMS, EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Malnutrition", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MALNUTRITION,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Anaemia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ANAEMIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Eye Infections or Conditions", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EYE_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Ear Infections or Conditions", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EAR_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Upper Respiratory Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(UPPER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Asthma", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ASTHMA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Pneumonia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(PNEUMONIA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Other Lower Respiratory Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Abortion", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ABORTION,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Puerperium at Childbirth", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(PUERPERIUM_AT_CHILDBIRTH,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Hypertension", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(HYPERTENSION,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Mental Disorders", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Dental Disorders", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Jiggers Infestation", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(JIGGERS_INFESTATION,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Diseases of the skin", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SKIN_DISEASES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Arthritis and Joint pains", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ARTHRITIS_JOINT_PAINS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Poisoning", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(POISONING,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Road Traffic Injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Deaths due to Road Traffic Injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DEATH_BY_ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Violence related injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(VIOLENCE_RELATED_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Other injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Sexual Violence", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUAL_VIOLENCE,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Burns", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BURNS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Snake Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SNAKE_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Dog Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DOG_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Other Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Diabetes", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIABETES,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Epilepsy", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EPILEPSY,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Brucellosis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BRUCELLOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Cardiovascular conditions", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CARDIOVASCULAR_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Central Nervous System Conditions", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CENTRAL_NERVOUS_SYSTEM_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Overweight", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OVERWEIGHT,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Muscular skeletal conditions", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MUSCULAR_SKELETAL_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Fistula related with Birth", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(FISTULA_BIRTH_RELATED,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected Neoplams and Cancers", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_NEOPLAMS_CANCERS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Physical Disability", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(PHYSICAL_DISABILITY,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Trypanosomiasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TRYPONOSOMIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Yellow Fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(YELLOW_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Viral Haemorrhagic Fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(VIRAL_HAEMORRHAGIC_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Rift valley fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(RIFT_VALLEY_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Chikungunya", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHIKUNGUNYA,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Dengue fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DENGUE_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Leishmaniasis or Kalaazar", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Cutaneous leishmaniasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CUTANEOUS_LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected Anthrax", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_ANTHRAX,EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("All Other Diseases", "", - ReportUtils.map(moh705indicatorLibrary.allOtherDiseasesAboveFive(EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("New Attendances", "", - ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); - cohortDsd.addColumn("Re Attendances", "", - ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Diarrhoea", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Tuberculosis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(TUBERCULOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Dysentry", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DYSENTRY,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Cholera", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHOLERA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Meningococcal Meningitis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MENINGOCOCCAL_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Other Meningitis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Tetanus", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(TETANUS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Poliomyelitis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(POLIOMYELITIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Chicken Pox", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHICKEN_POX,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Measles", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MEASLES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Hepatitis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(HEPATITIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Mumps", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MUMPS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Suspected Malaria", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Tested for Malaria", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(TESTED_FOR_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Confirmed Malaria", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CONFIRMED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Malaria in pregnancy", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MALARIA_IN_PREGNANCY,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Amoebiasis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(AMOEBIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Typhoid fever", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(TYPHOID_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Sexually Transmitted Infections", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUALLY_TRANSMITTED_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Urinary Tract Infections", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(URINARY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Bilharzia", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(BILHARZIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Intestinal worms", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(INTESTINAL_WORMS, EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Malnutrition", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MALNUTRITION,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Anaemia", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(ANAEMIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Eye Infections or Conditions", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(EYE_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Ear Infections or Conditions", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(EAR_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Upper Respiratory Tract Infections", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(UPPER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Asthma", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(ASTHMA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Pneumonia", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(PNEUMONIA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Other Lower Respiratory Tract Infections", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Abortion", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(ABORTION,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Puerperium at Childbirth", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(PUERPERIUM_AT_CHILDBIRTH,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Hypertension", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(HYPERTENSION,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Mental Disorders", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Dental Disorders", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Jiggers Infestation", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(JIGGERS_INFESTATION,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Diseases of the skin", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SKIN_DISEASES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Arthritis and Joint pains", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(ARTHRITIS_JOINT_PAINS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Poisoning", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(POISONING,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Road Traffic Injuries", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Deaths due to Road Traffic Injuries", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DEATH_BY_ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Violence related injuries", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(VIOLENCE_RELATED_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Other injuries", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Sexual Violence", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUAL_VIOLENCE,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Burns", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(BURNS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Snake Bites", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SNAKE_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Dog Bites", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DOG_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Other Bites", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Diabetes", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DIABETES,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Epilepsy", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(EPILEPSY,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Brucellosis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(BRUCELLOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Cardiovascular conditions", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CARDIOVASCULAR_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Central Nervous System Conditions", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CENTRAL_NERVOUS_SYSTEM_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Overweight", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(OVERWEIGHT,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Muscular skeletal conditions", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(MUSCULAR_SKELETAL_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Fistula related with Birth", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(FISTULA_BIRTH_RELATED,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Suspected Neoplams and Cancers", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_NEOPLAMS_CANCERS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Physical Disability", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(PHYSICAL_DISABILITY,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Trypanosomiasis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(TRYPONOSOMIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Yellow Fever", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(YELLOW_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Viral Haemorrhagic Fever", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(VIRAL_HAEMORRHAGIC_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Rift valley fever", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(RIFT_VALLEY_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Chikungunya", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHIKUNGUNYA,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Dengue fever", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(DENGUE_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Leishmaniasis or Kalaazar", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Cutaneous leishmaniasis", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(CUTANEOUS_LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Suspected Anthrax", "", +// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_ANTHRAX,EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("All Other Diseases", "", +// ReportUtils.map(moh705indicatorLibrary.allOtherDiseasesAboveFive(EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("New Attendances", "", +// ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); +// cohortDsd.addColumn("Re Attendances", "", +// ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); return cohortDsd; } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java index 7308525ab8..301d567f00 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java @@ -17,6 +17,7 @@ import org.springframework.stereotype.Component; import java.util.Date; +import java.util.List; /** * Library of cohort definitions for MOH705A @@ -29,9 +30,9 @@ public class MOH705CohortLibrary { * For Composition * @return */ - public CohortDefinition patientDiagnosis(Integer diagnosis) { - - String sqlQuery = "select patient_id from encounter_diagnosis where diagnosis_coded = " + diagnosis + " and date(date_created) between date(:startDate) and date(:endDate);"; + public CohortDefinition patientDiagnosis(List diagnosisList) { + String diagnosis = String.valueOf(diagnosisList).replaceAll("\\[", "(").replaceAll("\\]",")"); + String sqlQuery = "select patient_id from encounter_diagnosis where diagnosis_coded in " + diagnosis + " and date(date_created) between date(:startDate) and date(:endDate);"; SqlCohortDefinition cd = new SqlCohortDefinition(); cd.setName("patientsDiagnosis"); cd.setQuery(sqlQuery); @@ -63,7 +64,7 @@ public CohortDefinition patientAge(String age) { * Composition * @return */ - public CohortDefinition diagnosis(Integer diagnosis, String age) { + public CohortDefinition diagnosis(List diagnosis, String age) { CompositionCohortDefinition cd = new CompositionCohortDefinition(); cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); cd.addParameter(new Parameter("endDate", "End Date", Date.class)); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java index 64fc515d81..6dede241ff 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java @@ -14,6 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.List; + import static org.openmrs.module.kenyaemr.reporting.EmrReportingUtils.cohortIndicator; /** @@ -28,8 +30,8 @@ public class MOH705IndicatorLibrary { /** * Diagnosis */ - public CohortIndicator diagnosis(Integer diagnosis, String age) { - return cohortIndicator("Diagnosis", ReportUtils.map(moh705CohortLibrary.diagnosis(diagnosis,age), "startDate=${startDate},endDate=${endDate}")); + public CohortIndicator diagnosis(List diagnosislist, String age) { + return cohortIndicator("Diagnosis", ReportUtils.map(moh705CohortLibrary.diagnosis(diagnosislist,age), "startDate=${startDate},endDate=${endDate}")); } /** * Other Diagnosis under five diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 73c6b07a9e..2cd464f7df 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -88,7 +88,7 @@ - + @@ -904,18 +904,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + diff --git a/omod/src/main/webapp/resources/reports/MOH_705a.xls b/omod/src/main/webapp/resources/reports/MOH_705a.xls new file mode 100644 index 0000000000000000000000000000000000000000..29b771032a5094274891f80d33c9f91a57dac373 GIT binary patch literal 167936 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 Uvu%9&_rK-$^~1ks|LrgT3yUe Date: Fri, 15 Mar 2024 10:52:20 +0300 Subject: [PATCH 46/98] Fix report diassgrations of 705A --- .../Moh705ReportUtils/ReportAddonUtils.java | 14 +++--- .../Moh705ReportUtils/ReportingUtils.java | 3 -- .../builder/common/MOH705AReportBuilder.java | 27 ++++++----- .../shared/common/CommonCohortLibrary.java | 13 ++++++ .../shared/common/CommonDimensionLibrary.java | 46 ++++++++++++++++++- 5 files changed, 80 insertions(+), 23 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java index 2904553d37..116c072402 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java @@ -15,10 +15,10 @@ import java.util.List; public class ReportAddonUtils { - + public static List getAdultChildrenColumns() { ColumnParameters day1 = new ColumnParameters("day1", "Day 1", "day=1", "01"); - /*ColumnParameters day2 = new ColumnParameters("day2", "Day 2", "day=2", "02"); + ColumnParameters day2 = new ColumnParameters("day2", "Day 2", "day=2", "02"); ColumnParameters day3 = new ColumnParameters("day3", "Day 3", "day=3", "03"); ColumnParameters day4 = new ColumnParameters("day4", "Day 4", "day=4", "04"); ColumnParameters day5 = new ColumnParameters("day5", "Day 5", "day=5", "05"); @@ -49,11 +49,9 @@ public static List getAdultChildrenColumns() { ColumnParameters day30 = new ColumnParameters("day30", "Day 30", "day=30", "30"); ColumnParameters day31 = new ColumnParameters("day31", "Day 31", "day=31", "31"); ColumnParameters dayTotal = new ColumnParameters("dayTotal", "Total", "", "32"); - */ - return Arrays.asList(day1); - /*day2, day3, day4, day5, day6, day7, day8, day9, day10, day11, day12, day13, day14, day15, - day16, day17, day18, day19, day20, day21, day22, day23, day24, day25, day26, day27, day28, day29, day30, day31, - dayTotal);*/ + return Arrays.asList(day1, day2, day3, day4, day5, day6, day7, day8, day9, day10, day11, day12, day13, day14, day15, + day16, day17, day18, day19, day20, day21, day22, day23, day24, day25, day26, day27, day28, day29, day30, day31, + dayTotal); } public static List getGeneralOutPatientFilters() { @@ -161,7 +159,7 @@ public static List getAgeUnderOver5Columns() { return Arrays.asList(malariaTotalUnder5, malariaTotalOver5); } - public static List getAdultChildrenWithGenderColumns() { + public static List getAdultChildrenWithColumns() { ColumnParameters day1Male = new ColumnParameters("day1Male", "Day 1 Male", "day=1|gender=M", "01"); ColumnParameters day2Male = new ColumnParameters("day2Male", "Day 2 male", "day=2|gender=M", "02"); ColumnParameters day3Male = new ColumnParameters("day3Male", "Day 3 male", "day=3|gender=M", "03"); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java index 9dcc5cccc4..6fbb15b4d4 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java @@ -49,9 +49,6 @@ public static void addRow(CohortIndicatorDataSetDefinition cohortDsd, String bas String name = baseName + "-" + column.getColumn(); String label = baseLabel + " (" + column.getLabel() + ")"; cohortDsd.addColumn(name, label, indicator, column.getDimensions()); - System.out.println("DSDDSDDSDDSD"); - System.out.println(cohortDsd); - break; } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index 92762c9183..f1be9fc796 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -13,17 +13,14 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; -import org.openmrs.module.kenyaemr.reporting.EmrReportingUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.Moh705ReportDimension; import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ColumnParameters; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; +import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; import org.openmrs.module.reporting.evaluation.parameter.Mapped; import org.openmrs.module.reporting.evaluation.parameter.Parameter; -import org.openmrs.module.reporting.indicator.CohortIndicator; import org.openmrs.module.reporting.report.definition.ReportDefinition; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -112,9 +109,17 @@ public class MOH705AReportBuilder extends AbstractReportBuilder { static final int ALL_OTHER_DISEASES = 0; - @Autowired + private MOH705IndicatorLibrary moh705indicatorLibrary; - + + private final CommonDimensionLibrary commonDimensionLibrary; + + @Autowired + public MOH705AReportBuilder(MOH705IndicatorLibrary moh705indicatorLibrary, CommonDimensionLibrary commonDimensionLibrary) { + this.moh705indicatorLibrary = moh705indicatorLibrary; + this.commonDimensionLibrary = commonDimensionLibrary; + } + @Override protected List getParameters(ReportDescriptor reportDescriptor) { return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", @@ -134,19 +139,19 @@ protected DataSetDefinition moh705ADataset() { cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); cohortDsd.setName("MOH705A"); - cohortDsd.setDescription("MOH 705A"); -// cohortDsd.addDimension("day", + cohortDsd.setDescription("MOH 705A"); + cohortDsd.addDimension("day", ReportUtils.map(commonDimensionLibrary.encountersOfMonthPerDay(), indParams)); // populate datasets // EmrReportingUtils.addRow(indicatorDsd,"HV02-01", "First ANC Visit", ReportUtils.map(moh731GreenCardIndicators.firstANCVisitMchmsAntenatal(), indParams), cadreDisaggregation,Arrays.asList("1","2","3")); - ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenWithGenderColumns()); + ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); // System.out.println("Cohort indicator dataset def ==>"+cohortDsd); - + /* cohortDsd.addColumn("Diarrhoea with no dehydration", "", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); - /* + cohortDsd.addColumn("Diarrhoea with some dehydration", "", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); cohortDsd.addColumn("Diarrhoea with severe dehydration", "", diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonCohortLibrary.java index 8ac99e3b60..06f6134f8f 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonCohortLibrary.java @@ -34,6 +34,7 @@ import org.openmrs.module.reporting.cohort.definition.GenderCohortDefinition; import org.openmrs.module.reporting.cohort.definition.AgeCohortDefinition; import org.openmrs.module.reporting.cohort.definition.ProgramEnrollmentCohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; import org.openmrs.module.reporting.common.DurationUnit; import org.openmrs.module.reporting.common.SetComparator; import org.openmrs.module.reporting.common.TimeQualifier; @@ -427,4 +428,16 @@ public CohortDefinition malePatientContacts() { return cd; } + public CohortDefinition getPatientsSeenOnDay(int day) { + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("Get patients seen on a given day"); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id=e.patient_id" + + " WHERE p.voided= 0 AND e.voided = 0 AND e.encounter_datetime BETWEEN DATE_ADD(:startDate, INTERVAL " + + day + " DAY) AND DATE_ADD(DATE_ADD(DATE_ADD(:startDate, INTERVAL " + day + + " DAY), INTERVAL 23 HOUR), INTERVAL 59 MINUTE) AND e.encounter_datetime <= :endDate"); + return cd; + } + } \ No newline at end of file diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java index 282a78a7a6..414690a1d0 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java @@ -24,8 +24,12 @@ @Component public class CommonDimensionLibrary { + + private final CommonCohortLibrary commonCohortLibrary; @Autowired - private CommonCohortLibrary commonCohortLibrary; + public CommonDimensionLibrary(CommonCohortLibrary commonCohortLibrary) { + this.commonCohortLibrary = commonCohortLibrary; + } /** * Gender dimension @@ -287,4 +291,44 @@ public CohortDefinitionDimension HcaAgeGroups() { dim.addCohortDefinition(">2", map(commonCohortLibrary.agedAtLeast(2), "effectiveDate=${onDate}")); return dim; } + + public CohortDefinitionDimension encountersOfMonthPerDay() { + CohortDefinitionDimension dim = new CohortDefinitionDimension(); + dim.setName("Patient with encounters on date of day"); + dim.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dim.addParameter(new Parameter("endDate", "End Date", Date.class)); + dim.addCohortDefinition("1", map(commonCohortLibrary.getPatientsSeenOnDay(0), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("2", map(commonCohortLibrary.getPatientsSeenOnDay(1), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("3", map(commonCohortLibrary.getPatientsSeenOnDay(2), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("4", map(commonCohortLibrary.getPatientsSeenOnDay(3), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("5", map(commonCohortLibrary.getPatientsSeenOnDay(4), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("6", map(commonCohortLibrary.getPatientsSeenOnDay(5), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("7", map(commonCohortLibrary.getPatientsSeenOnDay(6), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("8", map(commonCohortLibrary.getPatientsSeenOnDay(7), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("9", map(commonCohortLibrary.getPatientsSeenOnDay(8), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("10", map(commonCohortLibrary.getPatientsSeenOnDay(9), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("11", map(commonCohortLibrary.getPatientsSeenOnDay(10), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("12", map(commonCohortLibrary.getPatientsSeenOnDay(11), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("13", map(commonCohortLibrary.getPatientsSeenOnDay(12), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("14", map(commonCohortLibrary.getPatientsSeenOnDay(13), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("15", map(commonCohortLibrary.getPatientsSeenOnDay(14), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("16", map(commonCohortLibrary.getPatientsSeenOnDay(15), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("17", map(commonCohortLibrary.getPatientsSeenOnDay(16), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("18", map(commonCohortLibrary.getPatientsSeenOnDay(17), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("19", map(commonCohortLibrary.getPatientsSeenOnDay(18), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("20", map(commonCohortLibrary.getPatientsSeenOnDay(19), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("21", map(commonCohortLibrary.getPatientsSeenOnDay(20), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("22", map(commonCohortLibrary.getPatientsSeenOnDay(21), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("23", map(commonCohortLibrary.getPatientsSeenOnDay(22), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("24", map(commonCohortLibrary.getPatientsSeenOnDay(23), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("25", map(commonCohortLibrary.getPatientsSeenOnDay(24), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("26", map(commonCohortLibrary.getPatientsSeenOnDay(25), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("27", map(commonCohortLibrary.getPatientsSeenOnDay(26), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("28", map(commonCohortLibrary.getPatientsSeenOnDay(27), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("29", map(commonCohortLibrary.getPatientsSeenOnDay(28), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("30", map(commonCohortLibrary.getPatientsSeenOnDay(29), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("31", map(commonCohortLibrary.getPatientsSeenOnDay(30), "startDate=${startDate},endDate=${endDate}")); + + return dim; + } } \ No newline at end of file From ecbe421ef2b3936ac22f6a4fd7ea04ca787bffc9 Mon Sep 17 00:00:00 2001 From: injiri Date: Sat, 16 Mar 2024 08:58:00 +0300 Subject: [PATCH 47/98] add more cohortDsd rows as per moh705a template --- .../builder/common/MOH705AReportBuilder.java | 483 ++++++++++++------ .../MOH705/MOH705CohortLibrary.java | 5 +- .../MOH705/MOH705IndicatorLibrary.java | 7 +- 3 files changed, 344 insertions(+), 151 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index f1be9fc796..c2ec762e7b 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -13,6 +13,7 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; @@ -108,7 +109,7 @@ public class MOH705AReportBuilder extends AbstractReportBuilder { static final int HYPOXAEMIA = 117312; static final int ALL_OTHER_DISEASES = 0; - + private MOH705IndicatorLibrary moh705indicatorLibrary; @@ -146,153 +147,341 @@ protected DataSetDefinition moh705ADataset() { // populate datasets // EmrReportingUtils.addRow(indicatorDsd,"HV02-01", "First ANC Visit", ReportUtils.map(moh731GreenCardIndicators.firstANCVisitMchmsAntenatal(), indParams), cadreDisaggregation,Arrays.asList("1","2","3")); ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); -// System.out.println("Cohort indicator dataset def ==>"+cohortDsd); - - /* - cohortDsd.addColumn("Diarrhoea with no dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); - - cohortDsd.addColumn("Diarrhoea with some dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Diarrhoea with severe dehydration", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SEVERE_DEHYDRATION),AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Cholera", "", + + ReportingUtils.addRow(cohortDsd,"DWSOD","Diarrhoea with some dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd,"DWSED","Diarrhoea with severe dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SEVERE_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd,"CLC","Cholera",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(CHOLERA),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow( + cohortDsd, + "TC", + "Tuberculosis", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "DYC", + "Dysentery", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "GAS", + "Gastroenteritis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getGastroenteritisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow( + cohortDsd, + "SP", + "Severe pneumonia", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSeverePneumoniaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "LTI", "Lower Respiratory Tract Infections", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSLowerTractInfectionList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "NS", + "Neonatal Sepsis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeutalSepsisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "AM", + "AMOEBIASIS", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "DS", + "Down’s syndrome", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDownSyndromeList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RF", + "Rheumatic Fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getReumonicFeverList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow( + cohortDsd, + "CKU", + "Chikungunya fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "DENF", + "Dengue fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CL", "Cutaneous Leishmaniasis", ReportUtils.map(moh705indicatorLibrary + .diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "ANT", + "Suspected Anthrax", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow( + cohortDsd, + "CLC", + "Cholera", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "MCC", + "Meningococcal Meningitis", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getMeningococcalMeningitisList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "OMC", "Other Menignitis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "NNC", "NeonatalTetanus", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "PMC", + "Poliomyelitis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "CPC", + "Chicken Pox", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "MSC", + "Measles", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "HPC", + "Hepatitis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "MPC", + "Mumps", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "SMC", "Suspected Malaria", ReportUtils.map( + moh705indicatorLibrary.diagnosis(Arrays.asList(CONFIRMED_MALARIA), AGE_BELOW_FIVE), indParams), //TODO Suspected Malaria + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CMC", "Confirmed Malaria", ReportUtils.map( + moh705indicatorLibrary.diagnosis(Arrays.asList(CONFIRMED_MALARIA), AGE_BELOW_FIVE), indParams), //TODO Confirmed Malaria + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "UTC", + "Urinary Tract Infection", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getUrinaryTractInfectionList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "TYC", + "Typhoid Fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "BLC", + "Bilharzia", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "IWC", "Interstinal worms", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "MNC", + "Malnutrition", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "ANC", + "Anaemia", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "EC", + "Eye Infections", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "EIC", + "Ear Infections Conditions", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getEarInfectionsConditionsList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "URC", + "Upper Respiratory Tract Infections", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getUpperRespiratoryTractInfectionsList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "ASC", + "Asthma", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "TSC", + "Tonsilities", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getTonsilitiesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "PNC", + "Pneumonia", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MDC", "Mental Disorders", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DDC", "DentalDisorders", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "JIC", "Jiggers Infestation", ReportUtils.map(moh705indicatorLibrary + .diagnosis(DiagnosisLists.getJiggersInfestationList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DOC", "Disease Of The Skin", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "PC", + "Poisoning", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "RTC", "Road TrafficI Injuries", ReportUtils.map(moh705indicatorLibrary + .diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "OIC", + "Other Injuries", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "SAC", + "Sexual Asualt", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "BC", + "Burns", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "SBC", + "Snake Bites", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "DBC", + "Dog BITES", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "OBC", + "Other Bites", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(),AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Dysentery", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(),AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Gastroenteritis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(GASTROENTERITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Pneumonia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(PNEUMONIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Severe pneumonia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SEVERE_PNEUMONIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Upper Respiratory Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(UPPER_RESPIRATORY_TRACT_INFECTIONS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Lower Respiratory Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(LOWER_RESPIRATORY_TRACT_INFECTIONS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Asthma", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ASTHMA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Presumed Tuberculosis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(PRESUMED_TUBERCULOSIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected Malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_MALARIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Tested for Malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TESTED_FOR_MALARIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Confirmed malaria", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CONFIRMED_MALARIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Ear infection", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EAR_INFECTION,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Malnutrition", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MALNUTRITION,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Anaemia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ANAEMIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Meningococcal Meningitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MENINGOCOCCAL_MENINGITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Other Meningitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_MENINGITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Neonatal Sepsis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(NEONATAL_SEPSIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Neonatal Tetanus", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(NEONATAL_TETANUS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Poliomyelitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(POLIOMYELITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Chicken Pox", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHICKEN_POX,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Measles", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MEASLES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Hepatitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(HEPATITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Amoebiasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(AMOEBIASIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Mumps", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MUMPS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Typhoid fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TYPHOID_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Bilharzia Schistosomiasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BILHARZIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Intestinal worms", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(INTESTINAL_WORMS, AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Eye Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EYE_INFECTIONS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Tonsilitis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TONSILITIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Urinary Tract Infections", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(URINARY_TRACT_INFECTIONS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Mental Disorders", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(MENTAL_DISORDERS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Dental Disorders", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DENTAL_DISORDERS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Jiggers Infestation", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(JIGGERS_INFESTATION,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Diseases of the skin", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SKIN_DISEASES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Downs syndrome", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DOWNS_SYNDROME, AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Poisoning", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(POISONING,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Road Traffic Injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(ROAD_TRAFFIC_INJURIES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Deaths due to Road Traffic Injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DEATH_BY_ROAD_TRAFFIC_INJURIES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Violence related injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(VIOLENCE_RELATED_INJURIES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Other injuries", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_INJURIES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Sexual Violence", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUAL_VIOLENCE,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Burns", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BURNS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Snake Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SNAKE_BITES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Dog Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DOG_BITES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Other Bites", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_BITES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Diabetes", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DIABETES,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Epilepsy", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(EPILEPSY,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Other Convulsive Disorders", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_CONVULSIVE_DISORDERS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Rheumatic Fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(RHEUMATIC_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Brucellosis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(BRUCELLOSIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Rickets", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(RICKETS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Cerebral Palsy", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CEREBRAL_PALSY,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Autism", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(AUTISM,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Tryponosomiasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(TRYPONOSOMIASIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Yellow Fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(YELLOW_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Viral Haemorrhagic Fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(VIRAL_HAEMORRHAGIC_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Rift valley fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(RIFT_VALLEY_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Chikungunya", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CHIKUNGUNYA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Dengue fever", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DENGUE_FEVER,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Leishmaniasis Kalaazar", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(LEISHMANIASIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Cutaneous leishmaniasis", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(CUTANEOUS_LEISHMANIASIS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected anthrax", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_ANTHRAX,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Suspected Childhood Cancers", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_CHILDHOOD_CANCERS,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Hypoxaemia", "", - ReportUtils.map(moh705indicatorLibrary.diagnosis(HYPOXAEMIA,AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("All Other Diseases", "", - ReportUtils.map(moh705indicatorLibrary.allOtherDiseasesUnderFive(AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("New Attendances", "", - ReportUtils.map(moh705indicatorLibrary.newAttendances(AGE_BELOW_FIVE), indParams), ""); - cohortDsd.addColumn("Re Attendances", "", - ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), "");*/ return cohortDsd; - + } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java index 301d567f00..87ae8c55fd 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java @@ -78,10 +78,11 @@ public CohortDefinition diagnosis(List diagnosis, String age) { * OtherDiseasesUnderFive * @return */ - public CohortDefinition allOtherDiseasesUnderFive(String age) { + public CohortDefinition allOtherDiseasesUnderFive(String age , String diagnosisList) { + String sqlQuery = "SELECT x.patient_id FROM encounter_diagnosis x\n" + " INNER JOIN kenyaemr_etl.etl_patient_demographics d on x.patient_id = d.patient_id and timestampdiff(YEAR, date(d.dob),date(:endDate)) "+ age +"\n" + - " WHERE x.diagnosis_coded NOT in (5018,160156,152,145622,134369,124957,5258,892,134561,116986,133671,166623,160148,168740,160152,124,141,112992,111633,117152,116699,134725,121629,140832,71,123093,121375,114100,998,117399,77,78,123964,119022,148432,114088,86,123160,146623,126323,166,119481,155,121005,119270,118994,114413,124078,113217,122759,123112,120743,7592,116350,143074,168741) and date(x.date_created) between date(:startDate) and date(:endDate);\n"; + " WHERE x.diagnosis_coded NOT in ("+diagnosisList+") and date(x.date_created) between date(:startDate) and date(:endDate);\n"; SqlCohortDefinition cd = new SqlCohortDefinition(); cd.setName("allOtherDiseasesUnderFive"); cd.setQuery(sqlQuery); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java index 6dede241ff..12686c383c 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java @@ -9,7 +9,9 @@ */ package org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705; +import org.apache.commons.lang3.StringUtils; import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; import org.openmrs.module.reporting.indicator.CohortIndicator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -37,13 +39,14 @@ public CohortIndicator diagnosis(List diagnosislist, String age) { * Other Diagnosis under five */ public CohortIndicator allOtherDiseasesUnderFive(String age) { - return cohortIndicator("Other Under Five Diagnosis", ReportUtils.map(moh705CohortLibrary.allOtherDiseasesUnderFive(age), "startDate=${startDate},endDate=${endDate}")); + return cohortIndicator("Other Under Five Diagnosis", ReportUtils.map(moh705CohortLibrary.allOtherDiseasesUnderFive(age, StringUtils.join(DiagnosisLists.getAllOtherDiseasesListForChildren(),",")), "startDate=${startDate},endDate=${endDate}")); } /** * Other Diagnosis Over five */ public CohortIndicator allOtherDiseasesAboveFive(String age) { - return cohortIndicator("Other Above Five Diagnosis", ReportUtils.map(moh705CohortLibrary.allOtherDiseasesUnderFive(age), "startDate=${startDate},endDate=${endDate}")); + + return cohortIndicator("Other Above Five Diagnosis", ReportUtils.map(moh705CohortLibrary.allOtherDiseasesUnderFive(age, StringUtils.join(DiagnosisLists.getAllOtherDiseasesListForChildren(),",")), "startDate=${startDate},endDate=${endDate}")); } public CohortIndicator newAttendances(String age) { From 03b462906ab63488384a6cb5265c63e2ad21facf Mon Sep 17 00:00:00 2001 From: injiri Date: Sat, 16 Mar 2024 08:58:17 +0300 Subject: [PATCH 48/98] add more cohortDsd rows as per moh705a template --- .../builder/common/MOH705AReportBuilder.java | 173 +++++++++++++++++- 1 file changed, 172 insertions(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index c2ec762e7b..205b884f3d 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -480,7 +480,178 @@ protected DataSetDefinition moh705ADataset() { moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(),AGE_BELOW_FIVE), indParams), ""); + ReportingUtils.addRow( + cohortDsd, + "DTC", + "Diabetes", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "EPC", + "Epilepsy", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "OCDC", + "Other Convulsive Disorders", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getOtherConvulsiveDisordersList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "BRC", + "Brucellosis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RKC", + "Rickets", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getRicketsList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "VRC", + "Violence related injuries", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getViolenceRelatedInjuriesList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "CRPC", + "Cerebral Palsy", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getCerebralPalsyList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "ATC", + "Autism", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAutismList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "TRC", + "Tryponomiasis", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "KLC", + "Kalazar leishmaniasis", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getKalazarLeishmaniasisList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "YFC", + "Yellow Fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "VHC", + "Viral Haemorrhagic Fever", + ReportUtils.map(moh705indicatorLibrary.diagnosis( + DiagnosisLists.getViralHaemorrhagicFeverList(), AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + + ReportingUtils.addRow( + cohortDsd, + "OVC", + "Overweight", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow( + cohortDsd, + "SCC", + "Suspected Childhood Cancers", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getChildHoodCancerist(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "HYPO", + "Hypoxaemia (Spo2<90%)", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypoxaemiaList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + + ReportingUtils.addRow( + cohortDsd, + "RVF", + "Rift valley fever", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(), + AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "DRTC", + "Deaths due to Road Trafic injuries", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), //TODO change this to read deaths due to road traffic injuries concept and count + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "NFAC", "No of first attendances", + ReportUtils.map(moh705indicatorLibrary.newAttendances(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "RAC", "Re-attendances", + ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RFHC", + "Referrals from other health facility", + ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), //TODO correct this to point to correct count + /*ReportUtils.map(moh705indicatorLibrary.getAllChildrenPatientsReferrals( + getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), + getConcept("1537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam), */ + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RTC", + "Referrals to Community Unit", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), //TODO correct this to point to correct count + /*getConcept("477a7484-0f99-4026-b37c-261be587a70b").getConceptId(), + getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParams),*/ + ReportAddonUtils.getAdultChildrenColumns() + ); + + ReportingUtils.addRow( + cohortDsd, + "AODC", + "All other diseases for children", + ReportUtils.map( + moh705indicatorLibrary.allOtherDiseasesAboveFive(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + + return cohortDsd; } From 22368d9a70ce1ba0dbd1b220d33d5ebd5f77a442 Mon Sep 17 00:00:00 2001 From: agesa3 Date: Wed, 20 Mar 2024 15:24:06 +0300 Subject: [PATCH 49/98] add template, dsd diagnosis lists rows for 705b --- .../builder/common/MOH705BReportBuilder.java | 664 +++++++++++------- .../resources/content/kenyaemr.common.xml | 19 +- .../webapp/resources/reports/MOH_705b.xls | Bin 0 -> 89600 bytes 3 files changed, 437 insertions(+), 246 deletions(-) create mode 100644 omod/src/main/webapp/resources/reports/MOH_705b.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index 664470880a..4a7f1d5c29 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -13,6 +13,9 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; @@ -32,242 +35,429 @@ * Diagnosis */ @Component -@Builds({ "kenyaemr.common.report.moh705B" }) +@Builds({"kenyaemr.common.report.moh705B"}) public class MOH705BReportBuilder extends AbstractReportBuilder { - static final String EQUAL_AND_OVER_FIVE = ">=5"; - static final int DIARRHOEA = 5018; - static final int TUBERCULOSIS = 160156; - static final int DYSENTRY = 152 ; - static final int CHOLERA = 145622; - static final int MENINGOCOCCAL_MENINGITIS = 134369; - static final int OTHER_MENINGITIS = 0; - static final int TETANUS = 124957; - static final int POLIOMYELITIS = 5258; - static final int CHICKEN_POX = 892; - static final int MEASLES = 134561; - static final int HEPATITIS = 116986; - static final int MUMPS = 133671; - static final int SUSPECTED_MALARIA = 166623 ; - static final int CONFIRMED_MALARIA = 160148; - static final int TESTED_FOR_MALARIA = 168740; - static final int MALARIA_IN_PREGNANCY = 160152; - static final int AMOEBIASIS = 124; - static final int TYPHOID_FEVER = 141; - static final int SEXUALLY_TRANSMITTED_INFECTIONS = 112992; - static final int URINARY_TRACT_INFECTIONS = 111633; - static final int BILHARZIA = 117152; - static final int INTESTINAL_WORMS = 116699; - static final int MALNUTRITION = 134725; - static final int ANAEMIA = 121629; - static final int EYE_INFECTIONS = 140832; - static final int EAR_INFECTIONS = 71; - static final int UPPER_RESPIRATORY_TRACT_INFECTIONS = 123093; - static final int ASTHMA = 121375; - static final int PNEUMONIA = 114100; - static final int OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS = 998; - static final int ABORTION = 0; - static final int PUERPERIUM_AT_CHILDBIRTH = 0; - static final int HYPERTENSION = 117399; - static final int MENTAL_DISORDERS = 77; - static final int DENTAL_DISORDERS = 78; - static final int JIGGERS_INFESTATION = 123964; - static final int SKIN_DISEASES = 119022; - static final int ARTHRITIS_JOINT_PAINS = 148432; - static final int POISONING = 114088; - static final int ROAD_TRAFFIC_INJURIES = 86; - static final int DEATH_BY_ROAD_TRAFFIC_INJURIES = 0; - static final int OTHER_INJURIES = 0; - static final int SEXUAL_VIOLENCE = 123160; - static final int VIOLENCE_RELATED_INJURIES = 0; - static final int BURNS = 146623; - static final int SNAKE_BITES = 126323; - static final int DOG_BITES = 166; - static final int OTHER_BITES = 0; - static final int DIABETES = 119481; - static final int EPILEPSY = 155; - static final int BRUCELLOSIS = 121005; - static final int CARDIOVASCULAR_CONDITIONS = 119270; - static final int CENTRAL_NERVOUS_SYSTEM_CONDITIONS = 118994; - static final int OVERWEIGHT = 114413; - static final int MUSCULAR_SKELETAL_CONDITIONS = 0; - static final int FISTULA_BIRTH_RELATED = 0; - static final int SUSPECTED_NEOPLAMS_CANCERS = 0; - static final int PHYSICAL_DISABILITY = 0; - static final int TRYPONOSOMIASIS = 124078; - static final int RIFT_VALLEY_FEVER = 113217; - static final int YELLOW_FEVER = 122759; - static final int VIRAL_HAEMORRHAGIC_FEVER = 123112; - static final int CHIKUNGUNYA = 120743; - static final int DENGUE_FEVER = 7592; - static final int LEISHMANIASIS = 116350; - static final int CUTANEOUS_LEISHMANIASIS = 143074; - static final int SUSPECTED_ANTHRAX = 168741; - - - @Autowired - private MOH705IndicatorLibrary moh705indicatorLibrary; - - @Override - protected List getParameters(ReportDescriptor reportDescriptor) { - return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", - Date.class), new Parameter("dateBasedReporting", "", String.class)); - } - - @Override - protected List> buildDataSets(ReportDescriptor reportDescriptor, - ReportDefinition reportDefinition) { - return Arrays.asList(ReportUtils.map(moh705BDataset(), "startDate=${startDate},endDate=${endDate}")); - } - - protected DataSetDefinition moh705BDataset() { - CohortIndicatorDataSetDefinition cohortDsd = new CohortIndicatorDataSetDefinition(); - cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); - cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); - cohortDsd.setName("MOH705B"); - cohortDsd.setDescription("MOH 705B"); - - String indParams = "startDate=${startDate},endDate=${endDate}"; - -// cohortDsd.addColumn("Diarrhoea", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DIARRHOEA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Tuberculosis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(TUBERCULOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Dysentry", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DYSENTRY,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Cholera", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHOLERA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Meningococcal Meningitis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MENINGOCOCCAL_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Other Meningitis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_MENINGITIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Tetanus", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(TETANUS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Poliomyelitis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(POLIOMYELITIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Chicken Pox", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHICKEN_POX,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Measles", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MEASLES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Hepatitis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(HEPATITIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Mumps", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MUMPS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Suspected Malaria", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Tested for Malaria", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(TESTED_FOR_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Confirmed Malaria", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CONFIRMED_MALARIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Malaria in pregnancy", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MALARIA_IN_PREGNANCY,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Amoebiasis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(AMOEBIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Typhoid fever", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(TYPHOID_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Sexually Transmitted Infections", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUALLY_TRANSMITTED_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Urinary Tract Infections", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(URINARY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Bilharzia", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(BILHARZIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Intestinal worms", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(INTESTINAL_WORMS, EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Malnutrition", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MALNUTRITION,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Anaemia", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(ANAEMIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Eye Infections or Conditions", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(EYE_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Ear Infections or Conditions", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(EAR_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Upper Respiratory Tract Infections", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(UPPER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Asthma", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(ASTHMA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Pneumonia", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(PNEUMONIA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Other Lower Respiratory Tract Infections", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Abortion", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(ABORTION,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Puerperium at Childbirth", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(PUERPERIUM_AT_CHILDBIRTH,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Hypertension", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(HYPERTENSION,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Mental Disorders", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Dental Disorders", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DENTAL_DISORDERS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Jiggers Infestation", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(JIGGERS_INFESTATION,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Diseases of the skin", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SKIN_DISEASES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Arthritis and Joint pains", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(ARTHRITIS_JOINT_PAINS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Poisoning", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(POISONING,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Road Traffic Injuries", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Deaths due to Road Traffic Injuries", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DEATH_BY_ROAD_TRAFFIC_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Violence related injuries", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(VIOLENCE_RELATED_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Other injuries", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_INJURIES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Sexual Violence", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SEXUAL_VIOLENCE,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Burns", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(BURNS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Snake Bites", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SNAKE_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Dog Bites", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DOG_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Other Bites", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(OTHER_BITES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Diabetes", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DIABETES,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Epilepsy", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(EPILEPSY,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Brucellosis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(BRUCELLOSIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Cardiovascular conditions", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CARDIOVASCULAR_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Central Nervous System Conditions", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CENTRAL_NERVOUS_SYSTEM_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Overweight", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(OVERWEIGHT,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Muscular skeletal conditions", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(MUSCULAR_SKELETAL_CONDITIONS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Fistula related with Birth", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(FISTULA_BIRTH_RELATED,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Suspected Neoplams and Cancers", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_NEOPLAMS_CANCERS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Physical Disability", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(PHYSICAL_DISABILITY,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Trypanosomiasis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(TRYPONOSOMIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Yellow Fever", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(YELLOW_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Viral Haemorrhagic Fever", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(VIRAL_HAEMORRHAGIC_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Rift valley fever", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(RIFT_VALLEY_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Chikungunya", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CHIKUNGUNYA,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Dengue fever", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(DENGUE_FEVER,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Leishmaniasis or Kalaazar", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Cutaneous leishmaniasis", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(CUTANEOUS_LEISHMANIASIS,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Suspected Anthrax", "", -// ReportUtils.map(moh705indicatorLibrary.diagnosis(SUSPECTED_ANTHRAX,EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("All Other Diseases", "", -// ReportUtils.map(moh705indicatorLibrary.allOtherDiseasesAboveFive(EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("New Attendances", "", -// ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); -// cohortDsd.addColumn("Re Attendances", "", -// ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE), indParams), ""); - return cohortDsd; - } + static final String EQUAL_AND_OVER_FIVE = ">=5"; + static final int DIARRHOEA = 5018; + static final int TUBERCULOSIS = 160156; + static final int DYSENTRY = 152; + static final int CHOLERA = 145622; + static final int MENINGOCOCCAL_MENINGITIS = 134369; + static final int OTHER_MENINGITIS = 0; + static final int TETANUS = 124957; + static final int POLIOMYELITIS = 5258; + static final int CHICKEN_POX = 892; + static final int MEASLES = 134561; + static final int HEPATITIS = 116986; + static final int MUMPS = 133671; + static final int SUSPECTED_MALARIA = 166623; + static final int CONFIRMED_MALARIA = 160148; + static final int TESTED_FOR_MALARIA = 168740; + static final int MALARIA_IN_PREGNANCY = 160152; + static final int AMOEBIASIS = 124; + static final int TYPHOID_FEVER = 141; + static final int SEXUALLY_TRANSMITTED_INFECTIONS = 112992; + static final int URINARY_TRACT_INFECTIONS = 111633; + static final int BILHARZIA = 117152; + static final int INTESTINAL_WORMS = 116699; + static final int MALNUTRITION = 134725; + static final int ANAEMIA = 121629; + static final int EYE_INFECTIONS = 140832; + static final int EAR_INFECTIONS = 71; + static final int UPPER_RESPIRATORY_TRACT_INFECTIONS = 123093; + static final int ASTHMA = 121375; + static final int PNEUMONIA = 114100; + static final int OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS = 998; + static final int ABORTION = 0; + static final int PUERPERIUM_AT_CHILDBIRTH = 0; + static final int HYPERTENSION = 117399; + static final int MENTAL_DISORDERS = 77; + static final int DENTAL_DISORDERS = 78; + static final int JIGGERS_INFESTATION = 123964; + static final int SKIN_DISEASES = 119022; + static final int ARTHRITIS_JOINT_PAINS = 148432; + static final int POISONING = 114088; + static final int ROAD_TRAFFIC_INJURIES = 86; + static final int DEATH_BY_ROAD_TRAFFIC_INJURIES = 0; + static final int OTHER_INJURIES = 0; + static final int SEXUAL_VIOLENCE = 123160; + static final int VIOLENCE_RELATED_INJURIES = 0; + static final int BURNS = 146623; + static final int SNAKE_BITES = 126323; + static final int DOG_BITES = 166; + static final int OTHER_BITES = 0; + static final int DIABETES = 119481; + static final int EPILEPSY = 155; + static final int BRUCELLOSIS = 121005; + static final int CARDIOVASCULAR_CONDITIONS = 119270; + static final int CENTRAL_NERVOUS_SYSTEM_CONDITIONS = 118994; + static final int OVERWEIGHT = 114413; + static final int MUSCULAR_SKELETAL_CONDITIONS = 0; + static final int FISTULA_BIRTH_RELATED = 0; + static final int SUSPECTED_NEOPLAMS_CANCERS = 0; + static final int PHYSICAL_DISABILITY = 0; + static final int TRYPONOSOMIASIS = 124078; + static final int RIFT_VALLEY_FEVER = 113217; + static final int YELLOW_FEVER = 122759; + static final int VIRAL_HAEMORRHAGIC_FEVER = 123112; + static final int CHIKUNGUNYA = 120743; + static final int DENGUE_FEVER = 7592; + static final int LEISHMANIASIS = 116350; + static final int CUTANEOUS_LEISHMANIASIS = 143074; + static final int SUSPECTED_ANTHRAX = 168741; + static final int REFERRALS_FROM_OTHER_HEALTH_FACILITY = 0; + static final int REFERRALS_FROM_OTHER_COMMUNITY_UNIT = 0; + private static final int REFERRALS_TO_COMMUNITY_UNIT = 0; + + + @Autowired + private MOH705IndicatorLibrary moh705indicatorLibrary; + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, + ReportDefinition reportDefinition) { + return Arrays.asList(ReportUtils.map(moh705BDataset(), "startDate=${startDate},endDate=${endDate}")); + } + + protected DataSetDefinition moh705BDataset() { + CohortIndicatorDataSetDefinition cohortDsd = new CohortIndicatorDataSetDefinition(); + cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cohortDsd.setName("MOH705B"); + cohortDsd.setDescription("MOH 705B"); + + String indParams = "startDate=${startDate},endDate=${endDate}"; + + + ReportingUtils.addRow(cohortDsd, "DA", "Diarrhoea", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiarrheaDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "TBA", "Tuberculosis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DYA", "Dysentery", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CLA", "Cholera", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MMA", "Meningococcal Meningitis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeningococcalMeningitisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MOA", "Other Meningitis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "NTA", "Neonatal Tetanus", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "PMA", "Poliomyelitis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils + .addRow(cohortDsd, "CPA", "Chicken Pox", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MEA", "Measles", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "HEA", "Hepatitis", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MPSA", "Mumps", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "SUA", + "Suspected malaria", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(),EQUAL_AND_OVER_FIVE), indParams), + /*moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), //TODO port getSuspectedMalariaResults evaluation criteria + DiagnosisLists.getSuspectedMalariaResults()), indParam),*/ + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "COA", + "Confirmed Malaria positive", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), + EQUAL_AND_OVER_FIVE), indParams), + /* DiagnosisLists.getConfirmedMalariaResults()), indParam),*/ //TODO getConfirmedMalariaResults criteria + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MPA", "Malaria In Pregnancy", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaInPregnancyList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "TYA", "Typhoid Fever", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "STIA", "STI", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexuallyTransmittedInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "URA", "Urinary tract infection", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getUrinaryTractInfectionList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "BIA", "Bilharzia", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "INA", "Intestinal worms", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MLA", "Malnutrition", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "ANEA", "Aneamia", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(), EQUAL_AND_OVER_FIVE), indParams), + + ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "EYA", "Eye Infections", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "EIA", "Ear Infection Conditions", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getEarInfectionConditionsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "UPA", "Upper Respiratory Tract Infections", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getUpperRespiratoryTractInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "ASA", "Asthma", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "PNA", "Pneumonia", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "OTRA", "Other Dis Of Respiratory System", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherDisOfRespiratorySystemList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "ABA", "Abortion", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAbortionList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DPA", "Dis Of Puerperium & Childbath", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDisOfPuerperiumChildbathList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "HYA", "Hypertension", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypertensionList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MDA", "Mental Disorders", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DEA", "Dental Disorders", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "JIA", "Jiggers Infestation", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getJiggersInfestationList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DSA", "Disease Of The Skin", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "AJPA", "Anthritis Joint Pains", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthritisJointPainsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "POA", "Poisoning", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "ROA", "Road Traffic Injuries", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "OIA", "Other Injuries", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "SEA", "Sexual Assault", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "VRA", "Violence Related Injuries", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getViolenceRelatedInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "BUA", "Burns", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "SNA", "Snake Bites", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DOA", "Dog Bites", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils + .addRow(cohortDsd, "OBA", "Other Bites", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DTA", "Diabetes", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "EPA", "Epilepsy", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "BRLA", "Brucellosis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils + .getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CAA", "Cardiovascular Conditions", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getCardiovascularConditionsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CNSA", "Central Nervous System Conditions", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherCentralNervousSystemConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "OVA", "Overweight", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils + .getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "MSA", "Muscular Skeletal Conditions", + ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getMuscularSkeletalConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "FIA", "Fistula Birth Related", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getFistulaBirthRelatedList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "NSA", "Neoplams", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeoplamsList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "PHA", "Physical Disability", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getPhysicalDisabilityList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "TRA", "Tryponomiasis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "KAA", "Kalazar Leishmaniasis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getKalazarLeishmaniasisList(), EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "YEA", "Yellow Fever", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils + .getAdultChildrenColumns()); + + ReportingUtils + .addRow(cohortDsd, "VHA", "Viral Haemorrhagic Fever", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getViralHaemorrhagicFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DRA", + "Death due to road traffic injuries", + /*ReportUtils.map(moh705indicatorLibrary.diagnosis( + getConcept("1599AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), + getConcept("1603AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam),*/ + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),EQUAL_AND_OVER_FIVE), indParams), //TODO change this to read Death due to road traffic injuries + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "AODA", "All other diseases for adults", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getAllOtherDiseasesListForAdults(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "NFAA", "No. Of First Attendances", + ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE)), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils + .addRow(cohortDsd, "RETA", "Re-Attendances", + ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE)), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RFHA", + "Referrals From Other Health Facility", + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_FROM_OTHER_HEALTH_FACILITY),EQUAL_AND_OVER_FIVE), indParams), + /*ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( TODO port in this function + getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), + getConcept("1537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam),*/ + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RFCA", + "Referrals From Other Community Unit", + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_FROM_OTHER_COMMUNITY_UNIT),EQUAL_AND_OVER_FIVE), indParams), + /*ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( //TODO implement getAllAdultPatientsWithReferrals + getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), + getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParam),*/ + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow( + cohortDsd, + "RTCA", + "Referrals To Community Unit", + ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_TO_COMMUNITY_UNIT),EQUAL_AND_OVER_FIVE), indParams), + /* ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( + getConcept("477a7484-0f99-4026-b37c-261be587a70b").getConceptId(), + getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParam),*/ + ReportAddonUtils.getAdultChildrenColumns()); + + //additional indicators added + ReportingUtils.addRow(cohortDsd, "AM", "AMOEBIASIS", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(),EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "RVF", "Rift valley fever", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(),EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "CKU", "Chikungunya fever", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(),EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "DENF", "Dengue fever", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils + .getAdultChildrenColumns()); + + ReportingUtils + .addRow(cohortDsd, "CL", "Cutaneous Leishmaniasis", ReportUtils.map( + moh705indicatorLibrary.diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "ANT", "Suspected Anthrax", + ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(),EQUAL_AND_OVER_FIVE), indParams), + ReportAddonUtils.getAdultChildrenColumns()); + + + return cohortDsd; + } } diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 2cd464f7df..f5886f143c 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -906,16 +906,17 @@ - - - - - - - - + + + + + + + + - + + diff --git a/omod/src/main/webapp/resources/reports/MOH_705b.xls b/omod/src/main/webapp/resources/reports/MOH_705b.xls new file mode 100644 index 0000000000000000000000000000000000000000..0ac7eb9e146e23ab0d7d542c2fe787cfdc8884d3 GIT binary patch literal 89600 zcmeIb37DSa*~fh+l1Qu(k&yKvme@iP`#zaWWXNRFnF)fHAPA9=#9pCjvedTv7R04+p&Qi8`@zlP;F$#C_6T`W3(Nc z*fGYAv36`~$7Xhnvtzs+6YQ91$0R!@+tILNb33-MV~QPH+Od@#TidaX9aHVt){gD$ z*xrsE?AXzcX?E;n$If<4w_}DKGws;Lj$Q58&5qse*u#!J?byqXz3te?j(zRe&yM}= zIKYlJJ7(F@ZpUmpI_#KZ$ANatwWHIHgX}oij(K);*)iXaZaWs(@iIGl?C7^Rzv#daKH$FX)CXU7sdj<@3kJ5ID?sU0WT zak3rD>^Q}a<#w#F<5W9Nvty+ltL#{9$LV&QVaJ(voMp$^cAR6!xputLj`Qqzl^y5X zaiJYOc1bJjI~z9h<@WbV{|@_yfAP;4>zMwn{;zyn|NY`$ssFEP{`2!+JOlsLx#HjZ zpZ^iVZ50n2THU|?ms#?@_MfT-SMMM4uzjtnr|me>I?eWm_QlJNZT!FWXO@p)@gT&m4_J4z_8!X+Ry4%wS{Oi8H`&iKdRfF};Z=|QzI>5(%m4DsBziwb(2UYj__dMar zblaCcZ}l&ne~n!}(a=F{*8fXwO)j&2rTAAX_}~B62bf&=xs!&hSKY$yd*G7gOI9vk zHfhN4>Q?(*Ty=GIO&T(yx(ySH?9Y?F-QH6D>4k<}%9=k9HOQHd=YRaya>miB{-ts* zwN?H9fAd@HoHm$V^Us>|ynTHho{jmoFOl!?68Uy7k&kGZ549HY@eD72Zk^k&<2}wi zbNG-)fg*_4~y7+g>7X{@kf$eYIvhFO?r%{#?}`eP+cd*Njv7i7#>a zbIZ%oyiP20UCz;K`;{0j|GL5UgD$9E;O~(atmS`ibipwHd(;I({O^q~Slj;|eZkNd zj`pqMQrm9&KE$ODt9nmdvSju2*V+OcWdA)pXt*8rOaH1t)i3Q=yj>xBmMa2Q`Ru0r zWj~Jf!&>Zr%&gXZ*3NkK2^-n)>cT;G1#9?2gATB-2UL@OXPYrsv4-1Kt>JbRYWQF5 zTGl_SMq_;|Th9)=YSVp4M^B@%YhzJITTgFec3bDXMUC!-eGA(9Iy>g~HM+WcW_8Z) z>|506UD(yt)?urx=aZ9Gyb;Pdj`F(TkGN-Isy?Ev7*^5_u%8>S2 z$NqI%_q4gwcHeo|SvKS;UEOo}-)VMLarWY~S2b1~-{?DWNu$et>WOwyecgR+^Xv>w zv9mUN>8d4*S1nmJb^ekw8^`j0jqc^k&feB8X7D_5SlV##7V(YnalZ9DEfeM(Gb zq-17Fc1g*uDcLP0yQgH2l1oW<)0n5HF;7opo}R`$J&k!r z8uN@a<{4?sGt!u6q%qG(W1f-5JR^;HMjG>sH0GIU%rmD?v4zyPa8^f8`@(tMy`8hj`qmWo++|6isPC-Jx6);)=B9b^XRRYQdJ(k zbyKR!qqlyFRn|}`%A>cIN>zFE)>Nq~kKWoURprrJW2LG*dTXs%WxX}tcBMtVw&`}* zE<1JByzcJViyE^#+j@HDcC>BV{~Km6O0DKmIbDy+>3UR7*Q0W}9+lJesGP1x<#atN zr%M!C&7)G5M|t$2)x0W?KD3%w<*#6g-&XDOQd@acit(tNnn$G=kIJceREqJaoSH|a z7>~-S5rww$s1)N-9(`ylugaqjZRJ&Y^r5Z1Dvv(26;+|FJj$aFZRJ(@+=sUEs(kK4 zTX|JJ_o1!4Dxdq%R#aJA*;THtj`^MQ5A1I5Zf|d!*Qlwpul!AE*CV-})xY&TDouG* z&efyRlt<-UJt|FkRL<3-(v(N#T!})Td6Y+QSGnSZLZA6J=Fx{f^Qt`h&}UwiM<4o( zs?cX1<@TYFxsUxtRX+Ezzo^RRKK7SY)xRG5I{Mn?FD$O$&+jvR<v=vpMtvs4O#qOtB&^@oSyK7O0-Br@rJGE`j zg5rApg8YloqjHuWm5w|rXX#Pt$fI(W9+i$fDrf0Y>4+$Fm`7!Yd6Y*VHZHHqqYoRG zSLM-%jmxX@=)=ZERp>B}^610Hm%(8(&pt+DaWI7dLET>JSwN>Q7Olxa(W(>ay%-hM-*Diqf(AX zdGw*Ryef}Aw3b)p(TCRZsyzD8T2zJB@+gl!w3b)pb01pEtMa)It>snu+=tfks(kK4 zYf)AIPVDMv>z&t8{7$qe{!a9$6ys4jHIGU$9+gw`s1)N-IW><;F&>puBMNQhQ7Oiw zJo?a9UX@25+RCf)=tEn1RUUn4E2=_Ud6Y*V+RCf)xesmSRr%b9w(_cc?n7I7RX+Ej zt*ElLvb*BvcJN?BxQ%FcdBw)^s8r)oIXRC?H6E3d^QctgQ8_t}N;MvplOqa^gsrji`YhF1qvfo{Jgn7nU5j~Gv*o%L^RRZybuH#$ z4VUX$%)?qP)mhKk{a?Kcdlz)H_jSzPsjs8g{%Ul!&1>uFEbeFRU6}SZkILP_qjG(D zRPGKQmFvr+a(D2kTwflQyMssN`XUN@n@8pD;87lZ*xS4+k3Q^eUX@25_BOA|qYrx< zRbg-QD33nuZC;hnec0Q)DxdqXw|P}Q_hE1Is(kLl-bR)6**11HzkB|i&YrFp8>}&v zhqfE1u2{8n_0ltz)DL$Tw=Uc5&W&*Yg-4}0kM^k| zc~s7yDD<93r9F@G6hiNLRUUolJ+I26554DAdGw+8s0zL3Q67EhJ+I2=KJ=bf<#Qi; z&#Use554DA`P_%zqsn^Eo{`(!(i)w1E3>EL!1-GODb}>`6aur>t0V%+kfHmagjme4Mr}wy>C# z&m5tqeC7yA`OFcL@|hzf;m2wpNNY zY0TD0u_le#+9=dm7sVuv*?K6}q%m6u#hNr`>z`PY#%$daYtoplcS4P|jy>J2Z_$Fe z-JP==b2{v~ZTQ05e{YL< zSo`I=7W1$M%ylj1VJ(>ItOs*e-rn?iSQqBH7W1$^%ylj1VV#)kTFk?GG1s-2hjnAB zvv#zn^e*h_oX@jztsC3>UhKpEyWYZ{biLoBa^LW%TzMXq`-Vs5%JZn)H#{m=o=4@r z;ZeErh{CStQMqq;lt&+SJ+I2654)aM<&hF*!4WhqYt~DSLJgbc0I4k z=RWLuUX{;%*!8?BpZl=uQDtprPfVP(blHiESDv$Uabs%lu_rEFwR**>6{q;Mv*IS^ zta`ue-+dmHvOFrM>rpAoqjI_)m9ji4r|VHE%cF9-M4{C@DrI?;M;}_vtMceWt9ex( zeP}hW%A*ghMpbAvkMih4t9eyE_o3CiDxdq%YF?GkeP}hW%I7|`8dcV6);XQ_1X$aY z=iAfA4(;ygDjsgKG~R{bQEAAda*iIAhCC|g=uv6NqjHWOm4-Yj=SUR#%cIheM|t$2 zzq~4sKJ=GY<#V%a>6tZH8gsY}P}jAXhxJ(g-WKz)F3WW-=3#x7>srjiIxW>%tL3bP4{Nqu z*J2*lZn>_-JgnhzU5j~G%jLQj^RT8%b=GzE?g<@>I$pfyU;Mu8$ai>nRPG8MmFvo* za#!%ETvr~IyMjmMy7H*p6+9}}6;asJJSukukMiilp5|3~^kGl)syzCzr+HN#ec02e z3VWJIdGujV^QwIA!=C0<`P_#+&8zac4||$d<#QkQG^(t->=8|S5$22CwUa&WWUmJ0 zo{s*%J3I3Aevg7Fs={1}f+?afSE68wD9n{8m?8>uwJ7!(Q7}c6M<4r)syzDGXH@0U z$3CMfk3RO9RmDCd%A=2cMpZudvCpW==RWosRr%bgNab-`YGXy?9j4%%jqaN9D{sD!q7A&dj6Ii$~?mh(cF+ zRC@6!k3MvjSLM-%uJWoENAJ%O;Dz{}=P88E%&YPgLTgbKHZza%6vAfaRe1_wGxMq! zr?6)9VKeipEFf%VRE5^^$e+`=V1CC!dsBn*c|QyCy%!#plk=$TE|1E|c~o|nN9E)^ zD%E&YPR^rJ4N>SWkIL@yD33mLmsjP{hwk#KJo>O_c~u^L*t4h#jpb1ueb}?SDxdqX zXL(gV_hHZSs(kLlp5;~f+=s@Z%JwXK_^E!~+w9KXX^rkV#c#{rMfQBNuKqU>y6r)M zc+<1a%9}cMR^HU9v+|}+os~Cr>a4t}Q)lH(ojNOT>eN|zQ^zywyflw+)3dH?F%N6L z{JkyaVeOaeTFk>5FxR!1hqYj;vmVS@dDGM9VO^N(TFk@xFxR!1hjn7EYcUV&#a!27 z9@dSi&f3x5E~sr*cTc<{tu4P1hDYT_;ZeENJSsN|kIJRyQMplgR4z4-%8kOKa;Xu8 zZO)@|qwpw?K5TPdl}8`8Ij_p258Iqq<u0m`4FQiz zUmle+_NesbQ8{CeN?#t8Gxn(TRdQ>X%sGKBGXfTgTMIPnR zhX(ViJo?aJUX@258qBNm=tF~16&lQ=Jo?aJUX{;%XfUtJ=RP!;SLJgb8qBNmxepCS zl{J{X5BEWx2OenqmOlp2+h?!TEFU&M$nL-muPX7Vl;lx4O^-@R9+lJdsFdVUIZcmB zNgkEcBnmC&Q7OrzJo?aLUX@25TFk5R=tGNnRUUn4F{(m~d6Y*VTFk5RxeqPoRr%b9 z7W1ln?n8@tRX+Ej#i*)V%zioAOUpaBN5kIMr_pa^RJ;kiCpsjO$@#5gN zgX&w7{qO0hv+~}VIxFv;sk8FlnK~=)ovE|(-kCZp@13c$^4^&`EAO50%=#^jIow-T z*R`03wOsz*7W1&C%XKa0VQrV|TFk>5FV$J+<*dB7%;#afm+M;0!@4imwU~$XU#@F0 z59`2O*J2*lgQ?D%(BA1_LATus;QjIXUm;tNUzX`nxj%SRt}u_v{lTMhg?Uu&4<3~( z%%gID@Tgp2L}7RHsN5es%A*gvn^)!0huzJq^610v=2dz0VRxe{>~0?A(TCm5tMa)I zyPH?#b02m$ugd2>>~3C_&wbe4sItbgS7i2dx6S4y0CVPaw%Zl8gX~oS<@>Z)LA;jc zQK`wJa-trUnmj5e>QSl5qjI7im6|*%CrT8W%%f71M|t$2$-F9$J~WwE<CB^Y)*hA4JSu1HQR&R1a@Itl<2)*zd6Y*VI?k)| z=tIYORUUolIIqg14;@EU=s1t^=tIYORX+Ej?WnT0 zvu8Kfk9fA))VlLcPmfAT9+lJdsFdVUIZcmBNgkEc^r)2NQ8`1R&|)5yl03?z4=v_Z zdGw*hyef}Aw3t`r(T5hJDzunKdGw*hyegmj&|+Sd&wXeyugd2>beC7F=i&c-22S1eny{MaS^w=26%8h>YcR0{H_oT5jiAdku^dQ=MXsGOolr67;WDH4VD z@~9N#Q67D0FR#j@5AEeudGw*Zyef}Av=>#Oy*$dJ5AEeu`P_&0@~V99Lwk8uKKG%$ zyegmj&|Xwod)bH89nxvrtu7 zqjItym8v`{CrcC>&7)G4M|t$2(Yz{;J~WzF< zJSwN>Q7Olxa(W(>ay%-hM-*Diqf(AXWovnqM<1T;?^Sv9;o1IPl}8_*AnR3m^r5w= z3Qv&rD33loLDsACxerf}^{RaC!xLn^DxdrC1X-#=YkA~%h0X3hFgMohd@qGZ<>Wjn z)p%4+&ZAO|N9E)^D%E&YPR^rJ4N+(;kIKgKD33nuSzeV#ANDM-%A*f^mRIG`hdqm` z&{!Vj(T6?DtMa)IdzM$_b079Bugd2>>{(uw&wXets_H$fzPXt8tnU1zM2|{29+lJc zsFdSTIX#a`IUbeM^Qe^LQ8_)L&{`gqay-hT53S`@dGw*Ryef}Aw3b)p(TCQeDzuhI zdGw*Ryegmj&{|%V&wXeuugd2>w3b)pb01oZDr+r!va5X-*Q}24yKr{?PzaAoGai+5 z^QbiAQ8_n{N;4jnbMvS)<54*`qR>|!m1aE3qYr)MReAKGue>UcKJ=AW<Us`_NZjmCt?XE3eAuKJ=AW<#QkUimJM=Iu>-!>sZjcsQ+~=dr$0m=YvP3 z8IQ`jc~qM5sGOTer5TUPxp`EY@u-{|QRpj=N;4ki(TBeBsyzD8S6-DzANtCx^5{cf zQ5E{iqdfZ1S6-FRedsH%%I7}xl~?6+ANtCx^0^OvMOFQ)a8}R4_Ktb}L6!X)IA6Tuk@_|*)tjW@t!vo!QU5j~G zpXKjuF%RpsT-RbA)@!-0#XPLrQk}J1&dLY6eIC|uxvs@LtmSfDi+Nbn<+>L0u(r!} zE#_g3m+GwZ>~632ww~FY-G{XG+UKO&%g0;4XuQ2GZE+rzn}kQ@GV`e1Bs?mYnMdU& z;ZeEFJSsN{kIH366t*~z%1y$fJo>Q3c~u^L*y6k@k3MX1UX@25wm7Q77UxkOec0l> zDxdqX#d%de_hF0ks(kLl7Uxy@+=nfWDr>aOtiHc#hjcIOZPYJ<>(_Ao z8?=3X{Y0{yl?$z|D;HXwl?$!T%7s>E#QH`X=dGr^mOzb+R=I7+&=pV->%NaevKKs7H^SfyJEaz=TW(DcvP-DkIH?+ zqjKeWRPGxdl`GGqa^LW%TzN!c*Yl{{H$2Lt54)aM<;F5dGuk|qblrr z9_7)8UC*oXxevRZSLJgbc0I4k=RWLuUX{;%*!8HgE}Osyn>2s1_8#0Z&pxPdUcU{m z|BZ;QdcR9iY0In1`Fd2^@~E7zN2M)~%K3U!+VW`4eEm5Bb9d*p_~fDCJSvrWl&26H z&a3hiLc@7goQO1m zqjIW5q0KxhMR}A*AKJ{T^5{dGc~u^LXfv!Rwx3K25 zxD=JHysDh7N2M!|%Gr8Uy7H);tw*IRkILB+g--LRbmdVVedsi=%A*gR=2dz0q0_u7 zk3Mu7RiV>7%A*gR=2iLJhfedVeC|W1c~w65q0_u7pZm~hR9UCli<%b9UDVsjCzRVu zPuga6+Q+dL_r5Kdo35mJR7&!woTf*mB#+8zdQ?jCsGO!pr6iBaX%dAN^Qe^MQ67D0 zF|W#_4=v_ZdGw*hyef}Av=~*P#XQQR4=v_Z`P_#V^QwIALyLJ;KKG%;yegmj&|*|s zi}5KGJ&P7}&+oRk1MTfB9zJirD@*_V%cD|{N96=PD)o3&PSB%Lk4NPMJu3BhR8Ej6 zG?z!E9*^?qLvwjm9(`yougaqj&E-{j^r5+^3eDwF9(`yougd2>G?!Q9b03<^tMa)I z&E-}3+=u3(%9_jWzvx+d{OZOTin(dn*+c9NKIb*&wsmxM_w>wdJJ4RU zls>BIkbDiyqtcW|IZ)>ljFt6u#dPO^7n@#|hWD<7Jv>&k~T>a2Wdrq0TTH0rE;Xr|7}hcxP} zd}yZ5%7-*Ovo1?x4v($ZbuH#$jh4T+#XPLla$SpgShMB27W1%nOLf+7IV&Gx@_AUt z<+>L0u%63xE#_fem+M;0!}>1QwU~!>UaGU!v-@HXwhxp(+#Xb)I5hq9-JRp_o&<>JStb2N97*jQMt-ID)$JF%2no3xkq?Zt}>#q!+BKh5gz5yhaJwV z^60}3=T&+1VTbdoJo>Q1Q5AMLkMiil4(C<*+=m^`tMa)IJDgYLb02m%ugd2>>~K`o zZPtGJ>cz{KtT=sDW7(3Wt4=&+@$&RxtnKsoJ=*^xI7!M62_-2%B$TB5kWiBHLqbW) z4+$kHKO~f-{E$$R@FEv$ayJNn^G~3N_Y8wuQZTpMKl&)hDi8d{+OfV)m{q@v4|d zjg zv3VP*@?Cwp>-Sjf|I4(^v+@c+ot0Mr>a4s1P-o>8fI2I$0MuD|1)$E#D*$y?UIFkd zTp_Eo@`_BIwU|e^LRQzcm`AumR@b$dN4P>(*R_~OxI*T2;R;!uwU|e^LRQzU@v%=e zfBmX{oVxyp7L&18G9}63T3P+QEu@5NWp!N(DdAd~*I5_ZeH!z-{SDdYboTW2HQMY$ zf#=U|v)BC=y*PhPeZ8#zFzc*zSZ8bIUQfHu%4yeGIqf%1i&q6QO zS?RFOTFfK#VqMo_9-$ZOx)$>Yy;#?^m`CVEuM53cXD#Ltdabe&52+ikpq50~p#XLgu z)pad=gyyU3TKEXfSJ$=h5t^^AYvCg_pVwLQZAtUZ>FBY$c6%Fhdb+!szm(^8w9T`p z49#h4_ea?aMRV#qd2<$2dR;gLo&}Yjg;U^JQ0ZAX1)c?!o`q9D7F*J@pwhDz^N20! zbuH!*Thi-V%p*R_~OY)R^3OM2E~9RQYrbtH8y=8-y*x)$?D9cgu`BgtCKBXuNoEqtVoq^^aJ)REM+@R2%_ zx)wfCM_QeAqyNLhD=nXOT2;-o{F~=i)n_b! z_Ohz_xaId;TUF;38$B!RUe6tRmYi_< zvc)U6*n0Ymt=l%Kwyn1QFY6X8K4D2?>jfA454gm?Zf%2^>3^Qtf17^)Kh^&K;vFBq zXvfE&-GAGD|9^9}g-z`^JNWOSYKK8P3|jO3YyKWoEwsyCr#jCaR@Lu!uzTR_56pK> zSo=jD%qWJx$ZJ(=nc^3DNHwIWA6gBq?i%*uzYnw1-v9E}ra$_9|8N_7|N0Tti0bKn z-@lHHb78;wb*puYe_zkW-2dO#uhy@w?pMEo$?pI2N1E^n{pPcgwZUEe>PJPU~0Ss2Vo@dL7`?nsd(=$vV7sMff9CsFduPsS_+VQi z_GfczasIww&?cS%TZD|o5;N-s>zDd_t3ez3_p)Ht)UC;EyGR+!G1jq8W5!~PnY|}+ z%2@Ji>Mj^G*~emAhq5(eVc%L)wkHDey# zFIzJ{e8!()+hNM=VZM~volGgS9!!~S;VHB09VxTd5v6Qmi_AWaE7eU7*>kqK`NLeQ z>cMJ`eH~=8jOw2?#@0EV|DgZmu|_2Izinp!&k7ji-!o3%Gv4+BzNgM77}fO?t%B9@ zpzp_%jQDTOtTwlw$~vKzv5&JIl;4&Q84WVxJIDEX9aquA<7`LcE9ZEe{l{0_j59lY z-P*ry=U=D!*BSnGH~+eqf8Ec&&hoEw{Odvfm7Qc<)#G0e@vn#b*H`%0WBlv!{`DmP zy4=66^si_5*K_>qtL*FK=8PJ)gR;Ks`7v911me7pv;Ds&&fIuALu+V|?ewf;Du>v) z*wANR(^^KX-I|8j|Fddq8fwIPt!bDM=c}f*jaZ{K4L4$S)-=M1by?FoMx5cA)-_@+ z*0i1xtFWf^jaYv*@%srUH8D!oTumd5SZy_JWW+kFX_OHbYuea|wN=w-qlRb`qs>KQ zjPPDpjy0Mh+SF)E(Pl<=b*@=C&WKK_zi+(JHlhheQ$-VvwiQh>qPObrn{2eb(J-6k z5E~=ssQ!cF%2vrB;s=I|wSOK}H5%21>sLGSFHb%6!b6*xG}g)xo6iKlL{`=KY6ttu z<=c1Li544Nu zf!QK@phH9tu=?xoqX!NY(F1cu^gySG9ymxu4;*Yn4-9?j9zgU^6Ft#?+%Wrw@zuQM zg|PK*SapdI%~r&~hS@f;Vbv`{^a2s0UnW8{n^*mPi0&03x=)1Yg(5_=-PPZR=tD(_ zK1_t@MIuDALDt`g=p#gkK2n6}mx~b1mRf%wqK^_G`e+fN7mEU5k_gc!8zFkwz@mpqG{4!#SIe3gvbKvpMTBU6hcK|U zUGxeOqE8he`ZN)u`K?obAEH-@5WQN2=+i}r=J!5Y6wx`uh-lz6jA5h!B0D2+sDh`v>X=-WhyzFmaqcZ(2xhX~PkiV%I55u%3=EPA*^kFakTU%jV!AtPM$ zdqs$Tp9s-+ixB;O5u!gJLi9Z%M1N3(=nshy{b3QJKO#c(y&^<^RD|gJM2P;F2+{Y8 z5dDA%(H|Ef`auz*KOsW&Ln1^!EJE}rMTq{C2+^MwA^I~SM1NL<=+B7|{dp0hzaT>N z7e$Evk`bau3@mztM6YAtFsb@-^Fp`*Ho5wWXt2>&MQa&-O*F*l5z$biuZxBmJt|t; z=o_NpM&A^TFnUb1j?uS7>l%Gqw4Tx9qVp$4k6>_eOtz)7$_uowG+CPl1eq~?zJ+-c{=wFLi(Z3O~qJJx5 zML#QIMgLC3ivGQb75xVhEBcQjR`j1ltmr?BSkZqGv7-MfVnzQ=#ESmAh!y=05i9zi zB3ATsB3AVCB3ASZB387Wj^=q`MGq3Oq6dpu(QAoV(L+S6=%FH3^e_=CdTkLadbo%c zJwn8aUPr`=Ue^fG>sBv$%L~!#O7wa*F}sP~yb$gjwwu@@L~kHM^oAltj}#$#BN3uU zi4eW92+^ZOh~7km=rJNhj};+$QxT#!6Crw>2+`w3h@K!q^h6P&Cy5X}S%m0@2+^C1 z5WR&6(Njc--cp2U?mT4~t!H-w*iCE^qPGztda4M~+lmmqoe0s}8zFkVYCzH4J6x~m z^6bXAz>Oix53Sgy@+fMDHR(^sXXA?cLiFAuMDHU)^u8iQ?tjWz;PiVzfXs)aYd*hR`Eg z+o)GG+^A19!f2sr9iu};>lz&@TF>Y((fUSm|#F5)h;BSa&OjudTV^m5TCqgRMF zHabc)+URJ}CPs@zV~mawjWs$}w5ic?qRot!hbOGT{c%S5c`SBqHDmy1}@uMx4LuMn}KuQWom{d#$+dq?>l z&0V_nU7#af^lO_J!UG)}R#%A-{W=k%uNEQt8WEze74Z{ZFGBQnB1FGIgy=Vl5d9_* zqTeh+^jk!Teya%4*NYJSHW8w45Fz^QB1FGKgyH;gv6M_DJ^<9=(1J4^oqG! z`?6hM#IoH$#IoH`#IhYJV%csaV%d%ov1~UMv1~_+ShkypShizCEZeanmhGk@mhEOD zmhCtZ%XYkoWjjH{vYjYm*-jF%Y$uCYwha->c5@NSb_)^9c8Z8)yQPR_yOoG#yS0dA zyN!rtJ5|K8-B!f1-A=@^-QI|0JK9{1HHY;d-Tg((% z^uV4XdSEXRJ+QZk9@s}j59}+V2lf-u1N)2UfdfSJK%0mjm?feI+C}uhY!N-sA)*K7 zi0FX>MfAX25k1f;q6ZEV(E|q?(F2>jbPsT?dlQKshlmh;s0h)Ai4eU=gy_RXh(1Du=p#jlez^$IuMi>n zC=sHM79o1E2+_xg5Phr&(Z`7py+nlQ<3)%*L4@cNMTlN1Li9-@M4xPg=rIF}9wX80 z2pd+*nin$GMV}%<^l}lRSBMaOstD1ii4eU~gy>ZwM6VVh`g9SZ&k!N{OcA2b5+V9* z5u(o#A^KbqqF*UO^m!sgze2@c z-z!4&`$UMoTZHKMixB+*5u)!AA^L+NM1M$x=nsn!{SgtO?-e2XqasA#CqnecM2Nm$ zgy;uEi2k?;(GQ9c{Rt7G9}*$@VG*J~DMIw8M2P;h2+^MrA^Ni-M1M|%=+BD~{RI)C zzbHcVmy8g-*}$SVljw0S`peA=8Rw$EB0}_6MTq{I2+@y-5dC!#q8}9@`Wqrde^Z3$ z$3%$!mI%?`79sj^5u(2%Li7_NM1NO==1Dh#n?F^x7gs4;LYNgb2~= zh!DN55u(QrEPA{|PjJ!eH7{g>i(X%Z=nX`O-cZDf9w|cfMj}Ly5+QnH5u!(n5WR^A z(PKo29xFohrXoadCPMT$5u(S75IsSJ=!qgkPZA+|vIx-)5u!I2A$kiDqNj)uy`>1z zTZs_8wFuGMh!8zhgy?NWh~7?w==s2s4>w+@6f!Ei7t9a5u&Gw5WSNK z(L0L}Jza$886rf_6d`&S5u$e$A$m6vqIVY|dJhqz_Y@&|FA<{m79n~c5u*1MA$mU% zqW2de`T!B4+eC<-B|>z&2+^}ei0%*}dX5Ou2Z|6qSA^(J5uy(gA^Kn=L{A)8^hAlC zh(1h&=tUw# zA1*@l5h6q%DMIwiMTmZd2+>E05Ph@=(ThchK1PJ-V?~HQPK4+sB19iALi7nDM4u=^ z^imO`PZA;eWFtgR8d&rsiMIQ5t$bPYLhSxryO2{vh+Zy2^a>H8PZc5hG!dd#iV(d@ zgy_{GM4v7~^cf;VpD9B0St3NAEkg7;B1E4nLi8&|h(1q*=vRpleZC0M7l;sjp$O3z zi4c9U2+@~_5Phi#(U*x3{b~`SFBc*DH6lb`Awu+(Mu?s~u;|GynwOI{Omuvy;^r-~ zEm~w#T4Yhm0A~u@qMQk*06S2|UAY!9=yNHeE9U?ZG8%1n1H;LG2ZWgi8yi>$R^DYq^ z%`GA}np;I|G`ES^Xl@s=(Y#y4MstUVjpj}f8_iutY%~q~?N7e$Evk`baeA6PU`O|5SX@S9?M_2uS;@b(rPR$mbz`l}*De@%qwM?{GJx(Lya ziV*z`5u(2-LiA%IM1MV<{kRCx-w`4D2@#^dD?;@5M2P;r2+=~$sT1{V4TA{P3FA{P2c5et1I5et2kh=snfh=o2{#6sUh#6lkd(6~%%?sJeck~@ah@K`w z^iCo~?<_*}bP=Lwh!8zfgy>yFh~8C%=-ot!-d%*~Jw%A!Q-tWfM2Oy7gy?-lh~8I( z=>0^9-d}|114M{!6Crw*2+{2#M9&r>xZwM6VVh`g9SZ&k!N{OcA2b5+V9*5u(o#A^KbqqF*UO^m!sgzeQj zR2O}f2+^+-A^K_&qOTDl`dSg9UoS%Rbs|K+L4@cxiV*!K5u)ELLiAfih<>XG(btO* z{WcMzZxA8+?IJ|KLxkuXMTovhgy@?^h<>LC(eDx=`W6wQZxtc>HW8w47a{uHB1GRI zLiC*?MBinE=&1vXo+{DY`DyRZ(7cdsUG#fJh<=|4(RYgw{eBUmKOjQ%Jt9PZP=x3Y zi4gr^5u!gLLiD{NM1NF-==(&7{+I~S_lpqyfC$ka7a{sV5u!gKLi9r-L_aJ-^e07# z{*(yOpB5qdGa^KPR)px!i4gsH5u(2!Li86!i2jlhqPHDb^tKYsJ=%6ZO7lXtbJ1TB zA^NK#M1M_$=to3|{<;X!kBSie4H2ThDMIvPB1C^ngy?UJ5dF9a(ccjv`Uw%DzbiuY z_e6;Pz6jAj5Fz@9B1AtaLiAH2L_aM;^p8Y{{;>$rKM^7Nry@lEOoZs4ixB;c2+_X~ zA^Mj_h~92s(c4Kh4^!CdN}3n4y@|Hhm5BUxB_e-aiO649BJ$Uji2QXWB7a?p$X{0? z^4FD!{BqMoL z5`nwGx0h%hd$L#gH!oxdU(xG}SkW7ZSkW7bSkWUztmutItmsi9R`kXqR`h5QD|!lLi8RYMDHm=^j;!F?=3>~ zJ|aZ#D?;>sB1G>mLi7P5M7N0$Jxhe>b`hdyixAx*Li8LFq7M`ydael3ogzdZBtrDT zMu^^VV9`5DG>;P7?dax(Omop)B1F#@A-Y?H=mjD~zf6Sa9ucB@MTqVbA$p+*(T9i- zeW(c0hlvoqNQCIaMTkB^gy>U(XS98`X~{ij}{?%u?W$}h!B0O2+_xh5WPf% z=;K9*K0$=&6Gez#Dnj&0B1E5Tgy?Ali=HOYJoIn3qnj79lZ!q@gy`iWM6VDb`cx63 zPZJ?}r3lfhM2KE3LiFh(M4ur-^qC?=pCv-{*&;-rBSQ4KB1FGZgy{1`h<=p_(dUa0 zeSrwk7m5&lkqFTjix7Q@2+@~{5Pg{l(XSRE`f?GXUn4^F6(U4mX@uyV1{S@OMDu(O zyB*!UkeyxhRU$;cPK4;IMTovegy?HUhsDh`v>X=-WhyzFmaq zcZ(2xhX~PkiV%I55u$ek&69NOc69SXrn~6(iV*!i5u)!FA^QCyM1Mep=zBzn z{-6la9}*$@!y-g~M1<&jMTq{W2+{Y65dAR`qVE?W`T-H5KQ2P_gCazKLWJmtM2LP^ zgy>I-5dA3;qCYJ{^k+nf{;UYmpA#Ya^CColL4@cpiV*!JBScRhSoCy>=9yP^JGyxx zGhFmnM2P;X2+>~?A^H&!qQ5Re^rIp~e?x@mZ;BB8mcA5d9+&qJJzx^iM>H{;3GjKNBJP=ORQu zBSQ2qM2P;S5u#@dEP94S^K?3UpTp*b%yiMe79sjKB1HdIgy?5Qi2j`j(Z3fV`VS&R z|51eKKZy|iXAz?RB0}_EMTq{J2+@BRA^IO8ME_HS=;uU;eqMy=7et7*bLr1Hm{~s` zL4;_#mD>C_M6V@6^birEhl&tAOoZsQMTj0QLi7j`qSp~2dR-$#&m36vOo`?>l6E_~ zc_F*F==DX2-av%t4Mm6^DMIu{B1Df8A$nsGqDPAmy@?3XV?>A^D?;?9B1CT{Li9Kh zqQ{F6Jwb%%i6TT#5+QoB2+<7@D|&MgqPGwsdWs0qTZ$09l?c&Wix9ny2+>nTh~8F& z=%gLSm1v&LY`3GE7qXj+?h+w-z6jCX zB1A6`A^K$^ME8gg-77+Lp9s+lMTkB`gy=&>h(1h&=tUw#A1*@l5h6q%DMIwiMTmZd z2+>E05Ph@=(ThchK1PJ-V?~HQPK4+sB19iALi7nDM4u=^^imO`PZA;eWFtiHHn8a3 zB$}tF+wJJ)h3xL4PZ1${xd_oKM2J3Bgy_>mh+Zi|^ePdeSBnsRx(Lx{h!B0I2+?PW z5Ph}?(dUQ|eXa=6uM{ErJQ1Q_B|`N1B1B&xLiB|qL|-IA^u;1XUm`;Er6NRMCPMV9 zMTov!gy`3Z5PgLR(N`KFdiQ}v?=I22?!azGH!oxl7k!lo(XSIB`f3rPuMr{oS`ngO zFGBQnB1FGIgy=Vl5d9_*qTeh+^jk!Teya%4*NYJSHW8w45Fz^QB1FGKgy7^FsD=(O(fE`l}*De@%qwM?{GJx(LyaiV*z` z5u(2-LiA%IM1MV<{kRCx-w`4D2@#^dD?;@5M2P;r2+=1zTZs_8wFuGMh!8zhgy?NWh~7?w=<ul7a@9v2+=b|h~7nn=v_sK-c5w)-9?DrLxku(MTp)@gy_9Rh~7tp z=zT?q-cN++{Y8jAK!oTv5u#^_5Zx|9^lTBLJ4A?{BSQ3nB1F#>A-Yq9=z~OvKG+D+ z_Eweyy~uK3iRM+ec00OxA^W-LE)k;VixAx{Li7R=qF*LLbdLzpy&^>Si4eU|gy=&= zh(1(==)**aUL->F;UYvIAwu+#B1FGjgy>g@5Pg&g(MO9Ay;y|kV?>BPR)px|M2KD@ zLiF(>M4uo+^ob%wFBKvBBoU%dHsUR6_jA!}-lCS*OWTd*X662F^Ar&_my58uLWIpz zMc6z|gw2&AY_1YvbF~PYr;D(8h6tNyim-W>2%Be%uz8LMo9BwK`AQKs&l6$uRU&Mj zFT&;pB5YnL!sbOHY+fwF<|QI*UMj-oWg=|8T7=EZMc90e2%A@kuz95s%Xa_P%a)k8 zsNKIhplUR#!7bjRc7I>dyg$PM)&ueV8QLss_@~BH_D1UV*=|-h%d*Y=!xt+102I60 zU|D;M@15=6yVW53%RW}2{@#uvt3Qf+j{Sr+A2Yt@eG(3|x|q$iERL_UMRrh&?BEvJ zycStk$hi7-fMs_7Li4;I;A`V55o_ahBG$&$BG$$=BG$&WBG$(1MXZhMM68WBh*%qM z6tOnmBw}s6S;X3Si-@)HRuOCCdJ${mZ6emj4I9~bcvI1h^W2%Jxd_z0Yb zM0^C!!y-Nc=aV8n0_RgAJ_6^{B0d7=Ga^0$=d&W->+N$QJ_6_SB0d7=3nD%O=Zhjf z0_RIjVq@B{`m)I14nTyzuZmcxUlXxV9}(g2>mnBFqaqgSH$*JdZ;Du`kBL~Q-x9G< zzb#^+J}zRRen-SYeL}=S{jP|G`aKZ~_4^_g>JLOL)E|mis85Pms85Mls85Sns6P_1 zP=739q5ed~Lj9?Th59oQ3-#wB7V0x17V0lVEYx2bu@Yz5inQCuwi5YuVvnyktJ-}f z{#t~|--s~zTM;Io6=CvsB24~XgvmdMF!@IjCjTVDD{EG;ae-&Z!Zz4?oU4+Sh zh%ot25hkA#Ve)wqCSMR?(mr9ed6qCaNQBA3B22C&!sHMUCWneJIZTAfwMCd5F2dvp z5hm9WVRBugVfJeO_F~H&Y&I+VB(kmA?H>j`G+7_l-ma~e>k4-NK=Z<8n{fN+G7+CX zwt95nJzeBDUV`o5c0HN!1RbK}I`@1{+Nit!1>6Xo%6yqM=69MZ=6{h}Jfm zDH?9Hi-;GN>?-1gCA*1uVae_yURbh+h!>XZDdL4Cdx>~q$=)JfShA0Z7nbZR;)Nyq ziFjej{vuvja)5{zmb8g@VaY5JFDz*n@xqeXB3@Y1A>xH4b40wbU|Y{b^fb#Qxl!TvtbS0X*}-~Z1(PQ||az+w~7i&coZO>$t>RW%yb+Tk_{ z+y7h}!?9`|lF5{m&P%{dbGl{uhYY{$D0y`|lC4{r8I4{`*91{|iNI|A&a! z{tp$g{U0V``(Gqt`#)U7_J4$k?f*y-+yBc&Z2zwivHc$7q{&A$qw8(JMrVK2?P1(?p0~DMIur5u#U%5PiA`(PxMdeWnP}XNeGfwg}PZh!B0Q z2+^+;A^JQKqF*IK^!Xx0Um!yCg(5^>BtrDXB1B&zLiD8~L|-OC^s7aPzFdUp*N6~( zg$U7C8X>xKV9}it&292=)oYsiMYo8h=^P8{V5UG*q;`0jr~U=uCf1E#5MMxh`7f7QxVt9ekS4?`_DyOV}C}(HTGYK zxW@iVBhK=?fkn@gXzmgnSN*DaAzd!|*CIs!Muh0!iu^MaM2P;Kh#~x5gy=tr5dB9H zqW>g9^q)nD{)-6Fe-$D6Zz4qhU4-a=h!Fix5u%?HA^Ld{qF)dpx*Ad67Vomh=&)>YU`>(16wv`NicCLN* z$ZGhrTq2iL*~{$h&WLAu#hcv?@$6L3M?5={e+z#GSL^uq@jdpc0{hswQGU0iJ=Wlr zNBP&A?4LKbF}2yP1wO}u7i0{!G1yP>f3JV6{V&nrxpqs3k<7LKCQm+L_*lP&TNmw_Hk40+sSP%a$#%-LI-< zEj|8to*?|+{$u@D|Iq*DB|L8%%b*q)L0><4>5aetTla}0@49w)wf#09{0{r$diD?N z+u!{Asdn(g&$5Gk?Gig!1J~HW-guK8O!7T;upT~Y2Yc?P?OZ(z7RLkw}mDSn**2u=# zN?Eh5x&N?-w7Rf6Exdpxu|J2}PhVM`Tpi=%IJpl0jjyAu+qfv!E#vrCzLomZ4q~+Q zY`gvBQ*1BjwlSRK*}wCJpU?VRa}NI1@9k_B4zi!StXlG~ep{+r$A12rpZ)L5e{}Pb zhE~1R={EmUs>SZU)4JezcS5qdT5A8lJpI%cgQ?A*&wlx@{(R2YKK1Fh?wM^r;aDHT o67Rr&Z#;YaH|EbCzWT)}{Ez?d-#!0a-})c_(0&*2Kl%Cp4|J|ov;Y7A literal 0 HcmV?d00001 From 5f69e4a76f6fb53258edc923b32ace0d44fb498f Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Fri, 15 Mar 2024 11:37:28 +0300 Subject: [PATCH 50/98] add sql for getting list of patients for ward admission --- .../module/kenyaemr/util/SqlQueryHelper.java | 2 +- .../resources/PatientListForWardAdmission.sql | 26 +++++++++++++++++ omod/src/main/resources/liquibase.xml | 28 ++++++------------- 3 files changed, 35 insertions(+), 21 deletions(-) create mode 100644 api/src/main/resources/PatientListForWardAdmission.sql diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java index b45c1b6346..cffede8166 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/util/SqlQueryHelper.java @@ -63,7 +63,7 @@ public PreparedStatement constructPreparedStatement(String queryString, Map paramNamesFromPlaceHolders = getParamNamesFromPlaceHolders(finalQueryString); String statement = transformIntoPreparedStatementFormat(finalQueryString); PreparedStatement preparedStatement = conn.prepareStatement(statement); - if(params != null && params.size() > 0 ){ + if(params != null ){ int i=1; for (String paramName : paramNamesFromPlaceHolders) { String paramValue = params.get(paramName)[0]; diff --git a/api/src/main/resources/PatientListForWardAdmission.sql b/api/src/main/resources/PatientListForWardAdmission.sql new file mode 100644 index 0000000000..d4601d1481 --- /dev/null +++ b/api/src/main/resources/PatientListForWardAdmission.sql @@ -0,0 +1,26 @@ +INSERT INTO global_property (`property`, `property_value`, `description`, `uuid`) +VALUES ('bedManagement.sqlGet.patientListForAdmission', + "select + patient_identifier.identifier AS idNumber, + CONCAT(pn.given_name, '' '', pn.family_name) AS name, + TIMESTAMPDIFF(YEAR, p.birthdate, CURDATE()) AS age, + p.gender gender, + el.visit_type visitType, + cast(el.date_started as datetime) visitStartTime, + el.admission_encounter_uuid admissionEncounterUuid, + p.uuid patientUuid +from person p + INNER JOIN person_name pn ON pn.person_id = p.person_id AND pn.voided IS FALSE + LEFT OUTER JOIN patient_identifier ON patient_identifier.patient_id = p.person_id AND patient_identifier.voided IS FALSE + INNER JOIN + (select v.patient_id, bpam.patient_id activeBedAssignment, vt.name visit_type, v.date_started, e.uuid admission_encounter_uuid + from visit v + inner join encounter e on e.patient_id = v.patient_id + inner join form f on e.form_id = f.form_id and f.uuid = 'e958f902-64df-4819-afd4-7fb061f59308' + inner join visit_type vt + on vt.visit_type_id = v.visit_type_id and vt.uuid = 'a73e2ac6-263b-47fc-99fc-e0f2c09fc914' + LEFT JOIN bed_patient_assignment_map bpam ON bpam.patient_id = v.patient_id AND bpam.date_stopped IS NULL + where v.date_stopped is null and (e.encounter_datetime <= v.date_started and e.encounter_datetime>=date_sub(v.date_started, interval 2 day )) + having activeBedAssignment is null) el on el.patient_id = p.person_id;", + 'Sql query to get patients waiting for admission', + uuid()); \ No newline at end of file diff --git a/omod/src/main/resources/liquibase.xml b/omod/src/main/resources/liquibase.xml index 1b26e06fe4..d23df06347 100755 --- a/omod/src/main/resources/liquibase.xml +++ b/omod/src/main/resources/liquibase.xml @@ -251,29 +251,17 @@ - - + + Query for getting list of patients waiting for ward admission + + + \ No newline at end of file From caa10c7903b025e569c43b01711205b7a55232b4 Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Tue, 19 Mar 2024 00:51:43 +0300 Subject: [PATCH 51/98] redirect login and home requests to o3 pages --- .../kenyaemr/EmrOpenmrsUrlOverrideController.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/EmrOpenmrsUrlOverrideController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/EmrOpenmrsUrlOverrideController.java index d5a815e5f1..1b4b4e9610 100755 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/EmrOpenmrsUrlOverrideController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/EmrOpenmrsUrlOverrideController.java @@ -21,8 +21,8 @@ public class EmrOpenmrsUrlOverrideController { private static final String OPENMRS_HOME_URL = "index.htm"; private static final String OPENMRS_LOGIN_URL = "login.htm"; - private static final String KENYAEMR_HOME_URL = EmrConstants.MODULE_ID + "/home.page"; - private static final String KENYAEMR_LOGIN_URL = EmrConstants.MODULE_ID + "/login.page"; + private static final String KENYAEMR_HOME_URL = "spa/home"; + private static final String KENYAEMR_LOGIN_URL = "spa/login"; private static final String KENYAEMR_FORGOTPASSWORD_URL = EmrConstants.MODULE_ID + "/forgotPassword.page"; private static final String KENYAEMR_HELPDIALOG_URL = EmrConstants.MODULE_ID + "/helpDialog.page"; @@ -32,7 +32,7 @@ public class EmrOpenmrsUrlOverrideController { */ @RequestMapping("/index.htm") public String showOurHomePage() { - return Context.isAuthenticated() ? ("forward:/" + KENYAEMR_HOME_URL) : ("redirect:/" + OPENMRS_LOGIN_URL); + return Context.isAuthenticated() ? ("redirect:" + KENYAEMR_HOME_URL) : ("redirect:" + OPENMRS_LOGIN_URL); } /** @@ -41,7 +41,7 @@ public String showOurHomePage() { */ @RequestMapping("/login.htm") public String showOurLoginPage() { - return Context.isAuthenticated() ? ("redirect:/" + OPENMRS_HOME_URL) : ("forward:/" + KENYAEMR_LOGIN_URL); + return Context.isAuthenticated() ? ("redirect:" + OPENMRS_HOME_URL) : ("redirect:" + KENYAEMR_LOGIN_URL); } /** @@ -50,7 +50,7 @@ public String showOurLoginPage() { */ @RequestMapping("/forgotPassword.form") public String showOurForgotPasswordPage() { - return Context.isAuthenticated() ? ("redirect:/" + OPENMRS_HOME_URL) : ("forward:/" + KENYAEMR_FORGOTPASSWORD_URL); + return Context.isAuthenticated() ? ("redirect:/" + OPENMRS_HOME_URL) : ("redirect:/" + KENYAEMR_FORGOTPASSWORD_URL); } /** * Handles requests to helpDialog.form. If user is authenticated they will be redirected to this modules's home From dcbc3f2764e48ecaeac53129ef2afb9026c6149d Mon Sep 17 00:00:00 2001 From: njorocs Date: Tue, 19 Mar 2024 16:22:52 +0300 Subject: [PATCH 52/98] Fixing failing query due to date valiation in mysql 8 --- ...ResultsGreaterThan6WeeksDataEvaluator.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/pnc/PNCHIVResultsGreaterThan6WeeksDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/pnc/PNCHIVResultsGreaterThan6WeeksDataEvaluator.java index 62158120d7..f3ef150926 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/pnc/PNCHIVResultsGreaterThan6WeeksDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/pnc/PNCHIVResultsGreaterThan6WeeksDataEvaluator.java @@ -36,25 +36,25 @@ public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, Evalu EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); String qry = "select a.encounter_id,\n" + - " if(timestampdiff(WEEK, a.date_of_delivery, a.visit_date) > 6 and tested_at_pnc is not null, 'Yes',\n" + - " 'No') as tested_within_6_weeks\n" + - "from (select v.patient_id,\n" + - " v.encounter_id,\n" + - " coalesce(nullif(v.visit_date, ''), nullif(t.visit_date, '')) as visit_date,\n" + - " coalesce(nullif(d.date_of_delivery, ''), nullif(v.delivery_date, '')) as date_of_delivery,\n" + - " coalesce(nullif(v.final_test_result, ''), nullif(t.final_test_result, '')) as tested_at_pnc\n" + - " from kenyaemr_etl.etl_mch_postnatal_visit v\n" + - " left join (select d.patient_id,\n" + - " mid(max(concat(d.visit_date, date(d.date_of_delivery))), 11) as date_of_delivery\n" + - " from kenyaemr_etl.etl_mchs_delivery d\n" + - " where d.visit_date <= date(:endDate)\n" + - " group by d.patient_id) d\n" + - " on v.patient_id = d.patient_id\n" + - " left join (select t.encounter_id, t.patient_id, t.visit_date, t.hts_entry_point, t.final_test_result\n" + - " from kenyaemr_etl.etl_hts_test t\n" + - " where date(t.visit_date) between date(:startDate) and date(:endDate)) t\n" + - " on v.patient_id = t.patient_id and v.visit_date = t.visit_date\n" + - " where date(v.visit_date) between date(:startDate) and date(:endDate)) a;"; + " if(timestampdiff(WEEK, a.date_of_delivery, a.visit_date) > 6 and tested_at_pnc is not null, 'Yes',\n" + + " 'No') as tested_within_6_weeks\n" + + " from (select v.patient_id,\n" + + " v.encounter_id,\n" + + " coalesce(v.visit_date,t.visit_date) as visit_date,\n" + + " coalesce(d.date_of_delivery, v.delivery_date) as date_of_delivery,\n" + + " coalesce(v.final_test_result, t.final_test_result) as tested_at_pnc\n" + + " from kenyaemr_etl.etl_mch_postnatal_visit v\n" + + " left join (select d.patient_id,\n" + + " mid(max(concat(d.visit_date, date(d.date_of_delivery))), 11) as date_of_delivery\n" + + " from kenyaemr_etl.etl_mchs_delivery d\n" + + " where d.visit_date <= date(:endDate)\n" + + " group by d.patient_id) d\n" + + " on v.patient_id = d.patient_id\n" + + " left join (select t.encounter_id, t.patient_id, t.visit_date, t.hts_entry_point, t.final_test_result\n" + + " from kenyaemr_etl.etl_hts_test t\n" + + " where date(t.visit_date) between date(:startDate) and date(:endDate)) t\n" + + " on v.patient_id = t.patient_id and v.visit_date = t.visit_date\n" + + " where date(v.visit_date) between date(:startDate) and date(:endDate)) a;"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); From 50c2c6022244a884549882fb2f81c5d6221837fd Mon Sep 17 00:00:00 2001 From: injiri Date: Wed, 20 Mar 2024 18:38:49 +0300 Subject: [PATCH 53/98] include 705b bean and set report dimension --- .../builder/common/MOH705BReportBuilder.java | 15 +++++++++++++-- .../main/resources/content/kenyaemr.common.xml | 2 +- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index 4a7f1d5c29..4c715adc28 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -17,6 +17,7 @@ import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; +import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; import org.openmrs.module.reporting.evaluation.parameter.Mapped; @@ -113,6 +114,15 @@ public class MOH705BReportBuilder extends AbstractReportBuilder { @Autowired private MOH705IndicatorLibrary moh705indicatorLibrary; + private final CommonDimensionLibrary commonDimensionLibrary; + + @Autowired + public MOH705BReportBuilder(MOH705IndicatorLibrary moh705indicatorLibrary, CommonDimensionLibrary commonDimensionLibrary) { + this.moh705indicatorLibrary = moh705indicatorLibrary; + this.commonDimensionLibrary = commonDimensionLibrary; + } + + @Override protected List getParameters(ReportDescriptor reportDescriptor) { return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", @@ -126,13 +136,14 @@ protected List> buildDataSets(ReportDescriptor reportD } protected DataSetDefinition moh705BDataset() { + String indParams = "startDate=${startDate},endDate=${endDate}"; + CohortIndicatorDataSetDefinition cohortDsd = new CohortIndicatorDataSetDefinition(); cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); cohortDsd.setName("MOH705B"); cohortDsd.setDescription("MOH 705B"); - - String indParams = "startDate=${startDate},endDate=${endDate}"; + cohortDsd.addDimension("day", ReportUtils.map(commonDimensionLibrary.encountersOfMonthPerDay(), indParams)); ReportingUtils.addRow(cohortDsd, "DA", "Diarrhoea", ReportUtils.map( diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index f5886f143c..6d2d666bfa 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -88,7 +88,7 @@ - + From 34c8c6ed0e4c35b8c4b4c22f81bff7dbfb0c3f74 Mon Sep 17 00:00:00 2001 From: injiri Date: Thu, 21 Mar 2024 13:14:06 +0300 Subject: [PATCH 54/98] rebase --- api/src/main/resources/content/kenyaemr.common.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 02454cbaa2..7598a81309 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,6 +89,7 @@ + From 9fd4acb8b99f89de422bd1468d616bce8eb9be4b Mon Sep 17 00:00:00 2001 From: Joshua Murithi Date: Fri, 22 Mar 2024 14:05:36 +0300 Subject: [PATCH 55/98] (OPS): Github workflow to allow auto-deployment to dev (#1845) Signed-off-by: Joshua Murithi --- .github/workflows/cicd_process.yml | 40 +++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 4 deletions(-) diff --git a/.github/workflows/cicd_process.yml b/.github/workflows/cicd_process.yml index e379b6bb1d..4f91706344 100644 --- a/.github/workflows/cicd_process.yml +++ b/.github/workflows/cicd_process.yml @@ -1,11 +1,11 @@ name: deploy to prod 8600 on: push: - branches: [ master ] + branches: [ master, 2.x ] jobs: - build: - name: Deploy + name: deploying to 2.x instance + if: github.ref == 'refs/heads/2.x' runs-on: ubuntu-latest steps: - name: executing remote connection @@ -23,7 +23,7 @@ jobs: sudo chown -R cicd2:cicd2 openmrs-module-kenyaemr git config --global --add safe.directory /apps/github-workflows/kenyaemr-modules/openmrs-module-kenyaemr cd /apps/github-workflows/kenyaemr-modules/openmrs-module-kenyaemr - git clone https://github.com/palladiumkenya/openmrs-module-kenyaemr.git /apps/github-workflows/kenyaemr-modules/openmrs-module-kenyaemr + git clone -b 2.x https://github.com/palladiumkenya/openmrs-module-kenyaemr.git /apps/github-workflows/kenyaemr-modules/openmrs-module-kenyaemr sudo chown -R cicd2:cicd2 /apps/github-workflows/kenyaemr-modules/openmrs-module-kenyaemr git status mvn license:format @@ -35,3 +35,35 @@ jobs: sudo chmod 755 /var/lib/OpenMRS/modules/*.omod sudo systemctl stop tomcat sudo systemctl start tomcat + + dev_server_deployment: + name: deploying to 3.x dev instance + if: github.ref == 'refs/heads/master' + runs-on: ubuntu-latest + steps: + - name: executing remote connection + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.CICD_HOST }} + username: ${{ secrets.CICD_USERNAME }} + key: ${{ secrets.CICD_SECRET }} + port: ${{ secrets.PORT }} + command_timeout: 200m + script: | + cd /apps/githubworkflows/kenyaemr-modules + sudo rm -rf openmrs-module-kenyaemr + sudo mkdir openmrs-module-kenyaemr + sudo chown -R cicd:cicd openmrs-module-kenyaemr + git config --global --add safe.directory /apps/githubworkflows/kenyaemr-modules/openmrs-module-kenyaemr + cd /apps/githubworkflows/kenyaemr-modules/openmrs-module-kenyaemr + git clone- -b master https://github.com/palladiumkenya/openmrs-module-kenyaemr.git . + git status + mvn license:format + sudo mvn clean install -DskipTests + sudo rm -rf /var/lib/OpenMRS/modules/kenyaemr-*.omod + sudo cp -r /apps/githubworkflows/kenyaemr-modules/openmrs-module-kenyaemr/omod/target/kenyaemr-*.omod /var/lib/OpenMRS/modules/ + sudo chown -R tomcat:tomcat /var/lib/OpenMRS/modules/ + sudo chmod +r /var/lib/OpenMRS/modules/*.omod + sudo chmod 755 /var/lib/OpenMRS/modules/*.omod + sudo service tomcat9 restart + From 3ae4a7684aed7fa6c325f45775c53c2beb298d3f Mon Sep 17 00:00:00 2001 From: Joshua Murithi Date: Sat, 23 Mar 2024 18:52:06 +0300 Subject: [PATCH 56/98] Removed misplace - from the clone (#1846) --- .github/workflows/cicd_process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cicd_process.yml b/.github/workflows/cicd_process.yml index 4f91706344..878a7df659 100644 --- a/.github/workflows/cicd_process.yml +++ b/.github/workflows/cicd_process.yml @@ -56,7 +56,7 @@ jobs: sudo chown -R cicd:cicd openmrs-module-kenyaemr git config --global --add safe.directory /apps/githubworkflows/kenyaemr-modules/openmrs-module-kenyaemr cd /apps/githubworkflows/kenyaemr-modules/openmrs-module-kenyaemr - git clone- -b master https://github.com/palladiumkenya/openmrs-module-kenyaemr.git . + git clone -b master https://github.com/palladiumkenya/openmrs-module-kenyaemr.git . git status mvn license:format sudo mvn clean install -DskipTests From 9020769bbd13892ba7b651f6207ea0c944fd34b6 Mon Sep 17 00:00:00 2001 From: patryllus Date: Tue, 26 Mar 2024 14:19:55 +0300 Subject: [PATCH 57/98] Updated mismatched blood in stool and unexplained bleeding concepts in dysentery and Viral haemorrhagic fever DMI calculations --- .../library/surveillance/EligibleForDysenteryCalculation.java | 4 ++-- .../surveillance/EligibleForHaemorrhagicCalculation.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForDysenteryCalculation.java b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForDysenteryCalculation.java index cd2865db7a..f3d66bda01 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForDysenteryCalculation.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForDysenteryCalculation.java @@ -47,7 +47,7 @@ public class EligibleForDysenteryCalculation extends AbstractPatientCalculation public String getFlagMessage() { return "Suspected Dysentery case"; } - Integer BLOOD_IN_STOOL = 132494; + Integer BLOOD_IN_STOOL = 117671; Integer DIARRHEA = 142412; Integer SCREENING_QUESTION = 5219; @@ -110,4 +110,4 @@ public CalculationResultMap evaluate(Collection cohort, Map Date: Sun, 31 Mar 2024 07:26:52 +0300 Subject: [PATCH 58/98] new mods --- .../KenyaemrCoreRestController.java | 392 ++++++++++++++++++ 1 file changed, 392 insertions(+) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 7e77052cf7..49c32cb0ab 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -64,6 +64,7 @@ import org.openmrs.module.kenyaemr.metadata.OVCMetadata; import org.openmrs.module.kenyaemr.metadata.MchMetadata; import org.openmrs.module.kenyaemr.metadata.VMMCMetadata; +import org.openmrs.module.kenyaemr.nupi.UpiUtilsDataExchange; import org.openmrs.module.kenyaemr.regimen.RegimenConfiguration; import org.openmrs.module.kenyaemr.wrapper.EncounterWrapper; import org.openmrs.module.kenyaemr.Dictionary; @@ -98,12 +99,15 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.xml.sax.SAXException; import org.springframework.beans.factory.annotation.Autowired; + +import javax.net.ssl.HttpsURLConnection; import javax.servlet.http.HttpServletRequest; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -125,8 +129,13 @@ import java.util.HashMap; import java.util.Date; import java.util.Calendar; +import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.PrintStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.Arrays; import java.util.ArrayList; @@ -139,6 +148,8 @@ import java.util.Locale; import java.util.Comparator; +import org.springframework.http.MediaType; + /** * The rest controller for exposing resources through kenyacore and kenyaemr modules */ @@ -2671,4 +2682,385 @@ public List search(@RequestPar return Context.getService(KenyaEmrService.class).search(query, request.getParameterMap()); } + + /** + * Verify NUPI exists + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/verifynupi/{country}/{identifierType}/{identifier}") + @ResponseBody + public Object verifyNUPI(@PathVariable String country, @PathVariable String identifierType, @PathVariable String identifier) { + String returnResponse = ""; + try { + System.out.println("NUPI verification: Country: " + country + " IdentifierType: " + identifierType + " Identifier: " + identifier); + + // Create URL + // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry/search"; + GlobalProperty globalGetUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_GET_END_POINT); + String baseURL = globalGetUrl.getPropertyValue(); + if(baseURL == null || baseURL.trim().isEmpty()) { + baseURL = "https://afyakenyaapi.health.go.ke/partners/registry/search"; + } + String completeURL = baseURL + "/" + country + "/" + identifierType + "/" + identifier; + System.out.println("NUPI verification: Using NUPI GET URL: " + completeURL); + URL url = new URL(completeURL); + + UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); + String authToken = upiUtilsDataExchange.getToken(); + + HttpsURLConnection con =(HttpsURLConnection) url.openConnection(); + con.setRequestMethod("GET"); + + con.setRequestProperty("Authorization", "Bearer " + authToken); + con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + con.setRequestProperty("Accept", "application/json"); + con.setConnectTimeout(10000); // set timeout to 10 seconds + + int responseCode = con.getResponseCode(); + + // Read the response + BufferedReader in = null; + in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); + + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); + + returnResponse = response.toString(); + System.out.println("NUPI verification: Got the Response as: " + returnResponse); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + return ResponseEntity.ok().headers(headers).body(returnResponse); + } + else { + System.out.println("NUPI verification: Error verifying NUPI for client: " + responseCode); + HttpHeaders headers = new HttpHeaders(); + String contentType = con.getHeaderField("Content-Type"); + if(contentType != null && contentType.startsWith("application/json")) { + headers.setContentType(MediaType.APPLICATION_JSON); + } else { + headers.setContentType(MediaType.TEXT_PLAIN); + } + return new ResponseEntity<>(returnResponse, headers, responseCode); + // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + } + } catch(Exception ex) { + System.err.println("NUPI verification: ERROR: " + ex.getMessage()); + ex.printStackTrace(); + } + + // return(returnResponse); + return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + } + + /** + * Search for NUPI + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/searchnupi/{searchkey}/{searchvalue}") + @ResponseBody + public Object searchNUPI(@PathVariable String searchkey, @PathVariable String searchvalue) { + String returnResponse = ""; + try { + System.out.println("NUPI search: SearchKey: " + searchkey + " SearchValue: " + searchvalue); + + // Create URL + // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry/search"; + GlobalProperty globalGetUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_GET_END_POINT); + String baseURL = globalGetUrl.getPropertyValue(); + if(baseURL == null || baseURL.trim().isEmpty()) { + baseURL = "https://afyakenyaapi.health.go.ke/partners/registry/search"; + } + String completeURL = baseURL + "/" + searchkey + "/" + searchvalue; + System.out.println("NUPI search: Using NUPI GET URL: " + completeURL); + URL url = new URL(completeURL); + + UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); + String authToken = upiUtilsDataExchange.getToken(); + + HttpsURLConnection con =(HttpsURLConnection) url.openConnection(); + con.setRequestMethod("GET"); + + con.setRequestProperty("Authorization", "Bearer " + authToken); + con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + con.setRequestProperty("Accept", "application/json"); + con.setConnectTimeout(10000); // set timeout to 10 seconds + + int responseCode = con.getResponseCode(); + + // Read the response + BufferedReader in = null; + in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); + + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); + + returnResponse = response.toString(); + System.out.println("NUPI search: Got the Response as: " + returnResponse); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + return ResponseEntity.ok().headers(headers).body(returnResponse); + } + else { + System.out.println("NUPI search: Error searching NUPI for client: " + responseCode); + HttpHeaders headers = new HttpHeaders(); + String contentType = con.getHeaderField("Content-Type"); + if(contentType != null && contentType.startsWith("application/json")) { + headers.setContentType(MediaType.APPLICATION_JSON); + } else { + headers.setContentType(MediaType.TEXT_PLAIN); + } + return new ResponseEntity<>(returnResponse, headers, responseCode); + // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + } + } catch(Exception ex) { + System.err.println("NUPI search: ERROR: " + ex.getMessage()); + ex.printStackTrace(); + } + + // return(returnResponse); + return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + } + + /** + * Get a new NUPI + * @param request + * @return + */ + // @RequestMapping(method = RequestMethod.POST, value = "/newnupi") // end point for processing individual lab results e,g http://localhost:8080/kenyaemr/ws/rest/v1/kemrorder/labresults + // @ResponseBody + // public Object newNUPI(HttpServletRequest request) { + // String ret = "{\"status\": \"Error\"}"; + + // // InputStream errorStream = null; + // HttpsURLConnection con = null; + // try { + // System.out.println("New NUPI: Received NUPI details: " + request.getQueryString()); + + // // Create URL + // // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + // GlobalProperty globalPostUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_POST_END_POINT); + // String baseURL = globalPostUrl.getPropertyValue(); + // if(baseURL == null || baseURL.trim().isEmpty()) { + // baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + // } + // String completeURL = baseURL; + // System.out.println("New NUPI: Using NUPI POST URL: " + completeURL); + // URL url = new URL(completeURL); + + // UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); + // String authToken = upiUtilsDataExchange.getToken(); + + // // HttpsURLConnection + // con =(HttpsURLConnection) url.openConnection(); + // con.setRequestMethod("POST"); + // con.setDoOutput(true); + // con.setRequestProperty("Authorization", "Bearer " + authToken); + // con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + // con.setRequestProperty("Accept", "application/json"); + // con.setConnectTimeout(10000); // set timeout to 10 seconds + + // // Repost the request + // String requestBody = ""; + // BufferedReader reader = request.getReader(); + // new BufferedReader(reader); + // for(String output = ""; (output = reader.readLine()) != null; requestBody = requestBody + output) {} + // System.out.println("New NUPI: Sending to remote: " + requestBody); + // PrintStream os = new PrintStream(con.getOutputStream()); + // os.print(requestBody); + // os.close(); + + // int responseCode = con.getResponseCode(); + + // // Read the response + // BufferedReader in = null; + // in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + // String input; + // StringBuffer response = new StringBuffer(); + + // while ((input = in.readLine()) != null) { + // response.append(input); + // } + // in.close(); + + // String returnResponse = response.toString(); + // System.out.println("New NUPI: Got the Response as: " + returnResponse); + + // if (responseCode == HttpURLConnection.HTTP_OK) { //success + // HttpHeaders headers = new HttpHeaders(); + // headers.setContentType(MediaType.APPLICATION_JSON); + // return ResponseEntity.ok().headers(headers).body(returnResponse); + // } + // else { + // System.out.println("New NUPI: Error posting new NUPI for client: " + responseCode); + // HttpHeaders headers = new HttpHeaders(); + // String contentType = con.getHeaderField("Content-Type"); + // if(contentType != null && contentType.startsWith("application/json")) { + // headers.setContentType(MediaType.APPLICATION_JSON); + // } else { + // headers.setContentType(MediaType.TEXT_PLAIN); + // } + // return new ResponseEntity<>(returnResponse, headers, responseCode); + // // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + // } + // } catch(Exception ex) { + // System.err.println("New NUPI: ERROR: " + ex.getMessage()); + // ex.printStackTrace(); + // try { + // if(con != null) { + // InputStream errorStream = con.getErrorStream(); + // // Read the error response body + // BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream)); + // StringBuilder errorResponse = new StringBuilder(); + // String line; + // while ((line = reader.readLine()) != null) { + // errorResponse.append(line); + // } + + // // Close the reader and the error stream + // reader.close(); + // errorStream.close(); + + // // Handle or log the error response + // String errorBody = errorResponse.toString(); + // System.err.println("New NUPI: Error response body: " + errorBody); + + // HttpHeaders headers = new HttpHeaders(); + // String contentType = con.getHeaderField("Content-Type"); + // if(contentType != null && contentType.toLowerCase().contains("json")) { + // headers.setContentType(MediaType.APPLICATION_JSON); + // } else { + // headers.setContentType(MediaType.TEXT_PLAIN); + // } + // return new ResponseEntity<>(errorBody, headers, con.getResponseCode()); + // } + // } catch (Exception e) {} + // } + + // return ResponseEntity.badRequest().body(ret); + // } + + /** + * Get a new NUPI + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.POST, value = "/newnupi") // end point for processing individual lab results e,g http://localhost:8080/kenyaemr/ws/rest/v1/kemrorder/labresults + @ResponseBody + public Object newNUPI(HttpServletRequest request) { + String ret = "{\"status\": \"Error\"}"; + + // InputStream errorStream = null; + HttpsURLConnection con = null; + try { + System.out.println("New NUPI: Received NUPI details: " + request.getQueryString()); + + // Create URL + // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + GlobalProperty globalPostUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_POST_END_POINT); + String baseURL = globalPostUrl.getPropertyValue(); + if(baseURL == null || baseURL.trim().isEmpty()) { + baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + } + String completeURL = baseURL; + System.out.println("New NUPI: Using NUPI POST URL: " + completeURL); + URL url = new URL(completeURL); + + UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); + String authToken = upiUtilsDataExchange.getToken(); + + // HttpsURLConnection + con =(HttpsURLConnection) url.openConnection(); + con.setRequestMethod("POST"); + con.setDoOutput(true); + con.setRequestProperty("Authorization", "Bearer " + authToken); + con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + con.setRequestProperty("Accept", "application/json"); + con.setConnectTimeout(10000); // set timeout to 10 seconds + + // Repost the request + String requestBody = ""; + BufferedReader reader = request.getReader(); + new BufferedReader(reader); + for(String output = ""; (output = reader.readLine()) != null; requestBody = requestBody + output) {} + System.out.println("New NUPI: Sending to remote: " + requestBody); + PrintStream os = new PrintStream(con.getOutputStream()); + os.print(requestBody); + os.close(); + + int responseCode = con.getResponseCode(); + + // InputStream errorStream = con.getErrorStream(); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + + // Read the response + BufferedReader in = null; + in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); + + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); + + String returnResponse = response.toString(); + System.out.println("New NUPI: Got the Response as: " + returnResponse); + + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + return ResponseEntity.ok().headers(headers).body(returnResponse); + } else { + System.out.println("New NUPI: Error posting new NUPI for client: " + responseCode); + + InputStream errorStream = con.getErrorStream(); + // Read the error response body + BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)); + StringBuilder errorResponse = new StringBuilder(); + String line; + while ((line = errorReader.readLine()) != null) { + errorResponse.append(line); + } + + // Close the reader and the error stream + reader.close(); + errorStream.close(); + + // Handle or log the error response + String errorBody = errorResponse.toString(); + System.err.println("New NUPI: Error response body: " + errorBody); + + HttpHeaders headers = new HttpHeaders(); + String contentType = con.getHeaderField("Content-Type"); + if(contentType != null && contentType.toLowerCase().contains("json")) { + headers.setContentType(MediaType.APPLICATION_JSON); + } else { + headers.setContentType(MediaType.TEXT_PLAIN); + } + return new ResponseEntity<>(errorBody, headers, responseCode); + } + } catch(Exception ex) { + System.err.println("New NUPI: ERROR: " + ex.getMessage()); + ex.printStackTrace(); + } + + return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); + } } From a69a2aac437bbfecc87d9d38e5cc3edac07ea5f5 Mon Sep 17 00:00:00 2001 From: Patrick Waweru Date: Sun, 31 Mar 2024 07:51:54 +0300 Subject: [PATCH 59/98] new mods 2 --- .../KenyaemrCoreRestController.java | 255 ++++++------------ 1 file changed, 82 insertions(+), 173 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 49c32cb0ab..ef37210ed2 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -2684,13 +2684,13 @@ public List search(@RequestPar } /** - * Verify NUPI exists + * Verify NUPI exists (EndPoint) * @return */ @RequestMapping(method = RequestMethod.GET, value = "/verifynupi/{country}/{identifierType}/{identifier}") @ResponseBody public Object verifyNUPI(@PathVariable String country, @PathVariable String identifierType, @PathVariable String identifier) { - String returnResponse = ""; + String ret = "{\"status\": \"Error\"}"; try { System.out.println("NUPI verification: Country: " + country + " IdentifierType: " + identifierType + " Identifier: " + identifier); @@ -2718,36 +2718,53 @@ public Object verifyNUPI(@PathVariable String country, @PathVariable String iden int responseCode = con.getResponseCode(); - // Read the response - BufferedReader in = null; - in = new BufferedReader(new InputStreamReader(con.getInputStream())); - - String input; - StringBuffer response = new StringBuffer(); - - while ((input = in.readLine()) != null) { - response.append(input); - } - in.close(); + if (responseCode == HttpURLConnection.HTTP_OK) { //success + // Read the response + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); - returnResponse = response.toString(); - System.out.println("NUPI verification: Got the Response as: " + returnResponse); + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); - if (responseCode == HttpURLConnection.HTTP_OK) { //success + String returnResponse = response.toString(); + System.out.println("NUPI verification: Got the Response as: " + returnResponse); + HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); + return ResponseEntity.ok().headers(headers).body(returnResponse); - } - else { + } else { System.out.println("NUPI verification: Error verifying NUPI for client: " + responseCode); + + InputStream errorStream = con.getErrorStream(); + // Read the error response body + BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)); + StringBuilder errorResponse = new StringBuilder(); + String line; + while ((line = errorReader.readLine()) != null) { + errorResponse.append(line); + } + + // Close the reader and the error stream + errorReader.close(); + errorStream.close(); + + // Handle or log the error response + String errorBody = errorResponse.toString(); + System.err.println("New NUPI: Error response body: " + errorBody); + HttpHeaders headers = new HttpHeaders(); String contentType = con.getHeaderField("Content-Type"); - if(contentType != null && contentType.startsWith("application/json")) { + if(contentType != null && contentType.toLowerCase().contains("json")) { headers.setContentType(MediaType.APPLICATION_JSON); } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(returnResponse, headers, responseCode); + return new ResponseEntity<>(errorBody, headers, responseCode); // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); } } catch(Exception ex) { @@ -2755,18 +2772,17 @@ public Object verifyNUPI(@PathVariable String country, @PathVariable String iden ex.printStackTrace(); } - // return(returnResponse); - return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); } /** - * Search for NUPI + * Search for NUPI (EndPoint) * @return */ @RequestMapping(method = RequestMethod.GET, value = "/searchnupi/{searchkey}/{searchvalue}") @ResponseBody public Object searchNUPI(@PathVariable String searchkey, @PathVariable String searchvalue) { - String returnResponse = ""; + String ret = "{\"status\": \"Error\"}"; try { System.out.println("NUPI search: SearchKey: " + searchkey + " SearchValue: " + searchvalue); @@ -2794,172 +2810,67 @@ public Object searchNUPI(@PathVariable String searchkey, @PathVariable String se int responseCode = con.getResponseCode(); - // Read the response - BufferedReader in = null; - in = new BufferedReader(new InputStreamReader(con.getInputStream())); - - String input; - StringBuffer response = new StringBuffer(); - - while ((input = in.readLine()) != null) { - response.append(input); - } - in.close(); + if (responseCode == HttpURLConnection.HTTP_OK) { //success + // Read the response + BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); - returnResponse = response.toString(); - System.out.println("NUPI search: Got the Response as: " + returnResponse); + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); - if (responseCode == HttpURLConnection.HTTP_OK) { //success + String returnResponse = response.toString(); + System.out.println("NUPI search: Got the Response as: " + returnResponse); + HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_JSON); return ResponseEntity.ok().headers(headers).body(returnResponse); - } - else { + } else { System.out.println("NUPI search: Error searching NUPI for client: " + responseCode); + + InputStream errorStream = con.getErrorStream(); + // Read the error response body + BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)); + StringBuilder errorResponse = new StringBuilder(); + String line; + while ((line = errorReader.readLine()) != null) { + errorResponse.append(line); + } + + // Close the reader and the error stream + errorReader.close(); + errorStream.close(); + + // Handle or log the error response + String errorBody = errorResponse.toString(); + System.err.println("New NUPI: Error response body: " + errorBody); + HttpHeaders headers = new HttpHeaders(); String contentType = con.getHeaderField("Content-Type"); - if(contentType != null && contentType.startsWith("application/json")) { + if(contentType != null && contentType.toLowerCase().contains("json")) { headers.setContentType(MediaType.APPLICATION_JSON); } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(returnResponse, headers, responseCode); - // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + return new ResponseEntity<>(errorBody, headers, responseCode); } } catch(Exception ex) { System.err.println("NUPI search: ERROR: " + ex.getMessage()); ex.printStackTrace(); } - // return(returnResponse); - return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); } /** - * Get a new NUPI + * Get a new NUPI (EndPoint) * @param request * @return */ - // @RequestMapping(method = RequestMethod.POST, value = "/newnupi") // end point for processing individual lab results e,g http://localhost:8080/kenyaemr/ws/rest/v1/kemrorder/labresults - // @ResponseBody - // public Object newNUPI(HttpServletRequest request) { - // String ret = "{\"status\": \"Error\"}"; - - // // InputStream errorStream = null; - // HttpsURLConnection con = null; - // try { - // System.out.println("New NUPI: Received NUPI details: " + request.getQueryString()); - - // // Create URL - // // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; - // GlobalProperty globalPostUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_POST_END_POINT); - // String baseURL = globalPostUrl.getPropertyValue(); - // if(baseURL == null || baseURL.trim().isEmpty()) { - // baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; - // } - // String completeURL = baseURL; - // System.out.println("New NUPI: Using NUPI POST URL: " + completeURL); - // URL url = new URL(completeURL); - - // UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); - // String authToken = upiUtilsDataExchange.getToken(); - - // // HttpsURLConnection - // con =(HttpsURLConnection) url.openConnection(); - // con.setRequestMethod("POST"); - // con.setDoOutput(true); - // con.setRequestProperty("Authorization", "Bearer " + authToken); - // con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); - // con.setRequestProperty("Accept", "application/json"); - // con.setConnectTimeout(10000); // set timeout to 10 seconds - - // // Repost the request - // String requestBody = ""; - // BufferedReader reader = request.getReader(); - // new BufferedReader(reader); - // for(String output = ""; (output = reader.readLine()) != null; requestBody = requestBody + output) {} - // System.out.println("New NUPI: Sending to remote: " + requestBody); - // PrintStream os = new PrintStream(con.getOutputStream()); - // os.print(requestBody); - // os.close(); - - // int responseCode = con.getResponseCode(); - - // // Read the response - // BufferedReader in = null; - // in = new BufferedReader(new InputStreamReader(con.getInputStream())); - - // String input; - // StringBuffer response = new StringBuffer(); - - // while ((input = in.readLine()) != null) { - // response.append(input); - // } - // in.close(); - - // String returnResponse = response.toString(); - // System.out.println("New NUPI: Got the Response as: " + returnResponse); - - // if (responseCode == HttpURLConnection.HTTP_OK) { //success - // HttpHeaders headers = new HttpHeaders(); - // headers.setContentType(MediaType.APPLICATION_JSON); - // return ResponseEntity.ok().headers(headers).body(returnResponse); - // } - // else { - // System.out.println("New NUPI: Error posting new NUPI for client: " + responseCode); - // HttpHeaders headers = new HttpHeaders(); - // String contentType = con.getHeaderField("Content-Type"); - // if(contentType != null && contentType.startsWith("application/json")) { - // headers.setContentType(MediaType.APPLICATION_JSON); - // } else { - // headers.setContentType(MediaType.TEXT_PLAIN); - // } - // return new ResponseEntity<>(returnResponse, headers, responseCode); - // // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); - // } - // } catch(Exception ex) { - // System.err.println("New NUPI: ERROR: " + ex.getMessage()); - // ex.printStackTrace(); - // try { - // if(con != null) { - // InputStream errorStream = con.getErrorStream(); - // // Read the error response body - // BufferedReader reader = new BufferedReader(new InputStreamReader(errorStream)); - // StringBuilder errorResponse = new StringBuilder(); - // String line; - // while ((line = reader.readLine()) != null) { - // errorResponse.append(line); - // } - - // // Close the reader and the error stream - // reader.close(); - // errorStream.close(); - - // // Handle or log the error response - // String errorBody = errorResponse.toString(); - // System.err.println("New NUPI: Error response body: " + errorBody); - - // HttpHeaders headers = new HttpHeaders(); - // String contentType = con.getHeaderField("Content-Type"); - // if(contentType != null && contentType.toLowerCase().contains("json")) { - // headers.setContentType(MediaType.APPLICATION_JSON); - // } else { - // headers.setContentType(MediaType.TEXT_PLAIN); - // } - // return new ResponseEntity<>(errorBody, headers, con.getResponseCode()); - // } - // } catch (Exception e) {} - // } - - // return ResponseEntity.badRequest().body(ret); - // } - - /** - * Get a new NUPI - * @param request - * @return - */ - @RequestMapping(method = RequestMethod.POST, value = "/newnupi") // end point for processing individual lab results e,g http://localhost:8080/kenyaemr/ws/rest/v1/kemrorder/labresults + @RequestMapping(method = RequestMethod.POST, value = "/newnupi") @ResponseBody public Object newNUPI(HttpServletRequest request) { String ret = "{\"status\": \"Error\"}"; @@ -2983,7 +2894,7 @@ public Object newNUPI(HttpServletRequest request) { UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); String authToken = upiUtilsDataExchange.getToken(); - // HttpsURLConnection + // Make the Connection con =(HttpsURLConnection) url.openConnection(); con.setRequestMethod("POST"); con.setDoOutput(true); @@ -2994,9 +2905,9 @@ public Object newNUPI(HttpServletRequest request) { // Repost the request String requestBody = ""; - BufferedReader reader = request.getReader(); - new BufferedReader(reader); - for(String output = ""; (output = reader.readLine()) != null; requestBody = requestBody + output) {} + BufferedReader requestReader = request.getReader(); + + for(String output = ""; (output = requestReader.readLine()) != null; requestBody = requestBody + output) {} System.out.println("New NUPI: Sending to remote: " + requestBody); PrintStream os = new PrintStream(con.getOutputStream()); os.print(requestBody); @@ -3004,8 +2915,6 @@ public Object newNUPI(HttpServletRequest request) { int responseCode = con.getResponseCode(); - // InputStream errorStream = con.getErrorStream(); - if (responseCode == HttpURLConnection.HTTP_OK) { //success // Read the response @@ -3040,7 +2949,7 @@ public Object newNUPI(HttpServletRequest request) { } // Close the reader and the error stream - reader.close(); + errorReader.close(); errorStream.close(); // Handle or log the error response From a1356caf7b1617eb14bb833d76a05d909ea98bbf Mon Sep 17 00:00:00 2001 From: Patrick Waweru Date: Sun, 31 Mar 2024 09:45:56 +0300 Subject: [PATCH 60/98] new mods 3 --- .../KenyaemrCoreRestController.java | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index ef37210ed2..33bd0511f8 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -2972,4 +2972,113 @@ public Object newNUPI(HttpServletRequest request) { return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); } + + /** + * Modify NUPI patient data e.g CCC Number (EndPoint) + * @param request + * @return + */ + @RequestMapping(method = RequestMethod.PUT, value = "/modifynupi/{nupinumber}/{searchtype}") + @ResponseBody + public Object modifyNUPI(HttpServletRequest request, @PathVariable String nupinumber, @PathVariable String searchtype) { + String ret = "{\"status\": \"Error\"}"; + + // InputStream errorStream = null; + HttpsURLConnection con = null; + try { + System.out.println("Modify NUPI: Received NUPI details: " + request.getQueryString()); + System.out.println("Modify NUPI: nupi number: " + nupinumber + " SearchType: " + searchtype); + + // Create URL + // String baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + GlobalProperty globalPostUrl = Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_UPDATE_END_POINT); + String baseURL = globalPostUrl.getPropertyValue(); + if(baseURL == null || baseURL.trim().isEmpty()) { + baseURL = "https://afyakenyaapi.health.go.ke/partners/registry"; + } + String completeURL = baseURL + "/" + nupinumber + "/" + searchtype; + System.out.println("Modify NUPI: Using NUPI POST URL: " + completeURL); + URL url = new URL(completeURL); + + UpiUtilsDataExchange upiUtilsDataExchange = new UpiUtilsDataExchange(); + String authToken = upiUtilsDataExchange.getToken(); + + // Make the Connection + con =(HttpsURLConnection) url.openConnection(); + con.setRequestMethod("PUT"); + con.setDoOutput(true); + con.setRequestProperty("Authorization", "Bearer " + authToken); + con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); + con.setRequestProperty("Accept", "application/json"); + con.setConnectTimeout(10000); // set timeout to 10 seconds + + // Reput the request + String requestBody = ""; + BufferedReader requestReader = request.getReader(); + + for(String output = ""; (output = requestReader.readLine()) != null; requestBody = requestBody + output) {} + System.out.println("Modify NUPI: Sending to remote: " + requestBody); + PrintStream os = new PrintStream(con.getOutputStream()); + os.print(requestBody); + os.close(); + + int responseCode = con.getResponseCode(); + + if (responseCode == HttpURLConnection.HTTP_OK) { //success + + // Read the response + BufferedReader in = null; + in = new BufferedReader(new InputStreamReader(con.getInputStream())); + + String input; + StringBuffer response = new StringBuffer(); + + while ((input = in.readLine()) != null) { + response.append(input); + } + in.close(); + + String returnResponse = response.toString(); + System.out.println("Modify NUPI: Got the Response as: " + returnResponse); + + + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + return ResponseEntity.ok().headers(headers).body(returnResponse); + } else { + System.out.println("Modify NUPI: Error posting new NUPI for client: " + responseCode); + + InputStream errorStream = con.getErrorStream(); + // Read the error response body + BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream)); + StringBuilder errorResponse = new StringBuilder(); + String line; + while ((line = errorReader.readLine()) != null) { + errorResponse.append(line); + } + + // Close the reader and the error stream + errorReader.close(); + errorStream.close(); + + // Handle or log the error response + String errorBody = errorResponse.toString(); + System.err.println("Modify NUPI: Error response body: " + errorBody); + + HttpHeaders headers = new HttpHeaders(); + String contentType = con.getHeaderField("Content-Type"); + if(contentType != null && contentType.toLowerCase().contains("json")) { + headers.setContentType(MediaType.APPLICATION_JSON); + } else { + headers.setContentType(MediaType.TEXT_PLAIN); + } + return new ResponseEntity<>(errorBody, headers, responseCode); + } + } catch(Exception ex) { + System.err.println("Modify NUPI: ERROR: " + ex.getMessage()); + ex.printStackTrace(); + } + + return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); + } } From cc3690c2c03502eda17b63c9d2aee74e677f3d0f Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Tue, 2 Apr 2024 14:55:03 +0300 Subject: [PATCH 61/98] Insert the licence file automatically on files that are missing such, other than checking and failing listing the affected file --- .../controller/report/AdxViewFragmentController.java | 6 +++--- pom.xml | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/report/AdxViewFragmentController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/report/AdxViewFragmentController.java index a4423441a7..69b77f2c13 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/report/AdxViewFragmentController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/report/AdxViewFragmentController.java @@ -188,7 +188,7 @@ public String render(ReportData reportData) throws IOException { mappingDetails.get("datasets").getElements(); w.append("\t").append("\n"); + + "/P1M\" dataSetId=\"" + datasetName + "\">\n"); DataSet dataset = reportData.getDataSets().get(dsKey); List columns = dataset.getMetaData().getColumns(); @@ -221,7 +221,7 @@ public String render(ReportData reportData) throws IOException { FacilityReportDataset ds = facilityreportingService.getDatasetById(datasetId); w.append("\t").append("\n"); + + "/P1M\" dataSetId=\"" + ds.getMapping() + "\">\n"); for (DatasetIndicatorDetails row : e.getIndicators()) { if (row.getValue() != null && !"".equals(row.getValue()) && StringUtils.isNotEmpty(row.getValue())) { String name = row.getName(); @@ -362,7 +362,7 @@ else if(reportName.equals(KPIF_MONTHLY_REPORT)){ // add group attributes eDataset.setAttribute("orgUnit", mfl); eDataset.setAttribute("period", isoDateFormat.format(reportDate).concat("/P1M")); - eDataset.setAttribute("dataSet", datasetName); + eDataset.setAttribute("dataSetId", datasetName); for (DatasetIndicatorDetails row : e.getIndicators()) { if (row.getValue() != null && !"".equals(row.getValue()) && StringUtils.isNotEmpty(row.getValue())) { diff --git a/pom.xml b/pom.xml index 2e8bb54b05..8c2d6bae9d 100755 --- a/pom.xml +++ b/pom.xml @@ -449,8 +449,10 @@ + format-headers + process-sources - check + format From a44411ddfb8de0115e8ba61804747ce7a958c73b Mon Sep 17 00:00:00 2001 From: patryllus Date: Tue, 2 Apr 2024 21:25:35 +0300 Subject: [PATCH 62/98] Cleaned up 705aA/B added missing variables - referrals, tested malaria and presumed TB --- .../Moh705ReportUtils/DiagnosisConcepts.java | 1 + .../builder/common/MOH705AReportBuilder.java | 659 +++--------------- .../builder/common/MOH705BReportBuilder.java | 469 ++----------- .../MOH705/MOH705CohortLibrary.java | 34 + .../MOH705/MOH705IndicatorLibrary.java | 6 + .../resources/content/kenyaemr.common.xml | 5 +- .../main/webapp/resources/reports/MOH705A.xls | Bin 0 -> 94720 bytes .../reports/{MOH_705b.xls => MOH705B.xls} | Bin 89600 -> 89600 bytes .../webapp/resources/reports/MOH_705a.xls | Bin 167936 -> 0 bytes .../main/webapp/resources/reports/moh705A.xls | Bin 65536 -> 0 bytes .../main/webapp/resources/reports/moh705B.xls | Bin 37376 -> 0 bytes 11 files changed, 201 insertions(+), 973 deletions(-) create mode 100644 omod/src/main/webapp/resources/reports/MOH705A.xls rename omod/src/main/webapp/resources/reports/{MOH_705b.xls => MOH705B.xls} (76%) delete mode 100644 omod/src/main/webapp/resources/reports/MOH_705a.xls delete mode 100644 omod/src/main/webapp/resources/reports/moh705A.xls delete mode 100644 omod/src/main/webapp/resources/reports/moh705B.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java index 76f4506a01..5a039dba2b 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java @@ -1567,6 +1567,7 @@ public static final class _DiagnosisConcepts { public static final Integer MALARIA_SEVERE = 34; public static final Integer MALARIA_PRESUMED = 35; + public static final Integer MALARIA = 123; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index 205b884f3d..932aefb2b4 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -39,77 +39,14 @@ @Builds({ "kenyaemr.common.report.moh705A" }) public class MOH705AReportBuilder extends AbstractReportBuilder { static final String AGE_BELOW_FIVE = "<5"; - static final int DIARRHOEA_WITH_DEHYDRATION = 168737; + static final int DIARRHOEA_WITHOUT_DEHYDRATION = 168737; static final int DIARRHOEA_WITH_SOME_DEHYDRATION = 166569; static final int DIARRHOEA_WITH_SEVERE_DEHYDRATION = 168736 ; - static final int CHOLERA = 145622; - static final int DYSENTRY = 152 ; - static final int GASTROENTERITIS = 117889; - static final int PNEUMONIA = 114100; - static final int SEVERE_PNEUMONIA = 168738; - static final int UPPER_RESPIRATORY_TRACT_INFECTIONS = 123093; - static final int LOWER_RESPIRATORY_TRACT_INFECTIONS = 135556; - static final int ASTHMA = 121375; - static final int PRESUMED_TUBERCULOSIS = 168739; - static final int SUSPECTED_MALARIA = 166623 ; - static final int TESTED_FOR_MALARIA = 168740; + static final int CHOLERA = 145622; static final int CONFIRMED_MALARIA = 160148; - static final int EAR_INFECTION = 71; - static final int MALNUTRITION = 115122; - static final int ANAEMIA = 121629; - static final int MENINGOCOCCAL_MENINGITIS = 134369; - static final int OTHER_MENINGITIS = 0; - static final int NEONATAL_SEPSIS = 226; - static final int NEONATAL_TETANUS = 124954; - static final int POLIOMYELITIS = 160426; - static final int CHICKEN_POX = 892; - static final int MEASLES = 134561; - static final int HEPATITIS = 116986; - static final int AMOEBIASIS = 124; - static final int MUMPS = 133671; - static final int TYPHOID_FEVER = 141; - static final int BILHARZIA = 117152; - static final int INTESTINAL_WORMS = 116699; - static final int EYE_INFECTIONS = 140832; - static final int TONSILITIS = 112; - static final int URINARY_TRACT_INFECTIONS = 111633; - static final int MENTAL_DISORDERS = 77; - static final int DENTAL_DISORDERS = 78; - static final int JIGGERS_INFESTATION = 123964; - static final int SKIN_DISEASES = 119022; - static final int DOWNS_SYNDROME = 144481; - static final int POISONING = 114088; - static final int ROAD_TRAFFIC_INJURIES = 86; - static final int DEATH_BY_ROAD_TRAFFIC_INJURIES = 0; - static final int VIOLENCE_RELATED_INJURIES = 0; - static final int OTHER_INJURIES = 0; - static final int SEXUAL_VIOLENCE = 123160; - static final int BURNS = 146623; - static final int SNAKE_BITES = 126323; - static final int DOG_BITES = 166; - static final int OTHER_BITES = 0; - static final int DIABETES = 119481; - static final int EPILEPSY = 155; - static final int OTHER_CONVULSIVE_DISORDERS = 0; - static final int RHEUMATIC_FEVER = 127447; - static final int BRUCELLOSIS = 121005; - static final int RICKETS = 127394; - static final int CEREBRAL_PALSY = 152492; - static final int AUTISM = 121303; - static final int TRYPONOSOMIASIS = 124078; - static final int YELLOW_FEVER = 122759; - static final int VIRAL_HAEMORRHAGIC_FEVER = 123112; - static final int RIFT_VALLEY_FEVER = 113217; - static final int CHIKUNGUNYA = 120743; - static final int DENGUE_FEVER = 7592; - static final int LEISHMANIASIS = 116350; - static final int CUTANEOUS_LEISHMANIASIS = 143074; - static final int SUSPECTED_ANTHRAX = 168741; - static final int SUSPECTED_CHILDHOOD_CANCERS = 0; - static final int HYPOXAEMIA = 117312; - static final int ALL_OTHER_DISEASES = 0; - - + static final int TESTED_MALARIA = 168740; + static final int SUSPECTED_MALARIA = 166623; + static final int PRESUMED_TUBERCULOSIS = 168739; private MOH705IndicatorLibrary moh705indicatorLibrary; @@ -143,515 +80,85 @@ protected DataSetDefinition moh705ADataset() { cohortDsd.setDescription("MOH 705A"); cohortDsd.addDimension("day", ReportUtils.map(commonDimensionLibrary.encountersOfMonthPerDay(), indParams)); - // populate datasets -// EmrReportingUtils.addRow(indicatorDsd,"HV02-01", "First ANC Visit", ReportUtils.map(moh731GreenCardIndicators.firstANCVisitMchmsAntenatal(), indParams), cadreDisaggregation,Arrays.asList("1","2","3")); - ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd,"DWSOD","Diarrhoea with some dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd,"DWSED","Diarrhoea with severe dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SEVERE_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd,"CLC","Cholera",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(CHOLERA),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow( - cohortDsd, - "TC", - "Tuberculosis", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DYC", - "Dysentery", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "GAS", - "Gastroenteritis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getGastroenteritisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow( - cohortDsd, - "SP", - "Severe pneumonia", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSeverePneumoniaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow(cohortDsd, "LTI", "Lower Respiratory Tract Infections", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSLowerTractInfectionList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "NS", - "Neonatal Sepsis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeutalSepsisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "AM", - "AMOEBIASIS", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DS", - "Down’s syndrome", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDownSyndromeList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RF", - "Rheumatic Fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getReumonicFeverList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow( - cohortDsd, - "CKU", - "Chikungunya fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DENF", - "Dengue fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CL", "Cutaneous Leishmaniasis", ReportUtils.map(moh705indicatorLibrary - .diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "ANT", - "Suspected Anthrax", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow( - cohortDsd, - "CLC", - "Cholera", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "MCC", - "Meningococcal Meningitis", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getMeningococcalMeningitisList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "OMC", "Other Menignitis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "NNC", "NeonatalTetanus", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "PMC", - "Poliomyelitis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "CPC", - "Chicken Pox", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "MSC", - "Measles", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "HPC", - "Hepatitis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "MPC", - "Mumps", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "SMC", "Suspected Malaria", ReportUtils.map( - moh705indicatorLibrary.diagnosis(Arrays.asList(CONFIRMED_MALARIA), AGE_BELOW_FIVE), indParams), //TODO Suspected Malaria - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CMC", "Confirmed Malaria", ReportUtils.map( - moh705indicatorLibrary.diagnosis(Arrays.asList(CONFIRMED_MALARIA), AGE_BELOW_FIVE), indParams), //TODO Confirmed Malaria - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "UTC", - "Urinary Tract Infection", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getUrinaryTractInfectionList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "TYC", - "Typhoid Fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "BLC", - "Bilharzia", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "IWC", "Interstinal worms", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "MNC", - "Malnutrition", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "ANC", - "Anaemia", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "EC", - "Eye Infections", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "EIC", - "Ear Infections Conditions", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getEarInfectionsConditionsList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "URC", - "Upper Respiratory Tract Infections", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getUpperRespiratoryTractInfectionsList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "ASC", - "Asthma", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "TSC", - "Tonsilities", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getTonsilitiesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "PNC", - "Pneumonia", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MDC", "Mental Disorders", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DDC", "DentalDisorders", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "JIC", "Jiggers Infestation", ReportUtils.map(moh705indicatorLibrary - .diagnosis(DiagnosisLists.getJiggersInfestationList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DOC", "Disease Of The Skin", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "PC", - "Poisoning", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "RTC", "Road TrafficI Injuries", ReportUtils.map(moh705indicatorLibrary - .diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "OIC", - "Other Injuries", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "SAC", - "Sexual Asualt", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "BC", - "Burns", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "SBC", - "Snake Bites", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DBC", - "Dog BITES", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "OBC", - "Other Bites", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DTC", - "Diabetes", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "EPC", - "Epilepsy", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "OCDC", - "Other Convulsive Disorders", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getOtherConvulsiveDisordersList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "BRC", - "Brucellosis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RKC", - "Rickets", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getRicketsList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "VRC", - "Violence related injuries", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getViolenceRelatedInjuriesList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "CRPC", - "Cerebral Palsy", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getCerebralPalsyList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "ATC", - "Autism", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAutismList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "TRC", - "Tryponomiasis", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "KLC", - "Kalazar leishmaniasis", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getKalazarLeishmaniasisList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "YFC", - "Yellow Fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "VHC", - "Viral Haemorrhagic Fever", - ReportUtils.map(moh705indicatorLibrary.diagnosis( - DiagnosisLists.getViralHaemorrhagicFeverList(), AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - - ReportingUtils.addRow( - cohortDsd, - "OVC", - "Overweight", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow( - cohortDsd, - "SCC", - "Suspected Childhood Cancers", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getChildHoodCancerist(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "HYPO", - "Hypoxaemia (Spo2<90%)", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypoxaemiaList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - - ReportingUtils.addRow( - cohortDsd, - "RVF", - "Rift valley fever", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(), - AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "DRTC", - "Deaths due to Road Trafic injuries", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), //TODO change this to read deaths due to road traffic injuries concept and count - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "NFAC", "No of first attendances", - ReportUtils.map(moh705indicatorLibrary.newAttendances(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "RAC", "Re-attendances", - ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RFHC", - "Referrals from other health facility", - ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), //TODO correct this to point to correct count - /*ReportUtils.map(moh705indicatorLibrary.getAllChildrenPatientsReferrals( - getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), - getConcept("1537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam), */ - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RTC", - "Referrals to Community Unit", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), //TODO correct this to point to correct count - /*getConcept("477a7484-0f99-4026-b37c-261be587a70b").getConceptId(), - getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParams),*/ - ReportAddonUtils.getAdultChildrenColumns() - ); - - ReportingUtils.addRow( - cohortDsd, - "AODC", - "All other diseases for children", - ReportUtils.map( - moh705indicatorLibrary.allOtherDiseasesAboveFive(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - - + ReportingUtils.addRow(cohortDsd,"DWND","Diarrhoea with no dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITHOUT_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DWSOD","Diarrhoea with some dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SOME_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DWSED","Diarrhoea with severe dehydration",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(DIARRHOEA_WITH_SEVERE_DEHYDRATION),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CLC","Cholera",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(CHOLERA),AGE_BELOW_FIVE),indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TC","Tuberculosis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TCP","Presumed Tuberculosis",ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(PRESUMED_TUBERCULOSIS), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DYC","Dysentery",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"GAS","Gastroenteritis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getGastroenteritisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"SP","Severe pneumonia",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSeverePneumoniaList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "LTI", "Lower Respiratory Tract Infections", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSLowerTractInfectionList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"NS","Neonatal Sepsis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeutalSepsisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"AM","AMOEBIASIS",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DS","Down’s syndrome",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDownSyndromeList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RF","Rheumatic Fever",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getReumonicFeverList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CKU","Chikungunya fever",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DENF","Dengue fever",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CL", "Cutaneous Leishmaniasis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"ANT","Suspected Anthrax",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CLC","Cholera",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"MCC","Meningococcal Meningitis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeningococcalMeningitisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"OMC", "Other Menignitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"NNC", "NeonatalTetanus", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"PMC","Poliomyelitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CPC","Chicken Pox", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"MSC","Measles", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"HPC","Hepatitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"MPC","Mumps", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"SMC", "Suspected Malaria", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(SUSPECTED_MALARIA), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TMC", "Tested Malaria", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(TESTED_MALARIA), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CMC", "Confirmed Malaria", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"UTC","Urinary Tract Infection", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getUrinaryTractInfectionList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TYC","Typhoid Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"BLC","Bilharzia", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "IWC","Interstinal worms", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"MNC","Malnutrition", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"ANC","Anaemia", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"EC","Eye Infections", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"EIC","Ear Infections Conditions", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEarInfectionsConditionsList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"URC","Upper Respiratory Tract Infections", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getUpperRespiratoryTractInfectionsList(), AGE_BELOW_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"ASC","Asthma", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TSC","Tonsilities", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTonsilitiesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"PNC","Pneumonia", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MDC", "Mental Disorders", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DDC", "DentalDisorders", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "JIC", "Jiggers Infestation", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getJiggersInfestationList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DOC", "Disease Of The Skin", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"PC", "Poisoning",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "RTC", "Road TrafficI Injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"OIC","Other Injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"SAC","Sexual Assault", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"BC","Burns",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"SBC","Snake Bites", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DBC","Dog BITES",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"OBC","Other Bites", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DTC","Diabetes", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"EPC","Epilepsy", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"OCDC","Other Convulsive Disorders", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherConvulsiveDisordersList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"BRC","Brucellosis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RKC","Rickets", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRicketsList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"VRC","Violence related injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getViolenceRelatedInjuriesList(), AGE_BELOW_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"CRPC","Cerebral Palsy", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCerebralPalsyList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"ATC","Autism", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAutismList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"TRC","Tryponomiasis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"KLC","Kalazar leishmaniasis",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getKalazarLeishmaniasisList(), AGE_BELOW_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"YFC","Yellow Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"VHC","Viral Haemorrhagic Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getViralHaemorrhagicFeverList(), AGE_BELOW_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"OVC","Overweight", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"SCC","Suspected Childhood Cancers", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getChildHoodCancerist(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"HYPO","Hypoxaemia (Spo2<90%)", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypoxaemiaList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RVF","Rift valley fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(), AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"DRTC","Deaths due to Road Traffic Injuries",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "NFAC", "No of first attendances", ReportUtils.map(moh705indicatorLibrary.newAttendances(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "RAC", "Re-attendances", ReportUtils.map(moh705indicatorLibrary.reAttendances(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RFHC","Referrals from other health facility", ReportUtils.map(moh705indicatorLibrary.referralsFromOtherFacilities(AGE_BELOW_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RFCC","Referrals to other health facility", ReportUtils.map(moh705indicatorLibrary.referralsToOtherFacilities(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"AODC","All other diseases for children",ReportUtils.map(moh705indicatorLibrary.allOtherDiseasesAboveFive(AGE_BELOW_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + //TODO: Referrals from community unit + //TODO:Referrals to community unit return cohortDsd; } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index 4c715adc28..020b193566 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -39,77 +39,8 @@ @Builds({"kenyaemr.common.report.moh705B"}) public class MOH705BReportBuilder extends AbstractReportBuilder { static final String EQUAL_AND_OVER_FIVE = ">=5"; - static final int DIARRHOEA = 5018; - static final int TUBERCULOSIS = 160156; - static final int DYSENTRY = 152; - static final int CHOLERA = 145622; - static final int MENINGOCOCCAL_MENINGITIS = 134369; - static final int OTHER_MENINGITIS = 0; - static final int TETANUS = 124957; - static final int POLIOMYELITIS = 5258; - static final int CHICKEN_POX = 892; - static final int MEASLES = 134561; - static final int HEPATITIS = 116986; - static final int MUMPS = 133671; - static final int SUSPECTED_MALARIA = 166623; - static final int CONFIRMED_MALARIA = 160148; - static final int TESTED_FOR_MALARIA = 168740; - static final int MALARIA_IN_PREGNANCY = 160152; - static final int AMOEBIASIS = 124; - static final int TYPHOID_FEVER = 141; - static final int SEXUALLY_TRANSMITTED_INFECTIONS = 112992; - static final int URINARY_TRACT_INFECTIONS = 111633; - static final int BILHARZIA = 117152; - static final int INTESTINAL_WORMS = 116699; - static final int MALNUTRITION = 134725; - static final int ANAEMIA = 121629; - static final int EYE_INFECTIONS = 140832; - static final int EAR_INFECTIONS = 71; - static final int UPPER_RESPIRATORY_TRACT_INFECTIONS = 123093; - static final int ASTHMA = 121375; - static final int PNEUMONIA = 114100; - static final int OTHER_LOWER_RESPIRATORY_TRACT_INFECTIONS = 998; - static final int ABORTION = 0; - static final int PUERPERIUM_AT_CHILDBIRTH = 0; - static final int HYPERTENSION = 117399; - static final int MENTAL_DISORDERS = 77; - static final int DENTAL_DISORDERS = 78; - static final int JIGGERS_INFESTATION = 123964; - static final int SKIN_DISEASES = 119022; - static final int ARTHRITIS_JOINT_PAINS = 148432; - static final int POISONING = 114088; - static final int ROAD_TRAFFIC_INJURIES = 86; - static final int DEATH_BY_ROAD_TRAFFIC_INJURIES = 0; - static final int OTHER_INJURIES = 0; - static final int SEXUAL_VIOLENCE = 123160; - static final int VIOLENCE_RELATED_INJURIES = 0; - static final int BURNS = 146623; - static final int SNAKE_BITES = 126323; - static final int DOG_BITES = 166; - static final int OTHER_BITES = 0; - static final int DIABETES = 119481; - static final int EPILEPSY = 155; - static final int BRUCELLOSIS = 121005; - static final int CARDIOVASCULAR_CONDITIONS = 119270; - static final int CENTRAL_NERVOUS_SYSTEM_CONDITIONS = 118994; - static final int OVERWEIGHT = 114413; - static final int MUSCULAR_SKELETAL_CONDITIONS = 0; - static final int FISTULA_BIRTH_RELATED = 0; - static final int SUSPECTED_NEOPLAMS_CANCERS = 0; - static final int PHYSICAL_DISABILITY = 0; - static final int TRYPONOSOMIASIS = 124078; - static final int RIFT_VALLEY_FEVER = 113217; - static final int YELLOW_FEVER = 122759; - static final int VIRAL_HAEMORRHAGIC_FEVER = 123112; - static final int CHIKUNGUNYA = 120743; - static final int DENGUE_FEVER = 7592; - static final int LEISHMANIASIS = 116350; - static final int CUTANEOUS_LEISHMANIASIS = 143074; - static final int SUSPECTED_ANTHRAX = 168741; - static final int REFERRALS_FROM_OTHER_HEALTH_FACILITY = 0; - static final int REFERRALS_FROM_OTHER_COMMUNITY_UNIT = 0; - private static final int REFERRALS_TO_COMMUNITY_UNIT = 0; - + static final int TESTED_MALARIA = 168740; + static final int SUSPECTED_MALARIA = 166623; @Autowired private MOH705IndicatorLibrary moh705indicatorLibrary; @@ -144,329 +75,79 @@ protected DataSetDefinition moh705BDataset() { cohortDsd.setName("MOH705B"); cohortDsd.setDescription("MOH 705B"); cohortDsd.addDimension("day", ReportUtils.map(commonDimensionLibrary.encountersOfMonthPerDay(), indParams)); - - - ReportingUtils.addRow(cohortDsd, "DA", "Diarrhoea", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiarrheaDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "TBA", "Tuberculosis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DYA", "Dysentery", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CLA", "Cholera", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MMA", "Meningococcal Meningitis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeningococcalMeningitisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MOA", "Other Meningitis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "NTA", "Neonatal Tetanus", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "PMA", "Poliomyelitis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils - .addRow(cohortDsd, "CPA", "Chicken Pox", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MEA", "Measles", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "HEA", "Hepatitis", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MPSA", "Mumps", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "SUA", - "Suspected malaria", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(),EQUAL_AND_OVER_FIVE), indParams), - /*moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), //TODO port getSuspectedMalariaResults evaluation criteria - DiagnosisLists.getSuspectedMalariaResults()), indParam),*/ - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "COA", - "Confirmed Malaria positive", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), - EQUAL_AND_OVER_FIVE), indParams), - /* DiagnosisLists.getConfirmedMalariaResults()), indParam),*/ //TODO getConfirmedMalariaResults criteria - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MPA", "Malaria In Pregnancy", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaInPregnancyList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "TYA", "Typhoid Fever", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "STIA", "STI", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexuallyTransmittedInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "URA", "Urinary tract infection", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getUrinaryTractInfectionList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "BIA", "Bilharzia", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "INA", "Intestinal worms", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MLA", "Malnutrition", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "ANEA", "Aneamia", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(), EQUAL_AND_OVER_FIVE), indParams), - - ReportAddonUtils.getAdultChildrenColumns()); - ReportingUtils.addRow(cohortDsd, "EYA", "Eye Infections", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "EIA", "Ear Infection Conditions", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getEarInfectionConditionsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "UPA", "Upper Respiratory Tract Infections", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getUpperRespiratoryTractInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "ASA", "Asthma", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "PNA", "Pneumonia", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "OTRA", "Other Dis Of Respiratory System", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherDisOfRespiratorySystemList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "ABA", "Abortion", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAbortionList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DPA", "Dis Of Puerperium & Childbath", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDisOfPuerperiumChildbathList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "HYA", "Hypertension", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypertensionList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MDA", "Mental Disorders", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DEA", "Dental Disorders", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "JIA", "Jiggers Infestation", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getJiggersInfestationList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DSA", "Disease Of The Skin", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "AJPA", "Anthritis Joint Pains", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthritisJointPainsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "POA", "Poisoning", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "ROA", "Road Traffic Injuries", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "OIA", "Other Injuries", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "SEA", "Sexual Assault", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "VRA", "Violence Related Injuries", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getViolenceRelatedInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "BUA", "Burns", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "SNA", "Snake Bites", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DOA", "Dog Bites", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils - .addRow(cohortDsd, "OBA", "Other Bites", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DTA", "Diabetes", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "EPA", "Epilepsy", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "BRLA", "Brucellosis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils - .getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CAA", "Cardiovascular Conditions", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getCardiovascularConditionsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CNSA", "Central Nervous System Conditions", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherCentralNervousSystemConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "OVA", "Overweight", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils - .getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "MSA", "Muscular Skeletal Conditions", - ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getMuscularSkeletalConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "FIA", "Fistula Birth Related", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getFistulaBirthRelatedList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "NSA", "Neoplams", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeoplamsList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "PHA", "Physical Disability", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getPhysicalDisabilityList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "TRA", "Tryponomiasis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "KAA", "Kalazar Leishmaniasis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getKalazarLeishmaniasisList(), EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "YEA", "Yellow Fever", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils - .getAdultChildrenColumns()); - - ReportingUtils - .addRow(cohortDsd, "VHA", "Viral Haemorrhagic Fever", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getViralHaemorrhagicFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DRA", - "Death due to road traffic injuries", - /*ReportUtils.map(moh705indicatorLibrary.diagnosis( - getConcept("1599AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), - getConcept("1603AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam),*/ - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),EQUAL_AND_OVER_FIVE), indParams), //TODO change this to read Death due to road traffic injuries - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "AODA", "All other diseases for adults", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getAllOtherDiseasesListForAdults(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "NFAA", "No. Of First Attendances", - ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE)), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils - .addRow(cohortDsd, "RETA", "Re-Attendances", - ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE)), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RFHA", - "Referrals From Other Health Facility", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_FROM_OTHER_HEALTH_FACILITY),EQUAL_AND_OVER_FIVE), indParams), - /*ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( TODO port in this function - getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), - getConcept("1537AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId()), indParam),*/ - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RFCA", - "Referrals From Other Community Unit", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_FROM_OTHER_COMMUNITY_UNIT),EQUAL_AND_OVER_FIVE), indParams), - /*ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( //TODO implement getAllAdultPatientsWithReferrals - getConcept("160481AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA").getConceptId(), - getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParam),*/ - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow( - cohortDsd, - "RTCA", - "Referrals To Community Unit", - ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(REFERRALS_TO_COMMUNITY_UNIT),EQUAL_AND_OVER_FIVE), indParams), - /* ReportUtils.map(moh705indicatorLibrary.getAllAdultPatientsWithReferrals( - getConcept("477a7484-0f99-4026-b37c-261be587a70b").getConceptId(), - getConcept("4fcf003e-71cf-47a5-a967-47d24aa61092").getConceptId()), indParam),*/ - ReportAddonUtils.getAdultChildrenColumns()); - - //additional indicators added - ReportingUtils.addRow(cohortDsd, "AM", "AMOEBIASIS", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(),EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "RVF", "Rift valley fever", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(),EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "CKU", "Chikungunya fever", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(),EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "DENF", "Dengue fever", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils - .getAdultChildrenColumns()); - - ReportingUtils - .addRow(cohortDsd, "CL", "Cutaneous Leishmaniasis", ReportUtils.map( - moh705indicatorLibrary.diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); - - ReportingUtils.addRow(cohortDsd, "ANT", "Suspected Anthrax", - ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(),EQUAL_AND_OVER_FIVE), indParams), - ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DA", "Diarrhoea", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiarrheaDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "TBA", "Tuberculosis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTuberculosisDiagnosisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DYA", "Dysentery", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDysenteryList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CLA", "Cholera", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCholeraList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MMA", "Meningococcal Meningitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeningococcalMeningitisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MOA", "Other Meningitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherMenigitisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "NTA", "Neonatal Tetanus", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeonatalTetanusList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "PMA", "Poliomyelitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoliomyelitisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CPA", "Chicken Pox", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getChickenPoxList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MEA", "Measles", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMeaslesList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "HEA", "Hepatitis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHepatitisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MPSA", "Mumps", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMumpsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "TMC", "Tested Malaria", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(TESTED_MALARIA), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "SUA", "Suspected malaria", ReportUtils.map(moh705indicatorLibrary.diagnosis(Arrays.asList(SUSPECTED_MALARIA),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "COA", "Confirmed Malaria positive",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MPA", "Malaria In Pregnancy", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalariaInPregnancyList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "TYA", "Typhoid Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTyphoidList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "STIA", "STI", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexuallyTransmittedInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "URA", "Urinary tract infection", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getUrinaryTractInfectionList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "BIA", "Bilharzia",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBilharziaList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "INA", "Intestinal worms", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getInterstinalwormsList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MLA", "Malnutrition", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMalnutritionList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "ANEA", "Aneamia", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnaemiaList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "EYA", "Eye Infections", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEyeInfectionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "EIA", "Ear Infection Conditions", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEarInfectionConditionsList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "UPA", "Upper Respiratory Tract Infections", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getUpperRespiratoryTractInfectionsList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "ASA", "Asthma",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAsthmaList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "PNA", "Pneumonia",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPneumoniaList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "OTRA", "Other Dis Of Respiratory System",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherDisOfRespiratorySystemList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "ABA", "Abortion",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAbortionList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DPA", "Dis Of Puerperium & Childbath", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDisOfPuerperiumChildbathList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "HYA", "Hypertension", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getHypertensionList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MDA", "Mental Disorders", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DEA", "Dental Disorders", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDentalDisordersList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "JIA", "Jiggers Infestation", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getJiggersInfestationList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DSA", "Disease Of The Skin", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiseaseOfTheSkinList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "AJPA", "Anthritis Joint Pains", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthritisJointPainsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "POA", "Poisoning", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPoisoningList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "ROA", "Road Traffic Injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "OIA", "Other Injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "SEA", "Sexual Assault", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSexualAssaultList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "VRA", "Violence Related Injuries", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getViolenceRelatedInjuriesList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "BUA", "Burns", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBurnsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "SNA", "Snake Bites", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getSnakeBitesList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DOA", "Dog Bites", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDogBitesList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "OBA", "Other Bites", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherBitesList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DTA", "Diabetes", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDiabetesList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "EPA", "Epilepsy", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getEpilepsyList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "BRLA", "Brucellosis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getBrucellosisList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CAA", "Cardiovascular Conditions", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCardiovascularConditionsList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CNSA", "Central Nervous System Conditions", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOtherCentralNervousSystemConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "OVA", "Overweight", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getOvrerweightList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "MSA", "Muscular Skeletal Conditions",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getMuscularSkeletalConditionsList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "FIA", "Fistula Birth Related", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getFistulaBirthRelatedList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "NSA", "Neoplams",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getNeoplamsList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "PHA", "Physical Disability", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getPhysicalDisabilityList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "TRA", "Tryponomiasis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getTryponomiasisList(), EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "KAA", "Kalazar Leishmaniasis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getKalazarLeishmaniasisList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "YEA", "Yellow Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getYellowFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "VHA", "Viral Haemorrhagic Fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getViralHaemorrhagicFeverList(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DRA", "Death due to road traffic injuries",ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRoadTrafficInjuriesList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "AM", "AMOEBIASIS", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAmoebiasis(),EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "RVF", "Rift valley fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getRiftValleyFeverList(),EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CKU", "Chikungunya fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getChikungunyaFeverList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "DENF", "Dengue fever", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getDengueFeverList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "CL", "Cutaneous Leishmaniasis", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getCutaneousLeishmaniasisList(),EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "ANT", "Suspected Anthrax", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAnthraxList(),EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + + ReportingUtils.addRow(cohortDsd, "AODA", "All other diseases for adults", ReportUtils.map(moh705indicatorLibrary.diagnosis(DiagnosisLists.getAllOtherDiseasesListForAdults(), EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "NFAA", "No. Of First Attendances",ReportUtils.map(moh705indicatorLibrary.newAttendances(EQUAL_AND_OVER_FIVE)), ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd, "RETA", "Re-Attendances", ReportUtils.map(moh705indicatorLibrary.reAttendances(EQUAL_AND_OVER_FIVE)),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RFHA","Referrals from other health facility", ReportUtils.map(moh705indicatorLibrary.referralsFromOtherFacilities(EQUAL_AND_OVER_FIVE), indParams),ReportAddonUtils.getAdultChildrenColumns()); + ReportingUtils.addRow(cohortDsd,"RFCA","Referrals to other health facility", ReportUtils.map(moh705indicatorLibrary.referralsToOtherFacilities(EQUAL_AND_OVER_FIVE), indParams), ReportAddonUtils.getAdultChildrenColumns()); return cohortDsd; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java index 87ae8c55fd..9f18413e56 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705CohortLibrary.java @@ -143,4 +143,38 @@ public CohortDefinition reAttendances(String age) { cd.setDescription("Patients who are revisit attendances"); return cd; } + /** + * MOH705 + * Referrals from other health facilities + * @return + */ + public CohortDefinition referralsFromOtherFacilities(String age) { + String sqlQuery = "SELECT v.patient_id FROM kenyaemr_etl.etl_clinical_encounter v\n" + + "INNER JOIN kenyaemr_etl.etl_patient_demographics d on v.patient_id = d.patient_id and timestampdiff(YEAR, date(d.dob),date(:endDate)) "+ age +"\n" + + "WHERE v.referral_to = 'This health facility' and date(v.visit_date) between date(:startDate) and date(:endDate);"; + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("referralsFromOther"); + cd.setQuery(sqlQuery); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setDescription("Patients who are referrals To From Other"); + return cd; + } + /** + * MOH705 + * Referrals to other health facilities + * @return + */ + public CohortDefinition referralsToOtherFacilities(String age) { + String sqlQuery = "SELECT v.patient_id FROM kenyaemr_etl.etl_clinical_encounter v\n" + + "INNER JOIN kenyaemr_etl.etl_patient_demographics d on v.patient_id = d.patient_id and timestampdiff(YEAR, date(d.dob),date(:endDate)) "+ age +"\n" + + "WHERE v.referral_to = 'Other health facility' and date(v.visit_date) between date(:startDate) and date(:endDate);"; + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("referralsToOther"); + cd.setQuery(sqlQuery); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setDescription("Patients who are referrals To Other"); + return cd; + } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java index 12686c383c..5b19e1b9ab 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java @@ -55,6 +55,12 @@ public CohortIndicator newAttendances(String age) { public CohortIndicator reAttendances(String age) { return cohortIndicator("Re attendances", ReportUtils.map(moh705CohortLibrary.reAttendances(age), "startDate=${startDate},endDate=${endDate}")); } + public CohortIndicator referralsFromOtherFacilities(String age) { + return cohortIndicator("referralsFromOtherFacilities", ReportUtils.map(moh705CohortLibrary.referralsFromOtherFacilities(age), "startDate=${startDate},endDate=${endDate}")); + } + public CohortIndicator referralsToOtherFacilities(String age) { + return cohortIndicator("referralsToOtherFacilities", ReportUtils.map(moh705CohortLibrary.referralsToOtherFacilities(age), "startDate=${startDate},endDate=${endDate}")); + } } diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 6d2d666bfa..084e458815 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -904,7 +904,7 @@ - + @@ -914,8 +914,7 @@ - - + diff --git a/omod/src/main/webapp/resources/reports/MOH705A.xls b/omod/src/main/webapp/resources/reports/MOH705A.xls new file mode 100644 index 0000000000000000000000000000000000000000..9da5c5c57a1a3008ab799ff11ee41e1df2f07fc9 GIT binary patch literal 94720 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 S{CQ6GpZL2ixADLE`~L^fmKJaT literal 0 HcmV?d00001 diff --git a/omod/src/main/webapp/resources/reports/MOH_705b.xls b/omod/src/main/webapp/resources/reports/MOH705B.xls similarity index 76% rename from omod/src/main/webapp/resources/reports/MOH_705b.xls rename to omod/src/main/webapp/resources/reports/MOH705B.xls index 0ac7eb9e146e23ab0d7d542c2fe787cfdc8884d3..b34e9f4dd049195fceaf3a06f94208a6a0fbcdae 100644 GIT binary patch delta 8358 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 LGc&?l+&%vTWWdZN diff --git a/omod/src/main/webapp/resources/reports/MOH_705a.xls b/omod/src/main/webapp/resources/reports/MOH_705a.xls deleted file mode 100644 index 29b771032a5094274891f80d33c9f91a57dac373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167936 zcmeFacYIvc@&A2f%U-#6ulowyAOps70gGZ-cNws~#xjU5jIm|FATUJ`iX58gGF6x+ z2t@=4qJ$`+$%G<`iRcO~qKojR@c$j#|y=x1~AXcq2ex|?5;y-ZJQ2anzHI5(?f!9Zi?;CC{A zNhXuDbUus)U?ISw|NrOz1rg|#gGBc1VIJ-GQsl`ES*9lv{(jm3BzUX~6psaudz!&e ztoX27*-P9?X)o}i@fQl>K=*iacE{$HncZO#8Oqdhdu(7w`73Io5lZ zzuN5VBCI=;8lw0QwR`7{j?0i|8#=Zy?eoK}3`UBe7^vjXWk~Rmr|w7GuBFp{jLY89 z^e{tA)_8N98E+<-$zXz+YW6_8-U&;#UOFy&7aYn*q>~?FmYdb)D07(Si3RBWBfCCv z3fARYoBi9k>^Uf+asH>uYYv^PHalQNStV|-b}+dq`%BAH_c`5Pw|?&Uz>|F*J_wc5YhbuYl0bET(CTafCgkGUUn-qrv*dObk zeh>7WmUqpIt&`q?9^N`_kHNen-Fka@^y56sbHeTUJ$|8|jy@T|uR&fq?Qb+#p4;X4 zWia7Lw>@-L9{9O>%^F)LcHDIxFSftY+&!HixUtJS#cg8fzf*jAV0my{pdAc;IR3%% z*&T~}_UowI4*hB6V%#h_*vB9r}OgJp5>D~e%5Zi+-^Tc@viBX z=XP06YYVpLgbsb@?eFA=uI-8O3FFYQUryg?e|umilx47;vpR3*1D@p_>pgR8z1#jH z=r{VY`Eq&ev^}HsbTWMgb*S*?KiHjIJSTKQ7drUoKX5{` zlF-SP#p$*rgP71EI&^}|io7A16jA|h{o|<O*Gt+EsIkx`-fYS!R~CE;$->^8i(Oe=p?l1f6ta|hd+f|f@{+$&-f3V`E4tR$K!5ydZ$@N z8$h8*)rGAkbr~HXN%!}^|K0fulb5RVgls0B8V>T+Ytjw!G<$Ydr#&lxlb&wR9(?dY zw8$E(Ipsmt63 zY}w@eacEC<%Q`k{r%qAX4I9IoanhR#puykCog4Y4W7I5?fh z-M(?zrO)w-@2KqnGlr(%{FF_Qm*P*wUuYNY~Oj zo}cQZb37CHBNrRu-+8T*I*s=I@PsTJ8f-U)+&$r}oX*kulA~L7)TpT^2(g? z=E{`Gb5@o~_B2azf53WN5vLc<>F26$gK$B#r^%u}oQzkRa`AflRozD8HP${RYY`T# z#EVb%&VpPs-TirRx<60r`143y!|iRd7Q!VtJ$@_KLl6txuCM@`u^xX|-|?IQc$K1u z$(kFi&u+v>Go0MaF{|)zHQbyG?F_e$XxBf6+ZV$t82wDvOuRC+E%ZBqR4+3Tn5kO_ zCwu2)KfFHg)7wzR@Y)94?(CIybvpxY{d((m7+&+p>AasiBMUKHlNNSkmo&RERoIPP zXmxNq#EhW~bdJcxP7#@wjC6{ceR|A{m77L-Gb2|lY{rYfg zV^R!vP7}k)LJVoPW@DJ!Ifk@_onyFDrx^0iZX?Ao-B#@=#E`dYeCMqqSDm+N`%YUG zK7BM^BE+a)9E|s4G31WIz?p~t*WurlIg>%K`@ut2w-L!cCcW0iD2CS-h2b&-?mCac zJYgqk22P=mVN467VtN|46NQXU?{GWBY}Yw+Zk^+?PT!CT*Es|it~>Pya@9E!+jNRV`1BaAGYe^-mL@+jArf@< zX45`d+Szn&#|b+dx*dX}L#Lf3SDkluY^R;&r%$1$FU24^1;?lLIDFAi>GbrhF?jmc znsBG`X{US#o^(5vi=Fc8t=m3mqImJ!9!#&y8G|jNKiHqFtkKEt#{P|#(1@BQg*II` z+Cd0y*iHta(lE0q45k6pN@!*=07q~f=T`)C0voK{tv9dx$Yc-0f47@B2uD%)N(50p zA$aUE!Ra;(6P#3qeQLJZWkYt7_Hw4Qm+9KkcEVnU1HYds!2Hh5pRUXqxApFH>z&LF zrd>34}h+JR}dHtZDHCcdF3$}nnXle=PU>3VE$IJKs+F$nW56nVJWcEH3i zRD~v=ZZ11rC|kO+Lt}mb_CFYhM zMY!o#=1l1n@jl7Ert?0B>d^JV4ZVT@6;gnx_Sw)K8#2=DOUK@MW-Uak%&}WdhIZ(*f6-)bM6|2Y?pq8K zC85u!>phc%J|B*NY_nuT4{Yf$G#H#g6d{!~luyAe;Nh+$HsmB%emI-{4}a*S`Q){$k6WGZ*U+o*R>R7nSe6rbJNEQz zho1%OVn8o_r7DBpm#jQ~W$EhmQ%*Z>UB4|$dOwvraP|jh-CDl!t%6mLPFir}gD>9q z=s(T88%ND)yyexJcbY%>=-h(8v3#>Vr1_wakUZ$7-^8{4!^e(&%geE5HBjj@e~< z4n3~>#M$|u*PVF7Zl2fDR}CGE#HjZ>%PO!7*W(V z;-onTzWVL4)%QG6dDVvVCvH0V=SQDQn|s{Zdien8nn zYd+}r?;CcU*|ziRHRm_qvbf@`9u4))J@OAet=|jZTsG{?$N%>BXK(KGSkKk}`n2~G z`@i@38;1-({M_;TT={wLN8Vn0{Hd3`a_z=xxBayAv`6=AIrg}ZUx-e6?t z_PJC3H2k*6rEOWWv$nr-;f!)d?z@v|R3zpW$@i|=*T_xs-Y;^21+ zpMQGjng4jII(cUMruO!S+Di8P;qA+!+x=2i6HorTzV6-G*A@1;XXI&pLPuA?@6v&}^hd~^H|aw?858#NU3k@UPRqyYM&jf75H}{olV{F!Pze zPJ861^A0?F&xu*3=UjG2dCh5$UbyRF(wz$u&F8T0J1+5g_|<;p$2syunzJBy|~|N0%@nQ3drpRw-k%a+~v$o<`~oWI>a zFSu^*#pBy9+&lX7#{?%e?DvGpm%$Gy7Q8QCtmpD^p7q-@bJbh zFSI;)~UR7Fg(Y?(d{BrKl_vStHan4is z9=Owfu@OIZpZ8Ppj0+AgsBYOaKmV=~2Ohjr&xeN9A70UTY<0`3xu4Je%l3N>{8f)B zx0v(Kc=@i6zrS-x^*ayjd`{smSKZpZPr(O^UOer_=MxuQ+H=r8EB|r$ch_8b(R2GJ z&a0lD_2|O)zIy$4-<&)=_TbcaPI>c~V=6aYQ8|14D~BI<_1E{W+Bou&w+{a5_I>{G z_S+Zz?c3o!C%sia?a!ZWnR(=EE9c*{cE!?He>(Pr>z~Tm^TF~X7re9bnPGQ4k@LpI z!;Uz3=s|H$swwM~EZ%NvhgJ$qRHUH;zp z!1<5-Zrx#f%-ZFV$#48+(9tjEOn7hIgx{B*+;7OB-Y4FC)7}4=wdS$o?tSNyjR$|a zeeuUnOx?2fu+y&^7QJkj=XN@&`;x_X-f~g-tKZ&mL%&6v%pGGZ`aW8I+NDL$jlK1N zKU}!<{cm>MIO~RQqARbxy3bql#=kJ;zP_HG56{+ux_1JFj2$$LF80^L{r`Dhc9m4 z>GoNr8$bQcnuG8C&E0q2@XWpAE}nk>$1h$o?DVJZ{_``-ro7a^8T|QTK4G2 z^$#xG_0e;m?X&;c8xQ%*!D~lFzuf2Rqt7~V<=>{>|4R4Vs&O}d@|U%zw&pHBt>~cb zU!8E^&?hVInRMNd=?xQ}%b)w<`?CtRnfBpp2mNaMBTkq#;rR=fjc@&N`P1zm9`WU~ z+5LBX`NBWHF!YTt&OY&(<@eOxb@?T?)xUVl-GBam+kH-asoRgoyz%puJzih8->f-L zp1E=TrE>?Zoc!pe)6bsJ>)WR;Z<+Guq)(?l^yjyZU$^s{FDGvpd)upvuX*^Z3qFf~ zaow5|&t19g=C_ZD{raSz_P(p?pSz#kt$5872cP-$uIC-HZQo1!{^RyP%^g3t>D=?a z+JE03|0=%y!wb*v!R%V6>pYNn9#{Hms7o|@XXvhDoG&wb^r{a$@)#I~pA-?4FC{%vQO z4<=Qt9Y6Y=(O-pqEPfgu&bK=R0y2+m`$UeT{ z>cvNYeB`Zn<$qN4_{O_d-~IZymmmJ)4{zGTeEPZ0;7*76bRp^Y%Ep>H=td(XbVoz# zw7}{+&uKcswWRl-rw%=@{hacgva;768FYJV)vTFL@rmekuRL<_7UvuL1PagNjuP&dxeE8Cf-rD1+`;R#1^0I=j zhm~Hj@1!N$OPuaKqh;vtKym zkw>0x*?KCJd+)?o|Al=WgIA!2;QvGBl^uWb>f=u?S#kOat4}(N=0U%^;>D#;O&z$P zebLY7ezMa(H$FH!XWP%uX}rAgH)n2sZqvl!&;Rwo+WmiOU;OHdxp(CbUpM)!kN(tp z+M)Nge{{>KBd+>x#pnAUzV`g1&id%Cd%pka)9oL9V~1(Wx}TeO@Ap|(9o}3W{p8bu zQ@8*8&J~~EyxY4YuUc0%;r4eU6My^ry)NJU;AJ=UIwF3{yps+aTJY?zj-2?H(_VP_ zlpi+iv@UW$)fv0(b^ZJ?S02#bc*&4^ULE-7_b14~d;6@B%Z zwQEnhcIy6T_ndrI-Sq1}8?~Zr;14|(zA|-k)zfuf?vUK`%S-PqJEZi1Z%^Ihh1|dI z_Vi4#!F}XGT`)Hd-S^Qhq5md%l6IcHWaUJgp=LQp~4^R4RK~5YA#LStb_FR z$S+vYeXF0~E{3oow_a)IVahA*g?YYxPEduJuZ&#S(w3e>6My?d8#oc94hQL(G}P=5 zJ@YGUX6iH3?`G$rN6!y#HZ)`KVrc3k3F|z~XQw?d!c(0FzXy|kyJPI5 z^BE5NSc+e}_(<8LW&8FBlH3cYxN(fG-Kfi&OYsiiOFNyRU7mBGxjbdrM(76N-wK@l z9T}X=)0yDu!EZ}&?n*D?bP7X8!PA%eksmePsa5*Tus1xis`-ydTldl zwgkV>!~X=Ybq23rV)+JIw1yrwm`(V911;IG!ED~V8UJA!ZjIP9V-23O#cY9o4gMvu z+^pGR-h1!8;CbW=e+phirRU?Xfe$P&cvA4ZEqH!1xyfvTo!kUp@SEJS#mrcfG&Ar& z7QqIa0JdYznoZ`~Yp*pBm>INTI8&YhHU(hWj7?yMIU)-IHs@ooZaEXFH9c|eOy};a zgD6~|Gs0Y-5?@l#4~@)AO}04z|DMds0mfXmb2sy|$<5snWtRhHnymeCHa;KMN0ysh zvkN!~zt4eHgx}}mx4m&O;2`{-F#98A%dlhxmMy@uR$%E8EMJamK6^vEHJ#1D=uRcA-6|DG!J<_1y__P^Sk4s9A1B&gN3v<>t}a}Cg4H_UFSO)yGobF zrXVpZvFzyJ8VEgg3jVqh#j+Y&`_gG9&mpfz1<%1nCE5krnMJgD6L2wtE=#P(<9z&2 zYo0)tp2D!~P8V60V7&>j2o&Jz^)A?UT-&23oE}`wD8q)*6+Oxl1mf8eWyiz*7bhr`DT+rwk%K4edJvPZ>m< zUMEyNP0u9a(=&R+mAEV zw$EkYEu*n8Jvh2#;4P!EFg-ZJWZ*5Mu`oS2%4Fazqp@K7p6bnZzHRi*w;Cro^t#@E z)%_M^*8M`6GVVf|lJQWcjJr^#WIU89<1Umb84qR3xC>=U#;r{4exXbmccCn!EU4Wt z^p;T;)b1C0%P0$K_Y1vclm)f>S#N6h3uPIF*G}MsQ5<^9D7*$)Y=ug3wu#(SLiP6MXg<-yRa9vc7^T|da>OF_kJ%! zN1^xH9Ea{gch7syla}EnIAy-V5^v43#G4hCcx#>|-mI|1Tk|aOW`!l*nrDeOE1^W_ zC@k^TJWJH*3LS;LsL>TV3VTtbD|8h0qDD7ON126t1hVYw+EehFzpYN8t*}H5vCvl7 zi(0@!TVXG10Sj$~y{H8&v=#QE7O>D(LNB(h;C!kGO@*%+pU|brU|!SpmHr|mGJKs( z6wnY51(Y38K;UA5PMOhEA$}tqDEKfLF`41uF!)*FG3Gui5gv@2eB8mc7-0q zUewwZdJub2Yggz&>_x3zp$COtY!AYx6U+%N?ykiJ7|*2_x|FNTXISE`c9wYa!4hw^ zv&5SZmUye3CEk3n#9Qqw@#Z6x2)%?Q-fCxw8eO56uopGDLN8%2YIKEO!d}$q3cV!s zBJ>iLsL>UA342j%SLh||MXg<-m#`PLc7qQHujK9lwoE)>u>5CxPcQ9xrr6i|*t0oA`Kp!|pes(n#F zxe)}y^%ol``|b(RgAz&M`b)S9C6dDRm(YU}N#XiS=s}63aQ(%45U#(30_q<^B!%lQ zp$DZVh3hY&2c;&3>o1`Pr6z^zFQEseCWY%S)`RU8cw-m6&5f?P*efd3E%I^FLfwPj zQAQsxwgfX0`Vc7l#h__VVu~PA<|Zuh9z9v&?e8q{9z9v&?e8q{9z9v&?e8q{9z9v& z?eC#Pn47S~d-P<98eL&-!d}$q3Ud?oqDEJko3Ix(y29Kf^dihnSfWN(n47Q{wRVNM z342j%SD2fy7qxbUxe0qwYgd??gkEgF$)lTb=>_IB!8P7+cCvMcq1)+5LvJL_MQ5^e z6}s9>uOy|u;nZ_e-8{V;vBW!GSmMnnOT6QSCEkp(#5-PC;>{>ayyJx>-i(G4p&PNp zJ6>3#Mpx)Y>_v^P(2dxO8eO3qu@^PELN^M%2;GP!YIKEe#9q|e6}l07QEOM|M(jnc zU7;JX7qxb~bfZ}&mYWs6`+W)~Dt5ABTN1vJbwMz>N&nJPJ{pc~S#(dY@{-d6TS~4|`FgD>NSV zqDEI}JnTh{uF!ZwFGAyCi5gv@@vs-Qc7?{nUewwZ8V`F>YgcGI>_x5JE{%tKPUyw< z9DKs7o$?%ylP|iXmpe<^)2k)=U3V<;Rz6F-xnYU7@>$}|4NJV0&k}ELSmLdGmUwd$ zN`$_`5^v?RM2)V{SJ;ahU7@eA7d5&U=N$5rBCM;2- zD|8d~qSmg^P1uWCyFxc%FKX=y-GsfUwJUU!(2MORxH!B7oh1A${W9EgN6_betqU#- z^WVgGA<@~Ea#q9=?}%WDH)kyIjtG``bH)_zl2_d{=yP9 zx8 zyXigDY40mon(_{6Q9!jX3Me%L-1g`hA2=XX*-7KL8(dGEkqAWP1;T&dQfW8b_vmg zQj@kr2p-)0qicVlTVbeI(3M)x{9~zpJ%uISBP2__J)9-pBP2__J)9-pBP2__J)9-p zBP2__Jv@{M^ADDIkB}@;qbtlm*ozunVgA8h)aVNH5B8!)SD1f1R1C@s0zQcr(Qk?>JzIH&ZO}jsuo>GsP0`IADo4Q=vrYGQlkZtn&^A zmZ%{XS`B+qLoBo!_M(PZXf^Cb4YAN_LN7wAVTl@Dq1CV#wSa|I!(P+^7FrE^Q43gT zHS9$#V4>B7UTmugzK3=#nhSlsCS63yMPn($H&dj2d3hfGs9d0BiMQ@q;>`?8ymikK zZ)RBHt$UVuGs6;Z-Lu4-nNT9M7M6JHo+WB@g|5P0)aVLbg}tcJ6}k$0QKKt#mC%dO zRal}%SLiD2MXg<-tFRZfc7?9OUewwZx(a(yYggzhp%>d#@bWTUlBJKKqi;6$oDMC~ z->1kDZ@sg`n-P|H>zyUujIhL8?=10VgeBg3XNfl>p+x8=Eb-PmOVsEJ-GsfU(G|K0 zdr_k+bQAWXMpx)2p%utbfn&`sEjTDw9wVJ~X!3f+XgsI@C}6ZWFkuFy?FFSeU> zeBt;B!Nu6{G$`%-WRX5UVTrfqS>nwKOT0DD5^q*m;;ng>c(cM1Z_TsBo0U)^bQG3& zYn~-)bcK$>UexFc9fiH9(G@xhdr_k+bd=DG&{0^TMpx)4>_x3zp`)-DwRVM$!d}$c z6*>xgQEOM|D4`eIQSg0tb8umWJ|6c-ocqu`#rv|(99&KjKVvQwP{pUcbQ}sOBcgz+ zT@+9@L;+R0D4 z&o5ZwJp!`C+oM_HJp!`C+oM_HJp!`C+oM_HJp!`C+oMB?Fu!1l_Xx-mHM+w5g1xBG z73LT0MUAd7zhEzFbcOjv=tY=cutbfnFu!0gYV8X13-+Sct}wq~FKX=y^9%N()~+zW z2))=&($8eAz{@r#1Yaj~bnw{-^huQV^KH|17W$fD<;p5cytU5~Z+2MXt$mhwv%?Z^ z?X$$29hP`&pC#Vxgc6~%u*6&YEK#E?bQboaMpx)8>_v^P&{^1v8eO5YgkFTs!V)#Q zLT6zwYV8W0g}tb?D|8n2qSmg^S=ftOyFzCPz1Yq&+GNeexym|p7W$l(Uj=6`^pbE9 zUcsT)ap==n=yMS0g=0Rm@w`+#SN}3ImUzbnOT3w5iFaJE#G5&mc*g}xyqRN(cU-W< zo4HUTbRCv>#|2B&=n7qjy{OR@x(<6$qbqbB_M%2t=sKYnq3f_jjjqsj*o#`bLf2t0 zRJ(MGK-z;m%hU+luS-@KxSmGTAEb(TFCEjts5^tAbi8o6u@pc)Oc(cS3Z%iW7OIGOjmaxQo zRAh;_Z?nXERAh;_Z?nXERAh;_Z?nXERAh;_Z-)|L&cPDzQIRETbcHzwdr_k+%sJSL z8eL(|!Cutp3UiLoi!kS4i5gvD&cR;P+7;#;>_x3zVa~x`)Y=v19PCA{U181U=4SP|eD|8$7qDEKfHta=>uF!2lFG9Cri5gv@+prh4 zc7<-kUewwZx($0#Yggzt>_x3zq1%LBY_~!4upd~)p2{bh-n zuk{y}ct-$Byg6ctcLcD+nsL>Vr z3wu$cEA$ukqDEKfFQFHqzpzA&uFzlDi(0!ve_=0b?F#*cy{NS-^cVJ`)~?WBLNBhr z%ts%gtF-n*3o`64^Y#A167L9Li8n_q@s0qNcyq)O?+9RtH%Bb-jsTW;a}-L1{=yRP z2w;gCU7^3Q7d5&(G~g&dr@mw=r8O=tzDtNuoty< zh5o``)Y=vLOX$V+7rZffAIw-v@z2gy_)0Ck?o1z+LT_0JzI8eO5wuopGDLYHALYIKDz!(PU=40};)SLibAMXg<-%di)n#*e?Ta2LH==;*UKCJXL;=;jD4?8(0;+dWK=}{^wv&hg zB~Z3Sh#r(c+4dlMPy%IJgXlpClx+)w2ip`x0ks5CphR-IQA*A>1925f$=OCAdQeKv zHUZItQgXHd2p;V4$9s$E^G@tl*zg0a(>^QplTSo}H~ygqZ~Q}nw~|AFH~yi(Tgjoo z8~;$?t>jSPjlUHLLp~IED>)P>kraAD=s}63&=W!rN+gAz5PDD|Df9&ELFfsgK#8QC zBnU+-^n`E~N+hQnr6z@*5UxV0Nuei%9+a9CdV=*}djh@}c{zH*N=yQB@xm^>8oVa> z9>P_y=^of)@DY#nnz8rpljZvB!7QOFPkSE267K|#C6ph<3uQ==P_-)(%90|XidQ6* zDN!Pve1tn~zb#quqDEIZ`QR0)(G^ZU*ozun;pBt8sL>TpK0+_T$p=fkCm$?PqiZ{h zm?PojgIA>1u5j|fUewwZPCnR+TD!u@N9e_Nn(=h7 zo-(L$+p|_x3zVb&CSu{{Ux6H5L1pN!7P68dY;Eb&%9OT77EiMRS$;>{0Byw%SV zZ+=+ft$vnx^Ak#h-og@Z^|M5cuFzZ9iyB>_x3CvAx}Pf5xNUYy!Fo#HM&A~VJ~WQh3>*$ z)aVM`r3fD*fO`aNT}?A;h=mptZjjJoSfYklXff`Z+3&`|V#1LhxWageXuVX}g2yL8(dG8AK0C zP1>#?dQfW8b_CIbQj@kD2p()Nz?+(jaM@&K@Z}r1hCbSfE}D2gNTmn@b(#@MgactH z5xR6J5e|f*MCj6?L^u$J5}`|n65$vaN`x+LCE_$AlnBSbP@+axoMwbx)aZ)SjL?f3 zU2&QbdQqb*&M>SOafT5})aZ&cjL?f(yW$KZ^rF_TIKv3NsI@E3FhVbC?TRxD>&12z z+|)w%w3XteBKml1p`*;#I|@s@HO~@nR#@V#d6syy!V+)Iv&5SfmUwHPCEl!r5}~88 z#9Q+$QKKt#6!xMz*av z%!Cr5tFXjd_bgGPD|8k1qDEKfD(pp#uFzH3iyB>_tAt*JuEG*ExD{siF)bZu^t!DT5lfJxcYIL5A0+qUqk z({j9@U^N=maX7i6&tzGJMzs)2>^BgleOYQb1mgD`h5{NUq6bQtD4^jX3Mf&cfQE%A zpah8m8V;g>5+ev~;}Hck1Vn)nN!x5h4@x9$lMy{Ak+jW4^q@r2HWk5xZ78BZiKJ~L zq6eiWZ37WKC^cythv-46N!u_)4@yniMj?2x{Q)mJ&&B%}PYLeUUx&#IeP0kwV$$B* zHdntZpCwe$iWka+BB82QB$N$BLY1vZC?kr5s#}pzRz!(#vJ{3+crPPM)aVK)OYB9B zu5hx%UexFcCrj)_jjnLA6nYU(mRLd^M9h(Jvcz80+7(Wg*o#`b!pRbQQEOK?Sz<40 z?b@Cap(zDTBaX!+;$&Z|SZ?;!?oVNfx0qSt4L3`?#mo|KxLM*YW|nxv%@S`hv&0+j zP$IMnmUxSqC2DkqR>5A>=nAcZy{OR@S_OMiqbszE(2LM2SfWN(Xcg>5tzDs2uoty< zg;v2{)Y=tV1$$9zSGcYcda)A_yn$yP`Ut&E@JKw`8|{|`|I?>0r9IP`hiQoYkOtxH z%&8(80jej;k}9H6po%C{s)$B{Dxz$uA{q^N1G9 zaQ!6JQw9+iuAiiO${^yx^%M3aTt7(_Q5RAoE?hrJ^^`%43)fFlJ!Mei!u69>PZ`v> zaQ!6JQwB9ITt8t?wlnoKS#xk=M3+oX!o`!cGsZdYrDpGuf+gPLFiX5g3YK_}!z}S0 zDOln?4zt92q+p5nILs37ks_1`vmBPF(X}6-Am&JznwQOT6{Z5^siB;;ny{crz4Agzmx;Z~e1GjjqsL z*ozunp}VjbHM&A~VJ~WQh3*o15xNUY)aVM`g}tb?D|8q3qSmg^UD%6SyFzziFKX=y z-6iy5yGvh_br8;rOsL>Vr3VTs& zSLiG3MXg<-udo-jc7?veUewwZ`by}<_LUL#1D(RFGK+9kW;M=)=qt+B<3;6_cvn&9 zmy^@>n*;D+bV|QriFZV>#G5mgct-?Fyg6fucSNwnn=_VpM+8f}ISVC1zhQ}YM1+#y z76IW@Dbxu~hb3x=g{H$^)DR0zhrOsF7Mf1zMQA!KQ9~>=9rmIYu+Vhai(0@!(_t@a z0Sirsy{H8&G@a0kZ92HnMK3R{!G)Jx+@nGlgy|OE(_yW_|Msqxv~6a&IUwb}6-DB0 zGwj8iC6;){086}CVu^PQu*91smUzbiOT1YMB|@8FiFXXJM2)V{Vc3frU7^FU7d5&< zhhZ;jbcGHRdJ#GdOVsEJ9frNAwJUTO_M+CV&|%n%TDwArVJ~X!3LPf&Vml1(d6|dl z%h7lN`xIP^DGeS^N2f{KGUnlh?ET%{aEioR_w2=+8J2kKo+aMQu*6&UEb(TBCEmJc zi8nK$MCd9k@zy;{)aVLbg}tcJ6}k$0QKKt#751V=SLiCC7on@LM2)V{RoIJKyFyoC zFKX=yU4^}CR1sCbDxwUj zA{qgzh_a-LXcVX-%9JXik)VnwTZ+i`8dXH&K^0{XaocfJPZ>nqb{*AI1`)TNNA;9J z#BKLcJlX!EiZY0}?Ln%i3~Jo=A=Og`HEw&6>M4U7xBW=H`4I%R zvxow!d{Ll8()JY5gAz&GPecz&ByBGdJt&d1eMInJyND=IB56B_=s~GT+dV`NN=@3% zA$m}1(sm8egHn^WV+bB>zrYlxDCiLuX)n3V z!MW24*CiB*_n66Eyj`6o-eV?9yj`6o-eV?9yj`6o-eV?9yj?w%2s09vc#oMZQKKu& zNZ5-SU13JTUexFcGZOZqMpu}TgkFRh2}{)I3NsS+qSmf3BVjLU?Fusz_M+CVFe70v zYV8U$lF*CoFr(9V7<>J99lFh0%u>pNt}_qa#(rzjddynVwv-~A1u5r2Eb)#DmUuJA z67RTRi8pgB@s10Ycr(Wm@3>%zH*=vx=sGO%jtiEk(G|K5dr_k+bRG7hMpx)M>_v^P z&~-vDLf2u57~NTBzp;3EWG8$fof=}{3mtiFYKZOE#fsxiXg$0lwSa}z!(P+^7Fti} z#kL-Nb?l;!JAO|?YoR-5=u!(^f+-5_1D=krb=b{JHQVB{OWKP$i_AfIpHsq3b5s#! zOchbnQALzBRYZ+P717{OMU*>LL<2+>QT`N>Z9%GthKVZ5AmX+Wsh%>3xNSzNrwk%) z8aEX}5o$XEP>N1GQAaQZ$+=L5Et1$A#!k%h8io;CFhX)r#P?^!fOGDbCNl-HKjrPyKSXv;j#KdB;ww z$eYPjk$3E*ioBUj6?w-_s>qwkRFQY=q>8+mWRcLVQbpdelPby};zGAd^^`%xg>IGV zDT9a$-73{n1`!v!6?+o8RjMe1hzs2+)l&vFE_AC@PZ`v>(5+HEWl-Znw@UStL5&OD ziaptGg-^6tjvlm=r!%EJ(Ote(Us5DAMidFTJEU_0gy26De_M%2txUdv@5iTsTg!+w`BjK77dr@mw zxSY*i)Y=uUDX|x|c7_x3z;hIwD#rBqo)LT{uw-(ZSu;|SZ^aA@D{9cCZOSyQY z7tZMObaI3LNkL0Uvl1_{(dVJlw?KJ5S%*H?Gxfb%X=g~OBJc4!RpdQ-q>8-9>r|2V z=#eV&9rw zYF&&zUHv%xqqk?+Zk3DoVA$WiEh+V-IaMT%qR^9=(@-RiqEIB}G!%)WC=`h~4MpN8 z3Poa0tw`xxp-3D>p(ulhD}5{UltILmz7=}PAmU2j3O!{IaiworPfFhkMHxg~>0608#5?OV8+Al>ZiWOS=sTzB&KtfaZvY%~w< zX-r>Z%)%mLZW(6GD{G92^fKm#U*Y#L#vFXPG3y2z^Wv?>Jks5mpMG!57sHJ?^{PnBX-C#Pxdip)?QiWrkF81EzdH? z4l!oCHCbj(#F$@xm1Ra^J#b}uBx=K@F${b)X(J zfJV>+nn4R_1#O@mBtfJA>jzN~19>1H6o5D=1PM?KN@8-K@8-9d{6-5pb#WLF(?70pbV6Q3Q!5EKsBfVwV)2v zg9gwDnm{vX0j;17w1Xsw?2h$=D2RbPkPiw#929~CC3Mc_1GYfH)`w2~Z45Kq)8#<)8vof+|oAYCtWh z1NEQ*G=e733|c@dXansa2_k!9{U8crAP?k&0uTpBx=K@F${ zb)X(JfJV>+nn4R_1#O@mBtc{^tRF-{4CH})Pyphf5F|h`C;_FQ43vWkPzkC)HK+l# zpbpf72G9taKr?6ot)LCGgCvN=v3?K*F^~uHK>>(^LXZH(pahhHGEfdGKqaUG)u0B{ zf;vzS8bBjx0?nWWw1PI!4w4`;8|w#A5CeH29~6K%C8Z@<9QJgF=u1#h?U~f-+DJDnKQu0@a`f z)Pg!t4;nxtXadck1+;=T&<>IyG8gLyQ4j-pARiQfI4A@OPz*{yDJTQwpaN8aDo_n- zKrN^P^`HSXf+o-mT0kpk1MMIQBJ;3*5Ct)i2l7Dyh=W3q0L7pLl!7u)4k|z;r~=iX z2GoK&P!AeFBWME6paryoHqZ`|ATl582T>3Mc_1GYfH)`w2~Z45Kq)8#<)8vof+|oA zYCtWh1NEQ*G=e733|c@dXansa2_g%yeh>vQkO%TX0f>V_kO0M?1eAg@P!1|UC8z?` zpa#@}I#3T9KqF`Z&7cLef;P|&k|44W>jzN~19>1H6o5D=1PM?KN?E4WJP;fo9MGT0t9V2T2fFg!O|ch=Dwi4+=mW6oLdO1|^^rl!08Z@<9QJgF=u1#h?U~f-+DJDnKQu z0@a`f)Pg!t4;nxtXadck1+;=T&<>IyvJch|q96wHKt3n{aZm^npcs^ZQcwoUK?SG; zRiGNwfLc%o>Oli&1WlkBw18I72HHUqME1q{K@`M59>@m;APx#a0u+N1PzuUGIj8`Y zpbAuj8c+-BKs{&xji3oMgBH*V+CV!`$m5>N`tKsl%Y zm7oe#gBnl^>Oehc0F9stG=mn<3fe$BNP@^xtRF-{4CH})Pyphf5F|h`C;_FQ43vWk zPzkC)HK+l#pbpf72G9taKr?6ot)LCGgCvL~uznB)F^~uHK>>(^LXZH(pahhHGEfdG zKqaUG)u0B{f;vzS8bBjx0?nWWw1PI!4w4|U4C@C`5CeH29~6K%COli&1WlkBw18I72HHUqM2fI}5Ct)i2l7Dyh=W3q0L7pLl!7u) z4k|z;r~=iX2GoK&P!AeFBWME6paryoHqZ`|AhH7M2T>3Mc_1GYfH)`w2~Z45Kq)8# z<)8vof+|oAYCtWh1NEQ*G=e733|c@dXansa2_pMr{U8crAP?k&0uTpBx=K@F${b)X(JfJV>+nn4R_1#O@mBthf=tRF-{4CH})Pyphf5F|h`C;_FQ z43vWkPzkC)HK+l#pbpf72G9taKr?6ot)LCGgCvL)WBnisVjvIXg8~o-g&+ZnK?x`Y zWuP2XfJ#sWszD8?1$CevG=N6X1e!q$Xa#Mc9V9{IK&&4`K@8-9d{6-5pb#WLF(?70 zpbV6Q3Q!5EKsBfVwV)2vg9gwDnm{vX0j;17w1Xsw9EA0QD2RbPkPiw#929~CC`$m z5>N`tKsl%Ym7oe#gBnl^>Oehc0F9stG=mn<3fe$BNP@^=SU-q@7{~+ppa8@{AxMB? zPy$Lp87K!8pb}JpYET1eK^>?E4WJP;fo9MGT0t9V2T2e)9P0;B5CeH29~6K%CS2MwSRG=XN&0$M>EXa`9UIRfhkQ4j-pARiQfI4A@O zPz*{yDJTQwpaN8aDo_n-KrN^P^`HSXf+o-mT0kpk1MMIQA}g_e5Ct)i2l7Dyh=W3q z0L7pLl!7u)4k|z;r~=iX2GoK&P!AeFBWME6paryoHqZ`|AaW$u527Fj@<2W)0C7+V z5}+8AfKpHf%0UIF1XZ9K)PP!02kJosXar558MJ^_&<5H;5=2&E{U8crAP?k&0uTp< zAOVU&2`B|+pd3_yN>Bx=K@F${b)X(JfJV>+nn4R_1#O@mBthgTtRF-{4CH})Pyphf z5F|h`C;_FQ43vWkPzkC)HK+l#pbpf72G9taKr?6ot)LCGgCvNo#`-}N#6TX%2L&Jw z3PA!CgAz~*%0M}&0F|H$RD&8&3+g~UXaJ3%2{eNi&J4k}a8mu2gK@8-9d{6-5 zpb#WLF(?70pbV6Q3Q!5EKsBfVwV)2vg9gwDnm{vX0j;17w1Xswlw$oL3SuA+Oli&1WlkBw18I72HHUqM2^P#K@`M59>@m; zAPx#a0u+N1PzuUGIj8`YpbAuj8c+-BKs{&xji3oMgBH*V+CV!$a|Py=c~9jFHlpb<2IX3zp!K^tfXNf0>}>jzN~19>1H z6o5D=1PM?KN>(^LXZH(pahhHGEfdGKqaUG)u0B{f;vzS8bBjx0?nWWw1PI!4w4{p9M%t_AO`Y4 zJ}3ZjPzVyB7?glgPzK6D1*im7pc>SGT2Ke-K?7(6O`sXHfL723+CdUTj>q~z6vRLt z$Oi==4hlg66oV2_3d%q^r~s9q3RHs{Pz&lnJ!k-ppb0dC7SIaXKs!i+NEy}-q96wH zKt3n{aZm^npcs^ZQcwoUK?SG;RiGNwfLc%o>Oli&1WlkBw18I72HHUqL{7l^K@`M5 z9>@m;APx#a0u+N1PzuUGIj8`YpbAuj8c+-BKs{&xji3oMgBH*V+CV!$a|Py=c~9jFHlpb<2IX3zp!K^tfXNf23&^@Avg zfjp283P2nbf&?fAC7=|PfpSm*DnS*f1~s4-)PZ`?02)CPXa+5y6|{kNkOYyFuznB) zF^~uHK>>(^LXZH(pahhHGEfdGKqaUG)u0B{f;vzS8bBjx0?nWWw1PI!4w4{pGS&~G zAO`Y4J}3ZjPzVyB7?glgPzK6D1*im7pc>SGT2Ke-K?7(6O`sXHfL723+CdUTPQm&? z6vRLt$Oi==4hlg66oV2_3d%q^r~s9q3RHs{Pz&lnJ!k-ppb0dC7LX|KX8M_KCJT2h zbi+p^3rB}Xocmjugq2$t^{Jf0IQ*#J%Wvu(F*_(_^y<1bHU z55@iQ+nB8FaMQ$gW<1`$b2M)DS{>ZVx)lG@SC}jhZl|D6WSETKR|lWcyAHRou7`d* zL!V*49qySQhPMT6_rG;S-!@r_Rpi3eGIMUQ2j>Nk+hGr81V5k0^HP4Fgx}BI>96PP z^w)3V+o$|~D>g0*k;)4Gont0vP0k9RAO4?ZZp_&ZgprZ{-yd6%W6lch8ZqXCNdrtz zlO5Q!hS3qWyV3UMu-)BsHy`$7I~&hS)%P$x%snZ8?+MSTe~*~RR?pADcBJZinO^4E zl;`)xT_rP9wx^Hjv(?}GVjoif-Vc?vF-6}W)s?#bfvB+2Df=@B??1gKML*aK-pbz) zGi0mn9g5OO^*7uM-)enP6E!PR{EaXpw$hI@Be(K5%8bVSG91q_W{jDcVvjXrxBB}y zGtO-6!TOkqnH4GeTvXf4$TFADZH&n}p^w#@ZvBIzpnGtP*%jn;!`(W;@7rb3|C_Ux z153K_X9U@biU6!Fn z-LlPDD}sFBhBCJ-j0e+Oa2|0n+nf~}zR z9f)<)R^Y8BTWv*;4nWmGoF2_=ddvwP2L_KrgU1oUsg!-X)Qw0>^f74-QnS*h3 z3$1RLo=~r{%I>hJOIa%$7WF4<^?*g4$yz;OQBSf~1QvB8YvsVAK4h(4u&4uBt2Zp_ zJ=W?2i@J`r`of}qW37I$sMA=hKP>7o)*1kdx{I|2!lJ%ntwFG;qgZP&Eb1lJ8Ul;D zh_!~oqW)p6VX&xkSZg?}TxUgLZR4yFu*N%UB&-R}8U<^jvqr<()>&g?#j_tc+$W?PyPWo?dao|}~&lwJ0JS$5O}ip&mpq#f^pvRiI; zbQYDzWM@%%?Bpyek15Wg^2m1%3}{_QF+XA7L^C?a_;a#<*}Eus667%qVkySEGmyV z&Z6>|>ntjddCsEpnC~nqj|I-6@>u9BDvv^EQF$zK7L~`|u&6wGq%RMeA*Yr{kN>hf zsOJ}%eL7Z6$Cu^!MiCpLp6GSU@yRQpMdh)?SyUcNokiu5a2A!vGG|eF?B^^hkLAvy z@+fi^mB$KaQF-j|EGmx!oJHkP>?|q|I{H(2^h6h1j!qj|R2~OAi^}5=XHj_^>MSac z!<*?Y2;P9O*17k5$g1@;J&_R359HMdh)^SyUdS z&Z6>I3yaF5XZrG>6QNvj)NXm9qxJI>T8*V4dl#p|H+!)-YISJ8L+s3TH)OZE)5ISig4GNLc4M zYZR<=oi!TPdCnRG>wIU8g>`|m#=)v|Rt(mKuyD$ZxX{!k{K*M^LF1ssk7Y-3h#6~g za}DMM)b`B>o0Gxuh9XMZB6ATQtwou?*je51w@aMW9oD7J%7%5BvwFa~+*v(gRXHmH zYooJrU|r#?Ua+ooR&Q8WIjaw>tDV&s)-}%R2kTmA^@mmMtO2mDbJjpuo18TW*7eRB z4C@AG4S{u|vxdUD$yvi--R!L4uxgwYg>{RwM!>q&StDWn##y6a-R7*(ux@wO7+7~W zYb>lgoiz?tt+QgV?t(>`&+%uT650#0BJ3zsql-}Pvi_-hBvnaiPa2BPv-dU91KRS!j`zL2n zdLMBXrT0;1QF3zysl-{SEMd^LU zS(M&qoki(wbQY!eIark5UUGVSLsn#-?|3Sm5EhvioJHw<(OHz1}crrT1lLQF>o-7Nz%9XHj}za~7rdb!Sm}-*6VC_f2O}dYhd^>HVv-D7|kvi_-hH zvnajqIE&KzuCpk;?>URo`!{D%dRv@D>3!c>l->`VMd|&}S(M(7oJHyV*jbd`Pn<>R z{nS~M-d1N(dOw3j>Fq72w-01R=JSrH;v3^&ec>!h@0ZS^^nT?mO7GXsqV)ccvnai7 z&Z6{w<19+=x6Y#U{@q!W-tU}6>HXeWl-_?hi_-f~XHk0Foki*Wm$N9nKRAoh`=hfc zy+1jN4$D6~iw?{Gb{3`g7iUp=lg^^_B5=Xstq;yUi%gcYD81dBMTh0?&Z5I|wzDX` zJ)A{{<(|%>!*aw~bXd-TMd|Hha%t@yKXjn$5ZkB>9Be`i_+W2 zS(M(s&Z6}8a~7qyzq2U41Dr+a9q24d?;vMUdIvj;(mTXil-{AvqVx`P7Nr;O_6$PW z7nc@_Ow?JF-Vx5C^p12ErFWFGD7~YdMWc6&vuN~=brz*}oUyq^zP~`O7CvYqV(?WEK2Vl&Z6|rau$u=J)K4A#hZmY;zE<^xU(p| zvzo-qVz6w7Nxh)S(M&IuqeI#j5vDx2kG6rOPodNUFs}KZ^BuW-eu0B^zP>@N-y499fYkv%B{#0Ig8S} z!daBw{hdYWJ-}I%-ePA_dJl9KrS~9bQF;${7Nz$PXHj|&bry}@!<?(l-`xjqVyi=EK2VxXHj~Oau%g`wX-O_Yn(;tEp-;9cP%VRZ+|0>-T_GO0CRN5 zQ}HDtsLNxV6`T?~D>x-~R&Yw}tl*T`S-~l>vnahMIE&JIqO&Ny>zzgEJ;_;=-jkh0 z={?0+l-^UFMd>Yf7Nz$zXHj}jcNV1=Z_N+NX#lSK7MU}gMd>}$S(M(hoJHw9+gX&} z3TIJzH#m#Z`)g-Wde3ndrT1KCQF_mF7Nz%mXHj}Da2BPv(pi+=3t>@u2N*HE1B20f zQO8s1MVumYv9oCOUg9hoy_Y(RM(<_LqS1S~vuN~IIg8S}(OHzAl)nl-_HcMd`iPS(M&tXHj~ua~7p{ld~wj*E@^SdxNtmy*E0G(tDG$D7`m3i_%-; zEK2V!&Z6|*>MTm{Z=6Nxz0Fya-rJo;>Ak~Ql-@g?Md__|7Nz$tSd`v@MojOZAicls zcq%@K2T#4*S(M&;oJHxq*IAU_-#LrYd!Mr?y>-r_^xp3*O78>CqVzuKEK2V~&Z6}G z-dU91hn+>~{e!b8z4gwb^#0LVl-@r%i_-guvnaifI*Zc#n6oIok2{Of`-HP7y$#Ny z^lo+*rT0l^QF{OEEK2WF&Z6`_?JP>~GtQ#)KI<$>Z=3!W< zl-@U-Md^LhS(M&pXHk0p>MTm{Th5~NzU?eZ?>o+-^uFsXO7DBlqV)dFS(M%uXHk0J zcNV4h17}fsKXewQ_akRfdOvm+rS}tOQF=dh7Nxh1}fsrS}_WQF_017Nz&^&Z6{w=PXL^_s*j9 z{=-?6-hVoa(%bGVO7Fj%Md|&)S(M%%oki*W$yt=%pPfbN{kO9yy}vk%(wlS^r57g| z!SQ^EJ@0iErMH{2D81dCMd{6U7Nxg`vnahioki)5IE&Jo1B=o-#E9t~8l<;Z$5V#} zqqn!SD7}50Md|J9EJ|-bXHk0lJB!jgz*+xKdv^gP)tR?jyl{7S2*j|25J-p;2vO2; z;tp{o?(XjH?(XgrcXxMpdUN|D{EGD@~8Qo=5#l``@EENog#00McxjI zyd4#JJ1O#ZR^;uX$lFzsx0@nwcSYVFio87)d3!1H_EzNWqsZG=k++{BZ-2$nJ3x_l zCPm(XioAmqd1qGSokfv%Rz=>~BJy^wp0`VpclPqGc>_uWq7FXPAwM0bTF4gmPE%Gi|-nDCycPT~Qr4@N6D)KI)$Xln#yR0Jba*DjmEAp%>*frPw)+puCv}KVuk8LfBym_Q)S>(;*KFcC+9)(#JdGnaa zvdEi9D3(RuJYKLY^5)TdWs!GXMc(xkdDmCu-9V9dvLf#kMcxe+c{ftz&0}|pyj`p3 z?N;Q?18s^=HP76g13wRYDT~E94?-!6#W@cNDT~E956~!!#W@d`D2v584_+vX#W@cp zD2v58KiFRui}O^);=HY5an6sRm;WS-bACX)EEeY-6pM3yaJ>9B7U!K5i}TKk#d#OS z;=HS3ao$a_IPb1locB;H&U-2r=e-n*^WKWZc^_5W6|Bg+pJH*|U$HnJpo+VK6^rvh z5l3&gbN3?e!R1}^oEG_zhbWHTLlsBwVTz;oaK+JkgyQHuQgQSir8s(zRvf*@ zD30D^6-V!Jilg^<#nF3$;^;k5arB;~IC@W39KEL~j^0xhNAGEhqxW>h(R+sC=si<$ z^q!?Sde2rIz2_+Mo~y`vp5o{|UvczapvZfn;^@67B5(KVM{kcJ@5SX^dlY#uQRKZ; zk@qr1-pdtvuTbQ@Qjzy6Mc%6wd9P9Ay;hO;Iz`^=6?tz^}k zUsU9MNs;$uMc!8wd0$oJeNB<~bw%Dc6nWoNT@2`ryzbW$muE;x0k(VE%=N>qg%QZ?36nPse z@-|ZBZLG-KM3J|tB5yNA-sTZ`dsWZdyU5$3yld|wZ%akqR*Jl>6?xkz^0rmvZKufF zUXizhB5y}U-cE|VofUbzDDrkys7BFH z)i@fannc4@(`XLWESgg_k4C5#(Ojx!G*Y#S=2oqvQL0TeTD6VlQSG96Rr_d+>JZJR zI!5!WPSFCYbF`r95-p^H@@thgDZkf#DZh4UQ`InU+e|fzHdl?KEmV_eOVu>mN;QkNR?VYr zREub;Y8h>-T1DHb*3tH=O|*k*8||ptMLVhX(ax$vw2SH(?W#IOyQ$96?y5_)hw2*b zsk%jbsqWFKW~;dPV!G-qHT5PjrCl8y%?nMF&Nc@0Y|Iq~Y`ze;|wUFXRCo zug{lr-#0uUKljzW!K%5jmH&Qj@W$W%@1q7kH{j8w{qz0@{N+)e11fBrslv8_6}Ank zux;iF+h(b-ZPp6gW~;Dm_CIZ_e>CXeKW(djROXNh+lE%yHmt(7;T5*cQDNJh+4k2* z$&RS7ZLSL2MpoE1cZF@EDr_5FVcR@^+E)K{nfFiI>c1{yDs0QQ)BpDOn7_id1uAS? zu)?;5Dr{T$FWb1>+dtdZC>>lr1bF;uez-w#8{VOc+wcxk+=h3!;x@b^6u03WskjaA zD8+4fM=Nf_J4SIE-m!|?@Qzd5hIhQ;HoOxQx8a?rxDD?l#cg;eD{jL(MR6P6sfye1 zPE*{5ce>&>yfYNH;hm|t4eu<)ZFpxZZo@lAaRu79BJbylyk98teyPa&l_KxgioD+_@_wtx`<){1_lmqfDDwWO$orEb@6U?7 zzbNwls>u7BBJb~tywenUc|<&`;lSxX+@Q#t^Zbyp0ukn<(-&Rpf1^$lE+3 z@4)JL2Nii+ly@Ced zJea+_>ug2dLlk)rRpdQPk@s*#-Xj!wk5uG6N|E{&?`+lcauZdq_m+2^y~ulsBJZV&yq78RUarV{g(B~jio91T@?NdTdyOLRwTird zh`iVNHu7Gt$a{k#?~RJQH!1SotjK$dBJZt=ytgUx-mb`dha&HtioACz^4_h;dygXT zy^6f|De~U0xZV8$McxM^^3Gm8FSj=4N^*JE!A0JO6nP(3q{Y8=Y zS4H066nTGFs_cBJYsudAScD zSCY%S4lVMwP~>f?$lFShx3wZ~8%5r>ioER-oA>w{S8cc3EgAVuDp6?tb-UOR=PL4^r^tK0BJTx?ycb5~owIsge)J(%lFPe} zDDqyc$a{$*@1=^omnrgIuE=|ZBJY)oyjLmmUaiP`jUw;0ioDk;@?NjVdxIkHjf%WC zDe~T|$a{+-@2!fww<+@8uE=|bBJZ7wymu+`-mS=ck0S5AioEwJ^4_n=`+y?vgAsX0 zRL{##vE+JhdDpp$ybmezKCH<5h$8Q!ioB00@;&PPSM~b{3EAoD#$or`x?`MjH8zPR2y za{BdNMc(|dZuxEGZKTNCSdq7hB5zYg-ewVbM^?|v&z9wSZ+X|bi@Yrqd0Q&-wo>G6 zt;pL(k+-cPZ#zZa_KLh66nQ%;@^(_>?X1Y#MUl6wB5yZE-tLOLJrsF+D)RPH=-tw-aioCNc z@(xzy9iqrPRFQX>BJXfT-Z>O`=Tzh!p~yRzBJW5=-nkWdM=A1-R^**Wk#}B2-Z6^2 z^C|MqugJTABJYBVybCGvF09BqR*`oRMc#3WyyF#l7ggk)pvb$JBJbi6c}G>x%TIjf zdT)8x(M8@R6?vCZ4*JwcK8M8(m2k|OWPioB;N@}8>5dzvEe>59B(DDs}E z$a|I|@7apH=P2@?tH^tvBJcT%qxS;!=e+Y)&&!Y0=Sp&U*D*!jixhb;R^+`zk@r$X z-pdquFIVKfLXr1MMc%6vd9POFy+)DuT1DRL6nU>#v)uZq0CDf0fV$U9AuH&6UgT+^LDXBNo4zlyvK z6?q#e@-|lFZKBBAG$QZ()${V0rCdoa@47&dx49y33q{_RioC59d0Q*;wo&A5tH|3< zk+;1fZwE!*j*7gU6nQ%<@^(?=?W)MzO_8^|B5w~x-kyrQy%c$SEAsYHw-nz*%WzaSL7Y6$U8)lcc>!o zFh$icdR1sB8t4@6nV!h@-C{#J3*0mv5342R?o{L33Da6yz4?m-X#=ymsI3k zN|ASIMc#>uyvr!^)+zEXtH`^YBJc8wyela3uBgbnk|OWQioBB)c~?>7T~(2HHAUXl z6?xZCk$1z0ybD#&%Y#BEl{PBx zx^VKgD{ZXu1m2}hRHJB9)i~NrHHkJ?JmuOJs#&z9Y94K+T0~o`meDq(XgAe0+Ff;v_E6oUJynlrFV!>J zTXE{~eN^vgU)3ktPxX!VSN);`BJwUgzn34-n`-8e}sCaKglE3 z$L1TR{t@eUHJDU9C+{ME+E)K4=W!LbjsMfO`h6Gur)|@p<9EV8ZCj=I7>iZdws^6P zXK*RyxgVxKPxKPSwpkkddE1f|wk=g*+tL-bO{}nOnF`zLDr{S}!nWlqY+JsAk=m^z3I#RWWj#4e7 zqgAWu7}YvDR<((aQ*EQ;RlDc})jm2=b%;(<9ix*~r|1;bIXYE!iB3~pqtjKl=nU08 zI#czC&Qd+2vsJI?9MwBISM`a`Q+=cJRln$hh=X#6l@fC`-_)5iEe3fD?zFM&sU!z!yuT`wY*D2QG>lJJ94T`n+ zM#WlulVUBtS+N%1qF9S>RjkFgDc0iK6>ISwinaJo#aeuqVlBQ~u@>K>Sc~sfti|^! z*5dmWYw-gSc^9dkmlZL$Vw86sm%Oq>M_M7smB$U zq@GY*l6q2cN$M%ZC8?(sm!zIiT#|ZLaY^bq#U-id6_=!5P+XFFQE^G?CB-GFmlcNUkBsn->kq~1_ml6q5dN$M@dC8@U+m!#fNT#|ZMaY^bu#U-itBl3=` zo|k{zCY3%Y?>attCzU=_4Wo|~i}S~d#rYG}B>GgbIDe*CoIh7A&R-}N=PwnD^H+++ z`D?}E{EcF9{#LO#f2UZSzgH~IKPVRG9~F!9Pm0C)XT{?Di(+y9Rk1k#rdXVRS1iuc z6pJ%YLdr@xKDS~_Dm73n&J7idb0fv#+*q+VH&HCkO(XJ-ub!97DXWy4m3LhrXIp2*IorA@ z&e_&gan81GigUJgSDdr0hw2pdRGhP|m*Sjly%pzd>!UblTVKUF+xjWa+16ii&b9%H zbGFT-IA_~H#W~vsDbCq8v*Mg>vqa=ww0d4Ha;{REwY=+uBJXU9yt6Cv4p!tHqR2Z` zk$0FP?{G!lIaG^iPSr9Rp;|?Asn*d*)h3!-wT(upcF}0nKAJ~$h~`xtqcN&eG@t4m z&9Ayd3#hKqf~s4zkm?>Sta?OaRnKS<)himOdPn0`pJ-9lH=3aOMTT~3jAc}3n86nR%v%@9K)YYbf%rsmQyQBJbLYyz40PuB*tqo+9u1io6>r@=jLdoubIQ zVMN}=W}KHdFFxZp-;sTnNd3wG=70T)&tr)he<1!{;)>?v(njUK!jkzmn_SvhHH2s(rMh z>JaUuIz~IIPSGx^bF{1K678nCM!TzS(H^RMw5RG3?WKA~d#hg2KB{-Luj&)+r}{?w ztA5b|5#L8kR?o|A29rw%mUmsM$a|3DBHqEOxc;q*>)(otc!#Ot`nM{sf2-p9w<@lG ztK#~%Dz1O4;`+BLu79iI`nM{se=G8ysK|SgBJatHyr(Ggo~p=unj-J%io9ni@}8;4 zdzK>a*^0d9DDs}G$a|h5@A-k@r4D-uo4KABf1iboIR4k~gLF zV0qVxMc#iX@;;=<`>-PKBZ|C_D)K(2$ose=?-Po=Pb%_0rO5lVBJVSbyw57~KBvh0 zydv)lio7o>^1h_V`?4bMD~i0YD)PRj$osk??;DD|Zz}S>rO5lXBJVqjyzeUVzNg6h zenj4h)$?+r?3B_6$XkC>fV$jtn4rFmy!9sqsLS(OCa7;CZ~aLD>hi343F_O(TYpl3 zx;!UWg8DY{)}IuhF3Z! znX+eerqVk~OO&{)WJ><{zw_Uedp*QCsI3FFb)dEm)YgI8I#62& zYU@C49jL7XwRNDj4%F6x+B#5M2Wsm;Z5^ns1GROawhq+Rf!aDyTL)_EKy4kUtpl}n zptcUw)`8kOP+JFT>p*QCsI3FFb)dEm)YgI8I#62&YU{xNxpjb(a(|X{U^giK|Kmj1 zpI6xSMTKo&R@nAcg>7F~*!E3@ZQoYd_FaW--&ff7LxpWWR@nAag>64q*!D|>ZNFC7 z_FIK*zyD?13#Hj|#)VR8rOf~IvQWd0#aW0`BY%`9K;h-k=It}nf6uQu#YX9@oSk8v z{BDt)J+71!mo&<+4NIJHxMAmprFaIYC{w;v{w1xp-+e9gtVb4$Op8{KG=r`o){VJW@y&2v}2$$9y|{W>3#%y~_-~KgxgZkN5Y_fBvtZ#|%GS{m0?`l}f)(oBsXq>oh)ZUf#^` zdGb0h^&hYN{-^)ByQcl|n*Dh{?ElB#um1hkzrVb__7+h#mJ*FIiXVNv<&|`T$E{+xh})M3wLF5imcL$89v_+GrZ4l zGaWO>?8k!Hn`@bshl&=>blb3(@_k0dp<}^fGmNqJFRoXVcoBlreJB-Scbn-Hm zU#?nz+LU)*YEb>isognvH7L`YsuSrsefJnc^;Q-ydPe8KfJ#+Gwe4xlb5~tcx-1I`z@WXz_R&T zOwCs^CuA*ckiY%7yxyd=c|0j!jj8!le|&7detcdd@)?fIf5Y+>A07>lhv#cQCcmF6 zZ?FHH^4r?WfALqK{(FgIkMBL!4b}|S3l1ID2`=vOy~0aKJ&9#^RPrm{yWZl>*YexT^9DU2Yo?6;D)&BlV*L=s+|J7KN`Zwp- z>Ho&$)nWzy^2>txrW?yQSzcDjN1s~SEYCm1=ds!JjsL>09ZL<1t0ncH!{6O?%udrk z&j~sE|AhPtx?Rrwzg~V_@9(~Y@}KLRkIym0@x$lvcXwZ(9rD8Sv}|A6BLA&deC?M^ zg$;|Z30t{u;CKs-Y%UC1wn#(IAGjnG~ zWkzSX6v<^Tp7fh%hUV#mxrv1*BIVgC7tV~$ERq?Q8J}4+Gam*Lc(D`Zy8tdvhQ!nprKgdS;Cbm*v*VtesgWvusXUTV%G(Y?awMvrT4dX4}kmne8(>WOmH#lwmdBC9`X0 zx6JODJu-V{_R8#?*(bAaX1~n-nFBHhW)8|6oH-&=Df`LnF}%(W-iKHoVg@(Y38!b z<(VroS7xrtT%EZlb8Y6j%=MWYGB;*!%G{i}C39=$w#@CBJ2H1>?#kSqxhHdP=Dy7R znFlftX8w_RDD!aUk<6o+$1;y+p2$3zc`EaC=9$d1nddUkXI{v>n0YDla^{uHtC`m_ zuV>!KyqS3`^LFN)%)6QQGVf&Bxpqcihl=FN=B%$J!zvp|N+s0-!w!kMvU Uvu%9&_rK-$^~1ks|LrgT3yUeW2@sZq>L4K+RW?do4u zSDiXly`<;(2VobUe!lHRCM-8G9s9E~hy}QD3BLc$84qQ!y|NOc&h=dQ4ya-IUsMA@ zdT7W1e>OJty}+YPW&wJ}F2Z`J-y!&9>=MhTcKd}x%EHIH%KjWHKl4^ z!&ZqUvRAR1$$cdjRKr%8wW>jxL0j>fB$Rte64YdM`TEtk^*pp&_4{HQ-BfM9xHYlH zt^I4*DlucVWiAApsmV6}s?5RF=6j^-c%k&7)zxe{wcbj!k=wq)){cJdnLo5Wix_4v zj4<>v7-IX~8eJ9X=+_xWj`kkgCyh4ePxed{!2($a_e3$Vo;nck=+_OZH9}0~rN)!? zV?9_hV^h_l^iX)orbau@T8}43}@K(3)$UV|$vR+_n zLUvFPuN+n8o~hATm2D#H$$GnG>r~K6;oO;L?!I3Owt<27j+kh+NA%M^M_3~|`n6>n zSqs=O)>dYQE!t|JsmN}ItMNJS(e7|7LpjZ7o&vm@HS{`q%mdBe{r>~aBJN?TF_6u+RS~Yx6HT3Fe&qxSDwKmQD`tQ`I?%ovZ?SnVR0kg?zzF ztLa_!quNiHlb>YM;A>l_4$fdb`>AR_E@EUaatmQc@XziZ}95Bh37tM%^>vp1@q zn>*7B<%B`Qd0Zx#MY-w$4qW9zdYA#Ieg+K#7tPP0+u{C4;BBhmaNwlBYUkvF4q!Ds ze!)e{7r%=6-lcEO?sD#r30OAUA^&iEu0ER0_29ToW+Bk;V7h}#rE|b*0wa{{y@Ld4 z>a+vu)@cV_U3c)S>kepAbt)2$6?NJnu&z5`qtqz}bU$_40sT^)c0h+xrybDK)M*EF zL3P>zeN&xwK<8BB4(URFK(D3a{Q=DojoqU^_(4a}F>?W$oO1#=S1*d7i>rkQnql=K z=nrclf~Hx$2s+7Hh@iPvFM^)479wcE)r+8;t%V4hb@d|XlmAlWSWeBYgATkFA~m-T zdiz?4)Z98aG}J<*=GMV+q!uDIw+;?EwGgSfb>Q6BO#~uT--%DCxpm;&xHcj+w@$~} ziPYRWFcYXvNosB#rFJ4Uw@&BUiPYRWa5>?x4+qYUAX)Vt&`>*(np-Ebb|N*mPM6w= z)Z98vXG~NX@MinsxnukMf{&^4L+_grBz z=M?$rr=MIRftv8VdGjirS3LA?OwpDgHwL-zC757y^IHK}JyQIQrn9f3N z+_=%JP)4KCt5C?qLLqZ%I}7E`yl1gJA$g7S0&$+)tFAjl*L8=Oy6({1V+U+NkEx3H zv?LaGP@O!Q5?tW-+`-urZ~fqIW8&N<&Lx7)$(z)@Inj0y*6c>&Ya>!=tXU+XHX`D1 zBerWIh^U4@9*(y;C&3O?eavW_MOR|wu~lB?Tz`E`Y!tZu>(;Vf9pBlZD=Q>dp}fr_ z#Y1F`xf=7R{BDh#h}hdxJ*o#H)l^UAF_(zb1?}3k%d58|6MH){5ax@sx4Sd%HtPdv z-P;Vjg}co<4WIIh|2-Gf7YbD;7u3(S17)hxT>UsM_*H){gY_sw!KdbTj)$f|jV6>>P-@PISr_}DH=w342eXD)HXE!Pic%W+zwEs|fy$`H7H z5zD$Tg+)V1XL<0?%u1L8ZsVeRkl==Ppr5(m?8Tod{qZ|*2UghyFZ5tGVPZD%-q}Rd zkd5lqc{cv$g5SS7O=lA>W|QEZP1hQ-QT;y8Ccs>9_3BkRn`UA*iQd`ts39918MI0Z zG#6C1IlIrEy!H(#Sfp* z*|fxL5^J`!PLNGvEiCO=&I@mSLub=U%!aTuLk-!uTiUUlU*CO>&Zf1P4Pj~BYRJaj z(vIbvJ9m!Grj3{lVQD>U$j05$j^$KdT198mR?LR5wB9vj<8Eoka`vD3p3bJ7moZX7KdStSbgBZ_trMBQzMF+6|fqq?VQHiij->+r!^ zMA7bosJn$gS31aO(XLgZU>l-nv>@tk4{&v9^(k7kTa_qSf+!j%h`P5vW2MgxqD1v9 z3a6YIru^mlKAtTvwX4*z3^)tUca6aQa9)8|Sg;=PJ6?v-JV_`#%>g$=GEGH!Wkn{3 z#agmlf48Tg+_JI}%jD0^<*_n&dd>t>FAKB66bw&4aO_1=9Vm*lQ2ZyjsA6N^n~!droPQsl?>4+RBx&<~fe#`azyja#Cd|+-IEwPmW^Sm+4}}R5_@x|6$xL&;*8hhIg=r0bDTg=oOlb6c4-cSoS)QBbZKgAh1`hsVQ@<#x6Hv?e72Bj3y{v`b>Q9R?k*oaq(_@0s49sXbCyJn zIZL9(&|&ti@Q1pK^elqEKQzQhIA)vc#2*eH8Za21T?A7dYjG4oZN+)+rE3b!GZw7F z0S$-s8zu>s(C*m#qz z1YMTuUX7jwl^cPl9uGO#pkFz?7UfoP5a%_#L_dKoal1&e6pk(o{*48Z>HKKNK#|M& zx8ZQ?=nTui?&6^qEo>IIpsEzugJ!@eikDN8*);wP{X*7_bsU1V+=&g(9jv6pCMoF( zng~o0;5v-F#l3G3aqA%76;TVj8*Ly{f>T&=%L zW(E2w5OAxy$oNd_wZS|Ra4ibf64WB}3!L+CWmKm^8teEYKI)+UF-s+@sHkAq84LZ6 z6>!Zdunqo3;u?Rb339}1S>OX)TKIhoYjh27v>t$GmG$gyDIJ~#zZX8>fi5WxzQ4)8 zJ9C1wJv|go4|m`7nA7j9bI1iq`#A*g;5F7>e$~+&a#+nwnD4f zq|CNB3Y8M8l5Z|7&$sbe9i)lxBD2i|+DUMa zJgeLereOxFh{`B}0l!?ycb2F-BuR#X4>H*uHY-nMaage6DKO}cEHRfATT3h`lnSjk zM$NC(4fly)Y+Pw69Q0_jz0?B7#HTAZQ=UT^Qc_^f!#%zTd9_%v4T&f;Yd^{v~;jw0i zsicg{Bs7D1uohXY#pUKA)K;R>2afEHIV9qVLZKyZrny8JX`O>83CcL!Y_b=b`Oe9F z3WZKWD^v!cUVf`sAgMj#i*AM4-ZmhmzzCJA|U|^F&50j z!jA{jB|=?}v%$VN=k+$Cge1_1TErU5ve>P*e6x+~Cj-wScnVb7P|J)Nkc{VTckoV! zS*13|{$z(bf<6pA7FtNL&$M6*C*a{{S!b6h_VSW^8}vnhiLuxttdJ`%+Xd8 zSf$NWP+-Y}9BwPKS$K^n#v8CiCP$%N$uBc24y#ga(gbiUH(Q{`mgJcgn;Fjbz%VUt zT8U75ss*{zB(R?`<~e0h7tX!0RLRhe8D%!!=@L`GGRBmcW}1}@3$zMuPldzCvd*Xi zeISjh?o5*u3mzD})^xMFPf{Gjvr8>SV5H@skrWTl0I9n`PnuO$WVg&Rdo)N=0u*j^ zA-E5y?>uFoWS(lG2No|W8ICm*yxMe_`Y9vfuPJzjDd-Z) zz;=rty~Zp97^FcPu?$cl24OHVKuZ{0Ly-Xv z%ODO!hDd;aJq+<=e?0~nz}gM!0AzsnGmxW?0X&PLs)@9r#{f>n;63i}#9o7r0nFIo zG2$4&_zmvE4X+z*tT8~RGgLRw@M=+;x@wf+wdop5)FFl^bTMswF@V2=CUA`)JX>w} z;MG6atc@K!=9*COBk&lM4A4gmRRfCwI=6w3DmnA>}WTDeicty(j5+SNj{DucHR!7%^s){ z{uW)&mc=nVJ7yVh8ErqTpNDlXI0xtn=S|PRdNHj1V3_y>*5hEE4i~NPuZ$mpbugR> zUV^m=)&t=>{2^FB2kR&}OKb<1&{x8G7Oa1S^?q36w6jeLV-LeR57wW-`Y^0-f)PI^ zm9Z_begxK`;7M-4+5zi*ePD}jFTcA_(MP@7YSwSn^wjdrkOb36?836UdSZDU_XH5^l z2|sHO#|uLMn*_ZCs?;$Re4E)mIc83A(Y9spjyN0}ntgrn@AJQo9=c{%n!d}o_q@I2 z?R9q@JhCdX<JnL)Y z=}q4pgnCK_yMZQPQ(=N@?;V4m3m*F5w!^WF@B3ll{`n{7j{5L$>n^i;Z(N$$d;MH? zF=}36M7wkCzB`xuc0lkx{elfYT;DR_&+QM~xcKllO3TN$1|0q()A(-T#aROm%)964 z!VR0c=qJr7y?6bc=k`o}b>xZl{ojjgw{h@`v5$l|U3510)zRBC@=qKM{cvdZxy0#_ z^ENHJed?J`k3HGuLUPVWzqA~ECS}_8hc+Lr+g*@jZKQoc;q2#rr^Kmal9%9}e(-2;f5*oKF;+d%JxOhl}}eB7zpu z_}K8^!%Aq{#ko(4Q$PxRfxrS3q7e2S= zQ|0uYo~Jth(CgDFFGt=s;DJHoFMo8s`xn{Y_3Rofr_zP*6LK-&Rp_aU!Es=3a4WWY z2ys~KW8;sOoQnofRD>j5uBjeP0ys+F6&JRNoSh8357=oh(X z>B{!q1_npIJb3-v7gsN|UViqw1AT7q829DGblvPZ7hi7jj48~V72B9nuQ+t%pU=#1Z$4QT_0FNI$!|_5ojq~ie#3>;!7(A7O_RQDKKuC-het-F z4x82U^)-XCwZs zk+*Mq$mW>3GlWGhRhEq!)c?`cft`Q86!LE9vhye8^?$qb$ZuB;9<;5Q@w4&jhkfrI za4v1!$1ivI<)PH~Gp=mSZPR(uk2%*;w#(o6A6*yH`s+buOK!JseW!WHXXRV=F6g}H zEz`nZS1fj{UKhSRd2GMPS8Y#}Zt9iVeuVk^U!qgG{Pz2uVc**Ow|{5;wtv3AtnliS zpMU)H$c*)ycE5OcyX!;c@GcQa(#!vfj(qUFqVO*}hVTAFKW@(A1@~W>JmJ`#6K)-P zy==?Fr5WEoK9=oyrbp?T_K^!eTYE5k!dKTq!`dJ1Yx!f_vppXeV>~cy<3n9O`Uh)z zDeII}yz!gm-<`OY?|9|Zlu?!k7Mv(a4tk_b+3)4|N8DPr>4n$seQVOp0oGx+omjDD zv(0q;vB|H!@x}RDhK2Px9*{A7qjIu5`24pY-?uVoRGYnVi@Nr|)aB+tk6bQHI+Aers?1&eOU=IyZ=)aAcHQ2PL5jZ9%Jc2>zh1v= z{^plaMy=o7#(XSv*Nc@+zS_F{(zm2qgv*&b&^UWUbE(KYCI&*AaN{HY5TlTHW9v=VwJ3CKadFQqdmh?T??BtY$ z$i}DEo-S$n)9GW2KD&Bw&grl2E4y!Uqi6QMHhyc)v!CB{>7f^=&u;p~^Y`}r`APlu zp^Gbn@4e7t*SOis2PU8V@M|OVW^ZQ|a$@P)7hy{~aAn8{Klm;=%1+8ufhh%OGF`$ne<|!bK zX;pj2LVdc8aN>^Q7*Vxj8yGyjoUU8-i%O!yu2MQpDRK8LYKTTqrSTR_y4*`sgGr1W z<`0SSu9rWX3`c(m=4Xtph8qm4-R4oSfjtQ9K{tl!V3NkvwdQuaF^jrfHb%L=Uo&=h`#zlA3n#|- zBuEL|Ln>hkv%s4};^BrdhTi-$0dDv!aGxm??#w1@ik>UUFTKTiwz;Y9j0EMA*gt}; z`g~Xi!ke8WUM?(m4&1kLz(2g}SAPrI2iB!?Eh@uxFKY?FESz%V0tqoK+TI_29|kZv zNdL3$Kdk|^3~*Bu&R#}Cain}nCrdh=pX@IOTWQn2uRNw3H{)(ng57opQfFmpcCM^#30fDC)cL2|GR$F2*Jnn+D`p>miM zE;W;y%Pr)Vax1yDu8rJQZYQ^wJIEd7PO>6*mLp_?94U8^yUN|#Yyo}f|MvFNy$=*oGSH^`^x>~{_+6%CfO*b$>~ytlqoYA3lhNV*e?P~f|cwS z><1L;Z%yIr4CMgq*97 z7%7jEnGVaTHn&>E5;qp9vBWD3OQ}{^K#PEu0j&aB2et`pE47o_OC6++QYT%$tC&*r zE>iQZQga54sqZZ7! zf&zjA8U-{C2nj%wg=Uk(0~nYo=!8J6>f3NDh7O@NId%da7ztLi#G4$B05?LmYQE4z z(1Kit*D*xus2)8eNXJ5B_o*^9?7b{4l_}_I;93BDO3Vrt{tp-v(jeXgLT`v4g!r!2 zHE&ICat}DE3D{*@qi{Y1=r8;ee04kni^hMr;7KSh{H1ACZ=O?OT|c=fR6_0cgJid6 zj<_W@HYsLEW@hd7!BoEP2fGsa$r3EJEpqJ(`QJ;awwv?Wf&X4U|BIBDLs>K7@t+ZF zAUyV!1y2EvfTv7`z=Op(wLXgfbpOFxPW94}@OcpD^18FZ@evUG=LexS3-psLn3xp6 zL;bua~<8BwPz>hnAH+Nk{BOao3-Y7NsXxF{*f_wa+o>??oc|0>x^wJQ911=P~Z zsO7J!!`dBBUDMaB8VEkiTagpJx*-UkjjZ#cxpcSvz_b5X7OZSBICFP$bwRa5UDB70i`ZdSC=8RgiD~c`S(BL;Oe;)b#gNG zm^ak^f83Q_Em)7``kyED|Eh&*Qxi|K2nA%sjz-Xu~ zSNMtx#hzvZD7lTU}UJU0u;=Wj6BEvCMWOz+Y zWO&jeGOT5h!E+#94C_ivhxI5jtU-~%ZD%hQPB6TzBkqe=#zcl!%0!0ut3=j{V66#; zZ7=Q%kJ)%JcvQuU;Y~hqUw8<>i{T^7V!BQO`-5Kz#dm7sf-$tRo504MF$rSG)NL}v z(B?3PYa>6|RbvuMgKM$QZ8Dq_zy(qE8k_~|;9puD{}^0}cJL;c4zeSe?yvE)WjR?8p2^|3#oK3q5ieY{wV z^%LNeKK4~3_fV*ae|TfWzcc0fI1f%|+co__pY*Zc8{w}RR7IRV8}V6luCM3%k8ApR zpY+j(81WCzxMC33$9{`P6U6mbYx+Sx>0`|s`R@gwVldao{;tNbe&9kquYa`Vv^xA# z?GxM52)B1s#YS8o{RHYa;^lur({JRHKKe-`zblT4jk!Mh7d3|Ehnoz%{EdCmM_V!S zmq?>x2-ioyq{dKxt)?I1lRjFG5np@D6`OE<^k=A#zt51)o`M+Ke-oed(H4#Tkq1<4 z%JtC?sxj1mTGMaplRjFek)anw#Zaz~{!@*i{yI%R)F*wkbt6+W#W1el*%d?m^$^4Q z3G+!G$2%j;i_{W_bA5v=hWZ;c{cxZ3u`e0n-SDb@Gp^so6+``vntn5%^s#3dSyxT5 zIoI#zilP29nm)d5r|$h1`>GNCY+5aU3$EYY6+`_^ntltP^l^S*7tVp?+jo|=A3 zZvUG#{gyuIqc1SR`}@`Mx8nNIt{9eoi>BYoCw-i^7~yvTRQ=Xmzqc!f`dc;q);{T@ zuQ9^iK~=vE*M|oHdH=#+fk|gOH2pR{>7(Z{Lhn%(+j9K`R}A%^)%4r?q>sML2rr0H z_1kg%Bv%aew`uzAeA35xo{`@(Mf+*b^;0zc_Plq>sMR2!CFxmcIkn@8gPL z`FCpi9emP9&uL_RHN}oxzn?3H`p;|naKpxj{)@iY2!F1rmcJ9%AK;3i{w__wQ=RqC zzy;mMV1O**XKX##G#~%r`JDo#5a;3O=S7B|T4d<2MTQ<%WaxKAhMrSo=s!h<9#CZH z2SwI{VCc`pbm);phJHz8=vhRD{zYWyAw-6LLS)#}MTY%dWY}XxhW%D#__Tt^u>Xk+ zdyvSmABhZmg2=Exhzu=SWN6nS!*e!~83l%(Ljh*wXLxE1=kb_MjbT684KbW&D0S{9 zsDZX@g#N24cIN#s-4#Rq7a)fEoqf{Beqn?cn5g=AoyQ3Gpqw$(-=pbA_@s}0%n1Em zRWxw@Y*!5RU)1ysKIvnBHNyQeRX>vJ4|2s&|0PX7(kFfF`$l-pg{t3$>ko0oP=Bwc z-^C|=^dm+#R8#EA^@q7)sQ38Gf+$)-XH=p#;zZu~^ zrCL8xTtC+p!}9Ob^zjusX?6Igo(H0@G{O^3s(yE_KgtzD{bQPbcc1jp?;7E`DpkJ+ z*B|4Gq5i9yeh;7Y(T5x1F0QKIlk1Oj#ZZ60rr*;ieH;&r>}E|7euN5Q<6SY-e@)Zx z<&!>+Ek-s$Q;g>N6J0SGJjVx`ezZ^eI8GVaEt+Bs*PrByVfhbe`Y}G~BeYw6})9=ge^Ic89uTT0o2Q|V&D{B4p zYvf{ z2l%9q^K2u#LsP_iBSvYvc`jdj+?^Vo_e zcpf_qJhbos@H{pRN+F(a;5=Vs83fBD7|yuGeR19`vVjD{`Lmb~XTT!Ed9cWECMzPw#WH@6J8P3~8hBGgb;rvTv zID--y&Z9(zGa-@Td`M(CqY)X-Yea@K6OrNk#GRq%O9Nu$zfrEnupiC?rpB|;i@ zKvT@*`U_n#)IX`|XZoa%{ng0s)fBV1{(Y_(>Yvi|vwYIWzHelUG{tPLzt|N+{nMI$ zwom%#M~wW>WU;jea{UK1{egTO{Y29r=#xJBBqO}eOtr{CT>tN`7?%HIO@EM2`sm+` zY>B2gnCr`$;$WW?(K{O1Lz?0cP|RfKTrnBOj!!lHAwKD&r!}&rn&MEdf8G^C{m(T0 zp+4!O*EX_cn#M4nG|)0q*JetQTBk5xU3!V8OPo;QM>pG0qCy^TTxa z5NtldaC{c`#Zg*hIL?X;M_ZBMcquX*HAQwm!Ep2w)8Y6fG91N3hU1XPa3m2KdVi6j z#}*lSV3DCm6&ZR+k)g*E*-C;vO0dTWwu)en6KplX))4Fof;~yFwF0Y8JAO*gMw@+_ zVCx9Bo?sgYwvk}Z5Ns2{HWO?M!L}0YS%PgN*mDHiPOu#W+extJ3AT%1y9xFJ!S)dB zMS{IVu)PF(nP9IFY#+g1CD?v~y+*JD0;^9uJ}79T9Umgt>jXPYur~_3fBZ8eI*eQbHxtr*t&kzjHk;HU(UMw;^ zR}&eYyNC?WH$;YKH6p_^5s`f^u==#)3xYP<@kN4tL9j0g_7%atCfFr{eM7Lz1pAg? z{~*|R1iM18s|5R=U_TH{osp@Z&Z}uZ66t;-*gpyOGr@i#*uMyNonXHb>;}R9O|ahx z_B+A;AlRP-s}xv$+A*Be!{XTv>K{~jGMPxHBN)7@!b{JeU;zYEU&Qa3ubxO3M6h6j zH6j@N<*ZlvLI~D`U`+`YO0Y13g%hk9!I~4S1;JVptQEoddkuv4Z9}AMOE7%PlV}_5 z3D$vN9SPP+VD)LoilB}DxHG{b2xcHyB*D56O#SmuPn+#Vq>CaLzC~ZG-yQ_(Nw8i7 zizZkM!Fm%cmSAxNiziqD!4e6UL@<26qgV$i1WP4YAA!0OYE z(*$j_<8*>$5G<2mSp>@_*g%2}BG_Pp4I$W2f(;{B4#9>KYy`n_2{w{oqX;&dU}Fe2 zmSE!ub~C}o6Kn#(CKBuxf=wdWtpvmOsfm4R3c;odtUm2{nxKt#Y$Ding5?n`pI~N! z6%cF&!3qgxA=qsMn@O-Df)x|2gkV;Jl@jcBg4qa$zr!N7zk^_91e-;$*#w(IuyTUk zL9jasb{E0s66|jTnmtgl1Y!Sg06YPG1JwUJr z3HEn_Eg{%L1Y1h5WdvJJuoVP*m|%|(Y$d@SCD>yGTSc(P3AUPGYY6rP!JZ`8T7lK4 z9X};#qa8m@uyq7mPp}OH+eoly2)2n}n+djsU|R|HEWx%B>^XvMC)f^x?IhUq1lvWh z-2{7qV0#GmBEeoF*j|FYOt4o7wvS-15^O)gUL)86fz_uS9~89Fjt>#+b%Grx*c$|U zlVEQV>}`S_A=puZy+g2f33iNN?-A^Mf_*@+;{-cFun!6L5y4Ip>=eOH6YLDZJ|@^% zf_*};a|An2uulp08NogmSbf^@1wk9__#(l+AlR1#`-)&+6YLVfz9HCUf_+P{e-P|D zf?XllRf2s_upbC^jbJ|#>?eZ#lVCp+>=%Oli(uCY_A9||5bWOs`;B0~6YLLy{YkJ& zfz_uS!-IET=Nb~h)E9?(UMJHL>G1bq#B&#af&~yPkYIX(!OM!h@(3naBZ4(1SO~$I z5UeS|LJ1Z|uyBGkBUp2SwIEnag0&)8Yl7iR=fyT^OR#nX!{5IV_w7Kijs)u@u==!P zMbJin+?ikz1TzpUl3-m3)|Fu02o^;!{JlQ0E_)EHC&79VESg|31nW&O{Bc0BEcjc2 zBEz2!6dC@Kpvdrt1x1FxGbl3r*+G$|5G<8oeF)Z~Yz*J?FWTK0 zf{i5@{`Q%;@67}oPcVF0xw!8{g55%}Nd&ueG%Z1Z}kAy9ss=!R8Ze0l^j$>|TQ1N3cZ% zTTHO~3HAWN9wgY`3ATh_4-srB!IlwhIl)#C>|ugELa>ztdz4_05o{H~9w*ppf~_Ig z69jvbU~2_dpLYC|ppAC?G{M#pY(2p?5NspCo*~#Kf^8<)7J_Xh*s}!NMzH4yww+)* z2)2`8&l7AH!FChu1%mA%*oy>viC}vP_A`j8bMX_D_QSOt4=F_Ai26C)lq9yFsvj6YMvF z{Z6ny2=*tzDg{=bb_{>y>UBON5e$A)&MTdcV15MiCs+W%0tp5`cjuLF5W(>G%f<7u zMg(h2un>YZAsGBdpjRHD1PdcrIKi3`tU1A25UeG^S`n-@!P*e4Ey3CmtUbXx5UeA? zIti>k?N|}C(I0mvSOmcg1dAkC7lL&qST}-25v)7GdJwE9!FmxanqV;m>rJp&g2fRm zo?r-Ab^@1e-#zsRFA{JDw(JqaB+FHl1L31j{FwnP3G3n?bNbf>{W58^LB0tcYO6 z1S=t!m0+a=yPaS*g4qe?AXpi}W)W;Q!R8RGoM3kl>`sE+MX_YiD8!4?o~A;In?*nI?BM6ksKyPseW5bQyM{heS-2=)-cmJ)0k!Il$j1;HLB z*dqj6Nw7x=_87rd5$th-ttQwSf;~a7CkeJzVD)LoPYK#+$4?V%9l_QUYy-hI66_g* zZ6eraf^8w#R)RfCux$i;j$qpfwu4|h3HCg}b`fkh!CoNP9)i6{u$Kt7mtZdw>=lCT zBiO41+fT692zEeV^=Zck1#PtBLj-%BV226z2EpDW*jog9n_x!>c9dZ65bRxo9V6I# z1bd%g9}w&~!A=nDLxO!ou#*HkMX=KZJ43LK33irXpAhUE!Oj!xQ-Xa)u+IfnpLTpf z&_+AHNU$#m_9el-BG}giyF{>W1a<~~mF+3G(xtx33a@#o%N2N2KKxSWH3sQJnf{s{ za3F*LKL%WP4X-&jWq#M9fJrRqTBy34$EVDK`F{ArhyJhy(-*;dU1OD_7Q9}P*;%7& zJ>Y8vJ05%V)CB$n?cGvkMm(UyUlD~eT?>a#9pt@8HxQ1%pFOJ^ z#?pX=@drC5!>cHr1yD*~tJ+V0b}`7``i@$Ix5GoPdhMw!#{!zV7l| zb(c@qUEW{ST~gnq*zUpUc6(W|8EcQ%+bm0-!&0nR3lzI~PMN7lnPssSnM?A_?zNZ) zwTRYB)uNwQEh@>r)MAWQiwR^c`VqC5e(9wp|GM(Wh%GN&vZqB{gV!1TbuDJOYB8Ix z#fg7ai-~=clDY@m&1S_k-8##onzEppur{b_(s@bSqIrUdAy+{&P?itS2~WhPXal4o+5XIO3J z%Irc*ULp3}605_#_r@q=%D6q|m6^)yX0*(Fv&m7Y3{XaoO?S7-2cf#vKI7fDWv}W! z=#y2p(yF^XS=};G-D}sqK6}RvW5%wv5z&<|d@{5))xFJC-SEyh&*~mnUXYW1$IP0l z8=PWnd|#~Y^pbKV&kCKl)S=9_K%GTc9ff9FgkmXy4sTXUOwjX9HuwT{KFd^O$#*8V zD+N}Yl0AI1U9nq0KqowKjLZ*c&#JV z95oJ8YIDRUb`KtlK6W;*#OY}Jt`Vx2GQA9qzQ9tFZz-7(ql|#|u$Mu@Sg_%Wij+dr zEZCz&8IqX=O_Xo$#oNa`$5dQeWUi|B3SAhyfVXm90Q7_Q@T0Bxv!OVdfMp)W@n<06 zcfeh7{5c#P@?qiI@#kw8&MmY!{v3=t(NMSJYq4R%!nfZfhqD(0lHq$A#&Rr+N}i+ zC3{YuxkxqVTqHb8J*2T;$~L;3!It6g^lVa!v3Fg$m# zk`kMwq${~)4!D3|F~glDxIt2Ef=kp&5^D@;Q6H}{V7bOyZ8PnKX0yZ2ucDz$!_rU# z4K>hE0}VCMPy-D$&`<*nHPBE44K>hE0}VCMPy_#8)c~Fh7^53WQV$eIWFO&<_GU?#c#0xCw$0LK=j02pJGEA!I?whAmd^%z;m-~5`yn0&6RTQV6$0zy~Gl5F8M2`z%<`hJe>w z$|2kV;Z6v5LBQ>QK)^LFqe00Edn$0`C9t;fJs@E%mzK<*KMsUiGVG)1@sqKG{F7Iu z`pxYV^L9qZL+&;>y6L8m9b*@XX3{`1ZtsxmkEgj w>fZ{a`XvhTmteCFLT&ReMmg*}u=s=3S)ui@3})T}bt_M*5654I8Eg6fAKph0;Q#;t diff --git a/omod/src/main/webapp/resources/reports/moh705B.xls b/omod/src/main/webapp/resources/reports/moh705B.xls deleted file mode 100644 index be07eede993f25c5afd53552c57a886d502d5661..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37376 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 JC|H#Le*o)iiWC3< From 829b47496f728291bef5a642374dca67ae564b3e Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Wed, 3 Apr 2024 12:39:09 +0300 Subject: [PATCH 63/98] Correct failing class compartibility --- .../builder/common/MOH717ReportBuilder.java | 90 ++++++++++++++++++ .../MOH717/Moh705CohortLibrary.java | 16 ++++ .../library/moh717/Moh717CohortLibrary.java | 31 ++++++ .../moh717/Moh717IndicatorLibrary.java | 32 +++++++ omod/src/main/resources/config.xml | 2 +- .../main/webapp/resources/reports/MOH_717.xls | Bin 0 -> 154624 bytes pom.xml | 2 +- 7 files changed, 171 insertions(+), 2 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH717/Moh705CohortLibrary.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java create mode 100644 omod/src/main/webapp/resources/reports/MOH_717.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java new file mode 100644 index 0000000000..114bd04c2e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java @@ -0,0 +1,90 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.EmrReportingUtils; +import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; +import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH717.Moh705CohortLibrary; +import org.openmrs.module.kenyaemr.reporting.library.moh717.Moh717CohortLibrary; +import org.openmrs.module.kenyaemr.reporting.library.moh717.Moh717IndicatorLibrary; +import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; +import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import static org.openmrs.module.kenyacore.report.ReportUtils.map; +import static org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils.getGeneralOutPatientFilters; + +/** + * Report builder for MOH717 + * Work load + */ + +@Component +@Builds({ "kenyaemr.common.report.717" }) +public class MOH717ReportBuilder extends AbstractReportBuilder { + private final Moh717CohortLibrary moh717CohortLibrary; + + private final CommonDimensionLibrary commonDimensionLibrary; + + private final Moh717IndicatorLibrary moh717IndicatorLibrary; + + @Autowired + public MOH717ReportBuilder(Moh717CohortLibrary moh717CohortLibrary, CommonDimensionLibrary commonDimensionLibrary, Moh717IndicatorLibrary moh717IndicatorLibrary) { + this.moh717CohortLibrary = moh717CohortLibrary; + this.commonDimensionLibrary = commonDimensionLibrary; + this.moh717IndicatorLibrary = moh717IndicatorLibrary; + } + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, + ReportDefinition reportDefinition) { + return Arrays.asList(ReportUtils.map(moh717DatasetDefinition(), "startDate=${startDate},endDate=${endDate}")); + } + + private DataSetDefinition moh717DatasetDefinition() { + String indParams = "startDate=${startDate},endDate=${endDate}"; + + CohortIndicatorDataSetDefinition dsd = new CohortIndicatorDataSetDefinition(); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + dsd.setName("MOH717"); + dsd.setDescription("MOH 717 Report"); + + dsd.addDimension("age", map(commonDimensionLibrary.standardAgeGroups(), "onDate=${endDate}")); + dsd.addDimension("gender", map(commonDimensionLibrary.gender(), "")); + + + ReportingUtils.addRow(dsd, "OSN", "OUTPATIENT SERVICES NEW PATIENTS", + ReportUtils.map(moh717IndicatorLibrary.getAllPatients(), indParams), getGeneralOutPatientFilters()); + + ReportingUtils.addRow(dsd, "OSR", "OUTPATIENT SERVICES REVIST PATIENTS", + ReportUtils.map(moh717IndicatorLibrary.getAllPatients(), indParams), getGeneralOutPatientFilters()); + return dsd; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH717/Moh705CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH717/Moh705CohortLibrary.java new file mode 100644 index 0000000000..a5cb8a86c2 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH717/Moh705CohortLibrary.java @@ -0,0 +1,16 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH717; + +import org.springframework.stereotype.Component; + +@Component +public class Moh705CohortLibrary { +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java new file mode 100644 index 0000000000..8a3d164039 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java @@ -0,0 +1,31 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.library.moh717; + +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class Moh717CohortLibrary { + + public CohortDefinition getAllPatients() { + SqlCohortDefinition sql = new SqlCohortDefinition(); + sql.setName("All patients"); + sql.addParameter(new Parameter("startDate", "Start Date", Date.class)); + sql.addParameter(new Parameter("endDate", "End Date", Date.class)); + sql.setQuery("SELECT patient_id FROM patient"); + + return sql; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java new file mode 100644 index 0000000000..6651d76743 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java @@ -0,0 +1,32 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.library.moh717; + +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.reporting.indicator.CohortIndicator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import static org.openmrs.module.kenyaemr.reporting.EmrReportingUtils.cohortIndicator; + +@Component +public class Moh717IndicatorLibrary { + + private final Moh717CohortLibrary moh717CohortLibrary; + + @Autowired + public Moh717IndicatorLibrary(Moh717CohortLibrary moh717CohortLibrary) { + this.moh717CohortLibrary = moh717CohortLibrary; + } + + public CohortIndicator getAllPatients() { + return cohortIndicator("All Patients", ReportUtils.map(moh717CohortLibrary.getAllPatients(), "startDate=${startDate},endDate=${endDate}")); + } +} diff --git a/omod/src/main/resources/config.xml b/omod/src/main/resources/config.xml index c8ed76bba0..ab9df9a7ca 100755 --- a/omod/src/main/resources/config.xml +++ b/omod/src/main/resources/config.xml @@ -36,7 +36,7 @@ org.openmrs.module.uiframework org.openmrs.module.kenyaemrorderentry org.openmrs.module.facilityreporting - org.bahmni.module.appointments + org.bahmni.module.appointments diff --git a/omod/src/main/webapp/resources/reports/MOH_717.xls b/omod/src/main/webapp/resources/reports/MOH_717.xls new file mode 100644 index 0000000000000000000000000000000000000000..40016797565116af9df654464709c4714c97d85c GIT binary patch literal 154624 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 kJ#X%1-tX$c{xv2.26.0 2.0.9 1.15.0 - 2.0.0-SNAPSHOT + 1.5.0-SNAPSHOT UTF-8 yyyy-MM-dd'T'HH:mm:ssZ From 9ba7046917d7b0487548a4f591143c9fd39fac8c Mon Sep 17 00:00:00 2001 From: Patrick Waweru Date: Fri, 5 Apr 2024 09:25:21 +0300 Subject: [PATCH 64/98] Added CORS fix --- .../kenyaemr/metadata/CommonMetadata.java | 8 ++++++++ .../controller/KenyaemrCoreRestController.java | 18 +++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index 90d67ae88c..f82578014b 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -39,6 +39,8 @@ @Component public class CommonMetadata extends AbstractMetadataBundle { + public static final String GP_CLIENT_VERIFICATION_USE_EMR_PROXY = "kenyaemr.client.registry.use.emr.proxy"; + public static final String GP_CLIENT_VERIFICATION_EMR_VERIFICATION_PROXY_URL = "kenyaemr.client.registry.emr.verification.proxy.url"; public static final String GP_CLIENT_VERIFICATION_GET_END_POINT = "kenyaemr.client.registry.get.api"; public static final String GP_CLIENT_VERIFICATION_POST_END_POINT = "kenyaemr.client.registry.post.api"; public static final String GP_CLIENT_VERIFICATION_API_TOKEN = "kenyaemr.client.registry.api.token"; @@ -230,6 +232,12 @@ public void install() { install(globalProperty("client_number_label", "Label for Client Number", "Client Number")); install(globalProperty("clientNumber.enabled", "Switch to show client number", "false")); + if(Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_USE_EMR_PROXY) == null) { + install(globalProperty(GP_CLIENT_VERIFICATION_USE_EMR_PROXY, "Use the EMR backend to proxy NUPI requests (true or false)", "false")); + } + if(Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_EMR_VERIFICATION_PROXY_URL) == null) { + install(globalProperty(GP_CLIENT_VERIFICATION_EMR_VERIFICATION_PROXY_URL, "The local EMR URL to proxy NUPI verification requests", "http://127.0.0.1:8080/openmrs/ws/rest/v1/kenyaemr/verifynupi")); + } if(Context.getAdministrationService().getGlobalPropertyObject(CommonMetadata.GP_CLIENT_VERIFICATION_GET_END_POINT) == null) { install(globalProperty(GP_CLIENT_VERIFICATION_GET_END_POINT, "A GET API for getting client information at the client registry", "https://afyakenyaapi.health.go.ke/partners/registry/search")); } diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 33bd0511f8..734c558bd7 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -104,6 +104,7 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.CrossOrigin; import org.xml.sax.SAXException; import org.springframework.beans.factory.annotation.Autowired; @@ -2687,6 +2688,7 @@ public List search(@RequestPar * Verify NUPI exists (EndPoint) * @return */ + @CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.OPTIONS}) @RequestMapping(method = RequestMethod.GET, value = "/verifynupi/{country}/{identifierType}/{identifier}") @ResponseBody public Object verifyNUPI(@PathVariable String country, @PathVariable String identifierType, @PathVariable String identifier) { @@ -2764,8 +2766,8 @@ public Object verifyNUPI(@PathVariable String country, @PathVariable String iden } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(errorBody, headers, responseCode); - // return ResponseEntity.badRequest().body("{\"status\": \"Error\"}"); + + return ResponseEntity.status(responseCode).headers(headers).body(errorBody); } } catch(Exception ex) { System.err.println("NUPI verification: ERROR: " + ex.getMessage()); @@ -2779,6 +2781,7 @@ public Object verifyNUPI(@PathVariable String country, @PathVariable String iden * Search for NUPI (EndPoint) * @return */ + @CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.OPTIONS}) @RequestMapping(method = RequestMethod.GET, value = "/searchnupi/{searchkey}/{searchvalue}") @ResponseBody public Object searchNUPI(@PathVariable String searchkey, @PathVariable String searchvalue) { @@ -2855,7 +2858,8 @@ public Object searchNUPI(@PathVariable String searchkey, @PathVariable String se } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(errorBody, headers, responseCode); + + return ResponseEntity.status(responseCode).headers(headers).body(errorBody); } } catch(Exception ex) { System.err.println("NUPI search: ERROR: " + ex.getMessage()); @@ -2870,6 +2874,7 @@ public Object searchNUPI(@PathVariable String searchkey, @PathVariable String se * @param request * @return */ + @CrossOrigin(origins = "*", methods = {RequestMethod.POST, RequestMethod.OPTIONS}) @RequestMapping(method = RequestMethod.POST, value = "/newnupi") @ResponseBody public Object newNUPI(HttpServletRequest request) { @@ -2963,7 +2968,8 @@ public Object newNUPI(HttpServletRequest request) { } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(errorBody, headers, responseCode); + + return ResponseEntity.status(responseCode).headers(headers).body(errorBody); } } catch(Exception ex) { System.err.println("New NUPI: ERROR: " + ex.getMessage()); @@ -2978,6 +2984,7 @@ public Object newNUPI(HttpServletRequest request) { * @param request * @return */ + @CrossOrigin(origins = "*", methods = {RequestMethod.PUT, RequestMethod.OPTIONS}) @RequestMapping(method = RequestMethod.PUT, value = "/modifynupi/{nupinumber}/{searchtype}") @ResponseBody public Object modifyNUPI(HttpServletRequest request, @PathVariable String nupinumber, @PathVariable String searchtype) { @@ -3072,7 +3079,8 @@ public Object modifyNUPI(HttpServletRequest request, @PathVariable String nupinu } else { headers.setContentType(MediaType.TEXT_PLAIN); } - return new ResponseEntity<>(errorBody, headers, responseCode); + + return ResponseEntity.status(responseCode).headers(headers).body(errorBody); } } catch(Exception ex) { System.err.println("Modify NUPI: ERROR: " + ex.getMessage()); From 4308a7ad72c535b1b14e533514ff89ee6e99c965 Mon Sep 17 00:00:00 2001 From: patryllus Date: Sat, 6 Apr 2024 16:30:28 +0300 Subject: [PATCH 65/98] Added MOH 204 A for under 5 and B for above 5 years --- .../builder/common/MOH204AReportBuilder.java | 190 ++++++++++++++++++ .../builder/common/MOH204BReportBuilder.java | 162 +++++++++++++++ .../MOH204ARegisterCohortDefinition.java | 44 ++++ .../MOH204BRegisterCohortDefinition.java | 43 ++++ ...204ARegisterCohortDefinitionEvaluator.java | 60 ++++++ ...204BRegisterCohortDefinitionEvaluator.java | 60 ++++++ .../evaluator/anc/ANCWeightDataEvaluator.java | 2 +- .../evaluator/opd/OPDBMIDataEvaluator.java | 56 ++++++ .../opd/OPDBloodPressureDataEvaluator.java | 56 ++++++ .../OPDComplaintDurationDataEvaluator.java | 57 ++++++ .../opd/OPDDangerSignsDataEvaluator.java | 62 ++++++ .../opd/OPDDiagnosisDataEvaluator.java | 73 +++++++ .../evaluator/opd/OPDHeightDataEvaluator.java | 56 ++++++ .../opd/OPDIMNCIDiagnosisDataEvaluator.java | 73 +++++++ .../OPDImmunizationStatusDataEvaluator.java | 55 +++++ .../OPDMalariaAssessmentDataEvaluator.java | 62 ++++++ .../evaluator/opd/OPDMuacDataEvaluator.java | 56 ++++++ ...NonTracerDrugsPrescribedDataEvaluator.java | 57 ++++++ ...NutritionalInterventionsDataEvaluator.java | 56 ++++++ .../opd/OPDOutcomeDataEvaluator.java | 56 ++++++ .../opd/OPDOxygenSaturationDataEvaluator.java | 56 ++++++ .../opd/OPDPulseRateDataEvaluator.java | 56 ++++++ .../opd/OPDReferredFromDataEvaluator.java | 56 ++++++ .../opd/OPDReferredToDataEvaluator.java | 56 ++++++ .../opd/OPDRespiratoryRateDataEvaluator.java | 56 ++++++ .../opd/OPDTbScreeningDataEvaluator.java | 57 ++++++ .../opd/OPDTemperatureDataEvaluator.java | 57 ++++++ ...OPDTracerDrugsPrescribedDataEvaluator.java | 63 ++++++ .../OPDTreatmentPrescribedDataEvaluator.java | 56 ++++++ .../evaluator/opd/OPDWeightDataEvaluator.java | 56 ++++++ .../definition/opd/OPDBMIDataDefinition.java | 47 +++++ .../opd/OPDBloodPressureDataDefinition.java | 47 +++++ .../OPDComplaintDurationDataDefinition.java | 47 +++++ .../opd/OPDDangerSignsDataDefinition.java | 47 +++++ .../opd/OPDDiagnosisDataDefinition.java | 47 +++++ .../opd/OPDHeightDataDefinition.java | 47 +++++ .../OPDImmunizationStatusDataDefinition.java | 47 +++++ .../opd/OPDMNCIDiagnosisDataDefinition.java | 47 +++++ .../OPDMalariaAssessmentDataDefinition.java | 47 +++++ .../definition/opd/OPDMuacDataDefinition.java | 47 +++++ ...onTracerDrugsPrescribedDataDefinition.java | 47 +++++ ...utritionalInterventionsDataDefinition.java | 47 +++++ .../opd/OPDOutcomeDataDefinition.java | 47 +++++ .../OPDOxygenSaturationDataDefinition.java | 47 +++++ .../opd/OPDPulseRateDataDefinition.java | 47 +++++ .../opd/OPDReferredFromDataDefinition.java | 47 +++++ .../opd/OPDReferredToDataDefinition.java | 47 +++++ .../opd/OPDRespiratoryRateDataDefinition.java | 47 +++++ .../opd/OPDTbScreeningDataDefinition.java | 47 +++++ .../opd/OPDTemperatureDataDefinition.java | 47 +++++ ...PDTracerDrugsPrescribedDataDefinition.java | 47 +++++ .../OPDTreatmentPrescribedDataDefinition.java | 47 +++++ .../opd/OPDWeightDataDefinition.java | 47 +++++ .../resources/content/kenyaemr.common.xml | 24 +++ .../main/webapp/resources/reports/moh204A.xls | Bin 0 -> 11776 bytes .../main/webapp/resources/reports/moh204B.xls | Bin 0 -> 10752 bytes 56 files changed, 3009 insertions(+), 1 deletion(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204ARegisterCohortDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204BRegisterCohortDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204ARegisterCohortDefinitionEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204BRegisterCohortDefinitionEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBMIDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBloodPressureDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDComplaintDurationDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDangerSignsDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDHeightDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDImmunizationStatusDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMalariaAssessmentDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMuacDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNonTracerDrugsPrescribedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNutritionalInterventionsDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOutcomeDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOxygenSaturationDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPulseRateDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredFromDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredToDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDRespiratoryRateDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTbScreeningDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTemperatureDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTracerDrugsPrescribedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTreatmentPrescribedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDWeightDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBMIDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBloodPressureDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDComplaintDurationDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDangerSignsDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDiagnosisDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDHeightDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDImmunizationStatusDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMalariaAssessmentDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMuacDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNonTracerDrugsPrescribedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNutritionalInterventionsDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOutcomeDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOxygenSaturationDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPulseRateDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredFromDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredToDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDRespiratoryRateDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTbScreeningDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTemperatureDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTracerDrugsPrescribedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTreatmentPrescribedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDWeightDataDefinition.java create mode 100644 omod/src/main/webapp/resources/reports/moh204A.xls create mode 100644 omod/src/main/webapp/resources/reports/moh204B.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java new file mode 100644 index 0000000000..3ab3b45725 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java @@ -0,0 +1,190 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.PatientIdentifierType; +import org.openmrs.PersonAttributeType; +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; +import org.openmrs.module.kenyaemr.calculation.library.hiv.CountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.hiv.SubCountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; +import org.openmrs.module.kenyaemr.metadata.CommonMetadata; +import org.openmrs.module.kenyaemr.metadata.HivMetadata; +import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204ARegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.HTSRemarksDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.*; +import org.openmrs.module.metadatadeploy.MetadataUtils; +import org.openmrs.module.reporting.common.SortCriteria; +import org.openmrs.module.reporting.data.DataDefinition; +import org.openmrs.module.reporting.data.converter.BirthdateConverter; +import org.openmrs.module.reporting.data.converter.DataConverter; +import org.openmrs.module.reporting.data.converter.DateConverter; +import org.openmrs.module.reporting.data.converter.ObjectFormatter; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; +import org.openmrs.module.reporting.data.person.definition.*; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.EncounterDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({"kenyaemr.common.report.moh204A"}) +public class MOH204AReportBuilder extends AbstractReportBuilder { + public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; + public static final String DATE_FORMAT = "dd/MM/yyyy"; + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList( + new Parameter("startDate", "Start Date", Date.class), + new Parameter("endDate", "End Date", Date.class), + new Parameter("dateBasedReporting", "", String.class) + ); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, ReportDefinition reportDefinition) { + return Arrays.asList( + ReportUtils.map(datasetColumns(), "startDate=${startDate},endDate=${endDate}") + ); + } + + protected DataSetDefinition datasetColumns() { + EncounterDataSetDefinition dsd = new EncounterDataSetDefinition(); + dsd.setName("MOH204A"); + dsd.setDescription("OPD Visit information"); + dsd.addSortCriteria("Visit Date", SortCriteria.SortDirection.ASC); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + String paramMapping = "startDate=${startDate},endDate=${endDate}"; + + DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName} {middleName}"); + DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); + PatientIdentifierType pcn = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.PATIENT_CLINIC_NUMBER); + DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); + DataDefinition patientClinicNo = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(pcn.getName(), pcn), identifierFormatter); + + OPDHeightDataDefinition opdHeightDataDefinition = new OPDHeightDataDefinition(); + opdHeightDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdHeightDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDWeightDataDefinition opdWeightDataDefinition = new OPDWeightDataDefinition(); + opdWeightDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdWeightDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDMuacDataDefinition opdMuacDataDefinition = new OPDMuacDataDefinition(); + opdMuacDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdMuacDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTemperatureDataDefinition opdTemperatureDataDefinition = new OPDTemperatureDataDefinition(); + opdTemperatureDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTemperatureDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDRespiratoryRateDataDefinition opdRespiratoryRateDataDefinition = new OPDRespiratoryRateDataDefinition(); + opdRespiratoryRateDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdRespiratoryRateDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDOxygenSaturationDataDefinition opdOxygenSaturationDataDefinition = new OPDOxygenSaturationDataDefinition(); + opdOxygenSaturationDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdOxygenSaturationDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDPulseRateDataDefinition opdPulseRateDataDefinition = new OPDPulseRateDataDefinition(); + opdPulseRateDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdPulseRateDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDDangerSignsDataDefinition opdDangerSignsDataDefinition = new OPDDangerSignsDataDefinition(); + opdDangerSignsDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdDangerSignsDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDComplaintDurationDataDefinition opdComplaintDurationDataDefinition = new OPDComplaintDurationDataDefinition(); + opdComplaintDurationDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdComplaintDurationDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDMalariaAssessmentDataDefinition opdMalariaAssessmentDataDefinition = new OPDMalariaAssessmentDataDefinition(); + opdMalariaAssessmentDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdMalariaAssessmentDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDMNCIDiagnosisDataDefinition opdMNCIDiagnosisDataDefinition = new OPDMNCIDiagnosisDataDefinition(); + opdMNCIDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdMNCIDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTracerDrugsPrescribedDataDefinition opdTracerDrugsPrescribedDataDefinition = new OPDTracerDrugsPrescribedDataDefinition(); + opdTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDNonTracerDrugsPrescribedDataDefinition opdNonTracerDrugsPrescribedDataDefinition = new OPDNonTracerDrugsPrescribedDataDefinition(); + opdNonTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdNonTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDImmunizationStatusDataDefinition opdImmunizationStatusDataDefinition = new OPDImmunizationStatusDataDefinition(); + opdImmunizationStatusDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdImmunizationStatusDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTbScreeningDataDefinition opdTbScreeningDataDefinition = new OPDTbScreeningDataDefinition(); + opdTbScreeningDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTbScreeningDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDNutritionalInterventionsDataDefinition opdNutritionalInterventionsDataDefinition = new OPDNutritionalInterventionsDataDefinition(); + opdNutritionalInterventionsDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdNutritionalInterventionsDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDReferredToDataDefinition opdReferredToDataDefinition = new OPDReferredToDataDefinition(); + opdReferredToDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdReferredToDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDReferredFromDataDefinition opdReferredFromDataDefinition = new OPDReferredFromDataDefinition(); + opdReferredFromDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdReferredFromDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDOutcomeDataDefinition opdOutcomeDataDefinition = new OPDOutcomeDataDefinition(); + opdOutcomeDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdOutcomeDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + + PersonAttributeType phoneNumber = MetadataUtils.existing(PersonAttributeType.class, CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); + + dsd.addColumn("Name", nameDef, ""); + dsd.addColumn("id", new PatientIdDataDefinition(), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("Age", new AgeDataDefinition(), ""); + dsd.addColumn("Sex", new GenderDataDefinition(), ""); + dsd.addColumn("Parent/Caregiver Telephone No", new PersonAttributeDataDefinition(phoneNumber), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("OPD Number (New)", patientClinicNo, ""); + //dsd.addColumn("OPD Number (Revisit)", patientClinicNo, ""); //TODO:Determine revisit vs new visit + dsd.addColumn("Referred From", opdReferredFromDataDefinition, paramMapping); + dsd.addColumn("County",new CalculationDataDefinition("County", new CountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Sub County", new CalculationDataDefinition("Subcounty", new SubCountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); + dsd.addColumn("Weight", opdWeightDataDefinition, paramMapping); + dsd.addColumn("Height", opdHeightDataDefinition, paramMapping); + dsd.addColumn("Muac", opdMuacDataDefinition, paramMapping); + dsd.addColumn("Temperature",opdTemperatureDataDefinition, paramMapping); + dsd.addColumn("Respiratory Rate",opdRespiratoryRateDataDefinition, paramMapping); + dsd.addColumn("Oxygen Saturation (SPO2)",opdOxygenSaturationDataDefinition, paramMapping); + dsd.addColumn("Pulse Rate",opdPulseRateDataDefinition, paramMapping); + dsd.addColumn("Danger signs",opdDangerSignsDataDefinition, paramMapping); + dsd.addColumn("Duration",opdComplaintDurationDataDefinition, paramMapping); + dsd.addColumn("Malaria",opdMalariaAssessmentDataDefinition, paramMapping); + dsd.addColumn("IMNCI Classification Diagnosis",opdMNCIDiagnosisDataDefinition, paramMapping); + dsd.addColumn("Tracer Drugs Prescribed",opdTracerDrugsPrescribedDataDefinition, paramMapping); + dsd.addColumn("Other Treatments Prescribed",opdNonTracerDrugsPrescribedDataDefinition, paramMapping); + dsd.addColumn("Immunization Status Up to Date",opdImmunizationStatusDataDefinition, paramMapping); + dsd.addColumn("TB Screening",opdTbScreeningDataDefinition, paramMapping); + dsd.addColumn("Nutrition Interventions",opdNutritionalInterventionsDataDefinition, paramMapping); //TODO: missing 2=Nutrition therapeutic supplements and 3=Diatetics + dsd.addColumn("Referred to",opdNutritionalInterventionsDataDefinition, paramMapping); //TODO: missing 1=Community Unit + dsd.addColumn("Remarks/Outcome",opdOutcomeDataDefinition, paramMapping); + + MOH204ARegisterCohortDefinition cd = new MOH204ARegisterCohortDefinition(); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + dsd.addRowFilter(cd, paramMapping); + return dsd; + + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java new file mode 100644 index 0000000000..4bc1172e29 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java @@ -0,0 +1,162 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.PatientIdentifierType; +import org.openmrs.PersonAttributeType; +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; +import org.openmrs.module.kenyaemr.calculation.library.hiv.CountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.hiv.SubCountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; +import org.openmrs.module.kenyaemr.metadata.CommonMetadata; +import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204ARegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204BRegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.BloodPressureDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.*; +import org.openmrs.module.metadatadeploy.MetadataUtils; +import org.openmrs.module.reporting.common.SortCriteria; +import org.openmrs.module.reporting.data.DataDefinition; +import org.openmrs.module.reporting.data.converter.DataConverter; +import org.openmrs.module.reporting.data.converter.DateConverter; +import org.openmrs.module.reporting.data.converter.ObjectFormatter; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; +import org.openmrs.module.reporting.data.person.definition.*; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.EncounterDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({"kenyaemr.common.report.moh204B"}) +public class MOH204BReportBuilder extends AbstractReportBuilder { + public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; + public static final String DATE_FORMAT = "dd/MM/yyyy"; + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList( + new Parameter("startDate", "Start Date", Date.class), + new Parameter("endDate", "End Date", Date.class), + new Parameter("dateBasedReporting", "", String.class) + ); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, ReportDefinition reportDefinition) { + return Arrays.asList( + ReportUtils.map(datasetColumns(), "startDate=${startDate},endDate=${endDate}") + ); + } + + protected DataSetDefinition datasetColumns() { + EncounterDataSetDefinition dsd = new EncounterDataSetDefinition(); + dsd.setName("MOH204B"); + dsd.setDescription("OPD Visit information"); + dsd.addSortCriteria("Visit Date", SortCriteria.SortDirection.ASC); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + String paramMapping = "startDate=${startDate},endDate=${endDate}"; + + DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName} {middleName}"); + DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); + PatientIdentifierType pcn = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.PATIENT_CLINIC_NUMBER); + DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); + DataDefinition patientClinicNo = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(pcn.getName(), pcn), identifierFormatter); + + OPDHeightDataDefinition opdHeightDataDefinition = new OPDHeightDataDefinition(); + opdHeightDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdHeightDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDWeightDataDefinition opdWeightDataDefinition = new OPDWeightDataDefinition(); + opdWeightDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdWeightDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTemperatureDataDefinition opdTemperatureDataDefinition = new OPDTemperatureDataDefinition(); + opdTemperatureDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTemperatureDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDMalariaAssessmentDataDefinition opdMalariaAssessmentDataDefinition = new OPDMalariaAssessmentDataDefinition(); + opdMalariaAssessmentDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdMalariaAssessmentDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTreatmentPrescribedDataDefinition opdTreatmentPrescribedDataDefinition = new OPDTreatmentPrescribedDataDefinition(); + opdTreatmentPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTreatmentPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDTbScreeningDataDefinition opdTbScreeningDataDefinition = new OPDTbScreeningDataDefinition(); + opdTbScreeningDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdTbScreeningDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDReferredToDataDefinition opdReferredToDataDefinition = new OPDReferredToDataDefinition(); + opdReferredToDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdReferredToDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDReferredFromDataDefinition opdReferredFromDataDefinition = new OPDReferredFromDataDefinition(); + opdReferredFromDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdReferredFromDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDOutcomeDataDefinition opdOutcomeDataDefinition = new OPDOutcomeDataDefinition(); + opdOutcomeDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdOutcomeDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDBMIDataDefinition opdBMIDataDefinition = new OPDBMIDataDefinition(); + opdBMIDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdBMIDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDBloodPressureDataDefinition opdBloodPressureDataDefinition = new OPDBloodPressureDataDefinition(); + opdBloodPressureDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdBloodPressureDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDDiagnosisDataDefinition opdDiagnosisDataDefinition = new OPDDiagnosisDataDefinition(); + opdDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + + PersonAttributeType phoneNumber = MetadataUtils.existing(PersonAttributeType.class, CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); + + dsd.addColumn("Name", nameDef, ""); + dsd.addColumn("id", new PatientIdDataDefinition(), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("Age", new AgeDataDefinition(), ""); + dsd.addColumn("Sex", new GenderDataDefinition(), ""); + dsd.addColumn("Parent/Caregiver Telephone No", new PersonAttributeDataDefinition(phoneNumber), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("OPD Number (New)", patientClinicNo, ""); + //dsd.addColumn("OPD Number (Revisit)", patientClinicNo, ""); //TODO:Determine revisit vs new visit + dsd.addColumn("Referred From", opdReferredFromDataDefinition, paramMapping); + dsd.addColumn("County",new CalculationDataDefinition("County", new CountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Sub County", new CalculationDataDefinition("Subcounty", new SubCountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); + dsd.addColumn("Weight", opdWeightDataDefinition, paramMapping); + dsd.addColumn("Height", opdHeightDataDefinition, paramMapping); + dsd.addColumn("BMI", opdBMIDataDefinition, paramMapping); + dsd.addColumn("Temperature",opdTemperatureDataDefinition, paramMapping); + dsd.addColumn("Blood Pressure", opdBloodPressureDataDefinition, paramMapping); + //dsd.addColumn("Visual Acuity", opdBloodPressureDataDefinition, paramMapping); //TODO: Determine how to get visual acuity. Is this an examination + dsd.addColumn("TB Screening",opdTbScreeningDataDefinition, paramMapping); + dsd.addColumn("Malaria",opdMalariaAssessmentDataDefinition, paramMapping); + dsd.addColumn("Diagnosis",opdDiagnosisDataDefinition, paramMapping); //TODO: Add all diagnosis + dsd.addColumn("Treatments Prescribed",opdTreatmentPrescribedDataDefinition, paramMapping); + dsd.addColumn("Referred to",opdReferredToDataDefinition, paramMapping); //TODO: missing 1=Community Unit + dsd.addColumn("Remarks/Outcome",opdOutcomeDataDefinition, paramMapping); + + MOH204BRegisterCohortDefinition cd = new MOH204BRegisterCohortDefinition(); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + dsd.addRowFilter(cd, paramMapping); + return dsd; + + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204ARegisterCohortDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204ARegisterCohortDefinition.java new file mode 100644 index 0000000000..26dfbd7833 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204ARegisterCohortDefinition.java @@ -0,0 +1,44 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition; + +import org.openmrs.Encounter; +import org.openmrs.module.reporting.cohort.definition.BaseCohortDefinition; +import org.openmrs.module.reporting.common.Localized; +import org.openmrs.module.reporting.definition.configuration.ConfigurationProperty; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; +import org.openmrs.module.reporting.query.BaseQuery; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; + +import java.util.Date; + +/** + * MOH204 cohort definition + * OPD under 5 Register + */ +@Caching(strategy = ConfigurationPropertyCachingStrategy.class) +@Localized("reporting.MOH204ARegisterCohortDefinition") +public class MOH204ARegisterCohortDefinition extends BaseQuery implements EncounterQuery { + @ConfigurationProperty + private Date asOfDate; + + public MOH204ARegisterCohortDefinition() { + } + + public Date getAsOfDate() { + return asOfDate; + } + + public void setAsOfDate(Date asOfDate) { + this.asOfDate = asOfDate; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204BRegisterCohortDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204BRegisterCohortDefinition.java new file mode 100644 index 0000000000..18fa850e7d --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH204BRegisterCohortDefinition.java @@ -0,0 +1,43 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition; + +import org.openmrs.Encounter; +import org.openmrs.module.reporting.common.Localized; +import org.openmrs.module.reporting.definition.configuration.ConfigurationProperty; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; +import org.openmrs.module.reporting.query.BaseQuery; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; + +import java.util.Date; + +/** + * MOH204 cohort definition + * OPD >= 5 years Register + */ +@Caching(strategy = ConfigurationPropertyCachingStrategy.class) +@Localized("reporting.MOH204BRegisterCohortDefinition") +public class MOH204BRegisterCohortDefinition extends BaseQuery implements EncounterQuery { + @ConfigurationProperty + private Date asOfDate; + + public MOH204BRegisterCohortDefinition() { + } + + public Date getAsOfDate() { + return asOfDate; + } + + public void setAsOfDate(Date asOfDate) { + this.asOfDate = asOfDate; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204ARegisterCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204ARegisterCohortDefinitionEvaluator.java new file mode 100644 index 0000000000..a09708a3b0 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204ARegisterCohortDefinitionEvaluator.java @@ -0,0 +1,60 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition.evaluator; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204ARegisterCohortDefinition; +import org.openmrs.module.reporting.common.ObjectUtil; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.openmrs.module.reporting.query.encounter.EncounterQueryResult; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; +import org.openmrs.module.reporting.query.encounter.evaluator.EncounterQueryEvaluator; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.List; + +/** + * Evaluator for patients for OPD Register + * < 5 years + */ +@Handler(supports = {MOH204ARegisterCohortDefinition.class}) +public class MOH204ARegisterCohortDefinitionEvaluator implements EncounterQueryEvaluator { + + private final Log log = LogFactory.getLog(this.getClass()); + @Autowired + EvaluationService evaluationService; + + public EncounterQueryResult evaluate(EncounterQuery definition, EvaluationContext context) throws EvaluationException { + context = ObjectUtil.nvl(context, new EvaluationContext()); + EncounterQueryResult queryResult = new EncounterQueryResult(definition, context); + + String qry = "SELECT ce.encounter_id from kenyaemr_etl.etl_clinical_encounter ce\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = ce.patient_id and p.voided = 0 and TIMESTAMPDIFF(YEAR, date(p.DOB), date(:startDate)) < 5\n" + + "where date(ce.visit_date) BETWEEN date(:startDate) AND date(:endDate)and ce.voided = 0;"; + + SqlQueryBuilder builder = new SqlQueryBuilder(); + builder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + builder.addParameter("endDate", endDate); + builder.addParameter("startDate", startDate); + + List results = evaluationService.evaluateToList(builder, Integer.class, context); + queryResult.getMemberIds().addAll(results); + return queryResult; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204BRegisterCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204BRegisterCohortDefinitionEvaluator.java new file mode 100644 index 0000000000..5147ade463 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH204BRegisterCohortDefinitionEvaluator.java @@ -0,0 +1,60 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition.evaluator; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204BRegisterCohortDefinition; +import org.openmrs.module.reporting.common.ObjectUtil; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.openmrs.module.reporting.query.encounter.EncounterQueryResult; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; +import org.openmrs.module.reporting.query.encounter.evaluator.EncounterQueryEvaluator; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.List; + +/** + * Evaluator for patients for OPD Register + * >= 5 years + */ +@Handler(supports = {MOH204BRegisterCohortDefinition.class}) +public class MOH204BRegisterCohortDefinitionEvaluator implements EncounterQueryEvaluator { + + private final Log log = LogFactory.getLog(this.getClass()); + @Autowired + EvaluationService evaluationService; + + public EncounterQueryResult evaluate(EncounterQuery definition, EvaluationContext context) throws EvaluationException { + context = ObjectUtil.nvl(context, new EvaluationContext()); + EncounterQueryResult queryResult = new EncounterQueryResult(definition, context); + + String qry = "SELECT ce.encounter_id from kenyaemr_etl.etl_clinical_encounter ce\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = ce.patient_id and p.voided = 0 and TIMESTAMPDIFF(YEAR, date(p.DOB), date(:startDate)) >= 5\n" + + "where date(ce.visit_date) BETWEEN date(:startDate) AND date(:endDate)and ce.voided = 0;"; + + SqlQueryBuilder builder = new SqlQueryBuilder(); + builder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + builder.addParameter("endDate", endDate); + builder.addParameter("startDate", startDate); + + List results = evaluationService.evaluateToList(builder, Integer.class, context); + queryResult.getMemberIds().addAll(results); + return queryResult; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/anc/ANCWeightDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/anc/ANCWeightDataEvaluator.java index bf8496e05b..7c3c4ca08a 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/anc/ANCWeightDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/anc/ANCWeightDataEvaluator.java @@ -37,7 +37,7 @@ public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, Evalu String qry = "select\n" + " v.encounter_id,\n" + - " coalesce(v.weight,t.weight) as height\n" + + " coalesce(v.weight,t.weight) as weight\n" + " from kenyaemr_etl.etl_mch_antenatal_visit v\n" + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + " where date(v.visit_date) between date(:startDate) and date(:endDate);"; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBMIDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBMIDataEvaluator.java new file mode 100644 index 0000000000..1ffa85b102 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBMIDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDBMIDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD BMI + * OPD Register + */ +@Handler(supports= OPDBMIDataDefinition.class, order=50) +public class OPDBMIDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " ROUND(t.weight/(t.height * t.height)*10000,1) as bmi\n" + + " from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + " where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBloodPressureDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBloodPressureDataEvaluator.java new file mode 100644 index 0000000000..5943203b6c --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDBloodPressureDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDBloodPressureDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDHeightDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Height + * OPD Register + */ +@Handler(supports= OPDBloodPressureDataDefinition.class, order=50) +public class OPDBloodPressureDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select v.encounter_id,\n" + + " concat(t.systolic_pressure, '/',t.diastolic_pressure) as blood_pressure\n" + + " from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDComplaintDurationDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDComplaintDurationDataEvaluator.java new file mode 100644 index 0000000000..3cb4c53b2e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDComplaintDurationDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDComplaintDurationDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDangerSignsDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Complaint duration Saturation + * OPD Register + */ +@Handler(supports= OPDComplaintDurationDataDefinition.class, order=50) +public class OPDComplaintDurationDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " a.complaint_duration\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_allergy_chronic_illness a ON v.patient_id = a.patient_id AND date(v.visit_date) = date(a.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDangerSignsDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDangerSignsDataEvaluator.java new file mode 100644 index 0000000000..553542424d --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDangerSignsDataEvaluator.java @@ -0,0 +1,62 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDangerSignsDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Danger signs Saturation + * OPD Register + */ +@Handler(supports= OPDDangerSignsDataDefinition.class, order=50) +public class OPDDangerSignsDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case a.complaint\n" + + " when 159861 then 1\n" + + " when 6017 then 1\n" + + " when 122983 then 2\n" + + " when 113054 then 3\n" + + " when 144576 then 4\n" + + " when 116334 then 4 end) as danger_signs\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_allergy_chronic_illness a ON v.patient_id = a.patient_id AND date(v.visit_date) = date(a.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java new file mode 100644 index 0000000000..b83e666319 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java @@ -0,0 +1,73 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDiagnosisDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMNCIDiagnosisDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Diagnosis + * OPD Register + */ +@Handler(supports= OPDDiagnosisDataDefinition.class, order=50) +public class OPDDiagnosisDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case ed.diagnosis_coded\n" + + " when 168737 then 'DIARRHOEA_WITH_DEHYDRATION'\n" + + " when 166569 then 'DIARRHOEA_WITH_SOME_DEHYDRATION'\n" + + " when 168736 then 'DIARRHOEA_WITH_SEVERE_DEHYDRATION'\n" + + " when 145622 then 'CHOLERA'\n" + + " when 152 then 'DYSENTRY'\n" + + " when 117889 then 'GASTROENTERITIS'\n" + + " when 114100 then 'PNEUMONIA'\n" + + " when 168738 then 'SEVERE_PNEUMONIA'\n" + + " when 123093 then 'UPPER_RESPIRATORY_TRACT_INFECTIONS'\n" + + " when 135556 then 'LOWER_RESPIRATORY_TRACT_INFECTIONS'\n" + + " when 121375 then 'ASTHMA'\n" + + " when 168739 then 'PRESUMED_TUBERCULOSIS'\n" + + " when 166623 then 'SUSPECTED_MALARIA'\n" + + " when 168740 then 'TESTED_FOR_MALARIA'\n" + + " when 160148 then 'CONFIRMED_MALARIA' end) as mnci_diagnosis\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN encounter_diagnosis ed ON v.patient_id = ed.patient_id and date(ed.date_created)between date(:startDate) and date(:endDate)\n" + + " LEFT JOIN kenyaemr_etl.etl_laboratory_extract x ON v.patient_id = x.patient_id AND date(v.visit_date) between date(:startDate) and date(:endDate)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDHeightDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDHeightDataEvaluator.java new file mode 100644 index 0000000000..db712e9247 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDHeightDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDHeightDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Height + * OPD Register + */ +@Handler(supports= OPDHeightDataDefinition.class, order=50) +public class OPDHeightDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.height as height\n" + + " from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + " where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java new file mode 100644 index 0000000000..c40638be23 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java @@ -0,0 +1,73 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMNCIDiagnosisDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMalariaAssessmentDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates MNCI Diagnosis + * OPD Register + */ +@Handler(supports= OPDMNCIDiagnosisDataDefinition.class, order=50) +public class OPDIMNCIDiagnosisDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case ed.diagnosis_coded\n" + + " when 168737 then 'DIARRHOEA_WITH_DEHYDRATION'\n" + + " when 166569 then 'DIARRHOEA_WITH_SOME_DEHYDRATION'\n" + + " when 168736 then 'DIARRHOEA_WITH_SEVERE_DEHYDRATION'\n" + + " when 145622 then 'CHOLERA'\n" + + " when 152 then 'DYSENTRY'\n" + + " when 117889 then 'GASTROENTERITIS'\n" + + " when 114100 then 'PNEUMONIA'\n" + + " when 168738 then 'SEVERE_PNEUMONIA'\n" + + " when 123093 then 'UPPER_RESPIRATORY_TRACT_INFECTIONS'\n" + + " when 135556 then 'LOWER_RESPIRATORY_TRACT_INFECTIONS'\n" + + " when 121375 then 'ASTHMA'\n" + + " when 168739 then 'PRESUMED_TUBERCULOSIS'\n" + + " when 166623 then 'SUSPECTED_MALARIA'\n" + + " when 168740 then 'TESTED_FOR_MALARIA'\n" + + " when 160148 then 'CONFIRMED_MALARIA' end) as mnci_diagnosis\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN encounter_diagnosis ed ON v.patient_id = ed.patient_id and date(ed.date_created)between date(:startDate) and date(:endDate)\n" + + " LEFT JOIN kenyaemr_etl.etl_laboratory_extract x ON v.patient_id = x.patient_id AND date(v.visit_date) between date(:startDate) and date(:endDate)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDImmunizationStatusDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDImmunizationStatusDataEvaluator.java new file mode 100644 index 0000000000..1bdfa5fa61 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDImmunizationStatusDataEvaluator.java @@ -0,0 +1,55 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDImmunizationStatusDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Immunization status prescribed + * OPD Register + */ +@Handler(supports= OPDImmunizationStatusDataDefinition.class, order=50) +public class OPDImmunizationStatusDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select v.encounter_id,\n" + + " if(m.fully_immunized = 1065,'Y','N') as fully_immunized\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " INNER JOIN kenyaemr_etl.etl_hei_immunization m ON v.patient_id = m.patient_id\n" + + " and date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMalariaAssessmentDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMalariaAssessmentDataEvaluator.java new file mode 100644 index 0000000000..59bff146cb --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMalariaAssessmentDataEvaluator.java @@ -0,0 +1,62 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDComplaintDurationDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMalariaAssessmentDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Malaria assessment + * OPD Register + */ +@Handler(supports= OPDMalariaAssessmentDataDefinition.class, order=50) +public class OPDMalariaAssessmentDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " if(ed.diagnosis_coded = 166623 and x.lab_test not in (1643,32,1366), 1,\n" + + "+ if(x.lab_test = 1643 and x.test_result = 664, 2,\n" + + "+ if(x.lab_test in (32) and x.test_result = 664, 3,\n" + + "+ if(x.lab_test in (1643) and x.test_result = 703, 4,\n" + + "+ if(x.lab_test in (32) and x.test_result = 703, 5,''))))) as malaria\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN encounter_diagnosis ed ON v.patient_id = ed.patient_id and date(ed.date_created)between date(:startDate) and date(:endDate)\n" + + " LEFT JOIN kenyaemr_etl.etl_laboratory_extract x ON v.patient_id = x.patient_id AND date(v.visit_date) between date(:startDate) and date(:endDate)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMuacDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMuacDataEvaluator.java new file mode 100644 index 0000000000..abe14b52fb --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDMuacDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMuacDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD MUAC + * OPD Register + */ +@Handler(supports= OPDMuacDataDefinition.class, order=50) +public class OPDMuacDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.muac as muac\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNonTracerDrugsPrescribedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNonTracerDrugsPrescribedDataEvaluator.java new file mode 100644 index 0000000000..bce3bf7e31 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNonTracerDrugsPrescribedDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDNonTracerDrugsPrescribedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTracerDrugsPrescribedDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Tracer drugs prescribed + * OPD Register + */ +@Handler(supports= OPDNonTracerDrugsPrescribedDataDefinition.class, order=50) +public class OPDNonTracerDrugsPrescribedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select v.encounter_id,\n" + + " d.drug_name\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " INNER JOIN kenyaemr_etl.etl_drug_order d ON v.patient_id = d.patient_id and date(d.visit_date) = date(v.visit_date)\n" + + "where d.drug_concept_id not in (351,86672,71161,86339,81341,70439,162650) \n" + + " and date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNutritionalInterventionsDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNutritionalInterventionsDataEvaluator.java new file mode 100644 index 0000000000..94529d1237 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDNutritionalInterventionsDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDNutritionalInterventionsDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTbScreeningDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Nutritional Interventions + * OPD Register + */ +@Handler(supports= OPDNutritionalInterventionsDataDefinition.class, order=50) +public class OPDNutritionalInterventionsDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case v.counselling_ordered when 1380 then 1 else '' end) as nutritional_interventios\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOutcomeDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOutcomeDataEvaluator.java new file mode 100644 index 0000000000..e9e77b9b2c --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOutcomeDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDOutcomeDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDReferredToDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates outcome + * OPD Register + */ +@Handler(supports= OPDOutcomeDataDefinition.class, order=50) +public class OPDOutcomeDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case v.patient_outcome when 159 then 'Died' else 'Alive' end) as patient_outcome\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOxygenSaturationDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOxygenSaturationDataEvaluator.java new file mode 100644 index 0000000000..a9664a28bf --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOxygenSaturationDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDOxygenSaturationDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Oxygen Saturation + * OPD Register + */ +@Handler(supports= OPDOxygenSaturationDataDefinition.class, order=50) +public class OPDOxygenSaturationDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.oxygen_saturation as oxygen_saturation\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPulseRateDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPulseRateDataEvaluator.java new file mode 100644 index 0000000000..02e57f91f8 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPulseRateDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDPulseRateDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Pulse Rate Saturation + * OPD Register + */ +@Handler(supports= OPDPulseRateDataDefinition.class, order=50) +public class OPDPulseRateDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.pulse_rate as pulse_rate\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredFromDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredFromDataEvaluator.java new file mode 100644 index 0000000000..c66fba1548 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredFromDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDReferredFromDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDReferredToDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Referred From + * OPD Register + */ +@Handler(supports= OPDReferredFromDataDefinition.class, order=50) +public class OPDReferredFromDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case v.visit_type when 'Transfer in' then 2 else '' end) as referred_from\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredToDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredToDataEvaluator.java new file mode 100644 index 0000000000..312f5de594 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDReferredToDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDNutritionalInterventionsDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDReferredToDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Referred to + * OPD Register + */ +@Handler(supports= OPDReferredToDataDefinition.class, order=50) +public class OPDReferredToDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case v.referral_to when 'Community Unit' then 1 when 'Other health facility' then 2 when 'This health facility' then 3 else '' end) as referred_to\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDRespiratoryRateDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDRespiratoryRateDataEvaluator.java new file mode 100644 index 0000000000..39ceb22023 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDRespiratoryRateDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDRespiratoryRateDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Respiratory Rate + * OPD Register + */ +@Handler(supports= OPDRespiratoryRateDataDefinition.class, order=50) +public class OPDRespiratoryRateDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.respiratory_rate as respiratory_rate\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTbScreeningDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTbScreeningDataEvaluator.java new file mode 100644 index 0000000000..c5c5ea6519 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTbScreeningDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDImmunizationStatusDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTbScreeningDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Tb screening prescribed + * OPD Register + */ +@Handler(supports= OPDTbScreeningDataDefinition.class, order=50) +public class OPDTbScreeningDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " (case t.resulting_tb_status when 1660 then 'No TB Signs' when 142177 then 'Presumed TB' when 1662 then 'TB Confirmed' when 160737 then 'TB Screening Not Done' else '' end) as resulting_tb_status\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_tb_screening t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTemperatureDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTemperatureDataEvaluator.java new file mode 100644 index 0000000000..6719ccecc2 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTemperatureDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTemperatureDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDWeightDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Temperature + * OPD Register + */ +@Handler(supports= OPDTemperatureDataDefinition.class, order=50) +public class OPDTemperatureDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.temperature as temperature\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTracerDrugsPrescribedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTracerDrugsPrescribedDataEvaluator.java new file mode 100644 index 0000000000..849af9e47c --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTracerDrugsPrescribedDataEvaluator.java @@ -0,0 +1,63 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMalariaAssessmentDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTracerDrugsPrescribedDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Tracer drugs prescribed + * OPD Register + */ +@Handler(supports= OPDTracerDrugsPrescribedDataDefinition.class, order=50) +public class OPDTracerDrugsPrescribedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select v.encounter_id,\n" + + " if(d.drug_concept_id = 351, 1,\n" + + " if(d.drug_concept_id = 86672 , 2,\n" + + " if(d.drug_concept_id = 351 , 3,\n" + + " if(d.drug_concept_id = 71161 , 4,\n" + + " if(d.drug_concept_id = 86339 , 5,\n" + + " if(d.drug_concept_id = 81341 , 6,\n" + + " if(d.drug_concept_id = 70439 , 7,\n" + + " if(d.drug_concept_id = 162650 , 8,'')))))))) as tracer_drugs_prescribed\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " INNER JOIN kenyaemr_etl.etl_drug_order d ON v.patient_id = d.patient_id and date(d.visit_date) = date(v.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTreatmentPrescribedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTreatmentPrescribedDataEvaluator.java new file mode 100644 index 0000000000..01bb929729 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDTreatmentPrescribedDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDNonTracerDrugsPrescribedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTreatmentPrescribedDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates treatment prescribed + * OPD Register + */ +@Handler(supports= OPDTreatmentPrescribedDataDefinition.class, order=50) +public class OPDTreatmentPrescribedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select v.encounter_id,\n" + + " d.drug_name\n" + + " from kenyaemr_etl.etl_clinical_encounter v\n" + + " INNER JOIN kenyaemr_etl.etl_drug_order d ON v.patient_id = d.patient_id and date(d.visit_date) = date(v.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDWeightDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDWeightDataEvaluator.java new file mode 100644 index 0000000000..46c3db00aa --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDWeightDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDWeightDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates OPD Weight + * OPD Register + */ +@Handler(supports= OPDWeightDataDefinition.class, order=50) +public class OPDWeightDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " v.encounter_id,\n" + + " t.weight as weight\n" + + "from kenyaemr_etl.etl_clinical_encounter v\n" + + " LEFT JOIN kenyaemr_etl.etl_patient_triage t ON v.patient_id = t.patient_id AND date(v.visit_date) = date(t.visit_date)\n" + + "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBMIDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBMIDataDefinition.java new file mode 100644 index 0000000000..357591c049 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBMIDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD BMI Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDBMIDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDBMIDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDBMIDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBloodPressureDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBloodPressureDataDefinition.java new file mode 100644 index 0000000000..1bb3dbfc16 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDBloodPressureDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Blood pressure Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDBloodPressureDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDBloodPressureDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDBloodPressureDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDComplaintDurationDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDComplaintDurationDataDefinition.java new file mode 100644 index 0000000000..87fed84546 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDComplaintDurationDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Complaint Duration Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDComplaintDurationDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDComplaintDurationDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDComplaintDurationDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDangerSignsDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDangerSignsDataDefinition.java new file mode 100644 index 0000000000..ab91796d35 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDangerSignsDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Danger Signs Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDDangerSignsDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDDangerSignsDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDDangerSignsDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDiagnosisDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDiagnosisDataDefinition.java new file mode 100644 index 0000000000..285449dcc4 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDiagnosisDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Diagnosis + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDDiagnosisDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDDiagnosisDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDDiagnosisDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDHeightDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDHeightDataDefinition.java new file mode 100644 index 0000000000..76215e32ba --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDHeightDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Height Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDHeightDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDHeightDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDHeightDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDImmunizationStatusDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDImmunizationStatusDataDefinition.java new file mode 100644 index 0000000000..a6a772c157 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDImmunizationStatusDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Immunization status Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDImmunizationStatusDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDImmunizationStatusDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDImmunizationStatusDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java new file mode 100644 index 0000000000..234812cbcd --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD MNCI Diagnosis + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDMNCIDiagnosisDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDMNCIDiagnosisDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDMNCIDiagnosisDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMalariaAssessmentDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMalariaAssessmentDataDefinition.java new file mode 100644 index 0000000000..acf796d8ee --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMalariaAssessmentDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Malaria assessment Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDMalariaAssessmentDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDMalariaAssessmentDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDMalariaAssessmentDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMuacDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMuacDataDefinition.java new file mode 100644 index 0000000000..857b17ea17 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMuacDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD MUAC Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDMuacDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDMuacDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDMuacDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNonTracerDrugsPrescribedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNonTracerDrugsPrescribedDataDefinition.java new file mode 100644 index 0000000000..4a0976435d --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNonTracerDrugsPrescribedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Non Tracer drugs prescribed Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDNonTracerDrugsPrescribedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDNonTracerDrugsPrescribedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDNonTracerDrugsPrescribedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNutritionalInterventionsDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNutritionalInterventionsDataDefinition.java new file mode 100644 index 0000000000..812197d909 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDNutritionalInterventionsDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Nutritional Interventions Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDNutritionalInterventionsDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDNutritionalInterventionsDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDNutritionalInterventionsDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOutcomeDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOutcomeDataDefinition.java new file mode 100644 index 0000000000..8246ee911e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOutcomeDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Outcome Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDOutcomeDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDOutcomeDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDOutcomeDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOxygenSaturationDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOxygenSaturationDataDefinition.java new file mode 100644 index 0000000000..cbe5c8b320 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOxygenSaturationDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Oxygen Saturation Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDOxygenSaturationDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDOxygenSaturationDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDOxygenSaturationDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPulseRateDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPulseRateDataDefinition.java new file mode 100644 index 0000000000..6e60dd87f7 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPulseRateDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Pulse Rate Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDPulseRateDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDPulseRateDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDPulseRateDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredFromDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredFromDataDefinition.java new file mode 100644 index 0000000000..dd359d29f7 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredFromDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Referred From Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDReferredFromDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDReferredFromDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDReferredFromDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredToDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredToDataDefinition.java new file mode 100644 index 0000000000..7010d0694b --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDReferredToDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Referred to Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDReferredToDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDReferredToDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDReferredToDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDRespiratoryRateDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDRespiratoryRateDataDefinition.java new file mode 100644 index 0000000000..f675cad68e --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDRespiratoryRateDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Respiratory Rate Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDRespiratoryRateDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDRespiratoryRateDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDRespiratoryRateDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTbScreeningDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTbScreeningDataDefinition.java new file mode 100644 index 0000000000..e31e4d6fa3 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTbScreeningDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD TB screening Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDTbScreeningDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDTbScreeningDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDTbScreeningDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTemperatureDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTemperatureDataDefinition.java new file mode 100644 index 0000000000..eb5bb79925 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTemperatureDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Temperature Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDTemperatureDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDTemperatureDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDTemperatureDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTracerDrugsPrescribedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTracerDrugsPrescribedDataDefinition.java new file mode 100644 index 0000000000..7d8c722fee --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTracerDrugsPrescribedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Tracer drugs prescribed Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDTracerDrugsPrescribedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDTracerDrugsPrescribedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDTracerDrugsPrescribedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTreatmentPrescribedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTreatmentPrescribedDataDefinition.java new file mode 100644 index 0000000000..1405314ca8 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDTreatmentPrescribedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Non Treatment prescribed Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDTreatmentPrescribedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDTreatmentPrescribedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDTreatmentPrescribedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDWeightDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDWeightDataDefinition.java new file mode 100644 index 0000000000..a8a4216f7c --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDWeightDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Weight Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDWeightDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDWeightDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDWeightDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 084e458815..675ffb5ec3 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -90,6 +90,8 @@ + + @@ -929,4 +931,26 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/omod/src/main/webapp/resources/reports/moh204A.xls b/omod/src/main/webapp/resources/reports/moh204A.xls new file mode 100644 index 0000000000000000000000000000000000000000..7041646ed7bc4e31f2e20b08932fda543b182591 GIT binary patch literal 11776 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 PQSH?K?*G5}f7|~rP%b_3 literal 0 HcmV?d00001 From 1b5984cf34c193f688851748d968786db3d65d4f Mon Sep 17 00:00:00 2001 From: Donald Kibet Date: Sat, 6 Apr 2024 16:40:06 +0300 Subject: [PATCH 66/98] (feat) Add Social Health Insurance Number to meta data deploy --- api/src/main/distro/metadata/identifierTypes.xml | 1 + .../org/openmrs/module/kenyaemr/metadata/CommonMetadata.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/api/src/main/distro/metadata/identifierTypes.xml b/api/src/main/distro/metadata/identifierTypes.xml index b2f576a445..6cf55a921d 100755 --- a/api/src/main/distro/metadata/identifierTypes.xml +++ b/api/src/main/distro/metadata/identifierTypes.xml @@ -29,4 +29,5 @@ + \ No newline at end of file diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index 90d67ae88c..673e6520ec 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -113,6 +113,7 @@ public static final class _PatientIdentifierType { public static final String ALIEN_ID_NUMBER = Metadata.IdentifierType.ALIEN_ID_NUMBER; public static final String DRIVING_LICENSE = Metadata.IdentifierType.DRIVING_LICENSE; public static final String RECENCY_TESTING_ID = Metadata.IdentifierType.RECENCY_TESTING_ID; + public static final String SOCIAL_HEALTH_INSURANCE_NUMBER = Metadata.IdentifierType.SOCIAL_HEALTH_INSURANCE_NUMBER; } public static final class _PersonAttributeType { @@ -296,6 +297,8 @@ public void install() { null, LocationBehavior.NOT_USED, false, _PatientIdentifierType.DRIVING_LICENSE)); install(patientIdentifierType("Recency Testing ID", "Recency Testing ID", "", "Allows for alphanumeric format", null, LocationBehavior.NOT_USED, false, _PatientIdentifierType.RECENCY_TESTING_ID)); + install(patientIdentifierType("Social Health Insurance Number", "Social Health Insurance Number", "", "Allows for alphanumeric format", + null, LocationBehavior.NOT_USED, false, _PatientIdentifierType.SOCIAL_HEALTH_INSURANCE_NUMBER)); install(personAttributeType("Telephone contact", "Telephone contact number", From 0f6e412345a5636f59eae0836b96d962d66e8597 Mon Sep 17 00:00:00 2001 From: Patrick Wangoo Date: Tue, 9 Apr 2024 12:54:32 +0300 Subject: [PATCH 67/98] Bumping 18.8.0 (#1856) * Added 7 missing facilities - this will not relfect untill facilities list is refreshed * Bumping to v18.8.0 * Bumping to v18.8.0 :2 * Bumping to v18.8.0 :3 --- api/pom.xml | 4 ++-- api/src/main/resources/metadata/mfl_2014-05-12.csv | 7 +++++++ distro/pom.xml | 4 ++-- install/pom.xml | 4 ++-- omod/pom.xml | 4 ++-- pom.xml | 2 +- 6 files changed, 16 insertions(+), 9 deletions(-) diff --git a/api/pom.xml b/api/pom.xml index 5c85688411..bae2f44206 100755 --- a/api/pom.xml +++ b/api/pom.xml @@ -14,11 +14,11 @@ org.openmrs.module kenyaemr - 18.7.2-SNAPSHOT + 18.8.0 kenyaemr-api - 18.7.2-SNAPSHOT + 18.8.0 jar KenyaEMR Module API API project for KenyaEMR Module diff --git a/api/src/main/resources/metadata/mfl_2014-05-12.csv b/api/src/main/resources/metadata/mfl_2014-05-12.csv index 38ca69eab5..db9e244319 100755 --- a/api/src/main/resources/metadata/mfl_2014-05-12.csv +++ b/api/src/main/resources/metadata/mfl_2014-05-12.csv @@ -13725,3 +13725,10 @@ Code,Officialname,Province,County,Sub county,Ward,Facility type,Owner type,,,,Co 29292,BHESP Kariobangi North Wellness Centre,Nairobi,Nairobi,Embakasi North,Kariobangi North,Medical Clinic,Private Practice,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 27932,Eldoret Wellness Centre,Uasin Gishu,Turbo,Kapsaos,,Medical Clinic,Private Practice,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, 22257,Kineni Health centre,"Kisii,","Kisii,",Bomachoge chache,Sengera Bosoti,Medical Clinic,Ministry of Health,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +29280,Shining Hope for Communities Mathare Clinic,Nairobi,Nairobi,Mathare,Hospital,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +30464,Voi VCT Prison,Taita Taveta,Taita Taveta,Voi,Mbololo,Medical Clinic,Ministry of Health,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +29101,Mwiki health centre,Nairobi,Nairobi,Kasarani,Mwiki,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +28432,Reuben GOK,Nairobi,Nairobi,Embakasi South,Kwa Reuben,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +28537,Zimmerman pickens,Nairobi,Nairobi,Roysambu,Zimmerman,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +28630,St. Crispin Afya Hospital,Kajiado,Kajiado,Kajiado Central,Ildamat,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, +27424,BHESP-Mowlem DICE,Nairobi,Nairobi,Embakasi,Mowlem,Medical Clinic,Non-Governmental Organizations,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, diff --git a/distro/pom.xml b/distro/pom.xml index 147f85ca23..5883ea0cd8 100755 --- a/distro/pom.xml +++ b/distro/pom.xml @@ -16,11 +16,11 @@ org.openmrs.module kenyaemr - 18.7.2-SNAPSHOT + 18.8.0 kenyaemr-distro - 18.7.2-SNAPSHOT + 18.8.0 pom KenyaEMR Distribution (optional) Distribution project for KenyaEMR diff --git a/install/pom.xml b/install/pom.xml index 2962a94816..8eeaa60a32 100755 --- a/install/pom.xml +++ b/install/pom.xml @@ -15,11 +15,11 @@ org.openmrs.module kenyaemr - 18.7.2-SNAPSHOT + 18.8.0 kenyaemr-install - 18.7.2-SNAPSHOT + 18.8.0 pom KenyaEMR Installation (optional) Installation tools for KenyaEMR diff --git a/omod/pom.xml b/omod/pom.xml index 5cd5597de4..e752abd8dc 100755 --- a/omod/pom.xml +++ b/omod/pom.xml @@ -15,11 +15,11 @@ org.openmrs.module kenyaemr - 18.7.2-SNAPSHOT + 18.8.0 kenyaemr-omod - 18.7.2-SNAPSHOT + 18.8.0 jar KenyaEMR Module OMOD OMOD project for KenyaEMR Module diff --git a/pom.xml b/pom.xml index 235eacc00f..07caf73281 100755 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.openmrs.module kenyaemr - 18.7.2-SNAPSHOT + 18.8.0 pom KenyaEMR OpenMRS-based EMR for Kenya From 9de61f1a8209227e71ffefb0bc3734a9b27fc4bb Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Mon, 15 Apr 2024 15:45:00 +0300 Subject: [PATCH 68/98] Maintain the report name as from upstream --- api/src/main/resources/content/kenyaemr.common.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 7598a81309..57db17a298 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -915,7 +915,7 @@ - + From e69a5c3b36861059fbdd633cb6d4ed9bbea797a3 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Wed, 17 Apr 2024 12:30:16 +0300 Subject: [PATCH 69/98] Refactor, code optimization and 717 fixes --- .../AutismDiagnosisConstants.java | 2 +- .../ColumnParameters.java | 2 +- .../ConvulsiveDiagnosisConstants.java | 2 +- .../DiabetesDiagnosisConstants.java | 2 +- .../DiagnosisConcepts.java | 2 +- .../DiagnosisLists.java | 4 +- .../MascularDiagnosisConstants.java | 2 +- .../MentalPalsyDiagnosisConstants.java | 2 +- .../Moh705ReportDimension.java | 3 +- .../OncologyDiagnosisConstants.java | 2 +- .../OtherBitesDiagnosisConstants.java | 2 +- .../ReportAddonUtils.java | 2 +- .../ReportingUtils.java | 38 ++++++++++++++++++- .../RicketsDiagnosisConstants.java | 2 +- .../builder/common/MOH705AReportBuilder.java | 6 +-- .../builder/common/MOH705BReportBuilder.java | 6 +-- .../builder/common/MOH717ReportBuilder.java | 12 +++--- .../MOH705/MOH705IndicatorLibrary.java | 2 +- .../library/moh717/Moh717CohortLibrary.java | 11 ++++-- .../moh717/Moh717IndicatorLibrary.java | 4 +- .../shared/common/CommonDimensionLibrary.java | 12 ++++++ 21 files changed, 86 insertions(+), 34 deletions(-) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/AutismDiagnosisConstants.java (92%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/ColumnParameters.java (95%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/ConvulsiveDiagnosisConstants.java (96%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/DiabetesDiagnosisConstants.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/DiagnosisConcepts.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/DiagnosisLists.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/MascularDiagnosisConstants.java (98%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/MentalPalsyDiagnosisConstants.java (97%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/Moh705ReportDimension.java (97%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/OncologyDiagnosisConstants.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/OtherBitesDiagnosisConstants.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/ReportAddonUtils.java (99%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/ReportingUtils.java (60%) rename api/src/main/java/org/openmrs/module/kenyaemr/reporting/{Moh705ReportUtils => MohReportUtils}/RicketsDiagnosisConstants.java (96%) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/AutismDiagnosisConstants.java similarity index 92% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/AutismDiagnosisConstants.java index 52b6b359a3..8d4d90f7b3 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/AutismDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/AutismDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class AutismDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ColumnParameters.java similarity index 95% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ColumnParameters.java index d677c52a7e..340903f370 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ColumnParameters.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ColumnParameters.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; /** * Describes a column in a CohortIndicatorDataSetDefinition diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ConvulsiveDiagnosisConstants.java similarity index 96% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ConvulsiveDiagnosisConstants.java index 9d6f171903..9a6d7fba92 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ConvulsiveDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ConvulsiveDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class ConvulsiveDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiabetesDiagnosisConstants.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiabetesDiagnosisConstants.java index 5323303aa7..a073c3025c 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiabetesDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiabetesDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class DiabetesDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisConcepts.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisConcepts.java index 5a039dba2b..ac349949d9 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisConcepts.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisConcepts.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; import org.openmrs.Concept; import org.openmrs.api.context.Context; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisLists.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisLists.java index cb676d4cd0..24d0f285ad 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/DiagnosisLists.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/DiagnosisLists.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; import java.util.ArrayList; import java.util.Arrays; @@ -15,7 +15,7 @@ import org.openmrs.Concept; -import static org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisConcepts.getConcept; +import static org.openmrs.module.kenyaemr.reporting.MohReportUtils.DiagnosisConcepts.getConcept; public class DiagnosisLists { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MascularDiagnosisConstants.java similarity index 98% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MascularDiagnosisConstants.java index fd2fd02ded..c8482a61f8 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MascularDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MascularDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class MascularDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MentalPalsyDiagnosisConstants.java similarity index 97% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MentalPalsyDiagnosisConstants.java index 452c969967..c110912adb 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/MentalPalsyDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/MentalPalsyDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class MentalPalsyDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/Moh705ReportDimension.java similarity index 97% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/Moh705ReportDimension.java index 04b074374e..4594435108 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/Moh705ReportDimension.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/Moh705ReportDimension.java @@ -7,12 +7,11 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; import org.openmrs.module.reporting.cohort.definition.CohortDefinition; import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; import org.openmrs.module.reporting.evaluation.parameter.Parameter; import org.openmrs.module.reporting.indicator.dimension.CohortDefinitionDimension; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Date; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OncologyDiagnosisConstants.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OncologyDiagnosisConstants.java index c472007681..5c91ffd4a6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OncologyDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OncologyDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class OncologyDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OtherBitesDiagnosisConstants.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OtherBitesDiagnosisConstants.java index 956668314e..5248a20975 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/OtherBitesDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/OtherBitesDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class OtherBitesDiagnosisConstants { diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java similarity index 99% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java index 116c072402..c24a20df2b 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportAddonUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportingUtils.java similarity index 60% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportingUtils.java index 6fbb15b4d4..ee959e3688 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/ReportingUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportingUtils.java @@ -7,9 +7,10 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; import org.openmrs.module.reporting.evaluation.parameter.Mapped; import org.openmrs.module.reporting.evaluation.parameter.Parameter; @@ -60,5 +61,40 @@ public static EncounterQuery getEncounterLimitsByDate() { query.setQuery("SELECT encounter_id FROM encounter WHERE encounter_datetime BETWEEN :startDate AND :endDate"); return query; } + + /** + * MOH705 + * New Attendances + * @return + */ + public static CohortDefinition newAttendances(String age) { + String sqlQuery = "SELECT v.patient_id FROM kenyaemr_etl.etl_clinical_encounter v\n" + + "INNER JOIN kenyaemr_etl.etl_patient_demographics d on v.patient_id = d.patient_id and timestampdiff(YEAR, date(d.dob),date(:endDate)) "+ age +"\n" + + "WHERE v.visit_type = 'New visit' and date(v.visit_date) between date(:startDate) and date(:endDate);"; + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("newAttendances"); + cd.setQuery(sqlQuery); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setDescription("Patients who are new attendances"); + return cd; + } + /** + * MOH705 + * Re-Attendances + * @return + */ + public static CohortDefinition reAttendances(String age) { + String sqlQuery = "SELECT v.patient_id FROM kenyaemr_etl.etl_clinical_encounter v\n" + + "INNER JOIN kenyaemr_etl.etl_patient_demographics d on v.patient_id = d.patient_id and timestampdiff(YEAR, date(d.dob),date(:endDate)) "+ age +"\n" + + "WHERE v.visit_type = 'Revisit' and date(v.visit_date) between date(:startDate) and date(:endDate);"; + SqlCohortDefinition cd = new SqlCohortDefinition(); + cd.setName("reAttendances"); + cd.setQuery(sqlQuery); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cd.setDescription("Patients who are revisit attendances"); + return cd; + } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/RicketsDiagnosisConstants.java similarity index 96% rename from api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java rename to api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/RicketsDiagnosisConstants.java index 337a587f22..47282c85c9 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/Moh705ReportUtils/RicketsDiagnosisConstants.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/RicketsDiagnosisConstants.java @@ -7,7 +7,7 @@ * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS * graphic logo is a trademark of OpenMRS Inc. */ -package org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils; +package org.openmrs.module.kenyaemr.reporting.MohReportUtils; public class RicketsDiagnosisConstants { //Rickets diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index 932aefb2b4..1e5f6b015c 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -13,9 +13,9 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.DiagnosisLists; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportAddonUtils; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index 020b193566..df58c8c676 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -13,9 +13,9 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.DiagnosisLists; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportAddonUtils; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH705.MOH705IndicatorLibrary; import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java index 114bd04c2e..957e284f38 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java @@ -13,9 +13,7 @@ import org.openmrs.module.kenyacore.report.ReportUtils; import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; -import org.openmrs.module.kenyaemr.reporting.EmrReportingUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportingUtils; -import org.openmrs.module.kenyaemr.reporting.library.ETLReports.MOH717.Moh705CohortLibrary; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportingUtils; import org.openmrs.module.kenyaemr.reporting.library.moh717.Moh717CohortLibrary; import org.openmrs.module.kenyaemr.reporting.library.moh717.Moh717IndicatorLibrary; import org.openmrs.module.kenyaemr.reporting.library.shared.common.CommonDimensionLibrary; @@ -32,7 +30,7 @@ import java.util.List; import static org.openmrs.module.kenyacore.report.ReportUtils.map; -import static org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.ReportAddonUtils.getGeneralOutPatientFilters; +import static org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportAddonUtils.getGeneralOutPatientFilters; /** * Report builder for MOH717 @@ -78,13 +76,15 @@ private DataSetDefinition moh717DatasetDefinition() { dsd.addDimension("age", map(commonDimensionLibrary.standardAgeGroups(), "onDate=${endDate}")); dsd.addDimension("gender", map(commonDimensionLibrary.gender(), "")); + dsd.addDimension("state", map(commonDimensionLibrary.newOrRevisits(), "startDate=${startDate},endDate=${endDate}")); + ReportingUtils.addRow(dsd, "OSN", "OUTPATIENT SERVICES NEW PATIENTS", - ReportUtils.map(moh717IndicatorLibrary.getAllPatients(), indParams), getGeneralOutPatientFilters()); + ReportUtils.map(moh717IndicatorLibrary.getAllPatientsWithEncountersWithinReportingPeriod(), indParams), getGeneralOutPatientFilters()); ReportingUtils.addRow(dsd, "OSR", "OUTPATIENT SERVICES REVIST PATIENTS", - ReportUtils.map(moh717IndicatorLibrary.getAllPatients(), indParams), getGeneralOutPatientFilters()); + ReportUtils.map(moh717IndicatorLibrary.getAllPatientsWithEncountersWithinReportingPeriod(), indParams), getGeneralOutPatientFilters()); return dsd; } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java index 5b19e1b9ab..776d2f4ffb 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/MOH705/MOH705IndicatorLibrary.java @@ -11,7 +11,7 @@ import org.apache.commons.lang3.StringUtils; import org.openmrs.module.kenyacore.report.ReportUtils; -import org.openmrs.module.kenyaemr.reporting.Moh705ReportUtils.DiagnosisLists; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.DiagnosisLists; import org.openmrs.module.reporting.indicator.CohortIndicator; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java index 8a3d164039..ccf784d89b 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java @@ -19,12 +19,17 @@ @Component public class Moh717CohortLibrary { - public CohortDefinition getAllPatients() { + public CohortDefinition getAllPatientsWithEncountersWithinReportingPeriod() { SqlCohortDefinition sql = new SqlCohortDefinition(); - sql.setName("All patients"); + sql.setName("Patients with encounters within date period"); sql.addParameter(new Parameter("startDate", "Start Date", Date.class)); sql.addParameter(new Parameter("endDate", "End Date", Date.class)); - sql.setQuery("SELECT patient_id FROM patient"); + sql.setQuery( + "SELECT patient_id FROM patient p " + + " INNER JOIN encounter e ON p.patient_id=e.patient_id " + + " WHERE e.encounter_datetime <= :endDate " + + " AND p.voided = 0 AND e.voided = 0" + ); return sql; } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java index 6651d76743..ca72c8d078 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717IndicatorLibrary.java @@ -26,7 +26,7 @@ public Moh717IndicatorLibrary(Moh717CohortLibrary moh717CohortLibrary) { this.moh717CohortLibrary = moh717CohortLibrary; } - public CohortIndicator getAllPatients() { - return cohortIndicator("All Patients", ReportUtils.map(moh717CohortLibrary.getAllPatients(), "startDate=${startDate},endDate=${endDate}")); + public CohortIndicator getAllPatientsWithEncountersWithinReportingPeriod() { + return cohortIndicator("All Patients with encounters with period", ReportUtils.map(moh717CohortLibrary.getAllPatientsWithEncountersWithinReportingPeriod(), "endDate=${endDate}")); } } diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java index 5ad0f3dd7d..b8da0f7eab 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/shared/common/CommonDimensionLibrary.java @@ -9,6 +9,7 @@ */ package org.openmrs.module.kenyaemr.reporting.library.shared.common; +import org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportingUtils; import org.openmrs.module.reporting.evaluation.parameter.Parameter; import org.openmrs.module.reporting.indicator.dimension.CohortDefinitionDimension; import org.springframework.beans.factory.annotation.Autowired; @@ -334,4 +335,15 @@ public CohortDefinitionDimension encountersOfMonthPerDay() { return dim; } + public CohortDefinitionDimension newOrRevisits() { + CohortDefinitionDimension dim = new CohortDefinitionDimension(); + dim.setName("New or revisits patients"); + dim.addParameter(new Parameter("startDate", "After date", Date.class)); + dim.addParameter(new Parameter("endDate", "Before date", Date.class)); + dim.addCohortDefinition("RVT", + map(ReportingUtils.reAttendances(">=0"), "startDate=${startDate},endDate=${endDate}")); + dim.addCohortDefinition("NEW", + map(ReportingUtils.newAttendances(">=0"), "startDate=${startDate},endDate=${endDate}")); + return dim; + } } \ No newline at end of file From 42a5db4c766b1454ff0c5f89950e54f2a490838d Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Wed, 17 Apr 2024 14:15:47 +0300 Subject: [PATCH 70/98] Display the EHR reports to the UI --- .../resources/content/kenyaemr.common.xml | 28 +++++++++++-------- .../reports/ReportsHomePageController.java | 5 ++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 72cd162d0a..e0234b07d3 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -87,12 +87,16 @@ - - - - - - + + + + + + + + + + @@ -899,7 +903,7 @@ - + @@ -909,7 +913,7 @@ - + @@ -919,7 +923,7 @@ - + @@ -930,7 +934,7 @@ - + @@ -942,7 +946,7 @@ - + @@ -953,7 +957,7 @@ - + diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/reports/ReportsHomePageController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/reports/ReportsHomePageController.java index 6e692407ca..37fdd31216 100755 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/reports/ReportsHomePageController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/reports/ReportsHomePageController.java @@ -53,8 +53,13 @@ public void controller(PageModel model, UiUtils ui, for (ReportDescriptor report : reportManager.getCohortAnalysisReports(currentApp)) { cohortAnalysis.add(ui.simplifyObject(report)); } + List ehrReports = new ArrayList(); + for (ReportDescriptor report : reportManager.getEhrReports(currentApp)) { + ehrReports.add(ui.simplifyObject(report)); + } reportsByProgram.put("Common", common); reportsByProgram.put("Cohort Analysis", cohortAnalysis); + reportsByProgram.put("EHR Reports", ehrReports); for (ProgramDescriptor programDescriptor : programManager.getAllProgramDescriptors()) { Program program = programDescriptor.getTarget(); From 2c1e3e71480531482e6380e19eed6983504ffde2 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Tue, 16 Apr 2024 10:15:02 +0300 Subject: [PATCH 71/98] Initial work for the monthly revenue collection --- ...cilityMonthlyRevenueCollectionBuilder.java | 55 ++++++++++++++++++ .../finacials/FacilityRevenueSummaries.java | 11 ++++ .../resources/content/kenyaemr.common.xml | 13 +++++ .../resources/reports/financials/mcbf.xls | Bin 0 -> 31232 bytes 4 files changed, 79 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java create mode 100644 omod/src/main/webapp/resources/reports/financials/mcbf.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java new file mode 100644 index 0000000000..9597621556 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java @@ -0,0 +1,55 @@ +package org.openmrs.module.kenyaemr.reporting.builder.finacials; + +import org.openmrs.module.kenyacore.report.HybridReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractHybridReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.library.ETLReports.finacials.FacilityRevenueSummaries; +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.SqlDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({ "kenyaemr.common.report.facility.monthly.collection" }) +public class SetupFacilityMonthlyRevenueCollectionBuilder extends AbstractHybridReportBuilder { + + @Override + protected Mapped buildCohort(HybridReportDescriptor hybridReportDescriptor, + PatientDataSetDefinition patientDataSetDefinition) { + return null; + } + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + @Override + protected List> buildDataSets(ReportDescriptor descriptor, ReportDefinition report) { + SqlDataSetDefinition dsdM1 = new SqlDataSetDefinition(); + dsdM1.setName("M1"); + dsdM1.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsdM1.addParameter(new Parameter("endDate", "End Date", Date.class)); + dsdM1.setSqlQuery(FacilityRevenueSummaries.getMonthlySummaryQueryM1()); + + SqlDataSetDefinition dsdM2 = new SqlDataSetDefinition(); + dsdM2.setName("M2"); + dsdM2.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsdM2.addParameter(new Parameter("endDate", "End Date", Date.class)); + dsdM2.setSqlQuery(FacilityRevenueSummaries.getMonthlySummaryQueryM2()); + + return Arrays.asList(ReportUtils.map((DataSetDefinition) dsdM1, "startDate=${startDate},endDate=${endDate+23h}"), + ReportUtils.map((DataSetDefinition) dsdM2, "startDate=${startDate},endDate=${endDate+23h}")); + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java new file mode 100644 index 0000000000..2fc27a3070 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java @@ -0,0 +1,11 @@ +package org.openmrs.module.kenyaemr.reporting.library.ETLReports.finacials; + +public class FacilityRevenueSummaries { + public static final String getMonthlySummaryQueryM1() { + return "SELECT * from patient"; + } + + public static final String getMonthlySummaryQueryM2() { + return "SELECT * from patient"; + } +} diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 72cd162d0a..82ebec7e9b 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -93,6 +93,7 @@ + @@ -964,4 +965,16 @@ + + + + + + + + + + + + diff --git a/omod/src/main/webapp/resources/reports/financials/mcbf.xls b/omod/src/main/webapp/resources/reports/financials/mcbf.xls new file mode 100644 index 0000000000000000000000000000000000000000..0d11c179fe3529994d3d931ed5bf28091c4a8c48 GIT binary patch literal 31232 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 Date: Thu, 21 Mar 2024 11:51:57 +0300 Subject: [PATCH 72/98] Add 717 report --- api/src/main/resources/content/kenyaemr.common.xml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 82ebec7e9b..2d6ec138b6 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -930,6 +930,16 @@ + + + + + + + + + + From 4617291e4113e3c9787ed08fbfce07582a65470d Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Tue, 16 Apr 2024 10:27:59 +0300 Subject: [PATCH 73/98] Add report metadata in the context and supply the template --- api/src/main/resources/content/kenyaemr.common.xml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 2d6ec138b6..8e4af97499 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -90,6 +90,7 @@ + @@ -940,6 +941,16 @@ + + + + + + + + + + From 0f0514cf22eb537126d97ce6fc89d61523601323 Mon Sep 17 00:00:00 2001 From: patryllus Date: Wed, 17 Apr 2024 15:20:58 +0300 Subject: [PATCH 74/98] Updated monthly revenue report - cleaned up and used a single template --- ...cilityMonthlyRevenueCollectionBuilder.java | 9 +++ .../finacials/FacilityRevenueSummaries.java | 73 +++++++++++++++++- .../resources/content/kenyaemr.common.xml | 47 ++++------- .../resources/reports/financials/mcbf.xls | Bin 31232 -> 0 bytes .../financials/monthly_revenue_summary.xls | Bin 0 -> 13312 bytes 5 files changed, 94 insertions(+), 35 deletions(-) delete mode 100644 omod/src/main/webapp/resources/reports/financials/mcbf.xls create mode 100644 omod/src/main/webapp/resources/reports/financials/monthly_revenue_summary.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java index 9597621556..df5bd87da6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java @@ -1,3 +1,12 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ package org.openmrs.module.kenyaemr.reporting.builder.finacials; import org.openmrs.module.kenyacore.report.HybridReportDescriptor; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java index 2fc27a3070..5329830f07 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java @@ -1,11 +1,80 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ package org.openmrs.module.kenyaemr.reporting.library.ETLReports.finacials; public class FacilityRevenueSummaries { public static final String getMonthlySummaryQueryM1() { - return "SELECT * from patient"; + return "SELECT transaction_date,\n" + + " total_sales,\n" + + " ipd_cash,\n" + + " maternity,\n" + + " xray,\n" + + " lab,\n" + + " theatre,\n" + + " mortuary,\n" + + " op_treatment,\n" + + " pharmacy,\n" + + " medical_exam,\n" + + " medical_reports_including_P3,\n" + + " dental,\n" + + " physio_therapy,\n" + + " occupational_therapy,\n" + + " medical_records_cards_and_files,\n" + + " booking_fees,\n" + + " rental_services,\n" + + " ambulance,\n" + + " public_health_services,\n" + + " ent_and_other_clinics,\n" + + " other,\n" + + " cash_receipts_cash_from_daily_services,\n" + + " cash_receipt_nhif_receipt,\n" + + " cash_receipt_other_debtors_receipt,\n" + + " revenue_not_collected_patient_not_yet_paid_nhif_patients,\n" + + " revenue_not_collected_patient_not_yet_paid_other_debtors,\n" + + " revenue_not_collected_patient_not_yet_paid_waivers,\n" + + " revenue_not_collected_write_offs_exemptions,\n" + + " revenue_not_collected_write_offs_absconders\n" + + " FROM kenyaemr_etl.etl_daily_revenue_summary dr WHERE dr.transaction_date BETWEEN :startDate AND :endDate"; } public static final String getMonthlySummaryQueryM2() { - return "SELECT * from patient"; + return "SELECT transaction_date,\n" + + " total_sales,\n" + + " ipd_cash,\n" + + " maternity,\n" + + " xray,\n" + + " lab,\n" + + " theatre,\n" + + " mortuary,\n" + + " op_treatment,\n" + + " pharmacy,\n" + + " medical_exam,\n" + + " medical_reports_including_P3,\n" + + " dental,\n" + + " physio_therapy,\n" + + " occupational_therapy,\n" + + " medical_records_cards_and_files,\n" + + " booking_fees,\n" + + " rental_services,\n" + + " ambulance,\n" + + " public_health_services,\n" + + " ent_and_other_clinics,\n" + + " other,\n" + + " cash_receipts_cash_from_daily_services,\n" + + " cash_receipt_nhif_receipt,\n" + + " cash_receipt_other_debtors_receipt,\n" + + " revenue_not_collected_patient_not_yet_paid_nhif_patients,\n" + + " revenue_not_collected_patient_not_yet_paid_other_debtors,\n" + + " revenue_not_collected_patient_not_yet_paid_waivers,\n" + + " revenue_not_collected_write_offs_exemptions,\n" + + " revenue_not_collected_write_offs_absconders\n" + + " FROM kenyaemr_etl.etl_daily_revenue_summary dr WHERE dr.transaction_date BETWEEN :startDate AND :endDate"; } } diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 8e4af97499..ca25d8e10f 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -919,37 +919,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -995,7 +965,18 @@ - - + + + + + + + + + + + + + diff --git a/omod/src/main/webapp/resources/reports/financials/mcbf.xls b/omod/src/main/webapp/resources/reports/financials/mcbf.xls deleted file mode 100644 index 0d11c179fe3529994d3d931ed5bf28091c4a8c48..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31232 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 z zV?YBT>H<0wqHZ8KS-unnbT&lCeZ+Nw>-sVDkG=XJmsxc<4dd@LRq;VfP3tJ?gxv!>M*J7ldht-3Hs8+JK#ksmV`3-eKT4cAhRx?}iR|#_7a-%Uqg1QZWZKq=t^R`%dyx^d?>len*D&2KL3$IWJWv4c%1%U(*SKH_}?Ce zUynbBo-~dqJpqm(@#FC8r-2wowh;r&p0(k%BEvm>m&^3^$DM-b*4$DZpH&KWSv`B9 zKWEL@_*Q@=2wyy$Qi*QULkHNOsq`TwyoXgLwuuPZ^*f*aqksFw+8c;m_+e(^_a%0q{(`p<;9QL1YiWn05 zYkvhAu<%8H0jI(${>8yB{-o6X@A`&!vwN>!KmEq-_MiIt8(&xgD~ap>lfXvZ^#^Rv a#fRuW*Z=SN^*@T_LG>T~|MmZN{r>}B_7m0s literal 0 HcmV?d00001 From 2c837a1380587bfe30b4eeab6f78992ba4c653d6 Mon Sep 17 00:00:00 2001 From: patryllus Date: Wed, 17 Apr 2024 15:26:20 +0300 Subject: [PATCH 75/98] Resolving conflicts --- api/src/main/resources/content/kenyaemr.common.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index ca25d8e10f..8f10a685d4 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -89,8 +89,7 @@ - - + From 1c49a9dd46df25c0495f6279d9087974374f6ea7 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Wed, 17 Apr 2024 15:55:00 +0300 Subject: [PATCH 76/98] Qualify the patient id in the query --- .../kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java index ccf784d89b..1ce2f5042e 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/moh717/Moh717CohortLibrary.java @@ -25,7 +25,7 @@ public CohortDefinition getAllPatientsWithEncountersWithinReportingPeriod() { sql.addParameter(new Parameter("startDate", "Start Date", Date.class)); sql.addParameter(new Parameter("endDate", "End Date", Date.class)); sql.setQuery( - "SELECT patient_id FROM patient p " + "SELECT p.patient_id FROM patient p " + " INNER JOIN encounter e ON p.patient_id=e.patient_id " + " WHERE e.encounter_datetime <= :endDate " + " AND p.voided = 0 AND e.voided = 0" From 2118a4f756412613b32b79aaca7894b0e893bb52 Mon Sep 17 00:00:00 2001 From: patryllus Date: Wed, 17 Apr 2024 17:15:20 +0300 Subject: [PATCH 77/98] Updated monthly revenue summaries to include totals per reporting perion --- .../finacials/FacilityRevenueSummaries.java | 94 +++++++++++++------ 1 file changed, 63 insertions(+), 31 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java index 5329830f07..60361b6cac 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/ETLReports/finacials/FacilityRevenueSummaries.java @@ -11,37 +11,69 @@ public class FacilityRevenueSummaries { public static final String getMonthlySummaryQueryM1() { - return "SELECT transaction_date,\n" + - " total_sales,\n" + - " ipd_cash,\n" + - " maternity,\n" + - " xray,\n" + - " lab,\n" + - " theatre,\n" + - " mortuary,\n" + - " op_treatment,\n" + - " pharmacy,\n" + - " medical_exam,\n" + - " medical_reports_including_P3,\n" + - " dental,\n" + - " physio_therapy,\n" + - " occupational_therapy,\n" + - " medical_records_cards_and_files,\n" + - " booking_fees,\n" + - " rental_services,\n" + - " ambulance,\n" + - " public_health_services,\n" + - " ent_and_other_clinics,\n" + - " other,\n" + - " cash_receipts_cash_from_daily_services,\n" + - " cash_receipt_nhif_receipt,\n" + - " cash_receipt_other_debtors_receipt,\n" + - " revenue_not_collected_patient_not_yet_paid_nhif_patients,\n" + - " revenue_not_collected_patient_not_yet_paid_other_debtors,\n" + - " revenue_not_collected_patient_not_yet_paid_waivers,\n" + - " revenue_not_collected_write_offs_exemptions,\n" + - " revenue_not_collected_write_offs_absconders\n" + - " FROM kenyaemr_etl.etl_daily_revenue_summary dr WHERE dr.transaction_date BETWEEN :startDate AND :endDate"; + return "select tbl.transaction_date as transaction_date,\n" + + " SUM(tbl.total_sales) as total_sales,\n" + + " SUM(tbl.ipd_cash) as ipd_cash,\n" + + " SUM(tbl.maternity) as maternity,\n" + + " SUM(tbl.xray) as xray,\n" + + " SUM(tbl.lab) as lab,\n" + + " SUM(tbl.theatre) as theatre,\n" + + " SUM(tbl.mortuary) as mortuary,\n" + + " SUM(tbl.op_treatment) as op_treatment,\n" + + " SUM(tbl.pharmacy) as pharmacy,\n" + + " SUM(tbl.medical_exam) as medical_exam,\n" + + " SUM(tbl.medical_reports_including_P3) as medical_reports_including_P3,\n" + + " SUM(tbl.dental) as dental,\n" + + " SUM(tbl.physio_therapy) as physio_therapy,\n" + + " SUM(tbl.occupational_therapy) as occupational_therapy,\n" + + " SUM(tbl.medical_records_cards_and_files) as medical_records_cards_and_files,\n" + + " SUM(tbl.booking_fees) as booking_fees,\n" + + " SUM(tbl.rental_services) as rental_services,\n" + + " SUM(tbl.ambulance) as ambulance,\n" + + " SUM(tbl.public_health_services) as public_health_services,\n" + + " SUM(tbl.ent_and_other_clinics) as ent_and_other_clinics,\n" + + " SUM(tbl.other) as other,\n" + + " SUM(tbl.cash_receipts_cash_from_daily_services) as cash_receipts_cash_from_daily_services,\n" + + " SUM(tbl.cash_receipt_nhif_receipt) as cash_receipt_nhif_receipt,\n" + + " SUM(tbl.cash_receipt_other_debtors_receipt) as cash_receipt_other_debtors_receipt,\n" + + " SUM(tbl.revenue_not_collected_patient_not_yet_paid_nhif_patients) as revenue_not_collected_patient_not_yet_paid_nhif_patients,\n" + + " SUM(tbl.revenue_not_collected_patient_not_yet_paid_other_debtors) as revenue_not_collected_patient_not_yet_paid_other_debtors,\n" + + " SUM(tbl.revenue_not_collected_patient_not_yet_paid_waivers) as revenue_not_collected_patient_not_yet_paid_waivers,\n" + + " SUM(tbl.revenue_not_collected_write_offs_exemptions) as revenue_not_collected_write_offs_exemptions,\n" + + " SUM(tbl.revenue_not_collected_write_offs_absconders) as revenue_not_collected_write_offs_absconders\n" + + "from (\n" + + " select transaction_date,\n" + + " total_sales,\n" + + " ipd_cash,\n" + + " maternity,\n" + + " xray,\n" + + " lab,\n" + + " theatre,\n" + + " mortuary,\n" + + " op_treatment,\n" + + " pharmacy,\n" + + " medical_exam,\n" + + " medical_reports_including_P3,\n" + + " dental,\n" + + " physio_therapy,\n" + + " occupational_therapy,\n" + + " medical_records_cards_and_files,\n" + + " booking_fees,\n" + + " rental_services,\n" + + " ambulance,\n" + + " public_health_services,\n" + + " ent_and_other_clinics,\n" + + " other,\n" + + " cash_receipts_cash_from_daily_services,\n" + + " cash_receipt_nhif_receipt,\n" + + " cash_receipt_other_debtors_receipt,\n" + + " revenue_not_collected_patient_not_yet_paid_nhif_patients,\n" + + " revenue_not_collected_patient_not_yet_paid_other_debtors,\n" + + " revenue_not_collected_patient_not_yet_paid_waivers,\n" + + " revenue_not_collected_write_offs_exemptions,\n" + + " revenue_not_collected_write_offs_absconders\n" + + " FROM kenyaemr_etl.etl_daily_revenue_summary dr WHERE dr.transaction_date BETWEEN :startDate AND :endDate\n" + + " ) tbl group by transaction_date WITH ROLLUP ;"; } public static final String getMonthlySummaryQueryM2() { From 5512b5404444b6c71a27ac2331e3a9cf4d949117 Mon Sep 17 00:00:00 2001 From: jecihjoy Date: Thu, 18 Apr 2024 01:06:20 +0300 Subject: [PATCH 78/98] Setup procedure results encounter type --- .../org/openmrs/module/kenyaemr/metadata/CommonMetadata.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java index 673e6520ec..9dc3f186de 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/metadata/CommonMetadata.java @@ -65,6 +65,7 @@ public static final class _EncounterType { public static final String MAT_CLINICAL_ENCOUNTER = "c3518485-ee22-4a47-b6d4-6d0e8f297b02"; public static final String ILI_SURVEILLANCE = "f60910c7-2edd-4d93-813c-0e57095f892f"; public static final String SARI_SURVEILLANCE = "76d55715-88cc-4851-b5e0-09136426fd46"; + public static final String PROCEDURE_RESULTS = "99a7a6ba-59f4-484e-880d-01cbeaead62f"; } public static final class _Form { @@ -193,6 +194,7 @@ public void install() { install(encounterType("MAT Clinical Encounter", "MAT Clinical Encounter", _EncounterType.MAT_CLINICAL_ENCOUNTER)); install(encounterType("ILI Surveillance", "ILI Surveillance encounter type", _EncounterType.ILI_SURVEILLANCE)); install(encounterType("SARI Surveillance", "SARI Surveillance encounter type", _EncounterType.SARI_SURVEILLANCE)); + install(encounterType("Procedure Results", "Procedure outcome encounter type", _EncounterType.PROCEDURE_RESULTS)); install(form("Clinical Encounter", null, _EncounterType.CONSULTATION, "1", _Form.CLINICAL_ENCOUNTER)); install(form("Lab Results", null, _EncounterType.LAB_RESULTS, "1", _Form.LAB_RESULTS)); From 7a7ecc1b5dcb71f83c784c9b209d79e4a90871c5 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 18 Apr 2024 09:39:21 +0300 Subject: [PATCH 79/98] Construct the report builders based on the available beans --- .../kenyaemr/reporting/builder/common/MOH204AReportBuilder.java | 2 +- .../kenyaemr/reporting/builder/common/MOH204BReportBuilder.java | 2 +- .../kenyaemr/reporting/builder/common/MOH705AReportBuilder.java | 2 +- .../kenyaemr/reporting/builder/common/MOH705BReportBuilder.java | 2 +- .../kenyaemr/reporting/builder/common/MOH717ReportBuilder.java | 2 +- .../builder/dmi/IDSRSuspectedCaseListReportBuilder.java | 2 +- .../finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java index 3ab3b45725..d7233c59ea 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java @@ -50,7 +50,7 @@ import java.util.List; @Component -@Builds({"kenyaemr.common.report.moh204A"}) +@Builds({"kenyaemr.ehrReports.report.moh204A"}) public class MOH204AReportBuilder extends AbstractReportBuilder { public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; public static final String DATE_FORMAT = "dd/MM/yyyy"; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java index 4bc1172e29..72dda77493 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204BReportBuilder.java @@ -49,7 +49,7 @@ import java.util.List; @Component -@Builds({"kenyaemr.common.report.moh204B"}) +@Builds({"kenyaemr.ehrReports.report.moh204B"}) public class MOH204BReportBuilder extends AbstractReportBuilder { public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; public static final String DATE_FORMAT = "dd/MM/yyyy"; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java index 1e5f6b015c..9684816152 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705AReportBuilder.java @@ -36,7 +36,7 @@ * Diagnosis */ @Component -@Builds({ "kenyaemr.common.report.moh705A" }) +@Builds({ "kenyaemr.ehrReports.report.moh705A" }) public class MOH705AReportBuilder extends AbstractReportBuilder { static final String AGE_BELOW_FIVE = "<5"; static final int DIARRHOEA_WITHOUT_DEHYDRATION = 168737; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java index df58c8c676..a73ad21d0f 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH705BReportBuilder.java @@ -36,7 +36,7 @@ * Diagnosis */ @Component -@Builds({"kenyaemr.common.report.moh705B"}) +@Builds({"kenyaemr.ehrReports.report.moh705B"}) public class MOH705BReportBuilder extends AbstractReportBuilder { static final String EQUAL_AND_OVER_FIVE = ">=5"; static final int TESTED_MALARIA = 168740; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java index 957e284f38..eb1c4d40ad 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH717ReportBuilder.java @@ -38,7 +38,7 @@ */ @Component -@Builds({ "kenyaemr.common.report.717" }) +@Builds({ "kenyaemr.ehrReports.report.717" }) public class MOH717ReportBuilder extends AbstractReportBuilder { private final Moh717CohortLibrary moh717CohortLibrary; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/dmi/IDSRSuspectedCaseListReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/dmi/IDSRSuspectedCaseListReportBuilder.java index a783c69ca2..f8845a4259 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/dmi/IDSRSuspectedCaseListReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/dmi/IDSRSuspectedCaseListReportBuilder.java @@ -51,7 +51,7 @@ import java.util.List; @Component -@Builds({"kenyaemr.common.report.IDSRSuspectedCaseList"}) +@Builds({"kenyaemr.ehrReports.report.IDSRSuspectedCaseList"}) public class IDSRSuspectedCaseListReportBuilder extends AbstractReportBuilder { public static final String DATE_FORMAT = "dd/MM/yyyy"; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java index df5bd87da6..c6c16578e7 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/finacials/SetupFacilityMonthlyRevenueCollectionBuilder.java @@ -29,7 +29,7 @@ import java.util.List; @Component -@Builds({ "kenyaemr.common.report.facility.monthly.collection" }) +@Builds({ "kenyaemr.ehrReports.report.facility.monthly.collection" }) public class SetupFacilityMonthlyRevenueCollectionBuilder extends AbstractHybridReportBuilder { @Override From bbd496b31b8c444ce77e482ecdc66d2122c49ba0 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Date: Thu, 18 Apr 2024 12:49:18 +0300 Subject: [PATCH 80/98] Add 706 summarry tool and the respective 240 register --- .../common/SetupMOH240LabReportBuilder.java | 151 ++++++++++++++++++ .../common/SetupMOH706LabReportBuilder.java | 72 +++++++++ .../converter/EncounterDatetimeConverter.java | 46 ++++++ .../MOH706/Moh706IndicatorLibrary.java | 32 ++++ .../MOH706/Moh706LabCohortLibrary.java | 38 +++++ .../resources/content/kenyaemr.common.xml | 24 +++ .../main/webapp/resources/reports/MOH240.xls | Bin 0 -> 50688 bytes .../main/webapp/resources/reports/MOH706.xls | Bin 0 -> 54784 bytes 8 files changed, 363 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH706LabReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706IndicatorLibrary.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java create mode 100644 omod/src/main/webapp/resources/reports/MOH240.xls create mode 100644 omod/src/main/webapp/resources/reports/MOH706.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java new file mode 100644 index 0000000000..30822562b2 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java @@ -0,0 +1,151 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.Concept; +import org.openmrs.EncounterType; +import org.openmrs.PatientIdentifierType; +import org.openmrs.PersonAttributeType; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.report.HybridReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractHybridReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; +import org.openmrs.module.kenyaemr.Metadata; +import org.openmrs.module.kenyaemr.calculation.library.TelephoneNumberCalculation; +import org.openmrs.module.kenyaemr.metadata.CommonMetadata; +import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.EncounterDatetimeConverter; +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; +import org.openmrs.module.reporting.common.TimeQualifier; +import org.openmrs.module.reporting.data.DataDefinition; +import org.openmrs.module.reporting.data.converter.BirthdateConverter; +import org.openmrs.module.reporting.data.converter.DataConverter; +import org.openmrs.module.reporting.data.converter.ObjectFormatter; +import org.openmrs.module.reporting.data.converter.ObsValueConverter; +import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.EncountersForPatientDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.SqlPatientDataDefinition; +import org.openmrs.module.reporting.data.person.definition.AgeDataDefinition; +import org.openmrs.module.reporting.data.person.definition.BirthdateDataDefinition; +import org.openmrs.module.reporting.data.person.definition.ConvertedPersonDataDefinition; +import org.openmrs.module.reporting.data.person.definition.GenderDataDefinition; +import org.openmrs.module.reporting.data.person.definition.ObsForPersonDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonAttributeDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonIdDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PreferredNameDataDefinition; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({ "kenyaemr.ehrReports.report.240" }) +public class SetupMOH240LabReportBuilder extends AbstractHybridReportBuilder { + + @Override + protected Mapped buildCohort(HybridReportDescriptor hybridReportDescriptor, + PatientDataSetDefinition patientDataSetDefinition) { + return null; + } + + @Override + protected List> buildDataSets(ReportDescriptor descriptor, ReportDefinition report) { + PatientDataSetDefinition dsd = LabRegister(); + dsd.setName("lrr"); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + report.setBaseCohortDefinition(ReportUtils.map(getLabOrderEncounter(), "startDate=${startDate},endDate=${endDate}")); + + return Arrays.asList(ReportUtils.map((DataSetDefinition) dsd, "startDate=${startDate},endDate=${endDate}")); + } + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + private PatientDataSetDefinition LabRegister() { + PatientDataSetDefinition dsd = new PatientDataSetDefinition(); + dsd.setName("lrr"); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + dsd.addRowFilter(getLabOrderEncounter(), "startDate=${startDate},endDate=${endDate+23h}"); + DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName}, {middleName}"); + DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); + + PersonAttributeType personAttributeType = Context.getPersonService().getPersonAttributeTypeByUuid(CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); + + PatientIdentifierType openmrsID = Context.getPatientService().getPatientIdentifierTypeByUuid("dfacd928-0370-4315-99d7-6ec1c9f7ae76"); + DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); + DataDefinition identifierDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition( + openmrsID.getName(), openmrsID), identifierFormatter); + + dsd.addColumn("id", new PersonIdDataDefinition(), ""); + dsd.addColumn("identifier", identifierDef, ""); + dsd.addColumn("Date", getEncounterDate(), "onOrAfter=${startDate},onOrBefore=${endDate+23h}", + new EncounterDatetimeConverter()); + dsd.addColumn("Name", nameDef, ""); + dsd.addColumn("Sex", new GenderDataDefinition(), "", null); + dsd.addColumn("DOB", new BirthdateDataDefinition(), "", new BirthdateConverter("yyyy-MM-dd")); + dsd.addColumn("age", new AgeDataDefinition(), ""); + dsd.addColumn("village", getAddress(), "", null); + dsd.addColumn("telephone", new PersonAttributeDataDefinition(personAttributeType), "", + null); + return dsd; + + } + + + private DataDefinition getEncounterDate() { + EncounterType labEncounter = Context.getEncounterService().getEncounterTypeByUuid( + "17a381d1-7e29-406a-b782-aa903b963c28"); + EncountersForPatientDataDefinition dsd = new EncountersForPatientDataDefinition(); + dsd.addParameter(new Parameter("onOrAfter", "After Date", Date.class)); + dsd.addParameter(new Parameter("onOrBefore", "Before Date", Date.class)); + dsd.setTypes(Arrays.asList(labEncounter)); + dsd.setWhich(TimeQualifier.LAST); + return dsd; + } + + private CohortDefinition getLabOrderEncounter() { + EncounterType labEncounter = Context.getEncounterService().getEncounterTypeByUuid( + "17a381d1-7e29-406a-b782-aa903b963c28"); + SqlCohortDefinition sqlEncounterQuery = new SqlCohortDefinition(); + sqlEncounterQuery.setName("Get unique lab encounter types"); + sqlEncounterQuery.addParameter(new Parameter("startDate", "Start Date", Date.class)); + sqlEncounterQuery.addParameter(new Parameter("endDate", "End Date", Date.class)); + sqlEncounterQuery + .setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id=e.patient_id " + + " WHERE e.encounter_datetime BETWEEN :startDate AND :endDate AND e.voided=0 AND p.voided = 0 " + + " AND e.encounter_type IN(" + labEncounter.getEncounterTypeId() + ")"); + return sqlEncounterQuery; + } + + public static DataDefinition getAddress() { + SqlPatientDataDefinition sqlPdfn = new SqlPatientDataDefinition(); + sqlPdfn.setName("Address"); + sqlPdfn.setQuery("SELECT p.person_id, REPLACE(CONCAT_WS(' ',pa.address1,pa.address2,pa.city_village,pa.address3,pa.address5,pa.address6), ',','') AS address FROM person p " + + " INNER JOIN person_address pa ON p.person_id=pa.person_id "); + return sqlPdfn; + } +} \ No newline at end of file diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH706LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH706LabReportBuilder.java new file mode 100644 index 0000000000..0741be2b87 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH706LabReportBuilder.java @@ -0,0 +1,72 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyaemr.reporting.library.MOH706.Moh706LabCohortLibrary; +import org.openmrs.module.kenyaemr.reporting.library.MOH706.Moh706IndicatorLibrary; +import org.openmrs.module.reporting.dataset.definition.CohortIndicatorDataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +import static org.openmrs.module.kenyacore.report.ReportUtils.map; + +@Component +@Builds({ "kenyaemr.ehrReports.706.report" }) +public class SetupMOH706LabReportBuilder extends AbstractReportBuilder { + + + private final Moh706IndicatorLibrary moh706IndicatorLibrary; + + @Autowired + public SetupMOH706LabReportBuilder(Moh706LabCohortLibrary moh706CohortLibrary, Moh706IndicatorLibrary moh706IndicatorLibrary) { + this.moh706IndicatorLibrary = moh706IndicatorLibrary; + } + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, + ReportDefinition reportDefinition) { + return Arrays.asList(map(getMoh706LabDatasetDefinition(), + "startDate=${startDate},endDate=${endDate+23h}")); + } + + private DataSetDefinition getMoh706LabDatasetDefinition() { + CohortIndicatorDataSetDefinition cohortDsd = new CohortIndicatorDataSetDefinition(); + cohortDsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cohortDsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + cohortDsd.setName("MOH706"); + cohortDsd.setDescription("MOH 706 for the lab"); + + //URINE ANALYSIS + cohortDsd.addColumn("UAGL", "1.2 Glucose", + ReportUtils.map(moh706IndicatorLibrary.getAllUrineAnalysisGlucoseTestsPositives(), "startDate=${startDate},endDate=${endDate}"), ""); + + return cohortDsd; + } + +} + diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java new file mode 100644 index 0000000000..c00812ffc3 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java @@ -0,0 +1,46 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter; + +import org.openmrs.Encounter; +import org.openmrs.Obs; +import org.openmrs.module.reporting.data.converter.DataConverter; + +import java.text.Format; +import java.text.SimpleDateFormat; +import java.util.Date; + +public class EncounterDatetimeConverter implements DataConverter { + + public Object convert(Object original) { + Encounter encounter = (Encounter) original; + + if (encounter == null) { + return null; + } else if (encounter.getDateCreated() != null) { + return formatDates(encounter.getDateCreated(), "dd-MM-yyyy HH:mm:ss"); + } + return null; + } + + public Class getInputDataType() { + return Encounter.class; + } + + public Class getDataType() { + return Object.class; + } + + public static String formatDates(Date date, String format) { + Format formatter = new SimpleDateFormat(format); + String s = formatter.format(date); + return s; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706IndicatorLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706IndicatorLibrary.java new file mode 100644 index 0000000000..60fa731136 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706IndicatorLibrary.java @@ -0,0 +1,32 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.library.MOH706; + +import org.openmrs.module.reporting.indicator.CohortIndicator; +import org.springframework.stereotype.Component; + +import static org.openmrs.module.kenyacore.report.ReportUtils.map; +import static org.openmrs.module.kenyaemr.reporting.MohReportUtils.ReportingUtils.cohortIndicator; + +@Component +public class Moh706IndicatorLibrary { + private final Moh706LabCohortLibrary moh706LabCohortLibrary; + + public Moh706IndicatorLibrary(Moh706LabCohortLibrary moh706LabCohortLibrary) { + this.moh706LabCohortLibrary = moh706LabCohortLibrary; + } + + public CohortIndicator getAllUrineAnalysisGlucoseTestsPositives() { + return cohortIndicator( + "All patients who have urinalysis glucose", + map(moh706LabCohortLibrary.getAllUrineAnalysisGlucoseTestsPositives(), + "startDate=${startDate},endDate=${endDate}")); + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java new file mode 100644 index 0000000000..7791f69065 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java @@ -0,0 +1,38 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.library.MOH706; + +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.springframework.stereotype.Component; + +import java.util.Date; + +@Component +public class Moh706LabCohortLibrary { + + public CohortDefinition getAllUrineAnalysisGlucoseTestsPositives() { + SqlCohortDefinition sql = new SqlCohortDefinition(); + sql.setName("Get urine analysis patients - glucose"); + sql.addParameter(new Parameter("startDate", "Start Date", Date.class)); + sql.addParameter(new Parameter("endDate", "End Date", Date.class)); + sql.setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id = e.patient_id INNER JOIN obs o ON e.encounter_id = o.encounter_id " + + " WHERE p.voided=0 AND e.voided = 0 AND o.voided = 0 AND o.concept_id in (159734) AND o.value_coded IN (703,1874,1362,1363,1364,1365) " + + " AND e.encounter_datetime BETWEEN :startDate AND :endDate " + + " UNION " + + " SELECT p.patient_id FROM patient p INNER JOIN encounter e on p.patient_id = e.patient_id INNER JOIN obs o ON e.encounter_id = o.encounter_id " + + " WHERE p.voided=0 AND e.voided = 0 AND o.voided = 0 AND o.concept_id in (159733) AND o.value_numeric IS NOT NULL " + + " AND e.encounter_datetime BETWEEN :startDate AND :endDate " + + ); + return sql; + } +} diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 93cdbf3cd5..8d7fa48762 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -98,6 +98,8 @@ + + @@ -981,5 +983,27 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/omod/src/main/webapp/resources/reports/MOH240.xls b/omod/src/main/webapp/resources/reports/MOH240.xls new file mode 100644 index 0000000000000000000000000000000000000000..4f45cb3180980ec2ca7250048cf056aab6a8bd12 GIT binary patch literal 50688 zcmeHw2S60b(r^zsh=2qW$_j`e85P9@N{}oPlwbe}f`XtRX2qPv98vUC%sHNs(=%bh zd}7XGI5C}B{;KKi4Z|+yz4yNV{r{%}y|Z0iU0qdOT^**Ux8$7Ro#k8W+!bl55WI@` zPvYB_sFH6L+C+oK`A-f$d$70xA>H9S!oF2hR3JDW0(|{>{ePqZZ7rxs4Rx|l?~LYe zxg61e3cpKK$QHHV;FFMh5W12~qDi>EB$f0fy+{Vhf^VY#*{eOzLp+B(6oHYo;WWV3 zRKO~0^L*9dKaKd$%{LC%%urIeNBMao)4St@Eqho`To+;Uzs%JQP#w3SlEyvkFl&a0xVTwctp zrG)4Dqy+R=F_Kc|pf)>`B&f$ksMEd>ur?8+nwW3J7<*)DLlH(DLNOFu6irpmp=@47 z)a#3Fr79U{ozwCa(LkG5slsMFtFS2ABC7Ek1~jEDLR`C5V(=U)!B7L@ZnPehV93;T z6&O|1K>M#6!~SnEZh$UpQj4pC55vF35VylBXc+u04dcJ9m$rXPLu{K>@X_o)Ktt?T zswl;uJ2$sZ|w1SS&0U+|w z`fAN!&{RtidMpV8ACpMBDaqIzdfD2QGde<9%1WbY_0`&eqpPnxYtWr58}bg(2Dr?!;9E=x*Ogew z)ru`&D>h(Mvhc2;DBio?2<}e*qjo5fcO#Hh;jKRSW@~%R} z-|0t@2;tz@0S*Jf!tOX|9A0<-f8%>nP!~nG!lwZ?-)DBKTyNGXCo-q3_JY9U;4Xy(`n3J&$i) z3Ex2ppH!}f4F3{|_Y^tTVtRI9@HvKths+O|6E$s~4uOt^_Zv7@;V)%!QG7eV;rY)u zG&I#U)g@}QTpI=l`txm(dZ(r4DdhjDXHnd{KMA#WIe7Rt0cP9xlS!sQ9Az80BDEO-BCz|d2MzNFki@^mV})wK1H z4&{gEQ;r`h7g(1-UIHC9U#`78eQl|{a&%eI0p+ugFrt7^)uB7<&we;3<>H-4A+z3i}@GBtHXGM!v&_+@^a}TK7sLrpdKao z!x$Y}FA{vFe=+|Q4$2hJ0m?wXGMvZfl))?WqtEys2IP2Sr1}B!01y%QuMFpa4l=-B zGWeW`f)v3;>gv^a?F#TkFq2XUSLdOuzK|rxiI5-hMd=tqjMif$sfI=)u3ud8Qv^5S z;qW=g!a}xv8S`*xr!C~+CJ4v&D}bBA(30Z-K1?1T&;bt0ahB)5CJ)DQ5d$yEKh%_% zPaY_NV~onH9tt)Il2y`MD4FM+EWE5XAGaNP0&ZMOOJ=K7`;~q z6H=*61gn}6IUS^k2w1k{QbGjnf)R0TBFp4I-~^3`5y6f{di?_;&~;0QoDNdN$#;l@ zX2>{6O8ys#pv^KOu1(P6v+Ey-gNDh7$n=5${Rc$QDjAW}L5eu}4xM0^&WON@CB)eE z4>-Z`g(~<@V;lpJid>F={Dp*&2*N%MClZ(vW5dA+E8zr(|BQ&(4~TR910o_BBBz5Caq=DFG>{>Zl>9Fe0Y5Dxjv^v}Ai0$2 z1c%H_C#Qp81SYwdPQF8&hB8EwlK({_)-pt3q$A-&Y9}%vWmVirLWH;2XZaHAL~#(7 zpY*pDYa=0oj{0BZ#8yIt=j8a=%A61l2~0`tG?oxiB}vJOTCsxKi4^oZI7?Fl7l8ea zykfCs3t?4M`%D30dmyI?o}Vh#!^1-&j*bEtGJvX(#bd5T7KR-p;=O+TT0)Oio-Cdc zmEoM48FW(ece!kA>TFeaHSj7e5eaaux8EQL_D&cJ|F zwIfH4lw@EG$if%{vM|PgEKI_{>4g${Qq|^2U}B~m1X^(crc@+e8x4nDN~Caw^#3_2 z6dA~O^hZsADQX~SWyfAtZkX^`RHzE!Sgt8ggtngw4@E9QfqI1cYz9QAK9LjIic(_R zZZf6Hw`A686_hGuy#-H%4nvcY6^+{z_!J@Q?h@9qLzZk&Q<{<&LtJIv@FOhnISaCkqQkG0-Is_ z!-EFgA%fRz6%&{%!?Oz61QBtCgqp+<948mb?=nb$&%Pv^&?IwMQqUuu8$5h#2p|Ut z?MMRrQ6x7g*jc`CwWbw%@UU7LK4rxm9$Es~rb^K&lWhWImE$wA##M3KOaZsfRd9=q z9TjH;kG5cwkx+0ef#5C`ngZo8u1u>ERuNZDRS3(tGKWWQphH(BI#fi~5y&dXXWZ7R zN{3Aq=+M3j9irEzI;<_!A#y0xp@Tq&Qeo>V%7c zUOQW?7m++CsK&*Z1!Bz-0I@-vF3ZJD_UtSy)oeDL6kbj=5*(50;n<#$Yle$4B)4- zGdBfit{9h+(<4n#{tl2mgEuUJ{9GN7pQSQEnko_mYd|PS4F!TQ%{L;=U_b|g_`o86 zCNBnV8_fnj`onG$5g1Vtq+|ox7V`R0X;xtfLj7Gn#;uzoZm}5(xiwJ0EprNLqS5a(UkT=j`NZC9xva2juj0-I9R=i3!ar`gm<%Un(1svc}$f}J~E zK!5$g447?6HRveNpl(Gqq70jnZk?+Qq-&Bkiu8xwico)s3iQXi7B$i~R~5+BhV5TE zSnDYuWCG~}^(-BUG!}4KvqA?_D`Qd)&537Kj#iOJu&Kh)GP_hG?Q+$DQ#H~)SF0jH z%akO@cv^g{K(BdPOZDc-q#!gjP*n{dxx(i8kb9nZXBW<`vQv`Mlbn>};A16bh%6{mhQq zr`eXUHtxJBy0X*ma)X!lH@p98)w|7<4qcvHd~bWt z=b4?gj!KKK91199+j*Vyu?--7IXpK&3UD^I7g&HWbt5N*8chhe>U*vi0oxCe?Y{K(V!z^}%9?x4Dw7ap1p=XmC^P?vl zeQ--|?OUV!$CWkuXR8cJh`F|=^WwR+X8!)ZhVhuv>-Sx>w;bxW=0$kP62IkjREjkN zY`Y&Fe{oU!iN8Jx`?H>9>8s@vW-O`p%ByUsv9`8(%Mp_tW#P%ZcSIqJ||w3 z^>Cc8JNBa9%|-=Ni$k8h^F8ou_|vPTahHByJ0H51G4E4T*i<{U>Gq?SuKkhz@~=AX zS4dJ`^_vGeXKYWttM_%Wo!iT%mkP#RT^2NQxcZ^pSJjI;8y9AD-QcL zl0H1rIT(4f>~gGW_c0a$v&wY#mZtR0nR0&K43`z3Lk8{Zbh}UbgW{StC&s((i>R3} z@5F##O;>16eaU%pwzI5WJ!pM2!PxU#j$uQ~ko~HzlU6>}NRLk(c5ac%)(b0#y!9^f zZ`|rzBiqrnx0ZbRbhP8<9sY$&ej+Ehnm^^ zuD-wR(70U3(cxV46@RGIcl8}udtl2ug-=hFmuJoky0PTV!b$talx$u9(lKB| z$zQ!}GaL0=``q^r*EbV?@%}|SWXs!2&E1av;j;Jh*r*Y0thipIr>z=TFlgVz7TsK} zEbV5Rw*PE3e$VM{8tvCO+%~)QCa3m*X?rK+rCSAQdDlCp@3Qm8pn7MlCUT?N8XRLa z@ssQQ=~3N}pDw=rTmE#zEB30t_kA@WXjYSxt)AUgO&|EBUP%7zULz-MxO(^77~`8> z+aG8h*%0N>$-LGlRjH=)}#}W9mmdh z<@WjBe12(TdA6zfHs|XDuJrCbVd2aPp8d~vPoMK*OTvuWd#}YjUm5VOv~<#~SEd>^ z*LJ%cesbEa=f!yM^(he{7e4pNTy#XM&9;F(eXhqJHCc5~>+)oixR}}|Q4I!f+4S_o zw3ZWd4bm1H99=#+-1Mo%-j)kqx?XsepPJ-pQoY&hYEj;MH>P!K)w(k1KOwNBojzTx_m88MG+yF57Pd^)Au;MpcMr!_m_kfjg> zJKZMW-t^7mdyF4ty~t}v`c6I3*!NfVxRn%tPBv4!S>3gMUO&;9Ep;7=FJ7~A9(K&+ z?BwN3A%NQ@c`47frHtnQ-C3{_D@Tqk(uWi}& zbg9G2*1cvt`XxDL!!PR!7a!eFf3oYA2dAc(3_h~%@X=7mGdcyG-n%~BrMoFMrqP^8 z6|?T2&UG4au9HEvi>6DW3vH)#Nsa24bF25&={<9MEy!7F5x-@`_RxI~c5m}-v2V;V z-N+F$V$a5;)T#L_;6>{2e(|@Qx13iM<<-xBcs3>Hu_$a%c(m;W%P8aDMy|J6VB~tp z@`O|Sdv{tlZ{Tw8V)PK(xXjj;CnttlJpL5+`}=!w&yJ~8w=0==xY+pe(-HlShOOVc zX8M#ByH71!cld3?fPQCGKJ~u*WtRG-v`($t{Wfey|EcW_zvi|ehp5Hxq^^YKqSo-Ro4HzvMeQE6}UQCXk;*W~@xa)e5kpr{Q@wkT0KCQ7UU%p@4=G&$zAMeh2EHYiRPUFZu zFOO3xcXQet8aevpxRt9LYQ+x99KT}d^_@NThn`>2`ix86Rermi=ho1lc&+39uubg~ z&!0575a4sYX-}(>t7rD>an*dm(%N_2f-b%@4ZGSrZd2ZxlNH;KIGUDD^?lKq`Gp%nAp*IFfRi5opVqxlPyUNZx2f~~E> zY#dz{^snA1V0M1VCn_8^M>-@lCMPa)W`%3)Y4;a4e)nabgQL6(z4TfGOwdaK{ zs@VRuMV(2#oXkzTee2XN>)JSVn_rHdzGJy~U65LF?B2b<-|{z z%Jk$P+g3+@ejjupqWv0?X`21D`@cRO)OFMQ`^$1_&3+S67TG;zT;lNiYu3O0{K$6S z<;E_ds$&{$c+1W1eszA$hmQ=LZOaNH%9gs{s69I^&vNArO{=v#+Db*EpKVCI?Pi`pfV7Gbfd7`sL24F^dE5g*`a-;ZviPdT%wyX3xzU;IPO2Q&?}UlylFX zdL9Q2H4*bjN_P0Ij&AYaF5|UN0c*&B2+Y3$Bboe&vxM$tGki~f+eU3aC zb6WGPb7|n}z`ts(@mrlW&}M-7!sJagtF11pTm6#ry5|vlJ@RAnLI#GH9ZOi=-8FjA zk+lUI%;NP{bAeWGj(b@)nrU{;GUfI5IJMwz=Lh?#QSXsu=MJGs)o*F_h_rkXGC;KR{A1hONkj4<N;6vT^GWe#+hd`NMb5C(Mc6Is5msnE_t8 zvHI6VW+AE@`o&)I@u-seUd zlzsMXy!y($;uE2N93N_P^irpR$GfHuQ`s_al~LRa-3|_pPja?jUhU^#|E&GId1--1 z=aila)AWvv=w5swYq$;wy7iX(%B#&ktXy1JBkkGEiEDlCFZgyT($u?kWbCDiDe9+= ztn2!v&>O9>aXqfd2>+Gnjz!+AND*lb?vismugwV z608Hy-927?)3fmt*E&rc@@QJMxwDDg?a&KLC)&PgzOc0a-R#RJ=j?oPq&Pgt)Y>w5 z$w2D`QMbll+!wv~&Y6uZf=-9b>lw2s`}bqk_Ae6Gw0<$S_JxP9+=F$qnoPGzH=aDg zAuIO&(QQdhwq|z@thH~-uPUd{o=)l?nK0$Uq*L?H4p~&EAf$A`ouK5k_I;0KpUf+p z=5IFV#;?xK4+}~>oikUAJ2PU_cJ;tkH`%M#hB>R6 zwCFWz-7UjLO%J=*KQ=i!=F)*3Lo$P+8-^tlyIL#uqz=*OGbws^{jiX%x+y>#vrrzP#>3%|mHtSFYWdlezHDmMhQxy0|W~x|@e{TG^x?BMR8pD?OOuVc!I&!MJ_*-WtA`B>xi zNB!AvpU=s*I-2lq-M~o&jq47%+u7mrtn0mIWtY`UwVQlg<#T#|MVEdHE*`iXY191b zthZ$&@Ach0dd_w8`9sYkEt>z*Jti{!Zs%EVi>?1G9k94_Mt()YON~d9dmNdT?PK4{ ze@NEF^g9~c$EUyC>GbZKsOy*dx0BZ$Zs60ZMeBZvcSgs&&zm=-X6y0uSIt#zwP*3l zT5983+}hGB`ha zRo(Z2Y3IVG)sveC_NZ-~wR2AE)|nS~L_T}EMd$eaGuM2Kj#B8jd^p$fg|F)86I!JQPxeUJwPtD3o6hsxX7nU+6FzU;HL~}GFN0$* zntyBP<#XR}+#h@1?Ot|y)ANpp?Se0Nnj61k+>XoTgQC*EUem3&a$fPOiq7p_8vdEP zKPuy^Ra91F$HoI16rAlF-nI3Z^KrU1<4szO&MG?;kz`l6&v$+M*cNyHT>mlF{p~KD z)C)UT#r*Ng;rS@P^&$1sZ~Zx-JmKhrfK>BT{XS1Wp38sS|LM-bi!=UA)hQVaY5LuuyF(`&`7mzX`ZBeQ9%q*CT)%FJb)nsk7^4Hv|2$~kGPQJVH@(G= zn{}IAvbw{j!484@&R#xyUj3JC%crOA>3RFlOBb3ZTG!MIe(7I2^-Ry(_IUR0Rw z=A^djij{BZhXA8CA$8ky_rGYpxJ$n6@EbYp`{^F@X%(!0bFhiw#;1MjhW9fp8`tze zgMuk}n`gWp5_I&+tb4ELHtjYq=;Mw>7B_D$-?zHk>0eGg44WJfY}+}#XTO4?ruIF@ zUXNLRAtEh6r%S!yjG$vp=hRxU_CV7Y1_Ra)(Jkww*VHdI?NqRD$7MshZQYn-bL#$p zQ`UQr?22C0_KA+|>2@vsYkxkSq-pQJFTKIoapuLYX2;z>ba7tX;nzEEBWxahPTh0& z@}<<(soNX17(S?f(AeuKH>}R=ose2;UA*PiiiD@v|ES})IQo-kT+Juz?w5>Px2)q5 z<2KJHr(A!LA3@G9sDJJ@t9p(6TEFk~-t}CTpWTu5#5daT zK*cHZjU&J9>v3jr@ubZ6-L|;oF-!ku3I_Tk=pm*F4Nr=GCh(0A@?+mTCpyKaejU-0a4X=rfQrq}1%+}yt9 zK#O)3-6n*)TZRDSYH_N1L2puK%a))J-{acP}ejT$CB%yROxod&kQBgEtf1 zOYv=AG>hD5SMOnPpS_yZd+l^y`uf6KgC@WEXe}+-G4agQGm}l0baa0)L-)2tOw7)? z9WI@;wF~~E*0#fY3Lm=nUX}AGWqyjEkz0}5hIh6{yDYE&t8KvX)Ex$nhuhA5r&EY=|2F@HYc5_o3=jmsbM_uzi9%oo)Qfh1QaQpV? zr}w)Jiu+^~>b-YDQeoqwBIgNYagEO-+V&bjrB{om3bd` zUWxrfCA)CBMXx*FyE?8&)gD!--r~Rr&E&Yrg$Y|;uente6Q$j~-&dV9&#i}i>IUd- zC_VYE&BQfH6H59R);kz&U8`OESJfLe^G3DX*yY4>&RJh)HLbm-8!wTv&bi;;m)!X%iJapN!X%& zNqfzkKWdkj4c;=Y;9UH>xbTusWn(72Jhr}en0gJ>u8P~ zIqALi+r_o#m2J*9bs9F6{yKgFu1eEhIX$M&3Y(ZIDm&MhKeRkJo&uZy=lQPSpl z=i4p~JNYJ<=r(a*-oy26%X(pJwd&rw?2}`$V9W5pM{ln_`{Rps^1W+OCOvvKHw@k3 z-n~KWmEBuo`VAg+^TQ4EF8wl!FFZb9JEn`u?oB>3zFth_?81}J4nDAHl-7z-?pkl> zO}#>%Tv2mD$tZFWs%)DSu2tag&IGjQIB&?;>At zy7{d(O4c!(>4*=#a=1_Hb<%$?)myOBslg8A7hoqy6t`V^0DZAgPzX$oM9NCVuP zhSP6+@-Mpsz(zb_wgn{NWERQGPOf3c4$i6v00%gKZ;6{E!g(eg`02JZ!GLYTU>x{D zp$Wh%N<;Iy5)RL8NdSUKj_yNn1R>=S9U(Oy76+05m+m_Ko;*kuC-au{iT_~GWfJfU z&+mhQT3^`bg1c9H0kAJ{AQ1)k+w=!!M35Pkgn2+lOMZG!lf1T zr$SgpTknTwII~iGr0LT&D@) z@mVT|8*5>s3{xDu|BDuhb%{rwAyHZ>A~KNIQD1ZnRXWk%FOHgGn zd`64^Y{5D~747jW`I2uKy}7v&Fu`cLPrqCXsY$x#$EbKK;O zcV;|P6@6vUsi{$dND@_@%qv|4DnONE<)g8n7eZxKR!x=!gQ|j63$Ep1iI@v%3)xm= zoFF`SOXjes3{v4b5stMGc_FZ^V4Yx1^@KJpty4vX(7jLC{BSQ1)-w79Coop5DTHQ# zMP*1@AZ>9}EvWCxDnRFfJAcu;fC%11pH_o|j5UfNRVoU&K&&Tb7*dAiwcdy~6?BkT zhgchUz@momG}EnCa}UqfQWnO zusGC|AK>`F9~R28vMz~LwLH@zLO=lq@T#8)DgsLf?@N6y^H9-z8U3M@g_YT0WU)KQ z2F}r)q1sW+=$X+<<9QeUcZ{IsGI{IEg8Vcm>JW8?Ys&+~Y1qhQt0zmQn-Gbu7^^-V za!|!coiKWL)Hmad(jP1lkhPq2s3UAiDL?`Fr~O9=_{Ru{Hv)gy2=4Ud3Uuk{j9K1B z(8)G}G%v`FJ!vAZ;^EMDMR_9Ea z$Wkx_*7)fwBPcRs)K?}In=-?I!u`-+b>taGQW0kP1*qccW*((_NL<3}5pWdJdm)j09pp={y6x<77`#D8+R@VAJkQaL;%#Q|0%>>PX))dxA8q`!epGsXRVzLJ( zSTc^^&|gs}KpisH7>b<%J);BU&xF!JumDm6eJOpUK@AiekvHT<1)+~aC1#O4^jAWl z2vC%{R9Yjlt`k{H0p`%q@Ocfk7$ofkck2Jqtzw0vY0xeeZM!GHSgXXgQMu1yZI{+G z8WJ5vp?%QNE((F-$hN60=mOF~5vas;J_TE=)PbXoR2~dq1@z_p0)1nOl?BQSL_ZeF zS0Gh-1bjy)nJtkf8ZCqlHW_PJU-C%uYL)LUg+5fCWmGU)AGH#+KXi>$8PYbYOa#V} zu;&8Ng1}K%;yfIbhb6G_546%S9)QxLBcU~p4D|sd>d9Dr$Y*5(HYxy)1#n(Nw?o@Q z3_UPXNP<1=)W>5QnradVm_R$!U_4gPi?1Kqu{0A)$Zjx7MD;~Sg4l&fwM7|a8WrjU zwTZ^b(lH;JEE`5)y|5OD^^0RL+Eh?6m?F)q$k0INA+S}G^9M{Ev!H`Q6PD!=>GlKF zr1BP&2*YVWm-@S8eu%>yGi8F+jFfF^j5bgJPVlJE$lmuBig{2Np@R4!PDiW}>7YCd z*vA%!hAA{s>|z3`ys}-TR7=uvcjd9YuyE8cHg)-SfJHb0^j{inhr-4P8BxOJL=o0- zz<*j0VFCZL7@cq+AnWkyuoinVI&AY7HezNfY+T2TguxX#daNPrmT4_8J7rc(`z1Dp zV04rl9dAluRq4MSm>>@S21Bi5E&F_*{#nt=%m>Fws1;=G-!h(Xe3vNS#!lU0G=cQUjLM_U8EspLHLV1Pj z54dDWmx(fjDnx;BFiHonI0(fJMRdx6?GoECcE^-a#wweHcZ52^28IpA5AG-uLPWr} z{0gU32xL-L#P7-Z{Q`obqwpP3FDOIS#wJ!499Nj-SwY>g=^Cm9MWI6^gd#Sb3*#qx zQ)&ThR#vq&Q5%t8ZbXVUK*tdVMc5lkeK;NW&;};oIOTl^>z))fS*hit_e$jLh>bMG zO)eTwq-MP)>H-@yj<#4wgf@+wecxSES& zLRtuGva(&4bgT$98-vTy;ee0RAWWf)8Uv`GryVu@WTe=fNs3&RlqkQfl(cbRT_*zL zxP&7+r=#_aDv-{lWNn7=ph%yzp;5PtmWFnQceE@l4;vo#OgLkp?v{3`j(GZgRqLf_ zMszV08bJ`y=*e4_1cWPG4lv30hlOffwC1Nom8bb3pjx)j3g_TsYofmVd*>E%V`lk* zCTa|)@n}A@Gm-1r(XRfkXRp+=dhr^hv+hJi{fMkUZK?4J{jiSM4=Z+VzOcARy)Zg3 zdB=xo-|wPekx$I5k-toB=CO-RAAYd&a^=wkVYF;bLpsJ(Ci%8_GjS%6CyiUh!L zpgIT$z&qwrs_6TrOG}ox8X!%qydWef-WzPH9lYghi7r^0&l~zSLE-q&q%#2Fc?z{n z)-J=qI&koaP5}owSSC&!u>1|Y z{ScF`3T`i^7j9E+2%En*!q!eb*s#jMqOS_L2z~y$A-{zckDmFm_SJ>po}nH+cz9zT zZpVL)<{`O&!>)!ZYVft3jDnQk)UhlR2xEBcvHYjC1pAIhBbo0u@clxg;qd>!!&U~q z98OQw0MaKUf${n@SIGIk0X5x zV`*FkFmqg_aXc7kp^-GM4v*9h+e+gaFtdrf zPT>wN&^=((qk;d=RJ4!%zo87;ZL({lxeQcZ$cK6vgH7C)s(5VOTeW8^k9uJly^Z z3&K2%;qiONxo>EXxq1x#{k3D}kWv;?M;AM;)TKRkzHTeO6)Fgt+VS}?uD>mX5q zak>h`Wd8>K^b|jk2B@FF(f?0B@niZ2CN;GLoP_+e1g4W8^G+=RXZk-a;m5Q9CN;GL zT;KU=2}~zH=ABvsuIl}?gdfuanAFq~a4q+zB`}@*n0IOkxPt%F5`IhzU{X^{z~?qU zErIFe$GlTZz^8RTE#b$s046nEcf@D3blnklxxh9Ed`gAuj@4n^F;(ubC*b}3`%yGN z{RBR(|LG@wlsZ=|C$$9Jqw&)c6l>^5fl^DrojE@(;YX=+#d4x0=)jAx)Dk%Uxn&I) zG4zH2TcF^1W(}eWuP`1Y-?$p^M6-|h@8>QD#rpi;3Z-^}d-Tv_P&+Z=?F4r|pq&^= z?8NA&oq(2p%s*-;xNlQxC-|esz4?6+xGMsGmpKh~^5X2|8)pn~+&7MYKYhxNWi!-P za6hlqR!n$X!Dr*>Q%rcDLcd|(gZ5(rw$mGSelrXWzIXb-;ct)j`DsHxnBSo`g!{jx zHe|}%5I##qdocwYN{2TAsJ)nizeyLv(T?!x3dPa@IIgfCBp*0au%+~$w)6wqQVo1v z99|*HfVY7%`A-erK5BwRWbyB?pf{=sZ<-7OOEHDh=;g7q0ItQS!0T^tLIu99MgQ<% zKP_?{a9oTfJPgKkIz;}J3R&E1#j%b(j?_n;L~9Eo>HJ z;7mqe_&Sp0!k;SFuMHey-wsz54{;ov2~+`JwTOo*p4FH;27CNbV~`j8nF4w!6~0J{ zuOQRQpqzi}1B&&6H-J*0>=I~iOCiy)95K4VkEWWyY(op=G>k(CyEH+@iV7`WQiQct zsX=z}KLX$hG5j@kyr#g9Elfd$h_6JzUk0Vcz)t;os2x*23kQ`3-!vCOvX%Bj5&*72 z4gNSNxH`T82=^NNq(>8mv^c26pF+n$izcv#9g-S<$Cr`kB9bKde6B;QL_)YyRin53|FgB&^}RI%{~%s~wmoeGAzheiZ`Wu1o}|HGkTo zHKfYFO2$Eo7D@Zf6#j4Vuaeo|+hZ3ldf=;M^t$u6uaZ%`lK;S~WDj)pp+=>zl7-nz zP%@Is(>4y`jfu;rAlg{eFH9ir3=kjm9*kv?6oY!S0#3sL>LTP zj1Y!Ri@}PxaQ^ip9M&)x%ZmdUAq=%Cgkc9JgrQLhVc3NUVfeUE2*U?QLKr?m5W;Zb zSO`P6B81^$k`RUsUI@b}q!5PALkL6L6T+~Y7sBv0FCh$H^Af`FH7_9yU-J^e@P$Aj z41euX2&>1#W=U)V2N8Hhz^k2fNP#AThk39V2QRLoHW3r;vkN#*8bh0k0+-5S92|Cu zxEezL}O@aQP6~03^7qth>07_qrn%^7}{S9bW|+Hky!lc6dqF@Fk=a71oNR) zMuF31F{FuFplL`G<;NJ>Y7{tA7DG&IMKldD&BZaa;3#nZG!0(rg|r5em7+PNx^anH_oFo94?Ikh9^b*I=GNa(- zbczXG4Pg36Vu*=D3giW?HVR((W--L{lf)3yUmQb=j)H!gV#2v#fEg%>A!d*`hSnYh zXQ5C`9LRNr*Tq>3F*}N5*b?xZU7Ci2xUQs=B!-w_;uyA)D0pF>V&b5#JG5~YQ-L?j zBgHXnK~d1gX&M}m0W`ZvVn{Pe9K+TX1#yZACqn{ej3kDbvEmrEyeLSem}Wd?H%SaJ zyF(0@aIsa!!MP0_3^Ci1v(TuW;n8p7f9VegSO=+R1FEQNyc7+v+Cj-2_$WA96EJX? z1?~jDa&U)l91gRH*1tJ0La&DdqsyEB>jR?};D8hljLw|K>jpnCV&DJCz^Dm-UHlIW zjE0*?2R`_Yy=@I?oPWn2epHJMoUrPy8A#(e6t-7o zIKG4b(Nr48ckmb1lg4$xU}hLf5rDNGY9IDY#vwyC#E0_TTorHhi`(poHq}Hb_6g(yh#S0IB=*-Y_P8< zMVt@sSn<2BWcYwB(HEQ)bs#t;@dY=*VyX~}m&DW{#=3Ky8~RGRY;4tml5Uwmod-#} zUYrF6!ErH+rZ!-*E)?fIfs$?#e|t1g(iP&l8G$fUWcl>tLYDG+_iW)=6`q1w6N%rI|oi%Q{<}fCo!DR1P#0 zEa@~k&~>n+W8^^Bog|$f8onP)S1C=HT0^Wi#Be7&!Ek#B?C7Kg6)xRRKNw!Cy6T>3Z-zi%%0lT6I1R z(}jOwU<)`5!exaJIBSOTs|s{{;20bDDM9##D>1D}8kfdh;nzG4LKjGgCj=bO;iafc z#x;*fXgk<7V|z!vsqkI13MvO30s>W4zpHBo{GZqV+Zw=SB~F9rFH*V88wk$5KI>mm zJ&?E5Z3zCtBzUQ!3M#|@?K}SqmwfqO&^z*c+yPdQkN?p9oB6**PpY4P$PX*`8>*Jq ztGs+X9FnBz6i*Ttm&fQpDo;lmm#4?lu>mWpPhmb`If8spAAEW2&XWhaUn;0R*_|-D zjGj3DrGm;Wy^HgS=|Vo9PezB`Svj=+A*Pfbqc5aG?YUC90=`*!fJgPkmqQ4ZmvX^> zis6(G#*g$aEr;>L?qYc*u_J0m zK4FH10C_*SV>w%ZIO>anD}P7Y!7!wy>)QB>P?d42%8Tcn;-QlC=zp3Q%f*4ICj_$T zbX>yQa~%JDcfiyJ!Ss7>pSak2=dW?d8?L}~f#FU#5ka8m^T$Jnj3>b2aY1+{9bUMq zq6Q2r(?6E0a{0{Ve8;*5v*&~U?LThv2AH}4hC25{S`bh+8wjXVtSbWuEg-;^>j@u7 z6LpB`c(FUlz#Z#&0o<`3mcbpa z+!JCr(!lcCfle}E$cJYW;yIgmL?m8F8*RWFAPJy3Jm-;~eUFdMXqjjeeh{O_g3_OE z=mS*fIgVI!cELpgYEX%bMuGaNGkhH{{NhC`jv zlb$J80ODmseFZ`)9;u0W*pZ~|fn)mXBUC=bXF5mQK)v8^Svf-OG=YG1#LwQ~ju)#B zWp|{3b?U+A!K1 z+A-QW+7z}g^sm@9V6Bd~rEf3ACWD`PQ~39O!ggc+F*)Pmd-HYMLNR^7ulvAABwOs;4K8))2k_KmdII=hSct%Lolz$UVFw>mTt%NYV)>EW_m+=i4D5gLf(2SA z4f{%VH2y#1rv-Qqru*+LAD^^zrDnqO@blxprvWsBf5-o$Eh+Njl!PBB{WyMy@H_ad#lIg+@$bXOQ@l6+9*V!~@jDfMG^YGqjCoHeMNBF@5aT|cstg~8`H;`y&xrhPA@2%T5cgns z0y-yS{jxf5C&!PaUTzs51k#sR#^t=07O54ECylhGzTDp_cnS77do*2Xs-8C`nQq9_ zk6yTT<@%LNPo_7Yxp48Z^u1TEz3%$uix;0nzMD6fGbh&Skt!aWJjeJ+vjtP}(!ak9 z&r?>U39L!UXMW)`ADHZE{FZO44Ex9b>iahkS5^@BCd9GCUHE_nx;47CFa}wJ&on*` zh=22+%T|P$hyO5&{#O5Xsz3F<__g2pCx3P4<;L&(Ce(lQhd#@?bmGHf{IE=~8-jnk ze}#6OKiY~|OeoCp1yttcjFtX^@mi6(2P5lRcsP!w2jhtT1R7JTF<+lLi4;%55nV%? zM=|0!4o_qJJ%P^*IxD}{wW%|4ygq~x&y=|%wLegIb`%vWJzv{Pl|EU}p4(xT-@e<) z@f+ysY^`r6M}9kBI){2@_+@ajE9m=iRp}keo zlh480wY~nvjq&;Ev+c@{&q?2$%Q;(aKA&v*{P?g#yRzjrHG^A`ey5&ny!G$)b_Far zi`kEH!y>hyAFck|;{*OhJ4veAb?`^(lKL_$xqMtu5Iyo^~@Q+ z)~>;A>5aoq@$?&B|C+?l6t90?x!X7tt3UnE_WIXo{Cc_O-)fNB{8)Z`PJiX`&*|U1 z_?+=In9DP#{(12^+zR4ZpUAC9eB_qIJ2$3h{|*+|kH#b@iE zKkl;qUKr1ES%3KdoPNyVlf+xQtiQI~t@YRT_#FN_jjz1;Z2j}cW48Xq;v@e=kJYn& z2fM0AYm3=cV~!ur<wsKo`;Lx%I2h+b@kM-krKVbcM%lN$Ul{0VV*@=}K`z0^l`h9zUS-)?O z&+;6~(_`gspQo(cTgK<VH{5+3< zPn_Sg>xzJX7N5U9%<|9oC)x2{81LgH-(NNFQ2*u~>Yt6LU(L?HS^tn9pRIrXI;tb5 z+}w3_M^3r<@f}Nk4zVe;-g+KWG=fh3>U6$&vW=-$NbWz=feBn|NejkVeUCZ%;7&i&&3bo z=8zW=uWGE18&Pab+))o-8`{I>7MoR(Ivwr|Tj8}~37b-j;g3Rfsv(3gl%#mH{0nho zsMI!u7?u0^bgJeH-;cPrGHG~Q{QWiY_uJ#|uZ_Ro8GpYk{{Fi7``z*P$KV5N!i`wY zTT`sr+YnBLkENQ>tIwzIeCtQ!rfw?yd}{eZ2)__h{$l+7%klRojr&kOs>Pes6`%uo_Mwb_?5Ssk^Yv z^i|k8x(@kpOmqR;PU$cU#NycLMLUO! z&?Bh~Qa_3`mvMXzVXHNoe-yiT-MHA1x(~S+%^bZU#Xfr|;q!9p zGeO2v=mqMbscqo*I!x<4dMzDB5it)Y?h5_dx*$L2Ns zML$BuX=F9az7DUEW~c0i0?r^de@wzy=?y2MYm39WSc0=kP-o`BiqOQ)LS9!ZF~r!M zSwtQOwx^=MpcU7Js$Fmz`6b_t{KsLKy8)kPMYZ^;@s?7@PAy%)v2452ktO}KIbybZ z@2y)pYYwciLPTLLWdis~j+Feq!D^ACgSDd_v4!-zS3#X_on4*v-3g94B)9{IIXkd_ zuhYm1%O;FFFnG?RO>a%0$I-zs=%!kf4-W5v; zXkjIg7paUVI*aV+aAIJK&!WBbPS@eR$oe{`E#hEJd2RGMet2~?jW9l&)ffom6XiqwKg&O+}Q)S{Vf;czCzD{*MMqhbCmbG9mlv5cCr+N{|Yig+Y; z(>;-wWiapH4MD$VVog|iUL@wsPp3f_dp#nzo@IktSs6BjhL}5UPea88w3_|F$@D7B zlocvPh0s8HX14u2s&NsuHm66MJIl^0+tyj-p;G%$LN}@DhmSR5eK^R4mmT#dG*zfu6Za}NmZtCXTPxo)m-t7`#*ls2`6$`%_ zi?g*3i^lxI_AeoL4l<3FvPT}rZ`#*Gs38|^J9@2iXcX&KpY%mNEt~Bn(Jg4Wg4Np7 z_G4d3uM<;iUYgM*m8Ik8>JGj{6^yecY zI)UPz_k6ggpba=byWoWr&Akx^%fS@S!WqenubffnaKM?xuOQkMP>kg4<)*YF!26IW zA7C;(*c9s$b_TET(q}#jD%(8fIe50+=zuuRnU8B}qDq{Ssp86km7;shx+f~I#(t_9k`cs}Z_=I&y zHAY`Dk=1V?~QBOcnYAoprA!j z@snJj?!q72*RRA}2F&GQ5wdX+bHcbG=v#7ESDm!0ck9cbtno)a!+zfgS(R8SG9{3FX9b3sVctUp`KX71$ z7576$tL+DOXq6vkt1yjoB#>za_QogrgUv@7XY)_D`zxCG*E2CK@( zEno&YfcbGLHnRfVin)>1x2AHPV*Z0p$A(h}wX(s~$=RMW8!N%;Jb@DEMQoqM2MNc* zF6iZ=YoFDhw9JCd*10;Re$Sd616=&vi6eGG&c5LS<1&hRG`t=~GXLJtl5Hz1eGlqK z6!eXBJ*+&t^UkD0E78&>)JR^6E0f%bl;vcnC#)sdVrpK8F3z?*%mGrQtJjd|6h3jK zUT6nAxa9}glV(mEQ8~NE`VJ-LyDS^%)0h$)vv$o|=QouL99GXxC7OMmFcX(4cVdx3 z_w}sXEc4s!_2AA8x%*ZP;X#}-=b!YOJ=hBKVsx1XQ$vW$mb+t5UPF7YvzFw`rPMhf zco=MLwYO~;8QXKWsuB%SX5!NB92S#2 zh|Xud*&GfN=CYHkTh=}~hbwLwJcwPCT#Mgnp77yyoz2Z}Me*I4>sfo}w7(TC#ZJ?0 zV&G{Ow>6V?alN*VF+}IW#S-^2ik>RF#nVCU;FW3fJdAmdR?ney4k}q19nur%6C2x{ zLg0k9ukko1*lNrc`CQ}en9$D9vI&z#sf`0$$RyUtEo7d#+blrS1%CD_5oH(lxAJe; zpJbajntZd9bEVHHg&x|rlphDmG)Na|=~=j2f7;Tuxx#snSOmcEE8)xw1XQ#Py0oFZ+ zjZ-jpbGa1dBy|px|D6c$<;=1(F3*x}MAA`6$iR!V*rtgdKvY&M-1Pcyk5$j+ig zF|MPI+~mvZqHX11U?ZaFb zOk8>43T!s64%SeGCt_u|M#^I4WW%i+UzsK6QZq4=xd6^XbV|89d$$~&-1^FbeTl)m zg`UkOx53=+1JeAeH=e_hQwYx`iVw(p;fdzpLw#7nJsAQ{6+D6GJ{39h+FyZ$iRDSELTsEzvKX*KACo4q{a~Wc%D_9lL-is|4is8SG^@>>AYL6A=Am$bU&vY(CcY7Us z7^TfA?q+dhbKr7>&{bR%YRnnt(Ad!Y>xsS!mc7uQ(_ios!($kiyi%K8y%srNb4Ir$ zw8MUcErPaC;BM}{7@@)qkGo@gp2WE0RX8_L`i7w_BMx3)>C>^%)p6sHnP`2sXU3(> z8-RwlAlTZDXa8B7jG(yW<9;5!KsrLd6dBOxJZ8ILcEQw66X+T&gN+6Bv|mxR1nf3m zM&e~xR)>F+s%?5d>}QiR$&z^kmW#zn;rWeWK82+=w>ePJof6zKi5a9Pf#=U1{oK1^ zQ^}@+X!FND_aVx0CWrO9T|lF2;R!uS=31qJI}J@VNn1GD8W8Jfj(PU*J!r{YagY|7 zVhY=4ryN^}Uu{A2YeO5(+lo#(g^77hunvh~yIZh+`XdeztEJojv|Aq?ZZ4Eu>nrRz zUYDjla+Q#~iNv95oBfxf3EHeRMcTPn_pJtn_LHlW=OEdg8$TOKqe$L9P?$5J%NCpm zDo(mMIiL%))x>$M5Q-Ax0OZeH&a}1TjLyV7ZMp5l%utwk#Bt9R;O1hHTj?Aq^m5#x z<8a~JVdvUU;z;3*JUA^jlcc9#i<5`lkH9sB?aarMI2s>IJ`a2ne%~fuI||FM_Z$SQ~$6FA-2HC(V1@_t@DRug-22 zU)s2ZaECG0xk;Mz`Py()V6bSx_aun zjWr~x(JgLIKJ4UdV<5Z8cmxf}UE^hMH}Na|Sj32w71xD=$m z+f2@-;r8Sh{JBH^9Gbz2hcl_I%GqPZydci`Z1D4}>O5M@vlXskxW~llf(sOai(8(A zMlV5Vb}7{T?kZwALO2?dz2(_B2G%iiFW}Cp9i|bRcsccC+rQ&9Vu@+$x1HGMf7_R& zW(-0z8EXhVS^{A%?n_$3xe9qY0^oYkR%@JLu;)Suq_rIai8%zU9IU#u7mf&?(b%cO zvs|lL9k%P?m7+E7*|J;a;9JG*;_1W;m<(qq z9FMj}felnrShmVgm?ok63Rk1q0=ST#BdCVM!Z3GympJY%{XlXEt;%@yBzVF`?x z05P7f*p>&K22)t6Z-C^AjA!vw7;l+)G*QTeoT9mhb0OA+ZTFVP%>O9;>l`mw_W7*BU);{O~N-7M$$$QyoX{ZM$D}s>+0;j9Jk5YBAcmjvcya@@^g_+u~YcsXYaUT!K|F6ir-aWrDv~G zaQyHbfrAXQuC=CvI4v;0#kKBVi55>0dMs3df*3axtZg<6m9O8wmYxZ`$ z=ZKn$uR52lpM2>>C(3gsjx?GQ7Yq-f;=ITF);GuB?$I=wl;Slh+Kb(s%pT!T{JSe8 zw=y`L@!RkJE((C9oy(~?@BFc65OT{b4BreVQ3$?hoNzsMCALp&yUA{P9ExW2n=GDbx#fO5v7~19%g{ zH_nFe3Dl`%WZGMZNbHX2jW;}m}>hgz; zwSzzMz>9zy0%a<^Ihq~*tZIvC_&3vkF6ZwO9x2Zr=LGV(vh3fb@Ji#mvVWK1++e&k z`*%4`L~`|4-~|42Imatmv7GX%;OFko(O->jy+7wTZ%+M4&fmOY|Nd0AygKX|-N-r4 z^WE|4?C}Pe!2LP(ZG;(wrtEP(NcOqP?BC7sxi@n1x4;A6sLdX4r3vKJw+-fSqb7U2 z9cPXo$!Tu~PJVLh&xg!%>)#c+!gx;k-IxS(kN4nW+l`$5=*8ObBRTEq!!C3#&wjjQ z>_*Pj!zT?7KAuzmLEJ@_dwd8FG&+w^f>DQmcf{Ycu*woX0vBLyiz&)u_{})} zF%&kV;dvbY7z#Ccaqw>2;@}w&H=d^tUIK9qd2z5S#0}-e!7FY{#{pcJ7v5!CUb>H= z(3PhT-Uo57&x@n0F03EC(l&i$H5B;Tvn&^QE5t43#gSkkKR!4*6yB7V4jvkD*Ye`v ztr3@B23^unn9fTFFOIkad2#UQh|6yqygTCZ+4FJELeB91+tOhsKwQ2ZV5UOc!Mt+$ z&YYp}$-Fq&EaLL}60_R2IM{ApT&jdt5O~=rhEfWZC={Q=h(}8mSEf+8LKO;ex5xBV zDO9acjY72w)hQJ3!j7diD6UbVCWV^e2fh@itQL3x{<9KWG5#&o##^GJCi)Nybtu%S zP?tj83iT+|t5Bap{R#~zlvZdk39*B$T+Rs|a<0kqEvR1#GXVBKV#v9s;Pu;M`%>`t zSWqYJXSAC2Fw^QxtAKT(QS?*l=P zcUvwM^U~-itdtt);GAnZ+@4Dj=jGLh{mIb=g&OgKR?E?(xMqb~6lztdO(FLarLyHx z*>b7;M5%0RcIb^TP_pdvdEWh8#Vvf9h7^@y%ift0IC0%P7 z!>*$OI=F_TWtM|)Zcb-hF54{!W8UuPy4`lm#kpLZ%TWg}&pDSPug5v(a`*|4bI#>B z5AitXTrSS#;#@Ay<>Fi}&gJ4@|p%B2_cklSvB=C}&kZiQ^OLVPPC zUoz+UqHA%VfEyhY=eEm-QaznBtq{`+F|80&KHKIwoGG6N@i=E%fipahbEd45$N9RU zLQE^fv_ecP#FXnH&+Btrg_u@|X@!_ph$&|P%ZqJ&h1?%hifN^oR*Gq*m{y7@&%Rxs zGp&raO7@jv%KI@qo%`5IF|8ESN-^bAgPy~gR?1GfapFgvDQn_!&a_fYE5)=@Oe@8- zQcNplru@`Je~X5Dsin6S3bt*>6~koxK@d4mBv5I_Z-f(N?fbNwMty8#Fcjr zd0w~GDsin6*D7(XlCAQ5dM1+OO59fN)nMwOT?%ntB=Kt4s)y)rEY6u$gQ>?=DO9ac zjY72w)hXoX4%K4HXIfpKpF32;4m_?!A-C0PF!iJD3Uw&dsZf_f-3s}7pju2>ccWV^ zrqyCvEvD6C%5~FhoM~_^4p%66{!dCZ;5wg#b}3Y++_vTA><+Y89$es9vE4>1>2f?mC#JCZ%Xrs70Yx6a15i? zRw1?U5yxO<{#SEY1qJ`B1%GjG#Wb`^LmSHA{))x7tL%=vI^mUANu9b7pH}*A)u{*9 zn@orI0mq~DL9P0rR((*bKB!e6aBaUF%fWSg?5htZ#Fb5Hsz!+X>o68FID7RJwYWHL@pXvbqxgEnvxRl=C3s&?*-k##WVX)RJl1h0=_#CbJt!ON z`p9~(QaI~+P|aWs?Kzz_pRsb?jnKVcDVh=@_3+)+FZJ+?9&+Bidn<$UKiBKL>oMLu zt@EzODD^n!&4*mfuIt5{bBgh<7w>xUt{3lm@#Z;&@y6v@v|=Ku4=+m@?*{R15bp-? zK814-t9t|1ai=5i2Jvo)yr-1Hc{hkRUt5yFI>mK3?}o@5SMU;z&YRasjCTX($#u*+ zp2B%IhQtypp>BnocY}Cy*Uxx2hc=MXXSSYq|yc@-vmkv*1uJROBNslxl zxAjdUc$*FJ#%J>*jbNSi<9vq8{CJ~S^J>&OW;568toim0*XFj}2-fG4`nJK7EGt(# zZYr>Lbl~1UpQ{=%JKdAScOgEl^xb&P3j3xJHg5B0qnLAzWXv1Iyiv>>#k^6>d2VZK z6x>A>UV(YgTEmO3_r-FWz}$8fn_%O+W1X77{C>@GO|tPOF>i`Cj%&t=4!3c>oy5jY z6PUj;Ia-Sl88m_Ut6-C!t3JFsN#XY06qz4V3TNIV=1sEiCfRor{K;!DZ@b=h+y_C1 zP2laJPKCM@>Q>0@yGg9M3N_YEV%;RxO=8_7);w!5`^H^Q;Q?5e)u$P(AB^>B2J45C zP$@!W(j5IaF9fs3&0uZ*yIHK8BkN;I;jH<1y|Hc;9ocr!(`R-=1<~rY4H;Z+%ST~Dx zvsiPjZLDz*4qCC1)Tc$hyG6dcMZUWQtS?~Rv=+C3^}~^Ri&(cr))}R6)-7V)BGxTp z&1WNCg_gQrXWb&!eB^>ppnD2u-6Gb!mTjzBWY;Z`^$F#2)-7Vq>s6l1S+`*1dYs#J zi&*na%2@MyjE8)Gxkap7#F}R##u_(Sq7^5T`m~C5t5~;+b!%jOhtfLhRVmU zf?ld~Zk0{9igT+tw~8~bc^UCmac&i7o}n3MzJi)hN}ILt{skN7ZQ|S}&TWzNS*3N( zZQ{&3=GQU9x;E$BCeCf*+$NiD1Lq9pV9({OdEdQJYm2PUDTT9c6Kg(VWUSi6n)hU! z!JO!NeJ#=k*0vUD18WcYT7=hMJSU|ie8x=pOx#JWwad0uO*kq>n4PU_Px z*6m{5F4pal^*u`KtlP!9J+i)6DV%k?ShtIHyI8k_^+n9i#)MBdT#A0FU98(9>-&_# zS+|RIyI8k_wXH?k!Fm`ox$E_{NIO_(*COp&i?qYGvuhDv&9b#fyVfG@V$MAmW8N<2 z?PA_8=Ivt6wU6yV;gN&n>Q4uF+jXE0@b(byVv6nW0B;YKD^!7dwm5TkMAolNT89?{ zC8MN6tUJWIL;j-!tZmiN0nQ$Bo9+PT%kbq!tOF~EN0YLeaqBHxU?sQUuU9LT`;iXt zehq#+x35EZpOLLYI>6dPz7FXCXODB+?ht40Xc^}YaqbZ34sq@fXYP9#XWYx3FiF{5n-9Y}(^06ZV~8Z2i#*#vZCss8*pmg>c7L?8{Er@*_#85mf2R zJ0o8UHRG8U3$-ZZTsxzGer>{)SFO#fbb_mgd>-tSf9}*g*eUv6t^+6As2=XWo;Gj}Cz z-osr&sPQ97eR{yz_7Z!*`3QWV)w2h-?D1uYe-!a-Zx8JG2z;QY^1Y@WFu#oP>+w~| zNbf-&^Q1js&UZR_idx0jA^vgcuaCEzdn)(OJ<-OmD7V{qk8He0Hr}Ioum|jialgE4 z^Lelb?6dP=5BS?Tc@OM7I}h?a{N6a)dB3NfllQ0(dejF!>VqEjL67>NM}5G(VCw_k zi+;E5ZPN?okH~}*W#RcZ)E;+$sb9?7qwPxkLV%;m&y<*)f*1clQopxglZ;5r@(@A~$z}ogc`y%US6z{D2BI{=n zPx5_{^&6DR?Y$4IGvSSjuS)!5AM%)|?1Q~~hu-6!6>f7!_QiFcoP_lb9(c=K9@@y26l z7|mau)Q5NeJrUd958hT{KYWXa%96dJesH#3qkgTa`y=DGNRu<}7vp|0?#Eo|I-PO9 z&J+8^xIZ$!A)U^+UyS?3xL=I>BjdL!mox4c<9;#j7vp|0?$=z|FUI|1%)7&lcE1?+ zi*dgg^SY2R9*8#mwxm7-(WYr%17K_v2f*0&g9f5Ke+|;oo(G~mzg;=qo(I7CI=)`U zM(qIn$CI(w29U=?ZqEaewP~xv)wFjgSAB9dZ9u#SBJX!9h4UT|?*Z{15buG=`(4WA zya&X4K)eUUdqBJg#Ct%z2gG|oym=qKkslE6fykTp&!WITp?mpxou@Dzuj~}+rI8-0SIE~2 zX^itj_-ZDvVN>D>(irE5lX6-V^7FfN9Ov&+j?vy zr!~&g8s}+^^E8NfI=@G55ak=^!N~a=lKKqFukucB^Q(j6JQz8DBhr%dVC4Kh<*dL? z4Et&job4`Qycb%bYK3YPs#T~?p?Zb@y)7{ zGaro1zeVxRd{E2>#e7iA2gQ6)%m>AMP|OF#d{E2>#hlMI8GZUpV?Gp_e``{oAu%5k zbKVngbJ->;lLmkojWSA}m=d=*xI?294fc{<5igB0Xu@wJMtL;OEh ze7$ng&MmFqV=#pCY`fcF2;5I3M|}@tNORdx$GRWKUIoaJhf~Z>k$8)imyjJDf8=xY_FMb?8<}>DuwTV@{3^1 z2k@=S9&#Js9hrYfxtuxQaqMY*Z-d`A=5g*BC4>{*O;Cv+f3*~A`&i?m+b9R4Y4_F^fv^ncNk@a^gr?cK8)_Y{%d&GK=?0b(` z?-A=gV!cPK_lWf#vEC!rTt^veyuSzb{XI#2hGpNwvhQKpH=hc5Cj3jJr8N%2zMl!- ztDMf9&wOOUhZXP4hsAt2GXFlMaOT5eJ}l=w)uG&yglUmNyFgnaelrxEZ)Q7JuKeC;yoV`8;(d{Gj5U_lS6pMBe{KDV+C+c#nwphN5p#syzN@b2zU>NA672kLmC0^>>knxnA;xG2y8sNhcp82wudwVJGVWg5pf?8 z_YrX)5%&>s9}#z+2N?I!$o=0Y^%@oTQE?v?_tD7xN064>`OMQZ;YXFzx%1ieO!zUy zJNHp>AC269Tq&IUsJM@c`>42&M(+Pkxt#l`xQ~kasO)?c++P#^y>j_J(kQswPSGfs zd&u{ZM#0$Q+|EbEdsMtf#d}n|`E88mxktsD=UB!Y&vn7heRn0Swg_n3H(McyAp zTJj!?ynj+T$(tUT?+~#2l*X_&^pM}XGzQk@rN^)axAo5$I3LpP>lj$u+Imc^$0F;G zsVrwbCe~wOJto#;(T6{;T<*iioKt&6YDXt9usSx zyBh1gk@d%u`s@{Je&4Av*(=t2BkTWwv}CRMblc{;8_tHGR(w@*=h+m`a=*toMpFzaYd2?FDPQb8#@c#dtp$+q}3Rj2FW%DwjVeupd6d zuA}V-XM4I~KRCZJ{F2gkhc_kl?NO*#p+1HB72@6=sqYu-{bJ31D`SoEf)V-4Njc-u zp2=VwtgnVoD&F_{$6?b~!>15$sd#?#X{B=CF%IsT@GFY4DM-9x?)Jr3?3 z=X?F*Vm=<3e?~f;`M8*mi}|?x^f;Jb4!^4Uw&O29`yWT>D?!}OX~z+=9f)zTe{*Cv z4u&4;QK(m;K85-fa_-~eJ}&Ou8#L|{k^8SDWlxCvMCAVKig)f4k^5&6Pwo@2^{e4? zO6A-qBKQBSc;`ML?i1oZ5%;8NArs<0f%(yTU_#s{BKO~rPUk)$?i1oZ5xJYrw&Xh5 z1U!dbJDUJ+yK`XztZhb^0PD-)H>JHBX|07lxFYgfiti0?N#gqu|6df}k9aF@Aek*D z#C<~Cx&Lb1CnNV4ll+t7J{h_Hw&I=pWaR!kh-a-PBlq7`D(5~K{mkzv-u=uZ@|bs- zl%JUdck?ro(a-$8a=D+G6#L1@{_{%V>?g&3QtT&X^OLaoO!x!jvO2fJR{l_bb%Yz? zze;0ga;M28`oVf>5;pIlo`mis=1${03199ZXFrL#(`IVE8_?#7NwMcXx3Qm!e*M2C zWlu%F&KgdEefB!~6nwi~N1p=w>~-`hu+LscpOTNCiZ=g8(&{!pC7Yj;%}>eZr)2X} zviT`-p91$o;lE3#@6GagOY6@maQBd(*H1<6{{y+KRpd_6_E$&p7p-+F+P{T-FJ($= z!zs+CHVUV}-9vo}^(*Aur^J0q+<7g*xZ`P1`1t>sv}Rg1KMn5Bgg;h%X|l&O4erl` zFC;ae2KQ&e7nRCwemZjh6U96CX>p$x_i1sT7WZj!pB8t1XWDxBU()IJJ}rBnmc38Q z-lrq?KUIBmxlhCASTB(Fw75^h-i_?ExKE4ww75^h-aVajpO(E(i~F>=&!8U09d|&X zHGh`0W=7m+BKJR6ymOz4-2WnJ$4un@mrCW_XCn8%QoM7Y5%(E!pAq*Nai0$OI-9v8gGm-oMR(*51&*X8R5%(E!pAq*Nai0sEWB;j$IRw2 zpB3|2F`pIlSuvj#^I0*U74um!=gUaVx6g|C94Hy{xyZaEp))7ub720quuJi!ct0R( zJ{OsnCheGu%*&L@na@S$<%)Oab7DRx=5t~`C+2*6wDr=QY<&*QFNX^0^!rxlVC&hn zA)is^i+8QJ=j3bVBL7O&JD2}l9{)Mjw*9el$s2qmVyqy#VHiWUmY0ZmW|8+5G~zXF`+o`gNfN&8-WXTNh;S3z2=Z z>YQuu3wi7p#C}2S7sP%+>=(p-LF^aAenIRPg0o)``$e%|jO<&I)+~zsVr1W{cxS&D z*|#O_Sd8r3mCF6iVzl=T#k;*P%H9`c?~AhcMcMnJ?0r$(7bEvh>2&Uk;=U;Ee4l}x z7x66wnfO*mdP}}tAnWHB^SCdH`=Yoniu+qb4je1#Cj>R?n5rJUdm&=l*f8Wte3=kNvxN|dP%I8#Cl1rm&BTHxi3eSHzk&v;x*|k2bU-&MV@)BF-z~ydusk;=CfxE8@)W zrZCPc;(P#{XJTmwz}fcb4}h_U{CTDWVC-@JJktR%_BekYe#*&G00kMsAG9ROdCYf`9Lp%#VwojM1=)^qqZ3BF&&<9xsT0GN85Uz0chrXJU; zP@h8mxT}o z_)&kx<{)g=lS0i3wJ6l8P@6*S3Uw&d zsZf_fe!bxkY}MQA*BcIjugCS{US{^)A#pttS&{40|>0 zhv8@66z7StY#gEpHzIO;=2$(rTA{e_aL5k zM4SFz#9OFOA?JTs{0|4W>%-!IB=Tooe9KvKrQ!(Kzd7nV0`?v%Rj3Rh*7^w8zbnin zwK#(Ho3-W$*uN{xDxUXhTKeiFz5P{_q_V$i^N!W!9jnhf){u9sF*#;!@b}IhL0?!M zOnXb7hSt1e>=U-aQnu$EW4~mNb>go%rDWgC>#y#-eC(er8TOB9?@LlyZM~29o+=v; zd;^t-e2g4LAK6|C&hkPgETBy0KZ<^`RqRpplZX8J=TWV(kD{NxF3G_@vb=sT?NRu2 zkMnzJkHV*WoZm}(6h7VK{9f9l@aZ1cs1WBHLC-FnC=z!v#$8o95;}%BvzcSCnXiv;vA6h=@b1X)7;MHvr3#hd zzH>`gp3poN$F;?|%^Z`>9D^S)>c?a=$FR2YIJcQ&SX+6V+srYntvt?c<`~AU$GOcM z!@AYu+-8o+W_ZuGA9b5KhP9Q)xy|rxavtY4b4)gK4C{b*BrW%`cuY2PO#YJgVO&=u zSAO#W*{otL8qHO4UB!Iman5xWW6^5C??v^Hb6pkJRdHPv*Hv*{)mU5=SAKz@>vOKF zSYLUZb6v&y%Hy2tD%PwX=VNhITvxHa@}tgm73(XHbFQmcUwNF5MZTHu9SI@lx+<=# z;>s~*Tyeb+_PU&KT@%+eaa|MFHTXEQ*EMln6W2A&Lsp+Paa|MFHE~@N*EMln6W29y zU6Z}?`}AD1b6peHHQDQ$xUR`w*Ti*AT-Ri;YvQ^ldtDRPHQDQ$xUR{^t%>WJxYAD< z*L84R4=V}Rb#S%&lh(o2L!}Cph4;o@TNl@Laa|YJb#Yx6*L87S7uR)hT^HANaa|YJ zb#YynA6OUHb#Yx6*L87S7uR)hT^HANaa|WzehZ=X;<~tES0%C6b#Yx6SH8E=W@q|( z;|g}LSAG)-{lJFobwl>LA$#4By>5u>hPZBs>xQ^)i0g*9ZiwrKxNeB+hPZBs>xQ^) zi0g*9ZiwrKxNeB+hPZBs>xQ^)i0g*9ZiwrKxNeB+hPZBs>xQ^;zBI0QMx~6*G+NV6xU60-4xeNaorTxO>x~6*G+NV6xU60-4xeNaorTx zO>x~6*G+NV6xU60-4xeNaorTxO>x~6*G+Ndn!~teBG*F+*NnJk#5E(X8F9^sYerl% z;+hfHjJRgRH6yMWam|QpMqD%EimMUH$jpdqMqD%Eni1EGxMsvPBd*vlmp-4jGUA#M z*NnJk#5E(X8F9^sE7xu25wQMF_GylTsqNw%2U8FE{?&0X^*G*xN9#Tgrr(f+Div3y z5br#+bTtaqDpaRXy|nmuL>vcG&+Fe2aU4uNu0=WgJ0gyQsUK}us6**G73xx`TcI9> zdKKzZ$oE=~i|KJOJuaqP_Zm|?6NY|e%eTPPL;miaE!e5Y`MY6V!CyunI4A*Lt9^aSkG>UTm+Pryz+&Y7Noow^ohdO}Q3 zVC;JiXL?RPawVLaHc0P_C1F)JprHU zanAGv#=gfn(-Ro`9_MS;6JmNoOnKfl6VK~Ug6TJg!zr7qPJ-+EqSc-RR}YmcRHjh5 zLgdOFf|Ky6-xQ8WQx%>%rTw48F%Q)!RI5;(LS$>28c-*EDPoepQDrqL)T|KsTCP^) zI;LE0O3|*6Gd?NCC*fa>*hw)y3IFPG&iEw!tH(Lxld{{BA+4iaXB{bN4nJHD$nk8J zlK=RQk6ji-E#tr64|mo7T>OKteN5qpl3zc?mn8EGlK9#$eq|58XoFvMvI}8;kpaF5 z62rd+IZW~^AozD9G*I%DdHg~~e&r-3^HG)|JtettN<_jvBp6-B>uQH?TLOJ}RN0vj$awu62CCi~?Ig~7izp00kdMK%fUl2(>l+;5> zJ(Sc#Nj;R*!yoFQq#jD@;R} zJ(Sc#Nj>aK>Y=0_O6sAc9!lz=q#jD@p`;#4>ftLisfUt!D5-~%dMK%fl6okqhmv|I zsfRCxq#jD@p`;#4>Y=0_O6sAc9{#2tO6rNu6nZGBhmv|IsfUt!D5-~%diX;e3Z;b$@);TK9tl$Nj;R*LrFc9)WcWfuzX7Dp`;#4 z>Y=0_O6sAc9!lz=q#nNLg?cEdhp&5~9!lzAJo}lF`Y5T7lKLpAkCOV*_@O>Z>Z4?S zO8Q|+=A&djO6KDW5SWjW`6$`XgV@xi&!FU(r=*=x($1KU`Y5T7lKSvqW`@l*~`b{JZhP`cN`ICG%4J(Sc#Nj)Pxb%GvB>Y=0_O6sAc z9!lz=q#jD@p`@Ns{7?@i^-xj|CG}8J4<+?bQV%8dP*TqreyE3%dMK%fl6ok~iIVy# zsgIKSD5;N<`u5_7`Y5T7lKLpAkCOT*sgIKS_Th*5D4CCv_D9KdluWmuCs9a8$#j(b z`YB54rDS?aPfw4$AE$|Y_2W2C7m=Tm`6-#7lKCl_pOX2<@z@T1IVF8DC4K1xeyE3% zdMK%fl6okqhmv|G@K6i+P}0{?@)c&2_@N$3>Y=0_O6sAc9!lz&!Vl9^GCd{JQ!+gz z$2ld-qhxuMERSCz&is_jPs#k0%umVkC|MpQ^-xj|CH2g3aS1(?)I&)J(Sc# zNj;R*LrFce_@N$3>Y=0_O6s9xdnlQolKCl_e-1y)Ps#k0%umVubMZ#lrYPyR_&5C) zk5eBd^-)saJbtK;lKLpAkCOT*nU9kBD4A~oKg>tTe3Z;b$$XULLCO4-%umVui}+!F zO6I3zeoE%2WPVEKr(}Lg=3nBYjmS^Q{FKa3$^4YePs#k0%umVu%lKh_O6I3zeoE%2 zWPVEKr(}Lg=3n6#8X-R=^HVZECG%4}I_BT}+6zjapHR{tQPLk#vK&g@vT`I|V6TX>5_qE(U9ObRPSea4s zYXvEpj*{spneG^Vn2wU^D4C9u=_r|Q6+cWz$#j%VN6B=QOt;2Ix{!{N=_r|wlIbX! zZXG{NN6B=QOh?IdluWn5iw;Of$#j%VN6B=QOt*<2rlVv!N~WV^I!dO?;D_lbnU0d_ zD4C9u=}zK@>qE*)^b;k&0)~>C4AnS0Wct5#|KEkTuU^3$|I(<~6Oh;N6qWz`%eMrW zP^tts@9H1l*W~|roXhT;$-fj1q$}I&Z7%sO0*7I=I0Iksu#^S)x1>;Ft^{%`Mhm+Y(eDM`|w;wsl)ZkN#PaQt>_%z_t zh))wf&G@w7L!a7)Pdh$*OF<_-UHEk4(}PbhK7IJ~<1>Iy8lORYhVa>q&mMe+@fpEq z6rVAC_TsY-pZ)moy$^f`!6ZI>E_)guKCjAWC;2QNpC{w Date: Thu, 18 Apr 2024 17:39:58 +0300 Subject: [PATCH 81/98] updated MOH240 and MOH706 to pull from kenyaemr_etl fields, cleaned 5+ and 60+ dimensions --- .../MohReportUtils/ReportAddonUtils.java | 12 ++--- .../common/SetupMOH240LabReportBuilder.java | 46 ++++++------------- .../MOH706/Moh706LabCohortLibrary.java | 14 +++--- 3 files changed, 26 insertions(+), 46 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java index c24a20df2b..6afd0dd239 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/MohReportUtils/ReportAddonUtils.java @@ -63,16 +63,16 @@ public static List getGeneralOutPatientFilters() { "state=NEW|age=<5|gender=F", "03"); ColumnParameters under5FemaleRevisit = new ColumnParameters("over5FemaleRevisit", "below 5 and revisit", "state=RVT|age=<5|gender=F", "04"); - ColumnParameters over5MaleNew = new ColumnParameters("over5MaleNew", "above 5 and new", "state=NEW|age=>5|gender=M", + ColumnParameters over5MaleNew = new ColumnParameters("over5MaleNew", "above 5 and new", "state=NEW|age=5+|gender=M", "05"); ColumnParameters over5MaleRevisit = new ColumnParameters("over5MaleRevisit", "above 5 and revisit", - "state=RVT|age=>5|gender=M", "06"); + "state=RVT|age=5+|gender=M", "06"); ColumnParameters over5FemaleNew = new ColumnParameters("over5MaleNew", "above 5 and new", - "state=NEW|age=>5|gender=F", "07"); + "state=NEW|age=5+|gender=F", "07"); ColumnParameters over5FemaleRevisit = new ColumnParameters("over5MaleRevisit", "above 5 and revisit", - "state=RVT|age=>5|gender=F", "08"); - ColumnParameters over60New = new ColumnParameters("over60New", "above 60 and new", "state=NEW|age=>60", "09"); - ColumnParameters over60Revisit = new ColumnParameters("over60Revisit", "above 60 and revisit", "state=RVT|age=>60", + "state=RVT|age=5+|gender=F", "08"); + ColumnParameters over60New = new ColumnParameters("over60New", "above 60 and new", "state=NEW|age=60+", "09"); + ColumnParameters over60Revisit = new ColumnParameters("over60Revisit", "above 60 and revisit", "state=RVT|age=60+", "10"); return Arrays.asList(under5MaleNew, under5MaleRevisit, under5FemaleNew, under5FemaleRevisit, over5MaleNew, diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java index 30822562b2..722afff29b 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java @@ -22,17 +22,17 @@ import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; import org.openmrs.module.kenyaemr.Metadata; import org.openmrs.module.kenyaemr.calculation.library.TelephoneNumberCalculation; +import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; import org.openmrs.module.kenyaemr.metadata.CommonMetadata; +import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; import org.openmrs.module.kenyaemr.reporting.data.converter.EncounterDatetimeConverter; import org.openmrs.module.reporting.cohort.definition.CohortDefinition; import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; import org.openmrs.module.reporting.common.TimeQualifier; import org.openmrs.module.reporting.data.DataDefinition; -import org.openmrs.module.reporting.data.converter.BirthdateConverter; -import org.openmrs.module.reporting.data.converter.DataConverter; -import org.openmrs.module.reporting.data.converter.ObjectFormatter; -import org.openmrs.module.reporting.data.converter.ObsValueConverter; +import org.openmrs.module.reporting.data.converter.*; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; import org.openmrs.module.reporting.data.patient.definition.EncountersForPatientDataDefinition; import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; @@ -61,6 +61,8 @@ @Builds({ "kenyaemr.ehrReports.report.240" }) public class SetupMOH240LabReportBuilder extends AbstractHybridReportBuilder { + public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; + @Override protected Mapped buildCohort(HybridReportDescriptor hybridReportDescriptor, PatientDataSetDefinition patientDataSetDefinition) { @@ -102,50 +104,28 @@ private PatientDataSetDefinition LabRegister() { dsd.addColumn("id", new PersonIdDataDefinition(), ""); dsd.addColumn("identifier", identifierDef, ""); - dsd.addColumn("Date", getEncounterDate(), "onOrAfter=${startDate},onOrBefore=${endDate+23h}", - new EncounterDatetimeConverter()); + //dsd.addColumn("Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); dsd.addColumn("Name", nameDef, ""); dsd.addColumn("Sex", new GenderDataDefinition(), "", null); dsd.addColumn("DOB", new BirthdateDataDefinition(), "", new BirthdateConverter("yyyy-MM-dd")); dsd.addColumn("age", new AgeDataDefinition(), ""); - dsd.addColumn("village", getAddress(), "", null); + dsd.addColumn("village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); dsd.addColumn("telephone", new PersonAttributeDataDefinition(personAttributeType), "", null); return dsd; } - - private DataDefinition getEncounterDate() { - EncounterType labEncounter = Context.getEncounterService().getEncounterTypeByUuid( - "17a381d1-7e29-406a-b782-aa903b963c28"); - EncountersForPatientDataDefinition dsd = new EncountersForPatientDataDefinition(); - dsd.addParameter(new Parameter("onOrAfter", "After Date", Date.class)); - dsd.addParameter(new Parameter("onOrBefore", "Before Date", Date.class)); - dsd.setTypes(Arrays.asList(labEncounter)); - dsd.setWhich(TimeQualifier.LAST); - return dsd; - } - - private CohortDefinition getLabOrderEncounter() { - EncounterType labEncounter = Context.getEncounterService().getEncounterTypeByUuid( - "17a381d1-7e29-406a-b782-aa903b963c28"); + private CohortDefinition getLabOrderEncounter() { SqlCohortDefinition sqlEncounterQuery = new SqlCohortDefinition(); sqlEncounterQuery.setName("Get unique lab encounter types"); sqlEncounterQuery.addParameter(new Parameter("startDate", "Start Date", Date.class)); sqlEncounterQuery.addParameter(new Parameter("endDate", "End Date", Date.class)); sqlEncounterQuery - .setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id=e.patient_id " - + " WHERE e.encounter_datetime BETWEEN :startDate AND :endDate AND e.voided=0 AND p.voided = 0 " - + " AND e.encounter_type IN(" + labEncounter.getEncounterTypeId() + ")"); + .setQuery("SELECT d.patient_id FROM kenyaemr_etl.etl_patient_demographics d\n" + + " INNER JOIN kenyaemr_etl.etl_laboratory_extract x ON x.patient_id = d.patient_id\n" + + " AND date(x.visit_date) BETWEEN :startDate AND :endDate;"); return sqlEncounterQuery; } - public static DataDefinition getAddress() { - SqlPatientDataDefinition sqlPdfn = new SqlPatientDataDefinition(); - sqlPdfn.setName("Address"); - sqlPdfn.setQuery("SELECT p.person_id, REPLACE(CONCAT_WS(' ',pa.address1,pa.address2,pa.city_village,pa.address3,pa.address5,pa.address6), ',','') AS address FROM person p " - + " INNER JOIN person_address pa ON p.person_id=pa.person_id "); - return sqlPdfn; - } -} \ No newline at end of file +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java index 7791f69065..cc66a4b09d 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/MOH706/Moh706LabCohortLibrary.java @@ -24,13 +24,13 @@ public CohortDefinition getAllUrineAnalysisGlucoseTestsPositives() { sql.setName("Get urine analysis patients - glucose"); sql.addParameter(new Parameter("startDate", "Start Date", Date.class)); sql.addParameter(new Parameter("endDate", "End Date", Date.class)); - sql.setQuery("SELECT p.patient_id FROM patient p INNER JOIN encounter e ON p.patient_id = e.patient_id INNER JOIN obs o ON e.encounter_id = o.encounter_id " - + " WHERE p.voided=0 AND e.voided = 0 AND o.voided = 0 AND o.concept_id in (159734) AND o.value_coded IN (703,1874,1362,1363,1364,1365) " - + " AND e.encounter_datetime BETWEEN :startDate AND :endDate " - + " UNION " - + " SELECT p.patient_id FROM patient p INNER JOIN encounter e on p.patient_id = e.patient_id INNER JOIN obs o ON e.encounter_id = o.encounter_id " - + " WHERE p.voided=0 AND e.voided = 0 AND o.voided = 0 AND o.concept_id in (159733) AND o.value_numeric IS NOT NULL " - + " AND e.encounter_datetime BETWEEN :startDate AND :endDate " + sql.setQuery("SELECT d.patient_id FROM kenyaemr_etl.etl_patient_demographics d\n" + + " INNER JOIN kenyaemr_etl.etl_laboratory_extract x ON x.patient_id = d.patient_id\n" + + " WHERE x.lab_test = 1305 AND x.test_result = 1302 AND date(x.visit_date) BETWEEN :startDate AND :endDate\n" + + " UNION\n" + + " SELECT d.patient_id FROM kenyaemr_etl.etl_patient_demographics d\n" + + " INNER JOIN kenyaemr_etl.etl_laboratory_extract x ON x.patient_id = d.patient_id\n" + + " WHERE x.lab_test = 856 AND x.test_result IS NOT NULL AND date(x.visit_date) BETWEEN :startDate AND :endDate;" ); return sql; From 9d869088ff6831eb234f57ef06aecb26e027c495 Mon Sep 17 00:00:00 2001 From: patryllus Date: Thu, 18 Apr 2024 18:16:19 +0300 Subject: [PATCH 82/98] Removing duplicated EncounterDatetimeConverter class, cleaning up moh240 --- .../common/SetupMOH240LabReportBuilder.java | 26 +++-------- .../converter/EncounterDatetimeConverter.java | 46 ------------------- 2 files changed, 6 insertions(+), 66 deletions(-) delete mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java index 722afff29b..8cd8227038 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java @@ -9,8 +9,6 @@ */ package org.openmrs.module.kenyaemr.reporting.builder.common; -import org.openmrs.Concept; -import org.openmrs.EncounterType; import org.openmrs.PatientIdentifierType; import org.openmrs.PersonAttributeType; import org.openmrs.api.context.Context; @@ -20,37 +18,25 @@ import org.openmrs.module.kenyacore.report.builder.AbstractHybridReportBuilder; import org.openmrs.module.kenyacore.report.builder.Builds; import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; -import org.openmrs.module.kenyaemr.Metadata; -import org.openmrs.module.kenyaemr.calculation.library.TelephoneNumberCalculation; import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; import org.openmrs.module.kenyaemr.metadata.CommonMetadata; import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; -import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; -import org.openmrs.module.kenyaemr.reporting.data.converter.EncounterDatetimeConverter; import org.openmrs.module.reporting.cohort.definition.CohortDefinition; import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; -import org.openmrs.module.reporting.common.TimeQualifier; import org.openmrs.module.reporting.data.DataDefinition; -import org.openmrs.module.reporting.data.converter.*; +import org.openmrs.module.reporting.data.converter.BirthdateConverter; +import org.openmrs.module.reporting.data.converter.DataConverter; +import org.openmrs.module.reporting.data.converter.DateConverter; +import org.openmrs.module.reporting.data.converter.ObjectFormatter; import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; -import org.openmrs.module.reporting.data.patient.definition.EncountersForPatientDataDefinition; import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; -import org.openmrs.module.reporting.data.patient.definition.SqlPatientDataDefinition; -import org.openmrs.module.reporting.data.person.definition.AgeDataDefinition; -import org.openmrs.module.reporting.data.person.definition.BirthdateDataDefinition; -import org.openmrs.module.reporting.data.person.definition.ConvertedPersonDataDefinition; -import org.openmrs.module.reporting.data.person.definition.GenderDataDefinition; -import org.openmrs.module.reporting.data.person.definition.ObsForPersonDataDefinition; -import org.openmrs.module.reporting.data.person.definition.PersonAttributeDataDefinition; -import org.openmrs.module.reporting.data.person.definition.PersonIdDataDefinition; -import org.openmrs.module.reporting.data.person.definition.PreferredNameDataDefinition; +import org.openmrs.module.reporting.data.person.definition.*; import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; import org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition; import org.openmrs.module.reporting.evaluation.parameter.Mapped; import org.openmrs.module.reporting.evaluation.parameter.Parameter; import org.openmrs.module.reporting.report.definition.ReportDefinition; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.Arrays; @@ -104,7 +90,7 @@ private PatientDataSetDefinition LabRegister() { dsd.addColumn("id", new PersonIdDataDefinition(), ""); dsd.addColumn("identifier", identifierDef, ""); - //dsd.addColumn("Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + //dsd.addColumn("Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); dsd.addColumn("Name", nameDef, ""); dsd.addColumn("Sex", new GenderDataDefinition(), "", null); dsd.addColumn("DOB", new BirthdateDataDefinition(), "", new BirthdateConverter("yyyy-MM-dd")); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java deleted file mode 100644 index c00812ffc3..0000000000 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/EncounterDatetimeConverter.java +++ /dev/null @@ -1,46 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under - * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. - * - * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS - * graphic logo is a trademark of OpenMRS Inc. - */ -package org.openmrs.module.kenyaemr.reporting.data.converter; - -import org.openmrs.Encounter; -import org.openmrs.Obs; -import org.openmrs.module.reporting.data.converter.DataConverter; - -import java.text.Format; -import java.text.SimpleDateFormat; -import java.util.Date; - -public class EncounterDatetimeConverter implements DataConverter { - - public Object convert(Object original) { - Encounter encounter = (Encounter) original; - - if (encounter == null) { - return null; - } else if (encounter.getDateCreated() != null) { - return formatDates(encounter.getDateCreated(), "dd-MM-yyyy HH:mm:ss"); - } - return null; - } - - public Class getInputDataType() { - return Encounter.class; - } - - public Class getDataType() { - return Object.class; - } - - public static String formatDates(Date date, String format) { - Format formatter = new SimpleDateFormat(format); - String s = formatter.format(date); - return s; - } -} From c6ae8ae51899a966eff5550c5e6cb88b784635ee Mon Sep 17 00:00:00 2001 From: patryllus Date: Fri, 19 Apr 2024 12:54:58 +0300 Subject: [PATCH 83/98] DMI: Updating cholera case definition from diarrhea to watery diarrhea concepts --- .../surveillance/EligibleForCholeraCalculation.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForCholeraCalculation.java b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForCholeraCalculation.java index 3af0edb78b..9d1d9cbce6 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForCholeraCalculation.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/surveillance/EligibleForCholeraCalculation.java @@ -49,8 +49,8 @@ public String getFlagMessage() { return "Suspected Cholera case"; } - Integer VOMITING = 122983; - Integer DIARRHEA = 142412; + Integer VOMITING = 122983; + Integer WATERY_DIARRHEA = 161887; Integer SCREENING_QUESTION = 5219; @Override @@ -71,7 +71,7 @@ public CalculationResultMap evaluate(Collection cohort, Map cohort, Map Date: Fri, 19 Apr 2024 14:21:22 +0300 Subject: [PATCH 84/98] Updated concept id for diarhea to waterly diarhea --- .../evaluator/dmi/CholeraCohortDefinitionEvaluator.java | 4 ++-- .../dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java | 2 +- .../kenyaemr/reporting/library/dmi/IDSRCohortLibrary.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/CholeraCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/CholeraCohortDefinitionEvaluator.java index abee37c375..cf88e7114d 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/CholeraCohortDefinitionEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/CholeraCohortDefinitionEvaluator.java @@ -51,12 +51,12 @@ public EvaluatedCohort evaluate(CohortDefinition cohortDefinition, EvaluationCon String qry = "select a.patient_id\n" + "from (select patient_id, c.visit_date,group_concat(c.complaint) as complaint, c.complaint_date as complaint_date\n" + " from kenyaemr_etl.etl_allergy_chronic_illness c\n" + - " where c.complaint in (142412,122983)\n" + + " where c.complaint in (161887,122983)\n" + " and date(c.visit_date) between date(:startDate) and date(:endDate)\n" + " group by patient_id) a\n" + " join kenyaemr_etl.etl_patient_demographics d on a.patient_id = d.patient_id\n" + "where timestampdiff(YEAR,date(d.DOB),coalesce(date(a.complaint_date),date(a.visit_date))) > 2 and FIND_IN_SET(122983, a.complaint) > 0\n" + - " and FIND_IN_SET(142412, a.complaint) > 0;"; + " and FIND_IN_SET(161887, a.complaint) > 0;"; SqlQueryBuilder builder = new SqlQueryBuilder(); builder.append(qry); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java index e7e71b10fb..abc6defed4 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/dmi/IDSRSuspectedCasesCohortDefinitionEvaluator.java @@ -70,7 +70,7 @@ public EvaluatedCohort evaluate(CohortDefinition cohortDefinition, EvaluationCon " date(t.visit_date) between date(:startDate) and date(:endDate)\n" + " group by patient_id) a\n" + "where ((FIND_IN_SET(117671, a.complaint) > 0 AND FIND_IN_SET(142412, a.complaint) > 0)\n" + - " OR (FIND_IN_SET(142412, a.complaint) > 0 AND FIND_IN_SET(122983, a.complaint) > 0 AND\n" + + " OR (FIND_IN_SET(161887, a.complaint) > 0 AND FIND_IN_SET(122983, a.complaint) > 0 AND\n" + " timestampdiff(YEAR, date(a.DOB), coalesce(date(a.complaint_date), date(a.visit_date))) > 2)\n" + " OR (FIND_IN_SET(143264, a.complaint) > 0 AND timestampdiff(DAY, date(a.complaint_date), date(a.visit_date)) < 10 AND\n" + " date(a.visit_date) BETWEEN DATE(:startDate) AND DATE(:endDate) AND a.visit_type_id IN (1, 3) AND\n" + diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/dmi/IDSRCohortLibrary.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/dmi/IDSRCohortLibrary.java index a3eaaf6027..4081282c61 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/dmi/IDSRCohortLibrary.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/library/dmi/IDSRCohortLibrary.java @@ -59,12 +59,12 @@ public CohortDefinition choleraCases() { String sqlQuery = "select a.patient_id\n" + "from (select patient_id, c.visit_date,group_concat(c.complaint) as complaint, c.complaint_date as complaint_date\n" + " from kenyaemr_etl.etl_allergy_chronic_illness c\n" + - " where c.complaint in (142412,122983)\n" + + " where c.complaint in (161887,122983)\n" + " and date(c.visit_date) between date(:startDate) and date(:endDate)\n" + " group by patient_id) a\n" + " join kenyaemr_etl.etl_patient_demographics d on a.patient_id = d.patient_id\n" + "where timestampdiff(YEAR,date(d.DOB),coalesce(date(a.complaint_date),date(a.visit_date))) > 2 and FIND_IN_SET(122983, a.complaint) > 0\n" + - " and FIND_IN_SET(142412, a.complaint) > 0;"; + " and FIND_IN_SET(161887, a.complaint) > 0;"; cd.setName("choleraCases"); cd.setQuery(sqlQuery); cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); From 2645971571c330829c2f3d06084ce6a69e642106 Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Fri, 19 Apr 2024 14:45:13 +0300 Subject: [PATCH 85/98] add exemption list for forms in 3.x --- .../module/kenyaemr/util/EmrUtils.java | 21 +++++++++++++++++++ ...VisitAvailableFormsFragmentController.java | 12 +++++++++-- omod/src/main/resources/config.xml | 8 +++++++ 3 files changed, 39 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/util/EmrUtils.java b/api/src/main/java/org/openmrs/module/kenyaemr/util/EmrUtils.java index 26e9456b95..6108225f1b 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/util/EmrUtils.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/util/EmrUtils.java @@ -21,6 +21,7 @@ import org.openmrs.Encounter; import org.openmrs.EncounterType; import org.openmrs.Form; +import org.openmrs.GlobalProperty; import org.openmrs.Obs; import org.openmrs.Order; import org.openmrs.OrderType; @@ -54,6 +55,7 @@ */ public class EmrUtils { protected static final Log log = LogFactory.getLog(EmrUtils.class); + public static String GP_2X_FORMS_WHITELIST = "kenyaemr.2.x.forms.whitelist"; /** * Checks whether a date has any time value @@ -316,5 +318,24 @@ public static List getPersonChildren(Patient patient) { return people; } + /** + * A temporary solution for whitelisting forms to show in 2.x + * TODO: retire this once all forms are fully moved to o3 + * @return + */ + public static List getFormsToShowInLegacyUI() { + GlobalProperty gpFormsWhitelist = Context.getAdministrationService().getGlobalPropertyObject(GP_2X_FORMS_WHITELIST); + + String formsWhiteList = ""; + List formsList = new ArrayList(); + if (gpFormsWhitelist != null) { + formsWhiteList = gpFormsWhitelist.getPropertyValue(); + if (StringUtils.isNotBlank(formsWhiteList)) { + formsList = Arrays.asList(formsWhiteList.split(",")); + } + } + return formsList; + + } } \ No newline at end of file diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/VisitAvailableFormsFragmentController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/VisitAvailableFormsFragmentController.java index 50cb2bdee2..e136cc59a5 100755 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/VisitAvailableFormsFragmentController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/fragment/controller/VisitAvailableFormsFragmentController.java @@ -16,6 +16,7 @@ import org.openmrs.module.appframework.domain.AppDescriptor; import org.openmrs.module.kenyacore.form.FormDescriptor; import org.openmrs.module.kenyacore.form.FormManager; +import org.openmrs.module.kenyaemr.util.EmrUtils; import org.openmrs.module.kenyaui.KenyaUiUtils; import org.openmrs.ui.framework.SimpleObject; import org.openmrs.ui.framework.UiUtils; @@ -45,9 +46,16 @@ public void controller(FragmentModel model, List availableForms = new ArrayList(); + List formsList = EmrUtils.getFormsToShowInLegacyUI(); + for (FormDescriptor descriptor : formManager.getAllUncompletedFormsForVisit(currentApp, visit)) { - //Display only active forms - if(!descriptor.getTarget().isRetired()) { + /** + * Display only active forms + * we filter forms based on the configured whitelist. The idea is to temporarily take care of any partner forms in the add-on modules + * We block everything if no configuration exists i.e. default to an empty whitelist + */ + + if(!descriptor.getTarget().isRetired() && formsList.contains(descriptor.getTarget().getUuid())) { availableForms.add(ui.simplifyObject(descriptor.getTarget())); } continue; diff --git a/omod/src/main/resources/config.xml b/omod/src/main/resources/config.xml index ab9df9a7ca..62b11eecfe 100755 --- a/omod/src/main/resources/config.xml +++ b/omod/src/main/resources/config.xml @@ -182,4 +182,12 @@ + + kenyaemr.2.x.forms.whitelist + + + Configures a comma separated list of forms to avail in 2.x KenyaEMR user interface + + + From b07707091567b30cde49f1b1f38a556979b0aba6 Mon Sep 17 00:00:00 2001 From: Nicholas Ingosi Magaja Date: Fri, 19 Apr 2024 15:44:05 +0300 Subject: [PATCH 86/98] Initial stub on FCDRR report and adding context parameters for the county and sub county (#1873) --- .../builder/stock/SetFcdrrReportBuilder.java | 50 ++++++++++++++++++ .../resources/content/kenyaemr.common.xml | 11 ++++ .../ReportExportPageController.java | 2 + .../main/webapp/resources/reports/fcdrr.xls | Bin 0 -> 18666 bytes 4 files changed, 63 insertions(+) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/stock/SetFcdrrReportBuilder.java create mode 100644 omod/src/main/webapp/resources/reports/fcdrr.xls diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/stock/SetFcdrrReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/stock/SetFcdrrReportBuilder.java new file mode 100644 index 0000000000..d102b9fbc5 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/stock/SetFcdrrReportBuilder.java @@ -0,0 +1,50 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.stock; + +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.SqlDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({ "kenyaemr.ehrReports.report.fcdrr" }) +public class SetFcdrrReportBuilder extends AbstractReportBuilder { + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", + Date.class), new Parameter("dateBasedReporting", "", String.class)); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, + ReportDefinition reportDefinition) { + return Arrays.asList(ReportUtils.map(getFcdrrDatasetDefition(), "startDate=${startDate},endDate=${endDate}")); + } + + private DataSetDefinition getFcdrrDatasetDefition(){ + SqlDataSetDefinition sqlDataSetDefinition = new SqlDataSetDefinition(); + sqlDataSetDefinition.setName("FCDRR"); + sqlDataSetDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + sqlDataSetDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + sqlDataSetDefinition.setSqlQuery("SELECT COUNT(*) AS total_items FROM stockmgmt_stock_item WHERE date_created BETWEEN :startDate AND :endDate "); + return sqlDataSetDefinition; + } +} diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index 8d7fa48762..e2b3c8cf73 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -100,6 +100,7 @@ + @@ -1005,5 +1006,15 @@ + + + + + + + + + + diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/ReportExportPageController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/ReportExportPageController.java index ddb283bcf0..2d26d6cc3a 100755 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/ReportExportPageController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/page/controller/ReportExportPageController.java @@ -172,6 +172,8 @@ protected void addExtraContextValues(ReportData data, EvaluationContext context) context.addContextValue("facility.name", facility.getTarget().getName()); context.addContextValue("facility.code", facility.getMflCode()); context.addContextValue("report.name", reportData.getName()); + context.addContextValue("facility.county", facility.getCounty()); + context.addContextValue("facility.subCounty", facility.getDistrict()); Calendar period = new GregorianCalendar(); period.setTime(context.containsParameter("startDate") ? (Date) context.getParameterValue("startDate") : context.getEvaluationDate()); diff --git a/omod/src/main/webapp/resources/reports/fcdrr.xls b/omod/src/main/webapp/resources/reports/fcdrr.xls new file mode 100644 index 0000000000000000000000000000000000000000..785d946b9781988da51a96f8ffb71b44c5599df3 GIT binary patch literal 18666 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 Date: Tue, 23 Apr 2024 14:33:14 +0300 Subject: [PATCH 87/98] Updated MOH204 report to pick all diagnosis reported rather than a subset --- .../opd/OPDDiagnosisDataEvaluator.java | 27 +++++-------------- .../opd/OPDIMNCIDiagnosisDataEvaluator.java | 25 +++++------------ 2 files changed, 13 insertions(+), 39 deletions(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java index b83e666319..ac89d779ae 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java @@ -37,28 +37,15 @@ public class OPDDiagnosisDataEvaluator implements EncounterDataEvaluator { public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); - String qry = "select\n" + + String qry = "select\n" + " v.encounter_id,\n" + - " (case ed.diagnosis_coded\n" + - " when 168737 then 'DIARRHOEA_WITH_DEHYDRATION'\n" + - " when 166569 then 'DIARRHOEA_WITH_SOME_DEHYDRATION'\n" + - " when 168736 then 'DIARRHOEA_WITH_SEVERE_DEHYDRATION'\n" + - " when 145622 then 'CHOLERA'\n" + - " when 152 then 'DYSENTRY'\n" + - " when 117889 then 'GASTROENTERITIS'\n" + - " when 114100 then 'PNEUMONIA'\n" + - " when 168738 then 'SEVERE_PNEUMONIA'\n" + - " when 123093 then 'UPPER_RESPIRATORY_TRACT_INFECTIONS'\n" + - " when 135556 then 'LOWER_RESPIRATORY_TRACT_INFECTIONS'\n" + - " when 121375 then 'ASTHMA'\n" + - " when 168739 then 'PRESUMED_TUBERCULOSIS'\n" + - " when 166623 then 'SUSPECTED_MALARIA'\n" + - " when 168740 then 'TESTED_FOR_MALARIA'\n" + - " when 160148 then 'CONFIRMED_MALARIA' end) as mnci_diagnosis\n" + + " con.name as mnci_diagnosis\n" + "from kenyaemr_etl.etl_clinical_encounter v\n" + - " LEFT JOIN encounter_diagnosis ed ON v.patient_id = ed.patient_id and date(ed.date_created)between date(:startDate) and date(:endDate)\n" + - " LEFT JOIN kenyaemr_etl.etl_laboratory_extract x ON v.patient_id = x.patient_id AND date(v.visit_date) between date(:startDate) and date(:endDate)\n" + - "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + " inner join (select\n" + + " cn.name, cn.date_created, ed.patient_id\n" + + " from encounter_diagnosis ed\n" + + " inner join concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en'\n" + + ") con on v.patient_id = con.patient_id and date(v.visit_Date) between date(:startDate) and date(:endDate);"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java index c40638be23..480312cde7 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java @@ -39,26 +39,13 @@ public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, Evalu String qry = "select\n" + " v.encounter_id,\n" + - " (case ed.diagnosis_coded\n" + - " when 168737 then 'DIARRHOEA_WITH_DEHYDRATION'\n" + - " when 166569 then 'DIARRHOEA_WITH_SOME_DEHYDRATION'\n" + - " when 168736 then 'DIARRHOEA_WITH_SEVERE_DEHYDRATION'\n" + - " when 145622 then 'CHOLERA'\n" + - " when 152 then 'DYSENTRY'\n" + - " when 117889 then 'GASTROENTERITIS'\n" + - " when 114100 then 'PNEUMONIA'\n" + - " when 168738 then 'SEVERE_PNEUMONIA'\n" + - " when 123093 then 'UPPER_RESPIRATORY_TRACT_INFECTIONS'\n" + - " when 135556 then 'LOWER_RESPIRATORY_TRACT_INFECTIONS'\n" + - " when 121375 then 'ASTHMA'\n" + - " when 168739 then 'PRESUMED_TUBERCULOSIS'\n" + - " when 166623 then 'SUSPECTED_MALARIA'\n" + - " when 168740 then 'TESTED_FOR_MALARIA'\n" + - " when 160148 then 'CONFIRMED_MALARIA' end) as mnci_diagnosis\n" + + " con.name as mnci_diagnosis\n" + "from kenyaemr_etl.etl_clinical_encounter v\n" + - " LEFT JOIN encounter_diagnosis ed ON v.patient_id = ed.patient_id and date(ed.date_created)between date(:startDate) and date(:endDate)\n" + - " LEFT JOIN kenyaemr_etl.etl_laboratory_extract x ON v.patient_id = x.patient_id AND date(v.visit_date) between date(:startDate) and date(:endDate)\n" + - "where date(v.visit_date) between date(:startDate) and date(:endDate);\n"; + " inner join (select\n" + + " cn.name, cn.date_created, ed.patient_id\n" + + " from encounter_diagnosis ed\n" + + " inner join concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en'\n" + + ") con on v.patient_id = con.patient_id and date(v.visit_Date) between date(:startDate) and date(:endDate);"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); From 23cc18c600c1137f9b0651bee0717f04dd94db9e Mon Sep 17 00:00:00 2001 From: patryllus Date: Wed, 24 Apr 2024 10:25:26 +0300 Subject: [PATCH 88/98] Updated MOH204 report to pick all diagnosis reported rather than a subset: reused diagnosis definition --- .../builder/common/MOH204AReportBuilder.java | 8 +-- .../opd/OPDDiagnosisDataEvaluator.java | 1 - .../opd/OPDIMNCIDiagnosisDataEvaluator.java | 60 ------------------- .../opd/OPDMNCIDiagnosisDataDefinition.java | 47 --------------- 4 files changed, 4 insertions(+), 112 deletions(-) delete mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java delete mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java index d7233c59ea..d76399e399 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH204AReportBuilder.java @@ -117,9 +117,9 @@ protected DataSetDefinition datasetColumns() { OPDMalariaAssessmentDataDefinition opdMalariaAssessmentDataDefinition = new OPDMalariaAssessmentDataDefinition(); opdMalariaAssessmentDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); opdMalariaAssessmentDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); - OPDMNCIDiagnosisDataDefinition opdMNCIDiagnosisDataDefinition = new OPDMNCIDiagnosisDataDefinition(); - opdMNCIDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); - opdMNCIDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDDiagnosisDataDefinition opdDiagnosisDataDefinition = new OPDDiagnosisDataDefinition(); + opdDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); OPDTracerDrugsPrescribedDataDefinition opdTracerDrugsPrescribedDataDefinition = new OPDTracerDrugsPrescribedDataDefinition(); opdTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); opdTracerDrugsPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); @@ -170,7 +170,7 @@ protected DataSetDefinition datasetColumns() { dsd.addColumn("Danger signs",opdDangerSignsDataDefinition, paramMapping); dsd.addColumn("Duration",opdComplaintDurationDataDefinition, paramMapping); dsd.addColumn("Malaria",opdMalariaAssessmentDataDefinition, paramMapping); - dsd.addColumn("IMNCI Classification Diagnosis",opdMNCIDiagnosisDataDefinition, paramMapping); + dsd.addColumn("IMNCI Classification Diagnosis",opdDiagnosisDataDefinition, paramMapping); dsd.addColumn("Tracer Drugs Prescribed",opdTracerDrugsPrescribedDataDefinition, paramMapping); dsd.addColumn("Other Treatments Prescribed",opdNonTracerDrugsPrescribedDataDefinition, paramMapping); dsd.addColumn("Immunization Status Up to Date",opdImmunizationStatusDataDefinition, paramMapping); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java index ac89d779ae..6d58c301ad 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java @@ -11,7 +11,6 @@ import org.openmrs.annotation.Handler; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDiagnosisDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMNCIDiagnosisDataDefinition; import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java deleted file mode 100644 index 480312cde7..0000000000 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDIMNCIDiagnosisDataEvaluator.java +++ /dev/null @@ -1,60 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under - * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. - * - * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS - * graphic logo is a trademark of OpenMRS Inc. - */ -package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; - -import org.openmrs.annotation.Handler; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMNCIDiagnosisDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDMalariaAssessmentDataDefinition; -import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; -import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; -import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; -import org.openmrs.module.reporting.evaluation.EvaluationContext; -import org.openmrs.module.reporting.evaluation.EvaluationException; -import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; -import org.openmrs.module.reporting.evaluation.service.EvaluationService; -import org.springframework.beans.factory.annotation.Autowired; - -import java.util.Date; -import java.util.Map; - -/** - * Evaluates MNCI Diagnosis - * OPD Register - */ -@Handler(supports= OPDMNCIDiagnosisDataDefinition.class, order=50) -public class OPDIMNCIDiagnosisDataEvaluator implements EncounterDataEvaluator { - - @Autowired - private EvaluationService evaluationService; - - public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { - EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); - - String qry = "select\n" + - " v.encounter_id,\n" + - " con.name as mnci_diagnosis\n" + - "from kenyaemr_etl.etl_clinical_encounter v\n" + - " inner join (select\n" + - " cn.name, cn.date_created, ed.patient_id\n" + - " from encounter_diagnosis ed\n" + - " inner join concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en'\n" + - ") con on v.patient_id = con.patient_id and date(v.visit_Date) between date(:startDate) and date(:endDate);"; - - SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); - queryBuilder.append(qry); - Date startDate = (Date)context.getParameterValue("startDate"); - Date endDate = (Date)context.getParameterValue("endDate"); - queryBuilder.addParameter("endDate", endDate); - queryBuilder.addParameter("startDate", startDate); - Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); - c.setData(data); - return c; - } -} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java deleted file mode 100644 index 234812cbcd..0000000000 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDMNCIDiagnosisDataDefinition.java +++ /dev/null @@ -1,47 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under - * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. - * - * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS - * graphic logo is a trademark of OpenMRS Inc. - */ -package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; - -import org.openmrs.module.reporting.data.BaseDataDefinition; -import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; -import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; -import org.openmrs.module.reporting.evaluation.caching.Caching; - -/** - * OPD MNCI Diagnosis - */ -@Caching(strategy=ConfigurationPropertyCachingStrategy.class) -public class OPDMNCIDiagnosisDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { - - public static final long serialVersionUID = 1L; - - /** - * Default Constructor - */ - public OPDMNCIDiagnosisDataDefinition() { - super(); - } - - /** - * Constructor to populate name only - */ - public OPDMNCIDiagnosisDataDefinition(String name) { - super(name); - } - - //***** INSTANCE METHODS ***** - - /** - * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() - */ - public Class getDataType() { - return Double.class; - } -} From a4f65c7f588c2f92e746592eaefef381e9719099 Mon Sep 17 00:00:00 2001 From: patryllus Date: Tue, 30 Apr 2024 15:58:23 +0300 Subject: [PATCH 89/98] Added latest risk score, risk category and evaluation date to Active On ART linelist --- .../ActivePatientSnapshotReportBuilder.java | 50 +++++----------- .../LastRiskCategorizationDataDefinition.java | 47 +++++++++++++++ .../LastRiskEvaluationDateDataDefinition.java | 47 +++++++++++++++ .../art/LastRiskScoreDataDefinition.java | 47 +++++++++++++++ .../LastRiskCategorizationDataEvaluator.java | 53 +++++++++++++++++ .../LastRiskEvaluationDateDataEvaluator.java | 54 ++++++++++++++++++ .../art/LastRiskScoreDataEvaluator.java | 53 +++++++++++++++++ .../reports/active_on_art_linelist.xls | Bin 29184 -> 11776 bytes 8 files changed, 316 insertions(+), 35 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskCategorizationDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskEvaluationDateDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskScoreDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskCategorizationDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskEvaluationDateDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskScoreDataEvaluator.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/ActivePatientSnapshotReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/ActivePatientSnapshotReportBuilder.java index 11f70bf3d4..6cc704a6e8 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/ActivePatientSnapshotReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/ActivePatientSnapshotReportBuilder.java @@ -30,43 +30,10 @@ import org.openmrs.module.kenyaemr.reporting.cohort.definition.ActivePatientsSnapshotCohortDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.ActiveInProgramConverter; import org.openmrs.module.kenyaemr.reporting.data.converter.BooleanResultsConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.ActivePatientsPopulationTypeDataDefinition; import org.openmrs.module.kenyaemr.reporting.data.converter.definition.MFLCodeDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ActiveInMchDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ActiveInOtzDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ActiveInOvcDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ActiveInTbDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.AgeAtReportingDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.BaselineCD4CountDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.BaselineCD4DateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.BloodPressureDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLArtStartDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLCaseManagerDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLCurrentRegLineDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLCurrentRegimenDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLDifferentiatedCareModelDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLFirstRegimenDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLHivSelfVisitDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastCD4DateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastCD4ResultDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastVLDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastVLJustificationDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastVLResultDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastVLResultValidityDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastVisitDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLLastWHOStageDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLMonthsOfPrescriptionDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLNextAppointmentDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLRefillDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.ETLStabilityDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.HeightAtArtDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.MedicalCoverDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.MedicalCoverStatusDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.NCDDateDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.NCDStatusDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.NCDsDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.WHOStageArtDataDefinition; -import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.WeightAtArtDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.*; import org.openmrs.module.metadatadeploy.MetadataUtils; import org.openmrs.module.reporting.cohort.definition.CohortDefinition; import org.openmrs.module.reporting.data.DataDefinition; @@ -201,6 +168,15 @@ protected PatientDataSetDefinition activePatientsDataSetDefinition(String datase lastCD4ResultDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); ETLLastCD4DateDataDefinition etlLastCD4DateDataDefinition = new ETLLastCD4DateDataDefinition(); etlLastCD4DateDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + LastRiskScoreDataDefinition lastRiskScoreDataDefinition = new LastRiskScoreDataDefinition(); + lastRiskScoreDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + lastRiskScoreDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + LastRiskCategorizationDataDefinition lastRiskCategorizationDataDefinition = new LastRiskCategorizationDataDefinition(); + lastRiskCategorizationDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + lastRiskCategorizationDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + LastRiskEvaluationDateDataDefinition lastRiskEvaluationDateDataDefinition = new LastRiskEvaluationDateDataDefinition(); + lastRiskEvaluationDateDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + lastRiskEvaluationDateDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); DataConverter formatter = new ObjectFormatter("{familyName}, {givenName}"); @@ -256,6 +232,10 @@ protected PatientDataSetDefinition activePatientsDataSetDefinition(String datase dsd.addColumn("AHD Client", new CalculationDataDefinition("AHD Client", new PatientsWithAdvancedHivDiseaseCalculation()), "", new BooleanResultsConverter()); dsd.addColumn("Medical cover", medicalCoverDataDefinition, "endDate=${endDate}"); dsd.addColumn("Medical cover status", medicalCoverStatusDataDefinition, "endDate=${endDate}"); + dsd.addColumn("Last risk score", lastRiskScoreDataDefinition, "endDate=${endDate}"); + dsd.addColumn("Risk categorization", lastRiskCategorizationDataDefinition, "endDate=${endDate}"); + dsd.addColumn("Evaluation date", lastRiskEvaluationDateDataDefinition, "endDate=${endDate}"); + return dsd; diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskCategorizationDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskCategorizationDataDefinition.java new file mode 100644 index 0000000000..0713baae9d --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskCategorizationDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.art; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * Most current risk categorization + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class LastRiskCategorizationDataDefinition extends BaseDataDefinition implements PersonDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public LastRiskCategorizationDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public LastRiskCategorizationDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskEvaluationDateDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskEvaluationDateDataDefinition.java new file mode 100644 index 0000000000..ca79ae2963 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskEvaluationDateDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.art; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * Most current risk evaluation date + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class LastRiskEvaluationDateDataDefinition extends BaseDataDefinition implements PersonDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public LastRiskEvaluationDateDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public LastRiskEvaluationDateDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskScoreDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskScoreDataDefinition.java new file mode 100644 index 0000000000..219c7538e0 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/art/LastRiskScoreDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.art; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * Most current risk score + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class LastRiskScoreDataDefinition extends BaseDataDefinition implements PersonDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public LastRiskScoreDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public LastRiskScoreDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskCategorizationDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskCategorizationDataEvaluator.java new file mode 100644 index 0000000000..e829981ae3 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskCategorizationDataEvaluator.java @@ -0,0 +1,53 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.art; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.LastRiskCategorizationDataDefinition; +import org.openmrs.module.reporting.data.person.EvaluatedPersonData; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.data.person.evaluator.PersonDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates LastRiskCategorizationDataDefinition + */ +@Handler(supports= LastRiskCategorizationDataDefinition.class, order=50) +public class LastRiskCategorizationDataEvaluator implements PersonDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedPersonData c = new EvaluatedPersonData(definition, context); + + String qry = "select ml.patient_id,\n" + + " mid(max(concat(ml.date_created ,concat(ml.description ))),20) as risk_score\n" + + "from kenyaemr_ml_patient_risk_score ml where ml.date_created <= date(:endDate)\n" + + "GROUP BY ml.patient_id;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskEvaluationDateDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskEvaluationDateDataEvaluator.java new file mode 100644 index 0000000000..04d031f5c5 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskEvaluationDateDataEvaluator.java @@ -0,0 +1,54 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.art; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.LastRiskCategorizationDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.LastRiskEvaluationDateDataDefinition; +import org.openmrs.module.reporting.data.person.EvaluatedPersonData; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.data.person.evaluator.PersonDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates LastRiskCategorizationDataDefinition + */ +@Handler(supports= LastRiskEvaluationDateDataDefinition.class, order=50) +public class LastRiskEvaluationDateDataEvaluator implements PersonDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedPersonData c = new EvaluatedPersonData(definition, context); + + String qry = "select ml.patient_id,\n" + + " mid(max(concat(ml.date_created ,NULLIF(concat(date(ml.evaluation_date)),'0000-00-00'))),20) as evaluation_date\n" + + "from kenyaemr_ml_patient_risk_score ml where ml.date_created <= date(:endDate)\n" + + "GROUP BY ml.patient_id;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskScoreDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskScoreDataEvaluator.java new file mode 100644 index 0000000000..eaa2b32afc --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/art/LastRiskScoreDataEvaluator.java @@ -0,0 +1,53 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.art; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.art.LastRiskScoreDataDefinition; +import org.openmrs.module.reporting.data.person.EvaluatedPersonData; +import org.openmrs.module.reporting.data.person.definition.PersonDataDefinition; +import org.openmrs.module.reporting.data.person.evaluator.PersonDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates LastRiskScoreDataDefinition + */ +@Handler(supports= LastRiskScoreDataDefinition.class, order=50) +public class LastRiskScoreDataEvaluator implements PersonDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedPersonData evaluate(PersonDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedPersonData c = new EvaluatedPersonData(definition, context); + + String qry = "select ml.patient_id,\n" + + " mid(max(concat(ml.date_created ,concat(ml.risk_score ))),20) as risk_score\n" + + " from kenyaemr_ml_patient_risk_score ml where ml.date_created <= date(:endDate)\n" + + " GROUP BY ml.patient_id;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/omod/src/main/webapp/resources/reports/active_on_art_linelist.xls b/omod/src/main/webapp/resources/reports/active_on_art_linelist.xls index 1d5daed76e592178e5ea1a5d6ee63c674fd2ee12..28c810c212615fcacc903b27f232fbe0392661ea 100644 GIT binary patch literal 11776 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

1)OhiZY?>r`DG5c{S= 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ξ4@W56ew4|GwE&C$h>kxFGfHAq~)!` z{eHGPj(ogmb;r$5+B6Kj=hJ?`s%uSCFK+BPZCq{d*o;*!A3xoD;IojXQ%aJjEl6AS z?wx|1l&!61&MNeqwermG&A6`{4+}1NUE+MQxZ7p#d(&n&yLBS*!fnycEp>ahdT{&2 z$ALFzZQmQ$q|1hmiP8z%4wat!dCiNY6JBk?zuHspS@_C^)0Um=^LhGip^-4#7@M(0+*6%)mlLZc(Ff`keUTw?mFZI8J#uY5#=NW4fI= z;vF=s(W+UAjaH0dZiI{-9N=@w=ia5%V-ov)(upe{K407F&88VIZp{5b=Cxp*?Kh%e@``sa?HKr3*V8LvPe%Hz>aa87BX^gn7gIk=+teoO z^aBUhw<)lUmoCq?~=`m3E=&+nYXIb3(K2NJRN3sfWjI4!zw@ zoZobAit_tG%hoiy)qVf0HHvlTd{6Dz{o?#y_N@s`zq#g7 zv9Oa8_gG&*#(&ziq?sPjc=?u}!fckYhxKC%6S8rPDK7j+vWub4Gy zx}B<<3DS{0B%Ovon93c zJt_uPr2O)r{d~I}-$dRD>@;QPyT|?(wrFynwr46%z4=~!{-;Y`HA6mdJ((7}z3Io7 z{I0yb-RQycOt)L&ezGM`GGn%9`aij~Lhk!{#LeMb>#TlsB`VX-z2NJf?cEYc#r$xrm;)Q zTeMdXJ`&q)*gMl3P0H(b)Mj+#_PWn<{I2YKcjC-W{tcXu4=Id(*6XW}xYK?5ojlQV z#;CM!f7$sM-LD+}_l?i$GxmwSl^HWOo%M71vc|!qLzdp$n(%yO)4RJR zZ=Jn%aofo6zy5Gsucd7c?wYdXB==}JzH<*B-e|S?f^)2BbG*%geN!GbUoq`M^dozZ z?xmmHUsm_vCA)PM=VvLB{9-=0J<#;tj!w7xd1NIn9#A-4F>iX}o_R}a)>_EMbM@T= zcN`5q*2$xdm+jP28~ORnt<(J<7tYPDGkNjO=%N;n2EG?tyefA5%*Znm{q@0ad<+xp$tKQ+32x#LIv&zV&X2Rt~YI`Hbb z-`Jej_co9H{qg$EGu94&-2d3Y*T4Lr(!BX_Nt#Q;t9x&re0cEPm#>Gb-aPsu?%?Zn z2`{HEo8%l9WOwKMvEM!)H7{t(A<4_fh(!FR%@vGki7Z)J2%c2?;Y~VqK(CuqbGi| z@Q!oWA>t8xzZv&d@|>?^UrsJdt>4k6?+p)!PVdcMoN;-}-c-BDSEJgrnfExi{)W_P zjgwZM4qBa+5qPHOk8H9md||N2|J-C%mrwfLdcVoWQRBbu9GL6S*601WFU}R*8nfLi zM42{ny8F78uOi*wnKSzrCx_z8a~-BWwLe?FAnD^@g3IbTo?mbC+ASib=)2S(gCl3B z%-R;b_``1V?jBDb=5;jW#KJ8_rC+xA)jw{6N4xW9Q(_LMMiost{_a#!N0-Sjn;%Zv zy*YS%YDxd%IXmqF4))nLx%bs$WwQ_d;xr&&LvP9MYfGO_T-oc%OXqDbH9py@-WOip zc$)o1Qu@`|C)>Xt^I)xQ%R28#pGRjsu#vGCUEXyxPjjut^JV*Ay}3K; z>r?Spx8{V6Dz4a5&(`O8&@y#+6OXt%>xTc(b^h{NjvbpnJ2m~D?Vi}lo%YPh;6%Fy zbvV&Gw8p{UfKQHvOp#pMv8vRwQIE~LKgy}|`+JQqujzO5Zj0t8mfsv%QG9!wGQqdb zwEMenUAXmVgTK9c*RC;=^%V_=_WG&Mo~Zb*4$N@-d)B9JizV_=6-(8nqoQnAH}+oE z^VhdFc*pcUJ^!cmUGMi{KdtCC?#mP7hYcP4(syc!YiyeTba}1S0q1(CdqiBzS?SXJ z>~ZGDfOU@FC5@8hwb~uKXKz5oCO72~Y1ow%`P`gzr(2QJ3(6K3K5dcx+0YHPmuA(z zliX{~3)zmH*-w9uQ+&}m)2VRZ<@oN4>kl3>!0~?mu_<%yy0zXu|IuZa`N__Ejwp`I z_|g8YPbQ7`^m!9pUK$-9JoVV5Bc69Xa%Z`YD{Ge=wf**!dl9G7-^p-E3 zN_w`Axh4BCd)DK^X^G3G4Dgx#NqGLa8xETWzv?;dTAk3KZH*_s>)XEO`SF`BMvLp; zdEWo-p{WHUUf=S%`o8qDZ#PWKT{yPoq_rytyq>iDt7U`goQ_RWv^#y`vyz4lHlOS^ ze22^SeT65lcRd-T@bAANYh1oNO3uX%2Nr#%y<-y8P(#JwF$jttc_PQNnLLws`k{jAB#GdIW7 zp0{Yg%mq7E^u6x+>44Q825-2w@!W&oHg0nJ;Oyb+A2f(Nem^_RF>L*Tw2^)5j{Y&H z#>Ja9vyO?ca+{U!^gUd(drqGdzpO6r+dn?hc1*x$ZN5sMw!8nQ&Y zUvm8}Y5wQ-8K-Q%nb>XDhBqH|*nNk)niKMl`mIN98yc_M)V2SBN%NJ(Cl19r%xw2| zz;)N(8l@)Y4(*n@;7H5$oa6e6)e*xaO{cCrKH&)yVz;@7n=2c(^P7Gd64gR+AJ>jY zlj=$?_H_4+>wkD(&FxFibl;TIt9_?UyH>YYdo}PX+oOG1i`aED=f^L(H+M>>rFTBQ z>1p5emqi&KkG(V9vSKn_&PpfDvF)K+b>Zjb*Ii!i96M+0s+VhiikXqPb;;Tf_f|aq zV77y;kJr47XFHtkrLq354c^I?sqcy@$A|m>~CY24ExG;)rRfsHZ51UJ^XD#lU!Agql$aMFVcqw47X2BbbHwH zN%uSX8wafaYRJtM`*(Ow?Ns17V(XLI{X5Pp?b&GSV9{us9}eHNd)4oZ<4w=B(!}c@ z=Z<-yIzKhR`|c4B--0Xe?Q{9zNSiAidae!ks`#Qs&Xdp$DnC@LMF^Y`B{$9v`jlI?QH*fgvZ3^K@F^Jw%9Q)&FFsKtGwN#O;B~d7E$)8w&Vs{vyMLY; zpXSwN+QpVxTizZ&Q`PjoXU^j{exWJtzc@+>$*U*?RB%-({dX5c@22eEurY*B%6@sUzT5& zFI<-*{;J>Jy+^Ou?WIic1a5`^^6F)^Y=V9&y1|I9M8Zp+!ic56uWP?>BZJydN15o=_SYR{E zLTvahG+HYngLxmg_lJNpA3Z$!>n;|o zs9|(>bIyqw`Ko*%+tNM(T_7Y{a;DefGZKcglRg#wvlb9^z_T$XLzD(}*eq7Wu_BR} zv*9FJEQ{|hVpqttH3p<2JJz0c;2b$8&Y5!&G4_nh+H{0)}5`vdT^ec7gv+>7S-Zvb3R-ht}f@x`EfGN zp9|pRTp$<31#|Vd5UxJgfNRKxvSDmE+lY-|BiSf6nvG!_vrX8hTr;*g*Me)w#d58< z)?6GH&n2*J*hG%uND&EdV{rg9AtQ_J#n40??<8^-xv;LRo5-E3!FjM+RXAQ1aUF48 zv9H)q0#(=mR?ccwVMEyZYy%dmaA8^DS&gzHI1^RaW*o1ID3)!-wr1nlcowQ~iELZ0 zog|5C&voFExsKvaTng8j>%yf<1G;kEI7UQz3e7E;nB|>?b!2&ik(PqNB%Ts4Nll5j zZ7ti{tPfjk-U)FlbDvKPPo#Y_!eCz>he%m(*2^n92L52u>@q z5%Gq>YiR^`Wr33VOC+`usl-lVFL97KN}MF*vS>EWUBbXk!N&%{sBwFf~0DNWtS;A+%+nfPXmj6w}XSGud<;XfhB z#{+JF)Clk)z*`qu&rNV1k08~Xx~w-b&O#C%CF16S_y>=sKe}k=j4u97NQT#Y3CKVD z$uor!s#gwV{S&+NjfiL*o}8Fiy)s1gkCsDG3-UM?S9MjczLNhsN}=6oUiz<-@gK&y z6#6FO6iFAnVKtd)i?d^0a9AN3$5B(NU6X&dd>s6=uOKH=eI7iPya3|1``z!4x*U z0je2g1pN&*tX_ToEWLHEwuo7kIr12(kYPtB>i+aa1BK~D54HXk7a7|;>7?uM!k{%4 zl$7Yw4Kf1s-_L&!3*fmWxf=x%7N?Xr#xPBBVqIts$Of^&dPnlYYlf=x_wP};zgUYu z6=eQG*|7dU-Iet%_!sK+@5kzYtA(m#iDmf742$VE#X*)C&xB%Sr`x^I-SHY<9KK(K zseM&f3=Sg*R}bo}%osZIiEqiyw26Zs3Ii6QGbcN@*26Z~uVd^CFwGlwIv8MjY12-r z0p`aaBYJzF*1{Uf5xB5b2P{cz*dxT z`FhyM%`?(J1g9A<`NZqx*T?47PWJ>o+yD!*WKTnWL!5jpg?;Fv_6Wn@r5Xl#;por0 ze1^km7+h!}y3kFf95$@@?=6K+%ewG59$-yzyuX{_a6$!qOzHU1nSI4)9b(gXeu(^_ z3+36yL&j@<3z5O3kgfxmGm|~R2Q0a z(ZS%V{t~ff_;Y{tpgsK(U4)6X@t+-EN3wW3~Nrxzd_KokxHNCK#v9k z1WG9&oT}48c7SlUP7B!s!pS-<}1gMi93dT?VQuI(gyk5Dp9twdcbY;|r+mNr5 z9txHb3eX7$ zF+-|T+=Pby3y4lO-Ayv90H`Yrts?IqLH}9#|A-80W&RoY_(_#UgeX8fWM==nizWu0 zm6?UAB2~6p)^0?mB3Bj_5fLrZ|BD%ZM%M;EaB0TRr+AX^?)1-R!kaNqn{R!`n%e)( J`!}$_{{a5nb=&{| From a240ea4902c529ca12438def673681d049c621ad Mon Sep 17 00:00:00 2001 From: patryllus Date: Thu, 2 May 2024 11:34:09 +0300 Subject: [PATCH 90/98] Bumping orderentry in kenyaemr to 1.6.3 - non-hiv lab manifest --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6383a6ee44..c553ec6c20 100755 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ 3.0.1 1.4.0 3.0.0 - 1.6.2 + 1.6.3 0.5.2 1.2.0 4.5.10 From c00c0b0f428a290acaa571e024f265eb9805bbdb Mon Sep 17 00:00:00 2001 From: patryllus Date: Thu, 2 May 2024 14:35:19 +0300 Subject: [PATCH 91/98] Bumping orderentry in kenyaemr to 1.6.3 - non-hiv lab manifest adding SNAPSHOT --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c553ec6c20..81a121d6f9 100755 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ 3.0.1 1.4.0 3.0.0 - 1.6.3 + 1.6.3-SNAPSHOT 0.5.2 1.2.0 4.5.10 From 835fdeaba6ea35c7086d39a70b353d2e53e6ccf7 Mon Sep 17 00:00:00 2001 From: gabu90 Date: Fri, 3 May 2024 09:32:02 +0300 Subject: [PATCH 92/98] Add a column on NUPI number on the ANC register enchancements --- .../mchms/ANCRegisterReportBuilder.java | 3 +++ .../reports/pmtct/ANC_register_template.xls | Bin 27136 -> 27136 bytes 2 files changed, 3 insertions(+) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/mchms/ANCRegisterReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/mchms/ANCRegisterReportBuilder.java index 19eba85103..2dd6042832 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/mchms/ANCRegisterReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/mchms/ANCRegisterReportBuilder.java @@ -93,8 +93,10 @@ protected DataSetDefinition datasetColumns() { DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName} {middleName}"); DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); PatientIdentifierType upn = MetadataUtils.existing(PatientIdentifierType.class, HivMetadata._PatientIdentifierType.UNIQUE_PATIENT_NUMBER); + PatientIdentifierType nupi = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.NATIONAL_UNIQUE_PATIENT_IDENTIFIER); DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); DataDefinition identifierDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(upn.getName(), upn), identifierFormatter); + DataDefinition nupiDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(nupi.getName(), nupi), identifierFormatter); ANCVisitNumberDataDefinition ancVisitNumberDataDefinition = new ANCVisitNumberDataDefinition(); ancVisitNumberDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); @@ -232,6 +234,7 @@ protected DataSetDefinition datasetColumns() { dsd.addColumn("Sex", new GenderDataDefinition(), ""); dsd.addColumn("Unique Patient Number", identifierDef, null); + dsd.addColumn("National Unique Patient Identifier", nupiDef, null); dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); // new columns dsd.addColumn("ANC Number", new ANCNumberDataDefinition(),""); diff --git a/omod/src/main/webapp/resources/reports/pmtct/ANC_register_template.xls b/omod/src/main/webapp/resources/reports/pmtct/ANC_register_template.xls index 8e4425e160240287eae2193a7c7723abfdfefbb8..2b46708960421fc0bf69e3db33326fcff5f2662e 100644 GIT binary patch delta 7980 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 delta 7825 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 A*#H0l From ed4fcec93755a7a9c5a4620b63c057a21903a8d7 Mon Sep 17 00:00:00 2001 From: ojwanganto Date: Sat, 4 May 2024 12:56:21 +0300 Subject: [PATCH 93/98] (fix) remove dependencies on Bahmni appointment module - KHP3-5543 --- .../SyncHFEAppointmentsWithBahmniModule.java | 578 ------------------ omod/src/main/resources/config.xml | 6 - pom.xml | 7 - 3 files changed, 591 deletions(-) delete mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java b/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java deleted file mode 100644 index de9d0e3918..0000000000 --- a/api/src/main/java/org/openmrs/module/kenyaemr/advice/SyncHFEAppointmentsWithBahmniModule.java +++ /dev/null @@ -1,578 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under - * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. - * - * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS - * graphic logo is a trademark of OpenMRS Inc. - */ -package org.openmrs.module.kenyaemr.advice; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.openmrs.Encounter; -import org.openmrs.Obs; -import org.openmrs.Person; -import org.openmrs.api.ConceptService; -import org.openmrs.api.ObsService; -import org.openmrs.api.PersonService; -import org.openmrs.api.context.Context; -import org.openmrs.module.appointments.model.Appointment; -import org.openmrs.module.appointments.model.AppointmentKind; -import org.openmrs.module.appointments.model.AppointmentServiceDefinition; -import org.openmrs.module.appointments.service.AppointmentsService; -import org.openmrs.module.appointments.util.DateUtil; -import org.openmrs.module.kenyaemr.metadata.HivMetadata; -import org.springframework.aop.AfterReturningAdvice; -import org.openmrs.module.appointments.service.AppointmentServiceDefinitionService; -import org.openmrs.module.kenyaemr.util.EmrUtils; -import org.openmrs.module.kenyaemr.metadata.MchMetadata; -import org.openmrs.module.kenyaemr.metadata.TbMetadata; -import org.openmrs.api.PatientService; -import org.openmrs.Patient; - -import java.lang.reflect.Method; -import java.text.SimpleDateFormat; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -/** - * Synchronizes appointments documented in HTML forms with Bahmni appointments module - * Invoked after saving HFE forms - */ -public class SyncHFEAppointmentsWithBahmniModule implements AfterReturningAdvice { - - private Log log = LogFactory.getLog(this.getClass()); - - // HIV appointments - public static final String NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID = "5096AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - public static final String NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID = "162549AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - - public static final String APPOINTMENT_REASON_CONCEPT_UUID = "160288AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; - - public static final String HIV_FOLLOWUP_SERVICE = "885b4ad3-fd4c-4a16-8ed3-08813e6b01fa"; - public static final String DRUG_REFILL_SERVICE = "a96921a1-b89e-4dd2-b6b4-7310f13bbabe"; - public static final String HIV_LAB_TEST_SERVICE = "61488cf6-fad4-11ed-be56-0242ac120002"; - public static final String COUNSELLING_SERVICE = "c6ce2119-c084-49c7-aa3f-be9fa1f3863e"; - - // MCH appointments - public static final String MCH_POSTNATAL_VISIT_SERVICE = "dcde8ca4-32a5-4c67-9982-33346e39813f"; - public static final String MCH_ANTENATAL_VISIT_SERVICE = "372eed95-6493-490a-8891-8374fe566aeb"; - public static final String CWC_FOLLOWUP_SERVICE = "b696161d-3755-4ff0-94a9-91f0148c18ab"; - - // Prep appointments - public static final String PREP_INITIAL_SERVICE = "242f74b9-b0a3-4ba6-9be3-8f57591e3dff"; - public static final String PREP_FOLLOWUP_SERVICE = "6f9b19f6-ac25-41f9-a75c-b8b125dec3da"; - public static final String PREP_MONTHLY_REFILL_SERVICE = "b8c3efd9-e106-4409-ae0e-b9c651484a20"; - public static final String PREP_INITIAL_FORM = "1bfb09fc-56d7-4108-bd59-b2765fd312b8"; - public static final String PREP_MONTHLY_REFILL_FORM = "291c03c8-a216-11e9-a2a3-2a2ae2dbcce4"; - public static final String PREP_FOLLOWUP_FORM = "ee3e2017-52c0-4a54-99ab-ebb542fb8984"; - - // Tb appointments - public static final String TB_SERVICE = "e4737031-7e3b-4c63-a929-588613b2c832"; - - // KP appointments - public static final String KP_CLINICAL_SERVICE = "b1b75503-5175-433c-a25d-763bc9650ebd"; - public static final String KP_CLINICAL_VISIT_FORM = "92e041ac-9686-11e9-bc42-526af7764f64"; - - - AppointmentsService appointmentsService = Context.getService(AppointmentsService.class); - AppointmentServiceDefinitionService appointmentServiceDefinitionService = Context.getService(AppointmentServiceDefinitionService.class); - ObsService obsService = Context.getObsService(); - ConceptService conceptService = Context.getConceptService(); - PersonService personService = Context.getPersonService(); - boolean followUpAppointment = false; - boolean nxtAppointment = false; - SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); - Date nextApptDate = null; - Date refillApptDate = null; - Integer appointmentReason = null; - - @Override - public void afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable { - if (method.getName().equals("saveEncounter")) { // handles both create and edit - Encounter enc = (Encounter) args[0]; - List appointmentForms = Arrays.asList(HivMetadata._Form.MOH_257_VISIT_SUMMARY, HivMetadata._Form.HIV_GREEN_CARD, MchMetadata._Form.MCHMS_ANTENATAL_VISIT, MchMetadata._Form.MCHCS_FOLLOW_UP, MchMetadata._Form.MCHMS_POSTNATAL_VISIT, PREP_FOLLOWUP_FORM, PREP_INITIAL_FORM, PREP_MONTHLY_REFILL_FORM, KP_CLINICAL_VISIT_FORM, TbMetadata._Form.TB_FOLLOW_UP, HivMetadata._Form.FAST_TRACK ); - - if (enc != null && enc.getForm() != null && appointmentForms.contains(enc.getForm().getUuid())) { - Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - - if(enc.getVoided() == true && editAppointment != null && enc.getForm() != null){ - // Get appointment obs - Appointment hivFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment drugRefillAppointment = hivFollowUpAppointment.getRelatedAppointment(); - - // delete HIV followup appointment - if(hivFollowUpAppointment != null ) { - nxtAppointment = true; - hivFollowUpAppointment.setVoided(true); - hivFollowUpAppointment.setDateVoided(new Date()); - hivFollowUpAppointment.setVoidedBy(Context.getAuthenticatedUser()); - } - - if(nxtAppointment && followUpAppointment) { - Appointment app = appointmentsService.validateAndSave(hivFollowUpAppointment); - } - - // delete existing appointment for drug refill - if(drugRefillAppointment != null) { - drugRefillAppointment.setVoided(true); - drugRefillAppointment.setDateVoided(new Date()); - drugRefillAppointment.setVoidedBy(Context.getAuthenticatedUser()); - Appointment app = appointmentsService.validateAndSave(drugRefillAppointment); - } - - } else if (editAppointment != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { - // pick HIV followup forms - processEditHivFollowupEncounter(enc); - - } else if (enc != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(HivMetadata._Form.HIV_GREEN_CARD) || enc.getForm().getUuid().equals(HivMetadata._Form.MOH_257_VISIT_SUMMARY))) { - // pick HIV followup forms - processCreateHivFollowupEncounter(enc); - - } else if(enc != null && enc.getForm() != null && - (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_ANTENATAL_VISIT) || - enc.getForm().getUuid().equals(MchMetadata._Form.MCHCS_FOLLOW_UP) || - enc.getForm().getUuid().equals(PREP_FOLLOWUP_FORM) || - enc.getForm().getUuid().equals(PREP_INITIAL_FORM) || - enc.getForm().getUuid().equals(PREP_MONTHLY_REFILL_FORM) || - enc.getForm().getUuid().equals(KP_CLINICAL_VISIT_FORM) || - enc.getForm().getUuid().equals(TbMetadata._Form.TB_FOLLOW_UP) || - enc.getForm().getUuid().equals(HivMetadata._Form.FAST_TRACK) )) { - - processProgramAppointments(enc); - } else if(enc != null && (enc.getForm() != null && (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_POSTNATAL_VISIT) || enc.getForm() != null && enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_DELIVERY)))) { - - processMCHEncounter(enc); - } - } - } - - } - - /** - * Edit HIV appointments ie HIV consultation, Drug refill and lab - */ - private void processEditHivFollowupEncounter(Encounter enc) throws Throwable { - // Get appointment obs - Appointment hivFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment drugRefillAppointment = hivFollowUpAppointment.getRelatedAppointment(); - Integer appointmentReasonToEdit = null; - - List obs = obsService.getObservations( - Arrays.asList(personService.getPerson(enc.getPatient().getPersonId())), - Arrays.asList(enc), - Arrays.asList( - conceptService.getConceptByUuid(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID), - conceptService.getConceptByUuid(NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID), - conceptService.getConceptByUuid(APPOINTMENT_REASON_CONCEPT_UUID) - ), - null, - null, - null, - null, - null, - null, - null, - null, - false - ); - - for (Obs o : obs) { // Loop through the obs and compose Appointment object for Bahmni - if((o.getConcept().getUuid().equals(APPOINTMENT_REASON_CONCEPT_UUID)) && hivFollowUpAppointment != null ) { - appointmentReasonToEdit = o.getValueCoded().getConceptId(); - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - if(appointmentReasonToEdit != null) { - // Allow for editing of appointment service based on updated appointment reasons from green card - String serviceUuid = getAppointmentServiceUuidFromConcept(appointmentReasonToEdit); - if(serviceUuid != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(serviceUuid).getId()); - hivFollowUpAppointment.setService(appointmentServiceDefinition); - } - } - if(o.getValueCoded().getConceptId() == 160523 || o.getValueCoded().getConceptId() == 160521 ) { - followUpAppointment = true; - } - } - - // edit HIV followup appointment - if((o.getConcept().getUuid().equals(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID)) && hivFollowUpAppointment != null ) { - nxtAppointment = true; - Date nextApptStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date nextApptEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - hivFollowUpAppointment.setStartDateTime(nextApptStartDateTime); - hivFollowUpAppointment.setEndDateTime(nextApptEndDateTime); - if(enc.getVoided() == true) { - hivFollowUpAppointment.setVoided(true); - hivFollowUpAppointment.setDateVoided(new Date()); - hivFollowUpAppointment.setVoidedBy(Context.getAuthenticatedUser()); - } - } - - if(nxtAppointment && followUpAppointment) { - Appointment app = appointmentsService.validateAndSave(hivFollowUpAppointment); - } - - // edit existing appointment for drug refill - if((o.getConcept().getUuid().equals(NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID)) && drugRefillAppointment != null) { - Date refillStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date refillEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - drugRefillAppointment.setStartDateTime(refillStartDateTime); - drugRefillAppointment.setEndDateTime(refillEndDateTime); - drugRefillAppointment.setVoided(enc.getVoided()); - if(enc.getVoided() == true) { - drugRefillAppointment.setVoided(true); - drugRefillAppointment.setDateVoided(new Date()); - drugRefillAppointment.setVoidedBy(Context.getAuthenticatedUser()); - } - Appointment app = appointmentsService.validateAndSave(drugRefillAppointment); - } - - //create new refill appointment if added on editing followup - if((o.getConcept().getUuid().equals(NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID)) && drugRefillAppointment == null && - appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE) != null) { - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE).getId()); - - Appointment editedFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment refillAppointment = new Appointment(); - Date refillStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date refillEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - refillAppointment.setRelatedAppointment(editedFollowUpAppointment); - refillAppointment.setPatient(enc.getPatient()); - refillAppointment.setService(appointmentServiceDefinition); - refillAppointment.setStartDateTime(refillStartDateTime); - refillAppointment.setEndDateTime(refillEndDateTime); - refillAppointment.setLocation(enc.getLocation()); - refillAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - refillAppointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app = appointmentsService.validateAndSave(refillAppointment); - - if (editedFollowUpAppointment != null) { - editedFollowUpAppointment.setRelatedAppointment(app); - Appointment app2 = appointmentsService.validateAndSave(editedFollowUpAppointment); - } - } - - } - } - - /** - * Create HIV appointments ie HIV consultation, Drug refill and lab - */ - private void processCreateHivFollowupEncounter(Encounter enc) throws Throwable { - Appointment nextAppointment = new Appointment(); - - // Get appointment obs - List obs = obsService.getObservations( - Arrays.asList(personService.getPerson(enc.getPatient().getPersonId())), - Arrays.asList(enc), - Arrays.asList( - conceptService.getConceptByUuid(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID), - conceptService.getConceptByUuid(NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID), - conceptService.getConceptByUuid(APPOINTMENT_REASON_CONCEPT_UUID) - ), - null, - null, - null, - null, - null, - null, - null, - null, - false - ); - - for (Obs o : obs) { // Loop through the obs and compose Appointment object for Bahmni - if (o.getConcept().getUuid().equals(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID)) { - nextApptDate = o.getValueDatetime(); - } - if (o.getConcept().getUuid().equals(APPOINTMENT_REASON_CONCEPT_UUID)) { - appointmentReason = o.getValueCoded().getConceptId(); - } - if (o.getConcept().getUuid().equals(NEXT_DRUG_REFILL_APPOINTMENT_DATE_CONCEPT_UUID)) { - refillApptDate = o.getValueDatetime(); - } - - if((appointmentReason != null && appointmentReason == 160523) || (appointmentReason != null && appointmentReason == 160521) ) { - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - - // create HIV followup appointment - if(nextApptDate != null && appointmentServiceDefinitionService.getAppointmentServiceByUuid(HIV_FOLLOWUP_SERVICE) != null ) { - - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(HIV_FOLLOWUP_SERVICE).getId()); - Date nextApptStartDateTime = DateUtil.convertToDate(dateFormat.format(nextApptDate).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date nextApptEndDateTime = DateUtil.convertToDate(dateFormat.format(nextApptDate).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - nextAppointment.setUuid(enc.getUuid()); - nextAppointment.setPatient(enc.getPatient()); - nextAppointment.setService(appointmentServiceDefinition); - nextAppointment.setStartDateTime(nextApptStartDateTime); - nextAppointment.setEndDateTime(nextApptEndDateTime); - nextAppointment.setLocation(enc.getLocation()); - nextAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - nextAppointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app = appointmentsService.validateAndSave(nextAppointment); - } - - // create appointment for drug refill - if (refillApptDate != null && nextApptDate != null && appointmentReason == 160521 && - appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE) != null ) { - AppointmentServiceDefinition refillApptServiceDefinition = new AppointmentServiceDefinition(); - refillApptServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE).getId()); - Appointment currentFollowUpAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment refillAppointment = new Appointment(); - Date refillStartDateTime = DateUtil.convertToDate(dateFormat.format(refillApptDate).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date refillEndDateTime = DateUtil.convertToDate(dateFormat.format(refillApptDate).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - refillAppointment.setRelatedAppointment(currentFollowUpAppointment); - refillAppointment.setPatient(enc.getPatient()); - refillAppointment.setService(refillApptServiceDefinition); - refillAppointment.setStartDateTime(refillStartDateTime); - refillAppointment.setEndDateTime(refillEndDateTime); - refillAppointment.setLocation(enc.getLocation()); - refillAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - refillAppointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app = appointmentsService.validateAndSave(refillAppointment); - - if (currentFollowUpAppointment != null ) { - currentFollowUpAppointment.setRelatedAppointment(app); - Appointment app2 = appointmentsService.validateAndSave(currentFollowUpAppointment); - } - } - - } else if ( appointmentReason != null && appointmentReason == 1283) { - // create lab tests appointment - if ( appointmentServiceDefinitionService.getAppointmentServiceByUuid(HIV_LAB_TEST_SERVICE) != null && nextApptDate != null ) { - AppointmentServiceDefinition labApptServiceDefinition = new AppointmentServiceDefinition(); - labApptServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(HIV_LAB_TEST_SERVICE).getId()); - Date labApptStartDateTime = DateUtil.convertToDate(dateFormat.format(nextApptDate).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date labApptEndDateTime = DateUtil.convertToDate(dateFormat.format(nextApptDate).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - Appointment labAppointment = new Appointment(); - labAppointment.setUuid(enc.getUuid()); - labAppointment.setPatient(enc.getPatient()); - labAppointment.setService(labApptServiceDefinition); - labAppointment.setStartDateTime(labApptStartDateTime); - labAppointment.setEndDateTime(labApptEndDateTime); - labAppointment.setLocation(enc.getLocation()); - labAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - labAppointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app = appointmentsService.validateAndSave(labAppointment); - } - } - - } - - } - - /** - * Create and edit PREP or TB or KP appointments - * Create MCH appointments - */ - private void processProgramAppointments(Encounter enc) throws Throwable { - // MCH or PREP or TB or KP appointment - List obs = obsService.getObservations( - Arrays.asList(personService.getPerson(enc.getPatient().getPersonId())), - Arrays.asList(enc), - Arrays.asList( - conceptService.getConceptByUuid(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID) - ), - null, - null, - null, - null, - null, - null, - null, - null, - false - ); - - for (Obs o : obs) { // Loop through the obs and compose Appointment object for Bahmni - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - - if(editAppointment != null) { - //edit MCH or PREP or TB or KP appointment - Date nextApptStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date nextApptEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - editAppointment.setStartDateTime(nextApptStartDateTime); - editAppointment.setEndDateTime(nextApptEndDateTime); - Appointment app = appointmentsService.validateAndSave(editAppointment); - - } else { - // create MCH or TB or KP or PREP appointment - if (enc.getForm() != null && enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_ANTENATAL_VISIT) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(MCH_ANTENATAL_VISIT_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(MCH_ANTENATAL_VISIT_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(MchMetadata._Form.MCHCS_FOLLOW_UP) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(CWC_FOLLOWUP_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(CWC_FOLLOWUP_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(PREP_INITIAL_FORM) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_INITIAL_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_INITIAL_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(PREP_FOLLOWUP_FORM) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_FOLLOWUP_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_FOLLOWUP_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(PREP_MONTHLY_REFILL_FORM) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_MONTHLY_REFILL_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(PREP_MONTHLY_REFILL_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(TbMetadata._Form.TB_FOLLOW_UP) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(TB_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(TB_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(KP_CLINICAL_VISIT_FORM) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(KP_CLINICAL_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(KP_CLINICAL_SERVICE).getId()); - } else if (enc.getForm() != null && enc.getForm().getUuid().equals(HivMetadata._Form.FAST_TRACK) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE) != null) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(DRUG_REFILL_SERVICE).getId()); - } else { - return; - } - Appointment appointment = new Appointment(); - Date appointmentStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date appointmentEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - appointment.setUuid(enc.getUuid()); - appointment.setPatient(enc.getPatient()); - appointment.setService(appointmentServiceDefinition); - appointment.setStartDateTime(appointmentStartDateTime); - appointment.setEndDateTime(appointmentEndDateTime); - appointment.setLocation(enc.getLocation()); - appointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - appointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app = appointmentsService.validateAndSave(appointment); - - } - } - } - - /** - * Edit the mother and baby appointments which are related - */ - private void processMCHEncounter(Encounter enc) throws Throwable { - //MCH appointments - List obs = obsService.getObservations( - Arrays.asList(personService.getPerson(enc.getPatient().getPersonId())), - Arrays.asList(enc), - Arrays.asList( - conceptService.getConceptByUuid(NEXT_CLINICAL_APPOINTMENT_DATE_CONCEPT_UUID) - ), - null, - null, - null, - null, - null, - null, - null, - null, - false - ); - - for (Obs o : obs) { // Loop through the obs and compose Appointment object for Bahmni - Date nextApptStartDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T07:00:00.0Z"), DateUtil.DateFormatType.UTC); - Date nextApptEndDateTime = DateUtil.convertToDate(dateFormat.format(o.getValueDatetime()).concat("T20:00:00.0Z"), DateUtil.DateFormatType.UTC); - Appointment editAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - - if (editAppointment != null) { - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - Appointment postNatalAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - Appointment cwcFollowUpAppointment = postNatalAppointment.getRelatedAppointment(); - - if(postNatalAppointment != null) { - postNatalAppointment.setStartDateTime(nextApptStartDateTime); - postNatalAppointment.setEndDateTime(nextApptEndDateTime); - Appointment app = appointmentsService.validateAndSave(postNatalAppointment); - } - if(cwcFollowUpAppointment != null) { - cwcFollowUpAppointment.setStartDateTime(nextApptEndDateTime); - cwcFollowUpAppointment.setEndDateTime(nextApptEndDateTime); - Appointment app2 = appointmentsService.validateAndSave(cwcFollowUpAppointment); - } - if(postNatalAppointment != null && cwcFollowUpAppointment == null && appointmentServiceDefinitionService.getAppointmentServiceByUuid(MCH_POSTNATAL_VISIT_SERVICE) != null ) { - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(CWC_FOLLOWUP_SERVICE).getId()); - List children = EmrUtils.getPersonChildren(enc.getPatient()); - for (Person child : children) { - int ageYears = child.getAge(); - int id = child.getId(); - PatientService patientService = Context.getPatientService(); - Patient patient = patientService.getPatient(id); - // add mothers appointment for all children who are HEI - if (ageYears <= 2) { - Appointment followUpAppointment = new Appointment(); - followUpAppointment.setPatient(patient); - followUpAppointment.setService(appointmentServiceDefinition); - followUpAppointment.setStartDateTime(nextApptStartDateTime); - followUpAppointment.setEndDateTime(nextApptEndDateTime); - followUpAppointment.setLocation(enc.getLocation()); - followUpAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - followUpAppointment.setAppointmentKind(AppointmentKind.Scheduled); - cwcFollowUpAppointment.setRelatedAppointment(postNatalAppointment); - Appointment app3 = appointmentsService.validateAndSave(followUpAppointment); - - postNatalAppointment.setRelatedAppointment(app3); - Appointment app4 = appointmentsService.validateAndSave(postNatalAppointment); - } - } - } - } - - // create MCH postnatal appointment - if (editAppointment == null && enc.getForm() != null && (enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_POSTNATAL_VISIT) || enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_DELIVERY)) && appointmentServiceDefinitionService.getAppointmentServiceByUuid(MCH_POSTNATAL_VISIT_SERVICE) != null) { - Appointment mchPostnatalAppointment = new Appointment(); - - if(enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_POSTNATAL_VISIT) || enc.getForm().getUuid().equals(MchMetadata._Form.MCHMS_DELIVERY)) { - nxtAppointment = true; - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(MCH_POSTNATAL_VISIT_SERVICE).getId()); - - mchPostnatalAppointment.setUuid(enc.getUuid()); - mchPostnatalAppointment.setPatient(enc.getPatient()); - mchPostnatalAppointment.setService(appointmentServiceDefinition); - mchPostnatalAppointment.setStartDateTime(nextApptStartDateTime); - mchPostnatalAppointment.setEndDateTime(nextApptEndDateTime); - mchPostnatalAppointment.setLocation(enc.getLocation()); - mchPostnatalAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - mchPostnatalAppointment.setAppointmentKind(AppointmentKind.Scheduled); - } - - if(nxtAppointment) { - Appointment app = appointmentsService.validateAndSave(mchPostnatalAppointment); - } - if(appointmentServiceDefinitionService.getAppointmentServiceByUuid(CWC_FOLLOWUP_SERVICE) != null) { - // create CWC followup appointment for child - List children = EmrUtils.getPersonChildren(enc.getPatient()); - for(Person child : children) { - int ageYears = child.getAge(); - int id = child.getId(); - PatientService patientService = Context.getPatientService(); - Patient patient = patientService.getPatient(id); - if(ageYears <= 2) { - AppointmentServiceDefinition appointmentServiceDefinition = new AppointmentServiceDefinition(); - appointmentServiceDefinition.setAppointmentServiceId(appointmentServiceDefinitionService.getAppointmentServiceByUuid(CWC_FOLLOWUP_SERVICE).getId()); - Appointment cwcFollowUpAppointment = new Appointment(); - Appointment relatedAppointment = appointmentsService.getAppointmentByUuid(enc.getUuid()); - cwcFollowUpAppointment.setRelatedAppointment(relatedAppointment); - cwcFollowUpAppointment.setPatient(patient); - cwcFollowUpAppointment.setService(appointmentServiceDefinition); - cwcFollowUpAppointment.setStartDateTime(nextApptStartDateTime); - cwcFollowUpAppointment.setEndDateTime(nextApptEndDateTime); - cwcFollowUpAppointment.setLocation(enc.getLocation()); - cwcFollowUpAppointment.setProvider(EmrUtils.getProvider(Context.getAuthenticatedUser())); - cwcFollowUpAppointment.setAppointmentKind(AppointmentKind.Scheduled); - Appointment app2 = appointmentsService.validateAndSave(cwcFollowUpAppointment); - - relatedAppointment.setRelatedAppointment(app2); - Appointment app3 = appointmentsService.validateAndSave(relatedAppointment); - } - } - } - } - - } - } - - private String getAppointmentServiceUuidFromConcept( int conceptId) { - Map idToUuidMap = new HashMap(); - idToUuidMap.put(1283, "61488cf6-fad4-11ed-be56-0242ac120002"); // lab tests - idToUuidMap.put(160523, "885b4ad3-fd4c-4a16-8ed3-08813e6b01fa"); // HIV consultation - idToUuidMap.put(159382, "c6ce2119-c084-49c7-aa3f-be9fa1f3863e"); // Counselling - return idToUuidMap.get(conceptId); - - } -} \ No newline at end of file diff --git a/omod/src/main/resources/config.xml b/omod/src/main/resources/config.xml index 62b11eecfe..5613203b7d 100755 --- a/omod/src/main/resources/config.xml +++ b/omod/src/main/resources/config.xml @@ -36,7 +36,6 @@ org.openmrs.module.uiframework org.openmrs.module.kenyaemrorderentry org.openmrs.module.facilityreporting - org.bahmni.module.appointments @@ -63,11 +62,6 @@ ${project.parent.groupId}.${project.parent.artifactId}.advice.MCHMSDeliveryFormProcessor - - org.openmrs.api.EncounterService - ${project.parent.groupId}.${project.parent.artifactId}.advice.SyncHFEAppointmentsWithBahmniModule - - org.openmrs.api.EncounterService ${project.parent.groupId}.${project.parent.artifactId}.advice.OutpatientToInpatientCheckinOnAdmissionRequest diff --git a/pom.xml b/pom.xml index 81a121d6f9..f0776adc57 100755 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,6 @@ 2.26.0 2.0.9 1.15.0 - 1.5.0-SNAPSHOT UTF-8 yyyy-MM-dd'T'HH:mm:ssZ @@ -236,12 +235,6 @@ provided - - org.bahmni.module - appointments-api - ${bahmniAppointmentsVersion} - provided - org.openmrs.module From 0ae364ede971429c68c96d7fb7e394d45f5b683c Mon Sep 17 00:00:00 2001 From: makombe Date: Mon, 6 May 2024 19:41:32 +0300 Subject: [PATCH 94/98] Migrate appointments from Obs to Bahmni appointment module --- .../resources/MigrateAppointmentsFromObs.sql | 160 ++++++++++++++++++ omod/src/main/resources/liquibase.xml | 7 + 2 files changed, 167 insertions(+) create mode 100644 api/src/main/resources/MigrateAppointmentsFromObs.sql diff --git a/api/src/main/resources/MigrateAppointmentsFromObs.sql b/api/src/main/resources/MigrateAppointmentsFromObs.sql new file mode 100644 index 0000000000..0bd5d2a189 --- /dev/null +++ b/api/src/main/resources/MigrateAppointmentsFromObs.sql @@ -0,0 +1,160 @@ + +SET FOREIGN_KEY_CHECKS=0; +delete from patient_appointment_audit; +delete from patient_appointment where appointment_service_id is null or (appointment_service_id in (1,2,3,4,5,6,7,8,9,13,11,12) and date_created < '2024-04-25 18:00:00'); +SET FOREIGN_KEY_CHECKS=1; + + +INSERT INTO patient_appointment ( + patient_id, + start_date_time, + end_date_time, + appointment_service_id, + status, + location_id, + appointment_kind, + appointment_number, + uuid, + date_created, + creator +) +SELECT + e.patient_id, + CONCAT(DATE(o.value_datetime), + ' 07:00:00') AS start_date_time, + CONCAT(DATE(o.value_datetime), + ' 17:00:00') AS end_date_time, + (case + when ef.uuid = '23b4ebbd-29ad-455e-be0e-04aa6bc30798' and o.concept_id=5096 then 1 -- Greencard form + when ef.uuid = '23b4ebbd-29ad-455e-be0e-04aa6bc30798' and o.concept_id=162549 then 2 -- Greencard form + when ef.uuid = '22c68f86-bbf0-49ba-b2d1-23fa7ccf0259' and o.concept_id=5096 then 1 -- HIV summary form + when ef.uuid = '22c68f86-bbf0-49ba-b2d1-23fa7ccf0259' and o.concept_id=162549 then 2 -- HIV summary form + when ef.uuid = '1bfb09fc-56d7-4108-bd59-b2765fd312b8' then 7 -- prep initial + when ef.uuid = 'ee3e2017-52c0-4a54-99ab-ebb542fb8984' then 8 -- prep followup + when ef.uuid = '291c03c8-a216-11e9-a2a3-2a2ae2dbcce4' then 9 -- prep monthly refill + when ef.uuid = '2daabb77-7ad6-4952-864b-8d23e109c69d' then 6 -- TB followup + when ef.uuid = '92e041ac-9686-11e9-bc42-526af7764f64' then 3 -- KP clinical visit + when ef.uuid = '755b59e6-acbb-4853-abaf-be302039f902' then 13 -- HEI followup + when ef.uuid = 'e8f98494-af35-4bb8-9fc7-c409c8fed843' then 4 -- antenatal visit + when ef.uuid = '72aa78e0-ee4b-47c3-9073-26f3b9ecc4a7' then 5 -- postnatal visit + when ef.uuid = '496c7cc3-0eea-4e84-a04c-2292949e2f7f' then 5-- delivery visit. This is the first postnatal appointment after deliver + else null + end) AS appointment_service_id, + 'Scheduled' AS status, + e.location_id, + 'Scheduled' AS appointment_kind, + '0000' AS appointment_number, + uuid() AS uuid, + e.encounter_datetime AS date_created, -- we want to pick the encounter datetime as the date created + (select user_id from users where username='admin') AS creator +FROM + encounter e + inner join form ef on ef.form_id = e.form_id and ef.uuid in ('1bfb09fc-56d7-4108-bd59-b2765fd312b8','291c03c8-a216-11e9-a2a3-2a2ae2dbcce4','2daabb77-7ad6-4952-864b-8d23e109c69d','92e041ac-9686-11e9-bc42-526af7764f64','755b59e6-acbb-4853-abaf-be302039f902','e8f98494-af35-4bb8-9fc7-c409c8fed843','72aa78e0-ee4b-47c3-9073-26f3b9ecc4a7','496c7cc3-0eea-4e84-a04c-2292949e2f7f','23b4ebbd-29ad-455e-be0e-04aa6bc30798', '22c68f86-bbf0-49ba-b2d1-23fa7ccf0259','ee3e2017-52c0-4a54-99ab-ebb542fb8984') + inner join obs o on o.encounter_id = e.encounter_id and o.concept_id in (5096,162549) and o.voided = 0; + + +-- update appointment statuses +-- HIV followup appointments +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('23b4ebbd-29ad-455e-be0e-04aa6bc30798','22c68f86-bbf0-49ba-b2d1-23fa7ccf0259') +set apt.status='Completed' +where apt.appointment_service_id = 1; + +-- ART drug refill +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('83fb6ab2-faec-4d87-a714-93e77a28a201') +set apt.status='Completed' +where apt.appointment_service_id = 2; + +-- prep initial +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('1bfb09fc-56d7-4108-bd59-b2765fd312b8') +set apt.status='Completed' +where apt.appointment_service_id = 7; + +-- prep followup +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('ee3e2017-52c0-4a54-99ab-ebb542fb8984') +set apt.status='Completed' +where apt.appointment_service_id = 8; + +-- prep monthly +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('291c03c8-a216-11e9-a2a3-2a2ae2dbcce4') +set apt.status='Completed' +where apt.appointment_service_id = 9; + +-- TB follow-up +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('2daabb77-7ad6-4952-864b-8d23e109c69d') +set apt.status='Completed' +where apt.appointment_service_id = 6; + +-- KP clinic visit +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('92e041ac-9686-11e9-bc42-526af7764f64') +set apt.status='Completed' +where apt.appointment_service_id = 3; + +-- HEI followup +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('755b59e6-acbb-4853-abaf-be302039f902') +set apt.status='Completed' +where apt.appointment_service_id = 13; + +-- Ante-natal visit appointment +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('e8f98494-af35-4bb8-9fc7-c409c8fed843') +set apt.status='Completed' +where apt.appointment_service_id = 4; + +-- post-natal visit appointment +update patient_appointment apt +inner join encounter e on e.patient_id = apt.patient_id and date(e.encounter_datetime) between date_sub(date(apt.start_date_time), interval 5 day) and date(apt.start_date_time) +inner join form f on f.form_id = e.form_id and f.uuid in ('72aa78e0-ee4b-47c3-9073-26f3b9ecc4a7') +set apt.status='Completed' +where apt.appointment_service_id = 5; + +update patient_appointment apt set apt.status='Missed' where date(apt.start_date_time) < curdate() and apt.status='Scheduled'; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/omod/src/main/resources/liquibase.xml b/omod/src/main/resources/liquibase.xml index d23df06347..81112fe582 100755 --- a/omod/src/main/resources/liquibase.xml +++ b/omod/src/main/resources/liquibase.xml @@ -264,4 +264,11 @@ + + + Queries for migrating appointments to bahmni appointment module + + + + \ No newline at end of file From 1ba7233eed5860e5581a108117abe054465f71f2 Mon Sep 17 00:00:00 2001 From: makombe Date: Thu, 9 May 2024 09:26:22 +0300 Subject: [PATCH 95/98] Fix new vl order NPE --- .../calculation/library/hiv/NeedsNewVLOrderCalculation.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/NeedsNewVLOrderCalculation.java b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/NeedsNewVLOrderCalculation.java index 61c78f6a8c..a9896e0d1a 100755 --- a/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/NeedsNewVLOrderCalculation.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/calculation/library/hiv/NeedsNewVLOrderCalculation.java @@ -60,7 +60,7 @@ public CalculationResultMap evaluate(Collection cohort, Map 0) { Integer latestVlOrder = Collections.max(vlOrders); if (dueForVl.contains(ptId) && orderService.getOrder(latestVlOrder).isVoided() - && (orderService.getOrder(latestVlOrder).getVoidReason().equalsIgnoreCase("Sample not taken") + && orderService.getOrder(latestVlOrder).getVoidReason() != null && (orderService.getOrder(latestVlOrder).getVoidReason().equalsIgnoreCase("Sample not taken") || orderService.getOrder(latestVlOrder).getVoidReason().equalsIgnoreCase("Collect new sample") || orderService.getOrder(latestVlOrder).getVoidReason().equalsIgnoreCase("Sample rejected") || orderService.getOrder(latestVlOrder).getVoidReason().equalsIgnoreCase("No reagents"))) { From 4fc9a1acf68db31508b8e92f30944ed901eea454 Mon Sep 17 00:00:00 2001 From: patryllus Date: Thu, 30 May 2024 19:49:50 +0300 Subject: [PATCH 96/98] Updated MOH240 Lab register for additional columns on EHR Reports --- .../common/MOH240LabReportBuilder.java | 170 ++++++++++++++++++ .../common/SetupMOH240LabReportBuilder.java | 117 ------------ .../MOH240LabRegisterCohortDefinition.java | 43 +++++ ...0LabRegisterCohortDefinitionEvaluator.java | 61 +++++++ .../OPDClinicalDiagnosisDataEvaluator.java | 61 +++++++ .../OPDDateSampleCollectedDataEvaluator.java | 54 ++++++ .../OPDDateSampleReceivedDataEvaluator.java | 54 ++++++ .../opd/OPDDiagnosisDataEvaluator.java | 17 +- ...OPDInvestigationRequiredDataEvaluator.java | 57 ++++++ .../opd/OPDLabReferralsDataEvaluator.java | 57 ++++++ .../opd/OPDLabRemarksDataEvaluator.java | 56 ++++++ .../opd/OPDLabResultsDataEvaluator.java | 54 ++++++ .../opd/OPDLabResultsDateDataEvaluator.java | 54 ++++++ .../OPDOrderingClinicianDataEvaluator.java | 56 ++++++ ...riorTreatmentsPrescribedDataEvaluator.java | 59 ++++++ .../opd/OPDSpecimenTypeDataEvaluator.java | 51 ++++++ .../OPDClinicalDiagnosisDataDefinition.java | 47 +++++ .../OPDDateSampleCollectedDataDefinition.java | 47 +++++ .../OPDDateSampleReceivedDataDefinition.java | 47 +++++ ...PDInvestigationRequiredDataDefinition.java | 47 +++++ .../opd/OPDLabReferralsDataDefinition.java | 47 +++++ .../opd/OPDLabRemarksDataDefinition.java | 47 +++++ .../opd/OPDLabResultsDataDefinition.java | 47 +++++ .../opd/OPDLabResultsDateDataDefinition.java | 47 +++++ .../OPDOrderingClinicianDataDefinition.java | 47 +++++ ...iorTreatmentsPrescribedDataDefinition.java | 47 +++++ .../opd/OPDSpecimenTypeDataDefinition.java | 47 +++++ .../resources/content/kenyaemr.common.xml | 2 +- .../main/webapp/resources/reports/MOH240.xls | Bin 50688 -> 10752 bytes 29 files changed, 1414 insertions(+), 126 deletions(-) create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH240LabReportBuilder.java delete mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH240LabRegisterCohortDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH240LabRegisterCohortDefinitionEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDClinicalDiagnosisDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleCollectedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleReceivedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDInvestigationRequiredDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabReferralsDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabRemarksDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDateDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOrderingClinicianDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPriorTreatmentsPrescribedDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDSpecimenTypeDataEvaluator.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDClinicalDiagnosisDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleCollectedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleReceivedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDInvestigationRequiredDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabReferralsDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabRemarksDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDateDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOrderingClinicianDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPriorTreatmentsPrescribedDataDefinition.java create mode 100644 api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDSpecimenTypeDataDefinition.java diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH240LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH240LabReportBuilder.java new file mode 100644 index 0000000000..36cad609f0 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/MOH240LabReportBuilder.java @@ -0,0 +1,170 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.builder.common; + +import org.openmrs.PatientIdentifierType; +import org.openmrs.PersonAttributeType; +import org.openmrs.api.context.Context; +import org.openmrs.module.kenyacore.report.HybridReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportDescriptor; +import org.openmrs.module.kenyacore.report.ReportUtils; +import org.openmrs.module.kenyacore.report.builder.AbstractHybridReportBuilder; +import org.openmrs.module.kenyacore.report.builder.AbstractReportBuilder; +import org.openmrs.module.kenyacore.report.builder.Builds; +import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; +import org.openmrs.module.kenyaemr.calculation.library.hiv.CountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.hiv.SubCountyAddressCalculation; +import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; +import org.openmrs.module.kenyaemr.metadata.CommonMetadata; +import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204BRegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH240LabRegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.CalculationResultConverter; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.HTSProviderDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.*; +import org.openmrs.module.metadatadeploy.MetadataUtils; +import org.openmrs.module.reporting.cohort.definition.CohortDefinition; +import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; +import org.openmrs.module.reporting.common.SortCriteria; +import org.openmrs.module.reporting.data.DataDefinition; +import org.openmrs.module.reporting.data.converter.BirthdateConverter; +import org.openmrs.module.reporting.data.converter.DataConverter; +import org.openmrs.module.reporting.data.converter.DateConverter; +import org.openmrs.module.reporting.data.converter.ObjectFormatter; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdDataDefinition; +import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; +import org.openmrs.module.reporting.data.person.definition.*; +import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.EncounterDataSetDefinition; +import org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition; +import org.openmrs.module.reporting.evaluation.parameter.Mapped; +import org.openmrs.module.reporting.evaluation.parameter.Parameter; +import org.openmrs.module.reporting.report.definition.ReportDefinition; +import org.springframework.stereotype.Component; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; + +@Component +@Builds({ "kenyaemr.ehrReports.report.240" }) +public class MOH240LabReportBuilder extends AbstractReportBuilder { + public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; + public static final String DATE_FORMAT = "dd/MM/yyyy"; + + @Override + protected List getParameters(ReportDescriptor reportDescriptor) { + return Arrays.asList( + new Parameter("startDate", "Start Date", Date.class), + new Parameter("endDate", "End Date", Date.class), + new Parameter("dateBasedReporting", "", String.class) + ); + } + + @Override + protected List> buildDataSets(ReportDescriptor reportDescriptor, ReportDefinition reportDefinition) { + return Arrays.asList( + ReportUtils.map(datasetColumns(), "startDate=${startDate},endDate=${endDate}") + ); + } + + protected DataSetDefinition datasetColumns() { + EncounterDataSetDefinition dsd = new EncounterDataSetDefinition(); + dsd.setName("MOH240"); + dsd.setDescription("OPD Lab Visit information"); + dsd.addSortCriteria("Visit Date", SortCriteria.SortDirection.ASC); + dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + String paramMapping = "startDate=${startDate},endDate=${endDate}"; + + DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName} {middleName}"); + DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); + PatientIdentifierType pcn = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.PATIENT_CLINIC_NUMBER); + DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); + DataDefinition patientClinicNo = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(pcn.getName(), pcn), identifierFormatter); + + OPDDateSampleCollectedDataDefinition opdDateSampleCollectedDataDefinition = new OPDDateSampleCollectedDataDefinition(); + opdDateSampleCollectedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdDateSampleCollectedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDDateSampleReceivedDataDefinition opdDateSampleReceivedDataDefinition = new OPDDateSampleReceivedDataDefinition(); + opdDateSampleReceivedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdDateSampleReceivedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDLabResultsDataDefinition opdLabResultsDataDefinition = new OPDLabResultsDataDefinition(); + opdLabResultsDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdLabResultsDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDLabResultsDateDataDefinition opdLabResultsDateDataDefinition = new OPDLabResultsDateDataDefinition(); + opdLabResultsDateDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdLabResultsDateDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDClinicalDiagnosisDataDefinition opdClinicalDiagnosisDataDefinition = new OPDClinicalDiagnosisDataDefinition(); + opdClinicalDiagnosisDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdClinicalDiagnosisDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDPriorTreatmentsPrescribedDataDefinition opdPriorTreatmentsPrescribedDataDefinition = new OPDPriorTreatmentsPrescribedDataDefinition(); + opdPriorTreatmentsPrescribedDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdPriorTreatmentsPrescribedDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDLabReferralsDataDefinition opdLabReferralsDataDefinition = new OPDLabReferralsDataDefinition(); + opdLabReferralsDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdLabReferralsDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDLabRemarksDataDefinition opdLabRemarksDataDefinition = new OPDLabRemarksDataDefinition(); + opdLabRemarksDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdLabRemarksDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + OPDInvestigationRequiredDataDefinition opdInvestigationRequiredDataDefinition = new OPDInvestigationRequiredDataDefinition(); + opdInvestigationRequiredDataDefinition.addParameter(new Parameter("endDate", "End Date", Date.class)); + opdInvestigationRequiredDataDefinition.addParameter(new Parameter("startDate", "Start Date", Date.class)); + + + PersonAttributeType phoneNumber = MetadataUtils.existing(PersonAttributeType.class, CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); + + dsd.addColumn("Name", nameDef, ""); + dsd.addColumn("id", new PatientIdDataDefinition(), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("OPD Reference No", patientClinicNo, ""); + dsd.addColumn("Age", new AgeDataDefinition(), ""); + dsd.addColumn("Sex", new GenderDataDefinition(), ""); + dsd.addColumn("Telephone No", new PersonAttributeDataDefinition(phoneNumber), ""); + dsd.addColumn("Visit Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); + dsd.addColumn("County",new CalculationDataDefinition("County", new CountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Sub County", new CalculationDataDefinition("Subcounty", new SubCountyAddressCalculation()), "",new CalculationResultConverter()); + dsd.addColumn("Village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); + + dsd.addColumn("Revisit", patientClinicNo, ""); + // dsd.addColumn("Lab Number", opdLabNumberDataDefinition, paramMapping); //TODO: missing as Specimen ID + dsd.addColumn("Clinical Diagnosis",opdClinicalDiagnosisDataDefinition, paramMapping); + dsd.addColumn("Prior Treatment",opdPriorTreatmentsPrescribedDataDefinition, paramMapping); + //dsd.addColumn("Type of Specimen",opdTreatmentPrescribedDataDefinition, paramMapping); //TODO: missing Specimen Type + //dsd.addColumn("Condition of Specimen",opdTreatmentPrescribedDataDefinition, paramMapping); //TODO: missing Specimen Condition + dsd.addColumn("Investigation required",opdInvestigationRequiredDataDefinition, paramMapping); + dsd.addColumn("Date Sample Collected",opdDateSampleCollectedDataDefinition, paramMapping, new DateConverter(ENC_DATE_FORMAT)); + //dsd.addColumn("Date Sample Received",opdDateSampleReceivedDataDefinition, paramMapping); + + dsd.addColumn("Clinician Name", new OPDOrderingClinicianDataDefinition(), null); + //dsd.addColumn("Date Sample Analysed",opdDateSampleReceivedDataDefinition, paramMapping); //TODO: missing Date sample analysed + + dsd.addColumn("Results",opdLabResultsDataDefinition, paramMapping); + //dsd.addColumn("Date results dispatched",opdLabResultsDateDataDefinition, paramMapping); //TODO: missing Date results dispatched + //dsd.addColumn("Amount charged",opdLabResultsDateDataDefinition, paramMapping); //TODO: missing Amount charged + //dsd.addColumn("Receipt number",opdLabResultsDateDataDefinition, paramMapping); //TODO: missing Receipt number + + + dsd.addColumn("Referred to",opdLabReferralsDataDefinition, paramMapping); + dsd.addColumn("Comments",opdLabRemarksDataDefinition, paramMapping); + dsd.addColumn("Analysing Officer",new OPDOrderingClinicianDataDefinition(), null); + + MOH240LabRegisterCohortDefinition cd = new MOH240LabRegisterCohortDefinition(); + cd.addParameter(new Parameter("startDate", "Start Date", Date.class)); + cd.addParameter(new Parameter("endDate", "End Date", Date.class)); + + dsd.addRowFilter(cd, paramMapping); + return dsd; + + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java deleted file mode 100644 index 8cd8227038..0000000000 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/common/SetupMOH240LabReportBuilder.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * This Source Code Form is subject to the terms of the Mozilla Public License, - * v. 2.0. If a copy of the MPL was not distributed with this file, You can - * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under - * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. - * - * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS - * graphic logo is a trademark of OpenMRS Inc. - */ -package org.openmrs.module.kenyaemr.reporting.builder.common; - -import org.openmrs.PatientIdentifierType; -import org.openmrs.PersonAttributeType; -import org.openmrs.api.context.Context; -import org.openmrs.module.kenyacore.report.HybridReportDescriptor; -import org.openmrs.module.kenyacore.report.ReportDescriptor; -import org.openmrs.module.kenyacore.report.ReportUtils; -import org.openmrs.module.kenyacore.report.builder.AbstractHybridReportBuilder; -import org.openmrs.module.kenyacore.report.builder.Builds; -import org.openmrs.module.kenyacore.report.data.patient.definition.CalculationDataDefinition; -import org.openmrs.module.kenyaemr.calculation.library.mchcs.PersonAddressCalculation; -import org.openmrs.module.kenyaemr.metadata.CommonMetadata; -import org.openmrs.module.kenyaemr.reporting.calculation.converter.RDQACalculationResultConverter; -import org.openmrs.module.reporting.cohort.definition.CohortDefinition; -import org.openmrs.module.reporting.cohort.definition.SqlCohortDefinition; -import org.openmrs.module.reporting.data.DataDefinition; -import org.openmrs.module.reporting.data.converter.BirthdateConverter; -import org.openmrs.module.reporting.data.converter.DataConverter; -import org.openmrs.module.reporting.data.converter.DateConverter; -import org.openmrs.module.reporting.data.converter.ObjectFormatter; -import org.openmrs.module.reporting.data.encounter.definition.EncounterDatetimeDataDefinition; -import org.openmrs.module.reporting.data.patient.definition.ConvertedPatientDataDefinition; -import org.openmrs.module.reporting.data.patient.definition.PatientIdentifierDataDefinition; -import org.openmrs.module.reporting.data.person.definition.*; -import org.openmrs.module.reporting.dataset.definition.DataSetDefinition; -import org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition; -import org.openmrs.module.reporting.evaluation.parameter.Mapped; -import org.openmrs.module.reporting.evaluation.parameter.Parameter; -import org.openmrs.module.reporting.report.definition.ReportDefinition; -import org.springframework.stereotype.Component; - -import java.util.Arrays; -import java.util.Date; -import java.util.List; - -@Component -@Builds({ "kenyaemr.ehrReports.report.240" }) -public class SetupMOH240LabReportBuilder extends AbstractHybridReportBuilder { - - public static final String ENC_DATE_FORMAT = "yyyy/MM/dd"; - - @Override - protected Mapped buildCohort(HybridReportDescriptor hybridReportDescriptor, - PatientDataSetDefinition patientDataSetDefinition) { - return null; - } - - @Override - protected List> buildDataSets(ReportDescriptor descriptor, ReportDefinition report) { - PatientDataSetDefinition dsd = LabRegister(); - dsd.setName("lrr"); - dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); - dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); - report.setBaseCohortDefinition(ReportUtils.map(getLabOrderEncounter(), "startDate=${startDate},endDate=${endDate}")); - - return Arrays.asList(ReportUtils.map((DataSetDefinition) dsd, "startDate=${startDate},endDate=${endDate}")); - } - - @Override - protected List getParameters(ReportDescriptor reportDescriptor) { - return Arrays.asList(new Parameter("startDate", "Start Date", Date.class), new Parameter("endDate", "End Date", - Date.class), new Parameter("dateBasedReporting", "", String.class)); - } - - private PatientDataSetDefinition LabRegister() { - PatientDataSetDefinition dsd = new PatientDataSetDefinition(); - dsd.setName("lrr"); - dsd.addParameter(new Parameter("startDate", "Start Date", Date.class)); - dsd.addParameter(new Parameter("endDate", "End Date", Date.class)); - dsd.addRowFilter(getLabOrderEncounter(), "startDate=${startDate},endDate=${endDate+23h}"); - DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName}, {middleName}"); - DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); - - PersonAttributeType personAttributeType = Context.getPersonService().getPersonAttributeTypeByUuid(CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); - - PatientIdentifierType openmrsID = Context.getPatientService().getPatientIdentifierTypeByUuid("dfacd928-0370-4315-99d7-6ec1c9f7ae76"); - DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); - DataDefinition identifierDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition( - openmrsID.getName(), openmrsID), identifierFormatter); - - dsd.addColumn("id", new PersonIdDataDefinition(), ""); - dsd.addColumn("identifier", identifierDef, ""); - //dsd.addColumn("Date", new EncounterDatetimeDataDefinition(),"", new DateConverter(ENC_DATE_FORMAT)); - dsd.addColumn("Name", nameDef, ""); - dsd.addColumn("Sex", new GenderDataDefinition(), "", null); - dsd.addColumn("DOB", new BirthdateDataDefinition(), "", new BirthdateConverter("yyyy-MM-dd")); - dsd.addColumn("age", new AgeDataDefinition(), ""); - dsd.addColumn("village", new CalculationDataDefinition("Village/Estate/Landmark", new PersonAddressCalculation()), "",new RDQACalculationResultConverter()); - dsd.addColumn("telephone", new PersonAttributeDataDefinition(personAttributeType), "", - null); - return dsd; - - } - - private CohortDefinition getLabOrderEncounter() { - SqlCohortDefinition sqlEncounterQuery = new SqlCohortDefinition(); - sqlEncounterQuery.setName("Get unique lab encounter types"); - sqlEncounterQuery.addParameter(new Parameter("startDate", "Start Date", Date.class)); - sqlEncounterQuery.addParameter(new Parameter("endDate", "End Date", Date.class)); - sqlEncounterQuery - .setQuery("SELECT d.patient_id FROM kenyaemr_etl.etl_patient_demographics d\n" + - " INNER JOIN kenyaemr_etl.etl_laboratory_extract x ON x.patient_id = d.patient_id\n" + - " AND date(x.visit_date) BETWEEN :startDate AND :endDate;"); - return sqlEncounterQuery; - } - -} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH240LabRegisterCohortDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH240LabRegisterCohortDefinition.java new file mode 100644 index 0000000000..f5e1094dcf --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/MOH240LabRegisterCohortDefinition.java @@ -0,0 +1,43 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition; + +import org.openmrs.Encounter; +import org.openmrs.module.reporting.common.Localized; +import org.openmrs.module.reporting.definition.configuration.ConfigurationProperty; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; +import org.openmrs.module.reporting.query.BaseQuery; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; + +import java.util.Date; + +/** + * MOH240 Lab Register cohort definition + * OPD Register + */ +@Caching(strategy = ConfigurationPropertyCachingStrategy.class) +@Localized("reporting.MOH240LabRegisterCohortDefinition") +public class MOH240LabRegisterCohortDefinition extends BaseQuery implements EncounterQuery { + @ConfigurationProperty + private Date asOfDate; + + public MOH240LabRegisterCohortDefinition() { + } + + public Date getAsOfDate() { + return asOfDate; + } + + public void setAsOfDate(Date asOfDate) { + this.asOfDate = asOfDate; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH240LabRegisterCohortDefinitionEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH240LabRegisterCohortDefinitionEvaluator.java new file mode 100644 index 0000000000..689b9a73ab --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/cohort/definition/evaluator/MOH240LabRegisterCohortDefinitionEvaluator.java @@ -0,0 +1,61 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.cohort.definition.evaluator; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH204BRegisterCohortDefinition; +import org.openmrs.module.kenyaemr.reporting.cohort.definition.MOH240LabRegisterCohortDefinition; +import org.openmrs.module.reporting.common.ObjectUtil; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.openmrs.module.reporting.query.encounter.EncounterQueryResult; +import org.openmrs.module.reporting.query.encounter.definition.EncounterQuery; +import org.openmrs.module.reporting.query.encounter.evaluator.EncounterQueryEvaluator; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.List; + +/** + * Evaluator for patients MOH240 Lab Cohort Evaluator + * OPD Register + */ +@Handler(supports = {MOH240LabRegisterCohortDefinition.class}) +public class MOH240LabRegisterCohortDefinitionEvaluator implements EncounterQueryEvaluator { + + private final Log log = LogFactory.getLog(this.getClass()); + @Autowired + EvaluationService evaluationService; + + public EncounterQueryResult evaluate(EncounterQuery definition, EvaluationContext context) throws EvaluationException { + context = ObjectUtil.nvl(context, new EvaluationContext()); + EncounterQueryResult queryResult = new EncounterQueryResult(definition, context); + + String qry = "SELECT le.encounter_id from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = le.patient_id and p.voided = 0\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder builder = new SqlQueryBuilder(); + builder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + builder.addParameter("endDate", endDate); + builder.addParameter("startDate", startDate); + + List results = evaluationService.evaluateToList(builder, Integer.class, context); + queryResult.getMemberIds().addAll(results); + return queryResult; + } + +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDClinicalDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDClinicalDiagnosisDataEvaluator.java new file mode 100644 index 0000000000..eaff987d16 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDClinicalDiagnosisDataEvaluator.java @@ -0,0 +1,61 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDClinicalDiagnosisDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDiagnosisDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Clinical Diagnosis + * MOH 240 Lab Register Register + */ +@Handler(supports= OPDClinicalDiagnosisDataDefinition.class, order=50) +public class OPDClinicalDiagnosisDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " le.encounter_id,\n" + + " dl.name as clinical_diagnosis\n" + + " from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join (select\n" + + " cn.name, ed.date_created, ed.dx_rank ,ed.patient_id\n" + + " from openmrs.encounter_diagnosis ed\n" + + " inner join openmrs.concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en' and ed.dx_rank = 1\n" + + " ) dl on le.patient_id = dl.patient_id and date(dl.date_created) = date(le.visit_date)\n" + + " and date(le.visit_Date) between date(:startDate) and date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleCollectedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleCollectedDataEvaluator.java new file mode 100644 index 0000000000..4ff674303f --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleCollectedDataEvaluator.java @@ -0,0 +1,54 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDateSampleCollectedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDSpecimenTypeDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Date sample collected + * OPD Lab Register + */ +@Handler(supports= OPDDateSampleCollectedDataDefinition.class, order=50) +public class OPDDateSampleCollectedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "SELECT le.encounter_id, le.date_test_requested from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = le.patient_id and p.voided = 0\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleReceivedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleReceivedDataEvaluator.java new file mode 100644 index 0000000000..88dfdfab68 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDateSampleReceivedDataEvaluator.java @@ -0,0 +1,54 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDateSampleCollectedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDateSampleReceivedDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Date sample collected + * OPD Lab Register + */ +@Handler(supports= OPDDateSampleReceivedDataDefinition.class, order=50) +public class OPDDateSampleReceivedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "SELECT le.encounter_id, le.date_test_result_received from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = le.patient_id and p.voided = 0\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java index 6d58c301ad..d694769c81 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDDiagnosisDataEvaluator.java @@ -37,14 +37,15 @@ public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, Evalu EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); String qry = "select\n" + - " v.encounter_id,\n" + - " con.name as mnci_diagnosis\n" + - "from kenyaemr_etl.etl_clinical_encounter v\n" + - " inner join (select\n" + - " cn.name, cn.date_created, ed.patient_id\n" + - " from encounter_diagnosis ed\n" + - " inner join concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en'\n" + - ") con on v.patient_id = con.patient_id and date(v.visit_Date) between date(:startDate) and date(:endDate);"; + " v.encounter_id,\n" + + " con.name as mnci_diagnosis\n" + + " from kenyaemr_etl.etl_clinical_encounter v\n" + + " inner join (select\n" + + " cn.name, cn.date_created, ed.patient_id\n" + + " from encounter_diagnosis ed\n" + + " inner join concept_name cn on cn.concept_id = ed.diagnosis_coded and cn.locale = 'en'\n" + + " and date(ed.date_created) between date(:startDate) and date(:endDate)\n" + + " ) con on v.patient_id = con.patient_id and date(v.visit_Date) between date(:startDate) and date(:endDate);"; SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); queryBuilder.append(qry); diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDInvestigationRequiredDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDInvestigationRequiredDataEvaluator.java new file mode 100644 index 0000000000..39952b2511 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDInvestigationRequiredDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDClinicalDiagnosisDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDInvestigationRequiredDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Investigation Required + * MOH 240 Lab Register Register + */ +@Handler(supports= OPDInvestigationRequiredDataDefinition.class, order=50) +public class OPDInvestigationRequiredDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select le.encounter_id,\n" + + " cn.name as investigation_required\n" + + "from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join openmrs.concept_name cn on cn.concept_id = le.lab_test and cn.locale = 'en'\n" + + "where date(le.visit_date) between date(:startDate) and date(:endDate)\n" + + "group by le.encounter_id;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabReferralsDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabReferralsDataEvaluator.java new file mode 100644 index 0000000000..5d0c0340fa --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabReferralsDataEvaluator.java @@ -0,0 +1,57 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabReferralsDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabResultsDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Lab referrals + * MOH 240 Lab Register + */ +@Handler(supports= OPDLabReferralsDataDefinition.class, order=50) +public class OPDLabReferralsDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + "le.encounter_id,\n" + + " (case v.referral_to when 'This health facility' then 1 when 'Other health facility' then 2 when 'Community Unit' then 3 else '' end) as referred_to\n" + + " from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_clinical_encounter v on v.patient_id = le.patient_id and date(v.visit_date) = date(le.visit_date)\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabRemarksDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabRemarksDataEvaluator.java new file mode 100644 index 0000000000..33ffc35856 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabRemarksDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabRemarksDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Lab remarks + * MOH 240 Lab Register + */ +@Handler(supports= OPDLabRemarksDataDefinition.class, order=50) +public class OPDLabRemarksDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select\n" + + " le.encounter_id,\n" + + " p.notes\n" + + "from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_progress_note p on p.patient_id = le.patient_id and date(p.visit_date) = date(le.visit_date)\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDataEvaluator.java new file mode 100644 index 0000000000..3c656b430b --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDataEvaluator.java @@ -0,0 +1,54 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDClinicalDiagnosisDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabResultsDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Lab results + * MOH 240 Lab Register + */ +@Handler(supports= OPDLabResultsDataDefinition.class, order=50) +public class OPDLabResultsDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "SELECT le.encounter_id, le.test_result FROM kenyaemr_etl.etl_laboratory_extract le\n" + + " INNER JOIN kenyaemr_etl.etl_patient_demographics p ON p.patient_id = le.patient_id AND p.voided = 0\n" + + "WHERE date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDateDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDateDataEvaluator.java new file mode 100644 index 0000000000..5abea5bd05 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDLabResultsDateDataEvaluator.java @@ -0,0 +1,54 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabResultsDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDLabResultsDateDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Lab results date + * MOH 240 Lab Register + */ +@Handler(supports= OPDLabResultsDateDataDefinition.class, order=50) +public class OPDLabResultsDateDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "SELECT le.encounter_id, le.date_test_result_received from kenyaemr_etl.etl_laboratory_extract le\n" + + " inner join kenyaemr_etl.etl_patient_demographics p on p.patient_id = le.patient_id and p.voided = 0\n" + + "where date(le.visit_date) BETWEEN date(:startDate) AND date(:endDate);"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOrderingClinicianDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOrderingClinicianDataEvaluator.java new file mode 100644 index 0000000000..9ccccad0aa --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDOrderingClinicianDataEvaluator.java @@ -0,0 +1,56 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDDateSampleReceivedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDOrderingClinicianDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Date sample collected + * OPD Lab Register + */ +@Handler(supports= OPDOrderingClinicianDataDefinition.class, order=50) +public class OPDOrderingClinicianDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select e.encounter_id, concat_ws(' ', pn.family_name, pn.given_name, pn.middle_name) as creator \n" + + " from encounter e\n" + + " inner join encounter_provider ep on ep.encounter_id=e.encounter_id\n" + + " inner join provider p on ep.provider_id = p.provider_id\n" + + " inner join person_name pn on pn.person_id = p.person_id ;"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPriorTreatmentsPrescribedDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPriorTreatmentsPrescribedDataEvaluator.java new file mode 100644 index 0000000000..e70d2502f2 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDPriorTreatmentsPrescribedDataEvaluator.java @@ -0,0 +1,59 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDPriorTreatmentsPrescribedDataDefinition; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDTreatmentPrescribedDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates prior lab treatment prescribed + * OPD Register + */ +@Handler(supports= OPDPriorTreatmentsPrescribedDataDefinition.class, order=50) +public class OPDPriorTreatmentsPrescribedDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = "select le.encounter_id,\n" + + " d.drug_name\n" + + " from kenyaemr_etl.etl_laboratory_extract le\n" + + " INNER JOIN kenyaemr_etl.etl_drug_order d ON le.patient_id = d.patient_id\n" + + " and d.enc_name = 'Drug Order'\n" + + " and date(d.visit_date) = date(le.visit_date)\n" + + " where date(le.visit_date) between date(:startDate) and date(:endDate)\n" + + " group by d.encounter_id"; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDSpecimenTypeDataEvaluator.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDSpecimenTypeDataEvaluator.java new file mode 100644 index 0000000000..2eee28a9c1 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/evaluator/opd/OPDSpecimenTypeDataEvaluator.java @@ -0,0 +1,51 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.evaluator.opd; + +import org.openmrs.annotation.Handler; +import org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd.OPDSpecimenTypeDataDefinition; +import org.openmrs.module.reporting.data.encounter.EvaluatedEncounterData; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.data.encounter.evaluator.EncounterDataEvaluator; +import org.openmrs.module.reporting.evaluation.EvaluationContext; +import org.openmrs.module.reporting.evaluation.EvaluationException; +import org.openmrs.module.reporting.evaluation.querybuilder.SqlQueryBuilder; +import org.openmrs.module.reporting.evaluation.service.EvaluationService; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.Date; +import java.util.Map; + +/** + * Evaluates Specimen Type + * OPD Lab Register + */ +@Handler(supports= OPDSpecimenTypeDataDefinition.class, order=50) +public class OPDSpecimenTypeDataEvaluator implements EncounterDataEvaluator { + + @Autowired + private EvaluationService evaluationService; + + public EvaluatedEncounterData evaluate(EncounterDataDefinition definition, EvaluationContext context) throws EvaluationException { + EvaluatedEncounterData c = new EvaluatedEncounterData(definition, context); + + String qry = ""; + + SqlQueryBuilder queryBuilder = new SqlQueryBuilder(); + queryBuilder.append(qry); + Date startDate = (Date)context.getParameterValue("startDate"); + Date endDate = (Date)context.getParameterValue("endDate"); + queryBuilder.addParameter("endDate", endDate); + queryBuilder.addParameter("startDate", startDate); + Map data = evaluationService.evaluateToMap(queryBuilder, Integer.class, Object.class, context); + c.setData(data); + return c; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDClinicalDiagnosisDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDClinicalDiagnosisDataDefinition.java new file mode 100644 index 0000000000..09ecc2f5fb --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDClinicalDiagnosisDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Diagnosis + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDClinicalDiagnosisDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDClinicalDiagnosisDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDClinicalDiagnosisDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleCollectedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleCollectedDataDefinition.java new file mode 100644 index 0000000000..ff6e3c4082 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleCollectedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD labs Date sample collected Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDDateSampleCollectedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDDateSampleCollectedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDDateSampleCollectedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleReceivedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleReceivedDataDefinition.java new file mode 100644 index 0000000000..3053d10348 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDDateSampleReceivedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD labs Date sample received Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDDateSampleReceivedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDDateSampleReceivedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDDateSampleReceivedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDInvestigationRequiredDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDInvestigationRequiredDataDefinition.java new file mode 100644 index 0000000000..f6a427f295 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDInvestigationRequiredDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Investigation Required + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDInvestigationRequiredDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDInvestigationRequiredDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDInvestigationRequiredDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabReferralsDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabReferralsDataDefinition.java new file mode 100644 index 0000000000..e9c49e82e4 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabReferralsDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Lab Referrals + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDLabReferralsDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDLabReferralsDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDLabReferralsDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabRemarksDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabRemarksDataDefinition.java new file mode 100644 index 0000000000..01de4a3a86 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabRemarksDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Lab Remarks + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDLabRemarksDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDLabRemarksDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDLabRemarksDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDataDefinition.java new file mode 100644 index 0000000000..f7b1c52562 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Lab Results + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDLabResultsDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDLabResultsDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDLabResultsDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDateDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDateDataDefinition.java new file mode 100644 index 0000000000..545cf735dc --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDLabResultsDateDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** + * OPD Lab Results Date + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDLabResultsDateDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDLabResultsDateDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDLabResultsDateDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOrderingClinicianDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOrderingClinicianDataDefinition.java new file mode 100644 index 0000000000..7c2dda7f71 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDOrderingClinicianDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD labs Ordering clinician Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDOrderingClinicianDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDOrderingClinicianDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDOrderingClinicianDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPriorTreatmentsPrescribedDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPriorTreatmentsPrescribedDataDefinition.java new file mode 100644 index 0000000000..e9bdbb5e38 --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDPriorTreatmentsPrescribedDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD Prior labs Treatment prescribed Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDPriorTreatmentsPrescribedDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDPriorTreatmentsPrescribedDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDPriorTreatmentsPrescribedDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDSpecimenTypeDataDefinition.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDSpecimenTypeDataDefinition.java new file mode 100644 index 0000000000..0b9303286a --- /dev/null +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/data/converter/definition/opd/OPDSpecimenTypeDataDefinition.java @@ -0,0 +1,47 @@ +/** + * This Source Code Form is subject to the terms of the Mozilla Public License, + * v. 2.0. If a copy of the MPL was not distributed with this file, You can + * obtain one at http://mozilla.org/MPL/2.0/. OpenMRS is also distributed under + * the terms of the Healthcare Disclaimer located at http://openmrs.org/license. + * + * Copyright (C) OpenMRS Inc. OpenMRS is a registered trademark and the OpenMRS + * graphic logo is a trademark of OpenMRS Inc. + */ +package org.openmrs.module.kenyaemr.reporting.data.converter.definition.opd; + +import org.openmrs.module.reporting.data.BaseDataDefinition; +import org.openmrs.module.reporting.data.encounter.definition.EncounterDataDefinition; +import org.openmrs.module.reporting.definition.configuration.ConfigurationPropertyCachingStrategy; +import org.openmrs.module.reporting.evaluation.caching.Caching; + +/** +// * OPD labs Specimen Type Column + */ +@Caching(strategy=ConfigurationPropertyCachingStrategy.class) +public class OPDSpecimenTypeDataDefinition extends BaseDataDefinition implements EncounterDataDefinition { + + public static final long serialVersionUID = 1L; + + /** + * Default Constructor + */ + public OPDSpecimenTypeDataDefinition() { + super(); + } + + /** + * Constructor to populate name only + */ + public OPDSpecimenTypeDataDefinition(String name) { + super(name); + } + + //***** INSTANCE METHODS ***** + + /** + * @see org.openmrs.module.reporting.data.DataDefinition#getDataType() + */ + public Class getDataType() { + return Double.class; + } +} diff --git a/api/src/main/resources/content/kenyaemr.common.xml b/api/src/main/resources/content/kenyaemr.common.xml index e2b3c8cf73..f32d15d200 100644 --- a/api/src/main/resources/content/kenyaemr.common.xml +++ b/api/src/main/resources/content/kenyaemr.common.xml @@ -1004,7 +1004,7 @@ - + diff --git a/omod/src/main/webapp/resources/reports/MOH240.xls b/omod/src/main/webapp/resources/reports/MOH240.xls index 4f45cb3180980ec2ca7250048cf056aab6a8bd12..2b038c3a278be5a16e3c23273927bd17af69f681 100644 GIT binary patch literal 10752 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 literal 50688 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 Date: Fri, 31 May 2024 15:53:16 +0300 Subject: [PATCH 97/98] Added REST call to get latest Obs for patient --- .../KenyaemrCoreRestController.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java index 734c558bd7..04d9675253 100644 --- a/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java +++ b/omod/src/main/java/org/openmrs/module/kenyaemr/web/controller/KenyaemrCoreRestController.java @@ -3089,4 +3089,39 @@ public Object modifyNUPI(HttpServletRequest request, @PathVariable String nupinu return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON).body(ret); } + + /** + * Returns the latest patient Obs value coded concept ID and UUID given the patient UUID and Concept UUID + * @param patientUuid + * @return value coded concept id and uuid + */ + @CrossOrigin(origins = "*", methods = {RequestMethod.GET, RequestMethod.OPTIONS}) + @RequestMapping(method = RequestMethod.GET, value = "/latestobs") + @ResponseBody + public Object getLatestObs(@RequestParam("patientUuid") String patientUuid, @RequestParam("concept") String conceptIdentifier) { + SimpleObject ret = SimpleObject.create("conceptId", 0, "conceptUuid", ""); + if (StringUtils.isBlank(patientUuid)) { + return new ResponseEntity("You must specify a patientUuid in the request!", + new HttpHeaders(), HttpStatus.BAD_REQUEST); + } + + if (StringUtils.isBlank(conceptIdentifier)) { + return new ResponseEntity("You must specify a concept in the request!", + new HttpHeaders(), HttpStatus.BAD_REQUEST); + } + + Patient patient = Context.getPatientService().getPatientByUuid(patientUuid); + + Concept concept = Dictionary.getConcept(conceptIdentifier); + List obsList = Context.getObsService().getObservationsByPersonAndConcept(patient, concept); + if (obsList.size() > 0) { + // these are in reverse chronological order + Obs currentObs = obsList.get(0); + ret.put("conceptId", currentObs.getValueCoded().getId()); + ret.put("conceptUuid", currentObs.getValueCoded().getUuid()); + } + + return ret; + + } } From b6153f9153563a1d40dd203869221084266196e8 Mon Sep 17 00:00:00 2001 From: andrineM <53934661+andrineM@users.noreply.github.com> Date: Wed, 5 Jun 2024 15:58:58 +0300 Subject: [PATCH 98/98] Update cicd_process.yml --- .github/workflows/cicd_process.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cicd_process.yml b/.github/workflows/cicd_process.yml index 878a7df659..15f18c33cd 100644 --- a/.github/workflows/cicd_process.yml +++ b/.github/workflows/cicd_process.yml @@ -1,7 +1,7 @@ name: deploy to prod 8600 on: push: - branches: [ master, 2.x ] + branches: [ 2.x ] jobs: build: name: deploying to 2.x instance