private frmPregledOverview(PregledDtoEL pregled)
        {
            var _pregled = pregled;

            InitializeComponent();
            txtDoktor.Text     = _pregled.Doktor;
            txtDatumVreme.Text = _pregled.DatumPregleda.ToString("g");
            txtPacijent.Text   = _pregled.Pacijent?.ZdravstvenaKnjizica?.LicniPodaci?.ImePrezime ?? "N/A";
        }
        private frmNewLekarskoUverenje(PregledDtoEL pregled)
        {
            Pregled          = pregled;
            LekarskoUverenje = null;

            _apiService = new APIService(Routes.ZdravstvenaStanjaRoute);
            InitializeComponent();
            txtPacijent.Text = Pregled.Pacijent.ZdravstvenaKnjizica.LicniPodaci.ImePrezime;
            txtDoktor.Text   = Pregled.Doktor;
            txtOpisStanja.ResetText();
            toolTip.SetToolTip(btnPdf, "Generisanje PDF dokumenta na osnovu podataka iz forme");
        }
 public static frmNewLekarskoUverenje InstanceWithData(PregledDtoEL pregled, bool newInstance = false)
 {
     if (_instance == null || _instance.IsDisposed)
     {
         _instance = new frmNewLekarskoUverenje(pregled);
     }
     else if (newInstance)
     {
         _instance.Dispose();
         _instance = new frmNewLekarskoUverenje(pregled);
     }
     return(_instance);
 }
 public static frmPregledOverview InstanceWithData(PregledDtoEL pregled, bool newInstance = false)
 {
     if (_instance == null || _instance.IsDisposed)
     {
         _instance = new frmPregledOverview(pregled);
     }
     else if (newInstance)
     {
         _instance.Dispose();
         _instance = new frmPregledOverview(pregled);
     }
     return(_instance);
 }
        public async Task Init(int pregledId)
        {
            if (!Auth.IsAuthenticated())
            {
                NotificationService.Instance.Error(AppResources.UnauthenticatedAccessMessage);
                return;
            }

            _apiService.ChangeRoute(Routes.PreglediRoute);
            var getPregledResult =
                await _apiService.GetById <PregledDtoEL>(pregledId, eagerLoaded : true);

            if (!getPregledResult.Succeeded || !getPregledResult.HasData || getPregledResult.Data == null)
            {
                NotificationService.Instance.Error(AppResources.ErrorWhenLoadingResourceMessage);
                return;
            }
            Pregled = getPregledResult.Data;

            if (Pregled.IsOdradjen)
            {
                _apiService.ChangeRoute(Routes.LekarskoUverenjeRoute);
                var getLekarskoUverenjeResult = await _apiService.Get <LekarskoUverenjeDtoLL>(
                    new LekarskoUverenjeResourceParameters
                {
                    PregledId = pregledId
                });

                if (getLekarskoUverenjeResult.Succeeded && getLekarskoUverenjeResult.HasData)
                {
                    var lekarskoUverenje = getLekarskoUverenjeResult.Data.FirstOrDefault();
                    if (lekarskoUverenje != null)
                    {
                        LekarskoUverenjeId = lekarskoUverenje.Id;
                    }
                }
            }

            Id         = pregledId;
            Doktor     = Pregled.Doktor;
            DateTime   = Pregled.DatumPregleda;
            IsOdradjen = Pregled.IsOdradjen;
        }
        private frmNewLekarskoUverenje(LekarskoUverenjeDtoEL lekarskoUverenje)
        {
            LekarskoUverenje = lekarskoUverenje;
            Pregled          = null;
            InitializeComponent();

            _apiService        = new APIService(Routes.ZdravstvenaStanjaRoute);
            txtPacijent.Text   = LekarskoUverenje.Pregled.Pacijent.ZdravstvenaKnjizica.LicniPodaci.ImePrezime;
            txtDoktor.Text     = LekarskoUverenje.Pregled.Doktor;
            txtOpisStanja.Text = LekarskoUverenje.OpisStanja;
            toolTip.SetToolTip(btnPdf, "Generisanje PDF dokumenta na osnovu podataka iz forme");

            btnSave.Visible              = false;
            txtOpisStanja.ReadOnly       = true;
            cmbZdravstvenoStanje.Enabled = false;

            var isMedicinskiTehnicar = Auth.Role == RoleType.MedicinskiTehnicar;

            btnPdf.Visible      = !isMedicinskiTehnicar;
            btnSave.Visible     = false;
            btnUputnica.Visible = false;
        }
