Referencia de la API
Referencia de la API
El paquete github.com/gofhir/fhirpath proporciona un evaluador completo de expresiones FHIRPath 2.0 para recursos FHIR® en Go. Esta seccion documenta cada funcion, tipo e interfaz publica disponible en la biblioteca.
Descripcion General del Paquete
La biblioteca esta organizada en dos paquetes:
| Paquete | Ruta de Importacion | Descripcion |
|---|---|---|
| fhirpath | github.com/gofhir/fhirpath | Motor de evaluacion principal, compilacion, cache y opciones |
| types | github.com/gofhir/fhirpath/types | Sistema de tipos FHIRPath: Value, Collection y todos los tipos primitivos |
Navegacion Rapida
Evaluacion Principal
- Funciones de Evaluacion –
Evaluate,MustEvaluateyEvaluateCachedpara la evaluacion directa de expresiones contra recursos JSON. - Compilacion y Expression –
Compile,MustCompiley el tipoExpressionpara precompilar expresiones y evaluarlas multiples veces. - Evaluacion Tipada – Funciones de conveniencia que retornan tipos nativos de Go:
EvaluateToBoolean,EvaluateToString,EvaluateToStrings,ExistsyCount.
Manejo de Recursos
- Interfaz Resource – La interfaz
Resource,EvaluateResource,EvaluateResourceCachedyResourceJSONpara evaluar structs de Go directamente.
Rendimiento y Configuracion
- Cache de Expresiones –
ExpressionCachecon desalojo LRU,DefaultCache, estadisticas de cache y monitoreo. - Opciones de Evaluacion –
EvalOptions, opciones funcionales (WithTimeout,WithContext,WithVariable, etc.) y la interfazReferenceResolver.
Sistema de Tipos
- Paquete Types – La interfaz
Value, el tipoCollectioncon todos sus metodos, y todos los tipos primitivos de FHIRPath (Boolean,Integer,Decimal,String,Date,DateTime,Time,Quantity,ObjectValue).
Elegir la Funcion Correcta
Utilice el siguiente arbol de decision para elegir el mejor punto de entrada para su caso de uso:
Tiene un struct de Go que implementa Resource?
SI --> Evalua muchas expresiones sobre el?
SI --> Use ResourceJSON (serializar una vez, evaluar muchas)
NO --> Use EvaluateResource / EvaluateResourceCached
NO --> (Tiene bytes JSON crudos)
Reutiliza la misma expresion muchas veces?
SI --> Use Compile + Expression.Evaluate
(o ExpressionCache para cache automatico)
NO --> Necesita un tipo de Go especifico de retorno?
SI --> Use EvaluateToBoolean / EvaluateToString / Exists / Count
NO --> Use Evaluate o EvaluateCachedÚltima actualización