@memoarchitect/ontology 0.8.22 → 0.10.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/README.md +1 -1
  2. package/examples/connected-patient-monitor/memo.package.yaml +3 -0
  3. package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
  4. package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
  5. package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
  6. package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
  7. package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +11 -9
  8. package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
  9. package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
  10. package/examples/functional-logical-physical/memo.package.yaml +3 -0
  11. package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +9 -7
  12. package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
  13. package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
  14. package/examples/gpca-pump/memo.identity.yaml +2179 -0
  15. package/examples/gpca-pump/memo.package.yaml +3 -0
  16. package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
  17. package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
  18. package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
  19. package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
  20. package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
  21. package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
  22. package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
  23. package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
  24. package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
  25. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
  26. package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
  27. package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
  28. package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
  29. package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
  30. package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
  31. package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
  32. package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
  33. package/examples/gpca-pump/model/catalog/project.sysml +3 -1
  34. package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
  35. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
  36. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
  37. package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
  38. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
  39. package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
  40. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
  41. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
  42. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
  43. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
  44. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
  45. package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
  46. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
  47. package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
  48. package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
  49. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
  50. package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
  51. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
  52. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
  53. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
  54. package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
  55. package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
  56. package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
  57. package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
  58. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
  59. package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
  60. package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
  61. package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
  62. package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
  63. package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
  64. package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
  65. package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +7 -5
  66. package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
  67. package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
  68. package/examples/multidimensional-layers/memo.package.yaml +3 -0
  69. package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
  70. package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
  71. package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
  72. package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
  73. package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
  74. package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
  75. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
  76. package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
  77. package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
  78. package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
  79. package/examples/reusable-instrument/memo.package.yaml +3 -0
  80. package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
  81. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
  82. package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
  83. package/examples/ros-mobile-robot/memo.package.yaml +3 -0
  84. package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
  85. package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
  86. package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
  87. package/examples/software-only-medical-device/memo.package.yaml +3 -0
  88. package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
  89. package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
  90. package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
  91. package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
  92. package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
  93. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
  94. package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
  95. package/examples/surgical-robot/memo.package.yaml +3 -0
  96. package/examples/surgical-robot/model/catalog/project.sysml +3 -1
  97. package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
  98. package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
  99. package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
  100. package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
  101. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
  102. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
  103. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
  104. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
  105. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
  106. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
  107. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
  108. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
  109. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
  110. package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
  111. package/examples/temperature-alarm/memo.identity.yaml +64 -0
  112. package/examples/temperature-alarm/memo.package.yaml +3 -0
  113. package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
  114. package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
  115. package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
  116. package/examples/ui-screen-regions/memo.package.yaml +3 -0
  117. package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
  118. package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
  119. package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
  120. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
  121. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
  122. package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
  123. package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
  124. package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
  125. package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
  126. package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
  127. package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
  128. package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
  129. package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
  130. package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
  131. package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
  132. package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
  133. package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
  134. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
  135. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
  136. package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
  137. package/extensions/aadl/memo.package.yaml +1 -1
  138. package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
  139. package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
  140. package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
  141. package/extensions/cloud/memo.package.yaml +1 -1
  142. package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
  143. package/extensions/container/memo.package.yaml +1 -1
  144. package/extensions/container/src/container_extension.sysml +2 -2
  145. package/extensions/container/src/methodology/container_methodology.sysml +3 -1
  146. package/extensions/messaging/memo.package.yaml +1 -1
  147. package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
  148. package/extensions/ros/memo.package.yaml +1 -1
  149. package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
  150. package/extensions/template/src/extension.sysml +3 -1
  151. package/methodologies/default/memo.package.yaml +1 -1
  152. package/methodologies/gpca/memo.package.yaml +1 -1
  153. package/ontology/memo.package.yaml +1 -1
  154. package/package.json +2 -2
  155. package/profile/memo.package.yaml +1 -1
  156. package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
  157. package/src/architecture/functional/functions/memo_functions.sysml +6 -6
  158. package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
  159. package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
  160. package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
  161. package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
  162. package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
  163. package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
  164. package/src/architecture/operational/activities/memo_activities.sysml +19 -28
  165. package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
  166. package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
  167. package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
  168. package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
  169. package/src/architecture/operational/structure/memo_operational.sysml +42 -13
  170. package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
  171. package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
  172. package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
  173. package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
  174. package/src/artifacts/standards/cfr_21_820.sysml +80 -89
  175. package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
  176. package/src/artifacts/standards/iec_60601_1.sysml +108 -121
  177. package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
  178. package/src/artifacts/standards/iec_60812.sysml +21 -22
  179. package/src/artifacts/standards/iec_62304.sysml +150 -169
  180. package/src/artifacts/standards/iec_62366_1.sysml +80 -89
  181. package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
  182. package/src/artifacts/standards/iso_13485.sysml +80 -89
  183. package/src/artifacts/standards/iso_14971.sysml +66 -73
  184. package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
  185. package/src/artifacts/templates/dhf/system/sad.md +3 -3
  186. package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
  187. package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
  188. package/src/assurance/requirements/memo_requirements.sysml +2 -18
  189. package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
  190. package/src/assurance/safety_risk/memo_risk.sysml +12 -0
  191. package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
  192. package/src/core/common/memo_common.sysml +59 -55
  193. package/src/core/enumerations/memo_enumerations.sysml +1 -1
  194. package/src/core/relationships/memo_relationships.sysml +29 -56
  195. package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
  196. package/src/methodology/core/memo_core.sysml +0 -10
  197. package/src/methodology/profiles/memo_profiles.sysml +18 -16
  198. package/src/methodology/workflow/memo_workflow.sysml +5 -5
  199. package/src/rules/closure/closure_rules.sysml +22 -20
  200. package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
  201. package/src/rules/ontology/ontology_invariants.sysml +121 -48
  202. package/src/rules/quantitative/quantitative_rules.sysml +4 -2
  203. package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
  204. package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
  205. package/src/viewpoints/context/context_viewpoint.sysml +6 -5
  206. package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
  207. package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
  208. package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
  209. package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
  210. package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
  211. package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
  212. package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
  213. package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
  214. package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
  215. package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
  216. package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
  217. package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
  218. package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
  219. package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
  220. package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
  221. package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
  222. package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
  223. package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
  224. package/src/viewpoints/software/software_viewpoint.sysml +5 -4
  225. package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
  226. package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
  227. package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
  228. package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
  229. package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
  230. package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
  231. package/templates/connected-device/memo.package.yaml +2 -0
  232. package/templates/connected-device/model/catalog/project.sysml +3 -1
  233. package/templates/default/memo.package.yaml +2 -0
  234. package/templates/default/model/catalog/project.sysml +3 -1
  235. package/templates/infusion-pump/memo.package.yaml +2 -0
  236. package/templates/infusion-pump/model/catalog/project.sysml +3 -1
  237. package/templates/monitoring-device/memo.package.yaml +2 -0
  238. package/templates/monitoring-device/model/catalog/project.sysml +3 -1
  239. package/templates/samd/memo.package.yaml +2 -0
  240. package/templates/samd/model/catalog/project.sysml +3 -1
