View
855
Download
2
Tags:
Embed Size (px)
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
Citation preview
Intelligent Health Lab
Indivo X: Progress and Updates
Daniel Haas
Harvard Medical SchoolChildren’s Hospital Informatics Program
18 June, 2012
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)
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
Intelligent Health Lab
Pluggable Document Processing
Intelligent Health Lab
Pluggable Validation
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
Intelligent Health Lab
Pluggable Transforms
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
Intelligent Health Lab
Pluggable Data Models
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
Intelligent Health Lab
Pluggable Retrieval
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
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.
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
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!
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’, }
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>
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.
Intelligent Health Lab
Registering an App: Manifest• SMART manifest: simple JSON describing an
app.• Extra Indivo options (has_ui, oauth_callback)
also supported.
Intelligent Health Lab
Registering an App: OAuth Credentials
• ‘Offline exchange’ of app tokens• Again, simple JSON
Intelligent Health Lab
Registering an App: The Filesystem• Directory Structure:
1 dir per app 2 files per dir
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!
Intelligent Health Lab
SMART Integration
• I’ll be back to discuss soon!