Stumbled upon this blog post while doing my research and I thought this should be advertised more.
Healthcare Standards: Where is the XSD for CCD?
Tuesday, September 9, 2014
Healthcare Standards: Where is the XSD for CCD?
Labels:
CCD,
CCDA,
CCR,
Continuity of Care,
healthcare,
Meaningful Use,
MU 2014
Saturday, August 9, 2014
Adopting Agile: Faster Waterfall is not Agile
Adopting Agile: Faster Waterfall is not Agile: Most of the organizations have a myth that if they have shorter release cycles they are agile. Here is a nice blog by my friend Tabassum. Read on...
Wednesday, July 23, 2014
②ality – JavaScript and more: A JavaScript survival guide
②ality – JavaScript and more: A JavaScript survival guide: Are you a programmer who is considering learning JavaScript, but unsure whether it is worth the pain? Then this blog post is for you:
Thursday, May 22, 2014
JavaScript For Loops and its Cousins
What?! JavaScript doesn't have a for-each loop? You gotta be kidding me!
That was my reaction to my co-worker whose code I was peer-reviewing. I suggested him to use a for-each loop instead of a vanilla for. And he said - "I don't remember seeing a foreach loop in JavaScript?!"
JavaScript has some interesting variations to the for loops and I feel they are not really that popular. So in a bid to learn and understand them I wrote a post on CodeProject. I hope you find it helpful.
That was my reaction to my co-worker whose code I was peer-reviewing. I suggested him to use a for-each loop instead of a vanilla for. And he said - "I don't remember seeing a foreach loop in JavaScript?!"
JavaScript has some interesting variations to the for loops and I feel they are not really that popular. So in a bid to learn and understand them I wrote a post on CodeProject. I hope you find it helpful.
Tuesday, May 6, 2014
CCDA Generation Using Everest API
As explained in the previous post in this series, I evaluated some of the APIs available in the market and found Everest to be the best suited among them if you are trying to be within the confines of .net and generate HL7 documents based on standards such as CCDA or QRDA.
Please read the article on Code Project which includes a small Proof Of Concept console app that generates CCDA documents.
It is important to note that even QRDA documents can be generated using the same approach and API.
Please read the article on Code Project which includes a small Proof Of Concept console app that generates CCDA documents.
It is important to note that even QRDA documents can be generated using the same approach and API.
Friday, February 7, 2014
Open Source APIs for CCDA Generation
This blog is a continuation of my previous blog post: How To Generate CCDA/CCD XML Docouments for MU 2014.
Here we evaluate five 3rd party open source APIs for CCDA generation that comply (as claimed by the APIs themselves) with MU 2014 standards.
The objective is to assess the fitment and ease of integration with an existing EHR system so as to enable the latter to achieve 2014 EHR Certification for objectives such as:
170.314(b)(2) - Transitions of care - create and transmit transition of care/referral summaries
170.314(b)(1) - Transitions of care - receive, display and incorporate transition of care/referral summaries
170.314(e)(1) - View, download, and transmit to 3rd party
The comparison brings out the benefits/shortfalls of each of the products, and also makes recommendations. This blog also provides the ground work for further research that may need to be done keeping business priorities of the service provider.
Here we evaluate five 3rd party open source APIs for CCDA generation that comply (as claimed by the APIs themselves) with MU 2014 standards.
The objective is to assess the fitment and ease of integration with an existing EHR system so as to enable the latter to achieve 2014 EHR Certification for objectives such as:
170.314(b)(2) - Transitions of care - create and transmit transition of care/referral summaries
170.314(b)(1) - Transitions of care - receive, display and incorporate transition of care/referral summaries
170.314(e)(1) - View, download, and transmit to 3rd party
The comparison brings out the benefits/shortfalls of each of the products, and also makes recommendations. This blog also provides the ground work for further research that may need to be done keeping business priorities of the service provider.
So, Which API?
I sat down to do an evaluation in similar lines as what NHS Networks has done. I examined 5 products available in the market today and came up with these findings.
Note: This evaluation is done keeping a .net based EHR system in mind.
Model-Driven Health Tools (MDHT)
Technology: Java
Observations:
- The most popular and mature product available in the market today.
- Being Java based, doesn’t lend itself easily for use inside a .net library.
- The generated sample XML available here fails validation by NIST. (MDHT, you listening???)
Everest Framework
Technology: .net
Observations:
- Extensive API. Can be used for various other things than just CCD generation.
- The generated sample XML passes validation by NIST.
- There is a bit of a learning curve using the API because of lack of documentation.
- If the XML changes in future, then we need to rely on the API to update as well. This is a potential risk. A possible way to mitigate this is to maintain the source code of the API and extend it ourselves.
- It doesn’t lend itself to make CCD+ complaint XMLs.
HL7SDK
Technology: .net
Observations:
- Wasn’t easily usable for a quick evaluation.
- Lack of documentation. User forum not very active.
Technology: .net
Observations:
Observations:
- Confirms only to HL7 2.x.
- Old API, not updated actively.
Conclusion
As of the time of writing this blog, Everest seems to be best choice available. In a later blog post I will cover how to use Everest API to generate CCDA documents with code samples.
Labels:
CCD,
CCDA,
CCR,
Continuity of Care,
Meaningful Use,
MU 2014
Thursday, January 16, 2014
jQuery Datepicker Issue: Month and Year dropdowns in IE have to click twice
While working on a legacy code base recently, I was facing an issue with the jQuery Datepicker.
For some reason our customer's code is stuck with jquery-ui-1.8.13.custom.min.js. And the browsers mandated for the application is IE 9 with compatibility view with IE8 standards.
Issue
Load up a page with a Datepicker in it, with both the year and month dropdowns enabled. Click on one of the year/month dropdown lists, it appears and disappears. Click it again and it appears correctly.
After being clueless for few minutes, I realized some event is getting triggered right after the click event that is causing the dropdown list to collapse. Then I noticed this:
Reason
So the problem is jQuery Datepicker is binding two methods to the onchange and onclick events of the select. When I dug more and found this:
Hack
So I figured a quick hack is to get rid of the onclick method body in the plugin code itself. I could do that in the minified file (do it only if you know what you are doing!). Then a co-worker showed an even lower impact change, which is to remove the setTimeout() function body portion only – which, if doesn't break any of your existing functionality, is better.
On searching more I found that this is an issue with that version of the plugin tracked here but I am not sure which version has the fix.
Solution
Ideally I should override the onclick method using something like this. I am yet to try it because I have the "we-will-refactor-later" syndrome.Friday, January 10, 2014
How To Generate CCDA/CCD XML Documents for MU 2014
Most of the IT service providers in the healthcare space are busy taking steps towards getting Meaningful Use (MU 2014) certified. One of the key certification compliance criteria is the generation of various documents in XML format that adhere strictly to the CCDA or Consolidated Clinical Document Architecture.
If you are new to these terminologies or the concepts then I recommend you go through these immensely helpful tutorials first:
If you are new to these terminologies or the concepts then I recommend you go through these immensely helpful tutorials first:
- The bible of all healthcare industry standards: HL7
- Very nicely explained tutorials (videos) at: healthit.gov
- Another one describing MU 2014 and CCDA (ppt) at: healthit.gov
But How?
Well, there are 2 parts to the making of a CCDA document.- Prepare a .net type that mimics the XML. When serialized, this type will give us the XML that we want. Now, there are 3 ways to do this:
- Hand-code the entire .net type(s). This requires in-depth analysis and understanding of the CCDA standard. Also considerable effort is required to develop and maintain the code when the standards change.
- Download the schema XSDs as published by HL7 and then generate the .net type(s) out of it. This can be done by using tools like xsd.exe.
- Use an API that already has such a .net object and exposes it to be used in the code.
- Populate this .net type with the relevant data and serialize it to generate an XML out of it.
Labels:
CCD,
CCDA,
CCR,
Continuity of Care,
Meaningful Use,
MU 2014
Sunday, December 8, 2013
Book Review: JavaScript: Pocket Reference 3rd Edition
- by
David Flanagan
ToC
Publisher: O'Reilly Media; Third Edition edition (April 25, 2012)
ISBN-10: 1449316859 | ISBN-13: 978-1449316853
This is not a javascript pocket reference. It's a guide and an excerpt of a complete reference. Recommended as long as you know what you are buying.
I was hoping I can use this book as a quick reference to anything Javascript, but I didn't quite get that. A pocket reference should be more about coverage than explanation. This book explains some topics at length and doesn't care about many other topics. From a pocket reference you would expect lots of tables and pictures and charts covering the various methods, properties of built in types
This isn't a match to the 2nd edition of the same book, though the authors mentioned that this is intentional. I personally prefer a reference to be a reference first. What this book aims to be instead is a collection of some good portions from the book "6th edition of JavaScript: The Definitive Guide" by the same author.
However I do feel that, what it explains, it explains well. I am an experienced programmer. So, I skipped the basics and started straight from Ch 9. I found the concepts well explained and the examples quite useful. You can rely on this book for understanding the concepts that it covers. The author, no doubt, is one of the finest and you will know if you read the Definitive Guide.
Disclosure
I reviewed this book for O'Reilly's Blogger Review Program
Friday, November 2, 2012
Book Review: Hello! HTML5 & CSS3
Rob Crowther
ToC
Paperback: 560 pages
ISBN-10: 1935182897 | ISBN-13: 978-1935182894
Correspondence between HTML4 elements and their drawbacks and how HTML5 elements improve on them is explained nicely and in a detailed manner. It is so easy to get excited to see such nice things HTML 5 can do and so easily. But unfortunately, very few browsers support only selected features yet.
You certainly need to have some experience of previous versions of HTML and CSS to be able to make the most of this book. But no extensive practical knowledge is required.
And don't forget they have a nice companion website too.
Disclosure
- I am not affiliated to the authors or publishers of this book in any ways.
- I received the book from Manning Publications as part of the Manning Early Access Program (MEAP).
Labels:
Book Review,
CSS 3,
HTML 5,
UI,
Web Development
Saturday, October 1, 2011
Book Review: Dependency Injection in .NET
- by
Mark Seemann
ToC
Paperback: 584 pages
ISBN-10: 1935182501 | ISBN-13: 978-1935182504
Let's just say this is an awesome book, an absolute must read for any .net developer or architect.
And I rest my case.
Disclosure
I am not affiliated to the authors or publishers of this book in any ways.
Labels:
Book Review,
Dependency Injection,
DI,
Inversion of Control,
IOC
Sunday, May 22, 2011
Book Review: Entity Framework 4 in Action
- by
Stefano Mostarda | Marco De Sanctis | Daniele Bochicchio
Paperback: 576 pages | ISBN-10: 1935182188 | ISBN-13: 978-1935182184
The book is divided into 4 parts:
- Redefining your data access strategy
- Working with Entity Framework
- Mastering Entity Framework
- Applied Entity Framework.
But this is not a small book, this is more of a 'complete reference'. And the chapters in a way depend on scenarios or examples covered in previous ones. So if you pick up the book and start from the middle you may not find it easy to comprehend. The book comes with a sample app that the authors walk you through the book. Be aware that you may run into compilation issues at times and will have to debug through to add appropriate references to make the code run. This will not be a problem if you follow the book from page 1 instead of picking it up in the middle. I strongly recommend this book.
Also worth mentioning is that this book is much better than the asp.net book by the same authors and Manning.
Sunday, April 3, 2011
Book Review: ASP.NET 4.0 in Practice
- by
Daniele Bochicchio | Stefano Mostarda | Marco De Sanctis
ToC
Pages: 504 | ISBN: 978-1935182467
About a year ago Manning was kind enough to allow me to review a book of theirs, it was in the pipeline then and now out in the market. I had access to this book as part of their Early Access Program and reviewed it multiple times in the draft phases. Now that it is out in the market I thought it would be nice to blog about how it started and how it turned out in the end and provide a basic review for future buyers.
Overall, this is a great book for intermediate level programmers. And it is important to say right at the outset that it is NOT a book for beginners. In fact the foreword clearly says so. It doesn't aim to be a complete reference, rather it is a collection of best practices presented in a Q & A + Discussion manner.
The chapters in Part 3 on-wards are independent of each other and presented in a capsule-course manner, so can be read by themselves.
Initially I commented that there isn't enough pictorial representation of concepts which they have taken care of somewhat.
Also I found the writing very incoherent. There are plenty of grammatical mistakes. Even without that, I feel, the authors are in a hurry to reach the code snippet and don't cover the theory behind it in-depth.
CodeProject
Daniele Bochicchio | Stefano Mostarda | Marco De Sanctis
ToC
Pages: 504 | ISBN: 978-1935182467
Overall, this is a great book for intermediate level programmers. And it is important to say right at the outset that it is NOT a book for beginners. In fact the foreword clearly says so. It doesn't aim to be a complete reference, rather it is a collection of best practices presented in a Q & A + Discussion manner.
Where it works
You can just pick up the book, read the theory, practice the code snippets given and you are ready to go. Don't be surprised if you end up using the code snippets in many real life problems in enterprise web development.The chapters in Part 3 on-wards are independent of each other and presented in a capsule-course manner, so can be read by themselves.
Initially I commented that there isn't enough pictorial representation of concepts which they have taken care of somewhat.
Where it could be better
A beginner may not find the explanations easy enough to understand. The chapter flow is certainly not helping. (Ch 2 talks about EF?!) For a beginner, it will be difficult to understand certain advanced concepts such as "Path canonicalization vulnerabilities" in the chapter on Security and almost the entire chapter on Performance. Basics of these topics/problems need to be explained a bit more before a solution (and hence the asp.net advantage) is proposed.Also I found the writing very incoherent. There are plenty of grammatical mistakes. Even without that, I feel, the authors are in a hurry to reach the code snippet and don't cover the theory behind it in-depth.
Conclusion
Good for intermediate level developers, but not good enough to get them to an expert level. Definitely not for beginners.Disclosure
I am not affiliated to the authors or publishers of this book in any ways.Saturday, October 16, 2010
C#: Quick Reference – Access Modifiers
C# Access Modifiers
| Declared Accessibility | Description |
| public | Access is not restricted. |
| protected | Access is limited to the containing class or types derived from the containing class. |
| internal | Access is limited to the current assembly. |
| protected internal | Access is limited to the current assembly or types derived from the containing class. |
| private | Access is limited to the containing type. |
Declared Accessibility Rules
| Parent | Parent Default Accessibility | Allowed Declared Accessibility of the Parent | Member Default Accessibility | Allowed Declared Accessibility of the Member |
| namespace | public | None | internal | internal public |
| enum | public | None | public | None |
| class | internal | All | private | All |
| interface | internal | internal public | public | None |
| struct | internal | internal public | private | internal public private |
| constructor | protected | All | ||
| field | private | All | ||
| delegate | internal | internal public |
Sunday, March 28, 2010
A Great Way to Learn Technology: Review Books
I recently wrote an article here about what I think is a great way to learn new technologies. As programmers we all know how important it is to be up to date the happenings in the fast evolving tech world. I hope this idea will help my fellow programmers.
CodeProject
Subscribe to:
Posts (Atom)