Skip to content

Commit

Permalink
Merge pull request #20 from VPatient/lifeActivityForms
Browse files Browse the repository at this point in the history
life activity forms have been started to be developed
  • Loading branch information
Tzesh committed Mar 29, 2023
2 parents ce39e92 + 397e407 commit 806df90
Show file tree
Hide file tree
Showing 8 changed files with 283 additions and 17 deletions.
1 change: 1 addition & 0 deletions .vscode/settings.json
@@ -1,2 +1,3 @@
{
"compile-hero.disable-compile-files-on-did-save-code": true
}
41 changes: 24 additions & 17 deletions index.js
Expand Up @@ -16,24 +16,31 @@ const scenarioRoute = require('./routes/scenario/scenario');
const patientRoute = require('./routes/patient/patient');
const gradeRoute = require('./routes/grade/grade');
const userRoute = require('./routes/user/user');
const lifeActivityDiagnosisRoute = require('./routes/lifeActivity/diagnosis');
const lifeActivitySectionRoute = require('./routes/lifeActivity/section');
const lifeActivityRecordRoute = require('./routes/lifeActivity/record');

// connect mongodb server
mongoose.connect(
process.env.MONGO_DB_URL
)
.then(() => console.log("DB connection established"))
.catch((err) => console.log(err));
process.env.MONGO_DB_URL
)
.then(() => console.log("DB connection established"))
.catch((err) => console.log(err));

// middlewares
app.use(express.json()); // express
app.use(bodyParser.json());// using body-parser for the requests
app.use(bodyParser.json()); // using body-parser for the requests
app.use(cors()); // for CORS-POLICY

app.use("/auth", authRoute); // use auth endpoints if url starts with /auth
app.use("/scenario", scenarioRoute); // use scenario endpoints if url starts with /scenario
app.use("/patient", patientRoute); // use patient endpoints if url starts with /patient
app.use("/grade", gradeRoute); // use grade endpoints if url starts with /grade
app.use("/user", userRoute); // use user endpoints if url starts with /user
app.use("/lifeActivityDiagnosis", lifeActivityDiagnosisRoute); // use user endpoints if url starts with /lifeActivityDiagnosis
app.use("/lifeActivitySection", lifeActivitySectionRoute); // use user endpoints if url starts with /lifeActivitySection
app.use("/lifeActivityRecord", lifeActivityRecordRoute); // use user endpoints if url starts with /lifeActivityRecord


// get certificates
const privLocation = process.env.PRIVATE_LOCATION;
Expand All @@ -43,29 +50,29 @@ const ca = fs.readFileSync(`${privLocation}/chain.pem`, 'utf8');

// create credentials
const credentials = {
key: privateKey,
cert: certificate,
ca: ca
key: privateKey,
cert: certificate,
ca: ca
};

// uncaught exception handler to catch uncaught exceptions
// prevents the app from crashing
process.on('uncaughtException', (err, origin) => {
console.log(
`Caught exception: ${err}\n` +
`Exception origin: ${origin}`,
);
console.log(
`Caught exception: ${err}\n` +
`Exception origin: ${origin}`,
);
});


// starting both http & https servers
const httpServer = http.createServer(app);
const httpsServer = https.createServer(credentials, app);

httpServer.listen(80, () => {
console.log('HTTP Server running on port 80');
httpServer.listen(81, () => {
console.log('HTTP Server running on port 80');
});

httpsServer.listen(443, () => {
console.log('HTTPS Server running on port 443');
});
httpsServer.listen(444, () => {
console.log('HTTPS Server running on port 443');
});
14 changes: 14 additions & 0 deletions models/LifeActivityDiagnosisModel.js
@@ -0,0 +1,14 @@
const mongoose = require('mongoose');

const LifeActivityDiagnosisSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
sequence: {
type: Number,
required: true
}
}, { timestamps: true });

module.exports = mongoose.model('LifeActivityDiagnosisModel', LifeActivityDiagnosisSchema)
12 changes: 12 additions & 0 deletions models/LifeActivityRecordModel.js
@@ -0,0 +1,12 @@
const mongoose = require('mongoose');

const LifeActivityRecordSchema = new mongoose.Schema({
section: { type: mongoose.Types.ObjectId, ref: 'LifeActivitySectionModel' },
patient: { type: mongoose.Types.ObjectId, ref: 'PatientModel' },
value: {
type: String,
required: true
},
}, { timestamps: true });

module.exports = mongoose.model('LifeActivityRecordModel', LifeActivityRecordSchema)
11 changes: 11 additions & 0 deletions models/LifeActivitySectionModel.js
@@ -0,0 +1,11 @@
const mongoose = require('mongoose');

const LifeActivitySectionSchema = new mongoose.Schema({
section: { type: mongoose.Types.ObjectId, ref: 'LifeActivityDiagnosisModel' },
value: {
type: Array,
required: true
},
}, { timestamps: true });

module.exports = mongoose.model('LifeActivitySectionModel', LifeActivitySectionSchema)
59 changes: 59 additions & 0 deletions routes/lifeActivity/diagnosis.js
@@ -0,0 +1,59 @@
const router = require("express").Router();
const { auth, verifyTokenAndAdmin } = require('../auth/verifyToken');
const LifeActivityDiagnosisModel = require('../../models/LifeActivityDiagnosisModel');

// get all life activity diagnosis
router.get("/get", auth, verifyTokenAndAdmin, async(req, res) => {
LifeActivityDiagnosisModel
.find()
.then(diagnosis => res.json(diagnosis))
.catch(err => res.json({ message: err }));
});

