Bugfix / Add a selection of recipes for the reposts

This commit is contained in:
parent 11abd6a2a6
commit 49fcf65d52
10 changed files with 180 additions and 71 deletions

View File

@ -98,11 +98,12 @@ namespace HospitalBusinessLogics.BusinessLogics
{
var result = new List<ReportRecipeProceduresViewModel>();
// Получаем список рецептов по идентификатору врача
var recipes = _recipeStorage.GetFilteredList(new RecipeSearchModel
// Получаем список рецептов
var recipes = new List<RecipeViewModel>();
foreach (var recipeId in model.Recipes)
{
DoctorId = model.DoctorId
});
recipes.Add(_recipeStorage.GetElement(new RecipeSearchModel { Id = recipeId })!);
}
// Получаем список всех пациентов,
// так как рецепты и процедуры связаны через сущность "Пациент"

View File

@ -30,5 +30,10 @@ namespace HospitalContracts.BindingModels
/// Идентификатор врача
/// </summary>
public int DoctorId { get; set; }
/// <summary>
/// Список рецептов
/// </summary>
public List<int> Recipes { get; set; } = new();
}
}

View File

@ -25,6 +25,11 @@ namespace HospitalWebApp.Controllers
/// </summary>
private readonly IDoctorLogic _doctorLogic;
/// <summary>
/// Бизнес-логика для сущности "Рецепт"
/// </summary>
private readonly IRecipeLogic _recipeLogic;
/// <summary>
/// Бизнес-логика для отчетов
/// </summary>
@ -40,12 +45,14 @@ namespace HospitalWebApp.Controllers
/// </summary>
/// <param name="logger"></param>
/// <param name="doctorLogic"></param>
/// <param name="recipeLogic"></param>
/// <param name="reportLogic"></param>
/// <param name="mailLogic"></param>
public HomeController(ILogger<HomeController> logger, IDoctorLogic doctorLogic, IReportLogic reportLogic, AbstractMailWorker mailLogic)
public HomeController(ILogger<HomeController> logger, IDoctorLogic doctorLogic, IRecipeLogic recipeLogic, IReportLogic reportLogic, AbstractMailWorker mailLogic)
{
_logger = logger;
_doctorLogic = doctorLogic;
_recipeLogic = recipeLogic;
_reportLogic = reportLogic;
_mailLogic = mailLogic;
}
@ -230,6 +237,11 @@ namespace HospitalWebApp.Controllers
return Redirect("~/Home/Enter");
}
ViewBag.Recipes = _recipeLogic.ReadList(new RecipeSearchModel
{
DoctorId = APIClient.Doctor.Id
});
return View();
}
@ -257,6 +269,11 @@ namespace HospitalWebApp.Controllers
DoctorId = APIClient.Doctor.Id
});
ViewBag.Recipes = _recipeLogic.ReadList(new RecipeSearchModel
{
DoctorId = APIClient.Doctor.Id
});
return View(data);
}
@ -265,17 +282,23 @@ namespace HospitalWebApp.Controllers
/// </summary>
/// <exception cref="Exception"></exception>
[HttpPost]
public void CreateReportWord()
public void CreateReportWord(List<int> recipes)
{
if (APIClient.Doctor == null)
{
throw new Exception("Необходимо авторизоваться!");
}
if (recipes == null || recipes.Count <= 0)
{
throw new Exception("Не выбраны рецепты!");
}
_reportLogic.SaveRecipeProceduresToWordFile(new ReportBindingModel
{
FileName = $@"D:\ULSTU\Семестр 4\РПП Coursework\Reports\Список процедур {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.docx",
DoctorId = APIClient.Doctor.Id
FileName = $@"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Downloads\Список процедур {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.docx",
DoctorId = APIClient.Doctor.Id,
Recipes = recipes
});
Response.Redirect("/Home/Reports");
@ -286,17 +309,23 @@ namespace HospitalWebApp.Controllers
/// </summary>
/// <exception cref="Exception"></exception>
[HttpPost]
public void CreateReportExcel()
public void CreateReportExcel(List<int> recipes)
{
if (APIClient.Doctor == null)
{
throw new Exception("Необходимо авторизоваться!");
}
if (recipes == null || recipes.Count <= 0)
{
throw new Exception("Не выбраны рецепты!");
}
_reportLogic.SaveRecipeProceduresToExcelFile(new ReportBindingModel
{
FileName = $@"D:\ULSTU\Семестр 4\РПП Coursework\Reports\Список процедур {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.xlsx",
DoctorId = APIClient.Doctor.Id
FileName = $@"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Downloads\Список процедур {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.xlsx",
DoctorId = APIClient.Doctor.Id,
Recipes = recipes
});
Response.Redirect("/Home/Reports");
@ -321,7 +350,7 @@ namespace HospitalWebApp.Controllers
_reportLogic.SavePatientsInfoToPdfFile(new ReportBindingModel
{
FileName = $@"D:\ULSTU\Семестр 4\РПП Coursework\Reports\Сведения о пациентах {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.pdf",
FileName = $@"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}\Downloads\Сведения о пациентах {DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss")}.pdf",
DoctorId = APIClient.Doctor.Id,
DateFrom = dateFrom,
DateTo = dateTo
@ -349,7 +378,7 @@ namespace HospitalWebApp.Controllers
}
// Путь до файла
var uploadPath = @"D:\ULSTU\Семестр 4\РПП Coursework\Reports\";
var uploadPath = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + @"\Downloads\";
var fileName = Path.GetFileName(fileUpload.FileName);
var fullPath = Path.Combine(uploadPath, fileName);

View File

@ -12,17 +12,31 @@
<form method="post" enctype="multipart/form-data" style="margin-top: 50px">
<!-- Сохранить отчеты в формате Word и Excel -->
<div class="d-flex justify-content-center" style="gap: 30px">
<div class="d-flex justify-content-between">
<!-- Кнопка для сохранения отчета в формате Word -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportWord", "Home")">Список процедур Word</button>
</div>
<!-- Рецепты -->
<div class="row">
<div class="col-4">Рецепты:</div>
<div class="col-8">
<select name="recipes" id="recipes" class="form-control" size="4" multiple>
@foreach (var recipe in ViewBag.Recipes)
{
<option value="@recipe.Id">@recipe.Id - @recipe.IssueDate.ToShortDateString()</option>
}
</select>
</div>
</div>
<!-- Кнопка для сохранения отчета в формате Excel -->
<div class="text-center">
<button type="submit" class="btn btn-primary" formaction="@Url.Action("CreateReportExcel", "Home")">Список процедур Excel</button>
</div>
</div>
<!-- Временной период выборки данных -->
<div class="d-flex justify-content-center" style="margin: 30px 0px">
<div class="d-flex justify-content-center" style="margin: 50px 0px 30px 0px">
<div class="text-center">
<label for="dateFrom">С</label>
<input type="date" id="dateFrom" name="dateFrom" class="form-control d-inline-block w-auto">

View File

@ -1,6 +1,6 @@
<mxfile host="app.diagrams.net" modified="2024-03-02T17:27:37.588Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36" etag="1vsFJ4plWKVfcKJPIneo" version="24.0.0" type="device">
<mxfile host="app.diagrams.net" modified="2024-05-28T14:40:16.500Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36" etag="cA2SGLXYs-0-7FL2l63s" version="24.4.9" type="device">
<diagram name="Страница — 1" id="tCU-8ruN4obkQTEMnwRL">
<mxGraphModel dx="890" dy="354" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<mxGraphModel dx="1130" dy="404" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
@ -16,7 +16,7 @@
<mxCell id="4ChUvTMrlYuJTyUU1W_D-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-5" target="4ChUvTMrlYuJTyUU1W_D-14" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-5" value="Авторизация" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxCell id="4ChUvTMrlYuJTyUU1W_D-5" value="Аутентификация" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="140" y="330" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-16" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-6" target="4ChUvTMrlYuJTyUU1W_D-14" edge="1">
@ -43,7 +43,20 @@
<mxCell id="4ChUvTMrlYuJTyUU1W_D-22" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-19" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-71" edge="1">
<mxCell id="4ChUvTMrlYuJTyUU1W_D-78" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-71" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="390" y="675" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="SEXfS2kRUoi1OpBlYPHq-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="SEXfS2kRUoi1OpBlYPHq-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-14" value="Основная форма" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
@ -136,41 +149,20 @@
<mxCell id="4ChUvTMrlYuJTyUU1W_D-48" value="Выбрать рецепт" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="720" y="510" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-53" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-50" value="Привязка рецептов к пациентам" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="180" width="120" height="50" as="geometry" />
<mxGeometry x="500" y="650" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-52" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-51" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-51" value="Привязка лекарств к рецептам" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="100" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-60" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-54" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxCell id="SEXfS2kRUoi1OpBlYPHq-28" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-54" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-54" value="Выбрать пациента" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="170" width="120" height="30" as="geometry" />
<mxGeometry x="640" y="640" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-61" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-55" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxCell id="SEXfS2kRUoi1OpBlYPHq-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-55" target="4ChUvTMrlYuJTyUU1W_D-50" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-55" value="Выбрать рецепты" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="210" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-58" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-56" target="4ChUvTMrlYuJTyUU1W_D-51" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-56" value="Выбрать рецепт" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="90" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-59" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-57" target="4ChUvTMrlYuJTyUU1W_D-51" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-57" value="Выбрать лекарства" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="130" width="120" height="30" as="geometry" />
<mxGeometry x="640" y="680" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-66" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-64" target="4ChUvTMrlYuJTyUU1W_D-62" edge="1">
<mxGeometry relative="1" as="geometry" />
@ -178,23 +170,17 @@
<mxCell id="4ChUvTMrlYuJTyUU1W_D-67" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-63" target="4ChUvTMrlYuJTyUU1W_D-62" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-62" edge="1">
<mxCell id="4ChUvTMrlYuJTyUU1W_D-70" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-14" target="4ChUvTMrlYuJTyUU1W_D-62" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-62" value="Получение списка процедур" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="490" width="120" height="50" as="geometry" />
<mxCell id="4ChUvTMrlYuJTyUU1W_D-62" value="Получение отчета по процедурам" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="180" y="490" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-63" value="Получить список в формате doc" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="480" width="120" height="30" as="geometry" />
<mxCell id="4ChUvTMrlYuJTyUU1W_D-63" value="Получить отчет в формате docx" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="480" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-64" value="Получить список в формате xls" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="520" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-69" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-65" target="4ChUvTMrlYuJTyUU1W_D-62" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-65" value="Выбрать рецепт" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="440" width="120" height="30" as="geometry" />
<mxCell id="4ChUvTMrlYuJTyUU1W_D-64" value="Получить отчет в формате xlsx" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="520" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-74" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=1;entryY=0.75;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-71" target="4ChUvTMrlYuJTyUU1W_D-72" edge="1">
<mxGeometry relative="1" as="geometry" />
@ -202,20 +188,94 @@
<mxCell id="4ChUvTMrlYuJTyUU1W_D-75" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=1;entryY=0.25;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-71" target="4ChUvTMrlYuJTyUU1W_D-73" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-71" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Получение отчета по пациентам за период&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="210" y="580" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-72" value="Получить отчет на форме" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="569.5" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-73" value="Получить отчет на почту" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="610" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-76" target="4ChUvTMrlYuJTyUU1W_D-71" edge="1">
<mxCell id="SEXfS2kRUoi1OpBlYPHq-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;dashed=1;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-76" target="4ChUvTMrlYuJTyUU1W_D-71" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-76" value="Выбрать период" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="70" y="650" width="120" height="30" as="geometry" />
<mxCell id="4ChUvTMrlYuJTyUU1W_D-71" value="&lt;font style=&quot;font-size: 11px;&quot;&gt;Получение отчета по пациентам за период&lt;/font&gt;" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="180" y="580" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-72" value="Получить отчет на форме" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="569.5" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-73" value="Получить отчет на почту" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="610" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-77" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" parent="1" source="4ChUvTMrlYuJTyUU1W_D-76" target="4ChUvTMrlYuJTyUU1W_D-71" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="250" y="640" as="targetPoint" />
<Array as="points">
<mxPoint x="160" y="700" />
<mxPoint x="240" y="700" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="4ChUvTMrlYuJTyUU1W_D-76" value="Получить отчет в формате pdf" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="650" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-2" value="Выбрать период" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="690" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-5" value="Формирование процедур" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="330" y="40" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-11" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-6" target="SEXfS2kRUoi1OpBlYPHq-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-6" value="Добавить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="170" y="10" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-12" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-7" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="330.0000000000002" y="65.42857142857144" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-7" value="Изменить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="170" y="50" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-13" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-8" target="SEXfS2kRUoi1OpBlYPHq-5" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-8" value="Удалить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="170" y="90" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-16" value="Формирование лекарств" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="190" y="170" width="120" height="50" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-18" target="SEXfS2kRUoi1OpBlYPHq-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-18" value="Добавить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="140" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-20" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200.00000000000023" y="195.42857142857144" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-20" value="Изменить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="180" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-21" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.75;entryDx=0;entryDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-22" target="SEXfS2kRUoi1OpBlYPHq-16" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-22" value="Удалить запись" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="220" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-26" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;" parent="1" source="SEXfS2kRUoi1OpBlYPHq-25" target="SEXfS2kRUoi1OpBlYPHq-6" edge="1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="SEXfS2kRUoi1OpBlYPHq-25" value="Выбрать лекарства" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="40" y="10" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="pxZSzc3yHj0Cy_ZYAIzz-7" style="edgeStyle=none;curved=0;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;fontSize=12;startSize=8;endSize=8;strokeColor=default;" edge="1" parent="1" source="pxZSzc3yHj0Cy_ZYAIzz-1" target="4ChUvTMrlYuJTyUU1W_D-62">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="210" y="455" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="pxZSzc3yHj0Cy_ZYAIzz-1" value="Выбрать рецепты" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
<mxGeometry x="40" y="440" width="120" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.