Esempio n. 1
0
        public async Task RecognizeHealthcareEntitiesBatchConvenienceWithStatisticsTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = batchConvenienceDocuments;

            HealthcareOptions options = new HealthcareOptions()
            {
                IncludeStatistics = true
            };

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(documents, "en", options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(documents.Count, resultCollection.Statistics.DocumentCount);

            Assert.AreEqual(48, resultCollection[0].Statistics.Value.CharacterCount);
            Assert.AreEqual(1, resultCollection[0].Statistics.Value.TransactionCount);

            Assert.Greater(resultCollection.Statistics.DocumentCount, 0);
            Assert.AreEqual(2, resultCollection.Statistics.DocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.TransactionCount);
            Assert.AreEqual(0, resultCollection.Statistics.InvalidDocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.ValidDocumentCount);
        }
Esempio n. 2
0
        public async Task RecognizeHealthcareEntitiesBatchWithPagination()
        {
            TextAnalyticsClient client = GetClient();
            string document            = @"RECORD #333582770390100 | MH | 85986313 | | 054351 | 2/14/2001 12:00:00 AM | CORONARY ARTERY DISEASE.";

            var list = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                list.Add(document);
            }
            ;

            HealthcareOptions options = new HealthcareOptions()
            {
                Top = 2
            };

            AnalyzeHealthcareEntitiesOperation healthOperation = await client.StartHealthcareBatchAsync(list, "en", options);

            AsyncPageable <DocumentHealthcareResult> results = client.GetHealthcareEntities(healthOperation);

            int resultCount = 0;

            await foreach (DocumentHealthcareResult result in results)
            {
                resultCount += 1;
            }

            Assert.AreEqual(10, resultCount);
        }