Пример #7
0
        public static void GeneratePDFDocument(PregledDtoEL pregled, string zdravstvenoStanje, string opisStanja)
        {
            if (pregled == null || string.IsNullOrWhiteSpace(opisStanja) || string.IsNullOrWhiteSpace(zdravstvenoStanje))
            {
                return;
            }

            var pacijent = pregled.Pacijent.ZdravstvenaKnjizica.LicniPodaci.ImePrezime;

            var document = new PdfDocument();
            var fileName = $"LekarskoUverenje_{pacijent ?? string.Empty}_{DateTime.Now.Date:d}.pdf".RemoveWhitespaces();

            document.Info.Title  = fileName;
            document.Info.Author = Resources.InstitutionName;
            var page = document.AddPage();

            XImage logo;

            using (var ms = new MemoryStream())
            {
                var image = Resources.Healthcare020_Logo_250x250;
                image.Save(ms, ImageFormat.Png);
                logo = XImage.FromStream(ms);
            }

            var sideStartX = logo.PointWidth;
            var gfx        = XGraphics.FromPdfPage(page);

            gfx.DrawImage(logo, page.Width - sideStartX - 10, 10);

            var options   = new XPdfFontOptions(PdfFontEncoding.Unicode);
            var titleFont = new XFont("Segoe UI", 28, XFontStyle.Regular, options);

            gfx.DrawString("Lekarsko uverenje", titleFont, XBrushes.Black, new XRect(page.Width / 2 - 100, 75, page.Width, 0));
            gfx.DrawLine(XPens.LightGray, new XPoint(sideStartX + 10, 110), new XPoint(page.Width - sideStartX - 10, 110));

            var basicFontBolded  = new XFont("Segoe UI", 16, XFontStyle.Bold, options);
            var basicFontRegular = new XFont("Segoe UI", 16, XFontStyle.Regular, options);

            //Pacijent
            gfx.DrawString("Pacijent:", basicFontBolded, XBrushes.Black, new XRect(sideStartX + 60, 180, page.Width, 0));
            gfx.DrawString(pacijent,
                           basicFontRegular,
                           XBrushes.Black,
                           new XRect(sideStartX + 140, 180, page.Width, 0));

            //Doktor
            gfx.DrawString("Doktor:", basicFontBolded, XBrushes.Black, new XRect(sideStartX + 65, 230, page.Width, 0));
            gfx.DrawString(pregled.Doktor,
                           basicFontRegular,
                           XBrushes.Black,
                           new XRect(sideStartX + 140, 230, page.Width, 0));

            //Zdravstveno stanje
            gfx.DrawString("Zdravstveno stanje:", basicFontBolded, XBrushes.Black, new XRect(sideStartX - 30, 280, page.Width, 0));
            gfx.DrawString(zdravstvenoStanje,
                           basicFontRegular,
                           XBrushes.Black,
                           new XRect(sideStartX + 140, 280, page.Width, 0));

            //Datum
            gfx.DrawString("Datum:", basicFontBolded, XBrushes.Black, new XRect(sideStartX + 60, 330, page.Width, 0));
            gfx.DrawString(DateTime.Now.Date.ToString("d"),
                           basicFontRegular,
                           XBrushes.Black,
                           new XRect(sideStartX + 140, 330, page.Width, 0));

            var textFormatter = new XTextFormatter(gfx);
            var format        = new XStringFormat
            {
                LineAlignment = XLineAlignment.Near,
                Alignment     = XStringAlignment.Near
            };

            //Opis stanja
            gfx.DrawString("Opis stanja:", basicFontBolded, XBrushes.Black, new XRect(sideStartX + 45, 380, page.Width, 0));
            textFormatter.DrawString(opisStanja,
                                     basicFontRegular,
                                     XBrushes.Black,
                                     new XRect(sideStartX + 80, 400, 350, 400), format);

            //Potpis
            gfx.DrawLine(XPens.Black, new XPoint(page.Width - sideStartX - 70, page.Height - 70), new XPoint(page.Width - 20, page.Height - 70));
            gfx.DrawString("Potpis doktora", basicFontBolded, XBrushes.Black, new XRect(page.Width - sideStartX - 60, page.Height - 50, page.Width, 0));

            document.Save(fileName);
            Process.Start(fileName);
        }