Transaction() public method

public Transaction ( Hl7.Fhir.Model.Bundle bundle ) : Spark.Engine.Core.FhirResponse
bundle Hl7.Fhir.Model.Bundle
return Spark.Engine.Core.FhirResponse
Esempio n. 1
0
        /// <summary>
        /// Reinitializes the (database of) the server to its initial state
        /// </summary>
        /// <returns></returns>
        /// <remarks>Quite a destructive operation, mostly useful in debugging situations</remarks>
        public OperationOutcome Initialize()
        {
            //Note: also clears the counters collection, so id generation starts anew and
            //clears all stored binaries at Amazon S3.
            Stopwatch w = new Stopwatch();

            w.Start();
            _store.Clean();
            //_store.EraseData();
            //_store.EnsureIndices();

            _index.Clean();

            w.Stop();
            long cleaning = w.ElapsedMilliseconds;

            //Insert our own conformance statement into Conformance collection

            ResourceEntry conformanceentry = ResourceEntry.Create(ConformanceBuilder.Build());

            _service.Create(ConformanceBuilder.CONFORMANCE_COLLECTION_NAME, conformanceentry, ConformanceBuilder.CONFORMANCE_ID);

            //Insert standard examples
            w.Restart();
            var examples = loadExamples();


            var count = examples.Entries.OfType <Condition>().Count();

            w.Stop();
            long loadex = w.ElapsedMilliseconds;

            w.Restart();
            _service.Transaction(examples);
            w.Stop();
            var batch = w.ElapsedMilliseconds;


            //Start numbering new resources at an id higher than the examples (we hope)
            //EK: I like the convention of examples having id <10000, and new records >10.000, so please retain
            _store.EnsureNextSequenceNumberHigherThan(9999);


            string message = String.Format("Database was succesfully re-initialized: cleaning {0}, examples {1}, storage {2} ms", cleaning, loadex, batch);

            return(new OperationOutcome().Message(message));
        }
Esempio n. 2
0
        /// <summary>
        /// Reinitializes the (database of) the server to its initial state
        /// </summary>
        /// <returns></returns>
        /// <remarks>Quite a destructive operation, mostly useful in debugging situations</remarks>

        public string Initialize(bool extract)
        {
            //Note: also clears the counters collection, so id generation starts anew and
            //clears all stored binaries at Amazon S3.
            var stopwatch = new Stopwatch();

            stopwatch.Start();
            store.Clean();
            index.Clean();
            stopwatch.Stop();
            double time_cleaning = stopwatch.Elapsed.Seconds;

            //Insert our own conformance statement into Conformance collection

            ResourceEntry conformanceentry = ResourceEntry.Create(ConformanceBuilder.Build());

            service.Upsert(conformanceentry, ConformanceBuilder.CONFORMANCE_COLLECTION_NAME, ConformanceBuilder.CONFORMANCE_ID);

            //Insert standard examples
            stopwatch.Restart();
            var examples = loadExamples(extract);

            stopwatch.Stop();
            double time_loading = stopwatch.Elapsed.Seconds;

            stopwatch.Restart();
            service.Transaction(examples);
            stopwatch.Stop();
            double time_storing = stopwatch.Elapsed.Seconds;

            //Start numbering new resources at an id higher than the examples (we hope)
            //EK: I like the convention of examples having id <10000, and new records >10.000, so please retain
            //_store.EnsureNextSequenceNumberHigherThan(9999);

            string message = String.Format(
                "Database was succesfully re-initialized. \nTime spent:" +
                "\nCleaning: {0}sec \nLoading examples: {1}sec, \nStoring: {2}sec",
                time_cleaning, time_loading, time_storing);

            return(message);
        }