Instalación
Requisitos Previos
- Se requiere Go 1.23 o posterior. Puedes verificar tu versión con:
go version- Tu proyecto debe usar Go modules (
go.mod). Si aún no tienes uno, inicialízalo:
go mod init your-module-nameInstalar
Cada versión FHIR se publica como un módulo Go independiente. Instala solo la versión que necesites.
FHIR R4 (4.0.1)
go get github.com/gofhir/models/r4/v2FHIR R4B (4.3.0)
go get github.com/gofhir/models/r4b/v2FHIR R5 (5.0.0)
go get github.com/gofhir/models/r5/v2R4 Helpers (opcional)
El sub-paquete helpers proporciona valores CodeableConcept preconstruidos para categorías comunes de observación, categorías de condición, códigos LOINC y unidades UCUM:
go get github.com/gofhir/models/r4/v2/helpersImportar
Después de instalar, importa el paquete en tus archivos fuente Go:
import "github.com/gofhir/models/r4/v2"O para R4B y R5:
import "github.com/gofhir/models/r4b/v2"
import "github.com/gofhir/models/r5/v2"Todos los tipos, builders, constantes de sistemas de códigos y funciones de serialización se exportan desde el paquete específico de la versión. No hay un sub-paquete separado para builders o serialización – todo está en un solo lugar.
Usar Múltiples Versiones FHIR
Si tu aplicación necesita trabajar con más de una versión FHIR, puedes importar múltiples paquetes en el mismo proyecto. Usa alias de importación de Go para evitar colisiones de nombres:
import (
r4 "github.com/gofhir/models/r4/v2"
r5 "github.com/gofhir/models/r5/v2"
)
func main() {
// R4 Patient
patientR4 := r4.NewPatientBuilder().
SetId("r4-patient").
SetActive(true).
Build()
// R5 Patient
patientR5 := r5.NewPatientBuilder().
SetId("r5-patient").
SetActive(true).
Build()
_, _ = r4.Marshal(patientR4)
_, _ = r5.Marshal(patientR5)
}Dado que cada versión FHIR es un módulo Go separado con su propio go.mod, las versiones de dependencias se resuelven de forma independiente y nunca entran en conflicto.
Verificar la Instalación
Crea un archivo de prueba simple para confirmar que todo funciona:
package main
import (
"fmt"
"github.com/gofhir/models/r4/v2"
)
func main() {
patient := r4.NewPatientBuilder().
SetId("test").
Build()
data, err := r4.Marshal(patient)
if err != nil {
panic(err)
}
fmt.Println(string(data))
}Ejecútalo:
go run main.goSalida esperada:
{"resourceType":"Patient","id":"test"}Siguientes Pasos
Continúa con la guía de Inicio Rápido para ver ejemplos completos de creación, serialización y deserialización de recursos FHIR.