use of de.symeda.sormas.app.backend.visit.Visit in project SORMAS-Project by hzi-braunschweig.
the class AbstractAdoDaoTest method testQueryForNew.
@Test
public void testQueryForNew() throws DaoException {
CaseDao caseDao = DatabaseHelper.getCaseDao();
// Case with change date 0 should be included
Case caseChangeDate0 = TestEntityCreator.createCase();
List<Case> newCases = caseDao.queryForNew();
assertEquals(1, newCases.size());
// Case with newer change date should not be included
Case caseNewChangeDate = TestEntityCreator.createCase();
caseNewChangeDate.setChangeDate(new Date());
caseDao.saveAndSnapshot(caseNewChangeDate);
newCases = caseDao.queryForNew();
assertEquals(1, newCases.size());
// Additional tests for other entities
Contact contact = TestEntityCreator.createContact(caseChangeDate0);
Visit visit = TestEntityCreator.createVisit(contact);
Sample sample = TestEntityCreator.createSample(caseChangeDate0);
Event event = TestEntityCreator.createEvent();
EventParticipant eventParticipant = TestEntityCreator.createEventParticipant(event);
assertEquals(1, DatabaseHelper.getContactDao().queryForNew().size());
assertEquals(1, DatabaseHelper.getVisitDao().queryForNew().size());
assertEquals(1, DatabaseHelper.getSampleDao().queryForNew().size());
assertEquals(1, DatabaseHelper.getEventDao().queryForNew().size());
assertEquals(1, DatabaseHelper.getEventParticipantDao().queryForNew().size());
}
use of de.symeda.sormas.app.backend.visit.Visit in project SORMAS-Project by hzi-braunschweig.
the class SettingsFragment method showRepullDataConfirmationDialog.
private void showRepullDataConfirmationDialog() {
final ConfirmationDialog confirmationDialog = new ConfirmationDialog(getActivity(), R.string.heading_confirmation_dialog, R.string.info_resync_duration);
confirmationDialog.setPositiveCallback(() -> {
// Collect unsynchronized changes
final List<Case> modifiedCases = DatabaseHelper.getCaseDao().getModifiedEntities();
final List<Contact> modifiedContacts = DatabaseHelper.getContactDao().getModifiedEntities();
final List<Person> modifiedPersons = DatabaseHelper.getPersonDao().getModifiedEntities();
final List<Event> modifiedEvents = DatabaseHelper.getEventDao().getModifiedEntities();
final List<EventParticipant> modifiedEventParticipants = DatabaseHelper.getEventParticipantDao().getModifiedEntities();
final List<Sample> modifiedSamples = DatabaseHelper.getSampleDao().getModifiedEntities();
final List<Visit> modifiedVisits = DatabaseHelper.getVisitDao().getModifiedEntities();
getBaseActivity().synchronizeData(SynchronizeDataAsync.SyncMode.CompleteAndRepull, true, true, null, new Callback() {
@Override
public void call() {
// Add deleted entities that had unsynchronized changes to sync log
for (Case caze : modifiedCases) {
if (DatabaseHelper.getCaseDao().queryUuidReference(caze.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(caze.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (Contact contact : modifiedContacts) {
if (DatabaseHelper.getContactDao().queryUuidReference(contact.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(contact.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (Person person : modifiedPersons) {
if (DatabaseHelper.getPersonDao().queryUuidReference(person.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(person.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (Event event : modifiedEvents) {
if (DatabaseHelper.getEventDao().queryUuidReference(event.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(event.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (EventParticipant eventParticipant : modifiedEventParticipants) {
if (DatabaseHelper.getEventParticipantDao().queryUuidReference(eventParticipant.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(eventParticipant.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (Sample sample : modifiedSamples) {
if (DatabaseHelper.getSampleDao().queryUuidReference(sample.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(sample.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
for (Visit visit : modifiedVisits) {
if (DatabaseHelper.getVisitDao().queryUuidReference(visit.getUuid()) == null) {
DatabaseHelper.getSyncLogDao().createWithParentStack(visit.toString(), getResources().getString(R.string.caption_changed_data_lost));
}
}
}
}, new Callback() {
@Override
public void call() {
DatabaseHelper.clearTables(false);
}
});
});
confirmationDialog.show();
}
use of de.symeda.sormas.app.backend.visit.Visit in project SORMAS-Project by hzi-braunschweig.
the class SymptomsReadFragment method prepareFragmentData.
@Override
protected void prepareFragmentData(Bundle savedInstanceState) {
AbstractDomainObject ado = getActivityRootData();
if (ado instanceof Case) {
symptomsContext = SymptomsContext.CASE;
record = ((Case) ado).getSymptoms();
disease = ((Case) ado).getDisease();
} else if (ado instanceof Visit) {
symptomsContext = SymptomsContext.VISIT;
record = ((Visit) ado).getSymptoms();
disease = ((Visit) ado).getDisease();
} else if (ado instanceof ClinicalVisit) {
symptomsContext = SymptomsContext.CLINICAL_VISIT;
record = ((ClinicalVisit) ado).getSymptoms();
disease = ((ClinicalVisit) ado).getDisease();
} else {
throw new UnsupportedOperationException("ActivityRootData of class " + ado.getClass().getSimpleName() + " does not support PersonReadFragment");
}
extractSymptoms();
}
use of de.symeda.sormas.app.backend.visit.Visit in project SORMAS-Project by hzi-braunschweig.
the class ContactReadVisitsListFragment method onListItemClick.
@Override
public void onListItemClick(View view, int position, Object item) {
Visit visit = (Visit) item;
VisitReadActivity.startActivity(getActivity(), visit.getUuid(), getActivityRootData().getUuid(), VisitSection.VISIT_INFO);
}
use of de.symeda.sormas.app.backend.visit.Visit in project SORMAS-Project by hzi-braunschweig.
the class DatabaseHelper method getAdoDaoInner.
public <ADO extends AbstractDomainObject> AbstractAdoDao<ADO> getAdoDaoInner(Class<ADO> type) {
if (!adoDaos.containsKey(type)) {
// build dao
AbstractAdoDao<ADO> dao;
Dao<ADO, Long> innerDao;
try {
innerDao = super.getDao(type);
if (type.equals(Case.class)) {
dao = (AbstractAdoDao<ADO>) new CaseDao((Dao<Case, Long>) innerDao);
} else if (type.equals(Immunization.class)) {
dao = (AbstractAdoDao<ADO>) new ImmunizationDao((Dao<Immunization, Long>) innerDao);
} else if (type.equals(Vaccination.class)) {
dao = (AbstractAdoDao<ADO>) new VaccinationDao((Dao<Vaccination, Long>) innerDao);
} else if (type.equals(Therapy.class)) {
dao = (AbstractAdoDao<ADO>) new TherapyDao((Dao<Therapy, Long>) innerDao);
} else if (type.equals(Prescription.class)) {
dao = (AbstractAdoDao<ADO>) new PrescriptionDao((Dao<Prescription, Long>) innerDao);
} else if (type.equals(Treatment.class)) {
dao = (AbstractAdoDao<ADO>) new TreatmentDao((Dao<Treatment, Long>) innerDao);
} else if (type.equals(Person.class)) {
dao = (AbstractAdoDao<ADO>) new PersonDao((Dao<Person, Long>) innerDao);
} else if (type.equals(PersonContactDetail.class)) {
dao = (AbstractAdoDao<ADO>) new PersonContactDetailDao((Dao<PersonContactDetail, Long>) innerDao);
} else if (type.equals(Location.class)) {
dao = (AbstractAdoDao<ADO>) new LocationDao((Dao<Location, Long>) innerDao);
} else if (type.equals(PointOfEntry.class)) {
dao = (AbstractAdoDao<ADO>) new PointOfEntryDao((Dao<PointOfEntry, Long>) innerDao);
} else if (type.equals(Facility.class)) {
dao = (AbstractAdoDao<ADO>) new FacilityDao((Dao<Facility, Long>) innerDao);
} else if (type.equals(Continent.class)) {
dao = (AbstractAdoDao<ADO>) new ContinentDao((Dao<Continent, Long>) innerDao);
} else if (type.equals(Subcontinent.class)) {
dao = (AbstractAdoDao<ADO>) new SubcontinentDao((Dao<Subcontinent, Long>) innerDao);
} else if (type.equals(Country.class)) {
dao = (AbstractAdoDao<ADO>) new CountryDao((Dao<Country, Long>) innerDao);
} else if (type.equals(Area.class)) {
dao = (AbstractAdoDao<ADO>) new AreaDao((Dao<Area, Long>) innerDao);
} else if (type.equals(Region.class)) {
dao = (AbstractAdoDao<ADO>) new RegionDao((Dao<Region, Long>) innerDao);
} else if (type.equals(District.class)) {
dao = (AbstractAdoDao<ADO>) new DistrictDao((Dao<District, Long>) innerDao);
} else if (type.equals(Community.class)) {
dao = (AbstractAdoDao<ADO>) new CommunityDao((Dao<Community, Long>) innerDao);
} else if (type.equals(User.class)) {
dao = (AbstractAdoDao<ADO>) new UserDao((Dao<User, Long>) innerDao);
} else if (type.equals(UserRoleConfig.class)) {
dao = (AbstractAdoDao<ADO>) new UserRoleConfigDao((Dao<UserRoleConfig, Long>) innerDao);
} else if (type.equals(DiseaseConfiguration.class)) {
dao = (AbstractAdoDao<ADO>) new DiseaseConfigurationDao((Dao<DiseaseConfiguration, Long>) innerDao);
} else if (type.equals(CustomizableEnumValue.class)) {
dao = (AbstractAdoDao<ADO>) new CustomizableEnumValueDao((Dao<CustomizableEnumValue, Long>) innerDao);
} else if (type.equals(FeatureConfiguration.class)) {
dao = (AbstractAdoDao<ADO>) new FeatureConfigurationDao((Dao<FeatureConfiguration, Long>) innerDao);
} else if (type.equals(Symptoms.class)) {
dao = (AbstractAdoDao<ADO>) new SymptomsDao((Dao<Symptoms, Long>) innerDao);
} else if (type.equals(HealthConditions.class)) {
dao = (AbstractAdoDao<ADO>) new HealthConditionsDao((Dao<HealthConditions, Long>) innerDao);
} else if (type.equals(ClinicalCourse.class)) {
dao = (AbstractAdoDao<ADO>) new ClinicalCourseDao((Dao<ClinicalCourse, Long>) innerDao);
} else if (type.equals(ClinicalVisit.class)) {
dao = (AbstractAdoDao<ADO>) new ClinicalVisitDao((Dao<ClinicalVisit, Long>) innerDao);
} else if (type.equals(MaternalHistory.class)) {
dao = (AbstractAdoDao<ADO>) new MaternalHistoryDao((Dao<MaternalHistory, Long>) innerDao);
} else if (type.equals(PortHealthInfo.class)) {
dao = (AbstractAdoDao<ADO>) new PortHealthInfoDao((Dao<PortHealthInfo, Long>) innerDao);
} else if (type.equals(Task.class)) {
dao = (AbstractAdoDao<ADO>) new TaskDao((Dao<Task, Long>) innerDao);
} else if (type.equals(Contact.class)) {
dao = (AbstractAdoDao<ADO>) new ContactDao((Dao<Contact, Long>) innerDao);
} else if (type.equals(Visit.class)) {
dao = (AbstractAdoDao<ADO>) new VisitDao((Dao<Visit, Long>) innerDao);
} else if (type.equals(Event.class)) {
dao = (AbstractAdoDao<ADO>) new EventDao((Dao<Event, Long>) innerDao);
} else if (type.equals(EventParticipant.class)) {
dao = (AbstractAdoDao<ADO>) new EventParticipantDao((Dao<EventParticipant, Long>) innerDao);
} else if (type.equals(Sample.class)) {
dao = (AbstractAdoDao<ADO>) new SampleDao((Dao<Sample, Long>) innerDao);
} else if (type.equals(PathogenTest.class)) {
dao = (AbstractAdoDao<ADO>) new PathogenTestDao((Dao<PathogenTest, Long>) innerDao);
} else if (type.equals(AdditionalTest.class)) {
dao = (AbstractAdoDao<ADO>) new AdditionalTestDao((Dao<AdditionalTest, Long>) innerDao);
} else if (type.equals(Hospitalization.class)) {
dao = (AbstractAdoDao<ADO>) new HospitalizationDao((Dao<Hospitalization, Long>) innerDao);
} else if (type.equals(PreviousHospitalization.class)) {
dao = (AbstractAdoDao<ADO>) new PreviousHospitalizationDao((Dao<PreviousHospitalization, Long>) innerDao);
} else if (type.equals(EpiData.class)) {
dao = (AbstractAdoDao<ADO>) new EpiDataDao((Dao<EpiData, Long>) innerDao);
} else if (type.equals(Exposure.class)) {
dao = (AbstractAdoDao<ADO>) new ExposureDao((Dao<Exposure, Long>) innerDao);
} else if (type.equals(ActivityAsCase.class)) {
dao = (AbstractAdoDao<ADO>) new ActivityAsCaseDao((Dao<ActivityAsCase, Long>) innerDao);
} else if (type.equals(WeeklyReport.class)) {
dao = (AbstractAdoDao<ADO>) new WeeklyReportDao((Dao<WeeklyReport, Long>) innerDao);
} else if (type.equals(WeeklyReportEntry.class)) {
dao = (AbstractAdoDao<ADO>) new WeeklyReportEntryDao((Dao<WeeklyReportEntry, Long>) innerDao);
} else if (type.equals(AggregateReport.class)) {
dao = (AbstractAdoDao<ADO>) new AggregateReportDao((Dao<AggregateReport, Long>) innerDao);
} else if (type.equals(Outbreak.class)) {
dao = (AbstractAdoDao<ADO>) new OutbreakDao((Dao<Outbreak, Long>) innerDao);
} else if (type.equals(DiseaseClassificationCriteria.class)) {
dao = (AbstractAdoDao<ADO>) new DiseaseClassificationCriteriaDao((Dao<DiseaseClassificationCriteria, Long>) innerDao);
} else if (type.equals(SormasToSormasOriginInfo.class)) {
dao = (AbstractAdoDao<ADO>) new SormasToSormasOriginInfoDao((Dao<SormasToSormasOriginInfo, Long>) innerDao);
} else if (type.equals(Campaign.class)) {
dao = (AbstractAdoDao<ADO>) new CampaignDao((Dao<Campaign, Long>) innerDao);
} else if (type.equals(CampaignFormMeta.class)) {
dao = (AbstractAdoDao<ADO>) new CampaignFormMetaDao((Dao<CampaignFormMeta, Long>) innerDao);
} else if (type.equals(CampaignFormData.class)) {
dao = (AbstractAdoDao<ADO>) new CampaignFormDataDao((Dao<CampaignFormData, Long>) innerDao);
} else {
throw new UnsupportedOperationException(type.toString());
}
adoDaos.put(type, dao);
} catch (SQLException e) {
Log.e(DatabaseHelper.class.getName(), "Can't build dao", e);
throw new RuntimeException(e);
}
}
return (AbstractAdoDao<ADO>) adoDaos.get(type);
}
Aggregations