// get specific life activity diagnosis by objectId
router.get("/getByObjectId", auth, verifyTokenAndAdmin, async(req, res) => {
let diagnosisId = req.body.diagnosisId;

LifeActivityDiagnosisModel
.find({ _id: diagnosisId })
.then(diagnosis => res.json(diagnosis))
.catch(err => res.json({ message: err }));
});

// create life activity diagnosis
router.post("/create", auth, verifyTokenAndAdmin, async(req, res) => {
const diagnosisModel = new LifeActivityDiagnosisModel({
name: req.body.name,
sequence: req.body.sequence
});

diagnosisModel
.save()
.then(diagnosis => res.json(diagnosis))
.catch(err => res.json({ message: err }));
});

// update life activity diagnosis
router.put("/update", auth, verifyTokenAndAdmin, async(req, res) => {
let diagnosisId = req.body.diagnosisId;

LifeActivityDiagnosisModel
.updateOne({ _id: diagnosisId }, {
name: req.body.name,
sequence: req.body.sequence
})
.then(diagnosis => res.json(diagnosis))
.catch(err => res.json({ message: err }));
});

// delete life activity diagnosis
router.delete("/delete", auth, verifyTokenAndAdmin, async(req, res) => {
let diagnosisId = req.body.diagnosisId;

LifeActivityDiagnosisModel
.deleteOne({ _id: diagnosisId })
.then(diagnosis => res.json(diagnosis))
.catch(err => res.json({ message: err }));
});

module.exports = router;
80 changes: 80 additions & 0 deletions routes/lifeActivity/record.js
@@ -0,0 +1,80 @@
const router = require("express").Router();
const { auth, verifyTokenAndAdmin } = require('../auth/verifyToken');
const LifeActivityRecordModel = require('../../models/LifeActivityRecordModel');

// get all life activity record
router.get("/get", auth, verifyTokenAndAdmin, async(req, res) => {
LifeActivityRecordModel
.find()
.then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

// get specific life activity record by object id
router.get("/getById", auth, verifyTokenAndAdmin, async(req, res) => {
let recordId = req.body.recordId;
LifeActivityRecordModel
.find({ _id: recordId })
.then(record => res.json(record))
.catch(err => res.json({ message: err }));

});

// get specific life activity record by section id
router.get("/getBySectionId", auth, verifyTokenAndAdmin, async(req, res) => {
let sectionId = req.body.sectionId;
LifeActivityRecordModel
.find({ section: sectionId })
.then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

// get specific life activity record by patient id
router.get("/getByPatientId", auth, verifyTokenAndAdmin, async(req, res) => {
let patientId = req.body.patientId;
LifeActivityRecordModel
.find({ patient: patientId })
.then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

// create life activity record
router.post("/create", auth, verifyTokenAndAdmin, async(req, res) => {
const recordModel = new LifeActivityRecordModel({
section: req.body.section,
patient: req.body.patient,
value: req.body.value,
});

recordModel
.save()
.then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

// update life activity record
router.put("/update", auth, verifyTokenAndAdmin, async(req, res) => {
let recordId = req.body.recordId;

LifeActivityRecordModel
.updateOne({
_id: recordId
}, {
section: req.body.section,
patient: req.body.patient,
value: req.body.value
}).then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

// delete life activity record
router.delete("/delete", auth, verifyTokenAndAdmin, async(req, res) => {
let recordId = req.body.recordId;

LifeActivityRecordModel
.deleteOne({ _id: recordId })
.then(record => res.json(record))
.catch(err => res.json({ message: err }));
});

module.exports = router;
82 changes: 82 additions & 0 deletions routes/lifeActivity/section.js
@@ -0,0 +1,82 @@
const router = require("express").Router();
const { auth, verifyTokenAndAdmin } = require('../auth/verifyToken');
const LifeActivitySectionModel = require('../../models/LifeActivitySectionModel');
const LifeActivityDiagnosisModel = require('../../models/LifeActivityDiagnosisModel');


// get all life activity section
router.get("/get", auth, verifyTokenAndAdmin, async(req, res) => {
LifeActivitySectionModel
.find()
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

// get specific life activity section
router.get("/getById", auth, verifyTokenAndAdmin, async(req, res) => {
let sectionDiagnosisId = req.body.sectionDiagnosisId;

LifeActivitySectionModel
.find({ _id: sectionDiagnosisId })
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

// get specific life activity section by section id
router.get("/getBySectionId", auth, verifyTokenAndAdmin, async(req, res) => {
let sectionId = req.body.sectionId;
LifeActivitySectionModel
.find({ section: sectionId })
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

// create life activity section
router.post("/create", auth, verifyTokenAndAdmin, async(req, res) => {
// get section name
let name = req.body.sectionName;

// get life activity diagnosis by name
let diagnosis = LifeActivityDiagnosisModel.findOne({ name: name });

// check if section exists
if (!diagnosis) {
return res.status(404).json({ message: "Diagnosis does not exist" });
}

// create section model
const sectionModel = new LifeActivitySectionModel({
section: diagnosis._id,
value: req.body.value,
});

sectionModel
.save()
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

// update life activity section
router.put("/update", auth, verifyTokenAndAdmin, async(req, res) => {
let sectionDiagnosisId = req.body.sectionDiagnosisId;

LifeActivitySectionModel
.updateOne({ _id: sectionDiagnosisId }, {
section: req.body.section,
value: req.body.value
})
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

// delete life activity section
router.delete("/delete", auth, verifyTokenAndAdmin, async(req, res) => {
let sectionDiagnosisId = req.body.sectionDiagnosisId;

LifeActivitySectionModel
.deleteOne({ _id: sectionDiagnosisId })
.then(section => res.json(section))
.catch(err => res.json({ message: err }));
});

module.exports = router;

0 comments on commit 806df90

Please sign in to comment.