<?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-1171988512997533283</id><updated>2012-02-16T09:35:45.315-05:00</updated><category term='Microsoft Health Users Group HUG'/><category term='MSSQL Epic Clarity Reporting Services'/><category term='Geospatial SQL Server Epic Clarity'/><category term='MSSQL Epic Clarity'/><title type='text'>MSSQL HealthIT</title><subtitle type='html'>This blog is about applying the Microsoft SQL Database Engine and tools to Health Information Technology. A related topic is the use of geospatial technology applied to data warehousing of health information.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-4399739504864336083</id><published>2010-04-28T17:53:00.001-04:00</published><updated>2010-04-28T17:57:31.029-04:00</updated><title type='text'>When GEO meets SQL: Hotwiring Data to Locations</title><content type='html'>I gave this presenation last Saturday at SQLSaturday41, in Atlanta. This was conducted by the local SQL Server user group and PASS, the international association of SQL Server professionals.&lt;br /&gt;&lt;br /&gt;The talk was ambitious: Show the geospatial&amp;nbsp;characteristics (distance, drive time) for members of an ice cream gourmet society related to three ice cream facilities. Substitute patients for members and clinics for facilities as you please. Key methods, properties, and queries were shown, as well as several tricks and traps.&amp;nbsp; All of this was done in the context of enhancing an existing data mart/warehouse with geo-aware data. More details, including the slide deck and samples, can be found &lt;a href="http://www.sqlsaturday.com/viewsession.aspx?sat=41&amp;amp;sessionid=1483"&gt;here&lt;/a&gt;&amp;nbsp;.&lt;br /&gt;&lt;br /&gt;Michael&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-4399739504864336083?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/4399739504864336083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2010/04/when-geo-meets-sql-hotwiring-data-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/4399739504864336083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/4399739504864336083'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2010/04/when-geo-meets-sql-hotwiring-data-to.html' title='When GEO meets SQL: Hotwiring Data to Locations'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-4996496615096155959</id><published>2010-04-11T17:50:00.000-04:00</published><updated>2010-04-11T17:50:23.686-04:00</updated><title type='text'>Session on SQL Server Geospatial Features to be presented</title><content type='html'>On April 24th, I'll be presenting the topic: &lt;strong&gt;&lt;em&gt;When GEO meets SQL: Hotwiring Data to Locations&lt;/em&gt;&lt;/strong&gt; at SQLSaturday in the Atlanta regional Microsoft office.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This is a beginner's level session on geospatial for the DBA and TSQL developer. We will focus on the adaptation of the spatial capabilities to a data warehouse and how to acquire resources with little or no money ( a key requirement in the health care field). The description is below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Spatial fields, operators, and functions were introduced in SQL 2008. I will detail how these can be integrated with location-based information in existing data warehouses and marts - and on the cheap. We will briefly discuss the basics (geometry versus geography, geocoding), then move on to the common problems with this task and the remedies.&lt;br /&gt;&lt;br /&gt;------------------&lt;br /&gt;Stay tuned. I'll let you know how it went.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-4996496615096155959?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/4996496615096155959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2010/04/session-on-sql-server-geospatial.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/4996496615096155959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/4996496615096155959'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2010/04/session-on-sql-server-geospatial.html' title='Session on SQL Server Geospatial Features to be presented'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-1668562845010956706</id><published>2010-03-06T11:27:00.000-05:00</published><updated>2010-03-06T11:27:16.861-05:00</updated><title type='text'>When Queries Zone Out in RS - The Unknown Element</title><content type='html'>Frequently the report developers will approach you with a problem: A query that runs lightening fast in SQL Server Management Studio completely tanks when the query is hosted by a Reporting Services report.&lt;br /&gt;&lt;br /&gt;RS 2008 makes calls to the Data Source in a slightly different fashion than a call by other clients. One major difference is that parameters are called using Unicode. This can result in table scans if the destination objects are not in Unicode.&lt;br /&gt;&lt;br /&gt;Besides checking for the usual issues (table scans, indexes, etc.), I've had good results with the inclusion of the Optimize for Unknown optimizer hint. This has restored performance for many queries, from minutes to seconds. Give it a try. See details below:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blogs.msdn.com/mssqlisv/archive/2008/11/26/optimize-for-unknown-a-little-known-sql-server-2008-feature.aspx"&gt;http://blogs.msdn.com/mssqlisv/archive/2008/11/26/optimize-for-unknown-a-little-known-sql-server-2008-feature.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-1668562845010956706?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/1668562845010956706/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2010/03/when-queries-zone-out-in-rs-unknown.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/1668562845010956706'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/1668562845010956706'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2010/03/when-queries-zone-out-in-rs-unknown.html' title='When Queries Zone Out in RS - The Unknown Element'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-6260346838840113884</id><published>2010-03-06T11:08:00.004-05:00</published><updated>2010-03-06T11:20:18.583-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Geospatial SQL Server Epic Clarity'/><title type='text'>Back in the Swim</title><content type='html'>This blog has been woefully neglected. Look for blogs on the following subjects in the new few weeks:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Dimensional modeling tips for a Mart based upon Epic Clarity data.&lt;/li&gt;&lt;li&gt;Use of SQL Server's Spatial fields - adding geospatial to a data mart.&lt;/li&gt;&lt;li&gt;Geocoding data - on the cheap.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-6260346838840113884?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/6260346838840113884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2010/03/back-in-swim.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6260346838840113884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6260346838840113884'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2010/03/back-in-swim.html' title='Back in the Swim'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-8435407402932254846</id><published>2009-09-20T12:38:00.005-04:00</published><updated>2009-09-20T12:52:19.661-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity'/><title type='text'>A New Job, (almost) the Same Environment, and a New Perspective</title><content type='html'>I'm now at a different employer. Yes, it's still the health field, but it's a well known health plan rather than a pediatric hospital. It's still an Epic shop and Clarity is used, but the source is Teradata. SQL Server is used as the mart data store and query engine.&lt;br /&gt;&lt;br /&gt;Unlike the former shop, I now work in the business and analytics section rather than IT. Both the former and latter have difficulties with Epic's over-normalization of the 7000 Clarity tables and all that implies - although the size of the data in the new environment is far larger than the former. In response, the new employer started a couple of years ago to identify demensional models of the core business. Extracts were in turn developed to feed Clarity data into star structures in MSSQL. All of this was farmed out to a third party server hosting firm. The result: We focus on the business need (trends in membership, payments, etc.) rather than the SQL maintenance and other back room tasks.&lt;br /&gt;&lt;br /&gt;Performance in the data warehouse is terrific. Stay tuned on other observations as I pursue this leg of my career.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-8435407402932254846?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/8435407402932254846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/09/new-job-almost-same-environment-and-new.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/8435407402932254846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/8435407402932254846'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/09/new-job-almost-same-environment-and-new.html' title='A New Job, (almost) the Same Environment, and a New Perspective'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-5095795539810052959</id><published>2009-09-20T12:28:00.003-04:00</published><updated>2009-09-20T12:38:51.499-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft Health Users Group HUG'/><title type='text'>Back from Microsoft's Health User Group</title><content type='html'>This two day exploration of the use of MS technology meets annually on the MS campus in Redmond, WA. It's attended by a cross section of health IT people. There's a similar meeting in the Spring for one day.&lt;br /&gt;&lt;br /&gt;What’s new? I’ve been attending since 2006 with a particular interest in Business Intelligence, but can say that it had not been a significant HUG interest until now.  The sessions on BI, analytics, or Clinical Informatics were packed. One session, mentioned below, was SRO until more chairs could be obtained.&lt;br /&gt;&lt;br /&gt;One slide for a keynote (which isn’t available) cited a Gartner statistic that BI would be the top interest in Health IT in both 2009 and 2012.&lt;br /&gt;&lt;br /&gt;A theme that repeatedly surfaced was the paramount role of business and clinical lines rather than IT. One session in particular was packed, &lt;em&gt;Leveraging SharePoint’s Business Intelligence Capabilities to Drive Process Improvements in Healthcare&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Don’t dwell to much on the Sharepoint theme. The other theme was how to structure a successful BI operation in a health care organization. Basically, the hospital for which the presenter worked embarked for years on a BI effort led by IT, which failed.  Success only occured when a BI Governance system was put in place to transform the process - one which placed control by the business stakeholders.&lt;br /&gt;&lt;br /&gt;The other key presentation to note was &lt;em&gt;Next Generation Decision Support for Hospitals: Using Microsoft Technologies You Already Own to Drive New Levels of Performance&lt;/em&gt;, delivered by Bob Lokken, CEO, WhiteCloud Analytics.  Bob founded and developed Proclarity, a company which consulted this last decade on building solutions with MS Analysis services (“cubes” and data mining). Furthermore, his company developed software which became perhaps the pre-eminent software to “surf” on the cubes.&lt;br /&gt;&lt;br /&gt;He sold the company to Microsoft in 2006 and worked there briefly as world-wide head of the BI consulting arm. Now he’s back with his own new company that specializes on providing analytics to the health care vertical. I had met him years ago and introduced him at his section.&lt;br /&gt;&lt;br /&gt;Bob mentioned that 5 out of 6 (successful?) projects are now initiated not by the IT shop, but by the business and clinical lines. He focused on the difference between reporting and analytics and offered six examples.&lt;br /&gt;&lt;br /&gt;I noticed that his samples documented outliers that exceeded a certain number of standard deviations. Also, he keenly documented how necessary it was for designers to be aware of navigation (drill down, drill to a separate “report”). Some of the data was run through data mining before the user “surfed” on the data.&lt;br /&gt;&lt;br /&gt;The other big item was “self-serve” BI, whereas power users have the tools to discover patterns without the need to have the Report Team develop something per a work order request. Bob was particularly critical of the issue of limiting analysis to those trained in SPSS and other statistical power packages. He outlined size examples where analytics (as opposed to operational reporting) uncovered relationships which yielded significant savings and/or put a health care institution back on track with a sound footing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-5095795539810052959?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/5095795539810052959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/09/back-from-microsofts-health-user-group.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5095795539810052959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5095795539810052959'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/09/back-from-microsofts-health-user-group.html' title='Back from Microsoft&apos;s Health User Group'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-5044656177929828643</id><published>2009-07-25T12:59:00.004-04:00</published><updated>2009-07-26T13:13:29.812-04:00</updated><title type='text'>RS Parameter Problems - Part I</title><content type='html'>Microsoft issued a "Fast Publish" notice about a problem with parameters issued by Reporting Services&lt;br /&gt;(&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;2000524&amp;amp;sd=rss&amp;amp;spid=13165"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;2000524&amp;amp;sd=rss&amp;amp;spid=13165&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;A Microsoft consultant told me about this in mid-May. Parameters are coerced into Unicode and applied in the SQL query to the SQL Server.&lt;br /&gt;&lt;br /&gt;The problem is query optimization. As suggested in the notice:&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;br /&gt;&lt;em&gt;This may result in performance issues on the backend SQL server. For example SQL server may perform a table scan instead of a seek.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;The interim workarounds are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use an expression based command text with Join(). &lt;/li&gt;&lt;li&gt;Use stored procedures with parameters passed in e.g. as comma-separated string. &lt;/li&gt;&lt;li&gt;Implement custom data extensions with your own implementation of multi-value query parameter rewrite. &lt;/li&gt;&lt;li&gt;Change database schema column definition to NVarchar&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;None of them are particularly appealing if your shop has invested in designing hundreds of reports with multi-parameter drop down options against thousands of tables in the Clarity database, many of which are so large that access using a table scan is of concern. &lt;/p&gt;&lt;p&gt;The first two are the most feasible and are being explored. However, now the issue is public and some clever approaches will likely be forthcoming.&lt;/p&gt;&lt;p&gt;Stay tuned on this issue.&lt;/p&gt;&lt;p&gt;There is an even larger issue of parameters in RS and the optimization of queries. That will be covered in a subsequent posting.&lt;/p&gt;&lt;p&gt;Edit Update: One of the MS field engineers provides more detail on the remedies at &lt;a href="http://blogs.msdn.com/sql_pfe_blog/archive/2009/06/17/possible-performance-implications-when-using-string-parameters-in-reporting-services.aspx"&gt;http://blogs.msdn.com/sql_pfe_blog/archive/2009/06/17/possible-performance-implications-when-using-string-parameters-in-reporting-services.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;I'll be applying these next week to some of our problem queries issued by RS and see if index scans can be turned into index seeks.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;em&gt;&lt;/em&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-5044656177929828643?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/5044656177929828643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/07/rs-parameter-problems-part-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5044656177929828643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5044656177929828643'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/07/rs-parameter-problems-part-i.html' title='RS Parameter Problems - Part I'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-3399095548932552957</id><published>2009-06-27T14:33:00.004-04:00</published><updated>2009-06-27T14:59:43.389-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity Reporting Services'/><title type='text'>A Model for Guiding Consumption of Information</title><content type='html'>Health care organizations have arrived late to the use of other tools that retrieve data, highlight information, and afford interactivity.&lt;br /&gt;&lt;br /&gt;Look at the tools available from Microsoft, listed in the order of power and degree of interactivity.&lt;br /&gt;&lt;br /&gt;Reports (Reporting Services) variants:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Static Reports&lt;/li&gt;&lt;li&gt;Parameter Driven&lt;/li&gt;&lt;li&gt;Simulated Drill Down&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Report Builder&lt;/p&gt;&lt;p&gt;Analysis Services&lt;/p&gt;&lt;p&gt;Data Mining Toolkit &lt;/p&gt;&lt;br /&gt;&lt;strong&gt;The Reporting Cycle&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Hospital IT outfits start with Reporting Services. Often, however, the crush to meet the endless need results in the cutural assumption that the need must be met with "reports": They become an end unto themselves.&lt;br /&gt;&lt;br /&gt;Reports require that a programmer/designer/business analyst be employed to design and vet the structures. The organization simply can't produce fast enough to meet the expectations of the subject matter experts. Many of these experts wish to "surf" on the data to uncover hidden patterns - but the development cycle simply does not permit reports to be tailored quickly enough.&lt;br /&gt;&lt;br /&gt;Some of the other tools in the above arsenal permit the experts to develop their own tools to consume information. As IT managers, when and how do you unleash each tool? An overall framework is necessary.&lt;br /&gt;&lt;br /&gt;One taxonomy, the CIF (Corporate Information Factory),  that is widespread was published several years ago by Claudia Imhoff and her colleagues. The groups briefly are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Farmers&lt;/strong&gt; (financial analysts) have well defined requirements. Queries are clear and concise. Data marts and OLAP are often used.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Tourist&lt;/strong&gt; (executives) search large amounts of data to anticipate and respond to events. Data marts and OLAP are often used.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Operators&lt;/strong&gt; require current detailed information on a scheduled bases. Reports largely suffice to meet this need in the health care vertical.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Explorers&lt;/strong&gt; search for new patterns and relationships. Random queries are often generated. Results can lead to observations that range from the mundane to the spectacular. Ad hoc tools are employed.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Each group can be matched up with each retreival tools. Each determines the type of load on the database servers (ad hoc vs. schedule reports). In the early days of SQL 7, Microsoft published a large wall poster with this classification. &lt;/p&gt;Further information on the Corporate Information Factory can be found at &lt;a href="http://download.101com.com/pub/tdwi/files/Critical_Shift_to_Flex_BI_Imhoff.pdf"&gt;http://download.101com.com/pub/tdwi/files/Critical_Shift_to_Flex_BI_Imhoff.pdf&lt;/a&gt; .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-3399095548932552957?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/3399095548932552957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/06/model-for-guiding-consumption-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/3399095548932552957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/3399095548932552957'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/06/model-for-guiding-consumption-of.html' title='A Model for Guiding Consumption of Information'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-5188429537358849193</id><published>2009-06-21T15:20:00.009-04:00</published><updated>2009-06-21T15:56:19.610-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity Reporting Services'/><title type='text'>Reporting Services: Tip # 1</title><content type='html'>Establish a standard that all Data Connections, especially Shared Data Sources, must include the application name parameter of the connection string. An example is below:&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;em&gt;Data Source=epicsql;Initial Catalog=Reporting_Srvs;application name=SDS_Clarity_PROD_Reporting_Srvs; &lt;/em&gt;&lt;/div&gt;&lt;em&gt;&lt;/em&gt;&lt;div align="left"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="center"&gt;&lt;/div&gt;&lt;div align="left"&gt;Our standard calls for placement of the name of the Data Source as the application name.&lt;/div&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;div align="left"&gt; &lt;/div&gt;&lt;div align="left"&gt;Why? It will come in handy when the DBA monitors activity generated by the RS server against the SQL server. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;a href="http://2.bp.blogspot.com/_ijPrtYnJ5aM/Sj6MmXE4d9I/AAAAAAAAABQ/1jB2cpgjsNM/s1600-h/Image01.gif"&gt;&lt;img id="BLOGGER_PHOTO_ID_5349867998020138962" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 541px; CURSOR: hand; HEIGHT: 145px" alt="" src="http://2.bp.blogspot.com/_ijPrtYnJ5aM/Sj6MmXE4d9I/AAAAAAAAABQ/1jB2cpgjsNM/s400/Image01.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;The image shows the Processes option of the new Current Activity window in SQL Manager. Now the DBA can see clearly activity has been sent by a specific Data Source of the Reporting Services server. This helps to troubleshoot performance problems.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-5188429537358849193?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/5188429537358849193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/06/reporting-services-tip-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5188429537358849193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5188429537358849193'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/06/reporting-services-tip-1.html' title='Reporting Services: Tip # 1'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_ijPrtYnJ5aM/Sj6MmXE4d9I/AAAAAAAAABQ/1jB2cpgjsNM/s72-c/Image01.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-6142470463045920958</id><published>2009-06-21T15:14:00.004-04:00</published><updated>2009-06-21T15:47:25.920-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity'/><title type='text'>The Developer’s Platform</title><content type='html'>What’s the best permission scheme that permits developers to fabricate reports, but protects a clinical database?&lt;br /&gt;&lt;br /&gt;Fine-tuning the permissions under SQL 2000 was difficult. As mentioned in a previous post, the Clarity module shipped prior to SQL 2005, when permissions became more granular. Also, Clarity was developed with two other vendors’ databases also in mind.&lt;br /&gt;&lt;br /&gt;We needed a solution long before our upgrade to SQL 2008. In the following, I’ll describe the steps we took under SQL 2000 and those that we took to extend the capability under SQL 2008.&lt;br /&gt;&lt;br /&gt;A new database on the same server, Reporting_SRVS, was created. Two groups were created in the Active Directory, RptDev and RptBrowse. The latter was used extensively in the permissions of the production Reporting Services server.&lt;br /&gt;&lt;br /&gt;In the main vendor’s database, Clarity, RptBrowse and RptDev were made members of the db_datareader role. RptBrowse was made a member of the db_denywriter role.&lt;br /&gt;&lt;br /&gt;In the Reporting_SRVS database, RptDev was made a member of the db_owner role.&lt;br /&gt;&lt;br /&gt;The developers created all views in the Reporting_SRVS database, referring with a three part name to an object in the Clarity database, for example, a view Report_SRVS.dbo.TestView was created with the command &lt;em&gt;Select fld1,fld2 FROM Clarity.dbo.PAT_ENC&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;Once we were under SQL 2008, I searched repeatedly for references on this topic. It was only long afterwards that one pertinent reference was found: SQL Server Best Practices – Implementation of Database Object Schemas, at &lt;a href="http://msdn.microsoft.com/en-us/library/dd283095.aspx"&gt;http://msdn.microsoft.com/en-us/library/dd283095.aspx&lt;/a&gt; . However, Epic had not created the Clarity database using multiple schemas and we did not wish to open that can of digital worms. Fortunately, SQL 2008 permitted a number of enhancements to be added. The following assignments were made after the upgrade:&lt;br /&gt;&lt;br /&gt;For the MSDB database, RptDev made a role member of the relatively new DatabaseMailUserRole. This allowed the report developers to craft TSQL scripts to generate email. Furthermore, RptDev was made a member of the SQLAgentReaderRole, to allow the developers to monitor the SQL Jobs.&lt;br /&gt;&lt;br /&gt;SHOWPLAN permissions were granted to RptDev on the Clarity database (this permission was implicitly assigned to Reporting_SRVS database due to the db_owner role permissions). The granting of SHOWPLAN does create a possible security hole. Please read the caveats on Books on Line.&lt;br /&gt;&lt;br /&gt;One last problem remained. The developers gradually transited from placing SQL batches to stored procedures in their Reporting Services reports. They soon discovered that they could run a stored procedure in SQL Manager, but it would not run in a Reporting Services report. The developers were instructed to grant Execute permissions for each stored procedure specifically to the account in Reporting Services authorized to access the data. We decided not to implement an automated assignment (as outlined in &lt;a href="http://www.sqlservercentral.com/articles/Security/sqlserversecuritythedb_executorrole/988/"&gt;http://www.sqlservercentral.com/articles/Security/sqlserversecuritythedb_executorrole/988/&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now the developers have nearly complete rights to their own developed objects in their database, yet the data is secured in the vendor’s database. Only vendor objects (and a few custom indexes) are in the Clarity database. The developers can monitor SQL jobs pertinent to the databases (although they can’t modify any). They can also examine execution plans and become aware early in the development process of queries that may perform poorly. SQL Manager 2008 also suggests indexes that may be missing and the developers are instructed to keep a log of these for the DBA to review.&lt;br /&gt;&lt;br /&gt;There is one downside to this approach. We’ve been informed that Indexed views are not supported spanning one database to another but I haven’t confirmed this by attempting to create one. The benefits far outweigh the problems, however and this has worked well for some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-6142470463045920958?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/6142470463045920958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/06/developers-platform.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6142470463045920958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6142470463045920958'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/06/developers-platform.html' title='The Developer’s Platform'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-5492817002310322768</id><published>2009-06-14T16:17:00.001-04:00</published><updated>2009-06-21T15:48:00.895-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity'/><title type='text'>Clarity Corner: Tip # 1</title><content type='html'>First, a brief description of the Clarity module used in the Epic Systems electronic medical record system. Clarity's primary task is to read data from the clinical information stored in over 800 files in the Unix environment and transform this data into a relational format. Currently, Clarity supports three databases: Oracle, Teradata, and SQL Server. There are over 6500 relational tables and data easily grows rapidly.&lt;br /&gt;&lt;br /&gt;Hospital environments are inherently conservative. Many will not contemplate SQL 2008, even though Service Pack 1 became available last month; SQL 2005 and even SQL 2000 are mainstream.&lt;br /&gt;&lt;br /&gt;However, Epic submitted the Clarity module to Microsoft Labs and it was subjected to rigorous testing. Results became available earlier this year in a monograph titled Clarity-SQL Server 2008 Enterprise. The document is available from the Clarity Performance Team at Epic.&lt;br /&gt;&lt;br /&gt;Basically, the team recommended that users move directly from SQL 2000 to SQL 2008, skipping 2005 entirely. The case was too compelling.&lt;br /&gt;&lt;br /&gt;This document is crucial if you are contemplating a selection of a database vendor for a new implementation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-5492817002310322768?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/5492817002310322768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/06/clarity-corner-tip-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5492817002310322768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/5492817002310322768'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/06/clarity-corner-tip-1.html' title='Clarity Corner: Tip # 1'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1171988512997533283.post-6690890526550946845</id><published>2009-06-14T16:02:00.000-04:00</published><updated>2009-06-14T16:17:28.529-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL Epic Clarity'/><title type='text'>Introduction to My Blog</title><content type='html'>&lt;p&gt;Welcome to my blog, with the improbable title "MSSQL HealthIT". This blog deals with the use of Microsoft SQL Server (MS SQL) and the ancillary tools and services applied to health care organizations, particularly hospitals.&lt;br /&gt;&lt;br /&gt;Licensing restrictions apply, but these tools are available on the same DVD as the database server software and include:&lt;br /&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;SQL Server (the database engine) &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;SSIS - SQL Server Integration Services, which moves and cleans information SSRS - SQL &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Server Reporting Services - a web based reporting platform. ReportBuilder - an adjunct to &lt;/span&gt;&lt;span&gt;SSRS, which permits users to design their reports. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;SSAS - SQL Server Analysis Services - a service that permits users to discover patterns and relationships on their data by interactively slicing and dicing on the data. &lt;/span&gt;&lt;/li&gt;&lt;span&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt;&lt;/span&gt;There are other capabilities, notably Data Mining. As this blog progresses, I'll be outlining how these can be effectively applied.&lt;br /&gt;&lt;br /&gt;This blog has 4 identified target groups:&lt;br /&gt;&lt;br /&gt;Technically proficient practitioners of MS SQL that are new to the Health vertical. &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Hospital Technical staff that are currently evaluating Electronic Medical Record systems (EMRs), who also wish to assess the use of MS SQL. &lt;/li&gt;&lt;li&gt;Hospitals that have installed one of the most prominent EMR's, Epic by Epic Systems of Madison, Wisconsin. There is one module in particular, Clarity, which provides trending information to management. &lt;/li&gt;&lt;li&gt;Hospitals and other health care institution which may be using other products (Oracle, Teradata, DB2) but wish to use the MSSQL BI stack for further analytical support.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;Why would I attempt this ambitious endeavor? I have in my career (outlined in the About Me portion of the Blog Profile) long lamented that the techniques of Business Intelligence so prevalent in other verticals (manufacturing, supply chain, financial) have not percolated to health care - an endeavor that currently consumes 17% of the GNP of United States.&lt;br /&gt;&lt;br /&gt;Stimulus programs are forthcoming which will provide financial carrots to install computerized health care software. Penalties (in the form of reduced Federal reimbursements) are also anticipated should a health care organization fail to implement a system in the next few years. This blog will in future installments show concrete use of the SQL products in this vertical, particularly the use of Business Intelligence techniques.&lt;br /&gt;&lt;br /&gt;I'll be showing how the features new to SQL 2008 can be applied to an Epic Clarity environment, including the following: &lt;/p&gt;&lt;ol&gt;&lt;li&gt;Resource Governor&lt;/li&gt;&lt;li&gt;Row compression&lt;/li&gt;&lt;li&gt;Permissions tailored for report and software developers&lt;/li&gt;&lt;li&gt;New indexing solutions - filtered indexes&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;One of the immediate other topics will be the use of Reporting Services to report on Clarity and other data sources. Two dozen topics are planned, including the scaling of a Reporting Services (RS) server, the pitfalls of multi-valued parameter reports and remedies, and techniques needed to monitor reports and improve the quality of data.&lt;br /&gt;&lt;br /&gt;So stick around as this gets into gear. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1171988512997533283-6690890526550946845?l=www.mssql-healthit.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.mssql-healthit.com/feeds/6690890526550946845/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.mssql-healthit.com/2009/06/introduction-to-my-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6690890526550946845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1171988512997533283/posts/default/6690890526550946845'/><link rel='alternate' type='text/html' href='http://www.mssql-healthit.com/2009/06/introduction-to-my-blog.html' title='Introduction to My Blog'/><author><name>Michael Clifford</name><uri>http://www.blogger.com/profile/05498529332123751225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://1.bp.blogspot.com/_ijPrtYnJ5aM/SiqajDGAyMI/AAAAAAAAAAM/eLdTrmBQtUw/S220/mclifford.jpg'/></author><thr:total>0</thr:total></entry></feed>
