inou/cmd/populate-search-key/main.go

46 lines
1021 B
Go

package main
import (
"fmt"
"log"
"inou/lib"
)
func main() {
if err := lib.Init(); err != nil {
log.Fatal("lib.Init failed:", err)
}
lib.ConfigInit()
// Get all dossiers
allDossiers, err := lib.DossierList(nil, nil) // nil ctx = system, nil filter = all
if err != nil {
log.Fatal("List dossiers:", err)
}
type dossierRow struct {
DossierID string
Count int
}
var dossiers []dossierRow
for _, d := range allDossiers {
count, _ := lib.EntryCount(nil, d.DossierID, lib.CategoryLab, "")
if count > 0 {
dossiers = append(dossiers, dossierRow{DossierID: d.DossierID, Count: count})
}
}
fmt.Printf("Found %d dossiers with lab data\n", len(dossiers))
for i, d := range dossiers {
fmt.Printf("[%d/%d] Normalizing labs for dossier %s (%d entries)...\n",
i+1, len(dossiers), d.DossierID, d.Count)
if err := lib.Normalize(d.DossierID, lib.CategoryLab); err != nil {
log.Printf("Warning: normalize failed for %s: %v", d.DossierID, err)
continue
}
}
fmt.Println("Done!")
}