Package org.hl7.fhir.r5.hapi.ctx
Class HapiWorkerContext
java.lang.Object
org.hl7.fhir.utilities.i18n.I18nBase
org.hl7.fhir.r5.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.r5.context.IWorkerContext
IWorkerContext.ILoggingService, IWorkerContext.OIDDefinition, IWorkerContext.OIDDefinitionComparer, IWorkerContext.OIDSummary
-
Field Summary
Fields inherited from class org.hl7.fhir.utilities.i18n.I18nBase
KEY_DELIMITER, locale, PLURAL_SUFFIX
-
Constructor Summary
ConstructorDescriptionHapiWorkerContext
(ca.uhn.fhir.context.FhirContext theCtx, ca.uhn.fhir.context.support.IValidationSupport theValidationSupport) -
Method Summary
Modifier and TypeMethodDescriptionvoid
cachePackage
(PackageInformation packageInformation) Inform the cache about package dependencies.void
cacheResource
(Resource theRes) cache a resource for later retrieval using fetchResource.void
cacheResourceFromPackage
(Resource res, PackageInformation packageDetails) cache a resource for later retrieval using fetchResource.org.hl7.fhir.utilities.TimeTracker
clock()
static ca.uhn.fhir.context.support.ConceptValidationOptions
convertConceptValidationOptions
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions) expandVS
(Resource src, ElementDefinition.ElementDefinitionBindingComponent theBinding, boolean theCacheOk, boolean theHierarchical) ValueSet Expansion - see $expand, but resolves the binding firstexpandVS
(ValueSet.ConceptSetComponent theInc, boolean theHierarchical, boolean theNoInactive) Value set expanion inside the internal expansion engine - used for references to supported system (see "supportsSystem") for which there is no value set.ValueSet Expansion - see $expandValueSet Expansion - see $expandfetchCodeSystem
(String theSystem) Find the code system definition for the nominated system uri.fetchCodeSystem
(String theSystem, String version) fetchCodeSystem
(String system, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) fetchCodeSystem
(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) <T extends Resource>
TfetchResource
(Class<T> theClass, String theUri) Find an identified resource.<T extends Resource>
TfetchResource
(Class<T> theClass, String theUri, String theVersion) <T extends Resource>
TfetchResource
(Class<T> class_, String uri, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) <T extends Resource>
TfetchResource
(Class<T> class_, String uri, Resource canonicalForSource) has the same functionality as fetchResource, but passes in information about the source of the reference (this may affect resolution of version)<T extends Resource>
TfetchResource
(Class<T> class_, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) fetchResourceById
(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.fetchResourceById
(String type, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) <T extends Resource>
TfetchResourceRaw
(Class<T> class_, String uri) fetchResourcesByType
(Class<T> theClass) fetchResourcesByType
(Class<T> class_, org.hl7.fhir.utilities.FhirPublication fhirVersion) Fetch all the resources of a particular type.fetchResourcesByUrl
(Class<T> class_, String url) Fetch all the resources for the given URL - all matching versions<T extends Resource>
TfetchResourceWithException
(Class<T> theClass, String theUri) <T extends Resource>
TfetchResourceWithException
(Class<T> theClass, String uri, Resource sourceOfReference) Like fetchCodeSystem, except that the context will find any CodeSysetm supplements and merge them into thefetchSupplementedCodeSystem
(String theS, String theS1) fetchSupplementedCodeSystem
(String system, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) fetchSupplementedCodeSystem
(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) fetchTypeDefinition
(String typeName) This is a short cut for fetchResource(StructureDefinition.class, ...) but it accepts a typename - that is, it resolves based on StructureDefinition.type or StructureDefinition.url.fetchTypeDefinition
(String typeName, org.hl7.fhir.utilities.FhirPublication fhirVersion) This finds all the structure definitions that have the given typeNamefetchTypeDefinitions
(String n, org.hl7.fhir.utilities.FhirPublication fhirPublication) <T extends Resource>
TfindTxResource
(Class<T> class_, String canonical) <T extends Resource>
TfindTxResource
(Class<T> class_, String canonical, String version) <T extends Resource>
TfindTxResource
(Class<T> class_, String canonical, Resource sourceOfReference) this first does a fetch resource, and if nothing is found, looks in the terminology eco-system for a matching definition for the resource usually used (and so far only tested with) ValueSet.classbyte[]
Returns the binary for the keyReturns a set of keys that can be used to get binaries from this context.int
Set the expansion parameters passed through the terminology server when txServer calls are made Note that the Validation Options override these when they are specified on validateCodeget/set the locale used when creating messages todo: what's the difference?getPackage
(String id, String ver) getProfiledElementBuilder
(PEBuilder.PEElementPropertiesPolicy thePEElementPropertiesPolicy, boolean theB) getResourceNames
(org.hl7.fhir.utilities.FhirPublication fhirVersion) getResourceNamesAsSet
(org.hl7.fhir.utilities.FhirPublication fhirVersion) org.fhir.ucum.UcumService
Get the UCUM service that provides access to units of measure reasoning services This service might not be availableGet the version of the base definitions loaded in context This *does not* have to be 5.0 (R5) - the context can load other versions Note that more than one version might be loaded at once, but one version is always the default / masterboolean
Returns true if this worker context contains a binary for this key.boolean
hasPackage
(String id, String ver) boolean
hasPackage
(PackageInformation packageVersion) <T extends Resource>
booleanhasResource
(Class<T> theClass_, String theUri) find whether a resource is available.<T extends Resource>
booleanhasResource
(Class<T> class_, String uri, Resource sourceOfReference) <T extends Resource>
booleanhasResource
(Class<T> class_, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) boolean
isDataType
(String s) return whether type is data type.boolean
boolean
boolean
return whether type is primitive type.boolean
isServerSideSystem
(String url) int
loadFromPackage
(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader) Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resourceint
loadFromPackage
(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader, List<String> types) Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resource Deprecated - use the simpler method where the types come from the loader.int
loadFromPackageAndDependencies
(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader, org.hl7.fhir.utilities.npm.BasePackageCacheManager pcm) Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resource This method also loads all the packages that the package depends on (recursively)Get a validator that can check whether a resource is validsetClientRetryCount
(int value) void
setExpansionParameters
(Parameters expParameters) Get the expansion parameters passed through the terminology server when txServer calls are made Note that the Validation Options override these when they are specified on validateCodevoid
setExpansionProfile
(Parameters theExpParameters) void
setForPublication
(boolean b) void
void
setLogger
(ILoggingService theLogger) setPackageTracker
(IWorkerContextManager.IPackageLoadingTracker theIPackageLoadingTracker) void
setUcumService
(org.fhir.ucum.UcumService ucumService) subsumes
(org.hl7.fhir.utilities.validation.ValidationOptions optionsArg, Coding parent, Coding child) ask the terminology system whether parent subsumes child.boolean
supportsSystem
(String theSystem) True if the underlying terminology service provider will do expansion and code validation for the terminology.boolean
supportsSystem
(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) urlsForOid
(String oid, String resourceType) validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theVersion, String theCode, String theDisplay) Validation of a code - consult the terminology infrstructure and/or service to see whether it is known.validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theVersion, String theCode, String theDisplay, ValueSet theVs) Validation of a code - consult the terminology infrstructure and/or service to see whether it is known.validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String code, ValueSet vs) Validation of a code - consult the terminology infrstructure and/or service to see whether it is known.validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, CodeableConcept theCode, ValueSet theVs) Validation of a code - consult the terminology infrstructure and/or service to see whether it is known.validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, Coding theCode, ValueSet theVs) Validation of a code - consult the terminology infrstructure and/or service to see whether it is known.validateCode
(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs, ValidationContextCarrier ctxt) See comments in ValidationContextCarrier.void
validateCodeBatch
(org.hl7.fhir.utilities.validation.ValidationOptions options, List<? extends CodingValidationRequest> codes, ValueSet vs) Batch validate code - reduce latency and do a bunch of codes in a single server call.void
validateCodeBatchByRef
(org.hl7.fhir.utilities.validation.ValidationOptions validationOptions, List<? extends CodingValidationRequest> list, String s) Methods inherited from class org.hl7.fhir.utilities.i18n.I18nBase
formatMessage, formatMessagePlural, getMessagesSourceFileName, getPluralKey, getPluralKeys, getPluralSuffixes, getRootKeyFromPlural, isWarnAboutMissingMessages, messageKeyExistsForLocale, setPluralRules, setValidationMessageLanguage, setWarnAboutMissingMessages, typeOfString
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.r5.context.IWorkerContext
formatMessage, formatMessagePlural, setValidationMessageLanguage
-
Constructor Details
-
HapiWorkerContext
public HapiWorkerContext(ca.uhn.fhir.context.FhirContext theCtx, ca.uhn.fhir.context.support.IValidationSupport theValidationSupport)
-
-
Method Details
-
fetchCodeSystem
Description copied from interface:IWorkerContext
Find the code system definition for the nominated system uri. return null if there isn't one (then the tool might try supportsSystem) This is a short cut for fetchResource(CodeSystem.class...)- Specified by:
fetchCodeSystem
in interfaceIWorkerContext
- Parameters:
theSystem
-- Returns:
-
fetchCodeSystem
- Specified by:
fetchCodeSystem
in interfaceIWorkerContext
-
fetchCodeSystem
public CodeSystem fetchCodeSystem(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchCodeSystem
in interfaceIWorkerContext
-
fetchCodeSystem
public CodeSystem fetchCodeSystem(String system, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchCodeSystem
in interfaceIWorkerContext
-
fetchSupplementedCodeSystem
Description copied from interface:IWorkerContext
Like fetchCodeSystem, except that the context will find any CodeSysetm supplements and merge them into the- Specified by:
fetchSupplementedCodeSystem
in interfaceIWorkerContext
- Parameters:
theS
-- Returns:
-
fetchSupplementedCodeSystem
- Specified by:
fetchSupplementedCodeSystem
in interfaceIWorkerContext
-
fetchSupplementedCodeSystem
public CodeSystem fetchSupplementedCodeSystem(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchSupplementedCodeSystem
in interfaceIWorkerContext
-
fetchSupplementedCodeSystem
public CodeSystem fetchSupplementedCodeSystem(String system, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchSupplementedCodeSystem
in interfaceIWorkerContext
-
getResourceNames
- Specified by:
getResourceNames
in interfaceIWorkerContext
- Returns:
- a list of the resource names defined for this version
-
getResourceNames
- Specified by:
getResourceNames
in interfaceIWorkerContext
-
newValidator
Description copied from interface:IWorkerContext
Get a validator that can check whether a resource is valid- Specified by:
newValidator
in interfaceIWorkerContext
- Returns:
- a prepared generator
-
getNSUrlMap
- Specified by:
getNSUrlMap
in interfaceIWorkerContext
-
supportsSystem
Description copied from interface:IWorkerContext
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 Not that not all supported code systems have an available CodeSystem resource- Specified by:
supportsSystem
in interfaceIWorkerContext
- Parameters:
theSystem
-- Returns:
-
supportsSystem
public boolean supportsSystem(String system, org.hl7.fhir.utilities.FhirPublication fhirVersion) throws org.hl7.fhir.exceptions.TerminologyServiceException - Specified by:
supportsSystem
in interfaceIWorkerContext
- Throws:
org.hl7.fhir.exceptions.TerminologyServiceException
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, CodeableConcept theCode, ValueSet theVs) Description copied from interface:IWorkerContext
Validation of a code - consult the terminology infrstructure and/or 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 Note that this doesn't validate binding strength (e.g. is just text allowed?)- Specified by:
validateCode
in interfaceIWorkerContext
- Parameters:
theOptions
- - validation options (required)theCode
- - CodeableConcept to validatetheVs
- the applicable valueset (optional)- Returns:
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, Coding theCode, ValueSet theVs) Description copied from interface:IWorkerContext
Validation of a code - consult the terminology infrstructure and/or 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 in this case, the system will be inferred from the value set. It's an error to call this one without the value set- Specified by:
validateCode
in interfaceIWorkerContext
- Parameters:
theOptions
- - validation options (required)theCode
- - Coding to validatetheVs
- the applicable valueset (optional)- Returns:
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions options, Coding code, ValueSet vs, ValidationContextCarrier ctxt) Description copied from interface:IWorkerContext
See comments in ValidationContextCarrier. This is called when there might be additional value sets etc available in the context, but we don't want to pre-process them.- Specified by:
validateCode
in interfaceIWorkerContext
- Parameters:
options
-code
-vs
-ctxt
-- Returns:
-
validateCodeBatch
public void validateCodeBatch(org.hl7.fhir.utilities.validation.ValidationOptions options, List<? extends CodingValidationRequest> codes, ValueSet vs) Description copied from interface:IWorkerContext
Batch validate code - reduce latency and do a bunch of codes in a single server call. Each is the same as a validateCode- Specified by:
validateCodeBatch
in interfaceIWorkerContext
- Parameters:
options
-codes
-vs
-
-
validateCodeBatchByRef
public void validateCodeBatchByRef(org.hl7.fhir.utilities.validation.ValidationOptions validationOptions, List<? extends CodingValidationRequest> list, String s) - Specified by:
validateCodeBatchByRef
in interfaceIWorkerContext
-
expandVS
public ValueSetExpansionOutcome expandVS(ValueSet theValueSet, boolean cacheOk, boolean heiarchical, boolean incompleteOk) Description copied from interface:IWorkerContext
ValueSet Expansion - see $expand- Specified by:
expandVS
in interfaceIWorkerContext
- Parameters:
theValueSet
-- Returns:
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theVersion, String theCode, String theDisplay) Description copied from interface:IWorkerContext
Validation of a code - consult the terminology infrstructure and/or 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:
validateCode
in interfaceIWorkerContext
- Parameters:
theOptions
- - validation options (required)theSystem
- - equals Coding.system (required)theCode
- - equals Coding.code (required)theDisplay
- - equals Coding.display (optional)- Returns:
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String theSystem, String theVersion, String theCode, String theDisplay, ValueSet theVs) Description copied from interface:IWorkerContext
Validation of a code - consult the terminology infrstructure and/or 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:
validateCode
in interfaceIWorkerContext
- Parameters:
theOptions
- - validation options (required)theSystem
- - equals Coding.system (required)theCode
- - equals Coding.code (required)theDisplay
- - equals Coding.display (optional)theVs
- the applicable valueset (optional)- Returns:
-
validateCode
public ValidationResult validateCode(org.hl7.fhir.utilities.validation.ValidationOptions theOptions, String code, ValueSet vs) Description copied from interface:IWorkerContext
Validation of a code - consult the terminology infrstructure and/or 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 in this case, the system will be inferred from the value set. It's an error to call this one without the value set- Specified by:
validateCode
in interfaceIWorkerContext
- Parameters:
theOptions
- - validation options (required)code
- he code to validate (required)vs
- the applicable valueset (required)- Returns:
-
getExpansionParameters
Description copied from interface:IWorkerContext
Set the expansion parameters passed through the terminology server when txServer calls are made Note that the Validation Options override these when they are specified on validateCode- Specified by:
getExpansionParameters
in interfaceIWorkerContext
-
setExpansionParameters
Description copied from interface:IWorkerContext
Get the expansion parameters passed through the terminology server when txServer calls are made Note that the Validation Options override these when they are specified on validateCode- Specified by:
setExpansionParameters
in interfaceIWorkerContext
-
setExpansionProfile
-
expandVS
public ValueSetExpansionOutcome expandVS(ValueSet theSource, boolean theCacheOk, boolean theHierarchical) Description copied from interface:IWorkerContext
ValueSet Expansion - see $expand- Specified by:
expandVS
in interfaceIWorkerContext
- Parameters:
theSource
-- Returns:
-
expandVS
public ValueSetExpansionOutcome expandVS(ValueSet.ConceptSetComponent theInc, boolean theHierarchical, boolean theNoInactive) throws org.hl7.fhir.exceptions.TerminologyServiceException Description copied from interface:IWorkerContext
Value set expanion inside the internal expansion engine - used for references to supported system (see "supportsSystem") for which there is no value set.- Specified by:
expandVS
in interfaceIWorkerContext
- Parameters:
theInc
-- Returns:
- Throws:
org.hl7.fhir.exceptions.TerminologyServiceException
-
getLocale
Description copied from interface:IWorkerContext
get/set the locale used when creating messages todo: what's the difference?- Specified by:
getLocale
in interfaceIWorkerContext
- Overrides:
getLocale
in classorg.hl7.fhir.utilities.i18n.I18nBase
- Returns:
-
setLocale
- Specified by:
setLocale
in interfaceIWorkerContext
- Overrides:
setLocale
in classorg.hl7.fhir.utilities.i18n.I18nBase
-
getLogger
- Specified by:
getLogger
in interfaceIWorkerContext
-
setLogger
- Specified by:
setLogger
in interfaceIWorkerContext
-
getVersion
Description copied from interface:IWorkerContext
Get the version of the base definitions loaded in context This *does not* have to be 5.0 (R5) - the context can load other versions Note that more than one version might be loaded at once, but one version is always the default / master- Specified by:
getVersion
in interfaceIWorkerContext
- Returns:
-
getUcumService
Description copied from interface:IWorkerContext
Get the UCUM service that provides access to units of measure reasoning services This service might not be available- Specified by:
getUcumService
in interfaceIWorkerContext
- Returns:
-
setUcumService
- Specified by:
setUcumService
in interfaceIWorkerContext
-
isNoTerminologyServer
- Specified by:
isNoTerminologyServer
in interfaceIWorkerContext
-
getCodeSystemsUsed
- Specified by:
getCodeSystemsUsed
in interfaceIWorkerContext
-
fetchTypeDefinition
Description copied from interface:IWorkerContext
This is a short cut for fetchResource(StructureDefinition.class, ...) but it accepts a typename - that is, it resolves based on StructureDefinition.type or StructureDefinition.url. This only resolves to http://hl7.org/fhir/StructureDefinition/{typename}- Specified by:
fetchTypeDefinition
in interfaceIWorkerContext
- Parameters:
typeName
-- Returns:
-
isPrimitiveType
Description copied from interface:IWorkerContext
return whether type is primitive type. This is called a lot, and needs a high performance implementation- Specified by:
isPrimitiveType
in interfaceIWorkerContext
- Parameters:
s
-- Returns:
-
isDataType
Description copied from interface:IWorkerContext
return whether type is data type. This is called a lot, and needs a high performance implementation- Specified by:
isDataType
in interfaceIWorkerContext
- Parameters:
s
-- Returns:
-
fetchTypeDefinition
public StructureDefinition fetchTypeDefinition(String typeName, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchTypeDefinition
in interfaceIWorkerContext
-
fetchTypeDefinitions
Description copied from interface:IWorkerContext
This finds all the structure definitions that have the given typeName- Specified by:
fetchTypeDefinitions
in interfaceIWorkerContext
- Returns:
-
fetchTypeDefinitions
public List<StructureDefinition> fetchTypeDefinitions(String n, org.hl7.fhir.utilities.FhirPublication fhirPublication) - Specified by:
fetchTypeDefinitions
in interfaceIWorkerContext
-
fetchResourceRaw
- Specified by:
fetchResourceRaw
in interfaceIWorkerContext
-
fetchResource
Description copied from interface:IWorkerContext
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 resource, 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 class can be Resource, DomainResource or CanonicalResource, which means resource of all kinds- Specified by:
fetchResource
in interfaceIWorkerContext
- Returns:
-
fetchResource
public <T extends Resource> T fetchResource(Class<T> class_, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchResource
in interfaceIWorkerContext
-
fetchResourceWithException
public <T extends Resource> T fetchResourceWithException(Class<T> theClass, String theUri) throws org.hl7.fhir.exceptions.FHIRException - Specified by:
fetchResourceWithException
in interfaceIWorkerContext
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResourceWithException
public <T extends Resource> T fetchResourceWithException(Class<T> theClass, String uri, Resource sourceOfReference) throws org.hl7.fhir.exceptions.FHIRException - Specified by:
fetchResourceWithException
in interfaceIWorkerContext
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
fetchResource
- Specified by:
fetchResource
in interfaceIWorkerContext
-
fetchResource
public <T extends Resource> T fetchResource(Class<T> class_, String uri, String version, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchResource
in interfaceIWorkerContext
-
fetchResource
public <T extends Resource> T fetchResource(Class<T> class_, String uri, Resource canonicalForSource) Description copied from interface:IWorkerContext
has the same functionality as fetchResource, but passes in information about the source of the reference (this may affect resolution of version)- Specified by:
fetchResource
in interfaceIWorkerContext
- Type Parameters:
T
-- Parameters:
class_
-uri
-- Returns:
-
fetchResourcesByType
public <T extends Resource> List<T> fetchResourcesByType(Class<T> class_, org.hl7.fhir.utilities.FhirPublication fhirVersion) Description copied from interface:IWorkerContext
Fetch all the resources of a particular type. if class == (null | Resource | DomainResource | CanonicalResource) return everything- Specified by:
fetchResourcesByType
in interfaceIWorkerContext
- Type Parameters:
T
-- Parameters:
class_
-- Returns:
-
fetchResourceById
Description copied from interface:IWorkerContext
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- Specified by:
fetchResourceById
in interfaceIWorkerContext
- Parameters:
theType
-theUri
-- Returns:
-
fetchResourceById
public Resource fetchResourceById(String type, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
fetchResourceById
in interfaceIWorkerContext
-
hasResource
Description copied from interface:IWorkerContext
find 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:
hasResource
in interfaceIWorkerContext
- Parameters:
theClass_
-theUri
-- Returns:
-
hasResource
public <T extends Resource> boolean hasResource(Class<T> class_, String uri, Resource sourceOfReference) - Specified by:
hasResource
in interfaceIWorkerContext
-
hasResource
public <T extends Resource> boolean hasResource(Class<T> class_, String uri, org.hl7.fhir.utilities.FhirPublication fhirVersion) - Specified by:
hasResource
in interfaceIWorkerContext
-
cacheResource
Description copied from interface:IWorkerContext
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. If the resource is loaded out of a package, call cacheResourceFromPackage instead- Specified by:
cacheResource
in interfaceIWorkerContext
- Parameters:
theRes
-- Throws:
org.hl7.fhir.exceptions.FHIRException
-
cacheResourceFromPackage
public void cacheResourceFromPackage(Resource res, PackageInformation packageDetails) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IWorkerContext
cache a resource for later retrieval using fetchResource. The package information is used to help manage the cache internally, and to help with reference resolution. Packages should be define using cachePackage (but don't have to be) Note that various context implementations will have their own ways of loading rseources, and not all need implement cacheResource- Specified by:
cacheResourceFromPackage
in interfaceIWorkerContext
- Parameters:
res
-- Throws:
org.hl7.fhir.exceptions.FHIRException
-
cachePackage
Description copied from interface:IWorkerContext
Inform the cache about package dependencies. This can be used to help resolve references Note that the cache doesn't load dependencies- Specified by:
cachePackage
in interfaceIWorkerContext
- Parameters:
packageInformation
-
-
getResourceNamesAsSet
- Specified by:
getResourceNamesAsSet
in interfaceIWorkerContext
- Returns:
- a set of the resource names defined for this version
-
getResourceNamesAsSet
- Specified by:
getResourceNamesAsSet
in interfaceIWorkerContext
-
expandVS
public ValueSetExpansionOutcome expandVS(Resource src, ElementDefinition.ElementDefinitionBindingComponent theBinding, boolean theCacheOk, boolean theHierarchical) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IWorkerContext
ValueSet Expansion - see $expand, but resolves the binding first- Specified by:
expandVS
in interfaceIWorkerContext
- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
getBinaryKeysAsSet
Description copied from interface:IWorkerContext
Returns a set of keys that can be used to get binaries from this context. The binaries come from the loaded packages (mostly the pubpack)- Specified by:
getBinaryKeysAsSet
in interfaceIWorkerContext
- Returns:
- a set of binaries or null
-
hasBinaryKey
Description copied from interface:IWorkerContext
Returns true if this worker context contains a binary for this key.- Specified by:
hasBinaryKey
in interfaceIWorkerContext
- Parameters:
s
-- Returns:
- true if binary is available for this key
-
getBinaryForKey
Description copied from interface:IWorkerContext
Returns the binary for the key- Specified by:
getBinaryForKey
in interfaceIWorkerContext
- Parameters:
s
-- Returns:
-
loadFromPackage
public int loadFromPackage(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IWorkerContext
Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resource- Specified by:
loadFromPackage
in interfaceIWorkerContext
- Parameters:
pi
- - the package to loadloader
- - an implemenation of IContextResourceLoader that knows how to read the resources in the package (e.g. for the appropriate version).- Returns:
- the number of resources loaded
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
loadFromPackage
public int loadFromPackage(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader, List<String> types) throws FileNotFoundException, IOException, org.hl7.fhir.exceptions.FHIRException Description copied from interface:IWorkerContext
Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resource Deprecated - use the simpler method where the types come from the loader.- Specified by:
loadFromPackage
in interfaceIWorkerContext
- Parameters:
pi
- - the package to loadloader
- - an implemenation of IContextResourceLoader that knows how to read the resources in the package (e.g. for the appropriate version).types
- - which types of resources to load- Returns:
- the number of resources loaded
- Throws:
FileNotFoundException
IOException
org.hl7.fhir.exceptions.FHIRException
-
loadFromPackageAndDependencies
public int loadFromPackageAndDependencies(org.hl7.fhir.utilities.npm.NpmPackage pi, IContextResourceLoader loader, org.hl7.fhir.utilities.npm.BasePackageCacheManager pcm) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IWorkerContext
Load relevant resources of the appropriate types (as specified by the loader) from the nominated package note that the package system uses lazy loading; the loader will be called later when the classes that use the context need the relevant resource This method also loads all the packages that the package depends on (recursively)- Specified by:
loadFromPackageAndDependencies
in interfaceIWorkerContext
- Parameters:
pi
- - the package to loadloader
- - an implemenation of IContextResourceLoader that knows how to read the resources in the package (e.g. for the appropriate version).pcm
- - used to find and load additional dependencies- Returns:
- the number of resources loaded
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
hasPackage
- Specified by:
hasPackage
in interfaceIWorkerContext
-
hasPackage
- Specified by:
hasPackage
in interfaceIWorkerContext
-
getPackage
- Specified by:
getPackage
in interfaceIWorkerContext
-
getClientRetryCount
- Specified by:
getClientRetryCount
in interfaceIWorkerContext
-
setClientRetryCount
- Specified by:
setClientRetryCount
in interfaceIWorkerContext
-
clock
- Specified by:
clock
in interfaceIWorkerContext
-
getPackageTracker
- Specified by:
getPackageTracker
in interfaceIWorkerContext
-
getPackageForUrl
- Specified by:
getPackageForUrl
in interfaceIWorkerContext
-
convertConceptValidationOptions
public static ca.uhn.fhir.context.support.ConceptValidationOptions convertConceptValidationOptions(org.hl7.fhir.utilities.validation.ValidationOptions theOptions) -
fetchResourcesByType
- Specified by:
fetchResourcesByType
in interfaceIWorkerContext
-
fetchResourcesByUrl
Description copied from interface:IWorkerContext
Fetch all the resources for the given URL - all matching versions- Specified by:
fetchResourcesByUrl
in interfaceIWorkerContext
- Parameters:
url
-- Returns:
-
setPackageTracker
public IWorkerContext setPackageTracker(IWorkerContextManager.IPackageLoadingTracker theIPackageLoadingTracker) - Specified by:
setPackageTracker
in interfaceIWorkerContext
-
getSpecUrl
- Specified by:
getSpecUrl
in interfaceIWorkerContext
-
getProfiledElementBuilder
public PEBuilder getProfiledElementBuilder(PEBuilder.PEElementPropertiesPolicy thePEElementPropertiesPolicy, boolean theB) - Specified by:
getProfiledElementBuilder
in interfaceIWorkerContext
-
isForPublication
- Specified by:
isForPublication
in interfaceIWorkerContext
-
setForPublication
- Specified by:
setForPublication
in interfaceIWorkerContext
-
urlsForOid
- Specified by:
urlsForOid
in interfaceIWorkerContext
- Parameters:
oid
-resourceType
- - null to search on all resource types- Returns:
-
findTxResource
public <T extends Resource> T findTxResource(Class<T> class_, String canonical, Resource sourceOfReference) Description copied from interface:IWorkerContext
this first does a fetch resource, and if nothing is found, looks in the terminology eco-system for a matching definition for the resource usually used (and so far only tested with) ValueSet.class- Specified by:
findTxResource
in interfaceIWorkerContext
- Returns:
-
findTxResource
- Specified by:
findTxResource
in interfaceIWorkerContext
-
findTxResource
- Specified by:
findTxResource
in interfaceIWorkerContext
-
subsumes
public Boolean subsumes(org.hl7.fhir.utilities.validation.ValidationOptions optionsArg, Coding parent, Coding child) Description copied from interface:IWorkerContext
ask the terminology system whether parent subsumes child.- Specified by:
subsumes
in interfaceIWorkerContext
- Returns:
- true if it does, false if it doesn't, and null if it's not know whether it does
-
isServerSideSystem
- Specified by:
isServerSideSystem
in interfaceIWorkerContext
-