This wiki has undergone a migration to Confluence found Here
RIMBAA: MGRID
Revision as of 12:09, 22 July 2011 by Rene spronk (talk | contribs)
- See Database with native ISO datatypes
- From the minutes of the 2011 Feb Dutch RIMBAA meeting:
- Presentation: MGRID - a foundation for RIM based persistence (Henk Enting, zie http://www.hl7.org/library/committees/java/20110216_RIMBAA_MGRID.pdf voor slides)
- MGRID ISO R2 DT DB with CRUD WebServices - MGRID is a database that has the ISO R2 datatypes implemented. Based on Postgres. The idea is to show a demonstration on a CRUD WebService on top of that database with the Care Statement model in there.
- See also: Research and Measure on RIMBAA, en MGRID blog post.
- Henk Enting, MGRID, introduces the current state of the application.
- Michael vdZ: DCM is a conceptual model, can be mapped to v3 RIM-based Logical Model. Rene: analysis model, described using end-user terms.
- Henk: purpose of MGRID is to create a storage layer for eHealth applications. Distributed relational database; split database into multiple constuent parts, small databases are very performant. Query distributes over lots of little databases. Approach also used for data warehouses. Example: 1000 small databases, each for 1/1000th of all known patients. Depends on what one wishes to achieve with the data warehouse. Structure / distribution method can be changed without the SQL statements being impacted.
- Snapshot support for uploading to other databases for (long duration) warehouse queries. Master/slave type relationship.
- Powerful primitives at lower level
- Standard SQL, but with native support for HL7 v3 data types. Main reason is performance.
- Uses ‘table inheritance’, feature to ease mapping.
- Table per (physical RIM) class OR-mapping. Class contains all attributes + parent attributes. RIM 219 turns into 63 tables.
- ‘Inherits’ (postgress specific) allows for definition of a table in terms of another table, plus additional features.
- Database schema to support different information models concurrently
- Update affects multiple RIM tables; update should be transactional, whole message/docuiment should be retrievable.
- Supports different HL7 versions (of models, of RIM).
- If enhancements to RIM are needed (e.g. local classCodes), make changes using HL7 tools to the vocab MIF. Regenerate from there.
- Henk shows SQL statements on the database. Inserts, selects.
- Create DDL from RIM MIF; also generates CRUD operations on RIM classes; to enable those that don’t want to deal with SQL. Functions (stored procedures).
- To wrap things up: DCM (expressed as a v3 clinical statement template). DCM = “Propensity to Adverse Reaction”. Created (manually) sql insert statements that are the equivalent for an XML instance.
- Conclusions:
- HL7 data types and table inheritance
- Code generation of DDL and CRUD services
- Mapping to unified schema non trivial