hapifhir / hapi-fhir-jpaserver-starter

Apache License 2.0
394 stars 1.05k forks source link

How to update built-in terminology? #725

Open branets-dasha opened 3 months ago

branets-dasha commented 3 months ago

I have a dockerized HAPI FHIR server using the template in README with enabled validation.

The hapi.application.yaml file is as such:

# Default template
spring:
  datasource:
    url: 'jdbc:postgresql://db:5432/hapi'
    username: admin
    password: admin
    driverClassName: org.postgresql.Driver
  jpa:
    properties:
      hibernate.dialect: ca.uhn.fhir.jpa.model.dialect.HapiFhirPostgres94Dialect
      hibernate.search.enabled: false
# My customization
hapi:
  fhir:
    validation:
      requests_enabled: true

I'm trying to add some profiles to the server, for example the Human Specimen mCODE profile.

But the server rejects this profile, returning 422 Unprocessable Entity. The error it reports is that HL7Workgroup value set doesn't contain the value "cic".

The value provided ('cic') is not in the value set 'HL7Workgroup' (http://hl7.org/fhir/ValueSet/hl7-work-group|4.0.1), and a code is required from this value set) (error message = Unknown code 'cic' for in-memory expansion of ValueSet 'http://hl7.org/fhir/ValueSet/hl7-work-group')

If I expand the value set with GET /ValueSet/$expand?url=http%3A%2F%2Fhl7.org%2Ffhir%2FValueSet%2Fhl7-work-group, I get values listed on this page: https://hl7.org/fhir/R4/valueset-hl7-work-group.html (version 4.0.1, based on FHIR R4), which doesn't include "cic".

However, I found that there's also terminology version 5.5.0, based on FHIR R4, where HL7Workgroup does include "cic": https://terminology.hl7.org/5.5.0/CodeSystem-hl7-work-group.html.

My naive attempt to upload an updated hl7-work-group code system (PUT /CodeSystem/hl7-work-group) didn't work. Expanding the value set after doing this returns 500 Internal Server Error:

HAPI-0389: Failed to call access method: org.hibernate.search.util.common.SearchException: HSEARCH800001: Hibernate Search was not initialized.

And attempting to upload the profile results in the same error as before.

How can I update the server's terminology to a newer version? (Or am I approaching this from the wrong direction?)