You are correct. We will need to communicate with several different
applications at multiple facilities. I will check out OpenESB and Mirth.
From: [email protected]
Date: Thu, 28 Jul 2011 12:37:19 -0400
Subject: Re: [HAPI-devel] Conversion between versions
To: [email protected]
CC: [email protected]; [email protected]
Hi Jake,
If I'm understanding your situation correctly, you have an internal application
that needs to send out messages to a number of systems, and you want to
standardize the creation of messages but allow customization for individual
receiving systems.
This is definitely a pretty common scenario, and there's lots of possible ways
to dealing with it. As already mentioned, using an integration engine is
certainly the most common. Here at UHN we are using OpenESB with HAPI quite
successfully. Mirth is also a great option to look at.
Naturally if you are just doing this for one stream of data, using an engine
may well be overkill, and it's perfectly reasonable to just put the transforms
directly in your application somehow. My own take is that XSLT would do the
job, but would inherently be much harder to read and maintain than just coding
your transform in Java using HAPI's built in message types. (YMMV of course.
This is personal opinion, but I've used XSLT for various purposes on at least 3
projects in my lifetime, and in all three I've ended up deeply regretting that
decision when 6 months passed and I needed to make changes to the transform)
James
On Thu, Jul 28, 2011 at 10:17 AM, Jake C <[email protected]> wrote:
I have used Symphony before, and I hated it. They claim to be the fastest
engine around, but their scripting environment sucks. Absolutely the worst IDE
I have ever used in my life, and I refuse to touch it. :-) It couldn't even
copy/paste correctly.
That IS basically what I want, but that was a long time ago, before XML was
king, and it seems like XSLT is a good way to go now. Frankly, what the
Integration Engines do doesn't seem that difficult (says the man who has never
coded one), and XSLT is very powerful. With a good set of example
transformations, I believe a non-coder can put together an XSLT quite handily.
Now, I could be wrong in my belief (it has happened before), so I wanted to see
some example XSLTs from someone who went the XML route. However, a list of
decent transformation engines might be worth having, if anyone wants to name
some they have liked using.
This conversation has veered from the subject title. Should I start a
different, more aptly named thread?
> From: [email protected]
> To: [email protected]; [email protected]
> CC: [email protected]
> Date: Thu, 28 Jul 2011 06:43:38 -0500
> Subject: RE: [HAPI-devel] Conversion between versions
>
> Jake,
> Based on what you describe, have you considered using an Integration
> Engine? This would allow you to convert all your feeds into a "standard"
> message which you could program to. I have seen/used this approach whenever
> multiple feeds with various versions and each source with its own quirks.
>
> Regards
> Raja
>
> ________________________________________
> From: Jake C [[email protected]]
> Sent: July 28, 2011 12:23 AM
> To: [email protected]
> Cc: [email protected]
> Subject: Re: [HAPI-devel] Conversion between versions
>
> Gah! I thought I DID RTFM, but I didn't see the CanonicalModelClassFactory
> example. :-/
>
> One thing I am interested in is who is expected to perform the service
> specified in an ORM, but there doesn't seem to be a place in the message
> structure for it (I believe this is why the REF_I12 was created, but EMRs
> don't seem to support it yet). I don't want to hard-code a placement for
> that, because if an EMR includes it at all, it could be in PV1-7,9,52, or who
> KNOWS where. I want to look for it in one place, and if a particular
> application/facility puts it somewhere else, I can use some form of
> transformation to move it to the place I'm looking for it.
>
> I have seen other cases where things are just not quite standard, and instead
> of having to hard-code an exception whenever we integrate with a new
> application/facility, I can just create a new transformation and link it to
> the application/facility.
>
> I know that I could probably write a subclassed parser to do this, but I'd
> rather not have to code-recompile-redeploy my app just because a new
> integration was introduced. I would much rather configure something to do the
> transformation.
>
> I have seen other applications use XML and XSLT to do this, and I was
> wondering if the HAPI community has done anything like this, and produced any
> XSLT files for it.
>
> ________________________________
> From: [email protected]
> Date: Wed, 27 Jul 2011 22:06:00 -0400
> Subject: Re: [HAPI-devel] Conversion between versions
> To: [email protected]
> CC: [email protected]
>
> Hi Jake,
>
> You'll find two techniques for dealing with multiple versions under "handling
> multiple versions" here: http://hl7api.sourceforge.net/devbyexample.html
>
> I'm not sure I understand your second question though. What type of
> "handling" do you need to do?
>
> Cheers,
> James
>
> On Wed, Jul 27, 2011 at 8:46 PM, Jake C
> <[email protected]<mailto:[email protected]>> wrote:
> I see a few requests in the archive about how to convert messages between
> different versions of HL7, but so far, no replies to any of them.
>
> I have a similar need. I need to communicate with different applications, and
> I will not be able to dictate which version of HL7 they use. I also do not
> want to have to program to all the different versions of HL7. I would like to
> be able to accept a message in any version of HL7, but only have to
> manipulate a single version. For example, in my test application, I convert
> to a ca.uhn.hl7v2.model.v26.message.ORU_R01, and get my Provider information
> from ca.uhn.hl7v2.model.v26.datatype.XPN, and I don't want to have to write a
> conversion method for all other versions, just 2.6.
>
> Once I have THAT accomplished, I will also need to do some manipulation on a
> per-application basis, and I was wondering if there was a "typical" way that
> was accomplished.
>
> One method I have heard of is to convert the message to XML and create a XSLT
> for each application that does something "non-standard". Is that what people
> using HAPI typically do? If so, does anyone have any example XSLT files?
>
> ------------------------------------------------------------------------------
> Got Input? Slashdot Needs You.
> Take our quick survey online. Come on, we don't ask for help often.
> Plus, you'll get a chance to win $100 to spend on ThinkGeek.
> http://p.sf.net/sfu/slashdot-survey
> _______________________________________________
> Hl7api-devel mailing list
> [email protected]<mailto:[email protected]>
> https://lists.sourceforge.net/lists/listinfo/hl7api-devel
>
>
------------------------------------------------------------------------------
Got Input? Slashdot Needs You.
Take our quick survey online. Come on, we don't ask for help often.
Plus, you'll get a chance to win $100 to spend on ThinkGeek.
http://p.sf.net/sfu/slashdot-survey
_______________________________________________
Hl7api-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hl7api-devel