private static void RegisterPipeline()

in converter/dicom-cast/src/Microsoft.Health.DicomCast.Core/Modules/WorkerModule.cs [72:134]


        private static void RegisterPipeline(IServiceCollection services)
        {
            services.Add<FhirTransactionPipeline>()
                .Transient()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Decorate<IFhirTransactionPipeline, RetryableFhirTransactionPipeline>();
            services.Decorate<IFhirTransactionPipeline, LoggingFhirTransactionPipeline>();

            services.Add<Func<IFhirTransactionPipeline>>(sp => () => sp.GetRequiredService<IFhirTransactionPipeline>())
                .Transient()
                .AsSelf();

            RegisterPipelineSteps(services);

            services.Decorate<IFhirTransactionPipelineStep, LoggingFhirTransactionPipelineStep>();

            services.Add<PatientSynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<PatientNameSynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<PatientGenderSynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<PatientBirthDateSynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<ImagingStudySynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<ImagingStudyPropertySynchronizer>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();

            services.Add<ImagingStudySeriesPropertySynchronizer>()
               .Singleton()
               .AsSelf()
               .AsImplementedInterfaces();

            services.Add<ImagingStudyInstancePropertySynchronizer>()
               .Singleton()
               .AsSelf()
               .AsImplementedInterfaces();

            services.Add<FhirTransactionRequestResponsePropertyAccessors>()
                .Singleton()
                .AsSelf()
                .AsImplementedInterfaces();
        }