Class MdmExpandersHolder

java.lang.Object
ca.uhn.fhir.mdm.svc.MdmExpandersHolder

public class MdmExpandersHolder extends Object
Holder class that manages two different MDM expansion implementation approaches based on MdmSettings.

This class addresses the dependency injection challenge where MdmSettings may not be available when these service objects are created. It holds references to both implementation approaches and determines which ones to use based on the MdmSettings. setMdmSettings method should be called when MdmSettings is constructed or updated for proper functioning.

The two implementation approaches are:

1. Eid Match-Only Mode: A simplified approach where resources are matched based solely on Enterprise ID (EID) values without creating golden resources or MDM links. This mode is activated when MdmSettings specify MATCH_ONLY mode and EID systems are defined.

2. Full MDM Mode: The complete MDM solution that creates golden resources and manages MDM links between resources.

Each approach has two service implementations, one for mdm expansion for searches and the other for mdm expansion for group bulk export:

Eid Match-Only Mode implementations: - MdmEidMatchOnlyLinkExpandSvc - BulkExportMdmEidMatchOnlyResourceExpander

Full MDM Mode implementations: - MdmLinkExpandSvc - BulkExportMdmResourceExpander

This class holds references to these service objects rather than creating them by itself, because some of these service objects have Spring annotations like @Transactional, for those annotations to work the objects need to be created by Spring itself.