c2-clinical 1.0.93 → 1.0.95
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.
- package/dist/flow/on-answer/OnAnswerQuestionsFlowTester.d.ts +10 -0
- package/dist/flow/on-answer/OnAnswerQuestionsFlowTester.js +18 -0
- package/dist/flow/on-answer/ProcessAnswerFlowTester.d.ts +7 -0
- package/dist/flow/on-answer/ProcessAnswerFlowTester.js +44 -0
- package/dist/flow/on-answer/item/GetAnswerRelationedsFlowItem.js +5 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.js +4 -2
- package/dist/models/Answer.d.ts +3 -0
- package/dist/models/form/FormUnit.d.ts +9 -4
- package/dist/models/form/FormUnit.js +2 -1
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { IAnswer } from "../../models/Answer";
|
|
2
|
+
import { IMetActivityPatient } from "../../models/met-activity/MetActivityPatient";
|
|
3
|
+
declare class OnAnswerQuestionsFlowTester {
|
|
4
|
+
execute(answered: IAnswer, answersBank: IAnswer[], metActivitiesPatient?: IMetActivityPatient[]): {
|
|
5
|
+
bank: IAnswer[];
|
|
6
|
+
autoAnswereds: IAnswer[];
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
declare const _default: OnAnswerQuestionsFlowTester;
|
|
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 ProcessAnswerFlowTester_1 = __importDefault(require("./ProcessAnswerFlowTester"));
|
|
7
|
+
class OnAnswerQuestionsFlowTester {
|
|
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 = ProcessAnswerFlowTester_1.default.execute(questionAnswered, answersBank, metActivitiesPatient);
|
|
15
|
+
return { bank: answersBank, autoAnswereds: questionsRelacionedsAnswereds };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = new OnAnswerQuestionsFlowTester();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { IAnswer } from "../../models/Answer";
|
|
2
|
+
import { IMetActivityPatient } from "../../models/met-activity/MetActivityPatient";
|
|
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,44 @@
|
|
|
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
|
+
// formulaToReferenceValue
|
|
22
|
+
if (relationed.reference?.formulaToReferenceValue) {
|
|
23
|
+
relationed.referenceValue = ExecFormulaFlow_1.default.execute(relationed.reference.formulaToReferenceValue, allQuestionsAnswereds, attendanceMetActivities);
|
|
24
|
+
}
|
|
25
|
+
// formulaToClassificationLabel: string;
|
|
26
|
+
if (relationed.reference?.formulaToClassificationLabel) {
|
|
27
|
+
relationed.classificationLabel = ExecFormulaFlow_1.default.execute(relationed.reference.formulaToClassificationLabel, allQuestionsAnswereds, attendanceMetActivities);
|
|
28
|
+
}
|
|
29
|
+
// formulaToClassificationColor: string;
|
|
30
|
+
if (relationed.reference?.formulaToClassificationColor) {
|
|
31
|
+
relationed.classificationColor = ExecFormulaFlow_1.default.execute(relationed.reference.formulaToClassificationColor, allQuestionsAnswereds, attendanceMetActivities);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
let questionsRelacionedsAnsweredsRet = [...autoAnswereds];
|
|
35
|
+
for (const questionRelacionedAnswered of autoAnswereds) {
|
|
36
|
+
questionsRelacionedsAnsweredsRet = [
|
|
37
|
+
...questionsRelacionedsAnsweredsRet,
|
|
38
|
+
...this.execute(questionRelacionedAnswered, bankAnswer, attendanceMetActivities)
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
return questionsRelacionedsAnsweredsRet;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.default = new ProcessAnswerFlow();
|
|
@@ -5,8 +5,12 @@ class GetAnswerRelationedsFlowItem {
|
|
|
5
5
|
const regex = new RegExp(`\\$\{${questionAnswered.reference.code}\}`, "i");
|
|
6
6
|
const questionsRelationeds = bankAnswer?.filter((q) => {
|
|
7
7
|
return (regex.test(q.reference.formulaToAnswer) ||
|
|
8
|
+
regex.test(q.reference.formulaToReferenceValue) ||
|
|
9
|
+
regex.test(q.reference.formulaToClassificationLabel) ||
|
|
10
|
+
regex.test(q.reference.formulaToClassificationColor) ||
|
|
8
11
|
regex.test(q.reference.formulaToEnable) ||
|
|
9
|
-
q.reference.validations?.some((v) => regex.test(v.formulaToMessage))
|
|
12
|
+
q.reference.validations?.some((v) => regex.test(v.formulaToMessage)) ||
|
|
13
|
+
q.reference.options?.some((v) => regex.test(v.formulaToEnable)));
|
|
10
14
|
});
|
|
11
15
|
return questionsRelationeds;
|
|
12
16
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,10 +2,11 @@ import { IAccount } from "c2-account";
|
|
|
2
2
|
import GroupFormUnitsFlow from "./flow/group/GroupFormUnitsFlow";
|
|
3
3
|
import ExecFormulaFlow from "./flow/on-answer/ExecFormulaFlow";
|
|
4
4
|
import OnAnswerQuestionsFlow from "./flow/on-answer/OnAnswerQuestionsFlow";
|
|
5
|
+
import OnAnswerQuestionsFlowTester from "./flow/on-answer/OnAnswerQuestionsFlowTester";
|
|
5
6
|
export * from "./models/enum";
|
|
6
|
-
export * from "./models/Answer";
|
|
7
7
|
export * from "./models/anamnese/Anamnese";
|
|
8
8
|
export * from "./models/anamnese/AnamneseAnswer";
|
|
9
|
+
export * from "./models/Answer";
|
|
9
10
|
export * from "./models/anthropometry/Anthropometry";
|
|
10
11
|
export * from "./models/anthropometry/AnthropometryAnswer";
|
|
11
12
|
export * from "./models/Default";
|
|
@@ -23,4 +24,4 @@ export * from "./models/qa/QAProgramming";
|
|
|
23
24
|
export * from "./models/qpc/QPC";
|
|
24
25
|
export * from "./models/qpc/QPCAnswer";
|
|
25
26
|
export * from "./models/Recurrence";
|
|
26
|
-
export { ExecFormulaFlow, GroupFormUnitsFlow, IAccount, OnAnswerQuestionsFlow };
|
|
27
|
+
export { ExecFormulaFlow, GroupFormUnitsFlow, IAccount, OnAnswerQuestionsFlow, OnAnswerQuestionsFlowTester };
|
package/dist/index.js
CHANGED
|
@@ -17,17 +17,19 @@ 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.OnAnswerQuestionsFlow = exports.GroupFormUnitsFlow = exports.ExecFormulaFlow = void 0;
|
|
20
|
+
exports.OnAnswerQuestionsFlowTester = exports.OnAnswerQuestionsFlow = exports.GroupFormUnitsFlow = exports.ExecFormulaFlow = void 0;
|
|
21
21
|
const GroupFormUnitsFlow_1 = __importDefault(require("./flow/group/GroupFormUnitsFlow"));
|
|
22
22
|
exports.GroupFormUnitsFlow = GroupFormUnitsFlow_1.default;
|
|
23
23
|
const ExecFormulaFlow_1 = __importDefault(require("./flow/on-answer/ExecFormulaFlow"));
|
|
24
24
|
exports.ExecFormulaFlow = ExecFormulaFlow_1.default;
|
|
25
25
|
const OnAnswerQuestionsFlow_1 = __importDefault(require("./flow/on-answer/OnAnswerQuestionsFlow"));
|
|
26
26
|
exports.OnAnswerQuestionsFlow = OnAnswerQuestionsFlow_1.default;
|
|
27
|
+
const OnAnswerQuestionsFlowTester_1 = __importDefault(require("./flow/on-answer/OnAnswerQuestionsFlowTester"));
|
|
28
|
+
exports.OnAnswerQuestionsFlowTester = OnAnswerQuestionsFlowTester_1.default;
|
|
27
29
|
__exportStar(require("./models/enum"), exports);
|
|
28
|
-
__exportStar(require("./models/Answer"), exports);
|
|
29
30
|
__exportStar(require("./models/anamnese/Anamnese"), exports);
|
|
30
31
|
__exportStar(require("./models/anamnese/AnamneseAnswer"), exports);
|
|
32
|
+
__exportStar(require("./models/Answer"), exports);
|
|
31
33
|
__exportStar(require("./models/anthropometry/Anthropometry"), exports);
|
|
32
34
|
__exportStar(require("./models/anthropometry/AnthropometryAnswer"), exports);
|
|
33
35
|
__exportStar(require("./models/Default"), exports);
|
package/dist/models/Answer.d.ts
CHANGED
|
@@ -57,7 +57,8 @@ export interface IFormUnit extends IDefault {
|
|
|
57
57
|
options: IQuestionOption[];
|
|
58
58
|
formulaToAnswer: string;
|
|
59
59
|
formulaToReferenceValue: string;
|
|
60
|
-
|
|
60
|
+
formulaToClassificationLabel: string;
|
|
61
|
+
formulaToClassificationColor: string;
|
|
61
62
|
formulaToEnable: string;
|
|
62
63
|
validations: IValidationQuestion[];
|
|
63
64
|
active: boolean;
|
|
@@ -84,6 +85,7 @@ export interface IFormUnit extends IDefault {
|
|
|
84
85
|
export interface IQuestionOption {
|
|
85
86
|
sequence: number;
|
|
86
87
|
formulaToEnable: string;
|
|
88
|
+
enable: boolean;
|
|
87
89
|
code: string;
|
|
88
90
|
description: string;
|
|
89
91
|
defaultSelection: boolean;
|
|
@@ -289,7 +291,8 @@ export declare const FormUnitSchema: Schema<any, import("mongoose").Model<any, a
|
|
|
289
291
|
measurementUnit?: string | null | undefined;
|
|
290
292
|
formulaToAnswer?: string | null | undefined;
|
|
291
293
|
formulaToReferenceValue?: string | null | undefined;
|
|
292
|
-
|
|
294
|
+
formulaToClassificationLabel?: string | null | undefined;
|
|
295
|
+
formulaToClassificationColor?: string | null | undefined;
|
|
293
296
|
codeEnableFreeText?: string | null | undefined;
|
|
294
297
|
labelFreeText?: string | null | undefined;
|
|
295
298
|
graphicData?: any;
|
|
@@ -405,7 +408,8 @@ export declare const FormUnitSchema: Schema<any, import("mongoose").Model<any, a
|
|
|
405
408
|
measurementUnit?: string | null | undefined;
|
|
406
409
|
formulaToAnswer?: string | null | undefined;
|
|
407
410
|
formulaToReferenceValue?: string | null | undefined;
|
|
408
|
-
|
|
411
|
+
formulaToClassificationLabel?: string | null | undefined;
|
|
412
|
+
formulaToClassificationColor?: string | null | undefined;
|
|
409
413
|
codeEnableFreeText?: string | null | undefined;
|
|
410
414
|
labelFreeText?: string | null | undefined;
|
|
411
415
|
graphicData?: any;
|
|
@@ -521,7 +525,8 @@ export declare const FormUnitSchema: Schema<any, import("mongoose").Model<any, a
|
|
|
521
525
|
measurementUnit?: string | null | undefined;
|
|
522
526
|
formulaToAnswer?: string | null | undefined;
|
|
523
527
|
formulaToReferenceValue?: string | null | undefined;
|
|
524
|
-
|
|
528
|
+
formulaToClassificationLabel?: string | null | undefined;
|
|
529
|
+
formulaToClassificationColor?: string | null | undefined;
|
|
525
530
|
codeEnableFreeText?: string | null | undefined;
|
|
526
531
|
labelFreeText?: string | null | undefined;
|
|
527
532
|
graphicData?: any;
|
|
@@ -55,7 +55,8 @@ exports.FormUnitSchema = new mongoose_1.Schema({
|
|
|
55
55
|
options: { type: [exports.QuestionOptionSchema] },
|
|
56
56
|
formulaToAnswer: { type: String },
|
|
57
57
|
formulaToReferenceValue: { type: String },
|
|
58
|
-
|
|
58
|
+
formulaToClassificationLabel: { type: String },
|
|
59
|
+
formulaToClassificationColor: { type: String },
|
|
59
60
|
formulaToEnable: { type: String, default: "true" },
|
|
60
61
|
validations: { type: [exports.ValidationSchema] },
|
|
61
62
|
active: { type: Boolean, required: true, default: true }, //perguntas que nao serão consideradas ao realizar qualquer operacao
|
package/package.json
CHANGED