Esempio n. 3
0
        public async Task RecognizeHealthcareEntitiesWithTopParameter()
        {
            TextAnalyticsClient client = GetClient();

            HealthcareOptions options = new HealthcareOptions()
            {
                Top = 1
            };

            AnalyzeHealthcareEntitiesOperation operation = await client.StartHealthcareBatchAsync(batchDocuments, options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(1, resultCollection.Count);
            Assert.AreEqual(3, resultCollection[0].Entities.Count);
            Assert.IsNotNull(resultCollection[0].Id);
            Assert.AreEqual("1", resultCollection[0].Id);
            Assert.AreEqual("100mg", resultCollection[0].Entities.FirstOrDefault().Text);
            Assert.AreEqual("Dosage", resultCollection[0].Entities.FirstOrDefault().Category);
        }
Esempio n. 4
0
        public async Task RecognizeHealthcareEntitiesBatchWithStatisticsTest()
        {
            TextAnalyticsClient client = GetClient();
            var documents = batchDocuments;

            HealthcareOptions options = new HealthcareOptions()
            {
                IncludeStatistics = true
            };

            HealthcareOperation operation = await client.StartHealthcareBatchAsync(documents, options);

            await operation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.AreEqual(2, resultCollection.Count);

            Assert.AreEqual(2, resultCollection.Statistics.DocumentCount);
            Assert.AreEqual(2, resultCollection.Statistics.TransactionCount);
            Assert.AreEqual(0, resultCollection.Statistics.InvalidDocumentCount);
        }
        public async Task HealthcareAsyncPagination()
        {
            string endpoint = TestEnvironment.Endpoint;
            string apiKey   = TestEnvironment.ApiKey;

            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:TextAnalyticsSampleHealthcareAsyncPagination
            string document = @"RECORD #333582770390100 | MH | 85986313 | | 054351 | 2/14/2001 12:00:00 AM | CORONARY ARTERY DISEASE.";

            var list = new List <string>();

            for (int i = 0; i < 10; i++)
            {
                list.Add(document);
            }
            ;

            HealthcareOptions options = new HealthcareOptions()
            {
                Top = 2
            };

            HealthcareOperation healthOperation = await client.StartHealthcareBatchAsync(list, "en", options);

            AsyncPageable <DocumentHealthcareResult> results = client.GetHealthcareEntities(healthOperation);

            Console.WriteLine($"Results of Azure Text Analytics \"Healthcare Async\"");
            Console.WriteLine("");

            int resultCount = 0;
            await foreach (DocumentHealthcareResult result in results)
            {
                resultCount += 1;
            }

            Console.WriteLine("resultCount " + resultCount);
        }
        public async Task RecognizeHealthcareEntitiesWithSkipParameter()
        {
            TextAnalyticsClient client = GetClient();

            HealthcareOptions options = new HealthcareOptions()
            {
                Skip = 1
            };

            HealthcareOperation operation = await client.StartHealthcareBatchAsync(batchDocuments, options);

            await operation.WaitForCompletionAsync(PollingInterval);

            RecognizeHealthcareEntitiesResultCollection resultCollection = operation.Value;

            Assert.IsNotNull(resultCollection[0].TextAnalyticsError);
            Assert.IsNotNull(resultCollection[0].Warnings);
            Assert.AreEqual(1, resultCollection.Count);
            Assert.AreEqual(6, resultCollection[0].Entities.Count);
            Assert.IsNotNull(resultCollection[0].Id);
            Assert.AreEqual("2", resultCollection[0].Id);
            Assert.AreEqual("rapid", resultCollection[0].Entities.FirstOrDefault().Text);
            Assert.AreEqual("SymptomOrSign", resultCollection[0].Entities.FirstOrDefault().Category);
        }
Esempio n. 7
0
        public async Task HealthcareBatchAsync()
        {
            string endpoint = TestEnvironment.Endpoint;
            string apiKey   = TestEnvironment.ApiKey;

            var client = new TextAnalyticsClient(new Uri(endpoint), new AzureKeyCredential(apiKey));

            #region Snippet:TextAnalyticsSampleHealthcareBatchAsync
            string document = @"RECORD #333582770390100 | MH | 85986313 | | 054351 | 2/14/2001 12:00:00 AM | CORONARY ARTERY DISEASE | Signed | DIS | \
                                Admission Date: 5/22/2001 Report Status: Signed Discharge Date: 4/24/2001 ADMISSION DIAGNOSIS: CORONARY ARTERY DISEASE. \
                                HISTORY OF PRESENT ILLNESS: The patient is a 54-year-old gentleman with a history of progressive angina over the past several months. \
                                The patient had a cardiac catheterization in July of this year revealing total occlusion of the RCA and 50% left main disease ,\
                                with a strong family history of coronary artery disease with a brother dying at the age of 52 from a myocardial infarction and \
                                another brother who is status post coronary artery bypass grafting. The patient had a stress echocardiogram done on July , 2001 , \
                                which showed no wall motion abnormalities , but this was a difficult study due to body habitus. The patient went for six minutes with \
                                minimal ST depressions in the anterior lateral leads , thought due to fatigue and wrist pain , his anginal equivalent. Due to the patient's \
                                increased symptoms and family history and history left main disease with total occasional of his RCA was referred for revascularization with open heart surgery.";

            List <string> batchInput = new List <string>()
            {
                document,
                document,
            };

            HealthcareOptions options = new HealthcareOptions()
            {
                Top  = 1,
                Skip = 0,
                IncludeStatistics = true
            };

            HealthcareOperation healthOperation = await client.StartHealthcareBatchAsync(batchInput, "en", options);

            await healthOperation.WaitForCompletionAsync();

            RecognizeHealthcareEntitiesResultCollection results = healthOperation.Value;

            Console.WriteLine($"Results of Azure Text Analytics \"Healthcare Async\" Model, version: \"{results.ModelVersion}\"");
            Console.WriteLine("");

            foreach (DocumentHealthcareResult result in results)
            {
                Console.WriteLine($"    Recognized the following {result.Entities.Count} healthcare entities:");

                foreach (HealthcareEntity entity in result.Entities)
                {
                    Console.WriteLine($"    Entity: {entity.Text}");
                    Console.WriteLine($"    Subcategory: {entity.Subcategory}");
                    Console.WriteLine($"    Offset: {entity.Offset}");
                    Console.WriteLine($"    Length: {entity.Length}");
                    Console.WriteLine($"    IsNegated: {entity.IsNegated}");
                    Console.WriteLine($"    Links:");

                    foreach (HealthcareEntityLink healthcareEntityLink in entity.Links)
                    {
                        Console.WriteLine($"        ID: {healthcareEntityLink.Id}");
                        Console.WriteLine($"        DataSource: {healthcareEntityLink.DataSource}");
                    }
                }

                Console.WriteLine($"    Document statistics:");
                Console.WriteLine($"        Character count (in Unicode graphemes): {result.Statistics.Value.CharacterCount}");
                Console.WriteLine($"        Transaction count: {result.Statistics.Value.TransactionCount}");
                Console.WriteLine("");
            }
            Console.WriteLine($"Request statistics:");
            Console.WriteLine($"    Document Count: {results.Statistics.DocumentCount}");
            Console.WriteLine($"    Valid Document Count: {results.Statistics.ValidDocumentCount}");
            Console.WriteLine($"    Transaction Count: {results.Statistics.TransactionCount}");
            Console.WriteLine($"    Invalid Document Count: {results.Statistics.InvalidDocumentCount}");
            Console.WriteLine("");
        }