Common Person Registry
The Common Person Registry is a new conception in Sahana Eden - it provides a framework and a comfortable user interface to store and manipulate personal data which are common to all modules (the Ontology below specifies which data this could be).
The Person Registry is:
- the central registry for common personal data
- the central search engine for personal data records
- main entry point and central hub for personal data related actions
- People may appear in different contexts at the same time: displaced person <-> volunteer <-> missing person
- For optimal assistance there is often a need to search and track individuals across multiple or all contexts
- Data may also need to be shared across different contexts (e.g., missing person and dead body)
- Central storage and manipulation of personal data at least improves data integrity, and can enhance security
Framework functions (available in all person-related modules, even PR):
- Create/Read/Update/Delete for common personal data records
- Manipulation of groups/roles
- Global search for personal records
Central functions (PR only):
- Access to specialized module functions directly from the search results
- Global statistics and assessment
This then feeds these specialized modules:
- Disaster Victim Identification: http://wiki.sahanafoundation.org/doku.php?id=dev:dvimodule
- Disaster Victim Registry: http://wiki.sahanafoundation.org/doku.php?id=doc:dvr:english
- Missing Person Registry: http://wiki.sahanafoundation.org/doku.php?id=doc:mpr:english
- Nice UI example here: https://www.refunite.org/search/query
- Volunteer Management: http://www.cs.trincoll.edu/hfoss/wiki/User_Guide_for_the_VM_Module
- Victim Tracking/Tracing (real-time tracking/tracing of individuals and groups)
Generic CRUD of personal data records is a matter of course, specialities below:
During rescue/recovery operations mostly tags are used to identify affected persons. Different types of tags are in use: barcode tags are common, but even RFID tags could be used (which contain more details on the person).
The Person Registry should support (at least) barcode labels:
- read labels from tags or documents (realized by the client system)
- retrieve/display the corresponding record from the database
- display links to process this record in other person-data-related modules
- display/print out barcode labels for existing records (e.g. to forms, documents, stickers)
- generate/manage new unique labels (and print them out), even pre-printed stock tags
Should be able to support:
Q: How to handle the entity relationships with the extra data needed?
- Polymorphic Associations: http://www.fleegix.org/articles/2008-01-03-rails-polymorphic-associations-and-migrations
- Single Many-to-Many Reference Table which includes a 'type' reference for which sub-table it refers to.
- A Many-to-Many table for each 'type'.
- A tagging field within the main PR to show which contexts this Person is used in: Staff, Victim, Missing, etc
- Single-Table Inheritance: http://groups.google.com/group/web2py/browse_thread/thread/d9715e7b751c1e56
- A single table containing all information, with unnecessary information ignored.
Q: Including system users? (BluePrintAuthenticationAccess)
- currently we automatically add new registrations as people as well.