Package org.hl7.fhir.r4.context
Class BaseWorkerContext
- java.lang.Object
-
- org.hl7.fhir.utilities.i18n.I18nBase
-
- org.hl7.fhir.r4.context.BaseWorkerContext
-
- All Implemented Interfaces:
IWorkerContext
- Direct Known Subclasses:
SimpleWorkerContext
public abstract class BaseWorkerContext extends org.hl7.fhir.utilities.i18n.I18nBase implements IWorkerContext
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classBaseWorkerContext.NullTranslator-
Nested classes/interfaces inherited from interface org.hl7.fhir.r4.context.IWorkerContext
IWorkerContext.ILoggingService, IWorkerContext.ValidationResult
-
-
Field Summary
Fields Modifier and Type Field Description protected ParametersexpParametersprotected IWorkerContext.ILoggingServiceloggerprotected Stringnameprotected booleannoTerminologyServerprotected Map<String,StructureMap>transformsprotected StringtsServerprotected TerminologyCachetxCacheprotected TerminologyClienttxClientprotected HTMLClientLoggertxLogprotected Map<String,Map<String,IWorkerContext.ValidationResult>>validationCache
-
Constructor Summary
Constructors Constructor Description BaseWorkerContext()BaseWorkerContext(Map<String,CodeSystem> codeSystems, Map<String,ValueSet> valueSets, Map<String,ConceptMap> maps, Map<String,StructureDefinition> profiles, Map<String,ImplementationGuide> guides)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<MetadataResource>allConformanceResources()voidcacheResource(Resource r)cache a resource for later retrieval using fetchResource.voidcacheVS(com.google.gson.JsonObject json, Map<String,IWorkerContext.ValidationResult> t)protected voidcopy(BaseWorkerContext other)IWorkerContext.ValidationResultdoValidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs, boolean implySystem)voiddropResource(String fhirType, String id)voiddropResource(Resource r)ValueSetExpander.ValueSetExpansionOutcomeexpandVS(ElementDefinition.ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heirarchical)ValueSet Expansion - see $expand, but resolves the binding firstValueSetExpander.ValueSetExpansionOutcomeexpandVS(ValueSet.ConceptSetComponent inc, boolean heirachical)Value set expanion inside the internal expansion engine - used for references to supported system (see "supportsSystem") for which there is no value set.ValueSetExpander.ValueSetExpansionOutcomeexpandVS(ValueSet vs, boolean cacheOk, boolean heirarchical)ValueSet Expansion - see $expandValueSetExpander.ValueSetExpansionOutcomeexpandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, Parameters p)CodeSystemfetchCodeSystem(String system)Find the code system definition for the nominated system uri.<T extends Resource>
TfetchResource(Class<T> class_, String uri)Find an identified resource.ResourcefetchResourceById(String type, String uri)Variation of fetchResource when you have a string type, and don't need the right class The URI can have one of 3 formats: - a full URL e.g.<T extends Resource>
TfetchResourceWithException(Class<T> class_, String uri)StructureDefinitionfetchTypeDefinition(String typeName)List<ConceptMap>findMapsForSource(String url)find concept maps for a sourceintgetExpandCodesLimit()ParametersgetExpansionParameters()StringgetLinkForUrl(String corePath, String url)IWorkerContext.ILoggingServicegetLogger()StringgetName()StringgetOverrideVersionNs()Set<String>getResourceNamesAsSet()SearchParametergetSearchParameter(String code)StructureDefinitiongetStructure(String code)List<StructureDefinition>getStructures()StructureMapgetTransform(String code)org.fhir.ucum.UcumServicegetUcumService()<T extends Resource>
booleanhasResource(Class<T> class_, String uri)find whether a resource is available.voidinitTS(String cachePath)booleanisAllowLoadingDuplicates()booleanisCanRunWithoutTerminology()booleanisNoTerminologyServer()booleanisTlogging()List<ConceptMap>listMaps()List<StructureDefinition>listStructures()StringlistSupportedSystems()List<StructureMap>listTransforms()Stringoid2Uri(String oid)voidreportStatus(com.google.gson.JsonObject json)protected <T extends MetadataResource>
voidseeMetadataResource(T r, Map<String,T> map, boolean addId)voidsetAllowLoadingDuplicates(boolean allowLoadingDuplicates)voidsetCanRunWithoutTerminology(boolean canRunWithoutTerminology)voidsetExpandCodesLimit(int expandCodesLimit)voidsetExpansionProfile(Parameters expParameters)voidsetLogger(IWorkerContext.ILoggingService logger)voidsetName(String name)voidsetOverrideVersionNs(String value)voidsetTlogging(boolean tlogging)voidsetTranslator(org.hl7.fhir.utilities.TranslationServices translator)voidsetUcumService(org.fhir.ucum.UcumService ucumService)booleansupportsSystem(String system)True if the underlying terminology service provider will do expansion and code validation for the terminology.protected voidtlog(String msg)inttotalCount()org.hl7.fhir.utilities.TranslationServicestranslator()IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display, ValueSet vs)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display, ValueSet.ConceptSetComponent vsi)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String code, ValueSet vs)IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, CodeableConcept code, ValueSet vs)IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs)-
Methods inherited from class org.hl7.fhir.utilities.i18n.I18nBase
formatMessage, getLocale, isWarnAboutMissingMessages, setLocale, setValidationMessageLanguage, setWarnAboutMissingMessages
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.hl7.fhir.r4.context.IWorkerContext
allStructures, formatMessage, generateSnapshot, getAbbreviation, getLocale, getNarrativeGenerator, getParser, getParser, getResourceNames, getTypeNames, getVersion, hasCache, newJsonParser, newValidator, newXmlParser, setLocale, setValidationMessageLanguage, typeTails
-
-
-
-
Field Detail
-
transforms
protected Map<String,StructureMap> transforms
-
validationCache
protected Map<String,Map<String,IWorkerContext.ValidationResult>> validationCache
-
txClient
protected TerminologyClient txClient
-
txLog
protected HTMLClientLogger txLog
-
noTerminologyServer
protected boolean noTerminologyServer
-
logger
protected IWorkerContext.ILoggingService logger
-
expParameters
protected Parameters expParameters
-
txCache
protected TerminologyCache txCache
-
-
Constructor Detail
-
BaseWorkerContext
public BaseWorkerContext() throws FileNotFoundException, IOException, org.hl7.fhir.exceptions.FHIRException
- Throws:
FileNotFoundExceptionIOExceptionorg.hl7.fhir.exceptions.FHIRException
-
BaseWorkerContext
public BaseWorkerContext(Map<String,CodeSystem> codeSystems, Map<String,ValueSet> valueSets, Map<String,ConceptMap> maps, Map<String,StructureDefinition> profiles, Map<String,ImplementationGuide> guides) throws FileNotFoundException, IOException, org.hl7.fhir.exceptions.FHIRException
- Throws:
FileNotFoundExceptionIOExceptionorg.hl7.fhir.exceptions.FHIRException
-
-
Method Detail
-
copy
protected void copy(BaseWorkerContext other)
-
cacheResource
public void cacheResource(Resource r) throws org.hl7.fhir.exceptions.FHIRException
Description copied from interface:IWorkerContextcache a resource for later retrieval using fetchResource. Note that various context implementations will have their own ways of loading rseources, and not all need implement cacheResource- Specified by:
cacheResourcein interfaceIWorkerContext- Throws:
org.hl7.fhir.exceptions.FHIRException
-
seeMetadataResource
protected <T extends MetadataResource> void seeMetadataResource(T r, Map<String,T> map, boolean addId) throws org.hl7.fhir.exceptions.FHIRException
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchCodeSystem
public CodeSystem fetchCodeSystem(String system)
Description copied from interface:IWorkerContextFind the code system definition for the nominated system uri. return null if there isn't one (then the tool might try supportsSystem)- Specified by:
fetchCodeSystemin interfaceIWorkerContext- Returns:
-
supportsSystem
public boolean supportsSystem(String system) throws org.hl7.fhir.exceptions.TerminologyServiceException
Description copied from interface:IWorkerContextTrue if the underlying terminology service provider will do expansion and code validation for the terminology. Corresponds to the extension http://hl7.org/fhir/StructureDefinition/capabilitystatement-supported-system in the Conformance resource- Specified by:
supportsSystemin interfaceIWorkerContext- Returns:
- Throws:
org.hl7.fhir.exceptions.TerminologyServiceException
-
getExpandCodesLimit
public int getExpandCodesLimit()
-
setExpandCodesLimit
public void setExpandCodesLimit(int expandCodesLimit)
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ElementDefinition.ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heirarchical) throws org.hl7.fhir.exceptions.FHIRException
Description copied from interface:IWorkerContextValueSet Expansion - see $expand, but resolves the binding first- Specified by:
expandVSin interfaceIWorkerContext- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet.ConceptSetComponent inc, boolean heirachical) throws org.hl7.fhir.exceptions.TerminologyServiceException
Description copied from interface:IWorkerContextValue set expanion inside the internal expansion engine - used for references to supported system (see "supportsSystem") for which there is no value set.- Specified by:
expandVSin interfaceIWorkerContext- Returns:
- Throws:
org.hl7.fhir.exceptions.TerminologyServiceException
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical)
Description copied from interface:IWorkerContextValueSet Expansion - see $expand- Specified by:
expandVSin interfaceIWorkerContext- Returns:
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet vs, boolean cacheOk, boolean heirarchical, Parameters p)
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display)
Description copied from interface:IWorkerContextValidation of a code - consult the terminology service to see whether it is known. If known, return a description of it note: always return a result, with either an error or a code description corresponds to 2 terminology service calls: $validate-code and $lookup- Specified by:
validateCodein interfaceIWorkerContext- Returns:
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display, ValueSet vs)
Description copied from interface:IWorkerContextValidation of a code - consult the terminology service to see whether it is known. If known, return a description of it Also, check whether it's in the provided value set note: always return a result, with either an error or a code description, or both (e.g. known code, but not in the value set) corresponds to 2 terminology service calls: $validate-code and $lookup- Specified by:
validateCodein interfaceIWorkerContext- Returns:
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String code, ValueSet vs)
- Specified by:
validateCodein interfaceIWorkerContext
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String system, String code, String display, ValueSet.ConceptSetComponent vsi)
Description copied from interface:IWorkerContextValidation of a code - consult the terminology service to see whether it is known. If known, return a description of it Also, check whether it's in the provided value set fragment (for supported systems with no value set definition) note: always return a result, with either an error or a code description, or both (e.g. known code, but not in the value set) corresponds to 2 terminology service calls: $validate-code and $lookup- Specified by:
validateCodein interfaceIWorkerContext- Returns:
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs)
- Specified by:
validateCodein interfaceIWorkerContext
-
doValidateCode
public IWorkerContext.ValidationResult doValidateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs, boolean implySystem)
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, CodeableConcept code, ValueSet vs)
- Specified by:
validateCodein interfaceIWorkerContext
-
findMapsForSource
public List<ConceptMap> findMapsForSource(String url) throws org.hl7.fhir.exceptions.FHIRException
Description copied from interface:IWorkerContextfind concept maps for a source- Specified by:
findMapsForSourcein interfaceIWorkerContext- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
isCanRunWithoutTerminology
public boolean isCanRunWithoutTerminology()
-
setCanRunWithoutTerminology
public void setCanRunWithoutTerminology(boolean canRunWithoutTerminology)
-
setLogger
public void setLogger(IWorkerContext.ILoggingService logger)
- Specified by:
setLoggerin interfaceIWorkerContext
-
getExpansionParameters
public Parameters getExpansionParameters()
- Specified by:
getExpansionParametersin interfaceIWorkerContext
-
setExpansionProfile
public void setExpansionProfile(Parameters expParameters)
- Specified by:
setExpansionProfilein interfaceIWorkerContext
-
isNoTerminologyServer
public boolean isNoTerminologyServer()
- Specified by:
isNoTerminologyServerin interfaceIWorkerContext
-
getResourceNamesAsSet
public Set<String> getResourceNamesAsSet()
- Specified by:
getResourceNamesAsSetin interfaceIWorkerContext
-
isAllowLoadingDuplicates
public boolean isAllowLoadingDuplicates()
-
setAllowLoadingDuplicates
public void setAllowLoadingDuplicates(boolean allowLoadingDuplicates)
-
fetchResourceWithException
public <T extends Resource> T fetchResourceWithException(Class<T> class_, String uri) throws org.hl7.fhir.exceptions.FHIRException
- Specified by:
fetchResourceWithExceptionin interfaceIWorkerContext- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResourceById
public Resource fetchResourceById(String type, String uri)
Description copied from interface:IWorkerContextVariation of fetchResource when you have a string type, and don't need the right class The URI can have one of 3 formats: - a full URL e.g. http://acme.org/fhir/ValueSet/[id] - a relative URL e.g. ValueSet/[id] - a logical id e.g. [id] if type == null, the URI can't be a simple logical id- Specified by:
fetchResourceByIdin interfaceIWorkerContext- Returns:
-
fetchResource
public <T extends Resource> T fetchResource(Class<T> class_, String uri)
Description copied from interface:IWorkerContextFind an identified resource. The most common use of this is to access the the standard conformance resources that are part of the standard - structure definitions, value sets, concept maps, etc. Also, the narrative generator uses this, and may access any kind of resource The URI is called speculatively for things that might exist, so not finding a matching resouce, return null, not an error The URI can have one of 3 formats: - a full URL e.g. http://acme.org/fhir/ValueSet/[id] - a relative URL e.g. ValueSet/[id] - a logical id e.g. [id] It's an error if the second form doesn't agree with class_. It's an error if class_ is null for the last form- Specified by:
fetchResourcein interfaceIWorkerContext- Returns:
-
hasResource
public <T extends Resource> boolean hasResource(Class<T> class_, String uri)
Description copied from interface:IWorkerContextfind whether a resource is available. Implementations of the interface can assume that if hasResource ruturns true, the resource will usually be fetched subsequently- Specified by:
hasResourcein interfaceIWorkerContext- Returns:
-
translator
public org.hl7.fhir.utilities.TranslationServices translator()
- Specified by:
translatorin interfaceIWorkerContext
-
setTranslator
public void setTranslator(org.hl7.fhir.utilities.TranslationServices translator)
-
reportStatus
public void reportStatus(com.google.gson.JsonObject json)
-
dropResource
public void dropResource(Resource r) throws org.hl7.fhir.exceptions.FHIRException
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
dropResource
public void dropResource(String fhirType, String id)
-
allConformanceResources
public List<MetadataResource> allConformanceResources()
- Specified by:
allConformanceResourcesin interfaceIWorkerContext
-
listSupportedSystems
public String listSupportedSystems()
-
totalCount
public int totalCount()
-
listMaps
public List<ConceptMap> listMaps()
-
listTransforms
public List<StructureMap> listTransforms()
- Specified by:
listTransformsin interfaceIWorkerContext
-
getTransform
public StructureMap getTransform(String code)
- Specified by:
getTransformin interfaceIWorkerContext
-
listStructures
public List<StructureDefinition> listStructures()
-
getStructure
public StructureDefinition getStructure(String code)
-
oid2Uri
public String oid2Uri(String oid)
- Specified by:
oid2Uriin interfaceIWorkerContext
-
cacheVS
public void cacheVS(com.google.gson.JsonObject json, Map<String,IWorkerContext.ValidationResult> t)
-
getSearchParameter
public SearchParameter getSearchParameter(String code)
-
getOverrideVersionNs
public String getOverrideVersionNs()
- Specified by:
getOverrideVersionNsin interfaceIWorkerContext
-
setOverrideVersionNs
public void setOverrideVersionNs(String value)
- Specified by:
setOverrideVersionNsin interfaceIWorkerContext
-
getLogger
public IWorkerContext.ILoggingService getLogger()
- Specified by:
getLoggerin interfaceIWorkerContext
-
fetchTypeDefinition
public StructureDefinition fetchTypeDefinition(String typeName)
- Specified by:
fetchTypeDefinitionin interfaceIWorkerContext
-
isTlogging
public boolean isTlogging()
-
setTlogging
public void setTlogging(boolean tlogging)
-
getUcumService
public org.fhir.ucum.UcumService getUcumService()
- Specified by:
getUcumServicein interfaceIWorkerContext
-
setUcumService
public void setUcumService(org.fhir.ucum.UcumService ucumService)
- Specified by:
setUcumServicein interfaceIWorkerContext
-
getStructures
public List<StructureDefinition> getStructures()
- Specified by:
getStructuresin interfaceIWorkerContext
-
getLinkForUrl
public String getLinkForUrl(String corePath, String url)
- Specified by:
getLinkForUrlin interfaceIWorkerContext
-
-