Inicio Rapido
Esta guia te muestra como validar un recurso FHIR usando tanto la herramienta de linea de comandos como la libreria Go.
Recurso de Ejemplo
Crea un archivo llamado patient.json con el siguiente recurso Patient minimo:
{
"resourceType": "Patient",
"id": "example",
"meta": {
"profile": [
"http://hl7.org/fhir/StructureDefinition/Patient"
]
},
"name": [
{
"family": "Smith",
"given": ["John"]
}
],
"gender": "male",
"birthDate": "1990-01-01"
}Validacion con CLI
Ejecuta el validador contra el recurso de ejemplo:
gofhir-validator patient.jsonSalida esperada para un recurso valido:
Validating patient.json ...
-- Validation Results --
Resource: Patient/example
Profile: http://hl7.org/fhir/StructureDefinition/Patient
Issues: 0 errors, 0 warnings, 1 information
[information] All OK @ Patient
Success: 0 errorsValidando un Recurso Invalido
Crea un archivo llamado patient-invalid.json con un campo requerido faltante y un codigo invalido:
{
"resourceType": "Patient",
"id": "bad-example",
"gender": "not-a-valid-code"
}gofhir-validator patient-invalid.jsonSalida esperada:
Validating patient-invalid.json ...
-- Validation Results --
Resource: Patient/bad-example
Profile: http://hl7.org/fhir/StructureDefinition/Patient
Issues: 1 error, 0 warnings, 0 information
[error] The value provided ('not-a-valid-code') is not in the value set 'AdministrativeGender' (http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1) @ Patient.gender
Failure: 1 errorLibreria Go
Crea un archivo llamado main.go:
package main
import (
"context"
"fmt"
"os"
"github.com/gofhir/validator/pkg/validator"
)
func main() {
v, err := validator.New()
if err != nil {
panic(err)
}
data, _ := os.ReadFile("patient.json")
result, err := v.Validate(context.Background(), data)
if err != nil {
panic(err)
}
fmt.Printf("Valid: %v\n", result.Valid)
fmt.Printf("Errors: %d, Warnings: %d\n", result.ErrorCount(), result.WarningCount())
for _, issue := range result.Issues {
fmt.Printf("[%s] %s @ %v\n", issue.Severity, issue.Diagnostics, issue.Expression)
}
}Ejecutalo:
go run main.goSalida esperada para el paciente valido:
Valid: true
Errors: 0, Warnings: 0Salida esperada para el paciente invalido:
Valid: false
Errors: 1, Warnings: 0
[error] The value provided ('not-a-valid-code') is not in the value set 'AdministrativeGender' (http://hl7.org/fhir/ValueSet/administrative-gender|4.0.1) @ [Patient.gender]Reutiliza la instancia del validador. Crear un
validator.New() carga e indexa todos los StructureDefinitions, lo cual toma unos segundos. Crea el validador una vez al inicio de la aplicacion y reutilizalo en multiples validaciones. El validador es seguro para uso concurrente.Siguientes Pasos
- Aprende sobre flags y opciones del CLI
- Explora la Referencia de API para uso avanzado de la libreria
- Mira como GoFHIR se compara con el HL7 Validator en la pagina de Comparacion
Última actualización