Uploaded image for project: 'Red Hat Fuse'
  1. Red Hat Fuse
  2. ENTESB-11424

FHIR - datamapper: mapped an URL string as a record ID

XMLWordPrintable

    • Fuse 7.6 - Sprint 55 (1/4)

      (Migrated from https://github.com/syndesisio/syndesis/issues/5542)

      Author: Martin Stepanek
      Assignees: Rafal Korytkowski, Paul Leacu,

      This is a...

      [pre][code]
      [ ] Feature request
      [x] Regression (a behavior that used to work and stopped working in a new release)
      [ ] Bug report [!-- Please search GitHub for a similar issue or PR before submitting --]
      [ ] Documentation issue or request
      [/code][/pre]

      Description

      I have an integration:
      FHIR_delete-export.zip

      DB periodic SQL -> FHIR create -> datamapper -> FHIR delete -> log
      datamapper should map id.value from CREATE action to id from DELETE action

      But what is mapped is:
      [code]http://hapi.fhir.org/baseDstu3/Patient/1948754/_history/1[/code]

      instead of just 1948754
      which causes an exception:
      [pre][code]
      org.apache.camel.RuntimeCamelException: Error invoking resourceById with {stringId=http://hapi.fhir.org/baseDstu3/Patient/1948754/_history/1, resourceAsString=[?xml version="1.0" encoding="UTF-8" standalone="no"?][tns:Patient xmlns:tns="http://hl7.org/fhir"][name][tns:given value="Joe"/][tns:family value="Jackson"/][/name][/tns:Patient], extraParameters={}, type=Patient, version=null, resourceClass=Patient}: LogicalId can not contain '/' (should only be the logical ID portion, not a qualified ID)
      at org.apache.camel.util.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:514)
      at org.apache.camel.util.component.AbstractApiProducer.doInvokeMethod(AbstractApiProducer.java:120)
      at org.apache.camel.util.component.AbstractApiProducer$1.run(AbstractApiProducer.java:86)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
      at java.util.concurrent.FutureTask.run(FutureTask.java:266)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
      at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
      at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.IllegalArgumentException: LogicalId can not contain '/' (should only be the logical ID portion, not a qualified ID)
      at ca.uhn.fhir.rest.client.impl.GenericClient$DeleteInternal.resourceById(GenericClient.java:671)
      at org.apache.camel.component.fhir.api.FhirDelete.resourceById(FhirDelete.java:71)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:498)
      at org.apache.camel.util.component.ApiMethodHelper.invokeMethod(ApiMethodHelper.java:506)
      ... 9 more
      [/code][/pre]

              rkorytk@redhat.com Rafal Korytkowski (Inactive)
              mastepan@redhat.com Martin Stepanek
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: