Files
breakpilot-compliance/ai-compliance-sdk/internal/iace/hazard_patterns_iso12100_gaps.go
T
Benjamin Admin 71d31c914b feat(iace): ISO 12100 Anhang B mapping — split noise/vibration + section identifier
Phase 16 of the Klaerungen / risk-assessment polish. Sources from
EN ISO 12100 Anhang B Tabelle B.1 are now first-class:

A) HazardPattern.ISO12100Section identifier (string), persisted only as
   the section number (e.g. "6.3.5.5") — not the norm text. Keeps the
   library urheberrechtlich neutral (DIN/Beuth license). 57 patterns
   labeled today; rest will follow on touch.

B) Category split per ISO 12100 Nr. 4 vs Nr. 5:
   - 16 patterns reclassified noise_vibration -> noise_hazard
   - 7  patterns reclassified noise_vibration -> vibration_hazard
   - 1  pattern (HP228 UV-/Laermexposition) kept multi-cat
   acceptableMeasureCategories now accepts both new aliases plus the
   legacy noise_vibration. Coverage test recognises both as valid.

C) 5 new ISO-12100-Annex-B gap patterns (HP1900-HP1904):
   - HP1900 Vakuum-Verletzung (6.3.5.5)
   - HP1901 Federenergie / elastische Elemente (6.2.10)
   - HP1902 Rutschen/Stolpern auf rauer Oberflaeche (6.3.5.6)
   - HP1903 Hochdruckinjektion (6.3.5.4) — includes clarifying
            "no hand-locating of leaks" question
   - HP1904 Ersticken durch Brustkorbquetschung (6.3.5.2)

The library now mirrors the ISO 12100 Annex B structure for the gaps
the Bremse benchmark surfaced.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-17 01:59:16 +02:00

