Search in sources :

Example 1 with AllDefinitionLibraries

use of org.openmrs.module.reporting.definition.library.AllDefinitionLibraries in project openmrs-module-pihcore by PIH.

the class ActiveVisitsAjaxController method getActiveVisits.

@RequestMapping(value = "/module/pihcore/reports/ajax/activeVisitsList.form", method = RequestMethod.GET, headers = "Accept=application/json")
public void getActiveVisits(@RequestParam(value = "patientIds", required = false) Integer[] patientIds, HttpServletResponse response) throws EvaluationException, IOException {
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    AllDefinitionLibraries definitionLibraries = Context.getRegisteredComponents(AllDefinitionLibraries.class).get(0);
    EvaluationContext context = new EvaluationContext();
    Cohort c = null;
    if (patientIds != null && patientIds.length > 0) {
        if (patientIds[0] == null) {
            // there are no patients with last encounter at this specific location
            return;
        }
        c = new Cohort("active", "Patients with active visits", patientIds);
    }
    DataSet result = null;
    PatientDataSetDefinition dsd = new PatientDataSetDefinition();
    VisitCohortDefinition visitCohortDefinition = new VisitCohortDefinition();
    visitCohortDefinition.setActive(true);
    if (c != null) {
        context.setBaseCohort(c);
    }
    dsd.addRowFilter(visitCohortDefinition, null);
    dsd.addColumn("patientId", definitionLibraries.getDefinition(PatientDataDefinition.class, "reporting.library.patientDataDefinition.builtIn.patientId"), "");
    dsd.addColumn("familyName", definitionLibraries.getDefinition(PatientDataDefinition.class, "reporting.library.patientDataDefinition.builtIn.preferredName.familyName"), "");
    dsd.addColumn("givenName", definitionLibraries.getDefinition(PatientDataDefinition.class, "reporting.library.patientDataDefinition.builtIn.preferredName.givenName"), "");
    // TODO: change this to not have to rely on an if/then
    if (config.getCountry().equals(ConfigDescriptor.Country.HAITI)) {
        dsd.addColumn("identifier", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.preferredZlEmrId.identifier"), "");
    } else {
        dsd.addColumn("identifier", definitionLibraries.getDefinition(PatientDataDefinition.class, "reporting.library.patientDataDefinition.builtIn.preferredIdentifier.identifier"), "");
    }
    dsd.addColumn("firstCheckinLocation", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.checkin.location"), "");
    dsd.addColumn("checkinDateTime", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.checkin.encounterDatetime"), "");
    dsd.addColumn("lastEncounterType", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.lastEncounter.type"), "");
    dsd.addColumn("lastEncounterLocation", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.lastEncounter.location"), "");
    dsd.addColumn("lastEncounterDateTime", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.lastEncounter.encounterDatetime"), "");
    dsd.addColumn("visitUuid", definitionLibraries.getDefinition(PatientDataDefinition.class, "mirebalais.patientDataCalculation.lastEncounter.visit.uuid"), "");
    result = dsdService.evaluate(dsd, context);
    String json = toJson(DataSetUtil.simplify(result));
    PrintWriter out = response.getWriter();
    out.print(json);
}
Also used : Cohort(org.openmrs.Cohort) DataSet(org.openmrs.module.reporting.dataset.DataSet) PatientDataDefinition(org.openmrs.module.reporting.data.patient.definition.PatientDataDefinition) PatientDataSetDefinition(org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition) AllDefinitionLibraries(org.openmrs.module.reporting.definition.library.AllDefinitionLibraries) EvaluationContext(org.openmrs.module.reporting.evaluation.EvaluationContext) VisitCohortDefinition(org.openmrs.module.reporting.cohort.definition.VisitCohortDefinition) PrintWriter(java.io.PrintWriter) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

PrintWriter (java.io.PrintWriter)1 Cohort (org.openmrs.Cohort)1 VisitCohortDefinition (org.openmrs.module.reporting.cohort.definition.VisitCohortDefinition)1 PatientDataDefinition (org.openmrs.module.reporting.data.patient.definition.PatientDataDefinition)1 DataSet (org.openmrs.module.reporting.dataset.DataSet)1 PatientDataSetDefinition (org.openmrs.module.reporting.dataset.definition.PatientDataSetDefinition)1 AllDefinitionLibraries (org.openmrs.module.reporting.definition.library.AllDefinitionLibraries)1 EvaluationContext (org.openmrs.module.reporting.evaluation.EvaluationContext)1 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)1