40 lines
914 B
Go
40 lines
914 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 with lab entries
|
|
type dossierRow struct {
|
|
DossierID string `db:"dossier_id"`
|
|
Count int `db:"count"`
|
|
}
|
|
var dossiers []dossierRow
|
|
if err := lib.Query("SELECT dossier_id, COUNT(*) as count FROM entries WHERE category = 3 GROUP BY dossier_id",
|
|
[]any{}, &dossiers); err != nil {
|
|
log.Fatal("Query dossiers:", err)
|
|
}
|
|
|
|
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!")
|
|
}
|