Skip to content

Commit

Permalink
Merge pull request #21 from VPatient/lifeActivityFormsUpdate
Browse files Browse the repository at this point in the history
structure to provide dynamic life activity forms
  • Loading branch information
Tzesh committed Mar 29, 2023
2 parents 806df90 + a84f2dd commit 1c5ff9d
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 4 deletions.
8 changes: 4 additions & 4 deletions routes/grade/grade.js
Expand Up @@ -7,7 +7,7 @@ const GradeModel = require('../../models/GradeModel');
const UserModel = require('../../models/UserModel');

// create grade model
router.post("/create", auth, verifyPatient, async (req, res) => {
router.post("/create", auth, verifyPatient, async(req, res) => {
// validation
const { error } = gradeValidation(req.body);
if (error) return res.status(400)
Expand Down Expand Up @@ -51,7 +51,7 @@ router.post("/create", auth, verifyPatient, async (req, res) => {
});

// list grades of patient by id
router.get("/list", auth, verifyPatient, async (req, res) => {
router.get("/list", auth, verifyPatient, async(req, res) => {
// get patient
let patient = req.patient;

Expand All @@ -66,7 +66,7 @@ router.get("/list", auth, verifyPatient, async (req, res) => {
});

// get request of patient by id
router.get("/get", auth, verifyPatient, async (req, res) => {
router.get("/get", auth, verifyPatient, async(req, res) => {
// query validation
const { error } = gradeQueryValidation(req.query);

Expand All @@ -93,7 +93,7 @@ router.get("/get", auth, verifyPatient, async (req, res) => {
});

// get request of user
router.get("/user", auth, async (req, res) => {
router.get("/user", auth, async(req, res) => {

// get grades of user
const gradeModel = await GradeModel.find({
Expand Down
58 changes: 58 additions & 0 deletions routes/patient/lifeactivity/lifeactivity.js
@@ -0,0 +1,58 @@
const router = require("express").Router();
const { auth } = require("../../auth/verifyToken");
const { verifyPatient } = require('../verifyPatient');
const LifeActivityFormModel = require('../../../models/LifeActivityFormModel');
const LifeActivityQuestionModel = require('../../../models/LifeActivityQuestionModel');
const LifeActivityRecordModel = require('../../../models/LifeActivityRecordModel');
const FormRoute = require("./Form/form");
const QuestionRoute = require("./Question/question");
const RecordRoute = require("./Record/record");

// get all forms with questions and records for patient
router.get("", auth, verifyPatient, async(req, res) => {
// get patient
let patient = req.patient;

// get records with given patient id
const records = await LifeActivityRecordModel.find({ patient: patient._id });

console.log(records);

// get questions with records
const questions = await LifeActivityQuestionModel.find({ _id: { $in: records.map(record => record.question) } });

console.log(questions);

// get forms with questions
const forms = await LifeActivityFormModel.find({ _id: { $in: questions.map(question => question.form) } });

console.log(forms);

const formattedData = forms.map(form => {
return {
"form_title": form.name,
"form_sequence": form.sequence,
"data": questions.filter(question => question.form.toString() === form._id.toString()).map(question => {
return {
"question_id": question._id,
"fields": question.fields,
"correct_answer": records.find(record => record.question.toString() === question._id.toString()).correct_answer,
"title": question.title,
"description": "",
"type": question.type,
"remark": question.remark,
"is_mandatory": question.is_mandatory,
"show_answer": question.show_answer
}
})
}
});

res.json(formattedData);
});

router.use("/form", FormRoute); // /patient/lifeActivity/diagnosisForm
router.use("/record", RecordRoute); // /patient/lifeActivity/diagnosisRecord
router.use("/question", QuestionRoute); // /patient/lifeActivity/diagnosis

module.exports = router;

0 comments on commit 1c5ff9d

Please sign in to comment.