In the Condition API, whenever a Condition is edited, the expected behavior is that the existing Condition is voided, and a new Condition is created that links back to the previous condition (via the previousVersion property), with all of the same meaningful values as the previous version, and any changes that have been applied.
This functionality uses the static Condition#copy method, in which a Condition is responsible for copying state from one Condition into another Condition.
There are several properties of Condition that are missing from this implementation:
- The `encounter` is not set on the `toCondition` from the `fromCondition`
- The `formNamespaceAndPath` is not set on the `toCondition` from the `fromCondition`
- The `endReason` property is not set on the `toCondition` from the `fromCondition`