/* fEMR - fast Electronic Medical Records Copyright (C) 2014 Team fEMR fEMR is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. fEMR is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with fEMR. If not, see <http://www.gnu.org/licenses/>. If you have any questions, contact <info@teamfemr.org>. */ package femr.business.helpers; import com.avaje.ebean.ExpressionList; import com.avaje.ebean.Query; import femr.data.daos.IRepository; import femr.data.models.core.IPatient; import femr.data.models.core.IPatientEncounterVital; import femr.data.models.mysql.MissionCity; import femr.data.models.mysql.Patient; import femr.data.models.mysql.PatientEncounterVital; import femr.data.models.core.IMissionCity; import java.util.List; public class QueryHelper { public static Float findPatientWeight(IRepository<IPatientEncounterVital> patientEncounterVitalRepository, int encounterId){ Float weight = null; Query<PatientEncounterVital> query2 = QueryProvider.getPatientEncounterVitalQuery() .fetch("vital") .where() .eq("patient_encounter_id", encounterId) .eq("vital.name", "weight") .order().desc("date_taken"); List<? extends IPatientEncounterVital> patientEncounterVitals = patientEncounterVitalRepository.find(query2); if (patientEncounterVitals.size() > 0) { weight = patientEncounterVitals.get(0).getVitalValue(); } return weight; } public static Integer findWeeksPregnant(IRepository<IPatientEncounterVital> patientEncounterVitalRepository, int encounterId){ Integer weeks_pregnant = null; Query<PatientEncounterVital> query2 = QueryProvider.getPatientEncounterVitalQuery() .fetch("vital") .where() .eq("patient_encounter_id", encounterId) .eq("vital.name", "weeksPregnant") .order().desc("date_taken"); List<? extends IPatientEncounterVital> patientEncounterVitals = patientEncounterVitalRepository.find(query2); if (patientEncounterVitals.size() > 0) { weeks_pregnant = Math.round(patientEncounterVitals.get(0).getVitalValue()); } return weeks_pregnant; } public static Integer findPatientHeightFeet(IRepository<IPatientEncounterVital> patientEncounterVitalRepository, int encounterId){ Integer heightFeet = null; Query<PatientEncounterVital> query1 = QueryProvider.getPatientEncounterVitalQuery() .fetch("vital") .where() .eq("patient_encounter_id", encounterId) .eq("vital.name", "heightFeet") .order().desc("date_taken"); List<? extends IPatientEncounterVital> patientEncounterVitals = patientEncounterVitalRepository.find(query1); if (patientEncounterVitals.size() > 0) { heightFeet = Math.round(patientEncounterVitals.get(0).getVitalValue()); } return heightFeet; } public static Integer findPatientHeightInches(IRepository<IPatientEncounterVital> patientEncounterVitalRepository, int encounterId){ Integer heightInches = null; Query<PatientEncounterVital> query1 = QueryProvider.getPatientEncounterVitalQuery() .fetch("vital") .where() .eq("patient_encounter_id", encounterId) .eq("vital.name", "heightInches") .order().desc("date_taken"); List<? extends IPatientEncounterVital> patientEncounterVitals = patientEncounterVitalRepository.find(query1); if (patientEncounterVitals.size() > 0) { heightInches = Math.round(patientEncounterVitals.get(0).getVitalValue()); } return heightInches; } /** * AJ Saclayan * Finds all cities* */ public static List<? extends IMissionCity> findCities(IRepository<IMissionCity> cityRepository){ return cityRepository.findAll(MissionCity.class); } }