2012 user's conference indivo updates

23
Intelligent Health Lab Indivo X: Progress and Updates Daniel Haas Harvard Medical School Children’s Hospital Informatics Program 18 June, 2012

Upload: childrens-hospital-informatics-program

Post on 26-Jun-2015

855 views

Category:

Technology


2 download

DESCRIPTION

2012 Indivo X User's Conference talk on new features included in the version 2.0 release.By Daniel Haas, Indivo X Lead Architect

TRANSCRIPT

Page 1: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Indivo X: Progress and Updates

Daniel Haas

Harvard Medical SchoolChildren’s Hospital Informatics Program

18 June, 2012

Page 2: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Project Updates• v2.0 Release!

http://github.com/chb/indivo_[ui_]server• Public Sandbox:

http://sandbox.indivohealth.orgWith sample dataDon’t put real data in there!

• Hackathon Tomorrow!Bring your laptopsBring your ideas, and tell us now (@indivohealth)

Page 3: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Development Updates• Pluggable Data models (and schemas and transforms)• Data model validation• Sample Data (and demo mode)• New app loading mechanism (using SMART

manifests)• New Python Client (with documentation)• More support for JSON/RDF• New authentication modes for apps• SMART integration

Page 4: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Document Processing

Page 5: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Validation

Page 6: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Validation

• Still accepting data as XML• Still validating with XSDs• …But now they are drag-and-drop!• Tutorials tomorrow at the hackathon

Page 7: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Transforms

Page 8: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Transforms

• Goal of a Transform: get from an XML document to an Indivo Fact

• Formats: XSLT or Python code• …And now they are drag-and-drop!• Tutorials tomorrow at the hackathon

Page 9: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Data Models

Page 10: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Data Models

• SDML: a simple descriptive language for data-models.• Define your data models: SDML or Django• …And add them (you guessed it: drag-and-drop!)• Tutorials tomorrow at the hackathon

Page 11: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Retrieval

Page 12: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Retrieval

• Automatic reporting call which retrieves your data as SDML: no work required.

• Python plug-ins: Custom serialization (what does your model look like in JSON? XML?) Custom reports (want an API call to return multiple data models at once?)

• Drag-and-drop serializers (not custom reports, sorry)• Tutorials tomorrow at the hackathon

Page 13: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pluggable Document Processing: Summary

• With zero python code, you can:Add a new recognized schema to IndivoMap that schema to current data models, orAdd your own new data modelMake API calls to add and retrieve data

corresponding to your new types.

Page 14: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Sample Data• It’s hard to write an app against nothing!• We’ve added two mechanisms for loading

sample data into records:Demo ModeFixed sample accounts

Page 15: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Sample Data: Format• “Sample data” is a directory of data profiles.• A “data profile” is a directory of documents

containing data (for one patient).• A “data profile” should have a

Demographics.xml file.• A “patient” is identified by the name of the

directory• And that’s it!

Page 16: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Demo Mode• When you create a new account, it is auto-populated

with a configurable set of records containing sample data

DEMO_MODE = TrueDEMO_PROFILES = { ‘John Doe’: ‘patient_239852’, ‘Jane Doe’: ‘patient_665677’, ‘Timmy Doe’: ‘patient_736230’, }

Page 17: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Fixed Sample Accounts• When resetting Indivo, you can configure accounts to be auto-created with

specific sets of records and data

<account email='[email protected]'> <full_name>Test User</full_name> <username>test</username> <password>test</password> <records> <record label='Test Testerson' data_profile='patient_967332'/> <record label='Mary Testerson' data_profile='patient_897185'/> <record label='Fred Testerson' data_profile='patient_880378'/> </records></account>

Page 18: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Updating and Adding Registered Apps

• Previously: had to reset the whole Indivo database

• Now: drag-and-drop into the filesystem• We think this is nicer.

Page 19: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Registering an App: Manifest• SMART manifest: simple JSON describing an

app.• Extra Indivo options (has_ui, oauth_callback)

also supported.

Page 20: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Registering an App: OAuth Credentials

• ‘Offline exchange’ of app tokens• Again, simple JSON

Page 21: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Registering an App: The Filesystem• Directory Structure:

1 dir per app 2 files per dir

Page 22: 2012 User's Conference Indivo Updates

Intelligent Health Lab

Pulling it all together• Write (or update) a manifest file• Write (or update) a credentials file• Drop the new files into a directory for your

app, and place it under indivo_server/registered_apps/user/

• Run one command: $ python manage.py sync_apps• And you’re done!

Page 23: 2012 User's Conference Indivo Updates

Intelligent Health Lab

SMART Integration

• I’ll be back to discuss soon!