| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365 |
- using CommunityToolkit.Mvvm.ComponentModel;
- using ivf_tl_Entity.Entity;
- using ivf_tl_Entity.Entity.balance;
- using ivf_tl_Entity.Entity.Result;
- using ivf_tl_Service.HttpProvider;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- using System.Windows.Resources;
- using System.IO;
- using ivf_tl_Entity.Entity.Mark;
- using System.Diagnostics;
- using ivf_tl_Manage.Converts;
- using System.Collections.ObjectModel;
- namespace ivf_tl_Manage.ViewModels
- {
- public partial class PdfViewModel : BaseViewModel
- {
- public byte[] LogoBytes = null;
- public List<byte[]> PdfImageList { get; set; } = new List<byte[]>();
- public DishProvider dishProvider = null;
- public HouseProvider houseProvider = null;
- public MarkSettingProvider markSettingProvider = null;
- public Dish Dish = null;
- public Document Document { get; set; } = null;
- public List<DishPicAndVideo> DishPicAndVideoList { get; set; } = new List<DishPicAndVideo>();
- public List<ButtonEntity> QuickButtons { get; set; } = new List<ButtonEntity>();
- public bool IsUpdateAi { get; set; } = false;
- [ObservableProperty]
- private bool isCurrentDish = true;
- List<MarkEntity> MarkEntityList;
- int ChildrenMarkCount = 0;
- string HosName;
- public PdfViewModel(BaseViewModel parentViewModel, Dish dishValue, bool isc)
- {
- base.NavName = KeyToStringConvert.GetLanguageStringByKey("0595");
- base.ViewModelName = nameof(PdfViewModel);
- base.NavList.Clear();
- base.NavList.Add(parentViewModel);
- base.NavList.Add(this);
- dishProvider = AppData.Instance.GetDishProvider();
- houseProvider = AppData.Instance.GetHouseProvider();
- markSettingProvider = AppData.Instance.GetMarkSettingProvider();
- Dish = dishValue;
- IsCurrentDish = isc;
- IsUpdateAi = true;
- GetLogoBytes();
- ChildrenMarkCount = 0;
- MarkEntityList = markSettingProvider.GetAllMarkEntityApi(0);
- foreach (var item in MarkEntityList)
- {
- ChildrenMarkCount += item.children.Count;
- }
- }
- private void GetLeafParentNodeList(MarkEntity markEntity, List<MarkEntity> list)
- {
- if (markEntity.child != 1) return;
- if (markEntity.children != null && markEntity.children.Any())
- {
- var a = markEntity.children.FirstOrDefault(x => x.child == 1);
- if (a == null)
- {
- list.Add(markEntity);
- return;
- }
- foreach (var item in markEntity.children)
- {
- GetLeafParentNodeList(item, list);
- }
- return;
- }
- list.Add(markEntity);
- }
- private void GetLogoBytes()
- {
- var CurrentTlSettingCommon = houseProvider.GetSettingCommonApi(Dish.tlSn);
- if (CurrentTlSettingCommon == null) return;
- HosName = CurrentTlSettingCommon.reportHospitalName;
- if (!string.IsNullOrEmpty(CurrentTlSettingCommon.reportHospitalLogoUrl))
- {
- LogoBytes = dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{CurrentTlSettingCommon.reportHospitalLogoUrl}?token={AppData.Instance.HttpServiceCall.GetToken()}");
- }
- return;
- HosName = "成都艾伟孚生物科技有限公司";
- StreamResourceInfo streamInfo = System.Windows.Application.GetResourceStream(new Uri("pack://application:,,,/ivf_tl_Manage;component/Resources/Images/pdfLogo.png", UriKind.Absolute));
- if (streamInfo != null)
- {
- using (Stream imageStream = streamInfo.Stream)
- {
- using (var memoryStream = new MemoryStream())
- {
- imageStream.CopyTo(memoryStream);
- LogoBytes = memoryStream.ToArray();
- }
- }
- }
- }
- public void MarkEmbryo()
- {
- MarkUseViewModel markUseViewModel = new MarkUseViewModel(this, IsCurrentDish);
- AppData.Instance.MainWindowViewModel.CurrentViewModle = markUseViewModel;
- }
- public Document GenerateReport(ReportMarkData reportData)
- {
- float borderLine = 0.25f;
- float picHeight = 2.54f;
- float picPadding = 3f;
- try
- {
- IContainer CellStyle(IContainer container) => container.Border(borderLine).AlignCenter().PaddingVertical(5).AlignCenter();
- var document = Document.Create(container =>
- {
- container
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponent(LogoBytes));
- page.Content().PaddingTop(4.8f, Unit.Centimetre).AlignCenter().Column(col =>
- {
- col.Item().AlignCenter().Text(text =>
- {
- text.Span("时差培养箱智能").FontSize(25);
- text.Span("AI").FontSize(25);
- });
- col.Item().PaddingTop(20).AlignCenter().Text("图像分析报告").FontSize(25);
- });
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponent(LogoBytes));
- page.Content().Section("one").PaddingHorizontal(2.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(text =>
- {
- text.Span("患者姓名:");
- text.Span($"{reportData.wife}/{reportData.husband}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span("出生年龄:");
- text.Span(reportData.wifeBirth);
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span("受精时间:");
- text.Span(reportData.startTime);
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span("受精方式:");
- text.Span(reportData.fertilizationType);
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span("培养时间:");
- text.Span($"{reportData.createTime}至{reportData.endTime}");
- });
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text("胚胎数量");
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text("移植");
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text("冷冻");
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text("作废");
- });
- table.Cell().AlignMiddle
- ().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.embryoCount.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.transplant.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.freezing.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.invalid.ToString());
- });
- int markCount = 0;
- EmbryoMark itemMark = null;
- if (reportData.transplantEmbryos != null && reportData.transplantEmbryos.Any() && reportData.transplantEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- col.Item().PaddingTop(9).Text("移植胚胎图像");
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(17);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null) continue;
- item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- for (int i = 0; i < 6; i++)
- {
- if (i >= markCount)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- continue;
- }
- itemMark = item.embryoMark[i];
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{itemMark.pictureUrl}"));
- }
- }
- });
- }
- if (reportData.freezingEmbryos != null && reportData.freezingEmbryos.Any() && reportData.freezingEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- col.Item().PaddingTop(9).Text("冷冻胚胎图像");
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(17);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null) continue;
- item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- for (int i = 0; i < 6; i++)
- {
- if (i >= markCount)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- continue;
- }
- itemMark = item.embryoMark[i];
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{itemMark.pictureUrl}"));
- }
- }
- });
- }
- });
- page.Footer().AlignCenter().Text("第1页").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4.Landscape());
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(8));
- //.PaddingHorizontal(2, Unit.Centimetre).PaddingVertical(1.5f, Unit.Centimetre)
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponent(LogoBytes));
- var dataList = reportData.transplantEmbryos.Union(reportData.freezingEmbryos);
- float wi = 25f;
- page.Content().PaddingHorizontal(0.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text("标注信息").FontSize(15);
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- //2细胞
- columns.RelativeColumn();
- //columns.ConstantColumn(wi);
- columns.RelativeColumn();
- columns.RelativeColumn();
- //4细胞
- columns.RelativeColumn();
- //columns.ConstantColumn(wi);
- columns.RelativeColumn();
- columns.RelativeColumn();
- //8细胞
- columns.RelativeColumn();
- //columns.ConstantColumn(wi);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.ExtendLastCellsToTableBottom();
- table.Cell().Row(1).Column(1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine("孔位");
- table.Cell().Row(1).Column(2).ColumnSpan(4).Element(CellStyle).Text("原核");
- table.Cell().Row(1).Column(6).ColumnSpan(3).Element(CellStyle).Text("2细胞");
- table.Cell().Row(1).Column(9).ColumnSpan(3).Element(CellStyle).Text("4细胞");
- table.Cell().Row(1).Column(12).ColumnSpan(3).Element(CellStyle).Text("8细胞");
- table.Cell().Row(1).Column(15).ColumnSpan(2).Element(CellStyle).Text("融合期");
- table.Cell().Row(1).Column(17).ColumnSpan(4).Element(CellStyle).Text("囊胚");
- table.Cell().Row(1).Column(21).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine("分数");
- table.Cell().Row(1).Column(22).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine("去向");
- table.Cell().Row(2).Column(2).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(3).Element(CellStyle).TextLine("原核数量");
- table.Cell().Row(2).Column(4).Element(CellStyle).TextLine("核仁数量");
- table.Cell().Row(2).Column(5).Element(CellStyle).TextLine("Z分级");
- table.Cell().Row(2).Column(6).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(7).Element(CellStyle).TextLine("碎片比例");
- table.Cell().Row(2).Column(8).Element(CellStyle).TextLine("均匀度");
- table.Cell().Row(2).Column(9).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(10).Element(CellStyle).TextLine("碎片比例");
- table.Cell().Row(2).Column(11).Element(CellStyle).TextLine("均匀度");
- table.Cell().Row(2).Column(12).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(13).Element(CellStyle).TextLine("碎片比例");
- table.Cell().Row(2).Column(14).Element(CellStyle).TextLine("均匀度");
- table.Cell().Row(2).Column(15).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(16).Element(CellStyle).TextLine("致密化");
- table.Cell().Row(2).Column(17).Element(CellStyle).TextLine("时间");
- table.Cell().Row(2).Column(18).Element(CellStyle).TextLine("扩张期");
- table.Cell().Row(2).Column(19).Element(CellStyle).TextLine("内细胞");
- table.Cell().Row(2).Column(20).Element(CellStyle).TextLine("外滋养层");
- uint row = 3;
- EmbryoMark keyMark = null;
- EmbryoMark valueMark = null;
- string stateString = "冷冻";
- foreach (var itemEmbryoMark in dataList)
- {
- table.Cell().Row(row).Column(1).Element(CellStyle).AlignMiddle().Text($"{itemEmbryoMark.wellSn}");
- table.Cell().Row(row).Column(21).Element(CellStyle).Text(itemEmbryoMark.score == -1 ? null : itemEmbryoMark.score.ToString());
- if (itemEmbryoMark.state == 2) stateString = "移植";
- if (itemEmbryoMark.state == 1) stateString = "冷冻";
- table.Cell().Row(row).Column(22).Element(CellStyle).TextLine(stateString);
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "2PN" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(2).Element(CellStyle);
- table.Cell().Row(row).Column(3).Element(CellStyle);
- table.Cell().Row(row).Column(4).Element(CellStyle);
- table.Cell().Row(row).Column(5).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(2).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2PN/PN-NUM" && x.child == 1);
- table.Cell().Row(row).Column(3).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "nucleolus-NUM" && x.child == 1);
- table.Cell().Row(row).Column(4).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "Z-Level" && x.child == 1);
- table.Cell().Row(row).Column(5).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "2-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(6).Element(CellStyle);
- table.Cell().Row(row).Column(7).Element(CellStyle);
- table.Cell().Row(row).Column(8).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(6).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(7).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(8).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "4-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(9).Element(CellStyle);
- table.Cell().Row(row).Column(10).Element(CellStyle);
- table.Cell().Row(row).Column(11).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(9).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "4-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(10).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "4-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(11).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "8-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(12).Element(CellStyle);
- table.Cell().Row(row).Column(13).Element(CellStyle);
- table.Cell().Row(row).Column(14).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(12).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "8-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(13).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "8-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(14).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "fusion" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(15).Element(CellStyle);
- table.Cell().Row(row).Column(16).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(15).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "Densification" && x.child == 1);
- table.Cell().Row(row).Column(16).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "blastula" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(17).Element(CellStyle);
- table.Cell().Row(row).Column(18).Element(CellStyle);
- table.Cell().Row(row).Column(19).Element(CellStyle);
- table.Cell().Row(row).Column(20).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(17).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/Expansion" && x.child == 1);
- table.Cell().Row(row).Column(18).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/ICM" && x.child == 1);
- table.Cell().Row(row).Column(19).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/TE" && x.child == 1);
- table.Cell().Row(row).Column(20).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- row++;
- }
- });
- });
- page.Footer().AlignCenter().Text("第2页").FontSize(9);
- });
- });
- IsUpdateAi = false;
- return document;
- //document.GenerateImages().ToList();
- //foreach (var item in aa)
- //{
- // testimage.Source = AppData.Instance.ByteToBitmapImage(item);
- // break;
- //}
- //string ss = "";
- //return;
- //return document.GeneratePdf(filePath);
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- ToastMessageShow("AI报告导出成功");
- });
- }
- catch (Exception ex)
- {
- ExLog(ex, "GenerateReport");
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- MessageBoxShow("导出AI报表错误", $"{ex.Message}");
- });
- return null;
- }
- }
- /// <summary>
- /// 无动态显示
- /// </summary>
- /// <param name="reportData"></param>
- /// <returns></returns>
- public Document GenerateReportENold(ReportMarkData reportData)
- {
- float borderLine = 0.25f;
- //float picHeight = 2.54f;
- float picHeight = 2.65f;
- float picPadding = 3f;
- float headerPaddingHorizontal = 1.0f;
- float pagePaddingHorizontal = 1.0f;
- float wellWidth = 25f;
- try
- {
- IContainer CellStyle(IContainer container) => container.Border(borderLine).AlignCenter().PaddingVertical(5).AlignCenter();
- var document = Document.Create(container =>
- {
- container
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentHeader(LogoBytes, HosName));
- page.Content().PaddingTop(4.8f, Unit.Centimetre).AlignCenter().Column(col =>
- {
- col.Item().AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0567")).FontSize(25);
- col.Item().PaddingTop(20).AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0594")).FontSize(25);
- });
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}/{reportData.husband}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0031"));
- text.Span($":{reportData.wife}/{reportData.husband}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0151"));
- text.Span($":{Dish.caseId}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0261"));
- text.Span($":{Dish.cycle}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0032"));
- text.Span($":{reportData.startTime}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0157"));
- text.Span($":{reportData.fertilizationType}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0568"));
- text.Span($":{reportData.createTime} {KeyToStringConvert.GetLanguageStringByKey("0569")} {reportData.endTime}");
- });
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- //columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- //header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0612"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0041"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0040"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0042"));
- });
- //table.Cell().AlignMiddle().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.embryoCount.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.transplant.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.freezing.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.invalid.ToString());
- });
- });
- //page.Footer().AlignCenter().Text("第1页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 1 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}/{reportData.husband}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- int markCount = 0;
- float tableHeaderFontSize = 9f;
- //EmbryoMark itemMark = null;
- EmbryoMark markKeyPic = null;
- if (reportData.transplantEmbryos != null && reportData.transplantEmbryos.Any() && reportData.transplantEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- //col.Item().PaddingTop(9).Text("移植胚胎图像 (前2名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0610"));
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0586")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0587")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0588")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0589")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0590")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0591")).FontSize(tableHeaderFontSize);
- });
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null) continue;
- //item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2PN");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "4-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "8-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "fusion");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "blastula");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- //for (int i = 0; i < 6; i++)
- //{
- // if (i >= markCount)
- // {
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- // continue;
- // }
- // itemMark = item.embryoMark[i];
- // Debug.WriteLine(itemMark.markKey);
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{itemMark.pictureUrl}"));
- //}
- }
- });
- }
- if (reportData.freezingEmbryos != null && reportData.freezingEmbryos.Any() && reportData.freezingEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- //col.Item().PaddingTop(9).Text("冷冻胚胎图像 (前5名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0611"));
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0586")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0587")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0588")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0589")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0590")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0591")).FontSize(tableHeaderFontSize);
- });
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null) continue;
- item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2PN");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "4-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "8-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "fusion");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "blastula");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- //for (int i = 0; i < 6; i++)
- //{
- // if (i >= markCount)
- // {
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- // continue;
- // }
- // itemMark = item.embryoMark[i];
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{itemMark.pictureUrl}"));
- //}
- }
- });
- }
- });
- //page.Footer().AlignCenter().Text("第2页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 2 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4.Landscape());
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(8));
- //.PaddingHorizontal(2, Unit.Centimetre).PaddingVertical(1.5f, Unit.Centimetre)
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}/{reportData.husband}", Dish.caseId, HosName));
- var dataList = reportData.transplantEmbryos.Union(reportData.freezingEmbryos);
- float wi = 25f;
- page.Content().PaddingHorizontal(0.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(KeyToStringConvert.GetLanguageStringByKey("0570")).FontSize(15);
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- //2细胞
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- //4细胞
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- //8细胞
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.ExtendLastCellsToTableBottom();
- table.Cell().Row(1).Column(1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0527"));
- table.Cell().Row(1).Column(2).ColumnSpan(4).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0586"));
- table.Cell().Row(1).Column(6).ColumnSpan(3).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0587"));
- table.Cell().Row(1).Column(9).ColumnSpan(3).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0588"));
- table.Cell().Row(1).Column(12).ColumnSpan(3).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0589"));
- table.Cell().Row(1).Column(15).ColumnSpan(2).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0590"));
- table.Cell().Row(1).Column(17).ColumnSpan(4).Element(CellStyle).Text(KeyToStringConvert.GetLanguageStringByKey("0591"));
- table.Cell().Row(1).Column(21).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0596"));
- table.Cell().Row(1).Column(22).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0597"));
- table.Cell().Row(2).Column(2).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(3).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0599"));
- table.Cell().Row(2).Column(4).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0600"));
- table.Cell().Row(2).Column(5).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0601"));
- table.Cell().Row(2).Column(6).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(7).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0602"));
- table.Cell().Row(2).Column(8).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0603"));
- table.Cell().Row(2).Column(9).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(10).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0602"));
- table.Cell().Row(2).Column(11).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0603"));
- table.Cell().Row(2).Column(12).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(13).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(14).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0603"));
- table.Cell().Row(2).Column(15).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(16).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0604"));
- table.Cell().Row(2).Column(17).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- table.Cell().Row(2).Column(18).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0605"));
- table.Cell().Row(2).Column(19).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0606"));
- table.Cell().Row(2).Column(20).Element(CellStyle).TextLine(KeyToStringConvert.GetLanguageStringByKey("0607"));
- uint row = 3;
- EmbryoMark keyMark = null;
- EmbryoMark valueMark = null;
- string stateString = "冷冻";
- foreach (var itemEmbryoMark in dataList)
- {
- table.Cell().Row(row).Column(1).Element(CellStyle).AlignMiddle().Text($"{itemEmbryoMark.wellSn}");
- table.Cell().Row(row).Column(21).Element(CellStyle).Text(itemEmbryoMark.score == -1 ? null : itemEmbryoMark.score.ToString());
- if (itemEmbryoMark.state == 2) stateString = KeyToStringConvert.GetLanguageStringByKey("0041");
- if (itemEmbryoMark.state == 1) stateString = KeyToStringConvert.GetLanguageStringByKey("0040");
- table.Cell().Row(row).Column(22).Element(CellStyle).TextLine(stateString);
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "2PN" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(2).Element(CellStyle);
- table.Cell().Row(row).Column(3).Element(CellStyle);
- table.Cell().Row(row).Column(4).Element(CellStyle);
- table.Cell().Row(row).Column(5).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(2).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2PN/PN-NUM" && x.child == 1);
- table.Cell().Row(row).Column(3).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "nucleolus-NUM" && x.child == 1);
- table.Cell().Row(row).Column(4).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "Z-Level" && x.child == 1);
- table.Cell().Row(row).Column(5).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "2-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(6).Element(CellStyle);
- table.Cell().Row(row).Column(7).Element(CellStyle);
- table.Cell().Row(row).Column(8).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(6).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(7).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "2-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(8).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "4-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(9).Element(CellStyle);
- table.Cell().Row(row).Column(10).Element(CellStyle);
- table.Cell().Row(row).Column(11).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(9).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "4-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(10).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "4-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(11).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "8-cell" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(12).Element(CellStyle);
- table.Cell().Row(row).Column(13).Element(CellStyle);
- table.Cell().Row(row).Column(14).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(12).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "8-cell/key_fragment" && x.child == 1);
- table.Cell().Row(row).Column(13).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "8-cell/key_uniform" && x.child == 1);
- table.Cell().Row(row).Column(14).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "fusion" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(15).Element(CellStyle);
- table.Cell().Row(row).Column(16).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(15).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "Densification" && x.child == 1);
- table.Cell().Row(row).Column(16).Element(CellStyle).Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == "blastula" && x.child == 1);
- if (keyMark == null)
- {
- table.Cell().Row(row).Column(17).Element(CellStyle);
- table.Cell().Row(row).Column(18).Element(CellStyle);
- table.Cell().Row(row).Column(19).Element(CellStyle);
- table.Cell().Row(row).Column(20).Element(CellStyle);
- }
- else
- {
- table.Cell().Row(row).Column(17).Element(CellStyle).TextTime(keyMark.developTime);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/Expansion" && x.child == 1);
- table.Cell().Row(row).Column(18).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/ICM" && x.child == 1);
- table.Cell().Row(row).Column(19).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == "blastula/TE" && x.child == 1);
- table.Cell().Row(row).Column(20).Element(CellStyle).TextLine(valueMark != null ? valueMark.children[0].markName : null);
- }
- row++;
- }
- });
- });
- //page.Footer().AlignCenter().Text("第3页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 3 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- });
- });
- IsUpdateAi = false;
- return document;
- }
- catch (Exception ex)
- {
- ExLog(ex, "GenerateReport");
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- //MessageBoxShow("导出AI报表错误", $"{ex.Message}");
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0613"), $"{ex.Message}");
- });
- return null;
- }
- }
- /// <summary>
- /// 标记动态显示
- /// </summary>
- /// <param name="reportData"></param>
- /// <returns></returns>
- public Document GenerateReportENold1(ReportMarkData reportData)
- {
- float borderLine = 0.25f;
- //float picHeight = 2.54f;
- float picHeight = 2.65f;
- float picPadding = 3f;
- float headerPaddingHorizontal = 1.0f;
- float pagePaddingHorizontal = 1.0f;
- float wellWidth = 25f;
- try
- {
- IContainer CellStyle(IContainer container) => container.Border(borderLine).AlignCenter().PaddingVertical(5).AlignCenter();
- var document = Document.Create(container =>
- {
- container
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentHeader(LogoBytes, HosName));
- page.Content().PaddingTop(4.8f, Unit.Centimetre).AlignCenter().Column(col =>
- {
- col.Item().AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0567")).FontSize(25);
- col.Item().PaddingTop(20).AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0594")).FontSize(25);
- });
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0031"));
- text.Span($":{reportData.wife}/{reportData.husband}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0151"));
- text.Span($":{Dish.caseId}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0261"));
- text.Span($":{Dish.cycle}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0032"));
- text.Span($":{reportData.startTime}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0157"));
- text.Span($":{reportData.fertilizationType}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0568"));
- text.Span($":{reportData.createTime} {KeyToStringConvert.GetLanguageStringByKey("0569")} {reportData.endTime}");
- });
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- //columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- //header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0612"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0041"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0040"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0042"));
- });
- //table.Cell().AlignMiddle().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.embryoCount.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.transplant.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.freezing.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.invalid.ToString());
- });
- });
- //page.Footer().AlignCenter().Text("第1页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 1 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- int markCount = 0;
- float tableHeaderFontSize = 9f;
- //EmbryoMark itemMark = null;
- EmbryoMark markKeyPic = null;
- if (reportData.transplantEmbryos != null && reportData.transplantEmbryos.Any() && reportData.transplantEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- //col.Item().PaddingTop(9).Text("移植胚胎图像 (前2名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0610"));
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0586")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0587")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0588")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0589")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0590")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0591")).FontSize(tableHeaderFontSize);
- });
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null) continue;
- //item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2PN");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "4-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "8-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "fusion");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "blastula");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- }
- });
- }
- if (reportData.freezingEmbryos != null && reportData.freezingEmbryos.Any() && reportData.freezingEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- //col.Item().PaddingTop(9).Text("冷冻胚胎图像 (前5名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0611"));
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0586")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0587")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0588")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0589")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0590")).FontSize(tableHeaderFontSize);
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0591")).FontSize(tableHeaderFontSize);
- });
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null) continue;
- item.embryoMark = item.embryoMark.OrderBy(x => x.developTime).ToList();
- markCount = item.embryoMark.Count;
- if (markCount == 0) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2PN");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "2-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "4-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "8-cell");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "fusion");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == "blastula");
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- //for (int i = 0; i < 6; i++)
- //{
- // if (i >= markCount)
- // {
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- // continue;
- // }
- // itemMark = item.embryoMark[i];
- // table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{itemMark.pictureUrl}"));
- //}
- }
- });
- }
- });
- //page.Footer().AlignCenter().Text("第2页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 2 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4.Landscape());
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(8));
- //.PaddingHorizontal(2, Unit.Centimetre).PaddingVertical(1.5f, Unit.Centimetre)
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- var dataList = reportData.transplantEmbryos.Union(reportData.freezingEmbryos);
- float wi = 25f;
- int columnCount = 0;
- page.Content().PaddingHorizontal(0.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(KeyToStringConvert.GetLanguageStringByKey("0570")).FontSize(15);
- col.Item().PaddingTop(9).Table(table =>
- {
- //columns.ConstantColumn(wi);
- table.ColumnsDefinition(columns =>
- {
- columnCount = 3 + ChildrenMarkCount + MarkEntityList.Count;
- for (int i = 0; i < columnCount; i++)
- {
- columns.RelativeColumn();
- }
- });
- table.ExtendLastCellsToTableBottom();
- table.Cell().Row(1).Column(1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0527"));
- uint headerNum1 = 2;
- uint headerNum2 = 2;
- foreach (var item in MarkEntityList)
- {
- table.Cell().Row(1).Column(headerNum1).ColumnSpan((uint)(item.children.Count + 1)).Element(CellStyle).AlignMiddle().TextLine(item.name);
- headerNum1 += (uint)(item.children.Count + 1);
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- foreach (var childrenItem in item.children)
- {
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(childrenItem.name);
- }
- }
- table.Cell().Row(1).Column(headerNum1++).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0596"));
- table.Cell().Row(1).Column(headerNum1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0597"));
- uint row = 3;
- EmbryoMark keyMark = null;
- EmbryoMark valueMark = null;
- string stateString = "冷冻";
- foreach (var itemEmbryoMark in dataList)
- {
- table.Cell().Row(row).Column(1).Element(CellStyle).AlignMiddle().Text($"{itemEmbryoMark.wellSn}");
- table.Cell().Row(row).Column(headerNum1 - 1).Element(CellStyle).AlignMiddle().Text(itemEmbryoMark.score == -1 ? null : itemEmbryoMark.score.ToString());
- if (itemEmbryoMark.state == 2) stateString = KeyToStringConvert.GetLanguageStringByKey("0041");
- if (itemEmbryoMark.state == 1) stateString = KeyToStringConvert.GetLanguageStringByKey("0040");
- table.Cell().Row(row).Column(headerNum1).Element(CellStyle).AlignMiddle().TextLine(stateString);
- headerNum2 = 2;
- foreach (var headerMark in MarkEntityList)
- {
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey && x.child == 1);
- if (keyMark == null)
- {
- columnCount = headerMark.children.Count + 1;
- for (int i = 0; i < columnCount; i++)
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle);
- }
- }
- else
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextTime(keyMark.developTime);
- foreach (var childrenMarl in headerMark.children)
- {
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == childrenMarl.markKey && x.child == 1);
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- }
- }
- row++;
- }
- });
- });
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 3 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- });
- });
- IsUpdateAi = false;
- return document;
- }
- catch (Exception ex)
- {
- ExLog(ex, "GenerateReport");
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- //MessageBoxShow("导出AI报表错误", $"{ex.Message}");
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0613"), $"{ex.Message}");
- });
- return null;
- }
- }
- /// <summary>
- /// 图像和标记都动态显示
- /// </summary>
- /// <param name="reportData"></param>
- /// <returns></returns>
- public Document GenerateReportENOld2(ReportMarkData reportData)
- {
- float borderLine = 0.25f;
- //float picHeight = 2.54f;
- float picHeight = 2.65f;
- float picPadding = 3f;
- float headerPaddingHorizontal = 1.0f;
- float pagePaddingHorizontal = 1.0f;
- float wellWidth = 25f;
- try
- {
- IContainer CellStyle(IContainer container) => container.Border(borderLine).AlignCenter().PaddingVertical(5).AlignCenter();
- var document = Document.Create(container =>
- {
- container
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentHeader(LogoBytes, HosName));
- page.Content().PaddingTop(4.8f, Unit.Centimetre).AlignCenter().Column(col =>
- {
- col.Item().AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0567")).FontSize(25);
- col.Item().PaddingTop(20).AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0594")).FontSize(25);
- });
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0031"));
- text.Span($":{reportData.wife}/{reportData.husband}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0151"));
- text.Span($":{Dish.caseId}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0261"));
- text.Span($":{Dish.cycle}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0032"));
- text.Span($":{reportData.startTime}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0157"));
- text.Span($":{reportData.fertilizationType}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0568"));
- text.Span($":{reportData.createTime} {KeyToStringConvert.GetLanguageStringByKey("0569")} {reportData.endTime}");
- });
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- //columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- //header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0612"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0041"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0040"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0042"));
- });
- //table.Cell().AlignMiddle().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.embryoCount.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.transplant.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.freezing.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.invalid.ToString());
- });
- });
- //page.Footer().AlignCenter().Text("第1页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 1 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().MinHeight(500f).PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- bool haveContent = false;
- int markCount = 0;
- float tableHeaderFontSize = 9f;
- List<EmbryoMark> headerMarkList = new List<EmbryoMark>();
- //EmbryoMark itemMark = null;
- EmbryoMark markKeyPic = null;
- MarkEntity orderMark = null;
- if (reportData.transplantEmbryos != null && reportData.transplantEmbryos.Any() && reportData.transplantEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- haveContent = true;
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null) continue;
- foreach (var markItem in item.embryoMark)
- {
- if (headerMarkList.FirstOrDefault(x => x.markKey == markItem.markKey) == null)
- {
- orderMark = MarkEntityList.FirstOrDefault(x => x.markKey == markItem.markKey);
- headerMarkList.Add(new EmbryoMark { markName = markItem.markName, markKey = markItem.markKey, orderNum = orderMark != null ? orderMark.orderNum : 0 });
- }
- }
- }
- //col.Item().PaddingTop(9).Text("移植胚胎图像 (前2名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0610"));
- headerMarkList = headerMarkList.OrderBy(x => x.orderNum).ToList();
- markCount = headerMarkList.Count;
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- for (int i = 0; i < markCount; i++)
- {
- columns.RelativeColumn();
- }
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- foreach (var item in headerMarkList)
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(item.markName).FontSize(tableHeaderFontSize);
- }
- });
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null || !item.embryoMark.Any()) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- foreach (var headerMark in headerMarkList)
- {
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey);
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- }
- }
- });
- }
- if (reportData.freezingEmbryos != null && reportData.freezingEmbryos.Any() && reportData.freezingEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- haveContent = true;
- headerMarkList.Clear();
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null) continue;
- foreach (var markItem in item.embryoMark)
- {
- if (headerMarkList.FirstOrDefault(x => x.markKey == markItem.markKey) == null)
- {
- orderMark = MarkEntityList.FirstOrDefault(x => x.markKey == markItem.markKey);
- headerMarkList.Add(new EmbryoMark { markName = markItem.markName, markKey = markItem.markKey, orderNum = orderMark != null ? orderMark.orderNum : 0 });
- }
- }
- }
- //col.Item().PaddingTop(9).Text("冷冻胚胎图像 (前5名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0611"));
- headerMarkList = headerMarkList.OrderBy(x => x.orderNum).ToList();
- markCount = headerMarkList.Count;
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- for (int i = 0; i < markCount; i++)
- {
- columns.RelativeColumn();
- }
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- foreach (var item in headerMarkList)
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(item.markName).FontSize(tableHeaderFontSize);
- }
- });
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null || !item.embryoMark.Any()) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- foreach (var headerMark in headerMarkList)
- {
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey);
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- }
- }
- });
- }
- if (!haveContent) col.Item().Text("");
- });
- //page.Footer().AlignCenter().Text("第2页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 2 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4.Landscape());
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(8));
- //.PaddingHorizontal(2, Unit.Centimetre).PaddingVertical(1.5f, Unit.Centimetre)
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- var dataList = reportData.transplantEmbryos.Union(reportData.freezingEmbryos);
- float wi = 25f;
- int columnCount = 0;
- page.Content().PaddingHorizontal(0.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(KeyToStringConvert.GetLanguageStringByKey("0570")).FontSize(15);
- col.Item().PaddingTop(9).Table(table =>
- {
- //columns.ConstantColumn(wi);
- table.ColumnsDefinition(columns =>
- {
- columnCount = 3 + ChildrenMarkCount + MarkEntityList.Count;
- for (int i = 0; i < columnCount; i++)
- {
- columns.RelativeColumn();
- }
- });
- table.ExtendLastCellsToTableBottom();
- table.Cell().Row(1).Column(1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0527"));
- uint headerNum1 = 2;
- uint headerNum2 = 2;
- foreach (var item in MarkEntityList)
- {
- table.Cell().Row(1).Column(headerNum1).ColumnSpan((uint)(item.children.Count + 1)).Element(CellStyle).AlignMiddle().TextLine(item.name);
- headerNum1 += (uint)(item.children.Count + 1);
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- foreach (var childrenItem in item.children)
- {
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(childrenItem.name);
- }
- }
- table.Cell().Row(1).Column(headerNum1++).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0596"));
- table.Cell().Row(1).Column(headerNum1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0597"));
- uint row = 3;
- EmbryoMark keyMark = null;
- EmbryoMark valueMark = null;
- string stateString = "冷冻";
- foreach (var itemEmbryoMark in dataList)
- {
- table.Cell().Row(row).Column(1).Element(CellStyle).AlignMiddle().Text($"{itemEmbryoMark.wellSn}");
- table.Cell().Row(row).Column(headerNum1 - 1).Element(CellStyle).AlignMiddle().Text(itemEmbryoMark.score == -1 ? null : itemEmbryoMark.score.ToString());
- if (itemEmbryoMark.state == 2) stateString = KeyToStringConvert.GetLanguageStringByKey("0041");
- if (itemEmbryoMark.state == 1) stateString = KeyToStringConvert.GetLanguageStringByKey("0040");
- table.Cell().Row(row).Column(headerNum1).Element(CellStyle).AlignMiddle().TextLine(stateString);
- headerNum2 = 2;
- foreach (var headerMark in MarkEntityList)
- {
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey && x.child == 1);
- if (keyMark == null)
- {
- columnCount = headerMark.children.Count + 1;
- for (int i = 0; i < columnCount; i++)
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle);
- }
- }
- else
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextTime(keyMark.developTime);
- foreach (var childrenMarl in headerMark.children)
- {
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == childrenMarl.markKey && x.child == 1);
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- }
- }
- row++;
- }
- });
- });
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 3 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- });
- });
- IsUpdateAi = false;
- return document;
- }
- catch (Exception ex)
- {
- ExLog(ex, "GenerateReport");
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- //MessageBoxShow("导出AI报表错误", $"{ex.Message}");
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0613"), $"{ex.Message}");
- });
- return null;
- }
- }
- /// <summary>
- /// 调整页边距,图片页面最多8个
- /// </summary>
- /// <param name="reportData"></param>
- /// <returns></returns>
- public Document GenerateReportEN(ReportMarkData reportData)
- {
- float borderLine = 0.25f;
- //float picHeight = 2.54f;
- //float picHeight = 2.65f; 7张图片
- float picHeight = 2.25f;
- float picPadding = 3f;
- //float headerPaddingHorizontal = 1.0f;
- //float pagePaddingHorizontal = 1.0f;
- float headerPaddingHorizontal = 0.4f;
- float pagePaddingHorizontal = 0.4f;
- float wellWidth = 25f;
- float picWidth = 2.4f;
- int picNum = 8;
- try
- {
- IContainer CellStyle(IContainer container) => container.Border(borderLine).AlignCenter().PaddingVertical(5).AlignCenter();
- var document = Document.Create(container =>
- {
- container
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentHeader(LogoBytes, HosName));
- page.Content().PaddingTop(4.8f, Unit.Centimetre).AlignCenter().Column(col =>
- {
- col.Item().AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0567")).FontSize(25);
- col.Item().PaddingTop(20).AlignCenter().Text(KeyToStringConvert.GetLanguageStringByKey("0594")).FontSize(25);
- });
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0031"));
- text.Span($":{reportData.wife}/{reportData.husband}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0151"));
- text.Span($":{Dish.caseId}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0261"));
- text.Span($":{Dish.cycle}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0032"));
- text.Span($":{reportData.startTime}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0157"));
- text.Span($":{reportData.fertilizationType}");
- });
- col.Item().PaddingTop(13).Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0568"));
- text.Span($":{reportData.createTime} {KeyToStringConvert.GetLanguageStringByKey("0569")} {reportData.endTime}");
- });
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- //columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- columns.RelativeColumn();
- });
- table.Header(header =>
- {
- //header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0612"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0041"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0040"));
- header.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0042"));
- });
- //table.Cell().AlignMiddle().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.embryoCount.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.transplant.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.freezing.ToString());
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(5).Text(reportData.invalid.ToString());
- });
- });
- //page.Footer().AlignCenter().Text("第1页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 1 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4);
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(15));
- page.Header().PaddingHorizontal(headerPaddingHorizontal, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- page.Content().MinHeight(500f).PaddingHorizontal(pagePaddingHorizontal, Unit.Centimetre).AlignLeft().Column(col =>
- {
- bool haveContent = false;
- int markCount = 0;
- float tableHeaderFontSize = 9f;
- List<EmbryoMark> headerMarkList = new List<EmbryoMark>();
- //EmbryoMark itemMark = null;
- EmbryoMark markKeyPic = null;
- MarkEntity orderMark = null;
- if (reportData.transplantEmbryos != null && reportData.transplantEmbryos.Any() && reportData.transplantEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- haveContent = true;
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null) continue;
- foreach (var markItem in item.embryoMark)
- {
- if (headerMarkList.FirstOrDefault(x => x.markKey == markItem.markKey) == null)
- {
- orderMark = MarkEntityList.FirstOrDefault(x => x.markKey == markItem.markKey);
- headerMarkList.Add(new EmbryoMark { markName = markItem.markName, markKey = markItem.markKey, orderNum = orderMark != null ? orderMark.orderNum : 0 });
- }
- }
- }
- //col.Item().PaddingTop(9).Text("移植胚胎图像 (前2名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0610"));
- headerMarkList = headerMarkList.OrderBy(x => x.orderNum).Take(picNum).ToList();
- markCount = headerMarkList.Count;
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- for (int i = 0; i < markCount; i++)
- {
- //columns.RelativeColumn();
- columns.ConstantColumn(picWidth, Unit.Centimetre);
- }
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- foreach (var item in headerMarkList)
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(item.markName).FontSize(tableHeaderFontSize);
- }
- });
- foreach (var item in reportData.transplantEmbryos)
- {
- if (item.embryoMark == null || !item.embryoMark.Any()) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- foreach (var headerMark in headerMarkList)
- {
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey);
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- }
- }
- });
- }
- if (reportData.freezingEmbryos != null && reportData.freezingEmbryos.Any() && reportData.freezingEmbryos.FirstOrDefault(x => x.embryoMark != null && x.embryoMark.Any()) != null)
- {
- haveContent = true;
- headerMarkList.Clear();
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null) continue;
- foreach (var markItem in item.embryoMark)
- {
- if (headerMarkList.FirstOrDefault(x => x.markKey == markItem.markKey) == null)
- {
- orderMark = MarkEntityList.FirstOrDefault(x => x.markKey == markItem.markKey);
- headerMarkList.Add(new EmbryoMark { markName = markItem.markName, markKey = markItem.markKey, orderNum = orderMark != null ? orderMark.orderNum : 0 });
- }
- }
- }
- //col.Item().PaddingTop(9).Text("冷冻胚胎图像 (前5名)");
- col.Item().PaddingTop(9).Text(KeyToStringConvert.GetLanguageStringByKey("0611"));
- headerMarkList = headerMarkList.OrderBy(x => x.orderNum).Take(picNum).ToList();
- markCount = headerMarkList.Count;
- col.Item().PaddingTop(9).Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(wellWidth);
- for (int i = 0; i < markCount; i++)
- {
- //columns.RelativeColumn();
- columns.ConstantColumn(picWidth, Unit.Centimetre);
- }
- });
- table.Header(header =>
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(KeyToStringConvert.GetLanguageStringByKey("0527")).FontSize(tableHeaderFontSize);
- foreach (var item in headerMarkList)
- {
- header.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(5).Text(item.markName).FontSize(tableHeaderFontSize);
- }
- });
- foreach (var item in reportData.freezingEmbryos)
- {
- if (item.embryoMark == null || !item.embryoMark.Any()) continue;
- table.Cell().Border(borderLine).AlignCenter().AlignMiddle().PaddingVertical(3).Text($"{item.wellSn}");
- foreach (var headerMark in headerMarkList)
- {
- markKeyPic = item.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey);
- if (markKeyPic == null)
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre);
- }
- else
- {
- table.Cell().Border(borderLine).AlignCenter().PaddingVertical(picPadding).Height(picHeight, Unit.Centimetre).LoadImage(dishProvider.GetImageByte($"{AppData.Instance.BaseUrl}{markKeyPic.pictureUrl}"));
- }
- }
- }
- });
- }
- if (!haveContent) col.Item().Text("");
- });
- //page.Footer().AlignCenter().Text("第2页").FontSize(9);
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 2 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- })
- .Page(page =>
- {
- page.Size(PageSizes.A4.Landscape());
- //page.MarginHorizontal(2, Unit.Centimetre);
- page.MarginVertical(1.5f, Unit.Centimetre);
- page.DefaultTextStyle(x => x.FontFamily("SimSun").FontSize(8));
- //.PaddingHorizontal(2, Unit.Centimetre).PaddingVertical(1.5f, Unit.Centimetre)
- page.Header().PaddingHorizontal(0.4f, Unit.Centimetre).Component(new HeaderComponentNew(LogoBytes, $"{reportData.wife}", Dish.caseId, HosName));
- var dataList = reportData.transplantEmbryos.Union(reportData.freezingEmbryos);
- float wi = 25f;
- int columnCount = 0;
- page.Content().PaddingHorizontal(0.4f, Unit.Centimetre).AlignLeft().Column(col =>
- {
- col.Item().PaddingTop(10).Text(KeyToStringConvert.GetLanguageStringByKey("0570")).FontSize(15);
- col.Item().PaddingTop(9).Table(table =>
- {
- //columns.ConstantColumn(wi);
- table.ColumnsDefinition(columns =>
- {
- columnCount = 3 + ChildrenMarkCount + MarkEntityList.Count;
- for (int i = 0; i < columnCount; i++)
- {
- columns.RelativeColumn();
- }
- });
- table.ExtendLastCellsToTableBottom();
- table.Cell().Row(1).Column(1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0527"));
- uint headerNum1 = 2;
- uint headerNum2 = 2;
- foreach (var item in MarkEntityList)
- {
- table.Cell().Row(1).Column(headerNum1).ColumnSpan((uint)(item.children.Count + 1)).Element(CellStyle).AlignMiddle().TextLine(item.name);
- headerNum1 += (uint)(item.children.Count + 1);
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0598"));
- foreach (var childrenItem in item.children)
- {
- table.Cell().Row(2).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextLine(childrenItem.name);
- }
- }
- table.Cell().Row(1).Column(headerNum1++).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0596"));
- table.Cell().Row(1).Column(headerNum1).RowSpan(2).Element(CellStyle).AlignMiddle().TextLine(KeyToStringConvert.GetLanguageStringByKey("0597"));
- uint row = 3;
- EmbryoMark keyMark = null;
- EmbryoMark valueMark = null;
- string stateString = "冷冻";
- foreach (var itemEmbryoMark in dataList)
- {
- table.Cell().Row(row).Column(1).Element(CellStyle).AlignMiddle().Text($"{itemEmbryoMark.wellSn}");
- table.Cell().Row(row).Column(headerNum1 - 1).Element(CellStyle).AlignMiddle().Text(itemEmbryoMark.score == -1 ? null : itemEmbryoMark.score.ToString());
- if (itemEmbryoMark.state == 2) stateString = KeyToStringConvert.GetLanguageStringByKey("0041");
- if (itemEmbryoMark.state == 1) stateString = KeyToStringConvert.GetLanguageStringByKey("0040");
- table.Cell().Row(row).Column(headerNum1).Element(CellStyle).AlignMiddle().TextLine(stateString);
- headerNum2 = 2;
- foreach (var headerMark in MarkEntityList)
- {
- keyMark = itemEmbryoMark.embryoMark.FirstOrDefault(x => x.markKey == headerMark.markKey && x.child == 1);
- if (keyMark == null)
- {
- columnCount = headerMark.children.Count + 1;
- for (int i = 0; i < columnCount; i++)
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle);
- }
- }
- else
- {
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().TextTime(keyMark.developTime);
- foreach (var childrenMarl in headerMark.children)
- {
- valueMark = keyMark.children.FirstOrDefault(x => x.markKey == childrenMarl.markKey && x.child == 1);
- table.Cell().Row(row).Column(headerNum2++).Element(CellStyle).AlignMiddle().Text(valueMark != null ? valueMark.children[0].markName : null);
- }
- }
- }
- row++;
- }
- });
- });
- page.Footer().AlignCenter().Text($"{KeyToStringConvert.GetLanguageStringByKey("0538")} 3 {KeyToStringConvert.GetLanguageStringByKey("0053")}").FontSize(9);
- });
- });
- IsUpdateAi = false;
- return document;
- }
- catch (Exception ex)
- {
- ExLog(ex, "GenerateReport");
- AppData.Instance.MainWindow.Dispatcher.Invoke(() =>
- {
- //MessageBoxShow("导出AI报表错误", $"{ex.Message}");
- MessageBoxShow(KeyToStringConvert.GetLanguageStringByKey("0613"), $"{ex.Message}");
- });
- return null;
- }
- }
- }
- public class HeaderComponent : IComponent
- {
- byte[] imageByte = null;
- public HeaderComponent(byte[] by)
- {
- imageByte = by;
- }
- public void Compose(IContainer container)
- {
- //page.MarginHorizontal(2, Unit.Centimetre);
- //page.MarginVertical(1.5f, Unit.Centimetre);
- container.Column(col =>
- {
- if (imageByte != null)
- {
- col.Item().PaddingBottom(1.5f).AlignRight().Height(0.68f, Unit.Centimetre).Image(imageByte);
- }
- col.Item().LineHorizontal(0.5f).LineColor(QuestPDF.Helpers.Colors.Black);//.PaddingLeft(0.7f, Unit.Centimetre)
- col.Item().PaddingTop(1.5f).AlignRight().Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0566")).FontSize(14);
- text.Span($":{DateTime.Now.ToString("yyyy-MM-dd")}").FontSize(14);
- });
- });
- }
- }
- public class HeaderComponentHeader : IComponent
- {
- byte[] imageByte = null;
- string hosName;
- public HeaderComponentHeader(byte[] by, string hosName1)
- {
- imageByte = by;
- this.hosName = hosName1;
- }
- public void Compose(IContainer container)
- {
- container.Column(col =>
- {
- if (imageByte != null)
- {
- //col.Item().PaddingBottom(1.5f).AlignRight().Height(0.68f, Unit.Centimetre).Image(imageByte);
- col.Item().Row(row =>
- {
- row.RelativeItem().AlignCenter().Text(hosName).FontSize(14);
- row.AutoItem().PaddingBottom(1.5f).AlignRight().Height(0.68f, Unit.Centimetre).Image(imageByte);
- });
- }
- else
- {
- col.Item().AlignCenter().Text(hosName).FontSize(14);
- }
- col.Item().LineHorizontal(0.5f).LineColor(QuestPDF.Helpers.Colors.Black);//.PaddingLeft(0.7f, Unit.Centimetre)
- col.Item().PaddingTop(1.5f).AlignRight().Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0566")).FontSize(14);
- text.Span($":{DateTime.Now.ToString("yyyy-MM-dd")}").FontSize(14);
- });
- });
- }
- }
- public class HeaderComponentNew : IComponent
- {
- string name;
- string cycle;
- byte[] imageByte = null;
- float NameFontsize = 11f;
- string hosName;
- public HeaderComponentNew(byte[] by, string name1, string cycle1, string hosName1)
- {
- imageByte = by;
- name = name1;
- cycle = cycle1;
- hosName = hosName1;
- }
- public void Compose(IContainer container)
- {
- container.Column(col =>
- {
- if (imageByte != null)
- {
- //col.Item().PaddingBottom(1.5f).AlignRight().Height(0.68f, Unit.Centimetre).Image(imageByte);
- col.Item().Row(row =>
- {
- row.RelativeItem().AlignCenter().Text(hosName).FontSize(14);
- row.AutoItem().PaddingBottom(1.5f).AlignRight().Height(0.68f, Unit.Centimetre).Image(imageByte);
- });
- }
- else
- {
- col.Item().AlignCenter().Text(hosName).FontSize(14);
- }
- col.Item().LineHorizontal(0.5f).LineColor(QuestPDF.Helpers.Colors.Black);//.PaddingLeft(0.7f, Unit.Centimetre)
- col.Item().Row(row =>
- {
- row.AutoItem().AlignLeft().Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0031")).FontSize(NameFontsize);
- text.Span($":{name}").FontSize(NameFontsize);
- });
- row.RelativeItem().AlignCenter().Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0151")).FontSize(NameFontsize);
- text.Span($":{cycle}").FontSize(NameFontsize);
- });
- });
- col.Item().PaddingTop(1.5f).AlignRight().Text(text =>
- {
- text.Span(KeyToStringConvert.GetLanguageStringByKey("0566")).FontSize(14);
- text.Span($":{DateTime.Now.ToString("yyyy-MM-dd")}").FontSize(14);
- });
- });
- }
- }
- public static class sdf
- {
- public static void LoadImage(this IContainer container, byte[] by)
- {
- if (by != null)
- {
- container.Image(by);
- by = null;
- }
- }
- public static void TextLine(this IContainer container, string Text)
- {
- if (string.IsNullOrEmpty(Text))
- {
- return;
- }
- container.Text(Text);
- return;
- container.Column(col =>
- {
- for (int i = 0; i < Text.Count(); i++)
- {
- if (i == 0)
- {
- col.Item().AlignCenter().Text($"{Text[i]}");
- }
- else
- {
- col.Item().AlignCenter().PaddingTop(5).Text($"{Text[i]}");
- }
- }
- });
- }
- public static void TextTime(this IContainer container, int developTime)
- {
- container.Text($"{(developTime / 60).ToString("D2")}h{(developTime % 60).ToString("D2")}m");
- return;
- container.Column(col =>
- {
- col.Item().AlignCenter().Text($"{(developTime / 60).ToString("D2")}h");
- col.Item().AlignCenter().PaddingTop(5).Text($"{(developTime % 60).ToString("D2")}m");
- });
- }
- }
- }
|