Пример #1
0
        public async Task <ApiResponse> ApproveMAAsync([FromBody] MABusinessModel ma)
        {
            if (!(new string[] { "FNT", "NTNIVD", "NTIVD" }).Contains(ma.SubmoduleCode))
            {
                return(new ApiResponse()
                {
                    StatusCode = StatusCodes.Status400BadRequest,
                    Result = false,
                    IsSuccess = false,
                    Message = "Invalid Application Type"
                });
            }
            var result = await _maService.ApproveMAAsync(ma.MA);

            if (result.IsSuccess && ma.SubmoduleCode == "FNT")
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.MA.ID, "FNT", ma.MA.ModifiedByUserID);
            }
            else if (result.IsSuccess && ma.SubmoduleCode != "FNT")
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.MA.ID, "MDNT", ma.MA.ModifiedByUserID);
            }

            return(result);
        }
Пример #2
0
        public async Task <ApiResponse> CreateMARenewalAsync([FromBody] MABusinessModel maNewApp)
        {
            var result = await _maService.CreateMARenewalAsync(maNewApp);

            var ma = await _maService.GetAsync(m => m.RowGuid == maNewApp.MA.RowGuid);

            if (ma.MAStatus?.MAStatusCode == "RQST")
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.ID, ma.MAStatus.MAStatusCode, ma.CreatedByUserID);
            }
            return(result);
        }
Пример #3
0
        public RegistrationPDFData(MABusinessModel ma, LetterHeading letterHeading, Letter letter, int noOfFIR = 1)
        {
            this.maId                = ma.MA.ID;
            this.company             = letterHeading.CompanyName;
            this.logoUrl             = letterHeading.LogoUrl;
            this.header              = letter.Title;
            this.body                = letter.Body;
            this.to                  = ma.MA.Agent?.Name;
            this.address             = ma.MA.Agent?.Address?.City;
            this.date                = DateTime.Now.ToString("dd-MM-yyyy");
            this.productName         = ma.Product?.BrandName;
            this.genericName         = ma.Product?.GenericName;
            this.dosageForm          = ma.Product?.DosageFormObj?.Name;
            this.dosageUnit          = ma.Product?.DosageUnitObj?.Name;
            this.productStrength     = ma.Product?.DosageStrengthObj?.Name;
            this.routeAdminstration  = ma.Product?.AdminRoute?.Name;
            this.indication          = ma.Product?.Indication;
            this.prescriptionStatus  = ma.Product?.PharmacopoeiaStandard?.Name; //check
            this.packSize            = ma.Product?.Presentation;                //check
            this.generalAppearance   = ma.Product?.Description;
            this.primaryContainer    = ma.Product?.ContainerType;
            this.agent               = ma.MA.Agent?.Name;
            this.supplier            = ma.MA.Supplier?.Name;
            this.supplierAddress     = ma.MA.Supplier?.Address?.City;
            this.applicationType     = ma.MA.MAType?.Name;
            this.applicationNumber   = ma.MA.MANumber;
            this.certificationNumber = ma.MA.CertificateNumber;                                                                                                                                                       //check
            this.manufacturer        = ma.Product?.ProductManufacturers?.DefaultIfEmpty().FirstOrDefault(m => m?.ManufacturerType?.ManufacturerTypeCode == "FIN_PROD_MANUF")?.ManufacturerAddress.Manufacturer?.Name; //check
            this.shelfLife           = ma.Product?.ShelfLifeObj?.Name;

            this.productCategory = ma.Product.ProductCategory?.Name;
            this.productType     = ma.Product.ProductType?.Name;
            this.deviceClass     = ma.Product.ProductMD?.DeviceClass?.Name;
            this.deviceGroup     = ma.Product.ProductMD?.MDGrouping?.Name;
            this.foodIngredients = ma.Product.FoodIngredients;

            this.fileName       = ma.MA.MAStatus.MAStatusCode == "FIR" ? noOfFIR + "_" + letter.ModuleDocument.DocumentType.Name + ".pdf" : letter.ModuleDocument.DocumentType.Name + ".pdf";
            this.tempFolderName = ma.MA.RowGuid.ToString();
            this.manufacturers  = (bool)ma.Product?.ProductManufacturers?.Any() ? ma.Product?.ProductManufacturers?.Select(x => new Manufacturer(x))?.ToList() : new List <Manufacturer> ();
            this.inns           = (bool)ma.Product?.ProductCompositions?.Any() ? ma.Product?.ProductCompositions?.Where(c => c.INNID != null).Select(x => new Ingredient(x))?.ToList() : new List <Ingredient> ();
            this.expients       = (bool)ma.Product?.ProductCompositions?.Any() ? ma.Product?.ProductCompositions?.Where(c => c.ExcipientID != null).Select(x => new Ingredient(x))?.ToList() : new List <Ingredient> ();
            this.components     = (bool)ma.Product?.DeviceAccessories?.Any() ? ma.Product?.DeviceAccessories?.Where(c => c.AccessoryType.AccessoryTypeCode == "CMP").Select(x => new DeviceAccessories(x))?.ToList() : new List <DeviceAccessories> ();
            this.rawMaterials   = (bool)ma.Product?.DeviceAccessories?.Any() ? ma.Product?.DeviceAccessories?.Where(c => c.AccessoryType.AccessoryTypeCode == "RMT").Select(x => new DeviceAccessories(x))?.ToList() : new List <DeviceAccessories> ();

            this.spareParts          = (bool)ma.Product?.DeviceAccessories?.Any() ? ma.Product?.DeviceAccessories?.Where(c => c.AccessoryType.AccessoryTypeCode == "SPR").Select(x => new DeviceAccessories(x))?.ToList() : new List <DeviceAccessories> ();;
            this.standardAccessories = (bool)ma.Product?.DeviceAccessories?.Any() ? ma.Product?.DeviceAccessories?.Where(c => c.AccessoryType.AccessoryTypeCode == "STND").Select(x => new DeviceAccessories(x))?.ToList() : new List <DeviceAccessories> ();;
            this.mdModelSizes        = (bool)ma.Product?.MDModelSizes?.Any() ? ma.Product?.MDModelSizes.Select(x => new MDModelSize(x))?.ToList() : new List <MDModelSize> ();;
            this.foodCompositions    = (bool)ma.Product?.FoodCompositions?.Any() ? ma.Product?.FoodCompositions?.Where(c => c.CompositionType == "COMPOSITION").Select(x => new FoodComposition(x))?.ToList() : new List <FoodComposition> ();
            this.foodNutritions      = (bool)ma.Product?.FoodCompositions?.Any() ? ma.Product?.FoodCompositions?.Where(c => c.CompositionType == "NUTRITIONAL_FACT").Select(x => new FoodComposition(x))?.ToList() : new List <FoodComposition> ();
        }
