<?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-8539456</id><updated>2011-04-21T14:13:06.684-07:00</updated><title type='text'>simon chester</title><subtitle type='html'>...healthcare.solutions.and.stuff...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8539456.post-116664112115317354</id><published>2006-12-20T10:58:00.000-08:00</published><updated>2006-12-20T10:58:41.156-08:00</updated><title type='text'>Competition vs Cooperation</title><content type='html'>&lt;p class="MsoNormal"&gt;&lt;a href="http://www.blogger.com/comment.g?blogID=8539456&amp;postID=115893966784399322"&gt;http://www.blogger.com/comment.g?blogID=8539456&amp;amp;postID=115893966784399322&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Interesting comment from Anonymous above. I do agree in part with their comments. Cooperation is a key trait in the development and evolution of the human body of knowledge. However, I would also have to point out that the competition “clause” still applies in the two examples given. The difference is in the level of organisation.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Rather than two individuals competing, in these cases it was two countries or groups of countries. Without the competing pressure of war or national pride, the governments would not have been motivated to remove the barriers between the small units (such as individuals or companies).&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;Is cooperation a uniquely human trait? There are plenty of examples in nature of non-human, and even non-simian cooperation. For example wolves raising alpha couple’s pups. Or go lower in the level of complexity and look at colonial organisms such a Man O’Wars. Likewise there are plenty of examples of intra-species competition.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;On a software level cooperation is necessary and beneficial even in a competitive model. If I want to write/market/sell a killer product I can’t do that on my own. Not only would I need help in writing the product (otherwise it would take too long) but I would also benefit from working with marketing and sales to distribute my product.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;My post is not intended to suggest that competition is the only way. I firmly believe that cooperation through standards and patterns provides a more mature model of product development that benefits not only the end customers, but also the development companies. On the parameters of the product, standards are vital in allowing it to cooperate in an integrated environment.&lt;/p&gt;&lt;br /&gt;&lt;p class="MsoNormal"&gt;I do, however, firmly believe that competition between companies in a similar space ultimately benefits the end user through driving innovation and quality. Competition does not need to be, nor should be suffered to be abusive.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/Open+Source"&gt;Open Source&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Competition"&gt;Competition&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Cooperation"&gt;Cooperation&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-116664112115317354?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/116664112115317354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=116664112115317354' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116664112115317354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116664112115317354'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/12/competition-vs-cooperation.html' title='Competition vs Cooperation'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-116225102032957168</id><published>2006-10-30T15:30:00.000-08:00</published><updated>2006-10-30T15:31:11.866-08:00</updated><title type='text'>Ok, slightly different topic...</title><content type='html'>&lt;p&gt;The universe is a big place. Impossibly large in fact. This video does an interesting job of putting into perspective the size of the universe:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://geeksaresexy.blogspot.com/2006/10/hubble-deep-field-most-important-image.html"&gt;http://geeksaresexy.blogspot.com/2006/10/hubble-deep-field-most-important-image.html&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But. Something occured to me watching it. Something I once saw as a child. The words of a song...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&amp;quot;So remember when you’re feeling very small and insecure&lt;br /&gt;How amazing and unlikely is your birth&lt;br /&gt;And pray that there’s intelligent life somewhere out in space&lt;br /&gt;‘Cause there’s bugger all down here on earth.&amp;quot;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Ok, actually it's the first two lines there. The most impressive thing about the video is not the awesome reaches of space, but the kid singing with complete abandon into his web cam! A life being lived. Pretty cool!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/Random+Thought"&gt;Random Thought&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-116225102032957168?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/116225102032957168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=116225102032957168' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116225102032957168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116225102032957168'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/10/ok-slightly-different-topic.html' title='Ok, slightly different topic...'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-116224982744328775</id><published>2006-10-30T15:06:00.000-08:00</published><updated>2006-10-30T15:16:18.193-08:00</updated><title type='text'>What have you done to make it better?</title><content type='html'>&amp;quot;When you hear that a Japanese library is about to start using palm-vein technology to recognise the borrowers taking out its books, what is your instinctive reaction? Do you think, how marvellous - I've spent years worrying that someone might nick my identity and start taking out Anita Desai and Agatha Christie under my name? Or do you think, hang on a minute - that plastic library card has really been no hassle, and I really don't want to find myself living in the tracking and surveillance world of Minority Report?&amp;quot; &lt;br /&gt;&lt;p&gt;This, for me, highlights one of those critical elements in information technology. We get caught up in the wonderfully fantastic things we can do. Look at the cool technology we can bring to bear on this. How amazing!&lt;/p&gt;&lt;br /&gt;&lt;p&gt; But whats the point? How often do we stop and ask where the benefit is? We can design many many cool pieces but if it doesn't solve a real problem for users then who's time are we wasting? Theirs or ours? &lt;/p&gt;&lt;br /&gt;&lt;p&gt;Or to put it another way; If it's not broken, don't fix it! &lt;/p&gt;&lt;br /&gt;&lt;p&gt;[Ref: &lt;a href="http://www.guardian.co.uk/terrorism/story/0,,1923240,00.html"&gt;http://www.guardian.co.uk/terrorism/story/0,,1923240,00.html&lt;/a&gt; Jenni Russell]&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/User+Benefit"&gt;User Benefit&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-116224982744328775?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/116224982744328775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=116224982744328775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116224982744328775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/116224982744328775'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/10/what-have-you-done-to-make-it-better.html' title='What have you done to make it better?'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-115893966784399322</id><published>2006-09-22T08:41:00.000-07:00</published><updated>2006-09-22T08:41:07.886-07:00</updated><title type='text'>Open Source vs. Proprietary</title><content type='html'>&lt;p&gt;It was about 203,563 years ago, on a Tuesday morning, at about 11ish in the morning. The sun was bright in the sky and there was a gentle breeze from the south. Og had a brainwave. So sick was he of burning his hands while trying to cook a rat that he picked up a stick, rammed it through the rat and held it over the fire. Beautiful he thought! Now Ms Oog will like him since he'll be able to pick lice from her back without burnt hands! Then the stick burnt through and the rat fell in the fire. Damn.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Brian was watching this and had another brainwave. He soaked the stick in water and did the same. Perfection. Crispy rat, non-crispy hands, and he ran off with Ms Oog much to Ogs disgust.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Right there, at that point competition between humans began. And so did innovation.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Roll forward 203,563 years later and competition is alive and well, and one of the most hotly debated concepts around. Especially in software. Two seemingly polarised camps have emerged, tribes if you will; open source vs. proprietary. Both are powerfully represented and passionately defended. Often the arguments between the camps are vitriolic and personal. From the open source camp comes the charge that the proprietary tribe are evil and self serving. From the proprietary group come the charges of tree hugging etc etc....&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But both have solid arguments and neither are truly wrong. Open source leads to large scale groups of minds that can refine ideas over a large area. From proprietary comes innovation driven by competition. Think back to all the technological advances that have been made during war time. Would jets have developed so quickly? Would computers have been so prevalent?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Imagine a world without competition. Imagine, if you will, that Microsoft ME was the last desktop. No competition to drive the development of new software. Ok, you can stop screaming now. Without competition would we be driven to develop new advances?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I have never been 100% on one side or the other. As a system integrator I dislike closed systems. As a business person, I like competitive edge.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So what am I talking about? My greatest area of interest is in standards. For me SOA provides an interesting balance between open source and proprietary methodology. Define the interfaces and communications between systems in a standard based, community agreed way, and treat the implementation of the service (the black box portion if you will) as proprietary. Within Healthcare we have HL7 as the primary developer of standards. Recently a new Special Interest Group (SIG) has been started up; SOA for HL7. Reviewing the draft documentation from the group I see that the primary intent is to describe the service definition without technological specifics (as much as possible) and then leave the implementation of the service up to individual companies and providers.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;For me this is a perfect balance between the two tribes; it allows me to ensure the work I do benefits everyone, whilst leaving me free to innovate and develop a competitive edge. I can satisfy my desire to work to a common good by involvement in the organisation AND still provide benefit to my company.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Within the industry we have discussed standards for years, but it is only recently that I have begun to feel that this is truly becoming a realistic possibility. So I will continue to harp on about standards to my customers and colleagues (sorry guys)!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/Healthcare"&gt;Healthcare&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Standards"&gt;Standards&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Open+Source"&gt;Open Source&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Proprietary"&gt;Proprietary&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-115893966784399322?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/115893966784399322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=115893966784399322' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115893966784399322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115893966784399322'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/09/open-source-vs-proprietary.html' title='Open Source vs. Proprietary'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-115833444344137498</id><published>2006-09-15T08:34:00.000-07:00</published><updated>2006-09-15T08:34:03.483-07:00</updated><title type='text'>HL7 Ballot Site</title><content type='html'>&lt;p&gt;Well the latest version of the ballot is up on the HL7 site for v3. Actually it might have been up for a while but I've been on holiday! (Rare thing I know!)&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://www.hl7.org/v3ballot/html/welcome/introduction/index.htm" title="blocked::http://www.hl7.org/v3ballot/html/welcome/introduction/index.htm"&gt;http://www.hl7.org/v3ballot/html/welcome/introduction/index.htm&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/HL7"&gt;HL7&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Healthcare"&gt;Healthcare&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-115833444344137498?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/115833444344137498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=115833444344137498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115833444344137498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115833444344137498'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/09/hl7-ballot-site.html' title='HL7 Ballot Site'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-115773631421010462</id><published>2006-09-08T10:25:00.000-07:00</published><updated>2006-09-08T10:25:14.256-07:00</updated><title type='text'>Fast or slow</title><content type='html'>&lt;p&gt;You know, as developers we have become lazy. To be fair it's not our fault. It makes sense for us to be lazy. It is econmically responsible for us to be this way. Consider, as developers should we spend time shaving 5% off the overall speed of our applications when we can install the application on a fast machine that will not even register the difference? Does that make sense for our customers? In fact much of my time is spent convincing people it doesn't. Development time costs more that processing power, and memory, and network speeds are so fast these days that why bother?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;But then just when you think it will never matter again, circumstances come along that change your view point and you really wish things were more carefully written. For example a customer in the far north has a number of remote sites connected by satellite phone. And dog sleds. I kid you not. So all the &amp;quot;slow&amp;quot; applications that send large data volumes suddenly become problematic. Even worse are web apps. Fat clients might be easier, but remember the dog sleds? Good luck installing them.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Numerous countries that are developing are bypassing the copper/fibre networks and moving directly to wireless and satellite. Heavy network requirements need to be examined in these cases.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So I have been thinking, does AJAX give us a way through? Develop a virtual fat client web app, that makes heavy use of client side caching, and then use AJAX to refresh data at the start and end of a process. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/AJAX"&gt;AJAX&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="color:#008;text-align:right;"&gt;&lt;small&gt;&lt;em&gt;Powered by&lt;/em&gt; &lt;a href="http://www.qumana.com/"&gt;Qumana&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-115773631421010462?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/115773631421010462/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=115773631421010462' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115773631421010462'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115773631421010462'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/09/fast-or-slow.html' title='Fast or slow'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-115757851880544636</id><published>2006-09-06T14:18:00.000-07:00</published><updated>2006-09-15T08:47:20.680-07:00</updated><title type='text'>HL7 Object Model</title><content type='html'>So I can't believe its been a year since the normative standard of HL7 version 3 has been released. It seems years in the coming, and now here it is.&lt;br /&gt;&lt;p&gt;But that's obviously just the start. So we have the RIM. We have DMIMs. And we have schemas. In fact we have a lot of schemas. 1000's in fact. And many different data types. So the next big question is how do we use them?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Well that probably depends on what you are trying to achive. (As a side note that's one of the reasons why there are so many; controlled flexibility) Interested in a detailed healthcare data model around the Laboratory? Try the Lab Domain DMIM. Interested in allowing a doctor to request an appointment with a hospital for a patient? Look at the interactions for the Scheduling Domain. And that's were the benefit and pitfall of the Version 3 paradim lie. It can be used to describe just about anything in the healthcare space, so where do you start?&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One area of interest is in the generation of class libraries that reprisent the data contained within the interaction messages. There are many reasons why you would want to do this, say simplifying development of software that would like to communicate in the HL7 v3.0 world. But again there are many situations where this is hardly ideal, say when you want to extract a single value from the message.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I have enough reasons to make it worthwhile. So. If you try and generate a series of class libraries directly using a tool you end up with an awful lot of classes. Not so helpful. With thousands of datatypes being represented by thousands of classes you might as well use xPath given the memory requirements. A more subtle approach may be required.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;One area I am currently investigating is the generation of base libraries of data types. I think the best approach is to start with the core schemas in the HL7 schemas. Only data types that have actual implementations will be included (so if an element is cloned but never used it's out). Once these have been modelled its onto the CMETs. Then we can start looking at software factories, or tools to generate domain specific classes.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;The trick here is going to be namespacing to prevent redevelopment or multiple reprisentations of the same data type. Once the basic platform is created tools will hopefully provide the way forward to creating specific and re-usable, but most of all fast &lt;em&gt;classes&lt;/em&gt; for serializing/deserializing HL7 interactions. Beyond that? Auto generation of web service end points, databases and fully interactive class systems (i.e. the system should be aware of associated messages).&lt;/p&gt;&lt;br /&gt;&lt;p&gt;I'll let you know how it goes!&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Addendum:&lt;br /&gt;&lt;/strong&gt;Steve Hart has posted on this subject as well at &lt;a href="http://www.hartsteve.com/2006/09/11/hl73-xml-msg-receipt-handling/"&gt;http://www.hartsteve.com/2006/09/11/hl73-xml-msg-receipt-handling/&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;small&gt;Tags: &lt;a rel="tag" href="http://technorati.com/tag/HL7"&gt;HL7&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/.Net"&gt;.Net&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Object+Model"&gt;Object Model&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Healthcare"&gt;Healthcare&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tag/Steve+Hart"&gt;Steve Hart&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-115757851880544636?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/115757851880544636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=115757851880544636' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115757851880544636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/115757851880544636'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/09/hl7-object-model.html' title='HL7 Object Model'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113641932634500911</id><published>2006-01-04T16:02:00.000-08:00</published><updated>2006-01-04T16:02:06.380-08:00</updated><title type='text'>Temporal Sequencing In BizTalk</title><content type='html'>Temporal sequencing relates to the ability of a message broker to ensure that messages are sent out in the order in which they are received. In a simple broker this is a simple matter as each message is processed one by one in the order in which they are received. At a very basic level this can be insured by writing the messages to the data store as they are received and thenprocessing messages from the &lt;/font&gt;&lt;i&gt;top&lt;/i&gt; of the table first.&lt;br /&gt;&lt;br /&gt;Within BizTalk this is a larger issue since multiple treads of processing can occur at the same time, and there is no guarantee that each thread will execute at the same rate, or that the amount of processing time will be equal for each message. The processing time will be affected directly by the size and complexity of each message. This is further compounded by the ability of BizTalk to be clustered.&lt;br /&gt;&lt;br /&gt;The result of this is that BizTalk &lt;b&gt;does not guarantee the order of messages&lt;/b&gt;. It is important to realize this is not a design flaw rather an inherent result of the mechanisms used within BizTalk to ensure scalability and efficiency. Its also worth noting that for the large majority of cases this is not an issue and the speed of the product is far more important than the temporal sequencing of the messages.&lt;br /&gt;&lt;br /&gt;In HealthCare however there are a number of valid circumstances where temporal sequencing is required. A good example of this would be admission. If a patient is admitted into a hospital typically an A01 would be raised to show that event. If a admitting clerk then realized that the name was incorrect they would make a change to demographics and this would be represented by an A08. If the A08 is received prior to the A01 by a target system then an error condition would be encountered. That situation is a problem but a worse situation would be where two A08 were sent with the second overriding the first. In that case the target system would end up with the wrong data, with no error raised.&lt;br /&gt;&lt;br /&gt;One solution to the problem has been provided by Microsoft on GotDotNet (&lt;font color="#0000FF"&gt;&lt;u&gt;http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=a50f9c7f-6c56-4791-86fb-68c4e4449713&lt;/font&gt;&lt;/u&gt;). Briefly (the documentation explains the problem and solution well) the provided solution utilizes an auxiliary database to track message order. When a message arrives into the receive pipeline an entry is made in a tracking database. When the message leaves the send pipeline the message is checked to ensure that it is the oldest. If it is not, the pipeline returns null and the message is not sent.An additional orchestration is used to insert a &lt;i&gt;hold&lt;/i&gt; into the process so that other threads in action have a chance to complete, hopefully releasing the older messages.&lt;br /&gt;&lt;br /&gt;The solution is quite simple and can be implemented by the code provided or a similar system can be easily coded. &lt;br /&gt;&lt;br /&gt;One word of warning though; by including this mechanism in the broker performance will be impacted for a couple of basic reasons. Firstly the orchestration used to insert a hold will take processing power and time, as will the additional pipeline components used. Secondly each message is not free to process and release as fast as possible. &lt;br /&gt;&lt;br /&gt;In the end the system is a trade off. If you require temporal sequencing then you will need to sacrifice some performance. If you dont then do not implement this solution.&lt;br /&gt;&lt;br /&gt;(Thanks to Suren MachiRaju for posting this)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-113641932634500911?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113641932634500911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113641932634500911' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113641932634500911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113641932634500911'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2006/01/temporal-sequencing-in-biztalk.html' title='Temporal Sequencing In BizTalk'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113389564629322162</id><published>2005-12-06T11:00:00.000-08:00</published><updated>2005-12-06T11:00:46.316-08:00</updated><title type='text'>HL7 Accelarator For BizTalk 2004</title><content type='html'>Since most of my work is centered around BizTalk and HealthCare it probably comes as no suprise that I spend a significant amount of my time on the HL7 Accelerator for BizTalk 2004. Since the product is pretty big, and there are many interesting / annoying points I'll probably split this up into a few postings...&lt;br /&gt;So. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;The basics&lt;/b&gt;;&lt;br /&gt;The accelerator provides 3 major parts of interest;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;The schemas for HL7 version 2.x messages (with some caveats)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The pipeline component to serialize / deserialize the HL7 messages&lt;/li&gt;&lt;br /&gt;&lt;li&gt;MLLP Adapter for BizTalk&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;(More details on the accelerator can be found &lt;a href="http://www.microsoft.com/biztalk/evaluation/hl7/default.mspx"&gt;here&lt;/a&gt;)&lt;br /&gt;On a very basic level when you install the Accelerator you get the ability to generate a series of HL7 message schemas within a BizTalk project. These are based on the HL7 XML schemas provided for v2.x (Nb. If you are looking at version 3 schemas for HL7 be aware that there is no support for that within the &lt;i&gt;current&lt;/i&gt; accelerator).&lt;br /&gt;The pipeline component provided has the &lt;i&gt;smarts&lt;/i&gt; required to serialize and deserialize the raw HL7 message to the BizTalk XML HL7 message. &lt;br /&gt;&lt;br /&gt;So far so good. And if your project was to attach say Eclipsis (an admission system) to Misys (a Laboratory Information Management System) then all would be good and everyone happy (although given most vendors semiconducting to the &lt;i&gt;standard&lt;/i&gt; you can expect a decent amount of time on schema rework.) The Adapter will handle the transport for you, parties will also allow you to add in multiple source systems on a single receive port and apply different schemas. The more interesting problems start when you are putting in place a "clinical messaging engine"...&lt;br /&gt;&lt;br /&gt;For a start, it is pretty standard in BizTalk to utilize the &lt;b&gt;Canonical Data Model&lt;/b&gt;. (See Gregor Hohpe's seminal &lt;a href="http://www.enterpriseintegrationpatterns.com/"&gt;Enterprise Integration Patterns&lt;/a&gt; site for more details on the pattern. As a side note, if you are working in integration read this site repeatedly, buy the book and learn the lyrics!). In a typical implimentation of the model you would have a receive schema, a canonical or internal schema, and a send schema. When a message arrives in the receive port a map is applied to transform the message from the receive format to the canonical format. The canonical message is then utilized internally for all business processes, and then the message is sent to a recipient. The message is translated to the send schema on the send port. However if you are using the accelerator this is not possible...&lt;br /&gt;&lt;br /&gt;The reason is that the accelerator receives a flat file message that is pipe delimited. The pipeline component processes the message, using parties to determine which schema to apply to the XML output. Provided no errors are encountered in the deserialization of the message then a map on the pipeline would successfully translate the XML message to a secondary format. Prior to the map though the pipeline very importantly raises an ACK: which is sent back to the sender. The ACK will can be either an AA or AE ACK (alright there are more types, but for the purpose of this rambling these two will suffice). The AA ACK says that the message was received and accepted. The AE says the message was received and rejected. And the errors are included. And we never receive any errors right? Sigh...&lt;br /&gt;&lt;br /&gt;If a message arrives with an error AND you have a map on the pipeline as well as the HL7 component, the resulting behaviour is that no ACK is raised and no XML message is left in the MessageBox on BizTalk. Why? Well if a message is received with an error in it (such as an unexpected delimiter in the message, say using an unescaped &amp; in a text field) the pipeline component will fail to translate the message to XML. It will then create an ACK with error details to return to the sending system, and pass the &lt;b&gt;NON-XML&lt;/b&gt; HL7 message to the message box. If you have a map next, the input schema will not be the expected XML message, and the map will fail. At this point BizTalk will through an error and terminate the pipeline. The result is the ACK waiting to be sent out will also fail , and the world will come to a sticky end. Now one would expect the sending system to gracefully handle no ACK being returned by retrying a given number of times, and the failing the specific message and moving on right? Obviously not. The normal behaviour is to fail completely and shut down!&lt;br /&gt;&lt;br /&gt;So to avoid the unpleasantness that comes from breaking all the clinical systems &lt;b&gt;do not have any maps on the receive port along with the HL7 accelerator pipeline component&lt;/b&gt;. Instead;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;have an orchestration that consumes the receive message and maps to the canonical format&lt;/li&gt;&lt;br /&gt;&lt;li&gt;"re-send" the XML HL7 message to a second receive port and proceed as normal&lt;/li&gt;&lt;br /&gt;&lt;li&gt;extend the HL7 pipeline to change its behaviour (btw its sealed so you cannot inherit it, but you can wrapper it&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Personally I chose number 1 as the most expedient and realistic mechanism on my current project. Option 2 would have less assets in the solution, and Option 3 would be cleanest. Option 4 of course would be to re-develop the pipeline component or ask Microsoft very nicely to do it!&lt;br /&gt;&lt;br /&gt;That's all folks.... Next time I think its probably going to be about reduction of solution assets in an Accelerator project...&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/8539456-113389564629322162?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113389564629322162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113389564629322162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113389564629322162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113389564629322162'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2005/12/hl7-accelarator-for-biztalk-2004.html' title='HL7 Accelarator For BizTalk 2004'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113313813067977535</id><published>2005-11-27T16:35:00.000-08:00</published><updated>2005-11-27T16:35:30.683-08:00</updated><title type='text'>linux fretting</title><content type='html'>Just on a random note; what will linux users do if linux ever becomes the defacto os? How will they be &lt;i&gt;special &lt;/i&gt;then?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-113313813067977535?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113313813067977535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113313813067977535' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113313813067977535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113313813067977535'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2005/11/linux-fretting.html' title='linux fretting'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113306585543358825</id><published>2005-11-26T20:30:00.000-08:00</published><updated>2005-11-26T21:16:42.583-08:00</updated><title type='text'>w.bloggar test</title><content type='html'>So my biggest problem with blogging is always having the time to spend online writing. So w.bloggar was suggested. Lets see if it helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-113306585543358825?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113306585543358825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113306585543358825' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306585543358825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306585543358825'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2005/11/wbloggar-test.html' title='w.bloggar test'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113306493359721798</id><published>2005-11-26T20:08:00.000-08:00</published><updated>2005-11-26T21:17:03.930-08:00</updated><title type='text'>software in healthcare</title><content type='html'>Why?&lt;br /&gt;Good question. I have mixed feelings about software in any environment (heresy for a developer/architect). I should qualify that. I have resevations about lots of software in healthcare. Is it fundimentally wrong, or the saviour of healthcare? Probably neither. At the heart of it software is brilliant if it serves a purpose and makes life better/easier/safer...&lt;br /&gt;I went along to the BCHIMPS talk a few weeks ago and listen to a guy from the NHS in the UK talk about software and healthcare. Two things came across that I agree with very deeply.&lt;br /&gt;&lt;br /&gt;1. Software is only a tool in healthcare. It should never be forgotten that the purpose is to serve patients&lt;br /&gt;2. Data belongs to the patient. Simple and obvious but theres alot of confusion and disagreement on that point.&lt;br /&gt;&lt;br /&gt;As far as software in clinical settings goes, I think it can be a huge benefit as long as it serves rather than confuses. Or as a nurse friend pointed out to me; theres alot of nurses who will retire soon and have no desire to hav to learn new software. Good point I thought!&lt;br /&gt;&lt;br /&gt;So my own personal crusade is to help technologists remember the software is only a tool. Its the application that matters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-113306493359721798?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113306493359721798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113306493359721798' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306493359721798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306493359721798'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2005/11/software-in-healthcare.html' title='software in healthcare'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8539456.post-113306448646619097</id><published>2005-11-26T20:04:00.000-08:00</published><updated>2005-11-26T21:17:23.016-08:00</updated><title type='text'>in the beginning....</title><content type='html'>Apparently there was actually life (of sorts) &lt;em&gt;before &lt;/em&gt;the earth cooled... Put that in your pipe and smoke it Mr.Jones!&lt;br /&gt;After much discussion with my boss (Jame) I have finally caved in and agreed to put down some of my thoughts and so on in a blog. Hopefully I'll manage to avoid adding more un-required noise to the internet, but if not, this will be like most other blogs!&lt;br /&gt;So somehwhere in here will be lots of useful thoughts or argumentitive statements about software in healthcare....&lt;br /&gt;Enjoy&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8539456-113306448646619097?l=simonchester.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://simonchester.blogspot.com/feeds/113306448646619097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8539456&amp;postID=113306448646619097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306448646619097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8539456/posts/default/113306448646619097'/><link rel='alternate' type='text/html' href='http://simonchester.blogspot.com/2005/11/in-beginning.html' title='in the beginning....'/><author><name>Simon Chester</name><uri>http://www.blogger.com/profile/15273886252486826008</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://static.flickr.com/19/110654449_0e70277dfa_s.jpg'/></author><thr:total>0</thr:total></entry></feed>
