diff --git a/src/Config/DBConfig.ts b/src/Config/DBConfig.ts index 81dd25b4f29177e506b277112b3849e99c5a4cff..ff2e0b593a861d778215770dc47942b5fbae4221 100644 --- a/src/Config/DBConfig.ts +++ b/src/Config/DBConfig.ts @@ -1,7 +1,7 @@ export const DBConfig = { HOST: 'localhost', USER: 'root', - PASSWORD: 'password', + PASSWORD: 'rootroot', // antes decia 'password' DB: 'parameter_database', dialect: 'mysql', }; diff --git a/src/Controllers/CalculatorController.ts b/src/Controllers/CalculatorController.ts index 3550ab2fb5b9b9dc796f27298370014a8cd42cf7..ddd2d3bc3c51c20294079d69ccad2cebe58db97a 100644 --- a/src/Controllers/CalculatorController.ts +++ b/src/Controllers/CalculatorController.ts @@ -1,11 +1,9 @@ import { Handler, Request, Response, Router, } from 'express'; -import AgeGroupJSON from '../DTOs/AgeGroupJSON'; import CalculatorService from '../Services/CalculatorService'; import CalculatorResponse from '../DTOs/CalculatorResponseDTO'; import logger from '../Logger/logger'; -import ExtraData from '../DTOs/ExtraDataDTO'; const router = Router(); diff --git a/src/Controllers/ParameterController.ts b/src/Controllers/ParameterController.ts index cfc9325a32e1cfee8b3d221584fe0b7f0836f615..926cb28de31cb9ca4aa7de763c97d8136657c871 100644 --- a/src/Controllers/ParameterController.ts +++ b/src/Controllers/ParameterController.ts @@ -19,15 +19,15 @@ const getParameters: Handler = async (req: Request, res: Response) => { }; const getParametersOfType: Handler = async (req: Request, res: Response) => { - const { paramType } = req.body; - try { - const parameters = await ParameterService.getParametersOfType(paramType as ParameterType); - return res.status(200).send(parameters); - } catch (error) { - const e = error as Error; - logger.info(e.message); - return res.status(400).json({ error: e.message }); - } + // const { paramType } = req.body; + // try { + // const parameters = await ParameterService.getParametersOfType(paramType as ParameterType); + // return res.status(200).send(parameters); + // } catch (error) { + // const e = error as Error; + // logger.info(e.message); + // return res.status(400).json({ error: e.message }); + // } }; router.post('/', getParameters); diff --git a/src/DTOs/ParameterDTO.ts b/src/DTOs/DefaultExtraDataDTO.ts similarity index 50% rename from src/DTOs/ParameterDTO.ts rename to src/DTOs/DefaultExtraDataDTO.ts index 35103fa7ca8132623159c66ac5c50eb5a6ff3c67..ea14e5111fb54de745cf187c8c6b51f1810c7088 100644 --- a/src/DTOs/ParameterDTO.ts +++ b/src/DTOs/DefaultExtraDataDTO.ts @@ -1,9 +1,11 @@ import ParameterType from '../Enum/ParameterType'; -type ParameterDTO = { +type DefaultExtraDataDTO = { id: string; value: number; parameterType: ParameterType; + order: number; + description: string; }; -export default ParameterDTO; +export default DefaultExtraDataDTO; diff --git a/src/DTOs/DefaultWeightDTO.ts b/src/DTOs/DefaultWeightDTO.ts new file mode 100644 index 0000000000000000000000000000000000000000..44ddff68cacf9b4e4a8ec670235a316216c80283 --- /dev/null +++ b/src/DTOs/DefaultWeightDTO.ts @@ -0,0 +1,10 @@ +import AgeBracket from '../Enum/AgeBracket'; +import Sex from '../Enum/Sex'; + +type DefaultWeightDTO = { + value: number; + ageRange: AgeBracket; + sex: Sex; +}; + +export default DefaultWeightDTO; diff --git a/src/DTOs/EquationConstantDTO.ts b/src/DTOs/EquationConstantDTO.ts new file mode 100644 index 0000000000000000000000000000000000000000..f97c60eb5778e1ecc532cc2b45f97a4c7a5e4d6d --- /dev/null +++ b/src/DTOs/EquationConstantDTO.ts @@ -0,0 +1,14 @@ +import AgeBracket from '../Enum/AgeBracket'; +import ParameterType from '../Enum/ParameterType'; +import Sex from '../Enum/Sex'; + +type EquationConstantDTO = { + ageRange: AgeBracket; + value: number; + sex: Sex; + parameterType: ParameterType; + order: number; + description: string; +}; + +export default EquationConstantDTO; diff --git a/src/Enum/ParameterType.ts b/src/Enum/ParameterType.ts index 48d123dda92e9c3cc1762123ea834c51a936886d..5d8d96ae9f72dfddde392a5ff4e99d63fc4674e3 100644 --- a/src/Enum/ParameterType.ts +++ b/src/Enum/ParameterType.ts @@ -1,8 +1,10 @@ enum ParameterType { - PAL = 'NAF', - DefaultWeight = 'Peso por defecto', + AdultPAL = 'NAF Adultos', + MinorPAL = 'NAF Menores', Maternity = 'Embarazo y lactancia', - EquationConstant = 'Constante de ecuacion', + TEE = 'GET', + BMR = 'TMB', + GrowthEnergy = 'Energia para crecimiento' } export default ParameterType; diff --git a/src/Loaders/CSVParser.ts b/src/Loaders/CSVParser.ts index e32169bf85684e2b32404d5e21f596283bce27b3..a10e1b04ea5d9b64438c3ede7078f277d0a34604 100644 --- a/src/Loaders/CSVParser.ts +++ b/src/Loaders/CSVParser.ts @@ -1,8 +1,28 @@ -import ParameterDTO from '../DTOs/ParameterDTO'; +import DefaultExtraDataDTO from '../DTOs/DefaultExtraDataDTO'; +import DefaultWeightDTO from '../DTOs/DefaultWeightDTO'; +import EquationConstantDTO from '../DTOs/EquationConstantDTO'; +import AgeBracket from '../Enum/AgeBracket'; import ParameterType from '../Enum/ParameterType'; +import Sex from '../Enum/Sex'; -function csvToParameters(csv: string): ParameterDTO[] { - const parameters: ParameterDTO[] = []; +function csvToDefaultWeight(csv: string): DefaultWeightDTO[] { + const parameters: DefaultWeightDTO[] = []; + const lines: string[] = csv.split('\r\n'); + lines.forEach((parameter: string) => { + const fields = parameter.split(','); + parameters.push({ + ageRange: fields[0] as AgeBracket, + value: parseFloat(fields[1]), + sex: fields[2] as Sex, + }); + }); + parameters.shift(); + parameters.pop(); + return parameters; +} + +function csvToDefaultExtraData(csv: string): DefaultExtraDataDTO[] { + const parameters: DefaultExtraDataDTO[] = []; const lines: string[] = csv.split('\r\n'); lines.forEach((parameter: string) => { const fields = parameter.split(','); @@ -10,6 +30,27 @@ function csvToParameters(csv: string): ParameterDTO[] { id: fields[0], value: parseFloat(fields[1]), parameterType: fields[2] as ParameterType, + order: parseInt(fields[3], 10), + description: fields[4], + }); + }); + parameters.shift(); + parameters.pop(); + return parameters; +} + +function csvToEquationConstant(csv: string): EquationConstantDTO[] { + const parameters: EquationConstantDTO[] = []; + const lines: string[] = csv.split('\r\n'); + lines.forEach((parameter: string) => { + const fields = parameter.split(','); + parameters.push({ + ageRange: fields[0] as AgeBracket, + value: parseFloat(fields[1]), + parameterType: fields[2] as ParameterType, + sex: fields[3] as Sex, + order: parseInt(fields[4], 10), + description: fields[5], }); }); parameters.shift(); @@ -17,4 +58,4 @@ function csvToParameters(csv: string): ParameterDTO[] { return parameters; } -export default { csvToParameters }; +export default { csvToDefaultWeight, csvToDefaultExtraData, csvToEquationConstant }; diff --git a/src/Loaders/DBLoader.sql b/src/Loaders/DBLoader.sql deleted file mode 100644 index b67b4c53da9396fa926281af74f59bc7f8e0d0a8..0000000000000000000000000000000000000000 --- a/src/Loaders/DBLoader.sql +++ /dev/null @@ -1,30 +0,0 @@ -CREATE TABLE Parameters ( - id VARCHAR(100) NOT NULL, - value INT NOT NULL, - parameterType INT NOT NULL, - PRIMARY KEY (id) -); - --- pesos por defecto -INSERT INTO Parameters (id, value, parameterType) VALUES ('0Month-Male', 3.3, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('1Month-Male', 4.5, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('2Month-Male', 5.6,1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('3Month-Male', 6.4, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('4Month-Male', 7.0, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('5Month-Male', 7.5, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('6Month-Male', 7.9, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('7Month-Male', 8.3, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('8Month-Male', 8.6, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('9Month-Male', 8.9, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('10Month-Male', 9.2, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('11Month-Male', 9.4, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('1Year-Male', 10.9, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('2Year-Male', 13.3, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('3Year-Male', 15.3, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('4Year-Male', 17.3, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('5Year-Male', 19.5, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('6Year-Male', 21.8, 1); -INSERT INTO Parameters (id, value, parameterType) VALUES ('7Year-Male', 24.2, 1); - - - diff --git a/src/Loaders/DefaultExtraDataLoader.csv b/src/Loaders/DefaultExtraDataLoader.csv new file mode 100644 index 0000000000000000000000000000000000000000..99f6206d3a703bffefcfa5605241b107542de507 --- /dev/null +++ b/src/Loaders/DefaultExtraDataLoader.csv @@ -0,0 +1,24 @@ +id,value,parameterType,order,description +minorLowPrevalence,0,NAF Menores,0,a +minorModeratePrevalence,100,NAF Menores,0,a +minorIntensePrevalence,0,NAF Menores,0,a +lowPercentageDifference,-15,NAF Menores,1,a +intensePercentageDifference,15,NAF Menores,2,a +urbanPopulation,94.7,NAF Adultos,0,a +urbanActivePALPercentage,10,NAF Adultos,0,a +urbanLowPALPercentage,90,NAF Adultos,0,a +ruralPopulation,5.3,NAF Adultos,0,a +ruralActivePALPercentage,50,NAF Adultos,0,a +ruralLowPALPercentage,50,NAF Adultos,0,a +urbanActivePALValue,1.85,NAF Adultos,1,a +urbanLowPALValue,1.55,NAF Adultos,2,a +ruralActivePALValue,1.95,NAF Adultos,3,a +ruralLowPALValue,1.65,NAF Adultos,4,a +countryPopulation,3453691,Embarazo y lactancia,0,a +18-29FemaleCountryPopulation,315790,Embarazo y lactancia,0,a +30-59FemaleCountryPopulation,660601,Embarazo y lactancia,0,a +birthRate,14,Embarazo y lactancia,0,a +pregnancyExtraEnergy18to29,208,Embarazo y lactancia,1,a +lactationExtraEnergy18to29,251,Embarazo y lactancia,2,a +pregnancyExtraEnergy30to59,208,Embarazo y lactancia,1,a +lactationExtraEnergy30to59,251,Embarazo y lactancia,2,a \ No newline at end of file diff --git a/src/Loaders/DefaultWeightLoader.csv b/src/Loaders/DefaultWeightLoader.csv new file mode 100644 index 0000000000000000000000000000000000000000..8bec941e9586b1f92e96e0f05a142f4d10d238c6 --- /dev/null +++ b/src/Loaders/DefaultWeightLoader.csv @@ -0,0 +1,65 @@ +age,value,sex +0Month,3.3,Male +1Month,4.5,Male +2Month,5.6,Male +3Month,6.4,Male +4Month,7,Male +5Month,7.5,Male +6Month,7.9,Male +7Month,8.3,Male +8Month,8.6,Male +9Month,8.9,Male +10Month,9.2,Male +11Month,9.4,Male +1Year,10.9,Male +2Year,13.3,Male +3Year,15.3,Male +4Year,17.3,Male +5Year,19.5,Male +6Year,21.8,Male +7Year,24.2,Male +8Year,26.8,Male +9Year,29.6,Male +10Year,32.9,Male +11Year,36.7,Male +12Year,41.6,Male +13Year,47.4,Male +14Year,53.7,Male +15Year,58.8,Male +16Year,63.1,Male +17Year,66.1,Male +18to29Year,67.4,Male +30to59Year,66.6,Male +60+Year,64.3,Male +0Month,3.2,Female +1Month,4.2,Female +2Month,5.1,Female +3Month,5.8,Female +4Month,6.4,Female +5Month,6.9,Female +6Month,7.3,Female +7Month,7.6,Female +8Month,7.9,Female +9Month,8.2,Female +10Month,8.5,Female +11Month,8.7,Female +1Year,10.2,Female +2Year,12.7,Female +3Year,15,Female +4Year,17.2,Female +5Year,19.1,Female +6Year,21.3,Female +7Year,23.7,Female +8Year,26.7,Female +9Year,29.9,Female +10Year,34,Female +11Year,38.7,Female +12Year,43.6,Female +13Year,48.1,Female +14Year,51.5,Female +15Year,53.9,Female +16Year,55.3,Female +17Year,56.3,Female +18to29Year,57.7,Female +30to59Year,56.3,Female +60+Year,54.2,Female \ No newline at end of file diff --git a/src/Loaders/EquationConstantLoader.csv b/src/Loaders/EquationConstantLoader.csv new file mode 100644 index 0000000000000000000000000000000000000000..fb9b7ce7081497a6116fc397d2ce0fdcd04ae71c --- /dev/null +++ b/src/Loaders/EquationConstantLoader.csv @@ -0,0 +1,221 @@ +age,value,parameterType,sex,order,description +18to29Year,15.057,TMB,Male,0,a +18to29Year,692.2,TMB,Male,1,a +30to59Year,11.472,TMB,Male,0,a +30to59Year,873.1,TMB,Male,1,a +60+Year,11.711,TMB,Male,0,a +60+Year,587.7,TMB,Male,1,a +18to29Year,14.818,TMB,Female,0,a +18to29Year,486.6,TMB,Female,1,a +30to59Year,8.126,TMB,Female,0,a +30to59Year,845.6,TMB,Female,1,a +60+Year,9.082,TMB,Female,0,a +60+Year,658.5,TMB,Female,1,a +0Month,211,Energia para crecimiento,Male,2,a +1Month,183,Energia para crecimiento,Male,2,a +2Month,139,Energia para crecimiento,Male,2,a +3Month,53,Energia para crecimiento,Male,2,a +4Month,46,Energia para crecimiento,Male,2,a +5Month,36,Energia para crecimiento,Male,2,a +6Month,17,Energia para crecimiento,Male,2,a +7Month,16,Energia para crecimiento,Male,2,a +8Month,14,Energia para crecimiento,Male,2,a +9Month,21,Energia para crecimiento,Male,2,a +10Month,21,Energia para crecimiento,Male,2,a +11Month,22,Energia para crecimiento,Male,2,a +1Year,13,Energia para crecimiento,Male,3,a +2Year,12,Energia para crecimiento,Male,3,a +3Year,12,Energia para crecimiento,Male,3,a +4Year,11,Energia para crecimiento,Male,3,a +5Year,11,Energia para crecimiento,Male,3,a +6Year,12,Energia para crecimiento,Male,3,a +7Year,14,Energia para crecimiento,Male,3,a +8Year,16,Energia para crecimiento,Male,3,a +9Year,19,Energia para crecimiento,Male,3,a +10Year,22,Energia para crecimiento,Male,3,a +11Year,25,Energia para crecimiento,Male,3,a +12Year,29,Energia para crecimiento,Male,3,a +13Year,33,Energia para crecimiento,Male,3,a +14Year,33,Energia para crecimiento,Male,3,a +15Year,31,Energia para crecimiento,Male,3,a +16Year,24,Energia para crecimiento,Male,3,a +17Year,14,Energia para crecimiento,Male,3,a +0Month,178,Energia para crecimiento,Female,2,a +1Month,161,Energia para crecimiento,Female,2,a +2Month,134,Energia para crecimiento,Female,2,a +3Month,68,Energia para crecimiento,Female,2,a +4Month,57,Energia para crecimiento,Female,2,a +5Month,47,Energia para crecimiento,Female,2,a +6Month,20,Energia para crecimiento,Female,2,a +7Month,17,Energia para crecimiento,Female,2,a +8Month,15,Energia para crecimiento,Female,2,a +9Month,18,Energia para crecimiento,Female,2,a +10Month,15,Energia para crecimiento,Female,2,a +11Month,14,Energia para crecimiento,Female,2,a +1Year,13,Energia para crecimiento,Female,3,a +2Year,13,Energia para crecimiento,Female,3,a +3Year,11,Energia para crecimiento,Female,3,a +4Year,10,Energia para crecimiento,Female,3,a +5Year,10,Energia para crecimiento,Female,3,a +6Year,13,Energia para crecimiento,Female,3,a +7Year,17,Energia para crecimiento,Female,3,a +8Year,20,Energia para crecimiento,Female,3,a +9Year,23,Energia para crecimiento,Female,3,a +10Year,25,Energia para crecimiento,Female,3,a +11Year,25,Energia para crecimiento,Female,3,a +12Year,26,Energia para crecimiento,Female,3,a +13Year,24,Energia para crecimiento,Female,3,a +14Year,19,Energia para crecimiento,Female,3,a +15Year,13,Energia para crecimiento,Female,3,a +16Year,5,Energia para crecimiento,Female,3,a +17Year,0,Energia para crecimiento,Female,3,a +0Month,-152,GET,Male,0,a +0Month,92.8,GET,Male,1,a +1Month,-152,GET,Male,0,a +1Month,92.8,GET,Male,1,a +2Month,-152,GET,Male,0,a +2Month,92.8,GET,Male,1,a +3Month,-152,GET,Male,0,a +3Month,92.8,GET,Male,1,a +4Month,-152,GET,Male,0,a +4Month,92.8,GET,Male,1,a +5Month,-152,GET,Male,0,a +5Month,92.8,GET,Male,1,a +0Month,-152,GET,Female,0,a +0Month,92.8,GET,Female,1,a +1Month,-152,GET,Female,0,a +1Month,92.8,GET,Female,1,a +2Month,-152,GET,Female,0,a +2Month,92.8,GET,Female,1,a +3Month,-152,GET,Female,0,a +3Month,92.8,GET,Female,1,a +4Month,-152,GET,Female,0,a +4Month,92.8,GET,Female,1,a +5Month,-152,GET,Female,0,a +5Month,92.8,GET,Female,1,a +6Month,-99.4,GET,Male,0,a +6Month,88.6,GET,Male,1,a +7Month,-99.4,GET,Male,0,a +7Month,88.6,GET,Male,1,a +8Month,-99.4,GET,Male,0,a +8Month,88.6,GET,Male,1,a +9Month,-99.4,GET,Male,0,a +9Month,88.6,GET,Male,1,a +10Month,-99.4,GET,Male,0,a +10Month,88.6,GET,Male,1,a +11Month,-99.4,GET,Male,0,a +11Month,88.6,GET,Male,1,a +6Month,-99.4,GET,Female,0,a +6Month,88.6,GET,Female,1,a +7Month,-99.4,GET,Female,0,a +7Month,88.6,GET,Female,1,a +8Month,-99.4,GET,Female,0,a +8Month,88.6,GET,Female,1,a +9Month,-99.4,GET,Female,0,a +9Month,88.6,GET,Female,1,a +10Month,-99.4,GET,Female,0,a +10Month,88.6,GET,Female,1,a +11Month,-99.4,GET,Female,0,a +11Month,88.6,GET,Female,1,a +1Year,310.2,GET,Male,0,a +1Year,63.3,GET,Male,1,a +1Year,-0.263,GET,Male,2,a +2Year,310.2,GET,Male,0,a +2Year,63.3,GET,Male,1,a +2Year,-0.263,GET,Male,2,a +3Year,310.2,GET,Male,0,a +3Year,63.3,GET,Male,1,a +3Year,-0.263,GET,Male,2,a +4Year,310.2,GET,Male,0,a +4Year,63.3,GET,Male,1,a +4Year,-0.263,GET,Male,2,a +5Year,310.2,GET,Male,0,a +5Year,63.3,GET,Male,1,a +5Year,-0.263,GET,Male,2,a +6Year,310.2,GET,Male,0,a +6Year,63.3,GET,Male,1,a +6Year,-0.263,GET,Male,2,a +7Year,310.2,GET,Male,0,a +7Year,63.3,GET,Male,1,a +7Year,-0.263,GET,Male,2,a +8Year,310.2,GET,Male,0,a +8Year,63.3,GET,Male,1,a +8Year,-0.263,GET,Male,2,a +9Year,310.2,GET,Male,0,a +9Year,63.3,GET,Male,1,a +9Year,-0.263,GET,Male,2,a +10Year,310.2,GET,Male,0,a +10Year,63.3,GET,Male,1,a +10Year,-0.263,GET,Male,2,a +11Year,310.2,GET,Male,0,a +11Year,63.3,GET,Male,1,a +11Year,-0.263,GET,Male,2,a +12Year,310.2,GET,Male,0,a +12Year,63.3,GET,Male,1,a +12Year,-0.263,GET,Male,2,a +13Year,310.2,GET,Male,0,a +13Year,63.3,GET,Male,1,a +13Year,-0.263,GET,Male,2,a +14Year,310.2,GET,Male,0,a +14Year,63.3,GET,Male,1,a +14Year,-0.263,GET,Male,2,a +15Year,310.2,GET,Male,0,a +15Year,63.3,GET,Male,1,a +15Year,-0.263,GET,Male,2,a +16Year,310.2,GET,Male,0,a +16Year,63.3,GET,Male,1,a +16Year,-0.263,GET,Male,2,a +17Year,310.2,GET,Male,0,a +17Year,63.3,GET,Male,1,a +17Year,-0.263,GET,Male,2,a +1Year,263.4,GET,Female,0,a +1Year,65.3,GET,Female,1,a +1Year,-0.454,GET,Female,2,a +2Year,263.4,GET,Female,0,a +2Year,65.3,GET,Female,1,a +2Year,-0.454,GET,Female,2,a +3Year,263.4,GET,Female,0,a +3Year,65.3,GET,Female,1,a +3Year,-0.454,GET,Female,2,a +4Year,263.4,GET,Female,0,a +4Year,65.3,GET,Female,1,a +4Year,-0.454,GET,Female,2,a +5Year,263.4,GET,Female,0,a +5Year,65.3,GET,Female,1,a +5Year,-0.454,GET,Female,2,a +6Year,263.4,GET,Female,0,a +6Year,65.3,GET,Female,1,a +6Year,-0.454,GET,Female,2,a +7Year,263.4,GET,Female,0,a +7Year,65.3,GET,Female,1,a +7Year,-0.454,GET,Female,2,a +8Year,263.4,GET,Female,0,a +8Year,65.3,GET,Female,1,a +8Year,-0.454,GET,Female,2,a +9Year,263.4,GET,Female,0,a +9Year,65.3,GET,Female,1,a +9Year,-0.454,GET,Female,2,a +10Year,263.4,GET,Female,0,a +10Year,65.3,GET,Female,1,a +10Year,-0.454,GET,Female,2,a +11Year,263.4,GET,Female,0,a +11Year,65.3,GET,Female,1,a +11Year,-0.454,GET,Female,2,a +12Year,263.4,GET,Female,0,a +12Year,65.3,GET,Female,1,a +12Year,-0.454,GET,Female,2,a +13Year,263.4,GET,Female,0,a +13Year,65.3,GET,Female,1,a +13Year,-0.454,GET,Female,2,a +14Year,263.4,GET,Female,0,a +14Year,65.3,GET,Female,1,a +14Year,-0.454,GET,Female,2,a +15Year,263.4,GET,Female,0,a +15Year,65.3,GET,Female,1,a +15Year,-0.454,GET,Female,2,a +16Year,263.4,GET,Female,0,a +16Year,65.3,GET,Female,1,a +16Year,-0.454,GET,Female,2,a +17Year,263.4,GET,Female,0,a +17Year,65.3,GET,Female,1,a +17Year,-0.454,GET,Female,2,a \ No newline at end of file diff --git a/src/Loaders/ParameterDataBaseLoader.ts b/src/Loaders/ParameterDataBaseLoader.ts index a7c7ec55f7bdd2f2ecba3e97943d23956f217aee..f086c2118402a6c8e08bb2d188cb1567e814a901 100644 --- a/src/Loaders/ParameterDataBaseLoader.ts +++ b/src/Loaders/ParameterDataBaseLoader.ts @@ -1,18 +1,48 @@ import fs from 'fs'; import path from 'path'; -import ParameterDTO from '../DTOs/ParameterDTO'; -import Parameter from '../Models/Parameter'; +import DefaultExtraDataDTO from '../DTOs/DefaultExtraDataDTO'; +import DefaultWeightDTO from '../DTOs/DefaultWeightDTO'; +import EquationConstantDTO from '../DTOs/EquationConstantDTO'; +import DefaultExtraData from '../Models/DefaultExtraData'; +import DefaultWeight from '../Models/DefaultWeight'; +import EquationConstant from '../Models/EquationConstant'; import CSVParser from './CSVParser'; function initParameterDataBase(): void { - const pathToFile: string = path.join(__dirname, 'loader.csv'); - const csv: string = fs.readFileSync(pathToFile, 'utf8').toString(); - const parameters: ParameterDTO[] = CSVParser.csvToParameters(csv); - Parameter.sync({ force: true }).then(() => { - Parameter.bulkCreate(parameters, { + let pathToFile: string = path.join(__dirname, 'DefaultWeightLoader.csv'); + let csv: string = fs.readFileSync(pathToFile, 'utf8').toString(); + const defaultWeights: DefaultWeightDTO[] = CSVParser.csvToDefaultWeight(csv); + DefaultWeight.sync({ force: true }).then(() => { + DefaultWeight.bulkCreate(defaultWeights, { updateOnDuplicate: ['value'], }).then(() => { - console.log('DataBase initialization success'); + console.log('Default Weight table loading success'); + }) + .catch((err) => { + console.log(err); + }); + }); + pathToFile = path.join(__dirname, 'DefaultExtraDataLoader.csv'); + csv = fs.readFileSync(pathToFile, 'utf8').toString(); + const extraData: DefaultExtraDataDTO[] = CSVParser.csvToDefaultExtraData(csv); + DefaultExtraData.sync({ force: true }).then(() => { + DefaultExtraData.bulkCreate(extraData, { + updateOnDuplicate: ['value'], + }).then(() => { + console.log('Extra Data table loading success'); + }) + .catch((err) => { + console.log(err); + }); + }); + pathToFile = path.join(__dirname, 'EquationConstantLoader.csv'); + csv = fs.readFileSync(pathToFile, 'utf8').toString(); + const equationConstant: EquationConstantDTO[] = CSVParser.csvToEquationConstant(csv); + EquationConstant.sync({ force: true }).then(() => { + EquationConstant.bulkCreate(equationConstant, { + updateOnDuplicate: ['value'], + }).then(() => { + console.log('Equation Constant table loading success'); }) .catch((err) => { console.log(err); diff --git a/src/Loaders/loader.csv b/src/Loaders/loader.csv deleted file mode 100644 index 00bcc944dcead5790d1b25e55af98f3bceea7490..0000000000000000000000000000000000000000 --- a/src/Loaders/loader.csv +++ /dev/null @@ -1,166 +0,0 @@ -id,value,parameterType -0Month-Male,3.3,Peso por defecto -1Month-Male,4.5,Peso por defecto -2Month-Male,5.6,Peso por defecto -3Month-Male,6.4,Peso por defecto -4Month-Male,7,Peso por defecto -5Month-Male,7.5,Peso por defecto -6Month-Male,7.9,Peso por defecto -7Month-Male,8.3,Peso por defecto -8Month-Male,8.6,Peso por defecto -9Month-Male,8.9,Peso por defecto -10Month-Male,9.2,Peso por defecto -11Month-Male,9.4,Peso por defecto -1Year-Male,10.9,Peso por defecto -2Year-Male,13.3,Peso por defecto -3Year-Male,15.3,Peso por defecto -4Year-Male,17.3,Peso por defecto -5Year-Male,19.5,Peso por defecto -6Year-Male,21.8,Peso por defecto -7Year-Male,24.2,Peso por defecto -8Year-Male,26.8,Peso por defecto -9Year-Male,29.6,Peso por defecto -10Year-Male,32.9,Peso por defecto -11Year-Male,36.7,Peso por defecto -12Year-Male,41.6,Peso por defecto -13Year-Male,47.4,Peso por defecto -14Year-Male,53.7,Peso por defecto -15Year-Male,58.8,Peso por defecto -16Year-Male,63.1,Peso por defecto -17Year-Male,66.1,Peso por defecto -18-29Year-Male,67.4,Peso por defecto -30-59Year-Male,66.6,Peso por defecto -60+Year-Male,64.3,Peso por defecto -0Month-Female,3.2,Peso por defecto -1Month-Female,4.2,Peso por defecto -2Month-Female,5.1,Peso por defecto -3Month-Female,5.8,Peso por defecto -4Month-Female,6.4,Peso por defecto -5Month-Female,6.9,Peso por defecto -6Month-Female,7.3,Peso por defecto -7Month-Female,7.6,Peso por defecto -8Month-Female,7.9,Peso por defecto -9Month-Female,8.2,Peso por defecto -10Month-Female,8.5,Peso por defecto -11Month-Female,8.7,Peso por defecto -1Year-Female,10.2,Peso por defecto -2Year-Female,12.7,Peso por defecto -3Year-Female,15,Peso por defecto -4Year-Female,17.2,Peso por defecto -5Year-Female,19.1,Peso por defecto -6Year-Female,21.3,Peso por defecto -7Year-Female,23.7,Peso por defecto -8Year-Female,26.7,Peso por defecto -9Year-Female,29.9,Peso por defecto -10Year-Female,34,Peso por defecto -11Year-Female,38.7,Peso por defecto -12Year-Female,43.6,Peso por defecto -13Year-Female,48.1,Peso por defecto -14Year-Female,51.5,Peso por defecto -15Year-Female,53.9,Peso por defecto -16Year-Female,55.3,Peso por defecto -17Year-Female,56.3,Peso por defecto -18-29Year-Female,57.7,Peso por defecto -30-59Year-Female,56.3,Peso por defecto -60+Year-Female,54.2,Peso por defecto -minorLowPrevalence,0,NAF -minorModeratePrevalence,100,NAF -minorIntensePrevalence,0,NAF -lowPercentageDifference,-15,NAF -intensePercentageDifference,15,NAF -urbanPopulation,94.7,NAF -urbanActivePALValue,1.85,NAF -urbanLowPALValue,1.55,NAF -urbanActivePALPercentage,10,NAF -urbanLowPALPercentage,90,NAF -ruralPopulation,5.3,NAF -ruralActivePALValue,1.95,NAF -ruralLowPALValue,1.65,NAF -ruralActivePALPercentage,50,NAF -ruralLowPALPercentage,50,NAF -countryPopulation,3453691,Embarazo y lactancia -18-29FemaleCountryPopulation,315790,Embarazo y lactancia -30-59FemaleCountryPopulation,660601,Embarazo y lactancia -birthRate,14,Embarazo y lactancia -pregnancyExtraEnergy,208,Embarazo y lactancia -lactationExtraEnergy,251,Embarazo y lactancia -GET-0to5Month-A,-152,Constante de ecuacion -GET-0to5Month-B,92.8,Constante de ecuacion -GET-6to11Month-A,-99.4,Constante de ecuacion -GET-6to11Month-B,88.6,Constante de ecuacion -GET-1to17Year-Male-A,310.2,Constante de ecuacion -GET-1to17Year-Male-B,63.3,Constante de ecuacion -GET-1to17Year-Male-C,-0.263,Constante de ecuacion -GrowthEnergy-0Month-Male,211,Constante de ecuacion -GrowthEnergy-1Month-Male,183,Constante de ecuacion -GrowthEnergy-2Month-Male,139,Constante de ecuacion -GrowthEnergy-3Month-Male,53,Constante de ecuacion -GrowthEnergy-4Month-Male,46,Constante de ecuacion -GrowthEnergy-5Month-Male,36,Constante de ecuacion -GrowthEnergy-6Month-Male,17,Constante de ecuacion -GrowthEnergy-7Month-Male,16,Constante de ecuacion -GrowthEnergy-8Month-Male,14,Constante de ecuacion -GrowthEnergy-9Month-Male,21,Constante de ecuacion -GrowthEnergy-10Month-Male,21,Constante de ecuacion -GrowthEnergy-11Month-Male,22,Constante de ecuacion -GrowthEnergy-1Year-Male,13,Constante de ecuacion -GrowthEnergy-2Year-Male,12,Constante de ecuacion -GrowthEnergy-3Year-Male,12,Constante de ecuacion -GrowthEnergy-4Year-Male,11,Constante de ecuacion -GrowthEnergy-5Year-Male,11,Constante de ecuacion -GrowthEnergy-6Year-Male,12,Constante de ecuacion -GrowthEnergy-7Year-Male,14,Constante de ecuacion -GrowthEnergy-8Year-Male,16,Constante de ecuacion -GrowthEnergy-9Year-Male,19,Constante de ecuacion -GrowthEnergy-10Year-Male,22,Constante de ecuacion -GrowthEnergy-11Year-Male,25,Constante de ecuacion -GrowthEnergy-12Year-Male,29,Constante de ecuacion -GrowthEnergy-13Year-Male,33,Constante de ecuacion -GrowthEnergy-14Year-Male,33,Constante de ecuacion -GrowthEnergy-15Year-Male,31,Constante de ecuacion -GrowthEnergy-16Year-Male,24,Constante de ecuacion -GrowthEnergy-17Year-Male,14,Constante de ecuacion -TMB-18to29Year-Male-A,15.057,Constante de ecuacion -TMB-18to29Year-Male-B,692.2,Constante de ecuacion -TMB-30to59Year-Male-A,11.472,Constante de ecuacion -TMB-30to59Year-Male-B,873.1,Constante de ecuacion -TMB-60+Year-Male-A,11.711,Constante de ecuacion -TMB-60+Year-Male-B,587.7,Constante de ecuacion -GET-1to17Year-Female-A,263.4,Constante de ecuacion -GET-1to17Year-Female-B,65.3,Constante de ecuacion -GET-1to17Year-Female-C,-0.454,Constante de ecuacion -GrowthEnergy-0Month-Female,178,Constante de ecuacion -GrowthEnergy-1Month-Female,161,Constante de ecuacion -GrowthEnergy-2Month-Female,134,Constante de ecuacion -GrowthEnergy-3Month-Female,68,Constante de ecuacion -GrowthEnergy-4Month-Female,57,Constante de ecuacion -GrowthEnergy-5Month-Female,47,Constante de ecuacion -GrowthEnergy-6Month-Female,20,Constante de ecuacion -GrowthEnergy-7Month-Female,17,Constante de ecuacion -GrowthEnergy-8Month-Female,15,Constante de ecuacion -GrowthEnergy-9Month-Female,18,Constante de ecuacion -GrowthEnergy-10Month-Female,15,Constante de ecuacion -GrowthEnergy-11Month-Female,14,Constante de ecuacion -GrowthEnergy-1Year-Female,13,Constante de ecuacion -GrowthEnergy-2Year-Female,13,Constante de ecuacion -GrowthEnergy-3Year-Female,11,Constante de ecuacion -GrowthEnergy-4Year-Female,10,Constante de ecuacion -GrowthEnergy-5Year-Female,10,Constante de ecuacion -GrowthEnergy-6Year-Female,13,Constante de ecuacion -GrowthEnergy-7Year-Female,17,Constante de ecuacion -GrowthEnergy-8Year-Female,20,Constante de ecuacion -GrowthEnergy-9Year-Female,23,Constante de ecuacion -GrowthEnergy-10Year-Female,25,Constante de ecuacion -GrowthEnergy-11Year-Female,25,Constante de ecuacion -GrowthEnergy-12Year-Female,26,Constante de ecuacion -GrowthEnergy-13Year-Female,24,Constante de ecuacion -GrowthEnergy-14Year-Female,19,Constante de ecuacion -GrowthEnergy-15Year-Female,13,Constante de ecuacion -GrowthEnergy-16Year-Female,5,Constante de ecuacion -GrowthEnergy-17Year-Female,0,Constante de ecuacion -TMB-18to29Year-Female-A,14.818,Constante de ecuacion -TMB-18to29Year-Female-B,486.6,Constante de ecuacion -TMB-30to59Year-Female-A,8.126,Constante de ecuacion -TMB-30to59Year-Female-B,845.6,Constante de ecuacion -TMB-60+Year-Female-A,9.082,Constante de ecuacion -TMB-60+Year-Female-B,658.5,Constante de ecuacion diff --git a/src/Mappers/ParameterMapper.ts b/src/Mappers/ParameterMapper.ts index 528f378caa6ab066f3d4b08dc7b09b4c63399f5a..618aba27684426acdaa76ea6edeb0f8132bc7925 100644 --- a/src/Mappers/ParameterMapper.ts +++ b/src/Mappers/ParameterMapper.ts @@ -1,13 +1,40 @@ -import ParameterDTO from '../DTOs/ParameterDTO'; -import Parameter from '../Models/Parameter'; +import DefaultExtraDataDTO from '../DTOs/DefaultExtraDataDTO'; +import DefaultWeightDTO from '../DTOs/DefaultWeightDTO'; +import EquationConstantDTO from '../DTOs/EquationConstantDTO'; +import DefaultExtraData from '../Models/DefaultExtraData'; +import DefaultWeight from '../Models/DefaultWeight'; +import EquationConstant from '../Models/EquationConstant'; -function parameterToData(parameter: Parameter): ParameterDTO { - const res: ParameterDTO = { +function defaultExtraDataToDTO(parameter: DefaultExtraData): DefaultExtraDataDTO { + const res: DefaultExtraDataDTO = { id: parameter.id, value: parameter.value, parameterType: parameter.parameterType, + order: parameter.order, + description: parameter.description, }; return res; } -export default { parameterToData }; +function equationConstantToDTO(parameter: EquationConstant): EquationConstantDTO { + const res: EquationConstantDTO = { + value: parameter.value, + parameterType: parameter.parameterType, + order: parameter.order, + description: parameter.description, + ageRange: parameter.ageRange, + sex: parameter.sex, + }; + return res; +} + +function defaultWeightToDTO(parameter: DefaultWeight): DefaultWeightDTO { + const res: DefaultWeightDTO = { + value: parameter.value, + ageRange: parameter.ageRange, + sex: parameter.sex, + }; + return res; +} + +export default { defaultExtraDataToDTO, equationConstantToDTO, defaultWeightToDTO }; diff --git a/src/Models/DefaultExtraData.ts b/src/Models/DefaultExtraData.ts new file mode 100644 index 0000000000000000000000000000000000000000..2114155acff341cccff7e02478f7ab3fa1edb23f --- /dev/null +++ b/src/Models/DefaultExtraData.ts @@ -0,0 +1,34 @@ +import { DataTypes } from 'sequelize'; +import Parameter from './Parameter'; +import sequelize from '../Loaders/ParameterDataBase'; +import ParameterType from '../Enum/ParameterType'; + +class DefaultExtraData extends Parameter { + id!: string; + + parameterType!: ParameterType; + + order!: number; + + description!: string; +} + +DefaultExtraData.init( + { + id: { + type: DataTypes.STRING, + primaryKey: true, + }, + parameterType: DataTypes.STRING, + value: DataTypes.FLOAT, + order: DataTypes.INTEGER, + description: DataTypes.STRING, + }, + { + sequelize, + modelName: 'DefaultExtraData', + timestamps: false, + }, +); + +export default DefaultExtraData; diff --git a/src/Models/DefaultWeight.ts b/src/Models/DefaultWeight.ts new file mode 100644 index 0000000000000000000000000000000000000000..cae0072cafcc3dbe9bd48d3b89b90408bfae98ae --- /dev/null +++ b/src/Models/DefaultWeight.ts @@ -0,0 +1,32 @@ +import { DataTypes } from 'sequelize'; +import AgeBracket from '../Enum/AgeBracket'; +import Sex from '../Enum/Sex'; +import Parameter from './Parameter'; +import sequelize from '../Loaders/ParameterDataBase'; + +class DefaultWeight extends Parameter { + ageRange!: AgeBracket; + + sex!: Sex; +} + +DefaultWeight.init( + { + ageRange: { + type: DataTypes.STRING, + primaryKey: true, + }, + sex: { + type: DataTypes.STRING, + primaryKey: true, + }, + value: DataTypes.FLOAT, + }, + { + sequelize, + modelName: 'DefaultWeight', + timestamps: false, + }, +); + +export default DefaultWeight; diff --git a/src/Models/EquationConstant.ts b/src/Models/EquationConstant.ts new file mode 100644 index 0000000000000000000000000000000000000000..4075231ac84e7d89494d3e8289ec179a251d04dc --- /dev/null +++ b/src/Models/EquationConstant.ts @@ -0,0 +1,45 @@ +import { DataTypes } from 'sequelize'; +import AgeBracket from '../Enum/AgeBracket'; +import Sex from '../Enum/Sex'; +import Parameter from './Parameter'; +import sequelize from '../Loaders/ParameterDataBase'; +import ParameterType from '../Enum/ParameterType'; + +class EquationConstant extends Parameter { + ageRange!: AgeBracket; + + sex!: Sex; + + parameterType!: ParameterType; + + order!: number; + + description!: string; +} + +EquationConstant.init( + { + ageRange: { + type: DataTypes.STRING, + primaryKey: true, + }, + sex: { + type: DataTypes.STRING, + primaryKey: true, + }, + order: { + type: DataTypes.INTEGER, + primaryKey: true, + }, + description: DataTypes.STRING, + parameterType: DataTypes.STRING, + value: DataTypes.FLOAT, + }, + { + sequelize, + modelName: 'EquationConstant', + timestamps: false, + }, +); + +export default EquationConstant; diff --git a/src/Models/Parameter.ts b/src/Models/Parameter.ts index 19f8b07c9c423d4b973306a5a49c57cdda45eacd..68bdd3f0bacb7aa8867990200f17c9a2578056c7 100644 --- a/src/Models/Parameter.ts +++ b/src/Models/Parameter.ts @@ -1,32 +1,7 @@ -import { Model, DataTypes } from 'sequelize'; -import ParameterType from '../Enum/ParameterType'; -import sequelize from '../Loaders/ParameterDataBase'; +import { Model } from 'sequelize'; class Parameter extends Model { - id!: string; - value!: number; - - parameterType!: ParameterType; } -Parameter.init( - { - id: { - type: DataTypes.STRING, - primaryKey: true, - }, - value: DataTypes.FLOAT, - parameterType: { - type: DataTypes.STRING, - primaryKey: true, - }, - }, - { - sequelize, - modelName: 'Parameter', - timestamps: false, - }, -); - export default Parameter; diff --git a/src/Services/ParameterService.ts b/src/Services/ParameterService.ts index 9af098d7b8fe0cc647d424eea047519902b6d6e9..7d8c34288f0e3982c4b0ecdae1e237e19df990bd 100644 --- a/src/Services/ParameterService.ts +++ b/src/Services/ParameterService.ts @@ -1,9 +1,8 @@ -import ParameterDTO from '../DTOs/ParameterDTO'; +import ParameterDTO from '../DTOs/EquationConstantDTO'; import AgeBracket from '../Enum/AgeBracket'; import Sex from '../Enum/Sex'; import ParameterMapper from '../Mappers/ParameterMapper'; import Parameter from '../Models/Parameter'; -// import Parameter from '../Models/Parameter'; const getEquationValues = (ageBracket: AgeBracket, sex: Sex): number[] => { let res: number[] = []; @@ -336,32 +335,20 @@ const getEquationValues = (ageBracket: AgeBracket, sex: Sex): number[] => { return res; }; -const getParameters = async (): Promise<ParameterDTO[]> => { - const res: ParameterDTO[] = []; - await Parameter.findAll().then((parameters: Parameter[]) => { - parameters.forEach((param: Parameter) => { - res.push(ParameterMapper.parameterToData(param)); - }); - }); - return res; -}; - -const getParametersOfType = async (paramType: string): Promise<ParameterDTO[]> => { - const res: ParameterDTO[] = []; - await Parameter.findAll({ - where: { - parameterType: paramType, - }, - }) - .then((parameters: Parameter[]) => { - parameters.forEach((param: Parameter) => { - res.push(ParameterMapper.parameterToData(param)); - }); - }) - .catch((err) => { - throw new Error(err); - }); - return res; -}; +// const getParametersOfType = async (paramType: ParameterType): Promise<ParameterDTO[]> => { +// const res: ParameterDTO[] = []; +// const estaChota = await Parameter.findAll({ +// where: { +// parameterType: paramType, +// }, +// }) +// .then((parameters) => parameters.forEach((param: Parameter) => { +// res.push(ParameterMapper.parameterToData(param)); +// })) +// .catch((err) => { +// throw new Error(err); +// }); +// return res; +// }; -export default { getEquationValues, getParameters, getParametersOfType }; +export default { getEquationValues, getParameters };