001package org.hl7.fhir.common.hapi.validation.support; 002 003import ca.uhn.fhir.context.ConfigurationException; 004import ca.uhn.fhir.context.FhirContext; 005import ca.uhn.fhir.context.FhirVersionEnum; 006import ca.uhn.fhir.i18n.Msg; 007import ca.uhn.fhir.util.StopWatch; 008import jakarta.annotation.Nonnull; 009import org.apache.commons.lang3.Validate; 010import org.slf4j.Logger; 011import org.slf4j.LoggerFactory; 012 013import java.io.IOException; 014 015public class DefaultProfileValidationSupportNpmStrategy extends NpmPackageValidationSupport { 016 private static final Logger ourLog = LoggerFactory.getLogger(DefaultProfileValidationSupportNpmStrategy.class); 017 018 /** 019 * Constructor 020 */ 021 public DefaultProfileValidationSupportNpmStrategy(@Nonnull FhirContext theFhirContext) { 022 super(theFhirContext); 023 024 Validate.isTrue(theFhirContext.getVersion().getVersion() == FhirVersionEnum.R5); 025 026 ourLog.info("Loading R5 Core+Extension packages into memory"); 027 StopWatch sw = new StopWatch(); 028 029 try { 030 loadPackageFromClasspath("org/hl7/fhir/r5/packages/hl7.fhir.r5.core-5.0.0.tgz"); 031 loadPackageFromClasspath("org/hl7/fhir/r5/packages/hl7.fhir.uv.extensions.r5-1.0.0.tgz"); 032 loadPackageFromClasspath("org/hl7/fhir/r5/packages/hl7.terminology-5.1.0.tgz"); 033 } catch (IOException e) { 034 throw new ConfigurationException( 035 Msg.code(2333) 036 + "Failed to load required validation resources. Make sure that the appropriate hapi-fhir-validation-resources-VER JAR is on the classpath", 037 e); 038 } 039 040 ourLog.info("Loaded {} Core+Extension resources in {}", countAll(), sw); 041 } 042 043 @Override 044 public String getName() { 045 return getFhirContext().getVersion().getVersion() + " FHIR Standard Profile NPM Validation Support"; 046 } 047}