c2-clinical 1.0.97 → 1.0.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ import { IFormUnit } from "../../models/form/FormUnit";
2
+ import { IMetActivityPatient } from "../../models/met-activity/MetActivityPatient";
3
+ declare class BuildFormulaFlowItemTester {
4
+ execute(answers: IFormUnit[], formula: string, metsActivities?: IMetActivityPatient[], replaceDefault?: string): string;
5
+ }
6
+ declare const _default: BuildFormulaFlowItemTester;
7
+ export default _default;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BuildFormulaMetsFlowItemTester_1 = __importDefault(require("./BuildFormulaMetsFlowItemTester"));
7
+ class BuildFormulaFlowItemTester {
8
+ execute(answers, formula, metsActivities, replaceDefault) {
9
+ if (!formula) {
10
+ console.error("formula is undefined");
11
+ return formula;
12
+ }
13
+ const formulaBefore = formula;
14
+ const matches = formula.match(/\$\{(?!\{)([^}]+)\}/g) ?? []; // padrao regex: ${ANYTHING}
15
+ const variables = [...new Set(matches)];
16
+ for (const variable of variables) {
17
+ const variablePure = variable.match(/\$\{([^}]+)\}/) ?? [];
18
+ const questionAnswered = answers.find((a) => a?.code === variablePure[1]);
19
+ if (questionAnswered?.answer !== undefined && questionAnswered?.answer !== "") {
20
+ formula = formula.replaceAll(variable, questionAnswered?.answer);
21
+ }
22
+ if (formula.includes(variable) && replaceDefault) {
23
+ formula = formula.replaceAll(variable, replaceDefault);
24
+ }
25
+ }
26
+ formula = formula.replaceAll(/\$\{\{([^}]+)\}\}/g, (_, match) => `\$\{${match}\}`);
27
+ if (metsActivities) {
28
+ formula = BuildFormulaMetsFlowItemTester_1.default.exec(answers, formula, metsActivities);
29
+ }
30
+ if (formula !== formulaBefore) {
31
+ return this.execute(answers, formula, metsActivities, replaceDefault);
32
+ }
33
+ return formula;
34
+ }
35
+ }
36
+ exports.default = new BuildFormulaFlowItemTester();
@@ -0,0 +1,7 @@
1
+ import { IFormUnit } from "../../models/form/FormUnit";
2
+ import { IMetActivityPatient } from "../../models/met-activity/MetActivityPatient";
3
+ declare class BuildFormulaMetsFlowItemTester {
4
+ exec(answers: IFormUnit[], formula: string, metsActivities: IMetActivityPatient[]): string;
5
+ }
6
+ declare const _default: BuildFormulaMetsFlowItemTester;
7
+ export default _default;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const const_1 = require("../../config/const");
4
+ class BuildFormulaMetsFlowItemTester {
5
+ exec(answers, formula, metsActivities) {
6
+ if (!formula) {
7
+ return formula;
8
+ }
9
+ if (!formula.includes(const_1.MET_ACTIVITIES)) {
10
+ return formula;
11
+ }
12
+ const matches = formula.match(/\$\{([^}]+)\}/g) ?? []; // padrao regex: ${ANYTHING}
13
+ const variables = [...new Set(matches)];
14
+ for (const variable of variables) {
15
+ const variablePure = variable.match(/\$\{([^}]+)\}/) ?? [];
16
+ const questionAnswered = answers.find((aq) => aq.code === variablePure[1]);
17
+ if (questionAnswered?.answer !== undefined && questionAnswered?.answer !== "") {
18
+ formula = formula.replaceAll(variable, questionAnswered?.answer);
19
+ }
20
+ }
21
+ if (formula.includes(const_1.MET_ACTIVITIES)) {
22
+ const metsActivitiesAux = metsActivities?.map((ma) => {
23
+ return {
24
+ met: { metValue: ma.met.metValue },
25
+ sundayTime: ma.sundayTime,
26
+ sundayTimeCoefficient: ma.sundayTimeCoefficient,
27
+ mondayTime: ma.mondayTime,
28
+ mondayTimeCoefficient: ma.mondayTimeCoefficient,
29
+ tuesdayTime: ma.tuesdayTime,
30
+ tuesdayTimeCoefficient: ma.tuesdayTimeCoefficient,
31
+ wednesdayTime: ma.wednesdayTime,
32
+ wednesdayTimeCoefficient: ma.wednesdayTimeCoefficient,
33
+ thursdayTime: ma.thursdayTime,
34
+ thursdayTimeCoefficient: ma.thursdayTimeCoefficient,
35
+ fridayTime: ma.fridayTime,
36
+ fridayTimeCoefficient: ma.fridayTimeCoefficient,
37
+ saturdayTime: ma.saturdayTime,
38
+ saturdayTimeCoefficient: ma.saturdayTimeCoefficient
39
+ };
40
+ });
41
+ formula = formula.replaceAll(const_1.MET_ACTIVITIES, JSON.stringify(metsActivitiesAux).replace(/"/g, "'"));
42
+ }
43
+ return formula;
44
+ }
45
+ }
46
+ exports.default = new BuildFormulaMetsFlowItemTester();
@@ -0,0 +1,7 @@
1
+ import { IFormUnit } from "../../models/form/FormUnit";
2
+ import { IMetActivityPatient } from "../../models/met-activity/MetActivityPatient";
3
+ declare class ExecFormulaFlowTester {
4
+ execute(formula: string, questionsAnswereds: IFormUnit[], mets: IMetActivityPatient[]): any;
5
+ }
6
+ declare const _default: ExecFormulaFlowTester;
7
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const BuildFormulaFlowItemTester_1 = __importDefault(require("../item/BuildFormulaFlowItemTester"));
7
+ const ExecFormulaFlowItem_1 = __importDefault(require("../item/ExecFormulaFlowItem"));
8
+ class ExecFormulaFlowTester {
9
+ execute(formula, questionsAnswereds, mets) {
10
+ const formulaReplaceds = BuildFormulaFlowItemTester_1.default.execute(questionsAnswereds, formula, mets);
11
+ return ExecFormulaFlowItem_1.default.exec(undefined, formulaReplaceds);
12
+ }
13
+ }
14
+ exports.default = new ExecFormulaFlowTester();
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const ExecFormulaFlow_1 = __importDefault(require("./ExecFormulaFlow"));
6
+ const ExecFormulaFlowTester_1 = __importDefault(require("./ExecFormulaFlowTester"));
7
7
  const GetAnswerRelationedsFlowItemTester_1 = __importDefault(require("./item/GetAnswerRelationedsFlowItemTester"));
