Class RemoteTermServiceProvider
- java.lang.Object
-
- org.linuxforhealth.fhir.term.spi.AbstractTermServiceProvider
-
- org.linuxforhealth.fhir.term.remote.provider.RemoteTermServiceProvider
-
- All Implemented Interfaces:
FHIRTermServiceProvider
public class RemoteTermServiceProvider extends AbstractTermServiceProvider
An implementation of theFHIRTermServiceProvider
interface that connects to an external service using a REST client to access code system content.The external service must implement the FHIR REST terminology APIs documented here
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RemoteTermServiceProvider.Configuration
A class used to configure a remote term service provider
-
Constructor Summary
Constructors Constructor Description RemoteTermServiceProvider(RemoteTermServiceProvider.Configuration configuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
close()
Close the client associated with this remote term service provider.java.util.Map<Code,java.util.Set<CodeSystem.Concept>>
closure(CodeSystem codeSystem, java.util.Set<Code> codes)
Get a map of sets containingCodeSystem.Concept
instances where all structural hierarchies have been flattenedjava.util.Set<CodeSystem.Concept>
closure(CodeSystem codeSystem, Code code)
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened.CodeSystem.Concept
getConcept(CodeSystem codeSystem, Code code)
Get the concept in the provided code system with the specified code.java.util.Set<CodeSystem.Concept>
getConcepts(CodeSystem codeSystem)
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened.<R> java.util.Set<R>
getConcepts(CodeSystem codeSystem, java.util.function.Function<CodeSystem.Concept,? extends R> function)
Get a set containingFHIRTermServiceProvider
instances mapped from concepts where all structural hierarchies have been flattened.java.util.Set<CodeSystem.Concept>
getConcepts(CodeSystem codeSystem, java.util.List<ValueSet.Compose.Include.Filter> filters)
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened and filtered by the given set of value set include filters.<R> java.util.Set<R>
getConcepts(CodeSystem codeSystem, java.util.List<ValueSet.Compose.Include.Filter> filters, java.util.function.Function<CodeSystem.Concept,? extends R> function)
Get a set containingFHIRTermServiceProvider
instances mapped from concepts where all structural hierarchies have been flattened and filtered by the given set of value set include filters.RemoteTermServiceProvider.Configuration
getConfiguration()
Get the configuration used to create this remote term service provider.boolean
hasConcept(CodeSystem codeSystem, Code code)
Indicates whether the given code system contains a concept with the specified code.boolean
hasConcepts(CodeSystem codeSystem, java.util.Set<Code> codes)
Indicates whether the given code system contains a concept for each of the specified codes.boolean
isSupported(CodeSystem codeSystem)
Indicates whether the given code system is supported.boolean
subsumes(CodeSystem codeSystem, Code codeA, Code codeB)
Indicates whether the concept forCodeA
subsumes the concept forcodeB
in the passed CodeSystem.-
Methods inherited from class org.linuxforhealth.fhir.term.spi.AbstractTermServiceProvider
checkArgument, checkArguments, checkArguments, checkArguments, checkArguments, checkArguments
-
-
-
-
Constructor Detail
-
RemoteTermServiceProvider
public RemoteTermServiceProvider(RemoteTermServiceProvider.Configuration configuration)
-
-
Method Detail
-
close
public void close()
Close the client associated with this remote term service provider.
-
closure
public java.util.Set<CodeSystem.Concept> closure(CodeSystem codeSystem, Code code)
Description copied from interface:FHIRTermServiceProvider
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened.- Specified by:
closure
in interfaceFHIRTermServiceProvider
- Specified by:
closure
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code systemcode
- the root of the hierarchy containing the Concept instances to be flattened- Returns:
- flattened set of Concept instances for the given tree
-
closure
public java.util.Map<Code,java.util.Set<CodeSystem.Concept>> closure(CodeSystem codeSystem, java.util.Set<Code> codes)
Description copied from interface:FHIRTermServiceProvider
Get a map of sets containingCodeSystem.Concept
instances where all structural hierarchies have been flattened- Parameters:
codeSystem
- the code systemcodes
- the set of roots of hierarchies containing the Concept instances to be flattened- Returns:
- a map containing flattened sets of Concept instances for the given trees
-
getConcept
public CodeSystem.Concept getConcept(CodeSystem codeSystem, Code code)
Description copied from interface:FHIRTermServiceProvider
Get the concept in the provided code system with the specified code. Consumers should not expect the returned Concept to contain child concepts, even where such concepts exist in the underlying CodeSystem.- Specified by:
getConcept
in interfaceFHIRTermServiceProvider
- Specified by:
getConcept
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code systemcode
- the code- Returns:
- the code system concept with the specified code, or null if no such concept exists
-
getConcepts
public java.util.Set<CodeSystem.Concept> getConcepts(CodeSystem codeSystem)
Description copied from interface:FHIRTermServiceProvider
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened.- Specified by:
getConcepts
in interfaceFHIRTermServiceProvider
- Specified by:
getConcepts
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code system containing the set of Concept instances to be flattened- Returns:
- flattened set of Concept instances for the given code system
-
getConcepts
public <R> java.util.Set<R> getConcepts(CodeSystem codeSystem, java.util.function.Function<CodeSystem.Concept,? extends R> function)
Description copied from interface:FHIRTermServiceProvider
Get a set containingFHIRTermServiceProvider
instances mapped from concepts where all structural hierarchies have been flattened.- Type Parameters:
R
- the element type of the result set- Parameters:
codeSystem
- the code system containing the set of Concept instances to be flattenedfunction
- the function to apply to each element of the result set- Returns:
- flattened set of
FHIRTermServiceProvider
instances mapped from concepts for the given code system
-
getConcepts
public java.util.Set<CodeSystem.Concept> getConcepts(CodeSystem codeSystem, java.util.List<ValueSet.Compose.Include.Filter> filters)
Description copied from interface:FHIRTermServiceProvider
Get a set containingCodeSystem.Concept
instances where all structural hierarchies have been flattened and filtered by the given set of value set include filters.- Specified by:
getConcepts
in interfaceFHIRTermServiceProvider
- Specified by:
getConcepts
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code system containing the set of Concept instances to be flattened / filteredfilters
- the value set include filters- Returns:
- flattened / filtered set of Concept instances for the given code system
-
getConcepts
public <R> java.util.Set<R> getConcepts(CodeSystem codeSystem, java.util.List<ValueSet.Compose.Include.Filter> filters, java.util.function.Function<CodeSystem.Concept,? extends R> function)
Description copied from interface:FHIRTermServiceProvider
Get a set containingFHIRTermServiceProvider
instances mapped from concepts where all structural hierarchies have been flattened and filtered by the given set of value set include filters.- Type Parameters:
R
- the element type of the result set- Parameters:
codeSystem
- the code system containing the set of Concept instances to be flattened / filteredfilters
- the value set include filtersfunction
- the function to apply to each element of the result set- Returns:
- flattened / filtered set of
FHIRTermServiceProvider
instances mapped from concepts for the given code system
-
getConfiguration
public RemoteTermServiceProvider.Configuration getConfiguration()
Get the configuration used to create this remote term service provider.- Returns:
- the configuration
-
hasConcept
public boolean hasConcept(CodeSystem codeSystem, Code code)
Description copied from interface:FHIRTermServiceProvider
Indicates whether the given code system contains a concept with the specified code.- Specified by:
hasConcept
in interfaceFHIRTermServiceProvider
- Specified by:
hasConcept
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code systemcode
- the code- Returns:
- true if the given code system contains a concept with the specified code, false otherwise
-
hasConcepts
public boolean hasConcepts(CodeSystem codeSystem, java.util.Set<Code> codes)
Description copied from interface:FHIRTermServiceProvider
Indicates whether the given code system contains a concept for each of the specified codes.- Parameters:
codeSystem
- the code systemcodes
- the codes- Returns:
- true if the given code system contains a concept for each of the specified codes, false otherwise
-
isSupported
public boolean isSupported(CodeSystem codeSystem)
Description copied from interface:FHIRTermServiceProvider
Indicates whether the given code system is supported.- Specified by:
isSupported
in interfaceFHIRTermServiceProvider
- Specified by:
isSupported
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code system- Returns:
- true if the given code system is supported, false otherwise
-
subsumes
public boolean subsumes(CodeSystem codeSystem, Code codeA, Code codeB)
Description copied from interface:FHIRTermServiceProvider
Indicates whether the concept forCodeA
subsumes the concept forcodeB
in the passed CodeSystem.- Specified by:
subsumes
in interfaceFHIRTermServiceProvider
- Specified by:
subsumes
in classAbstractTermServiceProvider
- Parameters:
codeSystem
- the code systemcodeA
- the root of the hierarchy to searchcodeB
- the code to match- Returns:
- true if the code system concept for
codeB
exists in the tree rooted by the concept forCodeA
, false otherwise
-
-