46 lines
1021 B
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!")
|
|
}
|