From 134b7e770929ef0c211221ecef1f34cd8dcbd0be Mon Sep 17 00:00:00 2001 From: Benjamin Admin Date: Tue, 12 May 2026 08:50:14 +0200 Subject: [PATCH] fix(iace): MachineTypes-Filter auf 136 branchenspezifische Patterns MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Medizin (25), Laser-Medizin (15), Aufzuege (25), Lebensmittel (20), Bau (20), Forst/Foerderband (31) — alle Patterns feuern jetzt NUR wenn der Maschinentyp passt. Verhindert Infusionspumpen-Szenarien bei einem Cobot-Projekt. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../iace/hazard_patterns_construction.go | 20 ++++++++++++ .../internal/iace/hazard_patterns_elevator.go | 25 +++++++++++++++ .../internal/iace/hazard_patterns_food_pkg.go | 20 ++++++++++++ .../iace/hazard_patterns_forestry_conveyor.go | 31 +++++++++++++++++++ .../iace/hazard_patterns_laser_medical.go | 15 +++++++++ .../iace/hazard_patterns_medical_pressure.go | 25 +++++++++++++++ 6 files changed, 136 insertions(+) diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_construction.go b/ai-compliance-sdk/internal/iace/hazard_patterns_construction.go index 398b3e5..ad8e101 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_construction.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_construction.go @@ -10,6 +10,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP400", NameDE: "Umkippen Bagger bei Grabungsarbeiten", NameEN: "Excavator tipping during digging", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -25,6 +26,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP401", NameDE: "Verschuettung — Grabenrand bricht ein", NameEN: "Burial — trench wall collapses", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"structural_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -40,6 +42,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP402", NameDE: "Quetschen zwischen Baggerarm und Fahrerkabine", NameEN: "Crushing between excavator arm and cab", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -55,6 +58,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP403", NameDE: "Ueberfahren von Personen durch Radlader", NameEN: "Running over persons by wheel loader", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"moving_part", "gravity_risk"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -74,6 +78,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP404", NameDE: "Absturz von Betonpumpenausleger", NameEN: "Collapse of concrete pump boom", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -91,6 +96,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP405", NameDE: "Druckversagen Betonpumpe", NameEN: "Pressure failure of concrete pump", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "high_pressure"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"pneumatic_hydraulic"}, @@ -106,6 +112,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP406", NameDE: "Heisser Asphalt — Verbrennungsgefahr", NameEN: "Hot asphalt — burn hazard", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"high_temperature", "chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"thermal_hazard"}, @@ -125,6 +132,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP407", NameDE: "Herabfallen von Tunneldecke (Vortrieb)", NameEN: "Tunnel roof collapse during boring", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"structural_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -140,6 +148,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP408", NameDE: "Quetschen bei Ramme/Bohrgeraet", NameEN: "Crushing at pile driver/drilling rig", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -155,6 +164,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP409", NameDE: "Steinschlag bei Tunnelvortrieb", NameEN: "Rockfall during tunnel excavation", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"gravity_risk"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -174,6 +184,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP410", NameDE: "Walze ueberrollt Person (Strassenbau)", NameEN: "Road roller runs over person", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"moving_part", "gravity_risk"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -189,6 +200,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP411", NameDE: "Laerm und Vibration bei Rammarbeiten", NameEN: "Noise and vibration during pile driving", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"vibration_source"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"ergonomic"}, @@ -208,6 +220,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP412", NameDE: "Kippen von Mobilkran bei Ueberreichweite", NameEN: "Mobile crane tipping at over-reach", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -225,6 +238,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP413", NameDE: "Seilbruch am Kran", NameEN: "Crane wire rope failure", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"gravity_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -242,6 +256,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP414", NameDE: "Pendelnde Last trifft Person", NameEN: "Swinging load strikes person", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"gravity_risk", "moving_part"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -257,6 +272,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP415", NameDE: "Kollision zweier Krane", NameEN: "Collision of two cranes in overlapping work areas", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"moving_part", "structural_part"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -276,6 +292,7 @@ func GetConstructionPatterns() []HazardPattern { // ================================================================ { ID: "HP416", NameDE: "Absturz Hubarbeitsbuehne bei Wind", NameEN: "Aerial work platform overturning in wind", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"hydraulic_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -291,6 +308,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP417", NameDE: "Quetschen beim Containerumschlag", NameEN: "Crushing during container handling", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"moving_part", "crush_point", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -306,6 +324,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP418", NameDE: "Herabfallen Fassadengeruest", NameEN: "Facade scaffolding collapse", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"structural_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -321,6 +340,7 @@ func GetConstructionPatterns() []HazardPattern { }, { ID: "HP419", NameDE: "Absturz von Fahrtreppen bei Stufe-Ketten-Bruch", NameEN: "Escalator fall due to step chain failure", + MachineTypes: []string{"construction", "crane", "excavator"}, RequiredComponentTags: []string{"moving_part", "structural_part"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_elevator.go b/ai-compliance-sdk/internal/iace/hazard_patterns_elevator.go index 7f00e7f..13dd4ca 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_elevator.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_elevator.go @@ -10,6 +10,7 @@ func GetElevatorPatterns() []HazardPattern { // ================================================================ { ID: "HP174", NameDE: "Einschluss in Schachtgrube", NameEN: "Entrapment in pit", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"gravity_risk", "structural_part", "elevator_shaft"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -25,6 +26,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP175", NameDE: "Quetschen im Tuerspalt", NameEN: "Crushing in door gap", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_door", "pinch_point", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -40,6 +42,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP176", NameDE: "Absturzgefahr bei offenem Schacht", NameEN: "Fall hazard at open shaft", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_shaft", "gravity_risk"}, RequiredEnergyTags: []string{}, ExcludedComponentTags: []string{"safety_device"}, @@ -56,6 +59,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP177", NameDE: "Pufferversagen — Aufprall in Endlage", NameEN: "Buffer failure — impact at terminal", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_shaft", "gravity_risk", "structural_part"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -73,6 +77,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP178", NameDE: "Seilriss / Treibscheibenversagen", NameEN: "Rope break / traction sheave failure", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -90,6 +95,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP179", NameDE: "Uebergeschwindigkeit des Fahrkorbs", NameEN: "Car overspeed", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "safety_function_failure"}, @@ -107,6 +113,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP180", NameDE: "Fehlende Notrufeinrichtung", NameEN: "Missing emergency call device", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "structural_part"}, RequiredEnergyTags: []string{}, ExcludedComponentTags: []string{"emergency_comm"}, @@ -123,6 +130,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP181", NameDE: "Brandfalle im Aufzugsschacht", NameEN: "Fire trap in elevator shaft", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_shaft", "structural_part"}, RequiredEnergyTags: []string{"thermal"}, GeneratedHazardCats: []string{"thermal_hazard", "material_environmental"}, @@ -138,6 +146,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP182", NameDE: "Quetschen zwischen Fahrkorb und Gegengewicht", NameEN: "Crushing between car and counterweight", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "counterweight", "pinch_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -153,6 +162,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP183", NameDE: "Elektrischer Schlag im Triebwerksraum", NameEN: "Electric shock in machine room", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "electrical_part"}, RequiredEnergyTags: []string{"electrical"}, GeneratedHazardCats: []string{"electrical_hazard"}, @@ -168,6 +178,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP184", NameDE: "Hydraulikversagen bei hydraulischem Aufzug", NameEN: "Hydraulic failure in hydraulic lift", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"hydraulic_part", "elevator_car", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "pneumatic_hydraulic"}, @@ -183,6 +194,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP185", NameDE: "Scherenstelle Fahrkorb / Schachtwand", NameEN: "Shearing between car and shaft wall", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "shear_risk", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -198,6 +210,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP186", NameDE: "NOT-Befreiung durch Laien", NameEN: "Emergency rescue by untrained persons", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "safety_function_failure"}, @@ -213,6 +226,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP187", NameDE: "Einklemmung im Tuermechanismus", NameEN: "Trapping in door mechanism", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_door", "pinch_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -228,6 +242,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP188", NameDE: "Ueberlast — Seilspannungsgrenze ueberschritten", NameEN: "Overload — rope tension limit exceeded", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "safety_function_failure"}, @@ -245,6 +260,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP189", NameDE: "Fahrkorb-Niveauversatz an Haltestelle", NameEN: "Car leveling offset at landing", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -260,6 +276,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP190", NameDE: "Quetschgefahr auf Fahrkorbdach", NameEN: "Crushing hazard on car roof", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "pinch_point", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -275,6 +292,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP191", NameDE: "Unbeabsichtigte Fahrkorbewegung bei offener Tuer", NameEN: "Unintended car movement with door open", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_door", "elevator_traction", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "safety_function_failure"}, @@ -292,6 +310,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP192", NameDE: "Vandalismus an Aufzugssteuerung", NameEN: "Vandalism on elevator controls", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "programmable"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"safety_function_failure"}, @@ -307,6 +326,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP193", NameDE: "Seismische Belastung Aufzugsanlage", NameEN: "Seismic load on elevator system", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_shaft", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -322,6 +342,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP194", NameDE: "Fangvorrichtung klemmt nicht", NameEN: "Safety gear does not engage", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"safety_function_failure", "mechanical_hazard"}, @@ -339,6 +360,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP195", NameDE: "Laermexposition Triebwerksraum", NameEN: "Noise exposure in machine room", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_traction", "noise_source"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"noise_vibration"}, @@ -354,6 +376,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP196", NameDE: "Absturz in Schacht bei Fahrkorbdach-Arbeiten", NameEN: "Fall into shaft during car-top work", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_car", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -369,6 +392,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP197", NameDE: "Vergiftung durch Oel/Schmierstoffe im Schacht", NameEN: "Intoxication from oil/lubricants in shaft", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_shaft", "chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -384,6 +408,7 @@ func GetElevatorPatterns() []HazardPattern { }, { ID: "HP198", NameDE: "Tuerschliessdruck zu hoch", NameEN: "Door closing force too high", + MachineTypes: []string{"elevator", "lift", "escalator"}, RequiredComponentTags: []string{"elevator_door", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_food_pkg.go b/ai-compliance-sdk/internal/iace/hazard_patterns_food_pkg.go index c1810c3..639388c 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_food_pkg.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_food_pkg.go @@ -6,6 +6,7 @@ func GetFoodProcessingPatterns() []HazardPattern { return []HazardPattern{ { ID: "HP300", NameDE: "Einzug in Fleischwolf", NameEN: "Draw-in at meat grinder", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"rotating_part", "cutting_part"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -21,6 +22,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP301", NameDE: "Verbrennungsgefahr am Backofen/Kochkessel", NameEN: "Burn hazard at oven/cooking kettle", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"high_temperature", "structural_part"}, RequiredEnergyTags: []string{"thermal"}, GeneratedHazardCats: []string{"thermal_hazard"}, @@ -36,6 +38,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP302", NameDE: "Kontamination durch mangelnde Hygiene", NameEN: "Contamination due to insufficient hygiene", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -51,6 +54,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP303", NameDE: "Schneidverletzung an Aufschnittmaschine", NameEN: "Cut injury at slicing machine", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"cutting_part", "rotating_part"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -66,6 +70,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP304", NameDE: "Dampfverbrennung beim Oeffnen des Druckkessels", NameEN: "Steam burn when opening pressure vessel", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"high_pressure", "high_temperature"}, RequiredEnergyTags: []string{"thermal", "stored_energy"}, GeneratedHazardCats: []string{"thermal_hazard", "pneumatic_hydraulic"}, @@ -84,6 +89,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP305", NameDE: "Quetschen in Teigknetmaschine", NameEN: "Crushing in dough kneading machine", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"rotating_part", "crush_point", "high_force"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -99,6 +105,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP306", NameDE: "Einzug in Walzenmuehle", NameEN: "Draw-in at roller mill", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"rotating_part", "entanglement_risk", "high_force"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -114,6 +121,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP307", NameDE: "Elektrischer Schlag in Nassumgebung (IP-Schutz)", NameEN: "Electric shock in wet environment (IP rating)", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"electrical_part"}, RequiredEnergyTags: []string{"electrical_energy"}, GeneratedHazardCats: []string{"electrical_hazard"}, @@ -132,6 +140,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP308", NameDE: "Allergene Kreuzkontamination", NameEN: "Allergen cross-contamination", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part", "chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -147,6 +156,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP309", NameDE: "Biologische Gefaehrdung (Bakterien, Schimmel)", NameEN: "Biological hazard (bacteria, mold)", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -162,6 +172,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP310", NameDE: "Quetschen durch Abfuellstempel", NameEN: "Crushing by filling piston", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"crush_point", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -177,6 +188,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP311", NameDE: "Sturz auf nassem/fettigem Boden", NameEN: "Slip on wet/greasy floor", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard", "ergonomic"}, @@ -192,6 +204,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP312", NameDE: "Erstickungsgefahr in Gaerbehaelter/Silo", NameEN: "Asphyxiation in fermentation vessel/silo", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -207,6 +220,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP313", NameDE: "Veraetzung durch Reinigungsmittel (CIP)", NameEN: "Chemical burn from CIP cleaning agents", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -222,6 +236,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP314", NameDE: "Laerm durch Hochdruckreinigung", NameEN: "Noise from high-pressure cleaning", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"noise_source", "high_pressure"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"noise_vibration"}, @@ -237,6 +252,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP315", NameDE: "Verbrennungsgefahr an Fritteuse/Heissoelbad", NameEN: "Burn hazard at deep fryer/hot oil bath", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"high_temperature"}, RequiredEnergyTags: []string{"thermal"}, GeneratedHazardCats: []string{"thermal_hazard"}, @@ -252,6 +268,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP316", NameDE: "Schnitt beim manuellen Messerwechsel", NameEN: "Cut during manual blade change", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"cutting_part"}, RequiredEnergyTags: []string{}, ExcludedComponentTags: []string{"safety_device"}, @@ -268,6 +285,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP317", NameDE: "Explosion in Mehlstaubatmosphaere", NameEN: "Explosion in flour dust atmosphere", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -286,6 +304,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP318", NameDE: "Ergonomische Belastung bei manueller Portionierung", NameEN: "Ergonomic strain during manual portioning", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"ergonomic"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"ergonomic"}, @@ -301,6 +320,7 @@ func GetFoodProcessingPatterns() []HazardPattern { }, { ID: "HP319", NameDE: "Kaelteverletzung im Tiefkuehlbereich", NameEN: "Cold injury in deep-freeze area", + MachineTypes: []string{"food_processing", "packaging"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"thermal_hazard", "ergonomic"}, diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_forestry_conveyor.go b/ai-compliance-sdk/internal/iace/hazard_patterns_forestry_conveyor.go index 224dabd..4dfb2e9 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_forestry_conveyor.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_forestry_conveyor.go @@ -10,6 +10,7 @@ func GetForestryConveyorPatterns() []HazardPattern { // ================================================================ { ID: "HP420", NameDE: "Rueckschlag Kettensaege", NameEN: "Chainsaw kickback", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"cutting_part", "vibration_source"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -25,6 +26,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP421", NameDE: "Herabfallender Ast/Baum trifft Person", NameEN: "Falling branch/tree strikes person", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"gravity_risk"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -40,6 +42,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP422", NameDE: "Einzug in Hacker/Haecksler", NameEN: "Entanglement in wood chipper/shredder", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"rotating_part", "cutting_part"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -55,6 +58,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP423", NameDE: "Schnitt durch rotierendes Maehwerk", NameEN: "Cut by rotating mower blade", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"rotating_part", "cutting_part"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -70,6 +74,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP424", NameDE: "Hand-Arm-Vibration bei Kettensaege (Dauerschaden)", NameEN: "Hand-arm vibration from chainsaw (chronic damage)", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"vibration_source"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"ergonomic"}, @@ -85,6 +90,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP425", NameDE: "Gehoerschaden bei Motorsaege", NameEN: "Hearing damage from chainsaw operation", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"vibration_source"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"ergonomic"}, @@ -100,6 +106,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP426", NameDE: "Umkippen des Forstschleppers", NameEN: "Forestry skidder overturning", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -115,6 +122,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP427", NameDE: "Quetschen durch Holzgreifer", NameEN: "Crushing by log grapple", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"hydraulic_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -130,6 +138,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP428", NameDE: "Splitterflug bei Holzbearbeitung", NameEN: "Flying splinters during wood processing", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"cutting_part", "high_speed"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -145,6 +154,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP429", NameDE: "Vergiftung durch Abgase Zweitaktmotor", NameEN: "Poisoning by two-stroke engine exhaust", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -160,6 +170,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP430", NameDE: "Allergische Reaktion auf Pflanzenschutz", NameEN: "Allergic reaction to pesticide", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -179,6 +190,7 @@ func GetForestryConveyorPatterns() []HazardPattern { // ================================================================ { ID: "HP431", NameDE: "Einzug an Bandumlenkung", NameEN: "Entanglement at belt conveyor deflection point", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"rotating_part", "entanglement_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -194,6 +206,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP432", NameDE: "Herabfallen von Stueckgut vom Foerderband", NameEN: "Falling unit load from conveyor belt", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"gravity_risk", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -209,6 +222,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP433", NameDE: "Quetschen zwischen Foerderband und Rahmen", NameEN: "Crushing between conveyor belt and frame", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -224,6 +238,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP434", NameDE: "Materialstau mit ploetzlicher Freisetzung", NameEN: "Material blockage with sudden release", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part", "gravity_risk"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -239,6 +254,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP435", NameDE: "Staubexplosion in Schuettgutfoerderung (Silo)", NameEN: "Dust explosion in bulk material handling (silo)", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"fire_explosion"}, @@ -256,6 +272,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP436", NameDE: "Vergiftung in Silozelle (Gaerungsgase)", NameEN: "Poisoning in silo cell (fermentation gases)", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -271,6 +288,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP437", NameDE: "Einzug in Schneckenfoerderer", NameEN: "Entanglement in screw conveyor", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"rotating_part", "entanglement_risk"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -286,6 +304,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP438", NameDE: "Absturz von Rollenfoerderer (Erhoehung)", NameEN: "Fall from elevated roller conveyor", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"structural_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -301,6 +320,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP439", NameDE: "Quetschen durch Hubwerk/Scherenhubtisch", NameEN: "Crushing by lift table/scissor lift mechanism", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"hydraulic_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -316,6 +336,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP440", NameDE: "Einklemmen am Drehteller", NameEN: "Trapping at rotary turntable", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"rotating_part", "crush_point"}, RequiredEnergyTags: []string{"rotational"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -331,6 +352,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP441", NameDE: "Kollision FTS mit Foerderanlage", NameEN: "AGV collision with conveyor system", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part"}, RequiredEnergyTags: []string{"kinetic"}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -346,6 +368,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP442", NameDE: "Herabfallen von Paletten-Stapel", NameEN: "Pallet stack collapse", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"gravity_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -361,6 +384,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP443", NameDE: "Quetschen an Verladebruecke", NameEN: "Crushing at loading dock leveler", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"hydraulic_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -376,6 +400,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP444", NameDE: "Ladebuehne senkt sich unkontrolliert", NameEN: "Loading dock platform drops uncontrolled", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"hydraulic_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -391,6 +416,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP445", NameDE: "Quetschen durch Industrietor", NameEN: "Crushing by industrial door", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -406,6 +432,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP446", NameDE: "Einzug in Rolltor", NameEN: "Entanglement in roller shutter door", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"moving_part", "entanglement_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -421,6 +448,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP447", NameDE: "Absturz durch offene Schachtgrube", NameEN: "Fall through open shaft pit", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"structural_part", "gravity_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -436,6 +464,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP448", NameDE: "Stolpern ueber Schienen von Verschiebeanlage", NameEN: "Tripping over rails of transfer system", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -451,6 +480,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP449", NameDE: "Brand in Absauganlage (Holzstaub)", NameEN: "Fire in extraction system (wood dust)", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"fire_explosion"}, @@ -468,6 +498,7 @@ func GetForestryConveyorPatterns() []HazardPattern { }, { ID: "HP450", NameDE: "Explosion in Mehlsilo", NameEN: "Explosion in flour silo", + MachineTypes: []string{"forestry", "conveyor"}, RequiredComponentTags: []string{"chemical_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"fire_explosion"}, diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_laser_medical.go b/ai-compliance-sdk/internal/iace/hazard_patterns_laser_medical.go index 201b3a3..596c4ed 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_laser_medical.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_laser_medical.go @@ -5,6 +5,7 @@ func GetLaserPatterns() []HazardPattern { return []HazardPattern{ { ID: "HP335", NameDE: "Augenverletzung durch Laserstrahlung (Klasse 3B/4)", NameEN: "Eye injury from laser radiation (Class 3B/4)", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -23,6 +24,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP336", NameDE: "Hautverbrennung durch Laserstrahl", NameEN: "Skin burn from laser beam", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"thermal_hazard"}, @@ -38,6 +40,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP337", NameDE: "Brand durch Laserstrahl auf brennbarem Material", NameEN: "Fire from laser beam on combustible material", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk", "high_temperature"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"thermal_hazard", "material_environmental"}, @@ -53,6 +56,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP338", NameDE: "Reflexion — Strahl trifft unkontrolliert Person", NameEN: "Reflection — beam hits person uncontrolled", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -68,6 +72,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP339", NameDE: "Rauchgas bei Laserschneiden (Metalldaempfe)", NameEN: "Fumes during laser cutting (metal vapors)", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk", "chemical_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -83,6 +88,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP340", NameDE: "Explosionsgefahr bei Laser + brennbare Atmosphaere", NameEN: "Explosion hazard laser + combustible atmosphere", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -101,6 +107,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP341", NameDE: "Quetschen durch CNC-Achsen der Laseranlage", NameEN: "Crushing by CNC axes of laser system", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"moving_part", "high_force", "crush_point"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -116,6 +123,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP342", NameDE: "Blendung durch Streulicht", NameEN: "Glare from stray light", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -131,6 +139,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP343", NameDE: "Elektroschock an Laserquelle (Hochspannung)", NameEN: "Electric shock at laser source (high voltage)", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"electrical_part", "high_voltage"}, RequiredEnergyTags: []string{"electrical_energy"}, GeneratedHazardCats: []string{"electrical_hazard"}, @@ -149,6 +158,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP344", NameDE: "UV-Strahlung bei bestimmten Lasertypen", NameEN: "UV radiation from certain laser types", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -164,6 +174,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP345", NameDE: "Schutzgaserstickung in Laserkabine", NameEN: "Inert gas asphyxiation in laser cabin", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"structural_part", "chemical_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -179,6 +190,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP346", NameDE: "Fokussierlinsenverschmutzung verursacht Rueckreflex", NameEN: "Focusing lens contamination causes back-reflection", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"thermal_hazard", "material_environmental"}, @@ -194,6 +206,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP347", NameDE: "Laserstrahl-Austritt bei defekter Einhausung", NameEN: "Laser beam escape from defective enclosure", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk", "interlocked"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental", "safety_function_failure"}, @@ -209,6 +222,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP348", NameDE: "Laermbelastung durch Laserschneidprozess", NameEN: "Noise exposure from laser cutting process", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"noise_source", "radiation_risk"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"noise_vibration"}, @@ -224,6 +238,7 @@ func GetLaserPatterns() []HazardPattern { }, { ID: "HP349", NameDE: "Restenergie in Lasermedium nach Abschaltung", NameEN: "Residual energy in laser medium after shutdown", + MachineTypes: []string{"medical_device", "laser_device"}, RequiredComponentTags: []string{"radiation_risk", "stored_energy"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"electrical_hazard", "material_environmental"}, diff --git a/ai-compliance-sdk/internal/iace/hazard_patterns_medical_pressure.go b/ai-compliance-sdk/internal/iace/hazard_patterns_medical_pressure.go index 07913e0..08ddd19 100644 --- a/ai-compliance-sdk/internal/iace/hazard_patterns_medical_pressure.go +++ b/ai-compliance-sdk/internal/iace/hazard_patterns_medical_pressure.go @@ -6,6 +6,7 @@ func GetMedicalDevicePatterns() []HazardPattern { return []HazardPattern{ { ID: "HP350", NameDE: "Elektrischer Schlag am Patienten (Ableitstrom)", NameEN: "Electric shock to patient (leakage current)", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"electrical_part"}, RequiredEnergyTags: []string{"electrical_energy"}, GeneratedHazardCats: []string{"electrical_hazard"}, @@ -24,6 +25,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP351", NameDE: "Fehlfunktion des Defibrillators", NameEN: "Defibrillator malfunction", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"electrical_part", "has_software"}, RequiredEnergyTags: []string{"electrical_energy", "stored_energy"}, GeneratedHazardCats: []string{"electrical_hazard", "safety_function_failure"}, @@ -42,6 +44,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP352", NameDE: "Ueberhitzung durch HF-Chirurgiegeraet", NameEN: "Overheating by HF surgical device", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"electrical_part", "high_temperature"}, RequiredEnergyTags: []string{"electrical_energy", "thermal"}, GeneratedHazardCats: []string{"thermal_hazard", "electrical_hazard"}, @@ -57,6 +60,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP353", NameDE: "Strahlenexposition am CT-Scanner", NameEN: "Radiation exposure at CT scanner", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"radiation_risk"}, RequiredEnergyTags: []string{"radiation"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -75,6 +79,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP354", NameDE: "Fehlalarm fuehrt zu falscher Behandlung", NameEN: "False alarm leads to wrong treatment", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"sensor_part", "has_software"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"sensor_fault", "software_fault"}, @@ -90,6 +95,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP355", NameDE: "Infektionsgefahr durch mangelhafte Sterilisation", NameEN: "Infection risk from insufficient sterilization", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -105,6 +111,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP356", NameDE: "Mechanisches Versagen des OP-Tischs", NameEN: "Mechanical failure of operating table", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"moving_part", "hydraulic_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -120,6 +127,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP357", NameDE: "EMV-Stoerung anderer Geraete", NameEN: "EMC interference with other devices", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"electrical_part", "networked"}, RequiredEnergyTags: []string{"electromagnetic"}, GeneratedHazardCats: []string{"emc_hazard", "safety_function_failure"}, @@ -135,6 +143,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP358", NameDE: "Softwarefehler in Dosierungssystem", NameEN: "Software error in dosing system", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"has_software", "programmable"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"software_fault", "safety_function_failure"}, @@ -153,6 +162,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP359", NameDE: "Patientenfall vom Krankenbett", NameEN: "Patient fall from hospital bed", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"gravity_risk", "moving_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"mechanical_hazard"}, @@ -168,6 +178,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP360", NameDE: "Ueberhitzung tragbarer Geraetebatterie", NameEN: "Overheating of portable device battery", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"electrical_part"}, RequiredEnergyTags: []string{"stored_energy", "thermal"}, GeneratedHazardCats: []string{"thermal_hazard", "electrical_hazard"}, @@ -183,6 +194,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP361", NameDE: "Fehlerhafte Anzeige am Patientenmonitor", NameEN: "Erroneous display on patient monitor", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"user_interface", "has_software"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"hmi_error", "software_fault"}, @@ -198,6 +210,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP362", NameDE: "Bewegungseinschraenkung in MRT-Roehre", NameEN: "Movement restriction in MRI bore", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{"electromagnetic"}, GeneratedHazardCats: []string{"ergonomic", "material_environmental"}, @@ -213,6 +226,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP363", NameDE: "Ferromagnetischer Gegenstand als MRT-Projektil", NameEN: "Ferromagnetic object as MRI projectile", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{"electromagnetic"}, GeneratedHazardCats: []string{"mechanical_hazard", "material_environmental"}, @@ -228,6 +242,7 @@ func GetMedicalDevicePatterns() []HazardPattern { }, { ID: "HP364", NameDE: "Quenchgefahr bei supraleitendem MRT-Magnet", NameEN: "Quench hazard at superconducting MRI magnet", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"structural_part"}, RequiredEnergyTags: []string{"electromagnetic", "stored_energy"}, GeneratedHazardCats: []string{"material_environmental"}, @@ -250,6 +265,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { return []HazardPattern{ { ID: "HP365", NameDE: "Bersten eines Druckbehaelters", NameEN: "Bursting of a pressure vessel", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure", "structural_part"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"pneumatic_hydraulic"}, @@ -268,6 +284,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP366", NameDE: "Dampfaustritt an undichter Flanschverbindung", NameEN: "Steam leak at flanged joint", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure", "high_temperature"}, RequiredEnergyTags: []string{"thermal", "stored_energy"}, GeneratedHazardCats: []string{"thermal_hazard", "pneumatic_hydraulic"}, @@ -283,6 +300,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP367", NameDE: "Sicherheitsventil oeffnet nicht", NameEN: "Safety valve fails to open", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"safety_function_failure", "pneumatic_hydraulic"}, @@ -301,6 +319,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP368", NameDE: "Druckstoss (Wasserschlag) in Rohrleitung", NameEN: "Pressure surge (water hammer) in pipeline", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"pneumatic_hydraulic", "mechanical_hazard"}, @@ -316,6 +335,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP369", NameDE: "Korrosionsversagen unter Isolierung", NameEN: "Corrosion under insulation failure", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental", "pneumatic_hydraulic"}, @@ -331,6 +351,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP370", NameDE: "Verbrennungsgefahr an heisser Dampfleitung", NameEN: "Burn hazard at hot steam pipe", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_temperature", "structural_part"}, RequiredEnergyTags: []string{"thermal"}, GeneratedHazardCats: []string{"thermal_hazard"}, @@ -346,6 +367,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP371", NameDE: "Erstickungsgefahr durch Inertgas-Austritt", NameEN: "Asphyxiation from inert gas release", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"chemical_risk", "structural_part"}, RequiredEnergyTags: []string{}, GeneratedHazardCats: []string{"material_environmental"}, @@ -361,6 +383,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP372", NameDE: "Ueberdruckversagen Waermetauscher", NameEN: "Overpressure failure of heat exchanger", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure", "high_temperature"}, RequiredEnergyTags: []string{"thermal", "stored_energy"}, GeneratedHazardCats: []string{"pneumatic_hydraulic", "thermal_hazard"}, @@ -379,6 +402,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP373", NameDE: "Druckluft-Hautinjektion", NameEN: "Compressed air skin injection", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"pneumatic_part", "high_pressure"}, RequiredEnergyTags: []string{"pneumatic_pressure"}, GeneratedHazardCats: []string{"pneumatic_hydraulic"}, @@ -394,6 +418,7 @@ func GetPressureEquipmentPatterns() []HazardPattern { }, { ID: "HP374", NameDE: "Schnellschluss-Ventilversagen bei Druckentlastung", NameEN: "Fast-closing valve failure during pressure relief", + MachineTypes: []string{"medical_device", "infusion_pump", "ventilator", "patient_monitor"}, RequiredComponentTags: []string{"high_pressure", "actuator_part"}, RequiredEnergyTags: []string{"stored_energy"}, GeneratedHazardCats: []string{"safety_function_failure", "pneumatic_hydraulic"},