Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem loading ValueSet from Belgium's AllergyIntolerance IG #769

Open
marceloabrumet opened this issue Jan 8, 2025 · 1 comment
Open

Comments

@marceloabrumet
Copy link

Hello,
I'm currently investigating compatibility between the hapi-fhir-jpaserver-starter and Belgium's IGs but I'm currently having problems with this specific ValueSet: https://www.ehealth.fgov.be/standards/fhir/allergy/ValueSet-be-causativeagent.html

The ValueSet looks like this:

"resourceType": "ValueSet",
  "id": "be-causativeagent",
  "text": {
    "status": "generated",
    "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>This value set includes codes based on the following rules:</p><ul><li>Include codes from <a href=\"http://www.snomed.org/\"><code>http://snomed.info/sct</code></a> where concept  in  50851000172106 (Belgian subset for AllergyIntolerance, causative agent, non-drug)</li><li>Include codes from <a href=\"http://www.snomed.org/\"><code>http://snomed.info/sct</code></a> where concept  in  50841000172109 (Belgian subset for AllergyIntolerance, causative agent, drug)</li></ul></div>"
  },
  "extension": [
    {
      "url": "http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm",
      "valueInteger": 1
    }
  ],
  "url": "https://www.ehealth.fgov.be/standards/fhir/allergy/ValueSet/be-causativeagent",
  "version": "1.2.0",
  "name": "BeCausativeAgent",
  "title": "BeCausativeAgent",
  "status": "active",
  "experimental": false,
  "date": "2023-12-18T12:02:54+01:00",
  "publisher": "eHealth Platform",
  "contact": [
    {
      "name": "eHealth Platform",
      "telecom": [
        {
          "system": "url",
          "value": "https://www.ehealth.fgov.be/standards/fhir"
        },
        {
          "system": "email",
          "value": "[email protected]"
        }
      ]
    },
    {
      "name": "Message Structure eHealth",
      "telecom": [
        {
          "system": "email",
          "value": "[email protected]",
          "use": "work"
        }
      ]
    }
  ],
  "description": "Causative Agents for Allergy (non medication)",
  "jurisdiction": [
    {
      "coding": [
        {
          "system": "urn:iso:std:iso:3166",
          "code": "BE",
          "display": "Belgium"
        }
      ]
    }
  ],
  "copyright": "This value set includes content from SNOMED CT, which is copyright © 2002+ International Health Terminology Standards Development Organisation (SNOMED International), and distributed by agreement between SNOMED International and HL7. Implementer use of SNOMED CT is not covered by this agreement",
  "compose": {
    "include": [
      {
        "system": "http://snomed.info/sct",
        "version": "http://snomed.info/sct/11000172109",
        "filter": [
          {
            "property": "concept",
            "op": "in",
            "value": "50851000172106"
          }
        ]
      },
      {
        "system": "http://snomed.info/sct",
        "version": "http://snomed.info/sct/11000172109",
        "filter": [
          {
            "property": "concept",
            "op": "in",
            "value": "50841000172109"
          }
        ]
      }
    ]
  }
}

It should take the values from 2 subsets found in the latest SNOMED CT Belgian Edition (http://snomed.info/sct/11000172109):

I'm importing Beglgium's AllergyIntolerance IG like this in the application.yaml file:
image
(I'm also importing the Belgian Core IG, not in the image)

After a while I should expect all of my ValueSet to be expanded, but BeCausativeAgent says "FAILED TO EXPAND":
image

And this is the error I get:

2025-01-08T18:58:15.046+01:00 ERROR 41236 --- [ler-clustered-1] ca.uhn.fhir.jpa.term.TermReadSvcImpl     : Failed to pre-expand ValueSet with URL[https://www.ehealth.fgov.be/standards/fhir/allergy/ValueSet/be-causativeagent]: HAPI-0888: org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport$ExpansionCouldNotBeCompletedInternallyException: HAPI-0702: Unable to expand ValueSet because CodeSystem could not be found: http://snomed.info/sct|http://snomed.info/sct/11000172109

ca.uhn.fhir.rest.server.exceptions.InternalErrorException: HAPI-0888: org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport$ExpansionCouldNotBeCompletedInternallyException: HAPI-0702: Unable to expand ValueSet because CodeSystem could not be found: http://snomed.info/sct|http://snomed.info/sct/11000172109
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl.expandValueSetHandleIncludeOrExclude(TermReadSvcImpl.java:1051)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl.lambda$doExpandValueSet$2(TermReadSvcImpl.java:934)
	at org.springframework.transaction.support.TransactionOperations.lambda$executeWithoutResult$0(TransactionOperations.java:68)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at org.springframework.transaction.support.TransactionOperations.executeWithoutResult(TransactionOperations.java:67)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl.doExpandValueSet(TermReadSvcImpl.java:934)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl.expandValueSet(TermReadSvcImpl.java:896)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl.preExpandDeferredValueSetsToTerminologyTables(TermReadSvcImpl.java:2461)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:355)
	at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:716)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl$$SpringCGLIB$$0.preExpandDeferredValueSetsToTerminologyTables(<generated>)
	at ca.uhn.fhir.jpa.term.TermReadSvcImpl$Job.execute(TermReadSvcImpl.java:3226)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573)

Is there a correct way of importing this kind of ValueSet? Is HAPI compatible with this kind of ValueSet?

Thanks,

Marcelo

@XcrigX
Copy link
Contributor

XcrigX commented Jan 8, 2025

Do you have a CodeSystem resource with matching System and Versions from the ValueSet ?

        "system": "http://snomed.info/sct",
        "version": "http://snomed.info/sct/11000172109",

(That version looks weird to me. I'm not familiar with snomed versioning, so it may be correct, but it looks odd)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants