コード例 #1
0
        private async Task <IResourceResponse <DocumentCollection> > CreateDocumentCollectionIfNotExists(string databaseName, string collectionName)
        {
            if (collection.ContainsKey(collectionName))
            {
                return(null);
            }
            await CreateDatabaseIfNotExists(databaseName);

            DocumentCollection collectionDefinition = new DocumentCollection();

            collectionDefinition.Id             = collectionName;
            collectionDefinition.IndexingPolicy = new IndexingPolicy(new RangeIndex(DataType.String)
            {
                Precision = -1
            });
            if (!fixeddb)
            {
                collectionDefinition.PartitionKey.Paths.Add("/id");
            }

            var x = await client.CreateDocumentCollectionIfNotExistsAsync(
                UriFactory.CreateDatabaseUri(databaseName),
                collectionDefinition,
                new RequestOptions { OfferThroughput = int.Parse(_secresolve.GetConfiguration("FHIRDBTHROUHPUT", "2000")) });

            collection.TryAdd(collectionName, collectionName);
            return(x);
        }
コード例 #2
0
        public AzureBlobHistoryStore()
        {
            _secresolve = new SecretResolver();
            CONTAINER   = _secresolve.GetConfiguration("FHIRDB", "FHIR3").ToLower() + "-history";
            CloudStorageAccount storageAccount = CloudStorageAccount.Parse(_secresolve.GetSecret("StorageConnectionString").Result);
            // Create the table if it doesn't exist.
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

            blob = blobClient.GetContainerReference(CONTAINER);
            blob.CreateIfNotExists();
        }
コード例 #3
0
        public AzureDocDBFHIRStore(IFHIRHistoryStore history)
        {
            _secresolve = new SecretResolver();
            this.client = new DocumentClient(new Uri(_secresolve.GetSecret("DBStorageEndPointUri").Result), _secresolve.GetSecret("DBStoragePrimaryKey").Result, new ConnectionPolicy
            {
                ConnectionMode     = ConnectionMode.Direct,
                ConnectionProtocol = Protocol.Tcp
            });
            historystore = history;
            ParserSettings ps = new ParserSettings();

            ps.AcceptUnknownMembers   = true;
            ps.AllowUnrecognizedEnums = true;
            parser = new FhirJsonParser(ps);
            string DBSTORAGE = _secresolve.GetConfiguration("FHIRDBStorage");

            fixeddb = (DBSTORAGE == null || DBSTORAGE.ToUpper().StartsWith("F"));
            int.TryParse(_secresolve.GetConfiguration("FHIRMAXDOCSIZE", "500000"), out imaxdocsize);
            DBName = _secresolve.GetConfiguration("FHIRDB", "FHIR3");
        }
コード例 #4
0
 //TODO: Inject Storage Implementation
 public ResourceController(IFHIRStore store)
 {
     _secresolve    = new SecretResolver();
     parsemode      = _secresolve.GetConfiguration("FHIRParserMode", "open");
     _strict        = (parsemode == null || parsemode.Equals("strict", StringComparison.CurrentCultureIgnoreCase) ? true : false);
     this.storage   = store;
     parsersettings = new ParserSettings();
     parsersettings.AcceptUnknownMembers   = !_strict;
     parsersettings.AllowUnrecognizedEnums = !_strict;
     jsonparser = new FhirJsonParser(parsersettings);
     xmlparser  = new FhirXmlParser(parsersettings);
 }