You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Quinn Stevenson <qu...@pronoia-solutions.com> on 2017/12/20 19:57:56 UTC

Re: HL7/Using terser in Bean

If I understand what you’re asking, you could use a HAPI Terser (https://hapifhir.github.io/hapi-hl7v2/base/apidocs/ca/uhn/hl7v2/util/Terser.html <https://hapifhir.github.io/hapi-hl7v2/base/apidocs/ca/uhn/hl7v2/util/Terser.html>) in your bean.

HTH

Quinn Stevenson
quinn@pronoia-solutions.com
(801) 244-7758



> On Oct 26, 2017, at 10:35 AM, Walzer, Thomas <th...@integratix.net> wrote:
> 
> Hi everyone,
> 
> I think I painted myself into a mental corner.
> 
> Goal is to achieve a canonical dataformat to log my HL7 messages.
> 
> I would like to accomodate various HL7 versions/event types where I need different terser expressions like
> /PATIENT_RESULT/PATIENT/PV1-19-1 or
> /RESPONSE/PATIENT/VISIT/PV1-19-1 for PV1-19.
> These expressions are dependent on version, event type, etc.
> 
> In my route the expressions work ok, however I have lots of choice/when decisions which breaks easily. So I thought about putting that logic into a bean.
> That works great with @Terser language annotations. However those expressions are fixed. I would have loved to use terser expressions in the bean. Like so:
> 
> if (versionId.equalsIgnoreCase("2.2")) {
>                headers.put(„dob", terser("/PATIENT_RESULT/PATIENT/PID-7-1"));
>                headers.put(„surname", terser("/PATIENT_RESULT/PATIENT/PID-5-1"));
>                headers.put(„name", terser("/PATIENT_RESULT/PATIENT/PID-5-2"));
>                headers.put("pid", terser("/PATIENT_RESULT/PATIENT/PID-3-1"));
>                headers.put(„caseno", terser("/PATIENT_RESULT/PATIENT/PV1-19-1"));
> } else if (versionId.equalsIgnoreCase("2.3")) {
>                headers.put(„dob", terser("/RESPONSE/PATIENT/PID-7-1"));
>                headers.put(„surname", terser("/RESPONSE/PATIENT/PID-5-1"));
>                headers.put(„name", terser("/RESPONSE/PATIENT/PID-5-2"));
>                headers.put("pid", terser("/RESPONSE/PATIENT/PID-3-1"));
>                headers.put(„caseno", terser("/RESPONSE/PATIENT/VISIT/PV1-19-1"));
> 
> Is this possible? Or are there other approaches I am currently missing?
> 
> I created a sample in https://github.com/twalzer/tersertest that kinda works. But not like sketched above. Any hints?
> 
> Cheers, Thomas.
> 
> 
> 
> 
>