@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.
- package/README.md +1 -1
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +9 -7
- package/examples/connected-patient-monitor/model/catalog/project.sysml +3 -1
- package/examples/connected-patient-monitor/model/catalog/viewpoints/unassigned/views/connected_patient_monitor_overview.sysml +1 -1
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -0
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +11 -9
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/viewpoints/unassigned/views/embedded_infusion_pump_overview.sysml +1 -1
- package/examples/functional-logical-physical/memo.package.yaml +3 -0
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +9 -7
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.identity.yaml +2179 -0
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +3 -1
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +29 -27
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +115 -114
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +42 -41
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +26 -25
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +27 -23
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +15 -15
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +42 -40
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +198 -197
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +146 -180
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +290 -288
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +164 -163
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +44 -43
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +21 -33
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -11
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +62 -61
- package/examples/gpca-pump/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +7 -8
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +7 -7
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +8 -9
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +6 -7
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +6 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +10 -8
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/viewpoints/unassigned/views/ivd_laboratory_system_overview.sysml +1 -1
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -0
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +7 -5
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/viewpoints/unassigned/views/manual_surgical_instrument_overview.sysml +1 -1
- package/examples/multidimensional-layers/memo.package.yaml +3 -0
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- package/examples/multidimensional-layers/model/catalog/viewpoints/unassigned/views/multidimensional_layers_overview.sysml +0 -1
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -0
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +20 -18
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +6 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +9 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +23 -31
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +18 -16
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +0 -1
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +11 -9
- package/examples/software-only-medical-device/model/catalog/viewpoints/unassigned/views/software_only_medical_device_overview.sysml +0 -1
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -0
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -69
- package/examples/surgical-closure-workflow/model/catalog/viewpoints/unassigned/views/surgical_closure_workflow_overview.sysml +0 -1
- package/examples/surgical-robot/memo.package.yaml +3 -0
- package/examples/surgical-robot/model/catalog/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- package/examples/surgical-robot/model/catalog/viewpoints/unassigned/views/surgical_robot_overview.sysml +0 -1
- package/examples/sysml-diagram-samples/memo.package.yaml +2 -0
- package/examples/sysml-diagram-samples/model/catalog/project.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +12 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +17 -16
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +9 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +3 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +4 -3
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -9
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +30 -29
- package/examples/temperature-alarm/model/catalog/viewpoints/unassigned/views/temperature_alarm_overview.sysml +0 -1
- package/examples/ui-screen-regions/memo.package.yaml +3 -0
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +35 -33
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +8 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +14 -13
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +4 -2
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +12 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +14 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +17 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +10 -9
- package/examples/ui-screen-regions/model/catalog/project.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +2 -2
- package/examples/ui-screen-regions/model/catalog/traces.sysml +0 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +6 -5
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +4 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +4 -3
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +23 -21
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +3 -1
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +3 -1
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +3 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/container/src/container_extension.sysml +2 -2
- package/extensions/container/src/methodology/container_methodology.sysml +3 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +3 -1
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/methodology/ros_methodology.sysml +3 -1
- package/extensions/template/src/extension.sysml +3 -1
- 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 +2 -2
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/functional/behavior/memo_behavior.sysml +5 -5
- package/src/architecture/functional/functions/memo_functions.sysml +6 -6
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +12 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +0 -11
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +7 -7
- package/src/architecture/implementation/ui/memo_ui.sysml +8 -31
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +4 -2
- package/src/architecture/logical/structure/memo_logical_structure.sysml +5 -5
- package/src/architecture/operational/activities/memo_activities.sysml +19 -28
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -4
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +7 -7
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +5 -14
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +12 -104
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -12
- package/src/architecture/operational/workflows/memo_workflows.sysml +20 -42
- package/src/architecture/realization/deployment/memo_deployment.sysml +26 -19
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +8 -2
- package/src/artifacts/standards/cfr_21_820.sysml +80 -89
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +45 -49
- package/src/artifacts/standards/iec_60601_1.sysml +108 -121
- package/src/artifacts/standards/iec_60601_1_2.sysml +31 -33
- package/src/artifacts/standards/iec_60812.sysml +21 -22
- package/src/artifacts/standards/iec_62304.sysml +150 -169
- package/src/artifacts/standards/iec_62366_1.sysml +80 -89
- package/src/artifacts/standards/iec_81001_5_1.sysml +52 -57
- package/src/artifacts/standards/iso_13485.sysml +80 -89
- package/src/artifacts/standards/iso_14971.sysml +66 -73
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +15 -15
- package/src/artifacts/templates/dhf/system/sad.md +3 -3
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +2 -2
- package/src/assurance/human_factors/memo_human_factors.sysml +2 -2
- package/src/assurance/requirements/memo_requirements.sysml +2 -18
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +1 -1
- package/src/assurance/safety_risk/memo_risk.sysml +12 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
- package/src/core/common/memo_common.sysml +59 -55
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +29 -56
- package/src/methodology/archetypes/memo_archetypes.sysml +10 -8
- package/src/methodology/core/memo_core.sysml +0 -10
- package/src/methodology/profiles/memo_profiles.sysml +18 -16
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +22 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +4 -2
- package/src/rules/ontology/ontology_invariants.sysml +121 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +58 -57
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +5 -4
- package/src/viewpoints/context/context_viewpoint.sysml +6 -5
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +6 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +6 -6
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +36 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +6 -5
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +6 -5
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +6 -5
- package/src/viewpoints/logical/logical_viewpoint.sysml +5 -4
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +6 -5
- package/src/viewpoints/operational/operational_viewpoint.sysml +6 -5
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +7 -6
- package/src/viewpoints/physical/physical_viewpoint.sysml +5 -4
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +6 -5
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +6 -5
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +5 -4
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +6 -5
- package/src/viewpoints/risk/risk_viewpoint.sysml +5 -4
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +6 -5
- package/src/viewpoints/software/software_viewpoint.sysml +5 -4
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +6 -5
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +5 -4
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/verification_viewpoint.sysml +5 -4
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +6 -5
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/memo.package.yaml +2 -0
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/memo.package.yaml +2 -0
- package/templates/samd/model/catalog/project.sysml +3 -1
|
@@ -9,6 +9,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
9
9
|
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
10
10
|
private import memo_core_enumerations::*;
|
|
11
11
|
|
|
12
|
+
private import memo_core_common::*;
|
|
13
|
+
private import memo_core_common::MemoIdentity;
|
|
12
14
|
// Operational activity across clinical roles. The fixture is intentionally
|
|
13
15
|
// product-neutral and belongs only to the diagram-samples project.
|
|
14
16
|
item def OpPrescription specializes InterfaceItem {
|
|
@@ -18,10 +20,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
18
20
|
attribute :>> itemKind = InterfaceItemKind::signal;
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
action def OpPrescribeTherapy specializes
|
|
22
|
-
action def OpVerifyPrescription specializes
|
|
23
|
-
action def OpRequestBolus specializes
|
|
24
|
-
action def OpCheckLockout specializes
|
|
23
|
+
action def OpPrescribeTherapy specializes OperativeAction { out item prescription : OpPrescription; }
|
|
24
|
+
action def OpVerifyPrescription specializes OperativeAction { in item prescription : OpPrescription; }
|
|
25
|
+
action def OpRequestBolus specializes OperativeAction { out item bolusRequest : OpBolusRequest; }
|
|
26
|
+
action def OpCheckLockout specializes OperativeAction { in item bolusRequest : OpBolusRequest; }
|
|
25
27
|
|
|
26
28
|
// Use the canonical MEMO operational system type—never a sample-local
|
|
27
29
|
// placeholder—so ontology-driven Explorer grouping remains authoritative.
|
|
@@ -45,22 +47,22 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
45
47
|
}
|
|
46
48
|
}
|
|
47
49
|
|
|
48
|
-
action opSetupFlow :
|
|
50
|
+
action opSetupFlow : OperativeAction {
|
|
49
51
|
action opPrescribe : OpPrescribeTherapy { attribute :>> name = "Prescribe Therapy"; }
|
|
50
52
|
action opVerify : OpVerifyPrescription { attribute :>> name = "Verify Prescription"; }
|
|
51
53
|
fork opForkPrep;
|
|
52
|
-
action opPrime :
|
|
53
|
-
action opSelfTest :
|
|
54
|
+
action opPrime : OperativeAction { attribute :>> name = "Prime Pump & Load Reservoir"; }
|
|
55
|
+
action opSelfTest : OperativeAction { attribute :>> name = "Run Device Self-Test"; }
|
|
54
56
|
join opJoinPrep;
|
|
55
|
-
action opProgram :
|
|
56
|
-
action opConnect :
|
|
57
|
-
action opStart :
|
|
58
|
-
action opAdminister :
|
|
57
|
+
action opProgram : OperativeAction { attribute :>> name = "Program Pump Parameters"; }
|
|
58
|
+
action opConnect : OperativeAction { attribute :>> name = "Connect to Patient"; }
|
|
59
|
+
action opStart : OperativeAction { attribute :>> name = "Start Infusion"; }
|
|
60
|
+
action opAdminister : OperativeAction {
|
|
59
61
|
attribute :>> name = "Administer PCA Therapy";
|
|
60
62
|
action opRequestBolus : OpRequestBolus { attribute :>> name = "Request Bolus"; }
|
|
61
63
|
action opCheckLockout : OpCheckLockout { attribute :>> name = "Check Lockout"; }
|
|
62
|
-
action opDeliverDose :
|
|
63
|
-
action opLogEvent :
|
|
64
|
+
action opDeliverDose : OperativeAction { attribute :>> name = "Deliver Dose"; }
|
|
65
|
+
action opLogEvent : OperativeAction { attribute :>> name = "Log Dose Event"; }
|
|
64
66
|
flow of OpBolusRequest from opRequestBolus.bolusRequest to opCheckLockout.bolusRequest;
|
|
65
67
|
first start then opRequestBolus;
|
|
66
68
|
first opRequestBolus then opCheckLockout;
|
|
@@ -100,10 +102,9 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_operatio
|
|
|
100
102
|
expose opSetupFlow::**;
|
|
101
103
|
expose opCareSystem::**;
|
|
102
104
|
attribute depth = 2;
|
|
103
|
-
|
|
104
|
-
attribute :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step.";
|
|
105
|
+
@MemoIdentity { :>> shortDescription = "Operational activity across clinical roles with concurrent preparation and a composite therapy step."; }
|
|
105
106
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
106
107
|
attribute :>> diagramType = "ofd";
|
|
107
|
-
|
|
108
|
+
ref :>> viewpointDefinition = operationalViewpoint;
|
|
108
109
|
}
|
|
109
110
|
}
|
|
@@ -11,30 +11,32 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
11
11
|
private import memo_viewpoints_requirements_requirements_viewpoint::*;
|
|
12
12
|
private import memo_core_enumerations::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::*;
|
|
15
|
+
private import memo_core_common::MemoIdentity;
|
|
14
16
|
requirement needSafeTherapy : Need {
|
|
15
17
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
16
|
-
|
|
18
|
+
@MemoIdentity { :>> providedId = "NEED-001"; } attribute :>> name = "SafeTherapy";
|
|
17
19
|
attribute :>> statement = "The device shall support safe patient-controlled infusion therapy.";
|
|
18
20
|
}
|
|
19
21
|
requirement needTimelyAlarms : Need {
|
|
20
22
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
21
|
-
|
|
23
|
+
@MemoIdentity { :>> providedId = "NEED-002"; } attribute :>> name = "TimelyAlarms";
|
|
22
24
|
attribute :>> statement = "Clinicians shall be notified promptly of any condition that endangers therapy.";
|
|
23
25
|
}
|
|
24
26
|
|
|
25
27
|
requirement reqDoseLimit : Requirement {
|
|
26
28
|
attribute :>> requirementKind = RequirementKind::system;
|
|
27
|
-
|
|
29
|
+
@MemoIdentity { :>> providedId = "REQ-001"; } attribute :>> name = "DoseLimitEnforcement";
|
|
28
30
|
attribute :>> statement = "The pump shall not deliver more than the prescribed maximum dose in any one-hour window.";
|
|
29
31
|
}
|
|
30
32
|
requirement reqOcclusionAlarm : Requirement {
|
|
31
33
|
attribute :>> requirementKind = RequirementKind::system;
|
|
32
|
-
|
|
34
|
+
@MemoIdentity { :>> providedId = "REQ-002"; } attribute :>> name = "OcclusionAlarm";
|
|
33
35
|
attribute :>> statement = "The pump shall raise an alarm within two seconds of detecting a downstream occlusion.";
|
|
34
36
|
}
|
|
35
37
|
requirement reqAlarmLoudness : Requirement {
|
|
36
38
|
attribute :>> requirementKind = RequirementKind::system;
|
|
37
|
-
|
|
39
|
+
@MemoIdentity { :>> providedId = "REQ-003"; } attribute :>> name = "AlarmLoudness";
|
|
38
40
|
attribute :>> statement = "An active alarm shall be audible at 65 dBA at one metre.";
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -50,11 +52,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_requirem
|
|
|
50
52
|
expose reqOcclusionAlarm;
|
|
51
53
|
expose reqAlarmLoudness;
|
|
52
54
|
attribute depth = 1;
|
|
53
|
-
|
|
54
|
-
attribute :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges.";
|
|
55
|
+
@MemoIdentity { :>> shortDescription = "Stakeholder needs deriving into system requirements, wired by DerivesFrom trace edges."; }
|
|
55
56
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
56
57
|
attribute :>> diagramType = "req";
|
|
57
|
-
|
|
58
|
+
ref :>> viewpointDefinition = requirementsViewpoint;
|
|
58
59
|
part :>> selectionQuery {
|
|
59
60
|
attribute :>> includeRelationshipKinds = ("DerivesFrom");
|
|
60
61
|
}
|
|
@@ -21,13 +21,14 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_standard
|
|
|
21
21
|
|
|
22
22
|
private import activity_example::*;
|
|
23
23
|
|
|
24
|
+
private import memo_core_common::*;
|
|
25
|
+
private import memo_core_common::MemoIdentity;
|
|
24
26
|
view standardActivityView : MemoDiagramView {
|
|
25
27
|
expose CustomerProcess::**;
|
|
26
28
|
attribute depth = 2;
|
|
27
|
-
|
|
28
|
-
attribute :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes.";
|
|
29
|
+
@MemoIdentity { :>> shortDescription = "Customer login, guarded validation, shopping loop, checkout, credit approval, and explicit completion outcomes."; }
|
|
29
30
|
attribute :>> viewKind = DiagramViewKind::actionflow;
|
|
30
31
|
attribute :>> diagramType = "afd";
|
|
31
|
-
|
|
32
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -11,6 +11,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
|
|
|
11
11
|
private import memo_core_enumerations::*;
|
|
12
12
|
private import memo_core_common::*;
|
|
13
13
|
|
|
14
|
+
private import memo_core_common::MemoIdentity;
|
|
14
15
|
state pumpModes : StateMachine {
|
|
15
16
|
attribute :>> name = "Pump Operating Modes";
|
|
16
17
|
|
|
@@ -64,11 +65,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_state_tr
|
|
|
64
65
|
view sampleStateTransitionView : MemoDiagramView {
|
|
65
66
|
expose pumpModes::**;
|
|
66
67
|
attribute depth = 2;
|
|
67
|
-
|
|
68
|
-
attribute :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding.";
|
|
68
|
+
@MemoIdentity { :>> shortDescription = "A pump-mode state machine — Idle, Infusing, Paused, Alarm — where Infusing is a composite state nesting Priming, Delivering and Holding."; }
|
|
69
69
|
attribute :>> viewKind = DiagramViewKind::statetransition;
|
|
70
70
|
attribute :>> diagramType = "stm";
|
|
71
|
-
|
|
71
|
+
ref :>> viewpointDefinition = functionalViewpoint;
|
|
72
72
|
part :>> selectionQuery {
|
|
73
73
|
attribute :>> includeElementKinds = ("StateMachine", "MemoState");
|
|
74
74
|
}
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml
CHANGED
|
@@ -8,6 +8,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
|
|
|
8
8
|
private import memo_viewpoints_physical_physical_viewpoint::*;
|
|
9
9
|
private import memo_core_enumerations::*;
|
|
10
10
|
|
|
11
|
+
private import memo_core_common::*;
|
|
12
|
+
private import memo_core_common::MemoIdentity;
|
|
11
13
|
part rootA : HardwareAssembly {
|
|
12
14
|
attribute :>> name = "Root A";
|
|
13
15
|
part branchA1 : HardwareAssembly {
|
|
@@ -34,11 +36,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_tree_vie
|
|
|
34
36
|
view sampleTreeView : MemoDiagramView {
|
|
35
37
|
expose rootA::**;
|
|
36
38
|
attribute depth = 2;
|
|
37
|
-
|
|
38
|
-
attribute :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development.";
|
|
39
|
+
@MemoIdentity { :>> shortDescription = "One connected dummy hierarchy with varied branch depths for tree layout development."; }
|
|
39
40
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
40
41
|
attribute :>> diagramType = "bdd";
|
|
41
|
-
|
|
42
|
+
ref :>> viewpointDefinition = physicalViewpoint;
|
|
42
43
|
attribute :>> layoutHint = "tree";
|
|
43
44
|
attribute :>> styleHint = "expanded:rootA,rootB,branchA1,branchB1";
|
|
44
45
|
part :>> selectionQuery {
|
package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml
CHANGED
|
@@ -7,6 +7,8 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
7
7
|
private import memo_viewpoints_operational_operational_viewpoint::*;
|
|
8
8
|
private import memo_core_enumerations::*;
|
|
9
9
|
|
|
10
|
+
private import memo_core_common::*;
|
|
11
|
+
private import memo_core_common::MemoIdentity;
|
|
10
12
|
// Product-neutral fixture for the UML-style use-case presentation.
|
|
11
13
|
part patient : User {
|
|
12
14
|
attribute :>> actorKind = ActorKind::patient;
|
|
@@ -22,7 +24,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
use case reviewStatus : UseCase {
|
|
25
|
-
|
|
27
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-001"; }
|
|
26
28
|
attribute :>> name = "Review Device Status";
|
|
27
29
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
28
30
|
include validateTherapySettings;
|
|
@@ -30,7 +32,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
30
32
|
actor patientActor = patient;
|
|
31
33
|
}
|
|
32
34
|
use case configureTherapy : UseCase {
|
|
33
|
-
|
|
35
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-002"; }
|
|
34
36
|
attribute :>> name = "Configure Therapy";
|
|
35
37
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
36
38
|
include reviewStatus;
|
|
@@ -39,7 +41,7 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
39
41
|
actor patientActor = patient;
|
|
40
42
|
}
|
|
41
43
|
use case maintainDevice : UseCase {
|
|
42
|
-
|
|
44
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-003"; }
|
|
43
45
|
attribute :>> name = "Maintain Device";
|
|
44
46
|
attribute :>> useCaseKind = UseCaseKind::service;
|
|
45
47
|
subject supportingSystem;
|
|
@@ -47,21 +49,23 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
use case documentTreatment : UseCase {
|
|
50
|
-
|
|
52
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-004"; }
|
|
51
53
|
attribute :>> name = "Document Treatment";
|
|
52
54
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
57
|
// L2 child of Review Device Status: makes L0 → L1 → L2 selectable.
|
|
56
58
|
use case validateTherapySettings : UseCase {
|
|
57
|
-
|
|
59
|
+
@MemoIdentity { :>> providedId = "UC-SAMPLE-005"; }
|
|
58
60
|
attribute :>> name = "Validate Therapy Settings";
|
|
59
61
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
60
62
|
subject supportingSystem;
|
|
61
63
|
actor clinicianActor = clinician;
|
|
62
64
|
}
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
// Was an `Extends` connection; a use case extending another is
|
|
67
|
+
// specialization, and `:>` inherits the base's subject and actors.
|
|
68
|
+
dependency from documentTreatment to reviewStatus;
|
|
65
69
|
|
|
66
70
|
view sampleUseCaseView : MemoDiagramView {
|
|
67
71
|
expose patient;
|
|
@@ -72,11 +76,10 @@ package memo_examples_sysml_diagram_samples_viewpoints_unassigned_views_use_case
|
|
|
72
76
|
expose maintainDevice;
|
|
73
77
|
expose documentTreatment;
|
|
74
78
|
expose validateTherapySettings;
|
|
75
|
-
|
|
76
|
-
attribute :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation.";
|
|
79
|
+
@MemoIdentity { :>> shortDescription = "Actors outside a device boundary with include, extend, hierarchy-level, and orthogonal-routing presentation."; }
|
|
77
80
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
78
81
|
attribute :>> diagramType = "ucd";
|
|
79
|
-
|
|
82
|
+
ref :>> viewpointDefinition = operationalViewpoint;
|
|
80
83
|
part :>> selectionQuery {
|
|
81
84
|
attribute :>> includeElementKinds = ("User", "UseCase");
|
|
82
85
|
attribute :>> includeRelationshipKinds = ("ParticipatesIn", "IncludesStep", "Extends");
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# memo.identity.yaml — element identity registry (auto-generated)
|
|
2
|
+
# Assigned once and never reassigned. COMMIT THIS FILE: deleting it does
|
|
3
|
+
# not regenerate the same identities, it mints new ones, and every
|
|
4
|
+
# external reference to a shortId or uuid then points at nothing.
|
|
5
|
+
# Entries for deleted elements are retained so their numbers stay retired.
|
|
6
|
+
|
|
7
|
+
elements:
|
|
8
|
+
"memo_examples_temperature_alarm::actAcknowledgeAlarm":
|
|
9
|
+
shortId: "OPR-1"
|
|
10
|
+
uuid: "ea2b4f6a-a25b-5c93-84a2-2c149dc5b870"
|
|
11
|
+
"memo_examples_temperature_alarm::chMonitor":
|
|
12
|
+
shortId: "LGC-1"
|
|
13
|
+
uuid: "0f804fdc-4ead-5205-a108-91ce7e4b4d04"
|
|
14
|
+
"memo_examples_temperature_alarm::chPrimary":
|
|
15
|
+
shortId: "LGC-2"
|
|
16
|
+
uuid: "be43f8c3-dbdc-505e-8c8e-b62571f179fb"
|
|
17
|
+
"memo_examples_temperature_alarm::elAlarmBanner":
|
|
18
|
+
shortId: "UIE-1"
|
|
19
|
+
uuid: "cb4a788e-08c4-5ac7-b68e-25fcbac3af7e"
|
|
20
|
+
"memo_examples_temperature_alarm::evLatencyReport":
|
|
21
|
+
shortId: "MMX-1"
|
|
22
|
+
uuid: "6ed38946-dcb2-5c1b-b97d-58db3d0c884c"
|
|
23
|
+
"memo_examples_temperature_alarm::fnDetectDeviation":
|
|
24
|
+
shortId: "SYS-1"
|
|
25
|
+
uuid: "b22e14c8-57b0-5ed9-8167-5a1a35e2e7e3"
|
|
26
|
+
"memo_examples_temperature_alarm::hzUndetectedDeviation":
|
|
27
|
+
shortId: "HZD-1"
|
|
28
|
+
uuid: "f7884ad4-503c-5eb1-a779-f02d4602817a"
|
|
29
|
+
"memo_examples_temperature_alarm::icuNurse":
|
|
30
|
+
shortId: "USR-1"
|
|
31
|
+
uuid: "f7b9403f-66c9-55f4-b6f5-a0f78c055260"
|
|
32
|
+
"memo_examples_temperature_alarm::rcReAnnunciate":
|
|
33
|
+
shortId: "RSK-1"
|
|
34
|
+
uuid: "6f1dbdd1-5eef-54e0-81d4-78a4001af7b3"
|
|
35
|
+
"memo_examples_temperature_alarm::taskAckAlarm":
|
|
36
|
+
shortId: "OPR-2"
|
|
37
|
+
uuid: "2a25bec5-50f6-5bef-ad59-750b277515db"
|
|
38
|
+
"memo_examples_temperature_alarm::ucMonitorTemp":
|
|
39
|
+
shortId: "USE-1"
|
|
40
|
+
uuid: "3e0d59fc-eda9-581e-a7d8-aafb2f466ea5"
|
|
41
|
+
"memo_examples_temperature_alarm::ueSilenceAndForget":
|
|
42
|
+
shortId: "USE-2"
|
|
43
|
+
uuid: "74eae9e0-1297-5ba9-b38c-b3500ce7745c"
|
|
44
|
+
"memo_examples_temperature_alarm::uiBedside":
|
|
45
|
+
shortId: "USR-2"
|
|
46
|
+
uuid: "664f0cf3-a7f3-536b-a078-470be588e6f3"
|
|
47
|
+
"memo_examples_temperature_alarm::uiaAcknowledge":
|
|
48
|
+
shortId: "UXX-1"
|
|
49
|
+
uuid: "bbcaba4d-4cb7-554c-8797-6e27f6dacfcb"
|
|
50
|
+
"memo_examples_temperature_alarm::uvAckTask":
|
|
51
|
+
shortId: "MMX-3"
|
|
52
|
+
uuid: "d268c19e-41da-5657-ac04-2f9bcdc29713"
|
|
53
|
+
"memo_examples_temperature_alarm::vcAlarmLatency":
|
|
54
|
+
shortId: "VRF-1"
|
|
55
|
+
uuid: "e4853bd5-0672-5040-af70-0c7f9177ee7a"
|
|
56
|
+
"memo_examples_temperature_alarm::vsAlarmLatency":
|
|
57
|
+
shortId: "OPR-3"
|
|
58
|
+
uuid: "a66d2a6f-8b2e-5302-a2e2-14a32f08e85e"
|
|
59
|
+
"memo_examples_temperature_alarm_project::projectBinding":
|
|
60
|
+
shortId: "PRJ-1"
|
|
61
|
+
uuid: "27e78a8e-0e34-5569-8d7d-06c416fbbbd6"
|
|
62
|
+
"memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_alarm_overview::temperatureAlarmOverview":
|
|
63
|
+
shortId: "MMX-2"
|
|
64
|
+
uuid: "e9653f71-dc0b-55aa-951c-469b402afad3"
|
|
@@ -14,8 +14,10 @@ package memo_examples_temperature_alarm_project {
|
|
|
14
14
|
private import memo_examples_temperature_alarm_viewpoints_unassigned::*;
|
|
15
15
|
private import memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_alarm_overview::*;
|
|
16
16
|
|
|
17
|
+
private import memo_core_common::*;
|
|
18
|
+
private import memo_core_common::MemoIdentity;
|
|
17
19
|
part projectBinding : ProjectMethodBinding {
|
|
18
|
-
|
|
20
|
+
@MemoIdentity { :>> providedId = "PMB-TEMPERATURE-ALARM-001"; }
|
|
19
21
|
attribute :>> name = "TemperatureAlarmProjectMethodBinding";
|
|
20
22
|
attribute :>> projectName = "Temperature Alarm";
|
|
21
23
|
ref :>> selectedMethodology = mdDefaultDefinition;
|
|
@@ -25,26 +25,27 @@ package memo_examples_temperature_alarm {
|
|
|
25
25
|
private import memo_core_relationships::*;
|
|
26
26
|
private import memo_assurance_safety_risk_analysis::*;
|
|
27
27
|
|
|
28
|
+
private import memo_core_common::MemoIdentity;
|
|
28
29
|
// ── Operational intent ──────────────────────────────────────
|
|
29
30
|
part icuNurse : User {
|
|
30
31
|
attribute :>> actorKind = ActorKind::clinician;
|
|
31
|
-
|
|
32
|
+
@MemoIdentity { :>> providedId = "TA-USR-001"; } attribute :>> name = "ICUNurse";
|
|
32
33
|
}
|
|
33
34
|
use case ucMonitorTemp : UseCase {
|
|
34
35
|
attribute :>> useCaseKind = UseCaseKind::clinical;
|
|
35
|
-
|
|
36
|
+
@MemoIdentity { :>> providedId = "TA-UC-001"; }
|
|
36
37
|
attribute :>> name = "MonitorPatientTemperature";
|
|
37
38
|
attribute :>> goalStatement = "Continuously monitor core temperature and be alerted when it leaves the safe range.";
|
|
38
39
|
subject supportingSystem;
|
|
39
40
|
actor icuNurseInitiator = icuNurse;
|
|
40
41
|
}
|
|
41
|
-
action actAcknowledgeAlarm :
|
|
42
|
-
|
|
42
|
+
action actAcknowledgeAlarm : OperativeAction {
|
|
43
|
+
@MemoIdentity { :>> providedId = "TA-ACT-001"; } attribute :>> name = "ReviewAndAcknowledgeAlarm";
|
|
43
44
|
attribute :>> criticality = CriticalityKind::high;
|
|
44
45
|
|
|
45
|
-
action taskAckAlarm :
|
|
46
|
+
action taskAckAlarm : OperativeAction {
|
|
46
47
|
attribute :>> criticality = CriticalityKind::high;
|
|
47
|
-
|
|
48
|
+
@MemoIdentity { :>> providedId = "TA-TASK-001"; } attribute :>> name = "AcknowledgeTemperatureAlarm";
|
|
48
49
|
attribute :>> taskGoal = "recognize, assess, and acknowledge the alarm";
|
|
49
50
|
attribute :>> potentialHarm = "delayed intervention for hypo-/hyperthermia";
|
|
50
51
|
attribute :>> severityIfFailed = SeverityKind::serious;
|
|
@@ -53,18 +54,18 @@ package memo_examples_temperature_alarm {
|
|
|
53
54
|
|
|
54
55
|
// ── Functional and logical slices ───────────────────────────
|
|
55
56
|
action fnDetectDeviation : SystemFunction {
|
|
56
|
-
|
|
57
|
+
@MemoIdentity { :>> providedId = "TA-FN-001"; } attribute :>> name = "DetectTemperatureDeviation";
|
|
57
58
|
attribute :>> criticality = CriticalityKind::high;
|
|
58
59
|
// This function is owned by the functional architecture layer (its
|
|
59
60
|
// package). Its safety and verification character are typed
|
|
60
61
|
// relationships to assurance-owned elements, not tags on the function.
|
|
61
62
|
}
|
|
62
63
|
part chMonitor : LogicalComponent {
|
|
63
|
-
|
|
64
|
+
@MemoIdentity { :>> providedId = "TA-LC-001"; } attribute :>> name = "TemperatureMonitorChannel";
|
|
64
65
|
attribute :>> channelRole = ChannelRoleKind::monitor;
|
|
65
66
|
}
|
|
66
67
|
part chPrimary : LogicalComponent {
|
|
67
|
-
|
|
68
|
+
@MemoIdentity { :>> providedId = "TA-LC-002"; } attribute :>> name = "MeasurementChannel";
|
|
68
69
|
attribute :>> channelRole = ChannelRoleKind::primary;
|
|
69
70
|
}
|
|
70
71
|
connection : IndependentOf connect channel ::> chMonitor to otherChannel ::> chPrimary {
|
|
@@ -73,38 +74,40 @@ package memo_examples_temperature_alarm {
|
|
|
73
74
|
allocate fnDetectDeviation to chMonitor;
|
|
74
75
|
// ── UI: alarm element and acknowledgement action ────────────
|
|
75
76
|
part uiBedside : UserInterface {
|
|
76
|
-
|
|
77
|
+
@MemoIdentity { :>> providedId = "TA-UI-001"; } attribute :>> name = "BedsideDisplay";
|
|
77
78
|
attribute :>> modality = "visual + audible";
|
|
78
79
|
}
|
|
79
80
|
part elAlarmBanner : UIElement {
|
|
80
|
-
|
|
81
|
+
@MemoIdentity { :>> providedId = "TA-EL-001"; } attribute :>> name = "TempAlarmBanner";
|
|
81
82
|
attribute :>> alarmPriority = NotificationPriorityKind::high;
|
|
82
83
|
attribute :>> annunciationModality = "flashing banner + tone";
|
|
83
84
|
attribute :>> silenceable = true;
|
|
84
85
|
}
|
|
85
86
|
action uiaAcknowledge : UIAction {
|
|
86
|
-
|
|
87
|
+
@MemoIdentity { :>> providedId = "TA-UIA-001"; } attribute :>> name = "AcknowledgeAlarm";
|
|
87
88
|
attribute :>> intent = InteractionIntentKind::acknowledgement;
|
|
88
89
|
attribute :>> confirmationRequired = true;
|
|
89
90
|
perform fnDetectDeviation;
|
|
90
91
|
}
|
|
91
92
|
connection : ElementTriggersAction connect element ::> elAlarmBanner to triggeredAction ::> uiaAcknowledge;
|
|
92
|
-
|
|
93
|
+
// Was `Supports`, a zero-attribute duplicate of both `Enables` and the
|
|
94
|
+
// native `dependency`.
|
|
95
|
+
dependency from uiBedside to actAcknowledgeAlarm::taskAckAlarm;
|
|
93
96
|
|
|
94
97
|
// ── Risk chain with use error ───────────────────────────────
|
|
95
98
|
part ueSilenceAndForget : UseError {
|
|
96
|
-
|
|
99
|
+
@MemoIdentity { :>> providedId = "TA-UE-001"; } attribute :>> name = "SilenceWithoutAssessment";
|
|
97
100
|
attribute :>> errorCategory = UseErrorCategoryKind::memoryRecall;
|
|
98
101
|
attribute :>> severity = SeverityKind::serious;
|
|
99
102
|
}
|
|
100
103
|
item hzUndetectedDeviation : Hazard {
|
|
101
|
-
|
|
104
|
+
@MemoIdentity { :>> providedId = "TA-HZ-001"; } attribute :>> name = "UndetectedTemperatureDeviation";
|
|
102
105
|
attribute :>> hazardType = HazardTypeKind::informationError;
|
|
103
106
|
attribute :>> severity = SeverityKind::serious;
|
|
104
107
|
attribute :>> foreseeable = true;
|
|
105
108
|
}
|
|
106
109
|
part rcReAnnunciate : RiskControlMeasure {
|
|
107
|
-
|
|
110
|
+
@MemoIdentity { :>> providedId = "TA-RC-001"; } attribute :>> name = "AutoReAnnunciationAfterSilence";
|
|
108
111
|
attribute :>> controlKind = RiskControlKind::alarm;
|
|
109
112
|
attribute :>> implementationKind = RiskControlImplementationKind::softwareDesign;
|
|
110
113
|
}
|
|
@@ -114,35 +117,33 @@ package memo_examples_temperature_alarm {
|
|
|
114
117
|
connection : ControlImplementedBy connect riskControl ::> rcReAnnunciate to implementingElement ::> elAlarmBanner;
|
|
115
118
|
|
|
116
119
|
// ── Verification, validation, evidence ──────────────────────
|
|
117
|
-
action vsAlarmLatency :
|
|
118
|
-
|
|
119
|
-
attribute :>> scenarioKind = ScenarioKind::memoVerification;
|
|
120
|
-
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
121
|
-
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
122
|
-
attribute :>> scenarioPurpose = ScenarioPurposeKind::memoVerification;
|
|
120
|
+
action vsAlarmLatency : OperativeScenario {
|
|
121
|
+
@MemoIdentity { :>> providedId = "TA-VS-001"; } attribute :>> name = "AlarmLatencyScenario";
|
|
123
122
|
attribute :>> pathSummary = "Induce out-of-range temperature; measure detection-to-annunciation latency.";
|
|
124
123
|
}
|
|
125
124
|
verification vcAlarmLatency : VerificationCase {
|
|
126
|
-
|
|
127
|
-
attribute :>> methodKind =
|
|
125
|
+
@MemoIdentity { :>> providedId = "TA-VC-001"; } attribute :>> name = "VerifyAlarmLatency";
|
|
126
|
+
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
128
127
|
attribute :>> acceptanceCriteria = "annunciation within 2 s of sustained deviation";
|
|
129
128
|
|
|
130
129
|
subject verified : Base::Anything[*] = (fnDetectDeviation);
|
|
130
|
+
|
|
131
|
+
// Native `perform`: OperativeScenario is an action def, so executing a
|
|
132
|
+
// scenario is the language's own perform-action, not a MEMO relation.
|
|
133
|
+
perform vsAlarmLatency;
|
|
131
134
|
}
|
|
132
135
|
part uvAckTask : MemoEvidence {
|
|
133
136
|
attribute :>> evidenceKind = EvidenceKind::usabilityValidation;
|
|
134
|
-
|
|
137
|
+
@MemoIdentity { :>> providedId = "TA-UV-001"; } attribute :>> name = "SummativeAlarmAcknowledgement";
|
|
135
138
|
attribute :>> participantProfile = "15 ICU nurses, representative shift conditions";
|
|
136
139
|
attribute :>> participantCount = 15;
|
|
137
140
|
attribute :>> acceptanceCriteria = "no critical-task failures; all alarms assessed before silencing";
|
|
138
141
|
}
|
|
139
142
|
part evLatencyReport : MemoEvidence {
|
|
140
143
|
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
141
|
-
|
|
144
|
+
@MemoIdentity { :>> providedId = "TA-EV-001"; } attribute :>> name = "AlarmLatencyTestReport";
|
|
142
145
|
attribute :>> evidenceType = "test report";
|
|
143
146
|
}
|
|
144
|
-
connection :
|
|
145
|
-
|
|
146
|
-
connection : Validates connect validationCase ::> uvAckTask to validationTarget ::> actAcknowledgeAlarm.taskAckAlarm;
|
|
147
|
+
connection : Validates connect validationTarget ::> actAcknowledgeAlarm.taskAckAlarm to validationCase ::> uvAckTask;
|
|
147
148
|
connection : ProducesEvidence connect producer ::> vcAlarmLatency to producedEvidence ::> evLatencyReport;
|
|
148
149
|
}
|
|
@@ -6,7 +6,6 @@ package memo_examples_temperature_alarm_viewpoints_unassigned_views_temperature_
|
|
|
6
6
|
view temperatureAlarmOverview : MemoDiagramView {
|
|
7
7
|
expose memo_examples_temperature_alarm::*;
|
|
8
8
|
attribute depth = 2;
|
|
9
|
-
attribute :>> title = "Temperature Alarm Overview";
|
|
10
9
|
attribute :>> viewKind = DiagramViewKind::general;
|
|
11
10
|
attribute :>> diagramType = "bdd";
|
|
12
11
|
}
|
|
@@ -16,43 +16,45 @@ package memo_examples_ui_screen_regions_architecture_functional_functions {
|
|
|
16
16
|
private import memo_core_enumerations::*;
|
|
17
17
|
private import memo_architecture_functional_functions::*;
|
|
18
18
|
|
|
19
|
+
private import memo_core_common::*;
|
|
20
|
+
private import memo_core_common::MemoIdentity;
|
|
19
21
|
action fnManageInfusionDisplay : SystemFunction {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
+
@MemoIdentity { :>> providedId = "UIR-FN-002"; } attribute :>> name = "ManageInfusionDisplay";
|
|
23
|
+
@MemoIdentity { :>> shortDescription = "Coordinate the running-infusion display and its interactive regions."; }
|
|
22
24
|
attribute :>> description = "Maintains the clinician-facing infusion state and delegates rate programming, drug selection, and status presentation to focused child functions.";
|
|
23
25
|
attribute :>> criticality = CriticalityKind::high;
|
|
24
26
|
|
|
25
27
|
action fnSetInfusionRate : SystemFunction {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
+
@MemoIdentity { :>> providedId = "UIR-FN-001"; } attribute :>> name = "SetInfusionRate";
|
|
29
|
+
@MemoIdentity { :>> shortDescription = "Apply a clinician-entered rate to the pump controller."; }
|
|
28
30
|
attribute :>> description = "Validates a requested infusion rate against the drug library limits and the pump's mechanical range, then commits it to the controller as the active setpoint.";
|
|
29
31
|
attribute :>> criticality = CriticalityKind::high;
|
|
30
32
|
}
|
|
31
33
|
|
|
32
34
|
action fnValidateDrugSelection : SystemFunction {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
+
@MemoIdentity { :>> providedId = "UIR-FN-003"; } attribute :>> name = "ValidateDrugSelection";
|
|
36
|
+
@MemoIdentity { :>> shortDescription = "Validate a selected drug and concentration against the active care-area library."; }
|
|
35
37
|
attribute :>> description = "Accepts only a drug and concentration present in the active drug library, then supplies its dosing limits to rate validation.";
|
|
36
38
|
attribute :>> criticality = CriticalityKind::high;
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
action fnPresentDeliveryStatus : SystemFunction {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
@MemoIdentity { :>> providedId = "UIR-FN-004"; } attribute :>> name = "PresentDeliveryStatus";
|
|
43
|
+
@MemoIdentity { :>> shortDescription = "Present current rate and cumulative delivered volume."; }
|
|
42
44
|
attribute :>> description = "Refreshes the rate and volume-delivered indicators from controller state at the specified display update interval.";
|
|
43
45
|
attribute :>> criticality = CriticalityKind::medium;
|
|
44
46
|
}
|
|
45
47
|
|
|
46
48
|
action fnPresentLocalTime : SystemFunction {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
+
@MemoIdentity { :>> providedId = "UIR-FN-005"; } attribute :>> name = "PresentLocalTime";
|
|
50
|
+
@MemoIdentity { :>> shortDescription = "Read the synchronized clock and present local time."; }
|
|
49
51
|
attribute :>> description = "Formats the device clock as local 24-hour time and refreshes the status-bar value once per second.";
|
|
50
52
|
attribute :>> criticality = CriticalityKind::medium;
|
|
51
53
|
}
|
|
52
54
|
|
|
53
55
|
action fnPresentBatteryStatus : SystemFunction {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
+
@MemoIdentity { :>> providedId = "UIR-FN-006"; } attribute :>> name = "PresentBatteryStatus";
|
|
57
|
+
@MemoIdentity { :>> shortDescription = "Present battery state of charge and low-battery status."; }
|
|
56
58
|
attribute :>> description = "Converts battery telemetry into percentage, icon state, and low-battery prominence for the running-infusion screen.";
|
|
57
59
|
attribute :>> criticality = CriticalityKind::medium;
|
|
58
60
|
}
|