Example #1
0
        private List <SureMedRdlcReportInsideInfo> buildPillInside()
        {
            var listPillGroup  = listPill.GroupBy(p => new { p.PillId }, (key, group) => new { pillId = key.PillId, pillInfo = group });
            var listPillInside = new List <SureMedRdlcReportInsideInfo>();

            listImagePill = new List <Image>();
            foreach (var item in listPillGroup.OrderBy(p => p.pillId))
            {
                if (item.pillId != null)
                {
                    var pillGroup = listPillGroup.FirstOrDefault(o => o.pillId == item.pillId);

                    var medicine   = Helper.GetMedicineData(tray, item.pillId);
                    var pillInside = new SureMedRdlcReportInsideInfo();
                    pillInside.NationalDrugCode = Linguist.Phrase("NDCPrefix") + item.pillId.ToUpper();
                    var listDispense = GetChargeAndExpireDate();
                    var dispenseInfo = listDispense.FirstOrDefault(x => x.PillId.Contains(item.pillId));
                    var LotTemp      = dispenseInfo != null ? dispenseInfo.ChargeNumberList : "";
                    var col1Name     = Helper.CalculateIntakeTime(tray, 1);
                    var col2Name     = Helper.CalculateIntakeTime(tray, 2);
                    var col3Name     = Helper.CalculateIntakeTime(tray, 3);
                    var col4Name     = Helper.CalculateIntakeTime(tray, 0);
                    pillInside.Col1Name = col1Name.Length > 5 ? col1Name.Substring(0, 5) : col1Name;
                    pillInside.Col2Name = col2Name.Length > 5 ? col2Name.Substring(0, 5) : col2Name;
                    pillInside.Col3Name = col3Name.Length > 5 ? col3Name.Substring(0, 5) : col3Name;
                    pillInside.Col4Name = col4Name.Length > 5 ? col4Name.Substring(0, 5) : col4Name;
                    if (medicine.PillInfo != null)
                    {
                        pillInside.Manufacturer  = (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName).Length > 30? (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName).Substring(0, 30): (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName);
                        pillInside.BrandName     = Linguist.Phrase("BrandWithColonTitle") + " " + medicine.PillInfo.BrandNameShort;
                        pillInside.DrugName      = medicine.PillInfo.ItemShortName;
                        pillInside.Description   = medicine.PillInfo.Description;
                        pillInside.Shape         = medicine.PillInfo.Shape;
                        pillInside.Color         = medicine.PillInfo.Color;
                        pillInside.Imprint       = medicine.PillInfo.Imprint;
                        pillInside.LotNumber     = Linguist.Phrase("LotWithColonTitle") + "" + LotTemp;
                        pillInside.RxNumber      = Linguist.Phrase("RxWithColonTitle") + " " + medicine.PrescriptionNumber;
                        pillInside.RxOrigBarCode = Utils.imageToByteArray(GenCode128.Code128Rendering.MakeBarcodeImage(medicine.PrescriptionNumberOriginal, 2, true));
                        pillInside.DrName        = Linguist.Phrase("DrNameWithColonTitle") + " " + medicine.PrescribingPhysician;
                        pillInside.Instructions  = medicine.MedicationsInstruction;
                        pillInside.Model1        = medicine.PillInfo.Model1 != null?Utils.imageToByteArray(medicine.PillInfo.Model1) : new byte[0];

                        pillInside.Model2 = (medicine.PillInfo.Model2 != null) ? Utils.imageToByteArray(medicine.PillInfo.Model2) : new byte[0];
                        //if (medicine.PillInfo.Model1 != null)
                        //{
                        //listImagePill.Add(medicine.PillInfo.Model1);
                        //pillInside.ImgModel1 = medicine.PillInfo.Model1;
                        //}
                        //if (medicine.PillInfo.Model2 != null)
                        //{
                        //listImagePill.Add(medicine.PillInfo.Model2);
                        //pillInside.ImgModel2 = medicine.PillInfo.Model2;
                        //}
                        //if (medicine.PillInfo.Model3 != null)
                        //{
                        //listImagePill.Add(medicine.PillInfo.Model3);
                        //pillInside.ImgModel3 = medicine.PillInfo.Model3;
                        //}
                        //if (medicine.PillInfo.Model4 != null)
                        //{
                        //listImagePill.Add(medicine.PillInfo.Model4);
                        //pillInside.ImgModel4 = medicine.PillInfo.Model4;
                        //}
                    }
                    if (pillGroup != null && pillGroup.pillInfo != null)
                    {
                        foreach (var pill in pillGroup.pillInfo)
                        {
                            if (pill != null)
                            {
                                switch ((pill.cupNumber + 3) % 4)
                                {
                                case 0:
                                    pillInside.NumMorn += pill.Amount;
                                    break;

                                case 1:
                                    pillInside.NumNoon += pill.Amount;
                                    break;

                                case 2:
                                    pillInside.NumEve += pill.Amount;
                                    break;

                                case 3:
                                    pillInside.NumNight += pill.Amount;
                                    break;

                                default:
                                    break;
                                }
                            }
                        }
                    }

                    listPillInside.Add(pillInside);
                }
            }
            //var size = ProcessImageModelPill.SetNewImageSize(listImagePill);

            //foreach (var item in listPillInside)
            //{
            //item.Model1 = ProcessImageModelPill.ResizePillModels(item.ImgModel1, size);
            //item.Model2 = ProcessImageModelPill.ResizePillModels(item.ImgModel2, size);
            //}
            return(listPillInside);
        }
        private List <SureMedRdlcReportInsideInfo> buildPillInside()
        {
            var listPillGroup  = listPill.GroupBy(p => new { p.PillId }, (key, group) => new { pillId = key.PillId, pillInfo = group });
            var listPillInside = new List <SureMedRdlcReportInsideInfo>();

            listImagePill = new List <Image>();
            foreach (var item in listPillGroup.OrderBy(p => p.pillId))
            {
                if (item.pillId != null)
                {
                    var pillGroup = listPillGroup.FirstOrDefault(o => o.pillId == item.pillId);

                    var medicine   = Helper.GetMedicineData(tray, item.pillId);
                    var pillInside = new SureMedRdlcReportInsideInfo();
                    pillInside.NationalDrugCode = Linguist.Phrase("NDCPrefix") + item.pillId.ToUpper();
                    var col1Name = Helper.CalculateIntakeTime(tray, 1);
                    var col2Name = Helper.CalculateIntakeTime(tray, 2);
                    var col3Name = Helper.CalculateIntakeTime(tray, 3);
                    var col4Name = Helper.CalculateIntakeTime(tray, 0);
                    pillInside.Col1Name = col1Name.Length > 5 ? col1Name.Substring(0, 5) : col1Name;
                    pillInside.Col2Name = col2Name.Length > 5 ? col2Name.Substring(0, 5) : col2Name;
                    pillInside.Col3Name = col3Name.Length > 5 ? col3Name.Substring(0, 5) : col3Name;
                    pillInside.Col4Name = col4Name.Length > 5 ? col4Name.Substring(0, 5) : col4Name;
                    if (medicine.PillInfo != null)
                    {
                        pillInside.Manufacturer = (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName).Length > 30? (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName).Substring(0, 30): (Linguist.Phrase("MgfWithColonTitle") + " " + medicine.PillInfo.ManufactureName);
                        pillInside.BrandName    = Linguist.Phrase("BrandWithColonTitle") + " " + medicine.PillInfo.BrandNameShort;
                        pillInside.DrugName     = medicine.PillInfo.ItemShortName;
                        pillInside.Description  = medicine.PillInfo.Description;
                        pillInside.RxNumber     = Linguist.Phrase("RxWithColonTitle") + " " + medicine.PrescriptionNumber;
                        pillInside.DrName       = Linguist.Phrase("DrNameWithColonTitle") + " " + medicine.PrescribingPhysician;
                        if (medicine.MedicationsInstruction.Contains("*"))
                        {
                            pillInside.Instructions = medicine.MedicationsInstruction.Substring(0, medicine.MedicationsInstruction.IndexOf("*") - 1);
                            pillInside.Notes        = medicine.MedicationsInstruction.Substring(medicine.MedicationsInstruction.IndexOf("*") + 1);
                        }
                        else
                        {
                            pillInside.Instructions = medicine.MedicationsInstruction;
                            pillInside.Notes        = null;
                        }
                        //pillInside.Model1 = medicine.PillInfo.Model1 != null ? Utils.imageToByteArray(medicine.PillInfo.Model1) : new byte[0];
                        //pillInside.Model2 = (medicine.PillInfo.Model2 != null) ? Utils.imageToByteArray(medicine.PillInfo.Model2) : new byte[0];
                        pillInside.DrugName = medicine.PillInfo.Description;
                        if (medicine.PillInfo.Model1 != null)
                        {
                            listImagePill.Add(medicine.PillInfo.Model1);
                            pillInside.ImgModel1 = medicine.PillInfo.Model1;
                        }
                        if (medicine.PillInfo.Model2 != null)
                        {
                            listImagePill.Add(medicine.PillInfo.Model2);
                            pillInside.ImgModel2 = medicine.PillInfo.Model2;
                        }
                        if (medicine.PillInfo.Model3 != null)
                        {
                            listImagePill.Add(medicine.PillInfo.Model3);
                            pillInside.ImgModel3 = medicine.PillInfo.Model3;
                        }
                        if (medicine.PillInfo.Model4 != null)
                        {
                            listImagePill.Add(medicine.PillInfo.Model4);
                            pillInside.ImgModel4 = medicine.PillInfo.Model4;
                        }
                    }
                    if (pillGroup != null && pillGroup.pillInfo != null)
                    {
                        foreach (var pill in pillGroup.pillInfo)
                        {
                            if (pill != null)
                            {
                                switch ((pill.cupNumber + 3) % 4)
                                {
                                case 0:
                                    pillInside.NumMorn = pill.Amount;
                                    break;

                                case 1:
                                    pillInside.NumNoon = pill.Amount;
                                    break;

                                case 2:
                                    pillInside.NumEve = pill.Amount;
                                    break;

                                case 3:
                                    pillInside.NumNight = pill.Amount;
                                    break;

                                default:
                                    break;
                                }
                            }
                        }
                    }

                    listPillInside.Add(pillInside);
                }
            }
            var size = ProcessImageModelPill.SetNewImageSize(listImagePill);

            foreach (var item in listPillInside)
            {
                item.Model1 = ProcessImageModelPill.ResizePillModels(item.ImgModel1, size);
                item.Model2 = ProcessImageModelPill.ResizePillModels(item.ImgModel2, size);
            }
            return(listPillInside);
        }