95 lines
6.2 KiB
Go
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package iace
// GetISO12100GapPatterns returns hazard patterns for sources/effects from
// ISO 12100 Annex B (Tabelle B.1) that were missing in the previous IACE
// library: Vakuum, elastische Elemente (Federn), raue/rutschige Oberflaeche,
// Hochdruckinjektion und Ersticken. All entries reference the relevant
// ISO 12100 section identifier (no norm text reproduced — only the section
// number, which is a fact, not a copyrighted work).
//
// HP range: HP1900-HP1909.
func GetISO12100GapPatterns() []HazardPattern {
return []HazardPattern{
{
ID: "HP1900", NameDE: "Verletzung durch Vakuum (Vakuumgreifer / Saug-Anlage)", NameEN: "Vacuum injury (suction/vacuum equipment)",
RequiredComponentTags: []string{"clamping_part"},
RequiredEnergyTags: []string{"pneumatic"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M061", "M002", "M141"},
Priority: 90,
ApplicableLifecycles: []string{"normal_operation", "setup", "maintenance"},
ScenarioDE: "Vakuum-Werkzeug (Greifer, Saugplatte) erzeugt im Versagensfall Sog auf menschliches Gewebe (Hand, Haut). Auch nach Abschalten kann Restvakuum gefaehrlich sein.",
TriggerDE: "Hand am Sauger waehrend Aktivierung, Anlauf des Vakuums ohne Sicht­kontakt, fehlende Vakuum-Schnellentlueftung.",
HarmDE: "Quetschende Saugverletzung an Haut/Hand, Haematom, im Extremfall Avulsion oberflaechlichen Gewebes.",
AffectedDE: "Bedienpersonal, Wartungspersonal",
ZoneDE: "Vakuumgreifer, Saugnaepfe, Sauganlagen-Auslass",
ISO12100Section: "6.3.5.5",
DefaultSeverity: 3, DefaultExposure: 2,
},
{
ID: "HP1901", NameDE: "Freisetzung gespeicherter Federenergie (elastische Elemente)", NameEN: "Release of stored spring energy (elastic elements)",
RequiredComponentTags: []string{"stored_energy"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M046", "M047", "M061", "M141"},
Priority: 92,
ApplicableLifecycles: []string{"maintenance", "fault_clearing", "changeover"},
ScenarioDE: "Vorgespannte Federn, Gasdruckfedern oder elastische Elemente entladen ihre Energie unerwartet bei Demontage oder Loesen einer Arretierung.",
TriggerDE: "Loesen einer Schraube/Arretierung ohne vorherige Entlastung; Materialermuedung der Feder; Verschleiss der Halterung.",
HarmDE: "Schlag oder Wegschleudern durch entladende Feder; Augen-, Prell- und Schnittverletzungen.",
AffectedDE: "Wartungspersonal, Einrichter",
ZoneDE: "Federmechanismen, Gasdruckfedern, vorgespannte Riemen",
ISO12100Section: "6.2.10",
DefaultSeverity: 3, DefaultExposure: 2,
},
{
ID: "HP1902", NameDE: "Ausrutschen/Stolpern auf rauer oder rutschiger Oberflaeche", NameEN: "Slipping/tripping on rough or slippery surface",
RequiredComponentTags: []string{"structural_part"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M141", "M538"},
Priority: 80,
ApplicableLifecycles: []string{"normal_operation", "setup", "cleaning", "maintenance"},
ScenarioDE: "Bediener rutscht aus oder stolpert auf einer Oberflaeche im Anlagenbereich (rutschig durch KSS, Oel oder Wasser; uneben durch Kabel, Schwellen, raue Bodenstrukturen).",
TriggerDE: "Fluessigkeits-Leckage, unregelmaessige Bodengeometrie, lose Verlegung von Kabeln/Schlaeuchen.",
HarmDE: "Prellungen, Knochenbrueche, Kopfverletzungen bei Sturz; Aufprall an Anlagenkanten.",
AffectedDE: "Bedienpersonal, Reinigungspersonal, Wartungspersonal",
ZoneDE: "Verkehrswege im Maschinenbereich, Anlagenboden, Wartungspodeste",
ISO12100Section: "6.3.5.6",
DefaultSeverity: 3, DefaultExposure: 4,
},
{
ID: "HP1903", NameDE: "Hochdruckinjektion durch austretendes Medium", NameEN: "High-pressure injection injury",
RequiredComponentTags: []string{"high_pressure"},
GeneratedHazardCats: []string{"pneumatic_hydraulic"},
SuggestedMeasureIDs: []string{"M483", "M484", "M141"},
Priority: 96,
ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
ScenarioDE: "Unter Druck stehendes Medium (Hydraulikoel, KSS, Druckluft, Wasserstrahl) tritt aus undichten Verschraubungen oder geplatzten Leitungen aus und dringt unmerklich in menschliches Gewebe ein.",
TriggerDE: "Pinhole-Leckage in Druckleitung; Annaehern der Hand zum Lokalisieren der Leckage; bestes Risiko bei Druecken > 7 bar / 100 psi.",
HarmDE: "Hochdruckinjektionsverletzung — initial wie kleiner Stich, fuehrt aber innerhalb von Stunden zu Gewebenekrose. Sofortige chirurgische Behandlung erforderlich.",
AffectedDE: "Wartungspersonal, Einrichter, Reinigungspersonal",
ZoneDE: "Druckleitungen, Verschraubungen, Schlauchverbindungen, Hochdruckduesen",
ISO12100Section: "6.3.5.4",
ClarificationQuestionsDE: []string{
"Sind alle Hochdruckleitungen druckdicht nach EN ISO 4413/4414 ausgelegt und periodisch geprueft?",
"Wird das Wartungspersonal explizit zur Hochdruckinjektionsgefahr unterwiesen (kein Lokalisieren der Leckage mit der Hand)?",
},
DefaultSeverity: 5, DefaultExposure: 2,
},
{
ID: "HP1904", NameDE: "Ersticken durch Quetschung des Brustkorbs / Einschluss", NameEN: "Asphyxiation by chest compression or entrapment",
RequiredComponentTags: []string{"moving_part", "guard"},
GeneratedHazardCats: []string{"mechanical_hazard"},
SuggestedMeasureIDs: []string{"M061", "M489", "M488", "M141"},
Priority: 96,
ApplicableLifecycles: []string{"normal_operation", "maintenance", "fault_clearing"},
ScenarioDE: "Person wird zwischen bewegtem und feststehendem Anlagenteil so eingeklemmt, dass der Brustkorb komprimiert wird (kompressive Asphyxie). Oder Person wird in einem geschlossenen Maschinen­bereich eingeschlossen und kann nicht mehr atmen.",
TriggerDE: "Roboterarm presst Person gegen Wand; Schutztuer schliesst auf Person; Person rutscht in engen Maschinenraum ohne Selbstrettungsmoeglichkeit.",
HarmDE: "Kompressive Asphyxie (Atemstillstand durch Brustkorbkompression), Todesfolge innerhalb weniger Minuten.",
AffectedDE: "Wartungspersonal, Reinigungspersonal",
ZoneDE: "Schwenkbereich Roboterarm, geschlossene Bearbeitungsraeume, schmale Wartungsoeffnungen",
ISO12100Section: "6.3.5.2",
DefaultSeverity: 5, DefaultExposure: 1,
},
}
}