@@ -0,0 +1,3 @@
1
+ name: gpca-pump
2
+ entrypoint: model/catalog/project.sysml
3
+ include: [model]
@@ -31,8 +31,10 @@ package memo_examples_gpca_pump_methodology_gpca_profiles {
31
31
  private import memo_core_enumerations::*;
32
32
  private import memo_rules_closure::*;
33
33
 
34
+ private import memo_core_common::*;
35
+ private import memo_core_common::MemoIdentity;
34
36
  part gpcaMethodDefinition : MethodologyDefinition {
35
- attribute :>> id = "METH-GPCA-001";
37
+ @MemoIdentity { :>> providedId = "METH-GPCA-001"; }
36
38
  attribute :>> name = "GPCAPrototypeMethodology";
37
39
  attribute :>> version = "0.6.5";
38
40
  attribute :>> domain = "medical device modeling";
@@ -4,9 +4,11 @@ package memo_examples_gpca_pump_gpca_analysis {
4
4
  private import memo_assurance_safety_risk_analysis::*;
5
5
  private import memo_core_enumerations::*;
6
6
 
7
+ private import memo_core_common::*;
8
+ private import memo_core_common::MemoIdentity;
7
9
  // ── FMEA (IEC 60812) ────────────────────────────────────────
8
10
  part fmeaDelivery : FMEAWorksheet {
9
- attribute :>> id = "FMEA-001";
11
+ @MemoIdentity { :>> providedId = "FMEA-001"; }
10
12
  attribute :>> name = "DrugDeliveryFMEA";
11
13
  attribute :>> analysisScope = "Fluid path, pump mechanism, delivery sensors, and patient pendant";
12
14
  attribute :>> standardReference = "IEC 60812";
@@ -15,7 +17,7 @@ package memo_examples_gpca_pump_gpca_analysis {
15
17
  attribute :>> reviewer = "Safety review board";
16
18
  }
17
19
  part fmMotorRunaway : FailureMode {
18
- attribute :>> id = "FM-001";
20
+ @MemoIdentity { :>> providedId = "FM-001"; }
19
21
  attribute :>> name = "PumpMotorRunaway";
20
22
  attribute :>> failureModeKind = FailureModeKind::unintendedFunction;
21
23
  attribute :>> effect = "Excess drug delivered to the patient beyond the prescribed rate.";
@@ -28,7 +30,7 @@ package memo_examples_gpca_pump_gpca_analysis {
28
30
  attribute :>> description = "Motor steps faster than commanded, delivering more drug than prescribed.";
29
31
  }
30
32
  part fmAirSensorSilent : FailureMode {
31
- attribute :>> id = "FM-002";
33
+ @MemoIdentity { :>> providedId = "FM-002"; }
32
34
  attribute :>> name = "AirSensorFailsSilent";
33
35
  attribute :>> failureModeKind = FailureModeKind::lossOfFunction;
34
36
  attribute :>> effect = "Air embolism reaches the patient undetected.";
@@ -41,7 +43,7 @@ package memo_examples_gpca_pump_gpca_analysis {
41
43
  attribute :>> description = "Air-in-line sensor reports 'no air' regardless of actual line state.";
42
44
  }
43
45
  part fmOcclusionDrift : FailureMode {
44
- attribute :>> id = "FM-003";
46
+ @MemoIdentity { :>> providedId = "FM-003"; }
45
47
  attribute :>> name = "OcclusionSensorDrift";
46
48
  attribute :>> failureModeKind = FailureModeKind::degradedFunction;
47
49
  attribute :>> effect = "Occluded line is detected late or not at all, interrupting therapy.";
@@ -54,7 +56,7 @@ package memo_examples_gpca_pump_gpca_analysis {
54
56
  attribute :>> description = "Pressure sensor drifts so occlusions are detected late or not at all.";
55
57
  }
56
58
  part fmStuckBolusButton : FailureMode {
57
- attribute :>> id = "FM-004";
59
+ @MemoIdentity { :>> providedId = "FM-004"; }
58
60
  attribute :>> name = "BolusButtonStuckClosed";
59
61
  attribute :>> failureModeKind = FailureModeKind::unintendedFunction;
60
62
  attribute :>> effect = "Repeated unrequested boluses are delivered.";
@@ -67,7 +69,7 @@ package memo_examples_gpca_pump_gpca_analysis {
67
69
  attribute :>> description = "Pendant switch shorted, continuously asserting bolus requests.";
68
70
  }
69
71
  part fmBatteryEarlyDepletion : FailureMode {
70
- attribute :>> id = "FM-005";
72
+ @MemoIdentity { :>> providedId = "FM-005"; }
71
73
  attribute :>> name = "BatteryDepletesEarly";
72
74
  attribute :>> failureModeKind = FailureModeKind::prematureFunction;
73
75
  attribute :>> effect = "Pump loses power during transport, stopping therapy.";
@@ -80,7 +82,7 @@ package memo_examples_gpca_pump_gpca_analysis {
80
82
  attribute :>> description = "Aged battery sustains less than the specified backup duration during transport.";
81
83
  }
82
84
  part feOverdose : FailureEffect {
83
- attribute :>> id = "FE-001";
85
+ @MemoIdentity { :>> providedId = "FE-001"; }
84
86
  attribute :>> name = "ExcessDrugDelivered";
85
87
  attribute :>> effectLevel = FailureEffectLevelKind::endEffect;
86
88
  attribute :>> effectOnPatient = "opioid overdose, respiratory depression";
@@ -89,7 +91,7 @@ package memo_examples_gpca_pump_gpca_analysis {
89
91
  attribute :>> severity = SeverityKind::catastrophic;
90
92
  }
91
93
  part feAirDelivered : FailureEffect {
92
- attribute :>> id = "FE-002";
94
+ @MemoIdentity { :>> providedId = "FE-002"; }
93
95
  attribute :>> name = "AirReachesPatientLine";
94
96
  attribute :>> effectLevel = FailureEffectLevelKind::endEffect;
95
97
  attribute :>> effectOnPatient = "risk of vascular air embolism";
@@ -98,7 +100,7 @@ package memo_examples_gpca_pump_gpca_analysis {
98
100
  attribute :>> severity = SeverityKind::catastrophic;
99
101
  }
100
102
  part feTherapyInterrupted : FailureEffect {
101
- attribute :>> id = "FE-003";
103
+ @MemoIdentity { :>> providedId = "FE-003"; }
102
104
  attribute :>> name = "TherapyInterruptedUnnoticed";
103
105
  attribute :>> effectLevel = FailureEffectLevelKind::endEffect;
104
106
  attribute :>> effectOnPatient = "untreated pain; possible post-occlusion bolus";
@@ -107,7 +109,7 @@ package memo_examples_gpca_pump_gpca_analysis {
107
109
  attribute :>> severity = SeverityKind::serious;
108
110
  }
109
111
  part fcMotorDriverFault : FailureCause {
110
- attribute :>> id = "FCA-001";
112
+ @MemoIdentity { :>> providedId = "FCA-001"; }
111
113
  attribute :>> name = "MotorDriverElectronicsFault";
112
114
  attribute :>> causeCategory = FailureCauseCategoryKind::design;
113
115
  attribute :>> causeDescription = "Driver stage latch-up or firmware step-rate computation fault";
@@ -115,7 +117,7 @@ package memo_examples_gpca_pump_gpca_analysis {
115
117
  attribute :>> preventionMethod = "independent flow cross-check; watchdog";
116
118
  }
117
119
  part fcTransducerAging : FailureCause {
118
- attribute :>> id = "FCA-002";
120
+ @MemoIdentity { :>> providedId = "FCA-002"; }
119
121
  attribute :>> name = "UltrasonicTransducerAging";
120
122
  attribute :>> causeCategory = FailureCauseCategoryKind::wear;
121
123
  attribute :>> causeDescription = "Air sensor transducer sensitivity degrades with age";
@@ -123,7 +125,7 @@ package memo_examples_gpca_pump_gpca_analysis {
123
125
  attribute :>> preventionMethod = "POST sensor plausibility check; periodic maintenance";
124
126
  }
125
127
  part fcPendantAbuse : FailureCause {
126
- attribute :>> id = "FCA-003";
128
+ @MemoIdentity { :>> providedId = "FCA-003"; }
127
129
  attribute :>> name = "PendantCableAbuse";
128
130
  attribute :>> causeCategory = FailureCauseCategoryKind::misuse;
129
131
  attribute :>> causeDescription = "Cable crushed in bed rail shorts the switch line";
@@ -131,28 +133,28 @@ package memo_examples_gpca_pump_gpca_analysis {
131
133
  attribute :>> preventionMethod = "stuck-input detection (REQ-X-09); strain-relieved cable";
132
134
  }
133
135
  part dmFlowCrossCheck : DetectionMethod {
134
- attribute :>> id = "DM-001";
136
+ @MemoIdentity { :>> providedId = "DM-001"; }
135
137
  attribute :>> name = "CommandedVsMeasuredFlowComparison";
136
138
  attribute :>> methodKind = DetectionMethodKind::monitoring;
137
139
  attribute :>> detectionPoint = "every execution step during ACTIVE therapy";
138
140
  attribute :>> confidence = DetectionKind::high;
139
141
  }
140
142
  part dmPostSensorCheck : DetectionMethod {
141
- attribute :>> id = "DM-002";
143
+ @MemoIdentity { :>> providedId = "DM-002"; }
142
144
  attribute :>> name = "POSTSensorPlausibilityCheck";
143
145
  attribute :>> methodKind = DetectionMethodKind::selfDiagnostic;
144
146
  attribute :>> detectionPoint = "power-on and periodic in-service test";
145
147
  attribute :>> confidence = DetectionKind::moderate;
146
148
  }
147
149
  part dmStuckInputMonitor : DetectionMethod {
148
- attribute :>> id = "DM-003";
150
+ @MemoIdentity { :>> providedId = "DM-003"; }
149
151
  attribute :>> name = "StuckInputMonitor";
150
152
  attribute :>> methodKind = DetectionMethodKind::monitoring;
151
153
  attribute :>> detectionPoint = "bolus input asserted beyond 60 s";
152
154
  attribute :>> confidence = DetectionKind::high;
153
155
  }
154
156
  part fmeaActionAirSensor : FMEAAction {
155
- attribute :>> id = "FMA-001";
157
+ @MemoIdentity { :>> providedId = "FMA-001"; }
156
158
  attribute :>> name = "AddRedundantAirDetectionWindow";
157
159
  attribute :>> actionKind = FMEAActionKind::designChange;
158
160
  attribute :>> responsible = "hardware lead";
@@ -163,7 +165,7 @@ package memo_examples_gpca_pump_gpca_analysis {
163
165
 
164
166
  // ── Fault tree (overdose top event) ─────────────────────────
165
167
  part ftaOverdose : FaultTree {
166
- attribute :>> id = "FTA-001";
168
+ @MemoIdentity { :>> providedId = "FTA-001"; }
167
169
  attribute :>> name = "OverdoseFaultTree";
168
170
  attribute :>> standardReference = "IEC 61025";
169
171
  attribute :>> analysisScope = "Drug over-delivery during ACTIVE therapy";
@@ -172,13 +174,13 @@ package memo_examples_gpca_pump_gpca_analysis {
172
174
  attribute :>> revisionDate = "2026-07-03";
173
175
  }
174
176
  part fteOverdoseTop : FaultTreeNode {
175
- attribute :>> id = "FTE-001";
177
+ @MemoIdentity { :>> providedId = "FTE-001"; }
176
178
  attribute :>> name = "ExcessDrugDeliveredTopEvent";
177
179
  attribute :>> eventKind = FaultTreeEventKind::topEvent;
178
180
  attribute :>> description = "Delivered volume exceeds prescribed limits";
179
181
  }
180
182
  part fteMotorRunaway : FaultTreeNode {
181
- attribute :>> id = "FTE-002";
183
+ @MemoIdentity { :>> providedId = "FTE-002"; }
182
184
  attribute :>> name = "MotorRunawayBasicEvent";
183
185
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
184
186
  attribute :>> failureRate = 0.000001;
@@ -186,7 +188,7 @@ package memo_examples_gpca_pump_gpca_analysis {
186
188
  attribute :>> description = "Pump motor delivers faster than commanded (FM-001)";
187
189
  }
188
190
  part fteCrossCheckFails : FaultTreeNode {
189
- attribute :>> id = "FTE-003";
191
+ @MemoIdentity { :>> providedId = "FTE-003"; }
190
192
  attribute :>> name = "FlowCrossCheckUnavailable";
191
193
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
192
194
  attribute :>> failureRate = 0.00001;
@@ -194,7 +196,7 @@ package memo_examples_gpca_pump_gpca_analysis {
194
196
  attribute :>> description = "Independent flow sensor or comparison logic fails (FM-003 family)";
195
197
  }
196
198
  part fteLockoutFault : FaultTreeNode {
197
- attribute :>> id = "FTE-004";
199
+ @MemoIdentity { :>> providedId = "FTE-004"; }
198
200
  attribute :>> name = "LockoutEnforcementFault";
199
201
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
200
202
  attribute :>> failureRate = 0.0000001;
@@ -202,7 +204,7 @@ package memo_examples_gpca_pump_gpca_analysis {
202
204
  attribute :>> description = "Infusion manager authorizes bolus despite active lockout";
203
205
  }
204
206
  part fteStuckButtonUndetected : FaultTreeNode {
205
- attribute :>> id = "FTE-005";
207
+ @MemoIdentity { :>> providedId = "FTE-005"; }
206
208
  attribute :>> name = "StuckBolusButtonUndetected";
207
209
  attribute :>> eventKind = FaultTreeEventKind::basicEvent;
208
210
  attribute :>> failureRate = 0.000001;
@@ -210,29 +212,29 @@ package memo_examples_gpca_pump_gpca_analysis {
210
212
  attribute :>> description = "Pendant stuck closed and stuck-input monitor fails (FM-004)";
211
213
  }
212
214
  part ftgOverdoseOr : FaultTreeNode {
213
- attribute :>> id = "FTG-001";
215
+ @MemoIdentity { :>> providedId = "FTG-001"; }
214
216
  attribute :>> name = "OverdelivryPathOrGate";
215
217
  attribute :>> gateKind = FaultTreeGateKind::orGate;
216
218
  }
217
219
  part ftgMotorAnd : FaultTreeNode {
218
- attribute :>> id = "FTG-002";
220
+ @MemoIdentity { :>> providedId = "FTG-002"; }
219
221
  attribute :>> name = "MotorRunawayAndCrossCheckGate";
220
222
  attribute :>> gateKind = FaultTreeGateKind::andGate;
221
223
  }
222
224
  part ftgBolusAnd : FaultTreeNode {
223
- attribute :>> id = "FTG-003";
225
+ @MemoIdentity { :>> providedId = "FTG-003"; }
224
226
  attribute :>> name = "UnauthorizedBolusAndGate";
225
227
  attribute :>> gateKind = FaultTreeGateKind::andGate;
226
228
  }
227
229
  part mcsMotorPath : MinimalCutSet {
228
- attribute :>> id = "MCS-001";
230
+ @MemoIdentity { :>> providedId = "MCS-001"; }
229
231
  attribute :>> name = "MotorRunawayWithLostCrossCheck";
230
232
  attribute :>> cutSetOrder = 2;
231
233
  attribute :>> involvedEvents = "FTE-002, FTE-003";
232
234
  attribute :>> significance = "dominant contributor; controlled by RC-008 independence";
233
235
  }
234
236
  part mcsBolusPath : MinimalCutSet {
235
- attribute :>> id = "MCS-002";
237
+ @MemoIdentity { :>> providedId = "MCS-002"; }
236
238
  attribute :>> name = "StuckButtonWithLockoutFault";
237
239
  attribute :>> cutSetOrder = 2;
238
240
  attribute :>> involvedEvents = "FTE-004, FTE-005";