Git Product home page Git Product logo

biolab-unige / xtens-app Goto Github PK

View Code? Open in Web Editor NEW
6.0 6.0 1.0 3.07 MB

A digital repository for biomedical data based on a flexible JSON data model ( The project has been moved to a new address https://github.com/xtens-suite/xtens-app.git )

Home Page: http://www.xtens.org

License: BSD 3-Clause "New" or "Revised" License

JavaScript 79.47% CSS 0.73% API Blueprint 4.19% HTML 14.17% PLpgSQL 1.44%
biomedical-informatics data-management heterogeneous-data medical-information metadata

xtens-app's People

Contributors

gicaz avatar valetedo avatar zigur avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Forkers

cfitz

xtens-app's Issues

Data Errors Detection

To keep track of data creation and changes:

There are three complementary approaches to be considered

  1. Email report to a supervisor / a number of admins
  2. Historical tables on db (administrator level, return to a previous state (operator, date, old data, changes))
  3. Double control (supervisor, data list with check boxes: "confirmed"/"quality assured" true - false) for Quality Assurance (QA)

User Interface redesign

There are various reasons for a rewrite of the front-end.

  • Backbone and stickit are not really that popular anymore
  • Many fragmented templates used here and there
  • No clear way to test properly the view

At the moment possible alternatives are:

  1. React + Redux
  2. Vue + Vuex (?)
  3. Angular

@type and Advanced Search through different projects

Set up an identifier into data types model to associate data types between different projects ( i.e. type fluid in projects A is the same in project B) allowing users to perform advanced searches getting results from multiple projects.

Implement data pooling support

This require some thought.
At the moment only data branching is supported, i.e. a data instance can have multiple children but only one single father.
replacing the one-to-many with a many-to-many relationship would do the trick but this should be supported by Data, Sample, and Subject as well.

Full Text Search (FTS) support

Add full text search feature like Google.
Add a check box to every attribute ( researchable true false) or entire datatype researchable?

Modifing data, date change

When i modify or create any type of data, date keeps changing.
Example:
Date inserted: 1975-05-11
Date displayed by postgres: 1975-05-11
Date returned by node's pg: 1975-05-10T23:00:00.000Z

Wrong data shown when editing patients

@gicaz: can you verify if this is the case? (maybe in your installation)?

This is the relevant line to debug, I think:

return moment(value).lang("it").format('L');

A date as 17 January 2003 should be saved as:

  1. 2003-01-17 in the database
  2. 2003-01-16T23:00:00.000Z as a JavaScript formatted date string in zulu time/UTC/GMT
  3. 17/01/2003 when displayed according to the Italian Time Zone (using moment)

Projects management

Handle projects through Groups ( many to many association).
Use the existing datatype privileges system to filter a group to a specific set of datatypes (related to a specific project).
Operators view only the filtered datatype structure.

Feature privileges

Handle different level of permission ( no privilege, view, details,download, edit):

  • no privilege: No datatype in List selection (queryBuilder and Create)
    -Overview: No datatype in List selection (Create). Searchable in queryBuilder, but no details, download and edit functions
  • Details: No datatype in List selection (Create). Searchable in queryBuilder with details, but no download and edit method
  • Download: No datatype in List selection (Create). Searchable in queryBuilder with details and download, but no edit method
  • Edit: datatype in List selection (Create) and Searchable in queryBuilder with details, download and edit methods

Datatype Graph infinite loop with loop association

should correct recursive query in xtens-pg module, to retrive right number links without loop.
node_modules/xtens-pg/lib/other/recursiveQueries.js

Also D3 package not support loop node, have to cancel loop nodes in links array.
assets/js/modules/DataType.js

Data Owner

Associate data with operator / project / group.
Map who inserts the data.
Map who downloads / searches the data

Edit data: not handled loop values

When you edit data with loop values, edit form does not show the values and when you press the Save button, loop values are lost.

assets/js/modules/Data.js

Info helpers for metadata fields

Server side: add "info" metadata field to metadata schema. Support validation with JOI
Client Side: build a tooltip (?) component to attach to metadata field input

Wrong dependencies in xtens-waterline

@gicaz Apparently xtens waterline depends still on the old versions of bluebird and loadash. This needs to be fixed
Could you investigate on this?

npm WARN saveError Problems were encountered
npm WARN saveError Please correct and try again.
npm WARN saveError invalid: have [email protected] (expected: git+https://github.com/biolab-unige/xtens-waterline.git) /Users/massi/Projects/unige/xtens-app/node_modules/xtens-waterline
npm WARN saveError extraneous: [email protected] /Users/massi/Projects/unige/xtens-app/node_modules/xtens-waterline
npm WARN saveError extraneous: [email protected] /Users/massi/Projects/unige/xtens-app/node_modules/xtens-waterline/node_modules/bluebird
npm WARN saveError extraneous: [email protected] /Users/massi/Projects/unige/xtens-app/node_modules/xtens-waterline/node_modules/lodash

Delete Subject

PUT http://10.116.13.60:1337/subject/1 500 (Internal Server Error)send @ jquery.js:9664
jQuery.extend.ajax @ jquery.js:9215
Backbone.ajax @ backbone.js:1428
Backbone.sync @ backbone.js:1411
Backbone.sync @ utils.js:39_.extend.sync @ backbone.js:436_.extend.save @ backbone.js:647
Subject.Views.Edit.Data.Views.Edit.fullExtend.saveData @ Subject.js:135
bound @ lodash.js:729
jQuery.event.dispatch @ jquery.js:4670
elemData.handle @ jquery.js:4338
utils.js:18 undefined

TERMINAL
error: Sent 500 ("Server Error") response
error: ValidationError: child "personalInfo" fails because ["createdAt" is not allowed, "updatedAt" is not allowed]

Leaf Search - Perform Queries getting all Data Types' Metadata involved

  • XTENS PG:
    conditional search leafSearch - if true set RIGHT OUTER JOIN and remove DISTINCT
    Remove all NULL Rows produced by RIGHT OUTER JOIN?

  • Server side:
    preprocessQueryParams - handle array of data types in content of QueryArgs
    filter getMetadata variable through privileges (if overview set getMetadata to false)

  • Client side:
    getMetadata radio button on every NestedCondition
    set queryArgs Object with the new info: getMetadata, leafSearch, label DataType
    handle metadata visualization thorugh datatable ( groups of columns, filter, etc)

Password Update on Users

I would suggest to implement this a HTTP PATCH method

PATCH /operator/password (or PATCH /password?)

{
"oldPasswoed" ..,
"newPassword": ...,
"confirmedNewPassword: ...
}

Verify oldPassword and test equality between newPassword and confirmedNewPassword.

Files download error

Uncaught TypeError: this.template is not a function DataFile.js :49

DataFile.Views.List.Backbone.View.extend.render @ DataFile.js:49
data.fetch.success @ XtensTable.js:339
options.success @ backbone.js:594fire @ jquery.js:3148
self.fireWith @ jquery.js:3260done @ jquery.js:9314
callback @ jquery.js:9718

Editing datatype not delete parent

In /datatypes delete a datatype parents of a datatype, not work.
No error in console.
The datatype 3 had 1 and 8 as parent. I deleted 8 from edit form and then i save but datatype 8 remains. This is what returned on console:
KnexStrategy.updateDataType - child-parent association found: 3-1
{ parents: [ 1 ],
name: 'Report RM',
schema:
{ body:
[ [Object],
[Object],
[Object],
[Object],
[Object],
[Object],
[Object] ],
header:
{ name: 'Report RM',
model: 'Data',
version: '0.0.1',
ontology: '',
fileUpload: false,
description: 'Analysis RM' } },
model: 'Data',
id: 3,
createdAt: Tue Sep 15 2015 11:45:11 GMT+0200 (CEST),
updatedAt: Thu Jan 28 2016 17:36:17 GMT+0100 (CET) }
{ id: 1,
isWheel: true,
isManager: true,
canAccessPersonalData: true,
canAccessSensitiveData: true }

Data Types don't show up in web application

The Data types are saved correctly and do also show up in the PostgreSQL database, but they don't show up in the web application and it is not possible to select them and create a graph.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.