8
8
  class ProcessAnswerFlow {
9
9
  execute(questionAnswered, bankAnswer, attendanceMetActivities) {
@@ -12,7 +12,7 @@ class ProcessAnswerFlow {
12
12
  const allQuestionsAnswereds = bankAnswer?.filter((q) => q.answer !== "" && q.answer !== undefined);
13
13
  answerRelacioneds.forEach((relationed) => {
14
14
  //executa fórmula para answer
15
- const answerCalculated = ExecFormulaFlow_1.default.execute(relationed.formulaToAnswer, allQuestionsAnswereds, attendanceMetActivities);
15
+ const answerCalculated = ExecFormulaFlowTester_1.default.execute(relationed.formulaToAnswer, allQuestionsAnswereds, attendanceMetActivities);
16
16
  if (relationed.answer !== answerCalculated) {
17
17
  relationed.answer = answerCalculated;
18
18
  allQuestionsAnswereds.push(relationed);
@@ -20,15 +20,15 @@ class ProcessAnswerFlow {
20
20
  }
21
21
  // formulaToReferenceValue
22
22
  if (relationed?.formulaToReferenceValue) {
23
- relationed.referenceValue = ExecFormulaFlow_1.default.execute(relationed.formulaToReferenceValue, allQuestionsAnswereds, attendanceMetActivities);
23
+ relationed.referenceValue = ExecFormulaFlowTester_1.default.execute(relationed.formulaToReferenceValue, allQuestionsAnswereds, attendanceMetActivities);
24
24
  }
25
25
  // formulaToClassificationLabel: string;
26
26
  if (relationed?.formulaToClassificationLabel) {
27
- relationed.classificationLabel = ExecFormulaFlow_1.default.execute(relationed.formulaToClassificationLabel, allQuestionsAnswereds, attendanceMetActivities);
27
+ relationed.classificationLabel = ExecFormulaFlowTester_1.default.execute(relationed.formulaToClassificationLabel, allQuestionsAnswereds, attendanceMetActivities);
28
28
  }
29
29
  // formulaToClassificationColor: string;
30
30
  if (relationed?.formulaToClassificationColor) {
31
- relationed.classificationColor = ExecFormulaFlow_1.default.execute(relationed.formulaToClassificationColor, allQuestionsAnswereds, attendanceMetActivities);
31
+ relationed.classificationColor = ExecFormulaFlowTester_1.default.execute(relationed.formulaToClassificationColor, allQuestionsAnswereds, attendanceMetActivities);
32
32
  }
33
33
  // check options is enables
34
34
  if (relationed?.options?.length) {
@@ -36,7 +36,7 @@ class ProcessAnswerFlow {
36
36
  .filter((option) => option.formulaToEnable?.length > 0)
37
37
  ?.forEach((option) => {
38
38
  option.enable =
39
- ExecFormulaFlow_1.default.execute(option.formulaToEnable, allQuestionsAnswereds, attendanceMetActivities) ?? false;
39
+ ExecFormulaFlowTester_1.default.execute(option.formulaToEnable, allQuestionsAnswereds, attendanceMetActivities) ?? false;
40
40
  });
41
41
  }
42
42
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c2-clinical",
3
- "version": "1.0.97",
3
+ "version": "1.0.98",
4
4
  "description": "Biblioteca Typescript para API NodeJS",
5
5
  "repository": "https://github.com/cabralsilva/c2-clinical.git",
6
6
  "author": "Daniel Cabral <cabralconsultoriaemsoftware@gmail.com>",