|
@@ -449,40 +449,66 @@ namespace StationProbe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public override async Task<ElementCollection> ExecuteAsync(ElementCollection inputs)
|
|
|
+ private async Task<List<string>> GetImageUrlsAsync(IPage page)
|
|
|
{
|
|
|
- var page = inputs[ElementType.Page].As<IPage>();
|
|
|
- //var frame = inputs[ElementType.Frame].As<IFrame>();
|
|
|
- if (page != null) //&& frame != null)
|
|
|
+ //Get all image urls.
|
|
|
+ var imageUrls = new List<string>();
|
|
|
+ await using (var backButtonElement = await page.WaitForSelectorAsync("button[class=\"btn fix-item feedback-common-button\"]"))
|
|
|
{
|
|
|
- var examId = Guid.NewGuid().ToString("N");
|
|
|
- //First time enter exam.
|
|
|
- await EnterExamAsync(page);
|
|
|
- //wait for page loaded.
|
|
|
- await Task.Delay(1000);
|
|
|
- //Get all image urls.
|
|
|
- var imageUrls = new List<string>();
|
|
|
- await using (var backButtonElement = await page.WaitForSelectorAsync("button[class=\"btn fix-item feedback-common-button\"]"))
|
|
|
+ var imageDivElements = await page.QuerySelectorAllAsync("div[class=\"bb-img is-preview\"]");
|
|
|
+ if (imageDivElements != null)
|
|
|
{
|
|
|
- var imageDivElements = await page.QuerySelectorAllAsync("div[class=\"bb-img is-preview\"]");
|
|
|
- if (imageDivElements != null)
|
|
|
+ foreach (var imageDivElement in imageDivElements)
|
|
|
{
|
|
|
- foreach (var imageDivElement in imageDivElements)
|
|
|
+ await using (var imageElement = await imageDivElement.QuerySelectorAsync("img"))
|
|
|
{
|
|
|
- await using (var imageElement = await imageDivElement.QuerySelectorAsync("img"))
|
|
|
+ await using (var imageUrl = await imageElement.GetPropertyAsync("src"))
|
|
|
{
|
|
|
- await using (var imageUrl = await imageElement.GetPropertyAsync("src"))
|
|
|
- {
|
|
|
- var url = await imageUrl.JsonValueAsync<string>();
|
|
|
- imageUrls.Add(url);
|
|
|
- }
|
|
|
+ var url = await imageUrl.JsonValueAsync<string>();
|
|
|
+ imageUrls.Add(url);
|
|
|
}
|
|
|
- await imageDivElement.DisposeAsync();
|
|
|
}
|
|
|
+ await imageDivElement.DisposeAsync();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Logger.WriteLine($"Get image url count:{imageUrls.Count}");
|
|
|
+ return imageUrls;
|
|
|
+ }
|
|
|
+
|
|
|
+ private async Task<string> GetReportAsync(IPage page)
|
|
|
+ {
|
|
|
+ var report = "";
|
|
|
+ var reportElements = await page.QuerySelectorAllAsync("div[class=\"col\"]");
|
|
|
+ foreach (var reportElement in reportElements)
|
|
|
+ {
|
|
|
+ await using (var strong = await reportElement.QuerySelectorAsync("strong"))
|
|
|
+ {
|
|
|
+ if (strong != null)
|
|
|
+ {
|
|
|
+ var content = await page.EvaluateFunctionAsync<string>("(element) => element.textContent", strong);
|
|
|
+ report += " " + content;
|
|
|
}
|
|
|
}
|
|
|
- Logger.WriteLine($"Get image url count:{imageUrls.Count}");
|
|
|
+ await reportElement.DisposeAsync();
|
|
|
+ }
|
|
|
+ Logger.WriteLine($"Get report:{report}");
|
|
|
+ return report;
|
|
|
+ }
|
|
|
|
|
|
+ public override async Task<ElementCollection> ExecuteAsync(ElementCollection inputs)
|
|
|
+ {
|
|
|
+ var page = inputs[ElementType.Page].As<IPage>();
|
|
|
+ //var frame = inputs[ElementType.Frame].As<IFrame>();
|
|
|
+ if (page != null) //&& frame != null)
|
|
|
+ {
|
|
|
+ var examId = Guid.NewGuid().ToString("N");
|
|
|
+ //First time enter exam.
|
|
|
+ await EnterExamAsync(page);
|
|
|
+ //wait for page loaded.
|
|
|
+ await Task.Delay(1000);
|
|
|
+
|
|
|
+ var imageUrls = await GetImageUrlsAsync(page);
|
|
|
for (var i = 0; i < imageUrls.Count; i++)
|
|
|
{
|
|
|
await SaveExamImageAsync(page, examId, i, imageUrls[i]);
|
|
@@ -501,21 +527,7 @@ namespace StationProbe
|
|
|
var patientAge = 0;
|
|
|
//var examDate = DateTime.Now;
|
|
|
|
|
|
- var report = "";
|
|
|
- var reportElements = await page.QuerySelectorAllAsync("div[class=\"col\"]");
|
|
|
- foreach (var reportElement in reportElements)
|
|
|
- {
|
|
|
- await using (var strong = await reportElement.QuerySelectorAsync("strong"))
|
|
|
- {
|
|
|
- if (strong != null)
|
|
|
- {
|
|
|
- var content = await page.EvaluateFunctionAsync<string>("(element) => element.textContent", strong);
|
|
|
- report += " " + content;
|
|
|
- }
|
|
|
- }
|
|
|
- await reportElement.DisposeAsync();
|
|
|
- }
|
|
|
- Logger.WriteLine($"Get report:{report}");
|
|
|
+ var report = await GetReportAsync(page);
|
|
|
|
|
|
//Save exam.
|
|
|
var exam = new Exam()
|
|
@@ -534,7 +546,7 @@ namespace StationProbe
|
|
|
};
|
|
|
_examStore.AddExam(exam);
|
|
|
|
|
|
- //Back to page.
|
|
|
+ //Back to examl list page.
|
|
|
await ExitExamAsync(page);
|
|
|
|
|
|
if (DebugMode)
|