Package org.hl7.fhir.r4.context
Interface IWorkerContext
-
- All Known Implementing Classes:
BaseWorkerContext,SimpleWorkerContext
public interface IWorkerContext
This is the standard interface used for access to underlying FHIR services through the tools and utilities provided by the reference implementation. The functionality it provides is - get access to parsers, validators, narrative builders etc (you can't create these directly because they need access to the right context for their information) - find resources that the tools need to carry out their tasks - provide access to terminology services they need. (typically, these terminology service requests are just passed through to the local implementation's terminology service)- Author:
- Grahame
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceIWorkerContext.ILoggingServicestatic classIWorkerContext.ValidationResult
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description List<MetadataResource>allConformanceResources()List<StructureDefinition>allStructures()voidcacheResource(Resource res)cache a resource for later retrieval using fetchResource.ValueSetExpander.ValueSetExpansionOutcomeexpandVS(ElementDefinition.ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heiarchical)ValueSet Expansion - see $expand, but resolves the binding firstValueSetExpander.ValueSetExpansionOutcomeexpandVS(ValueSet.ConceptSetComponent inc, boolean heirarchical)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 source, boolean cacheOk, boolean heiarchical)ValueSet Expansion - see $expandCodeSystemfetchCodeSystem(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 sourceStringformatMessage(String theMessage, Object... theMessageArguments)voidgenerateSnapshot(StructureDefinition p)StringgetAbbreviation(String name)returns the recommended tla for the typeParametersgetExpansionParameters()StringgetLinkForUrl(String corePath, String s)LocalegetLocale()IWorkerContext.ILoggingServicegetLogger()INarrativeGeneratorgetNarrativeGenerator(String prefix, String basePath)Get a generator that can generate narrative for the instanceStringgetOverrideVersionNs()IParsergetParser(String type)Get a parser to read/write instances.IParsergetParser(ParserType type)Get a parser to read/write instances.List<String>getResourceNames()Set<String>getResourceNamesAsSet()List<StructureDefinition>getStructures()StructureMapgetTransform(String url)List<String>getTypeNames()org.fhir.ucum.UcumServicegetUcumService()StringgetVersion()Get the versions of the definitions loaded in contextbooleanhasCache()<T extends Resource>
booleanhasResource(Class<T> class_, String uri)find whether a resource is available.booleanisNoTerminologyServer()List<StructureMap>listTransforms()IParsernewJsonParser()Get a JSON parserIResourceValidatornewValidator()Get a validator that can check whether a resource is validIParsernewXmlParser()Get an XML parserStringoid2Uri(String code)voidsetExpansionProfile(Parameters expParameters)voidsetLocale(Locale locale)voidsetLogger(IWorkerContext.ILoggingService logger)voidsetOverrideVersionNs(String value)voidsetUcumService(org.fhir.ucum.UcumService ucumService)voidsetValidationMessageLanguage(Locale locale)booleansupportsSystem(String system)True if the underlying terminology service provider will do expansion and code validation for the terminology.org.hl7.fhir.utilities.TranslationServicestranslator()Set<String>typeTails()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)
-
-
-
Method Detail
-
getVersion
String getVersion()
Get the versions of the definitions loaded in context- Returns:
-
getUcumService
org.fhir.ucum.UcumService getUcumService()
-
getParser
IParser getParser(ParserType type)
Get a parser to read/write instances. Use the defined type (will be extended as further types are added, though the only currently anticipate type is RDF) XML/JSON - the standard renderers XHTML - render the narrative only (generate it if necessary)- Parameters:
type-- Returns:
-
getParser
IParser getParser(String type)
Get a parser to read/write instances. Determine the type from the stated type. Supported value for type: - the recommended MIME types - variants of application/xml and application/json - _format values xml, json- Parameters:
type-- Returns:
-
newJsonParser
IParser newJsonParser()
Get a JSON parser- Returns:
-
newXmlParser
IParser newXmlParser()
Get an XML parser- Returns:
-
getNarrativeGenerator
INarrativeGenerator getNarrativeGenerator(String prefix, String basePath)
Get a generator that can generate narrative for the instance- Returns:
- a prepared generator
-
newValidator
IResourceValidator newValidator() throws org.hl7.fhir.exceptions.FHIRException
Get a validator that can check whether a resource is valid- Returns:
- a prepared generator
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResource
<T extends Resource> T fetchResource(Class<T> class_, String uri)
Find 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- Parameters:
resource-Reference-- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRExceptionException
-
fetchResourceWithException
<T extends Resource> T fetchResourceWithException(Class<T> class_, String uri) throws org.hl7.fhir.exceptions.FHIRException
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResourceById
Resource fetchResourceById(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. 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- Parameters:
type-uri-- Returns:
-
hasResource
<T extends Resource> boolean hasResource(Class<T> class_, String uri)
find whether a resource is available. Implementations of the interface can assume that if hasResource ruturns true, the resource will usually be fetched subsequently- Parameters:
class_-uri-- Returns:
-
cacheResource
void cacheResource(Resource res) throws org.hl7.fhir.exceptions.FHIRException
cache 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- Parameters:
res-- Throws:
org.hl7.fhir.exceptions.FHIRException
-
getResourceNames
List<String> getResourceNames()
-
getResourceNamesAsSet
Set<String> getResourceNamesAsSet()
-
getTypeNames
List<String> getTypeNames()
-
allStructures
List<StructureDefinition> allStructures()
-
getStructures
List<StructureDefinition> getStructures()
-
allConformanceResources
List<MetadataResource> allConformanceResources()
-
generateSnapshot
void generateSnapshot(StructureDefinition p) throws org.hl7.fhir.exceptions.DefinitionException, org.hl7.fhir.exceptions.FHIRException
- Throws:
org.hl7.fhir.exceptions.DefinitionExceptionorg.hl7.fhir.exceptions.FHIRException
-
getExpansionParameters
Parameters getExpansionParameters()
-
setExpansionProfile
void setExpansionProfile(Parameters expParameters)
-
fetchCodeSystem
CodeSystem fetchCodeSystem(String system)
Find the code system definition for the nominated system uri. return null if there isn't one (then the tool might try supportsSystem)- Parameters:
system-- Returns:
-
supportsSystem
boolean supportsSystem(String system) throws org.hl7.fhir.exceptions.TerminologyServiceException
True 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- Parameters:
system-- Returns:
- Throws:
Exceptionorg.hl7.fhir.exceptions.TerminologyServiceException
-
findMapsForSource
List<ConceptMap> findMapsForSource(String url) throws org.hl7.fhir.exceptions.FHIRException
find concept maps for a source- Parameters:
url-- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
expandVS
ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet source, boolean cacheOk, boolean heiarchical)
ValueSet Expansion - see $expand- Parameters:
source-- Returns:
-
expandVS
ValueSetExpander.ValueSetExpansionOutcome expandVS(ElementDefinition.ElementDefinitionBindingComponent binding, boolean cacheOk, boolean heiarchical) throws org.hl7.fhir.exceptions.FHIRException
ValueSet Expansion - see $expand, but resolves the binding first- Parameters:
source-- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
expandVS
ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet.ConceptSetComponent inc, boolean heirarchical) throws org.hl7.fhir.exceptions.TerminologyServiceException
Value set expanion inside the internal expansion engine - used for references to supported system (see "supportsSystem") for which there is no value set.- Parameters:
inc-- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRExceptionorg.hl7.fhir.exceptions.TerminologyServiceException
-
formatMessage
String formatMessage(String theMessage, Object... theMessageArguments)
-
setValidationMessageLanguage
void setValidationMessageLanguage(Locale locale)
-
validateCode
IWorkerContext.ValidationResult validateCode(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. 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- Parameters:
system-code-display-- Returns:
-
validateCode
IWorkerContext.ValidationResult validateCode(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. 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- Parameters:
system-code-display-- Returns:
-
validateCode
IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, String code, ValueSet vs)
-
validateCode
IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs)
-
validateCode
IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, CodeableConcept code, ValueSet vs)
-
validateCode
IWorkerContext.ValidationResult validateCode(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. 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- Parameters:
system-code-display-- Returns:
-
getAbbreviation
String getAbbreviation(String name)
returns the recommended tla for the type- Parameters:
name-- Returns:
-
hasCache
boolean hasCache()
-
setLogger
void setLogger(IWorkerContext.ILoggingService logger)
-
getLogger
IWorkerContext.ILoggingService getLogger()
-
isNoTerminologyServer
boolean isNoTerminologyServer()
-
translator
org.hl7.fhir.utilities.TranslationServices translator()
-
listTransforms
List<StructureMap> listTransforms()
-
getTransform
StructureMap getTransform(String url)
-
getOverrideVersionNs
String getOverrideVersionNs()
-
setOverrideVersionNs
void setOverrideVersionNs(String value)
-
fetchTypeDefinition
StructureDefinition fetchTypeDefinition(String typeName)
-
setUcumService
void setUcumService(org.fhir.ucum.UcumService ucumService)
-
getLinkForUrl
String getLinkForUrl(String corePath, String s)
-
-