diff --git a/.gitignore b/.gitignore index 57a123473780458b523e29b006d60602a8e201f0..d464d83fb2a4e3d75adefc48d5743617fde71506 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules/ config.js logs/ *.swp +nohup.out +package-lock.json diff --git a/routes/agent.js b/routes/agent.js index 54fb809b1d5f687af0ead2076435b150e448be16..c3a8f3eda9104661c7a541282d643cb03fc0c11c 100644 --- a/routes/agent.js +++ b/routes/agent.js @@ -61,292 +61,10 @@ var routes = { }; -var config = { - global: { - fromBody: false, - param: "type" - }, - filters: {}, - collect_types: { - "course_treatment": { - "courses":{ - required: true, - isArray: true, - filters: [], - inner:{ - "CourseSer" : { - required: true, - isArray: false, - filters: [] - }, - "PatientSer" : { - required: true, - isArray: false, - filters: [] - }, - "CourseId" : { - required: true, - isArray: false, - filters: [] - }, - "StartDateTime" : { - required: true, - isArray: false, - filters: [] - }, - "ClinicalStatus" : { - required: true, - isArray: false, - filters: [] - }, - "CompletedByUserName" : { - required: true, - isArray: false, - filters: [] - }, - "CompletedDateTime" : { - required: true, - isArray: false, - filters: [] - }, - "Comment" : { - required: true, - isArray: false, - filters: [] - }, - "ClinicalProtocolDir" : { - required: true, - isArray: false, - filters: [] - }, - "HstryUserName" : { - required: true, - isArray: false, - filters: [] - }, - "HstryTimeStamp" : { - required: true, - isArray: false, - filters: [] - }, - "HstryDateTime" : { - required: true, - isArray: false, - filters: [] - }, - "TransactionId" : { - required: true, - isArray: false, - filters: [] - }, - "HstryTaskName" : { - required: true, - isArray: false, - filters: [] - }, - "sessions":{ - required: false, - isArray: true, - filters: [], - inner:{ - "sessionSer": { - required: true, - isArray: false, - filters: [] - }, - "SessionNum": { - required: true, - isArray: false, - filters: [] - }, - "Comment": { - required: true, - isArray: false, - filters: [] - }, - "HstryUserName": { - required: true, - isArray: false, - filters: [] - }, - "HstryTimeStamp": { - required: true, - isArray: false, - filters: [] - }, - "HstryDateTime": { - required: true, - isArray: false, - filters: [] - }, - "HstryTaskName": { - required: true, - isArray: false, - filters: [] - }, - "CourseSer": { - required: true, - isArray: false, - filters: [] - }, - "SessionProcedurePart":{//FIXME: Is it required? - required: true, - isArray: false, - filters: [], - inner:{ - "RadiationSer" : { - required: true, - isArray: false, - filters: [] - }, - "ImageType" : { - required: true, - isArray: false, - filters: [] - }, - "SequenceNumber" : { - required: true, - isArray: false, - filters: [] - }, - "SessionProcedurePartSer" : { - required: true, - isArray: false, - filters: [] - }, - "AcqAdjustment" : { - required: true, - isArray: false, - filters: [] - }, - "AutoSave" : { - required: true, - isArray: false, - filters: [] - }, - "DoseAccumulation" : { - required: true, - isArray: false, - filters: [] - }, - "Continuous" : { - required: true, - isArray: false, - filters: [] - }, - "BeamOff" : { - required: true, - isArray: false, - filters: [] - }, - "DeviationImage" : { - required: true, - isArray: false, - filters: [] - }, - "DevEnergy" : { - required: true, - isArray: false, - filters: [] - }, - "DevDoseRate" : { - required: true, - isArray: false, - filters: [] - }, - "DevGeometry" : { - required: true, - isArray: false, - filters: [] - }, - "JawState" : { - required: true, - isArray: false, - filters: [] - }, - "DevCollX1" : { - required: true, - isArray: false, - filters: [] - }, - "DevCollX2" : { - required: true, - isArray: false, - filters: [] - }, - "DevCollY1" : { - required: true, - isArray: false, - filters: [] - }, - "DevCollY2" : { - required: true, - isArray: false, - filters: [] - }, - "MUSubtraction" : { - required: true, - isArray: false, - filters: [] - }, - "AcquisitionMode" : { - required: true, - isArray: false, - filters: [] - }, - "HstryUserName" : { - required: true, - isArray: false, - filters: [] - }, - "HstryTimeStamp" : { - required: true, - isArray: false, - filters: [] - }, - "HstryDateTime" : { - required: true, - isArray: false, - filters: [] - }, - "HstryTaskName" : { - required: true, - isArray: false, - filters: [] - }, - "SessionProcedureSer" : { - required: true, - isArray: false, - filters: [] - }, - "ImageModality" : { - required: true, - isArray: false, - filters: [] - }, - "RTPlanSer" : { - required: true, - isArray: false, - filters: [] - } - } - } - } - } - } - } - } - - } -}; - - - module.exports = function(agentVersion) { return { - config_validation : config, collect: function(req, res) { var route = routes[req.params.type]; if(!route) { diff --git a/server.js b/server.js index f235db64f70f2198d0ab64b775ab5aa3c7e44fdf..124971819570c6a88401221f8b4d714ab59b7694 100644 --- a/server.js +++ b/server.js @@ -152,6 +152,8 @@ else { var ping = require('./routes/ping.js'); var agent = require('./routes/agent.js')(config.agentVersion); + //Data validation + var ct_validator = require('./validation/course_treatment.js'); // // Setup express app @@ -185,7 +187,7 @@ else { app.get('/api/ping', ping.get); - var collect_mw = collect(agent.config_validation); + var collect_mw = collect(ct_validator()); app.post('/api/agent/collect/:type(course_treatment)', collect_mw, function(req, res) {return res.status(200).json({value:"ok"});}); app.get('/api/agent/version', agent.version); diff --git a/validation/course_treatment.js b/validation/course_treatment.js new file mode 100644 index 0000000000000000000000000000000000000000..2ede82da8c12677c068fe63156cc145888a6e526 --- /dev/null +++ b/validation/course_treatment.js @@ -0,0 +1,309 @@ +/* + * Copyright (C) 2012-2017 Centro de Computacao Cientifica e Software Livre + * Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR + * + * This file is part of simmc + * + * simmc is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + * USA. + */ + + +var config = { + global: { + fromBody: false, + param: "type" + }, + filters: {}, + collect_types: { + "course_treatment": { + "courses":{ + required: true, + isArray: true, + filters: [], + inner:{ + "CourseSer" : { + required: true, + isArray: false, + filters: [] + }, + "PatientSer" : { + required: true, + isArray: false, + filters: [] + }, + "CourseId" : { + required: true, + isArray: false, + filters: [] + }, + "StartDateTime" : { + required: true, + isArray: false, + filters: [] + }, + "ClinicalStatus" : { + required: true, + isArray: false, + filters: [] + }, + "CompletedByUserName" : { + required: true, + isArray: false, + filters: [] + }, + "CompletedDateTime" : { + required: true, + isArray: false, + filters: [] + }, + "Comment" : { + required: true, + isArray: false, + filters: [] + }, + "ClinicalProtocolDir" : { + required: true, + isArray: false, + filters: [] + }, + "HstryUserName" : { + required: true, + isArray: false, + filters: [] + }, + "HstryTimeStamp" : { + required: true, + isArray: false, + filters: [] + }, + "HstryDateTime" : { + required: true, + isArray: false, + filters: [] + }, + "TransactionId" : { + required: true, + isArray: false, + filters: [] + }, + "HstryTaskName" : { + required: true, + isArray: false, + filters: [] + }, + "sessions":{ + required: false, + isArray: true, + filters: [], + inner:{ + "sessionSer": { + required: true, + isArray: false, + filters: [] + }, + "SessionNum": { + required: true, + isArray: false, + filters: [] + }, + "Comment": { + required: true, + isArray: false, + filters: [] + }, + "HstryUserName": { + required: true, + isArray: false, + filters: [] + }, + "HstryTimeStamp": { + required: true, + isArray: false, + filters: [] + }, + "HstryDateTime": { + required: true, + isArray: false, + filters: [] + }, + "HstryTaskName": { + required: true, + isArray: false, + filters: [] + }, + "CourseSer": { + required: true, + isArray: false, + filters: [] + }, + "SessionProcedurePart":{//FIXME: Is it required? + required: true, + isArray: false, + filters: [], + inner:{ + "RadiationSer" : { + required: true, + isArray: false, + filters: [] + }, + "ImageType" : { + required: true, + isArray: false, + filters: [] + }, + "SequenceNumber" : { + required: true, + isArray: false, + filters: [] + }, + "SessionProcedurePartSer" : { + required: true, + isArray: false, + filters: [] + }, + "AcqAdjustment" : { + required: true, + isArray: false, + filters: [] + }, + "AutoSave" : { + required: true, + isArray: false, + filters: [] + }, + "DoseAccumulation" : { + required: true, + isArray: false, + filters: [] + }, + "Continuous" : { + required: true, + isArray: false, + filters: [] + }, + "BeamOff" : { + required: true, + isArray: false, + filters: [] + }, + "DeviationImage" : { + required: true, + isArray: false, + filters: [] + }, + "DevEnergy" : { + required: true, + isArray: false, + filters: [] + }, + "DevDoseRate" : { + required: true, + isArray: false, + filters: [] + }, + "DevGeometry" : { + required: true, + isArray: false, + filters: [] + }, + "JawState" : { + required: true, + isArray: false, + filters: [] + }, + "DevCollX1" : { + required: true, + isArray: false, + filters: [] + }, + "DevCollX2" : { + required: true, + isArray: false, + filters: [] + }, + "DevCollY1" : { + required: true, + isArray: false, + filters: [] + }, + "DevCollY2" : { + required: true, + isArray: false, + filters: [] + }, + "MUSubtraction" : { + required: true, + isArray: false, + filters: [] + }, + "AcquisitionMode" : { + required: true, + isArray: false, + filters: [] + }, + "HstryUserName" : { + required: true, + isArray: false, + filters: [] + }, + "HstryTimeStamp" : { + required: true, + isArray: false, + filters: [] + }, + "HstryDateTime" : { + required: true, + isArray: false, + filters: [] + }, + "HstryTaskName" : { + required: true, + isArray: false, + filters: [] + }, + "SessionProcedureSer" : { + required: true, + isArray: false, + filters: [] + }, + "ImageModality" : { + required: true, + isArray: false, + filters: [] + }, + "RTPlanSer" : { + required: true, + isArray: false, + filters: [] + } + } + } + } + } + } + } + } + + } +}; + + + + +module.exports = function() { + + return config; +};