@memoarchitect/ontology 0.13.2 → 0.15.0
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.
- package/README.md +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/{catalog → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- package/methodologies/default/memo.package.yaml +1 -1
- package/methodologies/gpca/memo.package.yaml +1 -1
- package/ontology/memo.package.yaml +1 -1
- package/package.json +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +51 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
|
@@ -35,8 +35,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
35
35
|
// modelled as the artifacts they are rather than as a second document type.
|
|
36
36
|
|
|
37
37
|
part docSrs : MarkdownDocumentSource {
|
|
38
|
-
@MemoIdentity { :>> providedId = "DOC-SRS"; }
|
|
39
|
-
attribute :>> name = "SoftwareRequirementsSpecification";
|
|
38
|
+
@MemoIdentity { :>> providedId = "DOC-SRS"; :>> label = "SoftwareRequirementsSpecification"; }
|
|
40
39
|
attribute :>> version = "1.0";
|
|
41
40
|
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
42
41
|
attribute :>> owner = "Software Lead";
|
|
@@ -47,8 +46,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
47
46
|
attribute :>> generated = true;
|
|
48
47
|
}
|
|
49
48
|
part docSad : MarkdownDocumentSource {
|
|
50
|
-
@MemoIdentity { :>> providedId = "DOC-SAD"; }
|
|
51
|
-
attribute :>> name = "SoftwareArchitectureDescription";
|
|
49
|
+
@MemoIdentity { :>> providedId = "DOC-SAD"; :>> label = "SoftwareArchitectureDescription"; }
|
|
52
50
|
attribute :>> version = "1.0";
|
|
53
51
|
attribute :>> artifactKind = ArtifactKind::architectureDescription;
|
|
54
52
|
attribute :>> owner = "Systems Architect";
|
|
@@ -59,8 +57,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
59
57
|
attribute :>> generated = true;
|
|
60
58
|
}
|
|
61
59
|
part docHrs : MarkdownDocumentSource {
|
|
62
|
-
@MemoIdentity { :>> providedId = "DOC-HRS"; }
|
|
63
|
-
attribute :>> name = "HardwareRequirementsSpecification";
|
|
60
|
+
@MemoIdentity { :>> providedId = "DOC-HRS"; :>> label = "HardwareRequirementsSpecification"; }
|
|
64
61
|
attribute :>> version = "1.0";
|
|
65
62
|
attribute :>> artifactKind = ArtifactKind::requirementSpecification;
|
|
66
63
|
attribute :>> owner = "Hardware Lead";
|
|
@@ -71,8 +68,7 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
71
68
|
attribute :>> generated = true;
|
|
72
69
|
}
|
|
73
70
|
part docRmf : MarkdownDocumentSource {
|
|
74
|
-
@MemoIdentity { :>> providedId = "DOC-RMF"; }
|
|
75
|
-
attribute :>> name = "RiskManagementFile";
|
|
71
|
+
@MemoIdentity { :>> providedId = "DOC-RMF"; :>> label = "RiskManagementFile"; }
|
|
76
72
|
attribute :>> version = "1.0";
|
|
77
73
|
attribute :>> artifactKind = ArtifactKind::riskRecord;
|
|
78
74
|
attribute :>> owner = "Risk Manager";
|
|
@@ -85,78 +81,78 @@ package memo_examples_gpca_pump_gpca_standards {
|
|
|
85
81
|
|
|
86
82
|
// ── IEC 62304 — software lifecycle ───────────────────────────────────
|
|
87
83
|
// §5.2.2 software requirements content: every software requirement.
|
|
88
|
-
connection : ConformsTo connect conformingElement ::> reqOcclusion to clause ::> iec62304
|
|
89
|
-
connection : ConformsTo connect conformingElement ::> reqDoorOpen to clause ::> iec62304
|
|
90
|
-
connection : ConformsTo connect conformingElement ::> reqMaxHourlyDose to clause ::> iec62304
|
|
91
|
-
connection : ConformsTo connect conformingElement ::> reqEventLogging to clause ::> iec62304
|
|
92
|
-
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304
|
|
93
|
-
connection : ConformsTo connect conformingElement ::> reqStuckButton to clause ::> iec62304
|
|
94
|
-
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304
|
|
84
|
+
connection : ConformsTo connect conformingElement ::> reqOcclusion to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
85
|
+
connection : ConformsTo connect conformingElement ::> reqDoorOpen to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
86
|
+
connection : ConformsTo connect conformingElement ::> reqMaxHourlyDose to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
87
|
+
connection : ConformsTo connect conformingElement ::> reqEventLogging to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
88
|
+
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
89
|
+
connection : ConformsTo connect conformingElement ::> reqStuckButton to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
90
|
+
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2;
|
|
95
91
|
|
|
96
92
|
// §5.2.3 risk control measures carried into software requirements.
|
|
97
|
-
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304
|
|
98
|
-
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304
|
|
93
|
+
connection : ConformsTo connect conformingElement ::> reqWatchdogSafeState to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_3;
|
|
94
|
+
connection : ConformsTo connect conformingElement ::> reqFlowCrossCheck to clause ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_3;
|
|
99
95
|
|
|
100
96
|
// §5.3 software architectural design: the software decomposition.
|
|
101
|
-
connection : ConformsTo connect conformingElement ::>
|
|
102
|
-
connection : ConformsTo connect conformingElement ::>
|
|
103
|
-
connection : ConformsTo connect conformingElement ::>
|
|
104
|
-
connection : ConformsTo connect conformingElement ::>
|
|
105
|
-
connection : ConformsTo connect conformingElement ::>
|
|
97
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware to clause ::> iec62304.iec62304Clause5.iec62304Clause5_3;
|
|
98
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware.tlm to clause ::> iec62304.iec62304Clause5.iec62304Clause5_3;
|
|
99
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware.infusionMgr to clause ::> iec62304.iec62304Clause5.iec62304Clause5_3;
|
|
100
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware.systemMonitor to clause ::> iec62304.iec62304Clause5.iec62304Clause5_3;
|
|
101
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware.config to clause ::> iec62304.iec62304Clause5.iec62304Clause5_3;
|
|
106
102
|
|
|
107
103
|
// ── IEC 60601-1 — basic safety and essential performance ─────────────
|
|
108
104
|
// §8 protection against electrical hazards.
|
|
109
|
-
connection : ConformsTo connect conformingElement ::> reqBatteryBackup to clause ::> iec60601_1
|
|
110
|
-
connection : ConformsTo connect conformingElement ::> powerSupply to clause ::> iec60601_1
|
|
111
|
-
connection : ConformsTo connect conformingElement ::> batteryPack to clause ::> iec60601_1
|
|
105
|
+
connection : ConformsTo connect conformingElement ::> reqBatteryBackup to clause ::> iec60601_1.iec60601_1Clause8;
|
|
106
|
+
connection : ConformsTo connect conformingElement ::> powerSupply to clause ::> iec60601_1.iec60601_1Clause8;
|
|
107
|
+
connection : ConformsTo connect conformingElement ::> batteryPack to clause ::> iec60601_1.iec60601_1Clause8;
|
|
112
108
|
|
|
113
109
|
// §9 protection against mechanical hazards.
|
|
114
|
-
connection : ConformsTo connect conformingElement ::> reqFreeFlowPrevention to clause ::> iec60601_1
|
|
115
|
-
connection : ConformsTo connect conformingElement ::> antiFreeFlowValve to clause ::> iec60601_1
|
|
116
|
-
connection : ConformsTo connect conformingElement ::> enclosure to clause ::> iec60601_1
|
|
110
|
+
connection : ConformsTo connect conformingElement ::> reqFreeFlowPrevention to clause ::> iec60601_1.iec60601_1Clause9;
|
|
111
|
+
connection : ConformsTo connect conformingElement ::> antiFreeFlowValve to clause ::> iec60601_1.iec60601_1Clause9;
|
|
112
|
+
connection : ConformsTo connect conformingElement ::> enclosure to clause ::> iec60601_1.iec60601_1Clause9;
|
|
117
113
|
|
|
118
114
|
// §14 programmable electrical medical systems.
|
|
119
|
-
connection : ConformsTo connect conformingElement ::>
|
|
115
|
+
connection : ConformsTo connect conformingElement ::> gpcaSoftware to clause ::> iec60601_1.iec60601_1Clause14;
|
|
120
116
|
|
|
121
117
|
// ── IEC 60601-1-2 — electromagnetic compatibility ────────────────────
|
|
122
|
-
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2
|
|
123
|
-
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2
|
|
124
|
-
connection : ConformsTo connect conformingElement ::> reqPost to clause ::> iec60601_1_2
|
|
118
|
+
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2.iec60601_1_2Clause7;
|
|
119
|
+
connection : ConformsTo connect conformingElement ::> controllerBoard to clause ::> iec60601_1_2.iec60601_1_2Clause8;
|
|
120
|
+
connection : ConformsTo connect conformingElement ::> reqPost to clause ::> iec60601_1_2.iec60601_1_2Clause8;
|
|
125
121
|
|
|
126
122
|
// ── ISO 14971 — risk management ──────────────────────────────────────
|
|
127
123
|
// §7 risk control: the risk control measures themselves.
|
|
128
|
-
connection : ConformsTo connect conformingElement ::> lockoutControl to clause ::> iso14971
|
|
129
|
-
connection : ConformsTo connect conformingElement ::> occlusionAlarmControl to clause ::> iso14971
|
|
130
|
-
connection : ConformsTo connect conformingElement ::> airDetectionControl to clause ::> iso14971
|
|
131
|
-
connection : ConformsTo connect conformingElement ::> freeFlowValveControl to clause ::> iso14971
|
|
132
|
-
connection : ConformsTo connect conformingElement ::> doorInterlockControl to clause ::> iso14971
|
|
133
|
-
connection : ConformsTo connect conformingElement ::> watchdogControl to clause ::> iso14971
|
|
134
|
-
connection : ConformsTo connect conformingElement ::> flowCrossCheckControl to clause ::> iso14971
|
|
124
|
+
connection : ConformsTo connect conformingElement ::> lockoutControl to clause ::> iso14971.iso14971Clause7;
|
|
125
|
+
connection : ConformsTo connect conformingElement ::> occlusionAlarmControl to clause ::> iso14971.iso14971Clause7;
|
|
126
|
+
connection : ConformsTo connect conformingElement ::> airDetectionControl to clause ::> iso14971.iso14971Clause7;
|
|
127
|
+
connection : ConformsTo connect conformingElement ::> freeFlowValveControl to clause ::> iso14971.iso14971Clause7;
|
|
128
|
+
connection : ConformsTo connect conformingElement ::> doorInterlockControl to clause ::> iso14971.iso14971Clause7;
|
|
129
|
+
connection : ConformsTo connect conformingElement ::> watchdogControl to clause ::> iso14971.iso14971Clause7;
|
|
130
|
+
connection : ConformsTo connect conformingElement ::> flowCrossCheckControl to clause ::> iso14971.iso14971Clause7;
|
|
135
131
|
|
|
136
132
|
// ── Where the evidence for each claim is written down ────────────────
|
|
137
133
|
// The section reference rides on the link, not on a duplicate section type.
|
|
138
|
-
connection : TracesToDocument connect tracedElement ::> iec62304
|
|
134
|
+
connection : TracesToDocument connect tracedElement ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_2 to artifact ::> docSrs {
|
|
139
135
|
attribute :>> sectionReference = "3";
|
|
140
136
|
}
|
|
141
|
-
connection : TracesToDocument connect tracedElement ::> iec62304
|
|
137
|
+
connection : TracesToDocument connect tracedElement ::> iec62304.iec62304Clause5.iec62304Clause5_2.iec62304Clause5_2_3 to artifact ::> docSrs {
|
|
142
138
|
attribute :>> sectionReference = "3.2";
|
|
143
139
|
}
|
|
144
|
-
connection : TracesToDocument connect tracedElement ::> iec62304
|
|
140
|
+
connection : TracesToDocument connect tracedElement ::> iec62304.iec62304Clause5.iec62304Clause5_3 to artifact ::> docSad {
|
|
145
141
|
attribute :>> sectionReference = "4";
|
|
146
142
|
}
|
|
147
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1
|
|
143
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1.iec60601_1Clause8 to artifact ::> docHrs {
|
|
148
144
|
attribute :>> sectionReference = "4";
|
|
149
145
|
}
|
|
150
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1
|
|
146
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1.iec60601_1Clause9 to artifact ::> docHrs {
|
|
151
147
|
attribute :>> sectionReference = "6";
|
|
152
148
|
}
|
|
153
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1
|
|
149
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1.iec60601_1Clause14 to artifact ::> docSad {
|
|
154
150
|
attribute :>> sectionReference = "6.2";
|
|
155
151
|
}
|
|
156
|
-
connection : TracesToDocument connect tracedElement ::> iec60601_1_2
|
|
152
|
+
connection : TracesToDocument connect tracedElement ::> iec60601_1_2.iec60601_1_2Clause7 to artifact ::> docHrs {
|
|
157
153
|
attribute :>> sectionReference = "5";
|
|
158
154
|
}
|
|
159
|
-
connection : TracesToDocument connect tracedElement ::> iso14971
|
|
155
|
+
connection : TracesToDocument connect tracedElement ::> iso14971.iso14971Clause7 to artifact ::> docRmf {
|
|
160
156
|
attribute :>> sectionReference = "5";
|
|
161
157
|
}
|
|
162
158
|
}
|
|
@@ -15,101 +15,104 @@ package memo_examples_gpca_pump_gpca_system {
|
|
|
15
15
|
// retired: "mission" duplicated the regulated intended-use statement.
|
|
16
16
|
|
|
17
17
|
// ── Functional chains ───────────────────────────────────────
|
|
18
|
+
// A step is its function performed at one position in the chain:
|
|
19
|
+
// `action <step> :> <function>`, nested in the flow, so each position keeps
|
|
20
|
+
// its own identity and evidence scope. The item a step handles is a
|
|
21
|
+
// step-local parameter subsetting it, and a `flow` joins two steps wherever
|
|
22
|
+
// one's output is the next one's input. A step's parameters redefine its
|
|
23
|
+
// function's in declaration order, whatever their names, so each narrows
|
|
24
|
+
// the function's parameter at that position to this step's item.
|
|
18
25
|
action fcPatientBolus : FunctionalFlow {
|
|
19
|
-
@MemoIdentity { :>> providedId = "FC-001"; }
|
|
20
|
-
attribute :>> name = "PatientBolusChain";
|
|
26
|
+
@MemoIdentity { :>> providedId = "FC-001"; :>> label = "PatientBolusChain"; }
|
|
21
27
|
attribute :>> flowCategory = FunctionalFlowKind::nominal;
|
|
22
28
|
attribute :>> endToEndLatencyBudgetMs = "100";
|
|
23
29
|
attribute :>> safetyRelevant = true;
|
|
24
30
|
attribute :>> securityRelevant = false;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
doc /* Bolus button press through lockout/max-dose check to pump actuation and logging. */
|
|
32
|
+
action fcsBolusSense :> fnAcquireSensors {
|
|
33
|
+
@MemoIdentity { :>> providedId = "FCS-001"; :>> label = "SenseBolusRequest"; }
|
|
34
|
+
out item bolusRequest :> ddBolusRequest;
|
|
35
|
+
}
|
|
36
|
+
action fcsBolusValidate :> fnEnforceLimits {
|
|
37
|
+
@MemoIdentity { :>> providedId = "FCS-002"; :>> label = "CheckLockoutAndMaxDose"; }
|
|
38
|
+
in item prescription :> ddPrescription;
|
|
39
|
+
}
|
|
40
|
+
action fcsBolusCommand :> fnManageInfusion {
|
|
41
|
+
@MemoIdentity { :>> providedId = "FCS-003"; :>> label = "CommandBolusFlow"; }
|
|
42
|
+
out item flowCommand :> cdFlowCommand;
|
|
43
|
+
}
|
|
44
|
+
action fcsBolusActuate :> fnCommandPump {
|
|
45
|
+
@MemoIdentity { :>> providedId = "FCS-004"; :>> label = "ActuatePumpMotor"; }
|
|
46
|
+
in item flowCommand :> cdFlowCommand;
|
|
47
|
+
}
|
|
48
|
+
action fcsBolusLog :> fnLogEvents {
|
|
49
|
+
@MemoIdentity { :>> providedId = "FCS-005"; :>> label = "LogBolusOutcome"; }
|
|
50
|
+
out item eventRecord :> ddEventRecord;
|
|
51
|
+
}
|
|
52
|
+
first fcsBolusSense then fcsBolusValidate;
|
|
53
|
+
first fcsBolusValidate then fcsBolusCommand;
|
|
54
|
+
first fcsBolusCommand then fcsBolusActuate;
|
|
55
|
+
first fcsBolusActuate then fcsBolusLog;
|
|
56
|
+
flow from fcsBolusCommand.flowCommand to fcsBolusActuate.flowCommand;
|
|
31
57
|
}
|
|
32
|
-
action fcsBolusSense : FunctionalFlowStep {
|
|
33
|
-
@MemoIdentity { :>> providedId = "FCS-001"; } attribute :>> name = "SenseBolusRequest";
|
|
34
|
-
ref :>> function = fnAcquireSensors; ref :>> exchangedItem = ddBolusRequest;
|
|
35
|
-
}
|
|
36
|
-
action fcsBolusValidate : FunctionalFlowStep {
|
|
37
|
-
@MemoIdentity { :>> providedId = "FCS-002"; } attribute :>> name = "CheckLockoutAndMaxDose";
|
|
38
|
-
ref :>> function = fnEnforceLimits; ref :>> exchangedItem = ddPrescription;
|
|
39
|
-
}
|
|
40
|
-
action fcsBolusCommand : FunctionalFlowStep {
|
|
41
|
-
@MemoIdentity { :>> providedId = "FCS-003"; } attribute :>> name = "CommandBolusFlow";
|
|
42
|
-
ref :>> function = fnManageInfusion; ref :>> exchangedItem = cdFlowCommand;
|
|
43
|
-
}
|
|
44
|
-
action fcsBolusActuate : FunctionalFlowStep {
|
|
45
|
-
@MemoIdentity { :>> providedId = "FCS-004"; } attribute :>> name = "ActuatePumpMotor";
|
|
46
|
-
ref :>> function = fnCommandPump; ref :>> exchangedItem = cdFlowCommand;
|
|
47
|
-
}
|
|
48
|
-
action fcsBolusLog : FunctionalFlowStep {
|
|
49
|
-
@MemoIdentity { :>> providedId = "FCS-005"; } attribute :>> name = "LogBolusOutcome";
|
|
50
|
-
ref :>> function = fnLogEvents; ref :>> exchangedItem = ddEventRecord;
|
|
51
|
-
}
|
|
52
|
-
first fcsBolusSense then fcsBolusValidate;
|
|
53
|
-
first fcsBolusValidate then fcsBolusCommand;
|
|
54
|
-
first fcsBolusCommand then fcsBolusActuate;
|
|
55
|
-
first fcsBolusActuate then fcsBolusLog;
|
|
56
58
|
|
|
57
59
|
action fcAlarmStop : FunctionalFlow {
|
|
58
|
-
@MemoIdentity { :>> providedId = "FC-002"; }
|
|
59
|
-
attribute :>> name = "AlarmDetectionToSafeStateChain";
|
|
60
|
+
@MemoIdentity { :>> providedId = "FC-002"; :>> label = "AlarmDetectionToSafeStateChain"; }
|
|
60
61
|
attribute :>> flowCategory = FunctionalFlowKind::alarm;
|
|
61
62
|
attribute :>> endToEndLatencyBudgetMs = "20";
|
|
62
63
|
attribute :>> safetyRelevant = true;
|
|
63
64
|
attribute :>> securityRelevant = false;
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
65
|
+
doc /* Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation. */
|
|
66
|
+
action fcsAlarmSense :> fnAcquireSensors {
|
|
67
|
+
@MemoIdentity { :>> providedId = "FCS-006"; :>> label = "SenseAlarmCondition"; }
|
|
68
|
+
out item sensorVector :> ddSensorVector;
|
|
69
|
+
}
|
|
70
|
+
action fcsAlarmEvaluate :> fnMonitorAlarm {
|
|
71
|
+
@MemoIdentity { :>> providedId = "FCS-007"; :>> label = "EvaluateAlarmCondition"; }
|
|
72
|
+
in item sensorVector :> ddSensorVector;
|
|
73
|
+
}
|
|
74
|
+
action fcsAlarmStopInfusion :> fnManageInfusion {
|
|
75
|
+
@MemoIdentity { :>> providedId = "FCS-008"; :>> label = "LimitFlowToKvoSameStep"; }
|
|
76
|
+
// A step's parameters redefine its function's by position, so the
|
|
77
|
+
// KVO-limited flow command it emits comes first (fnManageInfusion's
|
|
78
|
+
// `flowCommandOut`); the alarm signal is the input this position adds.
|
|
79
|
+
out item flowCommand :> cdFlowCommand;
|
|
80
|
+
in item alarmSignal :> cdAlarmSignal;
|
|
81
|
+
}
|
|
82
|
+
action fcsAlarmAnnunciate :> fnAnnunciate {
|
|
83
|
+
@MemoIdentity { :>> providedId = "FCS-009"; :>> label = "AnnunciateAudibleVisual"; }
|
|
84
|
+
in item alarmSignal :> cdAlarmSignal;
|
|
85
|
+
}
|
|
86
|
+
first fcsAlarmSense then fcsAlarmEvaluate;
|
|
87
|
+
first fcsAlarmEvaluate then fcsAlarmStopInfusion;
|
|
88
|
+
first fcsAlarmStopInfusion then fcsAlarmAnnunciate;
|
|
89
|
+
flow from fcsAlarmSense.sensorVector to fcsAlarmEvaluate.sensorVector;
|
|
90
|
+
// The alarm signal leaves evaluation through fnMonitorAlarm's own
|
|
91
|
+
// `alarmSignalOut`, which the step inherits by subsetting it.
|
|
92
|
+
flow from fcsAlarmEvaluate.alarmSignalOut to fcsAlarmStopInfusion.alarmSignal;
|
|
93
|
+
flow from fcsAlarmEvaluate.alarmSignalOut to fcsAlarmAnnunciate.alarmSignal;
|
|
85
94
|
}
|
|
86
|
-
first fcsAlarmSense then fcsAlarmEvaluate;
|
|
87
|
-
first fcsAlarmEvaluate then fcsAlarmStopInfusion;
|
|
88
|
-
first fcsAlarmStopInfusion then fcsAlarmAnnunciate;
|
|
89
95
|
|
|
90
96
|
action fcStartup : FunctionalFlow {
|
|
91
|
-
@MemoIdentity { :>> providedId = "FC-003"; }
|
|
92
|
-
attribute :>> name = "PowerOnSelfTestChain";
|
|
97
|
+
@MemoIdentity { :>> providedId = "FC-003"; :>> label = "PowerOnSelfTestChain"; }
|
|
93
98
|
attribute :>> flowCategory = FunctionalFlowKind::startup;
|
|
94
99
|
attribute :>> endToEndLatencyBudgetMs = "5000";
|
|
95
100
|
attribute :>> safetyRelevant = true;
|
|
96
101
|
attribute :>> securityRelevant = false;
|
|
97
|
-
|
|
102
|
+
doc /* Power-on through CPU/memory/sensor self test to IDLE with status display; failed POST blocks therapy. */
|
|
98
103
|
perform fnSelfTest;
|
|
99
104
|
perform fnPresentStatus;
|
|
100
105
|
}
|
|
101
106
|
|
|
102
107
|
// ── System scenarios ────────────────────────────────────────
|
|
103
108
|
action ssBolusDuringBasal : OperativeScenario {
|
|
104
|
-
@MemoIdentity { :>> providedId = "SS-001"; }
|
|
105
|
-
attribute :>> name = "PatientBolusDuringBasal";
|
|
109
|
+
@MemoIdentity { :>> providedId = "SS-001"; :>> label = "PatientBolusDuringBasal"; }
|
|
106
110
|
attribute :>> preCondition = "BASAL mode active; no REQ 25 ignore condition holds";
|
|
107
111
|
attribute :>> postCondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
|
|
108
112
|
}
|
|
109
113
|
action ssAlarmPause : OperativeScenario {
|
|
110
114
|
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
111
|
-
@MemoIdentity { :>> providedId = "SS-002"; }
|
|
112
|
-
attribute :>> name = "InhibitingNotificationPausesInfusion";
|
|
115
|
+
@MemoIdentity { :>> providedId = "SS-002"; :>> label = "InhibitingNotificationPausesInfusion"; }
|
|
113
116
|
attribute :>> preCondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
|
|
114
117
|
attribute :>> postCondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
|
|
115
118
|
}
|