Skip to content

Archiving

Martin Wahnschaffe edited this page Apr 27, 2022 · 9 revisions

Basics

The purpose of archiving is to hide an entity from the default directory views for day-to-day work, but still keep it in the system so it can be referenced by other entities and looked into when needed.

Technically, archiving is just a flag in the archived entity that leads to the entity no longer being display in directory views. This also affects child entities of the archived entity: A task or sample of an archived case or contact will not be displayed in the directory of active tasks and samples.

  • Archiving set's the end of processing date of the entity to the date the entity has been modified last, the system also considers related child entities, e.g. symptoms, health conditions, samples, visits, the person, etc. of a case.
  • Archived entities can also be de-archived when they need to be worked on again. The user has to provide a reason for this.
  • Each directory view offers a drop-down that allows displaying those archived entities.
  • References to other non-archived entities (e.g. from an archived contact to a not-archived case) still stay in place.
  • Archived entities are not synced to the mobile device.
  • Optional: Archived entities are not considered for duplicate detection - see Duplicate Detection Mechanisms.
  • Optional: Archived entities are read-only if the related feature type is set - see Feature Configuration Options

Archivable entities

Available for all core entities and infrastructure entities.

In addition it is available for:

  • Task: Tasks can be archived independently from the related core entity (e.g. case).
  • Event Group: Event groups are neither considered a core nor an infrastructure entity but still need to be archivable.

Special archiving rules:

  • Archiving a case also archives all of its resulting contacts
  • Archiving an event also archives all of its event participants

Manual archiving

Manually archiving an entity via the SORMAS UI is one of two ways to archive an entity in the way described above. In addition to archiving the entity itself, manual (de-)archiving offers the following convenience functionality to the user:

  • When archiving a case the system allows the user to choose whether all resulting contacts should be archived or not

Automatic archiving

Based on a Feature Configuration it is possible to automatically archive entities that were not modified for a certain number of days (default: 90 days).

This is supported only for core entities, but not for Campaigns.

Automatic archiving is executed by a nightly cron service that is doing the following for every entity type:

  1. Identify the reference date for automatic archiving (e.g. today minus 90 days)
  2. Identify all entities of the type that have not been modified after that reference date. To identify when the entity has been modified last, the system also considers related child entities, e.g. symptoms, health conditions, samples, visits, the person, etc. of a case.
  3. All identified entities are archived.