use of org.hisp.dhis.api.mobile.model.Program in project dhis2-core by dhis2.
the class DefaultProgramService method updateProgram.
@Override
public List<Program> updateProgram(ModelList programsFromClient, String localeString, OrganisationUnit unit) {
List<Program> programs = new ArrayList<>();
boolean isExisted = false;
// Get all Program belong to this OrgUnit
List<Program> serverPrograms = this.getPrograms(unit, localeString);
for (Program program : serverPrograms) {
// Loop thought the list of program from client
for (int j = 0; j < programsFromClient.getModels().size(); j++) {
Model model = programsFromClient.getModels().get(j);
if (program.getId() == model.getId()) {
// Version is different
if (program.getVersion() != Integer.parseInt(model.getName())) {
programs.add(program);
isExisted = true;
}
}
}
// Server has more program than client
if (!isExisted) {
programs.add(program);
}
}
return programs;
}
use of org.hisp.dhis.api.mobile.model.Program in project dhis2-core by dhis2.
the class DefaultProgramService method getProgram.
@Override
public Program getProgram(int programId, String localeString) {
org.hisp.dhis.program.Program program = programService.getProgram(programId);
Program pr = new Program();
pr.setId(program.getId());
pr.setName(program.getName());
pr.setVersion(program.getVersion());
List<ProgramStage> prStgs = new ArrayList<>();
for (org.hisp.dhis.program.ProgramStage programStage : program.getProgramStages()) {
ProgramStage prStg = new ProgramStage();
prStg.setId(programStage.getId());
prStg.setName(programStage.getName());
List<DataElement> des = new ArrayList<>();
Set<ProgramStageDataElement> programStageDataElements = programStage.getProgramStageDataElements();
for (ProgramStageDataElement programStagedataElement : programStageDataElements) {
org.hisp.dhis.dataelement.DataElement dataElement = programStagedataElement.getDataElement();
DataElement de = ModelMapping.getDataElement(dataElement);
de.setCompulsory(programStagedataElement.isCompulsory());
des.add(de);
}
prStg.setDataElements(des);
prStgs.add(prStg);
}
pr.setProgramStages(prStgs);
return pr;
}
use of org.hisp.dhis.api.mobile.model.Program in project dhis2-core by dhis2.
the class DefaultProgramService method getProgramLWUIT.
@Override
public org.hisp.dhis.api.mobile.model.LWUITmodel.Program getProgramLWUIT(int programId) {
org.hisp.dhis.program.Program program = programService.getProgram(programId);
org.hisp.dhis.api.mobile.model.LWUITmodel.Program pr = new org.hisp.dhis.api.mobile.model.LWUITmodel.Program();
pr.setId(program.getId());
pr.setName(program.getName());
pr.setType(program.getProgramType().getValue());
pr.setVersion(program.getVersion());
pr.setDateOfEnrollmentDescription(program.getEnrollmentDateLabel());
pr.setDateOfIncidentDescription(program.getIncidentDateLabel());
if (program.getTrackedEntity() != null && program.getTrackedEntity().getName() != null) {
pr.setTrackedEntityName(program.getTrackedEntity().getName());
}
List<org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage> prStgs = new ArrayList<>();
for (org.hisp.dhis.program.ProgramStage programStage : program.getProgramStages()) {
org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage prStg = new org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStage();
// add report date
prStg.setReportDate("");
prStg.setReportDateDescription(programStage.getExecutionDateLabel());
prStg.setDueDate("");
prStg.setId(programStage.getId());
prStg.setName(programStage.getName());
prStg.setRepeatable(programStage.getRepeatable());
if (programStage.getStandardInterval() == null) {
prStg.setStandardInterval(0);
} else {
prStg.setStandardInterval(programStage.getStandardInterval());
}
prStg.setCompleted(false);
prStg.setSingleEvent(program.isWithoutRegistration());
List<org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStageDataElement> des = new ArrayList<>();
Set<ProgramStageDataElement> programStageDataElements = programStage.getProgramStageDataElements();
for (ProgramStageDataElement programStageDataElement : programStageDataElements) {
org.hisp.dhis.dataelement.DataElement dataElement = programStageDataElement.getDataElement();
org.hisp.dhis.api.mobile.model.LWUITmodel.ProgramStageDataElement de = ModelMapping.getDataElementLWUIT(dataElement);
de.setCompulsory(programStageDataElement.isCompulsory());
de.setNumberType(null);
des.add(de);
}
prStg.setDataElements(des);
// Set all program sections
List<org.hisp.dhis.api.mobile.model.LWUITmodel.Section> mobileSections = new ArrayList<>();
if (programStage.getProgramStageSections().size() > 0) {
for (ProgramStageSection eachSection : programStage.getProgramStageSections()) {
org.hisp.dhis.api.mobile.model.LWUITmodel.Section mobileSection = new org.hisp.dhis.api.mobile.model.LWUITmodel.Section();
mobileSection.setId(eachSection.getId());
mobileSection.setName(eachSection.getName());
// Set all data elements' id, then we could have full from
// data element list of program stage
List<Integer> dataElementIds = new ArrayList<>();
for (org.hisp.dhis.dataelement.DataElement element : eachSection.getDataElements()) {
dataElementIds.add(element.getId());
}
mobileSection.setDataElementIds(dataElementIds);
mobileSections.add(mobileSection);
}
}
prStg.setSections(mobileSections);
prStgs.add(prStg);
}
pr.setProgramStages(prStgs);
List<ProgramTrackedEntityAttribute> programPatientAttributes = new ArrayList<>(program.getProgramAttributes());
for (ProgramTrackedEntityAttribute ppa : programPatientAttributes) {
pr.getProgramAttributes().add(this.getPatientAttributeForMobile(ppa));
}
if (program.getRelatedProgram() != null) {
pr.setRelationshipText(program.getRelationshipText());
pr.setRelatedProgramId(program.getRelatedProgram().getId());
pr.setRelationshipType(program.getRelationshipType().getId());
}
return pr;
}
Aggregations