c2-clinical 1.0.11 → 1.0.13

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.
@@ -9,8 +9,6 @@ class GroupFormUnitsFlow {
9
9
  execute(formUnits, answers) {
10
10
  const questionsEnableds = GetEnablesFormUnitsFlowItem_1.default.execute(formUnits, answers);
11
11
  const questionsWithOrganizedChilds = BuildTreeFlowItem_1.default.execute(questionsEnableds);
12
- // const questionsGrouped = GroupListFlowItem.exec(questionsWithOrganizedChilds, "reference.group._id", "reference.group")
13
- // const groups = BuildGroupsDTOFlow.exec(questionsGrouped, questionsAnswereds);
14
12
  return questionsWithOrganizedChilds;
15
13
  }
16
14
  }
@@ -11,6 +11,7 @@ class BuildTreeFlowItem {
11
11
  children: []
12
12
  };
13
13
  });
14
+ rootFormUnit.sort((a, b) => a.line - b.line);
14
15
  //extrai os elements que tem algum parent
15
16
  const children = questions.filter((q) => !!q.parent);
16
17
  rootFormUnit?.forEach((q) => {
@@ -19,7 +20,7 @@ class BuildTreeFlowItem {
19
20
  return rootFormUnit;
20
21
  }
21
22
  iterate(parent, children) {
22
- parent.children = children.filter((child) => child.parent.toString() === parent._id.toString());
23
+ parent.children = children.filter((child) => child.parent._id.toString() === parent._id.toString());
23
24
  parent.children.sort((a, b) => a.line - b.line);
24
25
  if (parent.children.length > 0) {
25
26
  parent.children.forEach((parentPossible) => {
@@ -0,0 +1,7 @@
1
+ import { IAnswer } from "../../models/IAnswer";
2
+ import { IMetActivityPatient } from "../../models/met-activity/IMetActivityPatient";
3
+ declare class ExecFormulaFlow {
4
+ execute(formula: string, questionsAnswereds: IAnswer[], mets: IMetActivityPatient[]): any;
5
+ }
6
+ declare const _default: ExecFormulaFlow;
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 BuildFormulaFlowItem_1 = __importDefault(require("../item/BuildFormulaFlowItem"));
7
+ const ExecFormulaFlowItem_1 = __importDefault(require("../item/ExecFormulaFlowItem"));
8
+ class ExecFormulaFlow {
9
+ execute(formula, questionsAnswereds, mets) {
10
+ const formulaReplaceds = BuildFormulaFlowItem_1.default.execute(questionsAnswereds, formula, mets);
11
+ return ExecFormulaFlowItem_1.default.exec(undefined, formulaReplaceds);
12
+ }
13
+ }
14
+ exports.default = new ExecFormulaFlow();
@@ -0,0 +1,10 @@
1
+ import { IAnswer } from "../../models/IAnswer";
2
+ import { IMetActivityPatient } from "../../models/met-activity/IMetActivityPatient";
3
+ declare class OnAnswerQuestionsFlow {
4
+ execute(answered: IAnswer, answersBank: IAnswer[], metActivitiesPatient: IMetActivityPatient[]): {
5
+ bank: IAnswer[];
6
+ autoAnswereds: IAnswer[];
7
+ };
8
+ }
9
+ declare const _default: OnAnswerQuestionsFlow;
10
+ export default _default;
@@ -0,0 +1,18 @@
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 ProcessAnswerFlow_1 = __importDefault(require("./ProcessAnswerFlow"));
7
+ class OnAnswerQuestionsFlow {
8
+ execute(answered, answersBank, metActivitiesPatient) {
9
+ const questionAnswered = answersBank.find((q) => q.reference._id.toString() === answered._id.toString());
10
+ if (!questionAnswered) {
11
+ throw new Error("invalid question");
12
+ }
13
+ questionAnswered.answer = answered.answer;
14
+ const questionsRelacionedsAnswereds = ProcessAnswerFlow_1.default.execute(questionAnswered, answersBank, metActivitiesPatient);
15
+ return { bank: answersBank, autoAnswereds: questionsRelacionedsAnswereds };
16
+ }
17
+ }
18
+ exports.default = new OnAnswerQuestionsFlow();
@@ -0,0 +1,7 @@
1
+ import { IAnswer } from "../../models/IAnswer";
2
+ import { IMetActivityPatient } from "../../models/met-activity/IMetActivityPatient";
3
+ declare class ProcessAnswerFlow {
4
+ execute(questionAnswered: IAnswer, bankAnswer: IAnswer[], attendanceMetActivities: IMetActivityPatient[]): IAnswer[];
5
+ }
6
+ declare const _default: ProcessAnswerFlow;
7
+ export default _default;
@@ -0,0 +1,32 @@
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 ExecFormulaFlow_1 = __importDefault(require("./ExecFormulaFlow"));
7
+ const GetAnswerRelationedsFlowItem_1 = __importDefault(require("./item/GetAnswerRelationedsFlowItem"));
8
+ class ProcessAnswerFlow {
9
+ execute(questionAnswered, bankAnswer, attendanceMetActivities) {
10
+ const answerRelacioneds = GetAnswerRelationedsFlowItem_1.default.execute(questionAnswered, bankAnswer);
11
+ const autoAnswereds = [];
12
+ const allQuestionsAnswereds = bankAnswer?.filter((q) => q.answer !== "" && q.answer !== undefined);
13
+ answerRelacioneds.forEach((relationed) => {
14
+ //executa fórmula para answer
15
+ const answerCalculated = ExecFormulaFlow_1.default.execute(relationed.reference.formulaToAnswer, allQuestionsAnswereds, attendanceMetActivities);
16
+ if (relationed.answer !== answerCalculated) {
17
+ relationed.answer = answerCalculated;
18
+ allQuestionsAnswereds.push(relationed);
19
+ autoAnswereds.push(relationed);
20
+ }
21
+ });
22
+ let questionsRelacionedsAnsweredsRet = [...autoAnswereds];
23
+ for (const questionRelacionedAnswered of autoAnswereds) {
24
+ questionsRelacionedsAnsweredsRet = [
25
+ ...questionsRelacionedsAnsweredsRet,
26
+ ...this.execute(questionRelacionedAnswered, bankAnswer, attendanceMetActivities)
27
+ ];
28
+ }
29
+ return questionsRelacionedsAnsweredsRet;
30
+ }
31
+ }
32
+ exports.default = new ProcessAnswerFlow();
@@ -0,0 +1,6 @@
1
+ import { IAnswer } from "../../../models/IAnswer";
2
+ declare class GetAnswerRelationedsFlowItem {
3
+ execute(questionAnswered: IAnswer, bankAnswer: IAnswer[]): IAnswer[];
4
+ }
5
+ declare const _default: GetAnswerRelationedsFlowItem;
6
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class GetAnswerRelationedsFlowItem {
4
+ execute(questionAnswered, bankAnswer) {
5
+ const regex = new RegExp(`\\$\{${questionAnswered.reference.code}\}`, "i");
6
+ const questionsRelationeds = bankAnswer?.filter((q) => {
7
+ return (regex.test(q.reference.formulaToAnswer) ||
8
+ regex.test(q.reference.formulaToEnable) ||
9
+ q.reference.validations?.some((v) => regex.test(v.formulaToMessage)));
10
+ });
11
+ return questionsRelationeds;
12
+ }
13
+ }
14
+ exports.default = new GetAnswerRelationedsFlowItem();
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import GroupFormUnitsFlow from "./flow/group/GroupFormUnitsFlow";
2
+ import ExecFormulaFlow from "./flow/on-answer/ExecFormulaFlow";
3
+ import OnAnswerQuestionsFlow from "./flow/on-answer/OnAnswerQuestionsFlow";
2
4
  export * from "./models/File";
3
5
  export * from "./models/IAccount";
4
6
  export * from "./models/IDefault";
@@ -6,4 +8,4 @@ export * from "./models/form/Form";
6
8
  export * from "./models/form/FormUnit";
7
9
  export * from "./models/qpc/QPC";
8
10
  export * from "./models/qpc/QPCAnswer";
9
- export { GroupFormUnitsFlow };
11
+ export { GroupFormUnitsFlow, OnAnswerQuestionsFlow, ExecFormulaFlow };
package/dist/index.js CHANGED
@@ -17,9 +17,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.GroupFormUnitsFlow = void 0;
20
+ exports.ExecFormulaFlow = exports.OnAnswerQuestionsFlow = exports.GroupFormUnitsFlow = void 0;
21
21
  const GroupFormUnitsFlow_1 = __importDefault(require("./flow/group/GroupFormUnitsFlow"));
22
22
  exports.GroupFormUnitsFlow = GroupFormUnitsFlow_1.default;
23
+ const ExecFormulaFlow_1 = __importDefault(require("./flow/on-answer/ExecFormulaFlow"));
24
+ exports.ExecFormulaFlow = ExecFormulaFlow_1.default;
25
+ const OnAnswerQuestionsFlow_1 = __importDefault(require("./flow/on-answer/OnAnswerQuestionsFlow"));
26
+ exports.OnAnswerQuestionsFlow = OnAnswerQuestionsFlow_1.default;
23
27
  __exportStar(require("./models/File"), exports);
24
28
  __exportStar(require("./models/IAccount"), exports);
25
29
  __exportStar(require("./models/IDefault"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c2-clinical",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
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>",