public FhirController(ICollection <IFhirService> services, ICollection <IFhirMockupService> mockupServices, ProfileValidator profileValidator, AbstractStructureDefinitionService abstractStructureDefinitionService)
 {
     _fhirServices       = services;
     _fhirMockupServices = mockupServices;
     _profileValidator   = profileValidator;
     _abstractStructureDefinitionService = abstractStructureDefinitionService;
 }
        private static List <ResourceReference> SetProfiles(AbstractStructureDefinitionService abstractStructureDefinitionService)
        {
            var structureDefinitions = abstractStructureDefinitionService.GetStructureDefinitions();
            var profiles             = structureDefinitions.Select(structureDefinition => new ResourceReference {
                Url = new Uri(structureDefinition.Url)
            }).ToList();

            return(profiles);
        }
 public FhirController(ICollection <IFhirService> services, AbstractStructureDefinitionService abstractStructureDefinitionService)
 {
     _fhirServices = services;
     _abstractStructureDefinitionService = abstractStructureDefinitionService;
 }
        public CapabilityStatement CreateMetadata(ICollection <IFhirService> services, AbstractStructureDefinitionService abstractStructureDefinitionService, string baseUrl)
        {
            if (!services.Any())
            {
                return(new CapabilityStatement());
            }
            var serviceName = MetaDataName(services);

            var fhirVersion = ModelInfo.Version;

            var fhirPublisher   = GetFhirPublisher();
            var fhirDescription = GetFhirDescription();

            var conformance = CapabilityStatementBuilder.CreateServer(serviceName, fhirPublisher, fhirVersion);

            //conformance.AddUsedResources(services, false, false,
            //  CapabilityStatement.ResourceVersionPolicy.VersionedUpdate);

            //conformance.AddSearchSetInteraction().AddSearchTypeInteractionForResources();
            conformance.AddSearchTypeInteractionForResources();
            conformance = conformance.AddCoreSearchParamsAllResources(services);
            conformance = conformance.AddOperationDefintion(services);

            conformance.AcceptUnknown = CapabilityStatement.UnknownContentCode.Both;
            conformance.Experimental  = true;
            conformance.Format        = new[] { "xml", "json" };
            conformance.Description   = new Markdown(fhirDescription);

            conformance.Profile = SetProfiles(abstractStructureDefinitionService);

            return(conformance);
        }