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