Package org.hl7.fhir.r4.hapi.ctx
Class HapiWorkerContext
- java.lang.Object
-
- org.hl7.fhir.utilities.i18n.I18nBase
-
- org.hl7.fhir.r4.hapi.ctx.HapiWorkerContext
-
- All Implemented Interfaces:
IWorkerContext
public final class HapiWorkerContext extends org.hl7.fhir.utilities.i18n.I18nBase implements IWorkerContext
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.hl7.fhir.r4.context.IWorkerContext
IWorkerContext.ILoggingService, IWorkerContext.ValidationResult
-
-
Constructor Summary
Constructors Constructor Description HapiWorkerContext(ca.uhn.fhir.context.FhirContext theCtx, ca.uhn.fhir.context.support.IValidationSupport theValidationSupport)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<MetadataResource>allConformanceResources()List<StructureDefinition>allStructures()voidcacheResource(Resource theRes)cache a resource for later retrieval using fetchResource.static ca.uhn.fhir.context.support.ConceptValidationOptionsconvertConceptValidationOptions(org.hl7.fhir.utilities.validation.ValidationOptions theOptions)ValueSetExpander.ValueSetExpansionOutcomeexpandVS(ElementDefinition.ElementDefinitionBindingComponent theBinding, boolean theCacheOk, boolean theHierarchical)ValueSet Expansion - see $expand, but resolves the binding firstValueSetExpander.ValueSetExpansionOutcomeexpandVS(ValueSet.ConceptSetComponent theInc, boolean theHierarchical)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 theSource, boolean theCacheOk, boolean theHierarchical)ValueSet Expansion - see $expandCodeSystemfetchCodeSystem(String theSystem)Find the code system definition for the nominated system uri.<T extends Resource>
TfetchResource(Class<T> theClass, String theUri)Find an identified resource.ResourcefetchResourceById(String theType, String theUri)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> theClass, String theUri)StructureDefinitionfetchTypeDefinition(String typeName)List<ConceptMap>findMapsForSource(String theUrl)find concept maps for a sourcevoidgenerateSnapshot(StructureDefinition p)StringgetAbbreviation(String theName)returns the recommended tla for the typeParametersgetExpansionParameters()StringgetLinkForUrl(String corePath, String url)IWorkerContext.ILoggingServicegetLogger()INarrativeGeneratorgetNarrativeGenerator(String thePrefix, String theBasePath)Get a generator that can generate narrative for the instanceStringgetOverrideVersionNs()IParsergetParser(String theType)Get a parser to read/write instances.IParsergetParser(ParserType theType)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> theClass_, String theUri)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 theCode)voidsetExpansionProfile(Parameters theExpParameters)voidsetLogger(IWorkerContext.ILoggingService theLogger)voidsetOverrideVersionNs(String value)voidsetUcumService(org.fhir.ucum.UcumService ucumService)booleansupportsSystem(String theSystem)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 theOptions, String theSystem, String theCode, String theDisplay)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theCode, String theDisplay, ValueSet theVs)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theCode, String theDisplay, ValueSet.ConceptSetComponent theVsi)Validation of a code - consult the terminology service to see whether it is known.IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String code, ValueSet vs)IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, CodeableConcept theCode, ValueSet theVs)IWorkerContext.ValidationResultvalidateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, Coding theCode, ValueSet theVs)-
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
formatMessage, getLocale, setLocale, setValidationMessageLanguage
-
-
-
-
Constructor Detail
-
HapiWorkerContext
public HapiWorkerContext(ca.uhn.fhir.context.FhirContext theCtx, ca.uhn.fhir.context.support.IValidationSupport theValidationSupport)
-
-
Method Detail
-
allStructures
public List<StructureDefinition> allStructures()
- Specified by:
allStructuresin interfaceIWorkerContext
-
getStructures
public List<StructureDefinition> getStructures()
- Specified by:
getStructuresin interfaceIWorkerContext
-
fetchCodeSystem
public CodeSystem fetchCodeSystem(String theSystem)
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:
-
findMapsForSource
public List<ConceptMap> findMapsForSource(String theUrl)
Description copied from interface:IWorkerContextfind concept maps for a source- Specified by:
findMapsForSourcein interfaceIWorkerContext- Returns:
-
getAbbreviation
public String getAbbreviation(String theName)
Description copied from interface:IWorkerContextreturns the recommended tla for the type- Specified by:
getAbbreviationin interfaceIWorkerContext- Returns:
-
getNarrativeGenerator
public INarrativeGenerator getNarrativeGenerator(String thePrefix, String theBasePath)
Description copied from interface:IWorkerContextGet a generator that can generate narrative for the instance- Specified by:
getNarrativeGeneratorin interfaceIWorkerContext- Returns:
- a prepared generator
-
getParser
public IParser getParser(ParserType theType)
Description copied from interface:IWorkerContextGet 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)- Specified by:
getParserin interfaceIWorkerContext- Returns:
-
getParser
public IParser getParser(String theType)
Description copied from interface:IWorkerContextGet 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- Specified by:
getParserin interfaceIWorkerContext- Returns:
-
getResourceNames
public List<String> getResourceNames()
- Specified by:
getResourceNamesin interfaceIWorkerContext
-
newJsonParser
public IParser newJsonParser()
Description copied from interface:IWorkerContextGet a JSON parser- Specified by:
newJsonParserin interfaceIWorkerContext- Returns:
-
newValidator
public IResourceValidator newValidator()
Description copied from interface:IWorkerContextGet a validator that can check whether a resource is valid- Specified by:
newValidatorin interfaceIWorkerContext- Returns:
- a prepared generator
-
newXmlParser
public IParser newXmlParser()
Description copied from interface:IWorkerContextGet an XML parser- Specified by:
newXmlParserin interfaceIWorkerContext- Returns:
-
oid2Uri
public String oid2Uri(String theCode)
- Specified by:
oid2Uriin interfaceIWorkerContext
-
supportsSystem
public boolean supportsSystem(String theSystem)
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:
-
typeTails
public Set<String> typeTails()
- Specified by:
typeTailsin interfaceIWorkerContext
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, CodeableConcept theCode, ValueSet theVs)
- Specified by:
validateCodein interfaceIWorkerContext
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, Coding theCode, ValueSet theVs)
- Specified by:
validateCodein interfaceIWorkerContext
-
validateCode
public IWorkerContext.ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theCode, String theDisplay)
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 theOptions, String theSystem, String theCode, String theDisplay, ValueSet.ConceptSetComponent theVsi)
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 theOptions, String theSystem, String theCode, String theDisplay, ValueSet theVs)
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 theOptions, String code, ValueSet vs)
- Specified by:
validateCodein interfaceIWorkerContext
-
allConformanceResources
public List<MetadataResource> allConformanceResources()
- Specified by:
allConformanceResourcesin interfaceIWorkerContext
-
generateSnapshot
public void generateSnapshot(StructureDefinition p) throws org.hl7.fhir.exceptions.FHIRException
- Specified by:
generateSnapshotin interfaceIWorkerContext- Throws:
org.hl7.fhir.exceptions.FHIRException
-
getExpansionParameters
public Parameters getExpansionParameters()
- Specified by:
getExpansionParametersin interfaceIWorkerContext
-
setExpansionProfile
public void setExpansionProfile(Parameters theExpParameters)
- Specified by:
setExpansionProfilein interfaceIWorkerContext
-
hasCache
public boolean hasCache()
- Specified by:
hasCachein interfaceIWorkerContext
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet theSource, boolean theCacheOk, boolean theHierarchical)
Description copied from interface:IWorkerContextValueSet Expansion - see $expand- Specified by:
expandVSin interfaceIWorkerContext- Returns:
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ValueSet.ConceptSetComponent theInc, boolean theHierarchical) 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
-
getLogger
public IWorkerContext.ILoggingService getLogger()
- Specified by:
getLoggerin interfaceIWorkerContext
-
setLogger
public void setLogger(IWorkerContext.ILoggingService theLogger)
- Specified by:
setLoggerin interfaceIWorkerContext
-
getVersion
public String getVersion()
Description copied from interface:IWorkerContextGet the versions of the definitions loaded in context- Specified by:
getVersionin interfaceIWorkerContext- Returns:
-
getUcumService
public org.fhir.ucum.UcumService getUcumService()
- Specified by:
getUcumServicein interfaceIWorkerContext
-
setUcumService
public void setUcumService(org.fhir.ucum.UcumService ucumService)
- Specified by:
setUcumServicein interfaceIWorkerContext
-
isNoTerminologyServer
public boolean isNoTerminologyServer()
- Specified by:
isNoTerminologyServerin interfaceIWorkerContext
-
translator
public org.hl7.fhir.utilities.TranslationServices translator()
- Specified by:
translatorin interfaceIWorkerContext
-
listTransforms
public List<StructureMap> listTransforms()
- Specified by:
listTransformsin interfaceIWorkerContext
-
getTransform
public StructureMap getTransform(String url)
- Specified by:
getTransformin interfaceIWorkerContext
-
getOverrideVersionNs
public String getOverrideVersionNs()
- Specified by:
getOverrideVersionNsin interfaceIWorkerContext
-
setOverrideVersionNs
public void setOverrideVersionNs(String value)
- Specified by:
setOverrideVersionNsin interfaceIWorkerContext
-
fetchTypeDefinition
public StructureDefinition fetchTypeDefinition(String typeName)
- Specified by:
fetchTypeDefinitionin interfaceIWorkerContext
-
getLinkForUrl
public String getLinkForUrl(String corePath, String url)
- Specified by:
getLinkForUrlin interfaceIWorkerContext
-
getTypeNames
public List<String> getTypeNames()
- Specified by:
getTypeNamesin interfaceIWorkerContext
-
fetchResource
public <T extends Resource> T fetchResource(Class<T> theClass, String theUri)
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:
-
fetchResourceWithException
public <T extends Resource> T fetchResourceWithException(Class<T> theClass, String theUri) throws org.hl7.fhir.exceptions.FHIRException
- Specified by:
fetchResourceWithExceptionin interfaceIWorkerContext- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResourceById
public Resource fetchResourceById(String theType, String theUri)
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:
-
hasResource
public <T extends Resource> boolean hasResource(Class<T> theClass_, String theUri)
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:
-
cacheResource
public void cacheResource(Resource theRes) 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
-
getResourceNamesAsSet
public Set<String> getResourceNamesAsSet()
- Specified by:
getResourceNamesAsSetin interfaceIWorkerContext
-
expandVS
public ValueSetExpander.ValueSetExpansionOutcome expandVS(ElementDefinition.ElementDefinitionBindingComponent theBinding, boolean theCacheOk, boolean theHierarchical) 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
-
convertConceptValidationOptions
public static ca.uhn.fhir.context.support.ConceptValidationOptions convertConceptValidationOptions(org.hl7.fhir.utilities.validation.ValidationOptions theOptions)
-
-