001package ca.uhn.fhir.mdm.api;
002
003/*-
004 * #%L
005 * HAPI FHIR - Master Data Management
006 * %%
007 * Copyright (C) 2014 - 2022 Smile CDR, Inc.
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 *
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023import ca.uhn.fhir.mdm.model.MdmTransactionContext;
024import org.hl7.fhir.instance.model.api.IAnyResource;
025
026public interface IGoldenResourceMergerSvc {
027        /**
028         * Move all links from the theFromGoldenResource to theToGoldenResource and then set active=false on theFromGoldenResource.
029         * Merge all Golden Resource fields subject to survivorship rules.
030         *
031         * @param theFromGoldenResource the golden resource we are merging from
032         * @param theManuallyMergedResource an optional golden resource that was manually merged
033         * @param theToGoldenResource the golden resource we are merging to
034         * @return updated theToGoldenResource with the merged fields and links.
035         */
036        IAnyResource mergeGoldenResources(IAnyResource theFromGoldenResource, IAnyResource theManuallyMergedResource, IAnyResource theToGoldenResource, MdmTransactionContext theMdmTransactionContext);
037}