Mercurial > hg > orthanc-java
diff Samples/FHIR/src/main/java/Main.java @ 31:7579255a14f8
calling destroy() on the FHIR server at shutdown
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 12 Jun 2024 20:56:03 +0200 |
parents | 296798e75896 |
children |
line wrap: on
line diff
--- a/Samples/FHIR/src/main/java/Main.java Wed Jun 12 20:43:37 2024 +0200 +++ b/Samples/FHIR/src/main/java/Main.java Wed Jun 12 20:56:03 2024 +0200 @@ -23,6 +23,8 @@ import be.uclouvain.orthanc.Callbacks; +import be.uclouvain.orthanc.ChangeType; +import be.uclouvain.orthanc.ResourceType; import ca.uhn.fhir.context.FhirContext; import ca.uhn.fhir.rest.server.HardcodedServerAddressStrategy; @@ -39,7 +41,7 @@ public class Main extends RestfulServer { - Main() throws ServletException { + Main() { setFhirContext(FhirContext.forR5()); setServerName("Orthanc FHIR server"); @@ -66,16 +68,24 @@ setResourceProviders(resourceProviders); } - static { - Main main; + private static Main main = new Main(); + static { try { - main = new Main(); main.init(new MockServletConfig()); } catch (ServletException e) { throw new RuntimeException("Cannot start the HAPI FHIR server"); } + Callbacks.register(new Callbacks.OnChange() { + @Override + public void call(ChangeType changeType, ResourceType resourceType, String resourceId) { + if (changeType == ChangeType.ORTHANC_STOPPED) { + main.destroy(); + } + } + }); + Callbacks.register("/fhir(/.*)", new FhirRequestHandler(main)); Callbacks.register("/fhir", new FhirRequestHandler(main)); }