use of de.symeda.sormas.app.backend.clinicalcourse.ClinicalVisit in project SORMAS-Project by hzi-braunschweig.
the class ClinicalVisitEditActivity method saveData.
@Override
public void saveData() {
if (saveTask != null) {
NotificationHelper.showNotification(this, WARNING, getString(R.string.message_already_saving));
// don't save multiple times
return;
}
final ClinicalVisit clinicalVisit = getStoredRootEntity();
try {
FragmentValidator.validate(getContext(), getActiveFragment().getContentBinding());
} catch (ValidationException e) {
NotificationHelper.showNotification(this, ERROR, e.getMessage());
return;
}
saveTask = new SavingAsyncTask(getRootView(), clinicalVisit) {
@Override
protected void onPreExecute() {
showPreloader();
}
@Override
public void doInBackground(TaskResultHolder resultHolder) throws Exception {
DatabaseHelper.getClinicalVisitDao().saveAndSnapshot(clinicalVisit);
}
@Override
protected void onPostExecute(AsyncTaskResult<TaskResultHolder> taskResult) {
hidePreloader();
super.onPostExecute(taskResult);
if (taskResult.getResultStatus().isSuccess()) {
goToNextPage();
} else {
// reload data
onResume();
}
saveTask = null;
}
}.executeOnThreadPool();
}
use of de.symeda.sormas.app.backend.clinicalcourse.ClinicalVisit in project SORMAS-Project by hzi-braunschweig.
the class ClinicalVisitNewActivity method saveData.
@Override
public void saveData() {
if (saveTask != null) {
NotificationHelper.showNotification(this, WARNING, getString(R.string.message_already_saving));
// don't save multiple times
return;
}
final ClinicalVisit clinicalVisit = getStoredRootEntity();
ClinicalVisitEditFragment fragment = (ClinicalVisitEditFragment) getActiveFragment();
fragment.setLiveValidationDisabled(false);
try {
FragmentValidator.validate(getContext(), getActiveFragment().getContentBinding());
} catch (ValidationException e) {
NotificationHelper.showNotification(this, ERROR, e.getMessage());
return;
}
saveTask = new SavingAsyncTask(getRootView(), clinicalVisit) {
@Override
protected void onPreExecute() {
showPreloader();
}
@Override
public void doInBackground(TaskResultHolder resultHolder) throws Exception {
DatabaseHelper.getClinicalVisitDao().saveAndSnapshot(clinicalVisit);
}
@Override
protected void onPostExecute(AsyncTaskResult<TaskResultHolder> taskResult) {
hidePreloader();
super.onPostExecute(taskResult);
if (taskResult.getResultStatus().isSuccess()) {
finish();
ClinicalVisitEditActivity.startActivity(getContext(), clinicalVisit.getUuid(), caseUuid, ClinicalVisitSection.CLINICAL_MEASUREMENTS);
}
saveTask = null;
}
}.executeOnThreadPool();
}
use of de.symeda.sormas.app.backend.clinicalcourse.ClinicalVisit in project SORMAS-Project by hzi-braunschweig.
the class CaseReadClinicalVisitListFragment method onListItemClick.
@Override
public void onListItemClick(View view, int position, Object item) {
ClinicalVisit clinicalVisit = (ClinicalVisit) item;
ClinicalVisitReadActivity.startActivity(getActivity(), clinicalVisit.getUuid(), getActivityRootData().getUuid(), ClinicalVisitSection.VISIT_INFO);
}
use of de.symeda.sormas.app.backend.clinicalcourse.ClinicalVisit in project SORMAS-Project by hzi-braunschweig.
the class ClinicalVisitListAdapter method onBindViewHolder.
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
super.onBindViewHolder(holder, position);
if (getItemViewType(position) == TYPE_ITEM) {
BindingViewHolder<ClinicalVisit, RowClinicalVisitListItemLayoutBinding> pagedHolder = (BindingViewHolder) holder;
ClinicalVisit item = getItem(position);
pagedHolder.binding.setSymptoms(item.getSymptoms());
pagedHolder.setOnListItemClickListener(this.mOnListItemClickListener);
if (item.isModifiedOrChildModified()) {
pagedHolder.binding.imgSyncIcon.setVisibility(View.VISIBLE);
pagedHolder.binding.imgSyncIcon.setImageResource(R.drawable.ic_sync_blue_24dp);
} else {
pagedHolder.binding.imgSyncIcon.setVisibility(View.GONE);
}
}
// TODO #704
// updateUnreadIndicator(holder, record);
}
use of de.symeda.sormas.app.backend.clinicalcourse.ClinicalVisit in project SORMAS-Project by hzi-braunschweig.
the class CaseDao method deleteCaseAndAllDependingEntities.
public void deleteCaseAndAllDependingEntities(String caseUuid) throws SQLException {
Case caze = queryUuidWithEmbedded(caseUuid);
// Cancel if not in local database
if (caze == null) {
return;
}
// Delete contacts, contact tasks and visits
List<Contact> contacts = DatabaseHelper.getContactDao().getByCase(caze);
for (Contact contact : contacts) {
DatabaseHelper.getContactDao().deleteContactAndAllDependingEntities(contact);
}
// Delete samples, pathogen tests and additional tests
List<Sample> samples = DatabaseHelper.getSampleDao().queryByCase(caze);
for (Sample sample : samples) {
DatabaseHelper.getSampleDao().deleteSampleAndAllDependingEntities(sample);
}
// Delete case tasks
List<Task> tasks = DatabaseHelper.getTaskDao().queryByCase(caze);
for (Task task : tasks) {
DatabaseHelper.getTaskDao().deleteCascade(task);
}
// Delete treatments and prescriptions
if (caze.getTherapy() != null) {
for (Treatment treatment : DatabaseHelper.getTreatmentDao().findBy(new TreatmentCriteria().therapy(caze.getTherapy()))) {
DatabaseHelper.getTreatmentDao().delete(treatment);
}
for (Prescription prescription : DatabaseHelper.getPrescriptionDao().findBy(new PrescriptionCriteria().therapy(caze.getTherapy()))) {
DatabaseHelper.getPrescriptionDao().delete(prescription);
}
}
// Delete clinical visits
if (caze.getClinicalCourse() != null) {
for (ClinicalVisit clinicalVisit : DatabaseHelper.getClinicalVisitDao().findBy(new ClinicalVisitCriteria().clinicalCourse(caze.getClinicalCourse()))) {
DatabaseHelper.getClinicalVisitDao().delete(clinicalVisit);
}
}
// Remove events linked to case by removing case_id from event participants - delete event participant and
List<EventParticipant> eventParticipants = DatabaseHelper.getEventParticipantDao().getByCase(caze);
for (EventParticipant eventParticipant : eventParticipants) {
DatabaseHelper.getEventParticipantDao().deleteEventParticipant(eventParticipant);
}
// Remove events outside jurisdiction which were pulled in due to linking with an accessible case
EventCriteria eventCriteria = new EventCriteria();
eventCriteria.caze(caze);
List<Event> eventList = DatabaseHelper.getEventDao().queryByCriteria(eventCriteria, 0, 0);
for (Event event : eventList) {
List<EventParticipant> eventParticipantByEventList = DatabaseHelper.getEventParticipantDao().getByEvent(event);
if (eventParticipantByEventList.isEmpty()) {
Boolean isEventInJurisdiction = EventEditAuthorization.isEventEditAllowed(event);
if (!isEventInJurisdiction) {
DatabaseHelper.getEventDao().delete(event);
}
}
}
// Delete case
deleteCascade(caze);
}
Aggregations