Пример #4
0
        public async Task <ApiResponse> ApproveMAAsync([FromBody] MABusinessModel ma, bool?isNotificationType = false)
        {
            var result = await _maService.ApproveMAAsync(ma.MA);

            if (result.IsSuccess && (bool)!isNotificationType)
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.MA.ID, "APR", ma.MA.ModifiedByUserID);
            }
            else if (result.IsSuccess && (bool)isNotificationType)
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.MA.ID, "NOTAPR", ma.MA.ModifiedByUserID, ma.Comment);
            }

            return(result);
        }
Пример #5
0
        public async Task <ApiResponse> CreateMANewApplicationAsync([FromBody] MABusinessModel maNewApp)
        {
            if (ModelState.IsValid)
            {
                return(new ApiResponse {
                    StatusCode = StatusCodes.Status400BadRequest, IsSuccess = false, Message = "Model is not valid."
                });
            }
            var result = await _maService.CreateMANewApplicationAsync(maNewApp);

            var ma = await _maService.GetAsync(m => m.RowGuid == maNewApp.MA.RowGuid, true);

            if (ma?.MAStatus?.MAStatusCode == "RQST")
            {
                await _generateDocument.GenerateRegistrationPDFDocument(_nodeServices, ma.ID, ma.MAStatus.MAStatusCode, ma.CreatedByUserID);
            }
            return(result);
        }
Пример #6
0
        public async Task <ApiResponse> UpdateMANewApplicatioAsync([FromBody] MABusinessModel maNewApp)
        {
            var result = await _maService.UpdateMAAsync(maNewApp);

            return(result);
        }
Пример #7
0
        public async Task <ApiResponse> UpdateMAVariationAsync([FromBody] MABusinessModel maVariation)
        {
            var result = await _maService.UpdateMAAsync(maVariation);

            return(result);
        }