Abstract
This page mainly covers the design of the new data models of the Dashboard under Mongoose. This new model should provide a more extendable data storage for the OpenMRS ID.
The goals for this data model is in-line with the Dashboard, that is to provide a one-site service.
For now they're only the most basic one that could cover the old data.
Will Be Updated
User
I'll simply just write some specifications here.
Code Block | ||
---|---|---|
| ||
/// user Schema username: <String> // not empty, unique, only contain number and characters, currently at least has a length of 2 firstName: <String> // no requirement lastName: <String> // no requirement displayName: <String> // no requirement, primaryEmail: <String> // not empty, unique, valid email address, one of emailList displayEmail: <String> // valid email address emailList: < [String] > // array of valid email address, not empty, all members are unique password: <String> // not empty, a hashed String groups: < [String] > // no duplicates in the Array, items in this array must be in Groups collection. could only be only editableedited by admin user. locked: <Boolean> // not empty extra: <Mixed> // any JSON form data /// additionally all email should be in lowercase /// and username as well /// special flag used to sync with LDAP inLDAP: <Boolean> // if false, then store it in LDAP, if true then sync the modifications skipLDAP: <Boolean> // used to skip the sync procedure createdAt: <Date> // It is only used to expire(delete) this user, if it is not verified for a long time. |
Groups
This model describes user groups.
Code Block |
---|
groupName: <String> // not empty, unique description: <String> // no requirement member: < [UserRef] > // no duplicate items /// UserRef: objId: <ObjectId> // user document id username: <String> // username |