From 1005ba0398a67f5de20ee19a67a5b9cc55277ef1 Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Thu, 7 May 2026 13:24:33 +0200 Subject: [PATCH] feat: Normen-Bibliothek auf 751 Normen finalisiert Co-Authored-By: Claude Opus 4.6 (1M context) --- .../api/handlers/iace_handler_norms.go | 1 + .../internal/iace/norms_engine.go | 1 + .../internal/iace/norms_library_c_final.go | 32 ++++++++++++++----- 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/ai-compliance-sdk/internal/api/handlers/iace_handler_norms.go b/ai-compliance-sdk/internal/api/handlers/iace_handler_norms.go index 4045339..72c8ef5 100644 --- a/ai-compliance-sdk/internal/api/handlers/iace_handler_norms.go +++ b/ai-compliance-sdk/internal/api/handlers/iace_handler_norms.go @@ -44,6 +44,7 @@ func (h *IACEHandler) ListNormsLibrary(c *gin.Context) { allNorms = append(allNorms, iace.GetWave3dCNorms()...) allNorms = append(allNorms, iace.GetWave3dExtCNorms()...) allNorms = append(allNorms, iace.GetWave3dHvacCNorms()...) + allNorms = append(allNorms, iace.GetFinalCNorms()...) var filtered []iace.NormReference for _, norm := range allNorms { diff --git a/ai-compliance-sdk/internal/iace/norms_engine.go b/ai-compliance-sdk/internal/iace/norms_engine.go index 035fa31..e9ba4fa 100644 --- a/ai-compliance-sdk/internal/iace/norms_engine.go +++ b/ai-compliance-sdk/internal/iace/norms_engine.go @@ -47,6 +47,7 @@ func SuggestNorms(machineType string, hazardCategories []string, tags []string) allNorms = append(allNorms, GetWave3dCNorms()...) allNorms = append(allNorms, GetWave3dExtCNorms()...) allNorms = append(allNorms, GetWave3dHvacCNorms()...) + allNorms = append(allNorms, GetFinalCNorms()...) // Build lookup sets for efficient matching hazardSet := toSet(hazardCategories) diff --git a/ai-compliance-sdk/internal/iace/norms_library_c_final.go b/ai-compliance-sdk/internal/iace/norms_library_c_final.go index d0ea371..4632914 100644 --- a/ai-compliance-sdk/internal/iace/norms_library_c_final.go +++ b/ai-compliance-sdk/internal/iace/norms_library_c_final.go @@ -158,10 +158,10 @@ func GetFinalCNorms() []NormReference { MachineTypes: []string{"fan", "ventilator"}, HazardCats: []string{"explosion"}, Tags: []string{"fan", "atex"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, // ── Additional norms to reach ~80 entries ──────────────────────── - {ID: "EN-13241", Number: "EN 13241:2003+A2:2016", TitleDE: "Industrie-, Gewerbe- und Garagentore", - NormType: "C", ScopeDE: "Sicherheit von Industrie- und Garagentoren.", - MachineTypes: []string{"industrial_door", "gate"}, HazardCats: []string{"mechanical_hazard", "crushing"}, - Tags: []string{"gate", "door", "industrial"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, + {ID: "EN-ISO-16092-1", Number: "EN ISO 16092-1:2017", TitleDE: "Werkzeugmaschinen — Sicherheit — Pressen — Teil 1: Allgemeines", + NormType: "C", ScopeDE: "Allgemeine Sicherheitsanforderungen an Pressen.", + MachineTypes: []string{"press"}, HazardCats: []string{"mechanical_hazard", "crushing"}, + Tags: []string{"press", "forming"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, {ID: "EN-12254", Number: "EN 12254:2010+A1:2014", TitleDE: "Abschirmungen an Laserarbeitsplaetzen", NormType: "B2", ScopeDE: "Anforderungen an Laser-Arbeitsplatzabschirmungen.", MachineTypes: []string{"laser_machine"}, HazardCats: []string{"radiation_hazard"}, @@ -306,9 +306,25 @@ func GetFinalCNorms() []NormReference { NormType: "C", ScopeDE: "Sicherheit von Aufschnittmaschinen.", MachineTypes: []string{"food_slicer", "food_machine"}, HazardCats: []string{"mechanical_hazard", "cutting"}, Tags: []string{"food", "slicer"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, - {ID: "EN-13736", Number: "EN 13736:2003+A1:2009", TitleDE: "Werkzeugmaschinen — Pneumatische Pressen", - NormType: "C", ScopeDE: "Sicherheit pneumatischer Pressen.", - MachineTypes: []string{"pneumatic_press"}, HazardCats: []string{"mechanical_hazard", "crushing"}, - Tags: []string{"press", "pneumatic"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, + {ID: "EN-ISO-16092-3", Number: "EN ISO 16092-3:2018", TitleDE: "Werkzeugmaschinen — Pressen — Teil 3: Hydraulische Pressen", + NormType: "C", ScopeDE: "Sicherheit hydraulischer Pressen (ISO-Nachfolger).", + MachineTypes: []string{"hydraulic_press"}, HazardCats: []string{"mechanical_hazard", "crushing"}, + Tags: []string{"press", "hydraulic"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, + {ID: "EN-ISO-11553-1", Number: "EN ISO 11553-1:2005+A1:2008", TitleDE: "Laserbearbeitungsmaschinen — Teil 1: Allgemeine Sicherheit", + NormType: "C", ScopeDE: "Allgemeine Sicherheit von Laserbearbeitungsmaschinen.", + MachineTypes: []string{"laser_machine"}, HazardCats: []string{"radiation_hazard"}, + Tags: []string{"laser", "processing"}, Mandatory: true, RelevantSections: []string{"Abschnitt 5"}}, + {ID: "EN-ISO-15536-1", Number: "EN ISO 15536-1:2008", TitleDE: "Ergonomie — Computermodelle — Teil 1: Allgemeines", + NormType: "B1", ScopeDE: "Computergestuetzte Menschmodelle fuer Ergonomie.", + MachineTypes: []string{}, HazardCats: []string{"ergonomic_hazard"}, + Tags: []string{"ergonomics", "cad_modelling"}, Mandatory: false, RelevantSections: []string{"Abschnitt 4"}}, + {ID: "EN-ISO-11064-1", Number: "EN ISO 11064-1:2000", TitleDE: "Ergonomische Gestaltung von Leitzentralen — Teil 1", + NormType: "B1", ScopeDE: "Ergonomische Gestaltung von Leitzentralen.", + MachineTypes: []string{"control_room"}, HazardCats: []string{"ergonomic_hazard"}, + Tags: []string{"control_room", "ergonomics"}, Mandatory: false, RelevantSections: []string{"Abschnitt 4"}}, + {ID: "EN-ISO-16890-1", Number: "EN ISO 16890-1:2016", TitleDE: "Luftfilter — Partikelluftfilter — Teil 1: Klassifizierung", + NormType: "C", ScopeDE: "Klassifizierung und Pruefung von Partikelluftfiltern.", + MachineTypes: []string{"hvac_system", "ventilation_unit"}, HazardCats: []string{"chemical_hazard"}, + Tags: []string{"air_filter", "ventilation"}, Mandatory: false, RelevantSections: []string{"Abschnitt 5"}}, } }