Skip to content

Commit e0fd1cd

Browse files
authored
[TA] PageableOperation implementation (Azure#18351)
1 parent 7fb84f3 commit e0fd1cd

25 files changed

+2814
-4572
lines changed

sdk/textanalytics/Azure.AI.TextAnalytics/README.md

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -412,68 +412,69 @@ catch (RequestFailedException exception)
412412
Text Analytics for health is a containerized service that extracts and labels relevant medical information from unstructured texts such as doctor's notes, discharge summaries, clinical documents, and electronic health records. For more information see [How to: Use Text Analytics for health][healthcare].
413413

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

425+
string document2 = "Prescribed 100mg ibuprofen, taken twice daily.";
426+
425427
List<string> batchInput = new List<string>()
426428
{
427-
document,
428-
document,
429+
document1,
430+
document2,
429431
};
430432

431433
AnalyzeHealthcareEntitiesOptions options = new AnalyzeHealthcareEntitiesOptions()
432434
{
433-
Top = 1,
434-
Skip = 0,
435435
IncludeStatistics = true
436436
};
437437

438438
AnalyzeHealthcareEntitiesOperation healthOperation = await client.StartAnalyzeHealthcareEntitiesAsync(batchInput, "en", options);
439439

440440
await healthOperation.WaitForCompletionAsync();
441441

442-
AnalyzeHealthcareEntitiesResultCollection results = healthOperation.Value;
443-
444-
Console.WriteLine($"Results of Azure Text Analytics \"Healthcare Async\" Model, version: \"{results.ModelVersion}\"");
445-
Console.WriteLine("");
446-
447-
foreach (AnalyzeHealthcareEntitiesResult result in results)
442+
await foreach (AnalyzeHealthcareEntitiesResultCollection documentsInPage in healthOperation.Value)
448443
{
449-
Console.WriteLine($" Recognized the following {result.Entities.Count} healthcare entities:");
444+
Console.WriteLine($"Results of Azure Text Analytics \"Healthcare Async\" Model, version: \"{documentsInPage.ModelVersion}\"");
445+
Console.WriteLine("");
450446

451-
foreach (HealthcareEntity entity in result.Entities)
447+
foreach (AnalyzeHealthcareEntitiesResult result in documentsInPage)
452448
{
453-
Console.WriteLine($" Entity: {entity.Text}");
454-
Console.WriteLine($" Category: {entity.Category}");
455-
Console.WriteLine($" Offset: {entity.Offset}");
456-
Console.WriteLine($" Length: {entity.Length}");
457-
Console.WriteLine($" Links:");
449+
Console.WriteLine($" Recognized the following {result.Entities.Count} healthcare entities:");
458450

459-
foreach (EntityDataSource entityDataSource in entity.DataSources)
451+
foreach (HealthcareEntity entity in result.Entities)
460452
{
461-
Console.WriteLine($" Entity ID in Data Source: {entityDataSource.EntityId}");
462-
Console.WriteLine($" DataSource: {entityDataSource.Name}");
453+
Console.WriteLine($" Entity: {entity.Text}");
454+
Console.WriteLine($" Category: {entity.Category}");
455+
Console.WriteLine($" Offset: {entity.Offset}");
456+
Console.WriteLine($" Length: {entity.Length}");
457+
Console.WriteLine($" Links:");
458+
459+
foreach (EntityDataSource entityDataSource in entity.DataSources)
460+
{
461+
Console.WriteLine($" Entity ID in Data Source: {entityDataSource.EntityId}");
462+
Console.WriteLine($" DataSource: {entityDataSource.Name}");
463+
}
463464
}
464-
}
465465

466-
Console.WriteLine($" Document statistics:");
467-
Console.WriteLine($" Character count (in Unicode graphemes): {result.Statistics.CharacterCount}");
468-
Console.WriteLine($" Transaction count: {result.Statistics.TransactionCount}");
466+
Console.WriteLine($" Document statistics:");
467+
Console.WriteLine($" Character count (in Unicode graphemes): {result.Statistics.CharacterCount}");
468+
Console.WriteLine($" Transaction count: {result.Statistics.TransactionCount}");
469+
Console.WriteLine("");
470+
}
471+
Console.WriteLine($"Request statistics:");
472+
Console.WriteLine($" Document Count: {documentsInPage.Statistics.DocumentCount}");
473+
Console.WriteLine($" Valid Document Count: {documentsInPage.Statistics.ValidDocumentCount}");
474+
Console.WriteLine($" Transaction Count: {documentsInPage.Statistics.TransactionCount}");
475+
Console.WriteLine($" Invalid Document Count: {documentsInPage.Statistics.InvalidDocumentCount}");
469476
Console.WriteLine("");
470477
}
471-
Console.WriteLine($"Request statistics:");
472-
Console.WriteLine($" Document Count: {results.Statistics.DocumentCount}");
473-
Console.WriteLine($" Valid Document Count: {results.Statistics.ValidDocumentCount}");
474-
Console.WriteLine($" Transaction Count: {results.Statistics.TransactionCount}");
475-
Console.WriteLine($" Invalid Document Count: {results.Statistics.InvalidDocumentCount}");
476-
Console.WriteLine("");
477478
}
478479
```
479480

sdk/textanalytics/Azure.AI.TextAnalytics/api/Azure.AI.TextAnalytics.netstandard2.0.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
namespace Azure.AI.TextAnalytics
22
{
3-
public partial class AnalyzeHealthcareEntitiesOperation : Azure.Operation<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>
3+
public partial class AnalyzeHealthcareEntitiesOperation : Azure.AI.TextAnalytics.PageableOperation<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>
44
{
55
public AnalyzeHealthcareEntitiesOperation(string operationId, Azure.AI.TextAnalytics.TextAnalyticsClient client) { }
66
public System.DateTimeOffset CreatedOn { get { throw null; } }
@@ -10,20 +10,20 @@ public AnalyzeHealthcareEntitiesOperation(string operationId, Azure.AI.TextAnaly
1010
public override string Id { get { throw null; } }
1111
public System.DateTimeOffset LastModified { get { throw null; } }
1212
public Azure.AI.TextAnalytics.TextAnalyticsOperationStatus Status { get { throw null; } }
13-
public override Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection Value { get { throw null; } }
13+
public override Azure.AsyncPageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection> Value { get { throw null; } }
1414
public virtual void Cancel(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { }
1515
public virtual System.Threading.Tasks.Task CancelAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
1616
public override Azure.Response GetRawResponse() { throw null; }
17+
public override Azure.Pageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection> GetValues() { throw null; }
18+
public override Azure.AsyncPageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection> GetValuesAsync() { throw null; }
1719
public override Azure.Response UpdateStatus(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
1820
public override System.Threading.Tasks.ValueTask<Azure.Response> UpdateStatusAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
19-
public override System.Threading.Tasks.ValueTask<Azure.Response<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
20-
public override System.Threading.Tasks.ValueTask<Azure.Response<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
21+
public override System.Threading.Tasks.ValueTask<Azure.Response<Azure.AsyncPageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>>> WaitForCompletionAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
22+
public override System.Threading.Tasks.ValueTask<Azure.Response<Azure.AsyncPageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResultCollection>>> WaitForCompletionAsync(System.TimeSpan pollingInterval, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
2123
}
2224
public partial class AnalyzeHealthcareEntitiesOptions : Azure.AI.TextAnalytics.TextAnalyticsRequestOptions
2325
{
2426
public AnalyzeHealthcareEntitiesOptions() { }
25-
public int? Skip { get { throw null; } set { } }
26-
public int? Top { get { throw null; } set { } }
2727
}
2828
public partial class AnalyzeHealthcareEntitiesResult : Azure.AI.TextAnalytics.TextAnalyticsResult
2929
{
@@ -337,6 +337,13 @@ public readonly partial struct OpinionSentiment
337337
public Azure.AI.TextAnalytics.TextSentiment Sentiment { get { throw null; } }
338338
public string Text { get { throw null; } }
339339
}
340+
public abstract partial class PageableOperation<T> : Azure.Operation<Azure.AsyncPageable<T>> where T : notnull
341+
{
342+
protected PageableOperation() { }
343+
public override Azure.AsyncPageable<T> Value { get { throw null; } }
344+
public abstract Azure.Pageable<T> GetValues();
345+
public abstract Azure.AsyncPageable<T> GetValuesAsync();
346+
}
340347
[System.Runtime.InteropServices.StructLayoutAttribute(System.Runtime.InteropServices.LayoutKind.Sequential)]
341348
public readonly partial struct PiiEntity
342349
{
@@ -515,7 +522,6 @@ public TextAnalyticsClient(System.Uri endpoint, Azure.Core.TokenCredential crede
515522
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.AI.TextAnalytics.ExtractKeyPhrasesResultCollection>> ExtractKeyPhrasesBatchAsync(System.Collections.Generic.IEnumerable<string> documents, string language = null, Azure.AI.TextAnalytics.TextAnalyticsRequestOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
516523
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Never)]
517524
public override int GetHashCode() { throw null; }
518-
public virtual Azure.AsyncPageable<Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesResult> GetHealthcareEntities(Azure.AI.TextAnalytics.AnalyzeHealthcareEntitiesOperation operation, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
519525
public virtual Azure.Response<Azure.AI.TextAnalytics.CategorizedEntityCollection> RecognizeEntities(string document, string language = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
520526
public virtual System.Threading.Tasks.Task<Azure.Response<Azure.AI.TextAnalytics.CategorizedEntityCollection>> RecognizeEntitiesAsync(string document, string language = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }
521527
public virtual Azure.Response<Azure.AI.TextAnalytics.RecognizeEntitiesResultCollection> RecognizeEntitiesBatch(System.Collections.Generic.IEnumerable<Azure.AI.TextAnalytics.TextDocumentInput> documents, Azure.AI.TextAnalytics.TextAnalyticsRequestOptions options = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { throw null; }

0 commit comments

Comments
 (0)