<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3782731056170948518</id><updated>2012-02-22T15:50:51.950-05:00</updated><category term='vistarpc4r'/><category term='VistA'/><category term='iPhone'/><category term='iOS'/><category term='iPad'/><category term='VA'/><title type='text'>BlenderHouse</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jason Wilburn</name><uri>http://www.blogger.com/profile/01633895765073298953</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-2669393678615097105</id><published>2012-02-17T16:18:00.002-05:00</published><updated>2012-02-17T16:19:25.304-05:00</updated><title type='text'>iCPRS v 1.0.1</title><content type='html'>We released a new version of iCPRS with some minor feature additions and fixes. &amp;nbsp;It should be available for upgrades and downloads today(2/17) or tomorrow.&lt;br /&gt;A few items:&lt;br /&gt;1. &amp;nbsp;Long list for the all patients selection screen is now available. &amp;nbsp;You can select more at the bottom of the list.&lt;br /&gt;2. &amp;nbsp;Default login information for the OpenVistA Demo server. &amp;nbsp;If this server is the current one, iCPRS automatically fills in the standard user login, PU1234 and the password.&lt;br /&gt;3. &amp;nbsp;Some users had complain it was too easy to hit the back button to logout, so we added a warning&lt;br /&gt;4. &amp;nbsp;We are trying out iAd to help recoup the cost of the Apple Developer program. &amp;nbsp;Just on the login screen.&lt;br /&gt;5. &amp;nbsp;Other minor fixes and tweaks.&lt;br /&gt;&lt;br /&gt;Next up:&lt;br /&gt;We are anticipating the following features next:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SSH support&lt;/li&gt;&lt;li&gt;Add/Edit Vitals&lt;/li&gt;&lt;li&gt;Problem list management&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-2669393678615097105?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/2669393678615097105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=2669393678615097105' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/2669393678615097105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/2669393678615097105'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2012/02/icprs-v-101.html' title='iCPRS v 1.0.1'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-2269926165807750196</id><published>2012-02-03T15:26:00.001-05:00</published><updated>2012-02-03T16:19:23.646-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='iOS'/><title type='text'>iCPRS: VistA for iPhone/iPad</title><content type='html'>So I ported &lt;a href="http://blenderhouse.blogspot.com/2011/06/releasing-vistarpc4r-gem.html" target="_blank"&gt;vistarpc4r&lt;/a&gt; to iOS for our product development needs and I realized...why not create an iPhone/iPad version of CPRS, the Windows GUI front end to the VA VistA electronic health record system. &lt;br /&gt;So we did. &amp;nbsp;Apple today approved iCPRS for listing in the App Store, so we are letting people know.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;span style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-iCfe5Yu1suc/TyxBRwEmUJI/AAAAAAAAADs/GKNTUcXhWtA/s1600/icon_114.png" /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;a href="http://itunes.apple.com/us/app/icprs/id498891800?mt=8" target="_blank"&gt;iCPRS&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;br /&gt;&lt;a href="http://itunes.apple.com/us/app/icprs/id498891800?mt=8" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;" target="_blank"&gt;&lt;img border="0" height="66" src="http://4.bp.blogspot.com/-SDe5BHAvxUI/Tyw3Go1dxiI/AAAAAAAAACk/beh5rwzPAUk/s200/availappstore.png" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Version 1.0.0 is a very basic version. &amp;nbsp;It mimics the functionality of the cover sheet tab in the CPRS GUI in a read-only fashion.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It's free.&lt;/li&gt;&lt;li&gt;Does not require any additional software to be installed.&lt;/li&gt;&lt;li&gt;By default, it will login into Medsphere's OpenVista demo server with the demo access and verify code(PU1234 and PU1234!!).&lt;/li&gt;&lt;li&gt;Additional servers can be added by clicking on the switch button.&lt;/li&gt;&lt;li&gt;It has been tested with OpenVista and WorldVista. &amp;nbsp;It should work with any version of VistA that is based on the VA FOIA and has RPC Broker enabled.&lt;/li&gt;&lt;li&gt;Uses the same RPC calls as CPRS.&lt;/li&gt;&lt;li&gt;Advice button on the patient information screen is for users of our clinical decision support product, CompleteNote. &amp;nbsp;This is completely optional. &amp;nbsp;We also intend it to be used for any one interested in the Infobutton HL7 standard.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Known issues:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Long lists of patients. &amp;nbsp;If selecting all patients, right now the app only shows the first 40 or so. &amp;nbsp;Will be addressed in next release&lt;/li&gt;&lt;li&gt;Visual cue for network fetching. &amp;nbsp;Right now, there is no indication that the application is fetching data from the VistA server. &amp;nbsp;I'm working on modify the ios vistarpc code to allow for it. &amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Future:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;If people like it, we'll add the rest of the CPRS functionality: the other tabs, ability to create and modify information, etc.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5_uanTL3nUE/Tyw8eOBfN5I/AAAAAAAAAC8/Vw1CvrN3ahA/s1600/iOS+Simulator+Screen+shot+Jan+25%252C+2012+11.49.24+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-5_uanTL3nUE/Tyw8eOBfN5I/AAAAAAAAAC8/Vw1CvrN3ahA/s1600/iOS+Simulator+Screen+shot+Jan+25%252C+2012+11.49.24+AM.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-5_uanTL3nUE/Tyw8eOBfN5I/AAAAAAAAAC8/Vw1CvrN3ahA/s200/iOS+Simulator+Screen+shot+Jan+25%252C+2012+11.49.24+AM.png" width="133" /&gt;&lt;/a&gt;&lt;a href="http://1.bp.blogspot.com/-yn8TSONAhcI/Tyw8Q3NwV8I/AAAAAAAAAC0/YhdAf05ptPo/s1600/iOS+Simulator+Screen+shot+Jan+25%252C+2012+12.00.06+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-yn8TSONAhcI/Tyw8Q3NwV8I/AAAAAAAAAC0/YhdAf05ptPo/s200/iOS+Simulator+Screen+shot+Jan+25%252C+2012+12.00.06+PM.png" width="133" /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-EpZZhTULpdk/Tyw82Qi6R1I/AAAAAAAAADc/aKdEZE6ERDs/s1600/iPhoneSS.png" imageanchor="1" style="clear: right; display: inline !important; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/-EpZZhTULpdk/Tyw82Qi6R1I/AAAAAAAAADc/aKdEZE6ERDs/s200/iPhoneSS.png" width="133" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;Enjoy!&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-EpZZhTULpdk/Tyw82Qi6R1I/AAAAAAAAADc/aKdEZE6ERDs/s1600/iPhoneSS.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-EpZZhTULpdk/Tyw82Qi6R1I/AAAAAAAAADc/aKdEZE6ERDs/s1600/iPhoneSS.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://4.bp.blogspot.com/-EpZZhTULpdk/Tyw82Qi6R1I/AAAAAAAAADc/aKdEZE6ERDs/s1600/iPhoneSS.png" imageanchor="1" style="clear: right; display: inline !important; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-2269926165807750196?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/2269926165807750196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=2269926165807750196' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/2269926165807750196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/2269926165807750196'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2012/02/icprs-vista-for-iphoneipad.html' title='iCPRS: VistA for iPhone/iPad'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-iCfe5Yu1suc/TyxBRwEmUJI/AAAAAAAAADs/GKNTUcXhWtA/s72-c/icon_114.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-6347848285379391969</id><published>2011-12-09T10:41:00.001-05:00</published><updated>2011-12-09T10:49:51.208-05:00</updated><title type='text'>Moving...</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-4Ath3NMDGoo/TuItwGiYzLI/AAAAAAAAAB4/auzGRuZcPXQ/s1600/photo.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/-4Ath3NMDGoo/TuItwGiYzLI/AAAAAAAAAB4/auzGRuZcPXQ/s320/photo.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Well, after a good long run at 5933 Baum Blvd(thanks Mark and Skip), we are moving to our new digs at &lt;b&gt;5530 Penn Ave&lt;/b&gt;. &amp;nbsp;We'll probably have fewer happy hour/creative thinking sessions at BRGR, and more at &lt;a href="http://www.saltpgh.com/" target="_blank"&gt;Salt of the Earth&lt;/a&gt;, and &lt;a href="http://www.verdepgh.com/" target="_blank"&gt;Verde&lt;/a&gt;. &amp;nbsp;And we get WINDOWS!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-6347848285379391969?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/6347848285379391969/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=6347848285379391969' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6347848285379391969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6347848285379391969'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/12/moving.html' title='Moving...'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-4Ath3NMDGoo/TuItwGiYzLI/AAAAAAAAAB4/auzGRuZcPXQ/s72-c/photo.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-6690066052183119126</id><published>2011-10-27T14:41:00.000-04:00</published><updated>2011-10-27T14:41:21.883-04:00</updated><title type='text'>AMIA Conference and Paper</title><content type='html'>So, I went to my first academic conference as an author. &amp;nbsp;The American Medical Informatics Association's Annual Symposium in Washington, DC. &amp;nbsp;I had submitted a one page paper describing the results of our NIH SBIR Phase I study, and they accepted it for the Tuesday poster session. &lt;br /&gt;At the session, I had a pretty good turn out. &amp;nbsp;I had lot of people ask me questions, and got a lot of good feedback. &amp;nbsp;Big thanks to Maggie for creating a very attractive poster! &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-9isHYmGRDV8/Tqmj5_zzGGI/AAAAAAAAAAM/EkXZX7nybPw/s1600/IMG_0720.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="239" src="http://2.bp.blogspot.com/-9isHYmGRDV8/Tqmj5_zzGGI/AAAAAAAAAAM/EkXZX7nybPw/s320/IMG_0720.JPG" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here is the paper, now that it is published -&amp;nbsp;&lt;a abstractlink="yes" alsec="jour" alterm="AMIA Annu Symp Proc." href="http://www.ncbi.nlm.nih.gov/pubmed/21347063#" style="background-color: white; border-bottom-color: initial; border-bottom-style: initial; border-bottom-width: 0px; color: #333333; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;" title="AMIA ... Annual Symposium proceedings / AMIA Symposium. AMIA Symposium."&gt;&lt;span class="highlight"&gt;AMIA Annu Symp Proc&lt;/span&gt;.&lt;/a&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="highlight" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;2011&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;&amp;nbsp;Oct 25 ;&lt;/span&gt;&lt;span class="highlight" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;2011&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;:1710.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, sans-serif; font-size: 11px; line-height: 15px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: transparent;"&gt;&lt;div dir="ltr" id="internal-source-marker_0.39081073366105556" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 14pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Automated creation of clinical progress notes with machine learning&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Michael Cham, CTO, Raymond Benza, MD, Jaime Carbonell, PhD&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: center;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;BlenderHouse, Pittsburgh, PA; Allegheny General Hospital, Pittsburgh, PA; Carnegie Mellon University, Pittsburgh, PA&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 12pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Abstract&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-style: italic; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The goal of this project was to demonstrate that our machine learning approach could mimic individual physician’s diagnostic and care planning abilities by learning from clinical progress notes. &amp;nbsp;Using 500 notes from 3 physicians, we were able to achieve accuracies in excess of 97%. &amp;nbsp;This technology will be embedded in a product that can improve clinical efficiency and patient safety through electronic medical records and clinical decision support systems. &lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Introduction&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Electronic medical records (EMR) systems and clinical decision support (CDS) systems have the potential to address preventable readmissions and medical errors problems in the U.S., but are missing key pieces of functionality or aren’t well integrated enough into the clinical workflow to help. &amp;nbsp;Additionally, EMRs are actually introducing new kinds of medical errors and negatively impact the productivity of clinical staff.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The goal of the study was to prove that the technology at the core of our product, CompleteNote&lt;/span&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 6pt; text-decoration: none; vertical-align: super; white-space: pre-wrap;"&gt;TM&lt;/span&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;, could learn to mimic individual physician’s diagnostic and patient care planning abilities, learned from actual electronic clinical progress notes. Adding this capability to EMR and CDS systems would improve the efficiency and accuracy of documentation and provide customized, patient-centric decision support.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Methods&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We obtained 500 de-identified clinical progress notes from the Heart Failure, Heart Transplant and Pulmonary Hypertension Clinic at Allegheny General Hospital. &amp;nbsp;Three different physicians composed the notes. The notes were in Microsoft Word format, directly from a dictation/transcription service. The notes were then parsed and stored into a MySQL database, breaking down the notes into logical sections, vitals, problem lists, medications lists, lab results, diagnoses, and care plans. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We utilized our proprietary, support vector machine-based, multi-statement prediction approach and generated eight statistical models. &amp;nbsp;There are two models for each of the three physicians, one for predicting patient diagnoses, and the other for predicting care plans. &amp;nbsp;For each physician model, we only used notes that they created. &amp;nbsp;We also created models for the union of all three physicians, which effectively blends the abilities of all the physicians. &amp;nbsp;The union models used all the notes from all physicians. &amp;nbsp;All of the models were restricted to predicting statements that appeared in at least 2% of the notes, in order to produce significant results. &amp;nbsp;We achieved the best results using linear kernels, but did test Polynomial, Sigmoid and RBF kernels.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Results&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;The prediction accuracy results are shown in Figure 1, calculated using a 5-fold cross-validation on linear kernels:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;table style="border-bottom-style: none; border-collapse: collapse; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial;"&gt;&lt;colgroup&gt;&lt;col width="158"&gt;&lt;/col&gt;&lt;col width="79"&gt;&lt;/col&gt;&lt;col width="127"&gt;&lt;/col&gt;&lt;col width="79"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 0px;"&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Prediction model&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Accuracy&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Prediction Model&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Accuracy&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0px;"&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #1 Diagnosis&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.65%&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #1 Plans&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.86%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0px;"&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #2 Diagnosis&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.94%&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #2 Plans&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.88%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0px;"&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #3 Diagnosis&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.51%&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Physician #3 Plans&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.52%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 0px;"&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Consolidated Diagnosis&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.94%&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Consolidated Plans&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom-color: rgb(170, 170, 170); border-bottom-style: dotted; border-bottom-width: 1px; border-left-color: rgb(170, 170, 170); border-left-style: dotted; border-left-width: 1px; border-right-color: rgb(170, 170, 170); border-right-style: dotted; border-right-width: 1px; border-top-color: rgb(170, 170, 170); border-top-style: dotted; border-top-width: 1px; padding-bottom: 0px; padding-left: 7px; padding-right: 7px; padding-top: 0px; vertical-align: top;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;97.95%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Figure 1. &lt;/span&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Prediction Accuracy results&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Conclusion&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"&gt;&lt;span style="background-color: transparent; font-family: 'Times New Roman'; font-size: 10pt; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;We conclude that it is feasible to predict diagnosis and care plan information learned from progress notes using the CompleteNote technology. &lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-6690066052183119126?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/6690066052183119126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=6690066052183119126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6690066052183119126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6690066052183119126'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/10/amia-conference-and-paper.html' title='AMIA Conference and Paper'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-9isHYmGRDV8/Tqmj5_zzGGI/AAAAAAAAAAM/EkXZX7nybPw/s72-c/IMG_0720.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-3451330106619800633</id><published>2011-09-26T23:02:00.001-04:00</published><updated>2011-09-26T23:02:22.982-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='vistarpc4r'/><title type='text'>vistarpc4r Tutorial 3: Lists (part one)</title><content type='html'>So now we have a running system, we can configure some basic elements, and we can add providers and patients. &amp;nbsp;What's next?&lt;br /&gt;Well, VistA has a ton of data already loaded for you, so let's check it out.&lt;br /&gt;&lt;br /&gt;Most things(objects) in VistA have an internal and external representation. &amp;nbsp;Basically this means each object has an internal id and a value. &amp;nbsp;The internal id is generally a positive integer(often referred to as an IEN or IFN or DFN). &amp;nbsp;The value is generally a human readable string.&lt;br /&gt;Lists are returned as an array of string.&lt;br /&gt;Here are the first bunch with Ruby code:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Providers&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORQPT PROVIDERS")&lt;br /&gt;puts array[0] &amp;nbsp;# outputs providerIEN^providername &amp;nbsp;e.g. 42^ USER,PHYSICIAN&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Locations&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;u&gt;Clinics - Outpatient&lt;/u&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORWU CLINCLOC", ["", "1"])&lt;br /&gt;puts array[0] &amp;nbsp;# outputs locationIEN^locationname e.g. 15^CARDIOLOGY&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Wards - Inpatient&lt;/u&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORQPT WARDS")&lt;br /&gt;puts array[0] # outputs locationIEN^locationname e.g. 2^MED/SURG&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Patients&lt;/u&gt;&lt;/b&gt; - There are many ways to get lists of patients. &amp;nbsp;Some examples:&lt;br /&gt;&lt;u&gt;By Ward&lt;/u&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORQPT WARD PATIENTS", [wardIEN])&lt;br /&gt;puts array[0] # outputs patientIEN^patientname &amp;nbsp;e.g. 17^SMITH,BETTY&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;All Patients&lt;/u&gt;&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORWPT LIST ALL", ["", "1"])&lt;/div&gt;&lt;br /&gt;This call returns a preset number of patients out of the list. &amp;nbsp;You need to use this call in a loop where you call the RPC additional times using the last array entry from the previous call as the first argument until it returns an array of size 0.&lt;br /&gt;&lt;br /&gt;You can also get lists of patient by provider, appointment dates, teams, and others. &amp;nbsp;Let me know if you need help finding the RPCs&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Problems&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;Problems use a search approach. &lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;array = broker.call_a("ORQQPL PROBLEM LEX SEARCH", ["hypertension", "100", "", "0"])&lt;/div&gt;&lt;br /&gt;Argument 1 is the term you are looking for&lt;br /&gt;Argument 2 is the maximum number of matches&lt;br /&gt;Argument 3 is something to do with view...leaving it blank&lt;br /&gt;Argument 4 is the date to use for determining when problems were valid in the VistA system.&lt;br /&gt;&lt;div style="background-color: #cccccc;"&gt;puts array[0] &amp;nbsp;# problemIEN^problemname^codename^codeIEN^code source&lt;br /&gt;# for example: &amp;nbsp;60339^Hypertension *^401.9^2477^ICD-9-CM&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Up next...medication lists, procedure lists, and other order lists.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-3451330106619800633?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/3451330106619800633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=3451330106619800633' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3451330106619800633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3451330106619800633'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/09/vistarpc4r-tutorial-3-lists-part-one.html' title='vistarpc4r Tutorial 3: Lists (part one)'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-1447938783779740427</id><published>2011-09-11T20:38:00.001-04:00</published><updated>2011-09-11T20:39:04.436-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='vistarpc4r'/><title type='text'>vistarpc4r Tutorial 2: Users, Locations, Patients, Dates</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;This second tutorial continues where we left off in &lt;a href="http://blenderhouse.blogspot.com/2011/09/vistarpc4r-tutorial-1-setting-up.html"&gt;tutorial #1&lt;/a&gt;, and assumes you have an OpenVistA system setup on Ubuntu. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Many of the VistA RPC calls you can make though &lt;a href="https://rubygems.org/gems/vistarpc4r"&gt;vistarpc4r&lt;/a&gt; require either a patient, provider, location or date. &amp;nbsp;In some cases, all of them. &amp;nbsp;Most VistA flavors come with some sample patients, providers or locations, but if you are developing software to work with VistA, you probably need to create some of your own. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;However.....standard VistA does not include a RPC to create ANY of them. &amp;nbsp;There are a variety of reasons, many non-technical ones regarding politics surrounding Federal software development can be read at the &lt;a href="http://groups.google.com/group/Hardhats"&gt;Hardhats google group&lt;/a&gt;. &amp;nbsp;I prefer to think it is because the actual users of CPRS aren't the ones creating the patients, and user accounts, so no need, no build. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;But....I have at least one work around.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;So first, users, or usually referred to as providers.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;User creation&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;For user creation, it's terminal time(although I believe Astronaut has a user config tool)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I need super providers for my development sandbox. &amp;nbsp;By that I mean, they have the ability to do just about everything in the VistA GUI. &amp;nbsp;For me that means a provider that can sign orders containing narcotics. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;I prefer Fileman to create users so:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc;"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$ openvista open&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; D P^DI &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # start Fileman&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Login as man,sys&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Select Option 1: &amp;nbsp;Add/Edit Entries&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Select the NEW PERSON file&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Edit All Fields &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # which is painful, but you won't miss anything&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Select NEW PERSON NAME &amp;nbsp;- type in your new users name in LAST,FIRST format&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;You will then start going through fields. &amp;nbsp;? and ?? give good answers as to what is expected. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;But some key fields:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;ACCESS: &amp;nbsp;basically your login name&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;VERIFY: &amp;nbsp; a password&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;KEYS: &amp;nbsp;PROVIDER, ORES &amp;nbsp; &amp;nbsp;# these are necessary to sign orders&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;SECONDARY MENU OPTIONS: &amp;nbsp;OR CPRS GUI CHART&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;PRIMARY MENU OPTION: &amp;nbsp;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;RGWBMAIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;CPRS TAB: RPT&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;CPRS TAB: COR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;span id="internal-source-marker_0.6638680889736861" style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;AUTHORIZED TO WRITE MED ORDERS: &amp;nbsp;YES&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="white-space: normal;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-color: transparent;"&gt;&lt;span id="internal-source-marker_0.6638680889736861" style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;DEA: 2 letters, followed by 7 numbers, but there is an &lt;a href="http://en.wikipedia.org/wiki/DEA_number"&gt;algorithm&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;ELECTRONIC SIGNATURE CODE: &amp;nbsp;A string the user types in to verify its them. &amp;nbsp;like JSMITH&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Once you create one, you can clone it!&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Go into EVE, which is D ^ZU, instead of D P^DI&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Select &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;User management&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Select Grant access by profile&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Use your existing user as a template, and create new users!&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Don't forget to change for each user: &lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Access, verify&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline;"&gt;,&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;DEA, Signature&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;u&gt;Add Locations&lt;/u&gt;&lt;/b&gt;(no RPC for this either)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Adding a location is a similiar experience to adding your first user.  In this case edit file 44, the location file.  Fill out what makes sense.  Again ? and ?? will show you fairly good help.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;&lt;u&gt;Add Patients&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;So I have a RPC for this, but I don't feel good about.  VistA does not come with one out of the box, but the Astronaut folks have created one.  For my purposes, I needed to be able to add a lot of patients in bulk(but very few providers and locations).  So I jammed the Astronaut modification into my plain vanilla OpenVista.  &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;KIDS is the name of VistA's patching capability.  People can bundle up their code changes as KIDS builds and distribute them for people to patch their system.  In this case, I grabbed the KIDS build out of the Astronaut source tree installed it.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Grab kids.ov.tar.gz from&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;a href="http://bazaar.launchpad.net/~ivaldes-hal-pc/astronaut-vista-server/trunk/files/head:/astro-distro/openvista"&gt;&lt;span style="background-color: transparent; color: #000099; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;http://bazaar.launchpad.net/~ivaldes-hal-pc/astronaut-vista-server/trunk/files/head:/astro-distro/openvista&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;From that archive, we need the 0.8-2/TMG1-1.0-2d.KIDS file.  Make sure it is on the OpenVistA server.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;From the archive, I followed the commands in the file 0.8-2/&lt;/span&gt;TMG1-1.0-2d.TOY.sh&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;First we load the new code into the instance:&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc;"&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$ openvista open&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; S DUZ=1,DUZ(0)="@"&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; D ^XPDIL&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;# enter the path and filename for the KIDS file&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;# answer YES&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; &amp;nbsp;h &amp;nbsp;# to halt&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Then we install the code so that it runs and is available&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc;"&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$ openvista open&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; S DUZ=1,DUZ(0)="@"&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; D ^XPDI&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;TMG1*1.0*2&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;NO&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;NO&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;OPEN&amp;gt; h&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;During this installation process, you&amp;nbsp;&lt;b&gt;&lt;u&gt;WILL GET ERRORS&lt;/u&gt;&lt;/b&gt;. &amp;nbsp;Wierd, nasty looking errors. &amp;nbsp;That is the part I don't feel good about. &amp;nbsp;But the add patient RPC works!!!! &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;To use:&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;broker.call_s("TMG ADD PATIENT", [ [&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; ["\"COMBINED NAME\"", "Test,Patient"],&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; ["\"DOB\"", "12/1/68"],&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; ["\"SEX\"", "M"],&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; ["\"SS_NUM\"", "000000000"]&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; ]]&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;The RPC returns the DFN, or internal identifier(which is an integer), for this new patient.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;For bulk loading, our experience is that the RPC breaks after a number of consecutive calls. &amp;nbsp;It looks like a timing bug. &amp;nbsp;Surrounding the call with the usual BEGIN/RESCUE/END, and resetting the connection works.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;u&gt;Fileman Dates&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Lastly, most of the RPCs that require dates for their arguments need them in Fileman format. Fileman format means take your usual YYYYMMDD.HHMMSS format and subtract 17000000. &amp;nbsp;For example, 20110911.090123 would be entered as 3110911.090123&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Well, that gives you some basic infrastructure. &amp;nbsp;Enjoy.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Up next will be reviewing some specific RPCs that give you lists of stuff.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-1447938783779740427?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/1447938783779740427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=1447938783779740427' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/1447938783779740427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/1447938783779740427'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/09/vistarpc4r-tutorial-2-users-locations.html' title='vistarpc4r Tutorial 2: Users, Locations, Patients, Dates'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-3450390035175786755</id><published>2011-09-05T21:27:00.000-04:00</published><updated>2011-09-06T11:44:25.039-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='vistarpc4r'/><title type='text'>vistarpc4r Tutorial 1:  Setting up an OpenVistA instance and database sandbox</title><content type='html'>&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;This is a tutorial to help you set up a Medsphere OpenVistA system that you can use to play with vistarpc4r, our gem that provides Ruby access to VistA. &amp;nbsp;It is a pretty barebones setup, just enough for our own product development. &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;For our needs, we decided to rely on Amazon Web Services' EC2 stuff. &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;1. &amp;nbsp;Create Amazon EC2 instance.  We used AMI&amp;nbsp;&lt;span class="Apple-style-span" style="font-style: italic; white-space: pre-wrap;"&gt;ami-ccf405a5,&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt; which is an plain vanilla Ubuntu install, but for Maverick Meerkat, since that seems to be the latest version of Ub&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;untu that Medsphere supports.  You get a default user 'ubuntu'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;2.  Update APT and download the OpenVistA package - Follow the instructions at &lt;a href="https://medsphere.org/docs/DOC-1722"&gt;https://medsphere.org/docs/DOC-1722&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;3.  Add the user 'ubuntu' to the gtm and openvista groups&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$sudo adduser ubuntu gtm&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$sudo adduser ubuntu openvista&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="background-color: transparent;"&gt;&lt;div style="white-space: normal;"&gt;&lt;span style="background-color: transparent; color: black; font-family: Arial, Helvetica, sans-serif; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;4.  More or less follow the instructions from &lt;a href="https://medsphere.org/docs/DOC-1511"&gt;https://medsphere.org/docs/DOC-1511&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;$ sudo ovinstanceadd open &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # creates an OpenVistA instance in GT.M&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Download the OpenVistA MUMPS code and globals. &amp;nbsp;This is the code, written in MUMPS, that is VistA. &amp;nbsp;The globals are the initial data to populate the database, like ICD-9 codes, medications lists, and some sample patients and providers. &amp;nbsp;Get the code from&amp;nbsp;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;&lt;a href="https://medsphere.org/download/project/openvista-server"&gt;https://medsphere.org/download/project/openvista-server&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Unzip the files you get from Medsphere(may need to install unzip with APT)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;sudo ovimport -r &amp;lt;directory containing routines&amp;gt; -g &amp;lt;directory&amp;gt;globals.zwr open          # loads the code and data into your OpenVistA instance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;/opt should now contain some directories that have all of the code and globals&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;5.  $openvista open     #  Fires up your instance&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;6.  OPEN&amp;gt;  D P^DI     #  Fires up Fileman, log in as man,sys&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;7.  When you are done having fun with Fileman, enter "h" at the OPEN&amp;gt; prompt to halt back to the shell&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;8.  $ &lt;/span&gt;/etc/init.d/openvista start &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # start up the RPC Broker&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Now you have a working instance of OpenVista. &amp;nbsp;You can point the CPRS or CIS GUI at this instance and see the sample data that Medsphere has loaded for you.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Or, of course, you can point vistarpc4r at it!!!!!!&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="white-space: normal;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Next: &amp;nbsp;Tutorial 2: &amp;nbsp;How do you add users and patients with vistarpc4r? &amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-3450390035175786755?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/3450390035175786755/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=3450390035175786755' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3450390035175786755'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3450390035175786755'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/09/vistarpc4r-tutorial-1-setting-up.html' title='vistarpc4r Tutorial 1:  Setting up an OpenVistA instance and database sandbox'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-7360932855898007356</id><published>2011-07-11T15:38:00.004-04:00</published><updated>2011-07-12T11:08:45.267-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='vistarpc4r'/><title type='text'>VA VistA Open Source Custodial Agent</title><content type='html'>The U.S. Department of Veterans Affairs has &lt;a href="http://www.blogs.va.gov/VAntage/?p=3645"&gt;selected their open source Custodial Agent&lt;/a&gt; to develop and manage an open source community around their VistA electronic health record system. &lt;br /&gt;The Information Applications Group,&lt;a href="http://www.tiag.net/"&gt; www.tiag.net&lt;/a&gt;, has been selected as the prime contractor.  They have set up a provisional website at &lt;a href="http://osehrca.org"&gt;http://osehrca.org.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It will be interesting to watch this Custodial Agent be set up(or stood up in DC parlance).&lt;br /&gt;It looks from the contract that it will be busy 60 days for tiag and the VA, with by-laws, licensing terms, code repository, website,  community engagement plans, and certification function to all be set up in that time period.&lt;br /&gt;&lt;br /&gt;Some interesting tidbits---&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"VA believes that in order to efficiently maintain VistA’s high performance, it must make significant improvements to the component integration process, and that this would be best accomplished in an open source framework."&lt;/blockquote&gt;  You better believe it.  That is why I developed the Ruby integration gem vistarpc4r.  It isn't pretty under the hood.  I plan on getting vistarpc4r to be some part of this process&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"Organizations and commercial vendors can build proprietary products and technologies and have them certified"&lt;/blockquote&gt;  I can't wait to see how the certification process works. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"VA might initiate a project request to the CA for codebase refactoring"&lt;/blockquote&gt;  Good!  Like I said, it isn't pretty under the hood. &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"The contract shall be for a one (1) year base period of performance."&lt;/blockquote&gt;  What will the next one be for?&lt;/li&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"...the Contractor shall provide, within forty-five (45) days after award, a draft Community Enablement Plan capturing the mission and objectives of the Custodial Agent including a statement of CA resources required. Concurrent with the activation of the Custodial Agent, the CA shall release draft plans to the open source community for comment."&lt;/blockquote&gt;  Hmmm...we went to a conference where I got to hear some comments about open sourcing VistA...should be entertaining.&lt;/li&gt;&lt;li&gt;&lt;blockquote style="font-style: italic;"&gt;"Performance metrics"&lt;/blockquote&gt;  Part of the performance evaluation for tiag is measuring source code contribution, code downloads, number of certification requests, and number of members.  I'm glad to see these are included.  Hopefully this information will be posted for all to see.&lt;/li&gt;&lt;/ul&gt;A open source custodial agent model is pretty innovative for the US government to embrace.  I hope it works.&lt;br /&gt;&lt;br /&gt;I'm also curious what this means for Medsphere's OpenVista, WorldVista and DSS's vxVista.  Will their enhancements to FOIA VistA be contributed to CA VistA. Or will they switch from using FIOA VistA to CA VistA as their underlying source and keep their existing models.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-7360932855898007356?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/7360932855898007356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=7360932855898007356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/7360932855898007356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/7360932855898007356'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/07/va-vista-open-source-custodial-agent.html' title='VA VistA Open Source Custodial Agent'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-6856443590881430535</id><published>2011-06-29T13:07:00.008-04:00</published><updated>2011-09-05T21:27:36.738-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VA'/><category scheme='http://www.blogger.com/atom/ns#' term='VistA'/><category scheme='http://www.blogger.com/atom/ns#' term='vistarpc4r'/><title type='text'>Releasing vistarpc4r gem</title><content type='html'>Our new gem, &lt;span style="font-weight: bold;"&gt;vistarpc4r&lt;/span&gt;, is finally ready for other people to play with.  It's pretty bare-bones, but it works.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vistarpc4r&lt;/span&gt; is a Ruby gem that provides RPC-style API calls to any of the VistA-variant servers that support the RPCBroker(of which they all do, unless disabled).  VistA is the Veteran's Adminstration electronic health record system that it released to the public.  We have tested &lt;span style="font-weight: bold;"&gt;vistarpc4r&lt;/span&gt; on Medsphere's OpenVista, but it should work on WorldVistA, vxVistA, and the others.&lt;br /&gt;&lt;br /&gt;We developed this gem to support our own work developing our new product CompleteNote, which is a clinical decision support and documentation application.&lt;br /&gt;&lt;br /&gt;This gem is free to download and use.&lt;br /&gt;&lt;br /&gt;Feel free to bug me about additional functionality you would like to see, or contributions you would like to make.&lt;br /&gt;&lt;br /&gt;The gem is available through rubygems.org:  &lt;a href="https://rubygems.org/gems/vistarpc4r"&gt;https://rubygems.org/gems/vistarpc4r&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Installation&lt;/span&gt;&lt;br /&gt;$ gem install vistarpc4r&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Usage&lt;/span&gt;&lt;br /&gt;VistA is an old-school stateful session server.  It follows the standard RPC model of creating a tcp connection to a server, providing user credentials, and then calling named RPC functions with arguments, and receiving status and data responses in a synchronous manner.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vistarpc4r&lt;/span&gt; provides a ruby class called RPCBrokerConnection.&lt;br /&gt;RPCBrokerConnection has 6 primary methods:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;new(server, port, userid, password, debug) &lt;/span&gt;- string server, number port, string userid and password, and true or false to turn on debug statements(default = false)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;connect&lt;/span&gt; - initiate the connection(addresses and usernames are passed in at object creation)&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;setContext('context')&lt;/span&gt; - In VistA, function calls are controlled by assigning them to contexts and giving the user access to that context.  In most cases the desired context is 'OR CPRS GUI CHART'.  There is a logical reason for that, but I won't get into it right now.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;close&lt;/span&gt; - It wouldn't be a good RPC connection library without a close method&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;call_s('rpcname', [Ruby Array of arguments])&lt;/span&gt; - Call a VistA RPC function with an array of arguments, expecting a single string value in return.&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;call_a('rpcname', [Ruby Array of arguments])&lt;/span&gt; - Call a VistA RPC function with an array of arguments, expecting a Ruby Array of return values.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;So, now what?  What are the RPC functions I can call?  That is the eternal question when it comes to VistA.  There are hundreds, if not thousands, of RPC functions.  While the VA decided to release VistA to the public, it didn't come with great documentation, or I should say, the source code is the documentation.  &lt;a href="http://medsphere.org/"&gt;Medsphere.org&lt;/a&gt;, &lt;a href="http://hardhats.org/"&gt;hardhats.org&lt;/a&gt; and the &lt;a href="http://www.va.gov/vdl/"&gt;VA site&lt;/a&gt; all offer clues.&lt;br /&gt;&lt;br /&gt;I will publish my findings for good RPC functions as I am cruising the source code myself.  The source code that offers the best insight is written in Delphi, MUMPS, Java and C#.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Fortunately, Medsphere has created a public demo Openvista server that is always available(and resets its content in the middle of the night) Information about it is available here --&amp;gt; &lt;a href="https://medsphere.org/docs/DOC-1003"&gt;https://medsphere.org/docs/DOC-1003&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But lets try this out...&lt;br /&gt;&lt;br /&gt;Fire up irb or script/console or whatever your preference is...&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;blockquote style="background:#ccc"&gt;&lt;span style="font-size:85%;"&gt;broker = VistaRPC4r::RPCBrokerConnection.new('openvista.medsphere.org', 9201, 'PU1234', 'PU1234!!')&lt;br /&gt;broker.connect&lt;br /&gt;broker.setContext('OR CPRS GUI CHART')&lt;br /&gt;wardsarray = broker.call_a("ORQPT WARDS")&lt;br /&gt; wardsarray.each do |ward|&lt;br /&gt;   a = ward.split("^")&lt;br /&gt;   puts "Ward:" + a[1]&lt;br /&gt;   wardarray = broker.call_a("ORQPT WARD PATIENTS", [a[0]])  # ward ien&lt;br /&gt;   wardarray.each do |patient|&lt;br /&gt;       b = patient.split("^")&lt;br /&gt;       puts b[0] + ":" + b[1]&lt;br /&gt;   end&lt;br /&gt;end&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This example displays a list of wards and the names and internal ids of patients on those wards.&lt;br /&gt;^ is used as a sort of field separator when multiple values are returned in the same string.&lt;br /&gt;&lt;br /&gt;I have code in the examples directory in this gem that will give you other examples of fetching other data as well as writing and deleting data on the server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Future features&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ruby classes for VistA data objects.  Patients, Providers, Problems, Vitals, Orders, etc....&lt;/li&gt;&lt;li&gt;ActiveRecord interface for VistA.  Won't be easy but seems doable from what I've seen.&lt;/li&gt;&lt;li&gt;Connection management.  An obvious thing for us Railers is to incorporate VistA into a web application(I didn't need it yet).  Given the stateful server and authentication model it isn't straightforward, but certainly doable.&lt;/li&gt;&lt;/ul&gt;Enjoy.  Updates as I make progess.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-6856443590881430535?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/6856443590881430535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=6856443590881430535' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6856443590881430535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6856443590881430535'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/06/releasing-vistarpc4r-gem.html' title='Releasing vistarpc4r gem'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-6193052916805949088</id><published>2011-06-27T12:35:00.002-04:00</published><updated>2011-06-27T12:44:29.459-04:00</updated><title type='text'>First research publication</title><content type='html'>We had our very first research paper ever accepted for presentation and publication!  The American Medical Informatics Association's Annual Symposium, held this October in Washington, DC.  It is titled "&lt;span style="font-style: italic;"&gt;Automated creation of clinical progress notes with machine learning&lt;/span&gt;", and details the results of our NIH Phase I SBIR research grant. &lt;br /&gt;&lt;br /&gt;As the primary investigator and lead author, I get to hang out at a poster session for a while answering people's questions about the work. &lt;br /&gt;&lt;br /&gt;After the conference, it will be published in the conference proceedings, and I'll make it available on the Blenderhouse website. &lt;br /&gt;&lt;br /&gt;This research forms the basis for our clinical decision support and documentation product, CompleteNote.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-6193052916805949088?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/6193052916805949088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=6193052916805949088' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6193052916805949088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/6193052916805949088'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/06/first-research-publication.html' title='First research publication'/><author><name>Mike Cham</name><uri>http://www.blogger.com/profile/17759347044094143398</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-191486296103452192</id><published>2011-05-13T12:46:00.002-04:00</published><updated>2011-05-13T12:51:04.313-04:00</updated><title type='text'>Ruby RPCBroker interface for VA's VistA EMR</title><content type='html'>As part of our ongoing product development for our first healthcare software product CompleteNote, we have created a Ruby library which offer the ability to make API calls into the Veteran's Administrations electronic medical record system.  The API in this case the RPC Broker mechanism that the existing GUI clients use.  We have tested it with Medsphere's OpenVistA, and will be testing it with WorldVistA.  Once it is ready, we will release it to the open source community as a gem. &lt;br /&gt;It's pretty cool.  We are able to use the power of Ruby to quickly pull data out of and push data into VistA.&lt;br /&gt;&lt;br /&gt;Apple iOS is coming soon....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-191486296103452192?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/191486296103452192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=191486296103452192' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/191486296103452192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/191486296103452192'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/05/ruby-rpcbroker-interface-for-vas-vista.html' title='Ruby RPCBroker interface for VA&apos;s VistA EMR'/><author><name>Mike Cham</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lgjIv2LYkYk/TKjNpJnfz5I/AAAAAAAAAAM/Wg-KpBMMrKU/S220/Photo+on+2010-10-03+at+14.37.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3782731056170948518.post-3934729222471320305</id><published>2011-05-13T12:39:00.002-04:00</published><updated>2011-05-13T12:45:47.993-04:00</updated><title type='text'>Healthcare direction</title><content type='html'>We were awarded a Small Business Innovation Research Grant from the NIH to conduct the principal research behind our first healthcare software product, CompleteNote!!&lt;br /&gt;We were extremely pleased with our results, that being demonstrating the capability of replicating a physician's ability to diagnose and treat patients using our machine learning algorithms.  Using actual clinical care notes as a source, we achieved a 97% prediction accuracy!&lt;br /&gt;&lt;br /&gt;We have submitted our Phase II grant application to the NIH and hope to get good news at the end of summer.&lt;br /&gt;&lt;br /&gt;More updates coming....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3782731056170948518-3934729222471320305?l=blenderhouse.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blenderhouse.blogspot.com/feeds/3934729222471320305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3782731056170948518&amp;postID=3934729222471320305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3934729222471320305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3782731056170948518/posts/default/3934729222471320305'/><link rel='alternate' type='text/html' href='http://blenderhouse.blogspot.com/2011/05/healthcare-direction.html' title='Healthcare direction'/><author><name>Mike Cham</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://2.bp.blogspot.com/_lgjIv2LYkYk/TKjNpJnfz5I/AAAAAAAAAAM/Wg-KpBMMrKU/S220/Photo+on+2010-10-03+at+14.37.jpg'/></author><thr:total>0</thr:total></entry></feed>
