@memoarchitect/ontology 0.8.24 → 0.11.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 +1 -1
- 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/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +9 -7
- package/examples/embedded-infusion-pump/model/catalog/project.sysml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +8 -6
- package/examples/functional-logical-physical/model/catalog/project.sysml +3 -1
- package/examples/gpca-pump/memo.identity.yaml +2185 -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 +29 -24
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +14 -13
- 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 +121 -125
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +8 -6
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +390 -388
- 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 +15 -14
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +10 -8
- 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 +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +6 -4
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -3
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +5 -3
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +9 -7
- package/examples/ivd-laboratory-system/model/catalog/project.sysml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +6 -4
- package/examples/manual-surgical-instrument/model/catalog/project.sysml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -4
- package/examples/multidimensional-layers/model/catalog/project.sysml +3 -1
- package/examples/nested-architecture-dsm/memo.identity.yaml +181 -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/architecture/operational/context.sysml +34 -0
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +11 -6
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +16 -14
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +18 -16
- package/examples/nested-architecture-dsm/model/catalog/project.sysml +4 -1
- package/examples/reusable-instrument/model/catalog/project.sysml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +17 -16
- 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/software-only-medical-device/model/catalog/project.sysml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +10 -8
- package/examples/surgical-closure-workflow/model/catalog/project.sysml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +54 -51
- package/examples/surgical-robot/model/catalog/project.sysml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +9 -7
- 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 +10 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +11 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +2 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +11 -7
- package/examples/temperature-alarm/memo.identity.yaml +64 -0
- package/examples/temperature-alarm/model/catalog/project.sysml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +27 -22
- package/examples/ui-screen-regions/memo.identity.yaml +205 -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 +26 -24
- 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 +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +5 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +3 -1
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +3 -1
- 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/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 +1 -1
- 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/ui/memo_ui.sysml +0 -23
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +3 -1
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +3 -11
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +1 -12
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +7 -11
- package/src/architecture/operational/workflows/memo_workflows.sysml +0 -20
- package/src/architecture/realization/deployment/memo_deployment.sysml +16 -9
- 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/iec-60601/hrs.md +6 -6
- package/src/artifacts/templates/dhf/iec-62304/srs.md +10 -10
- package/src/artifacts/templates/dhf/system/syrs.md +6 -6
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +0 -1
- package/src/assurance/human_factors/memo_human_factors.sysml +0 -1
- package/src/assurance/requirements/memo_requirements.sysml +20 -16
- package/src/assurance/requirements/needs/memo_needs.sysml +33 -5
- package/src/assurance/safety_risk/memo_risk.sysml +20 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +7 -12
- package/src/core/common/memo_common.sysml +50 -50
- package/src/core/enumerations/memo_enumerations.sysml +1 -1
- package/src/core/relationships/memo_relationships.sysml +22 -49
- 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/rules/closure/closure_rules.sysml +58 -22
- package/src/rules/crosslayer/cross_layer_rules.sysml +5 -3
- package/src/rules/ontology/ontology_invariants.sysml +119 -35
- package/src/rules/quantitative/quantitative_rules.sysml +4 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +29 -28
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +4 -2
- package/src/viewpoints/context/context_viewpoint.sysml +5 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +5 -3
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +4 -2
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +6 -16
- package/src/viewpoints/functional/functional_viewpoint.sysml +4 -2
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +5 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +5 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +4 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +5 -3
- package/src/viewpoints/operational/operational_viewpoint.sysml +4 -2
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +5 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +4 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +5 -3
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +5 -3
- package/src/viewpoints/rendering/memo_rendering.sysml +220 -40
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +4 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +5 -3
- package/src/viewpoints/risk/risk_viewpoint.sysml +4 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +5 -3
- package/src/viewpoints/software/software_viewpoint.sysml +4 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +5 -3
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +4 -2
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +3 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +4 -2
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +5 -3
- package/templates/connected-device/model/catalog/project.sysml +3 -1
- package/templates/default/model/catalog/project.sysml +3 -1
- package/templates/infusion-pump/model/catalog/project.sysml +3 -1
- package/templates/monitoring-device/model/catalog/project.sysml +3 -1
- package/templates/samd/model/catalog/project.sysml +3 -1
|
@@ -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
42
|
action actAcknowledgeAlarm : OperativeAction {
|
|
42
|
-
|
|
43
|
+
@MemoIdentity { :>> providedId = "TA-ACT-001"; } attribute :>> name = "ReviewAndAcknowledgeAlarm";
|
|
43
44
|
attribute :>> criticality = CriticalityKind::high;
|
|
44
45
|
|
|
45
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
|
}
|
|
@@ -115,30 +118,32 @@ package memo_examples_temperature_alarm {
|
|
|
115
118
|
|
|
116
119
|
// ── Verification, validation, evidence ──────────────────────
|
|
117
120
|
action vsAlarmLatency : OperativeScenario {
|
|
118
|
-
|
|
121
|
+
@MemoIdentity { :>> providedId = "TA-VS-001"; } attribute :>> name = "AlarmLatencyScenario";
|
|
119
122
|
attribute :>> pathSummary = "Induce out-of-range temperature; measure detection-to-annunciation latency.";
|
|
120
123
|
}
|
|
121
124
|
verification vcAlarmLatency : VerificationCase {
|
|
122
|
-
|
|
123
|
-
attribute :>> methodKind =
|
|
125
|
+
@MemoIdentity { :>> providedId = "TA-VC-001"; } attribute :>> name = "VerifyAlarmLatency";
|
|
126
|
+
attribute :>> methodKind = MemoVerificationMethodKind::test;
|
|
124
127
|
attribute :>> acceptanceCriteria = "annunciation within 2 s of sustained deviation";
|
|
125
128
|
|
|
126
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;
|
|
127
134
|
}
|
|
128
135
|
part uvAckTask : MemoEvidence {
|
|
129
136
|
attribute :>> evidenceKind = EvidenceKind::usabilityValidation;
|
|
130
|
-
|
|
137
|
+
@MemoIdentity { :>> providedId = "TA-UV-001"; } attribute :>> name = "SummativeAlarmAcknowledgement";
|
|
131
138
|
attribute :>> participantProfile = "15 ICU nurses, representative shift conditions";
|
|
132
139
|
attribute :>> participantCount = 15;
|
|
133
140
|
attribute :>> acceptanceCriteria = "no critical-task failures; all alarms assessed before silencing";
|
|
134
141
|
}
|
|
135
142
|
part evLatencyReport : MemoEvidence {
|
|
136
143
|
attribute :>> evidenceKind = EvidenceKind::evidence;
|
|
137
|
-
|
|
144
|
+
@MemoIdentity { :>> providedId = "TA-EV-001"; } attribute :>> name = "AlarmLatencyTestReport";
|
|
138
145
|
attribute :>> evidenceType = "test report";
|
|
139
146
|
}
|
|
140
|
-
connection :
|
|
141
|
-
|
|
142
|
-
connection : Validates connect validationCase ::> uvAckTask to validationTarget ::> actAcknowledgeAlarm.taskAckAlarm;
|
|
147
|
+
connection : Validates connect validationTarget ::> actAcknowledgeAlarm.taskAckAlarm to validationCase ::> uvAckTask;
|
|
143
148
|
connection : ProducesEvidence connect producer ::> vcAlarmLatency to producedEvidence ::> evLatencyReport;
|
|
144
149
|
}
|
|
@@ -0,0 +1,205 @@
|
|
|
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_ui_screen_regions_architecture_functional_functions::fnManageInfusionDisplay":
|
|
9
|
+
shortId: "SYS-1"
|
|
10
|
+
uuid: "9b45772b-7d7d-53e2-97b6-f10d92dc10e4"
|
|
11
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentBatteryStatus":
|
|
12
|
+
shortId: "SYS-2"
|
|
13
|
+
uuid: "96aa292d-dbbf-514d-be51-baa7c23b4a4b"
|
|
14
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentDeliveryStatus":
|
|
15
|
+
shortId: "SYS-3"
|
|
16
|
+
uuid: "0b73c191-7803-58ab-a4d1-4630b3528825"
|
|
17
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnPresentLocalTime":
|
|
18
|
+
shortId: "SYS-4"
|
|
19
|
+
uuid: "daa13f3a-026a-5208-bbda-c6d4ef7f4684"
|
|
20
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnSetInfusionRate":
|
|
21
|
+
shortId: "SYS-5"
|
|
22
|
+
uuid: "84ed7035-7c68-51e5-bf83-bb64d76f2df4"
|
|
23
|
+
"memo_examples_ui_screen_regions_architecture_functional_functions::fnValidateDrugSelection":
|
|
24
|
+
shortId: "SYS-6"
|
|
25
|
+
uuid: "710bc732-5946-52ab-a720-ad7284248936"
|
|
26
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugMenuExpanded":
|
|
27
|
+
shortId: "UIE-1"
|
|
28
|
+
uuid: "efcfbe2b-af48-51dc-81e2-e46c067bbf46"
|
|
29
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugSelectorClosed":
|
|
30
|
+
shortId: "UIE-2"
|
|
31
|
+
uuid: "7b27669f-d11c-5580-91cd-9353ef088458"
|
|
32
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elDrugSelectorRegion":
|
|
33
|
+
shortId: "UIE-3"
|
|
34
|
+
uuid: "d920531b-65e4-5b63-a450-fc5c3bd33646"
|
|
35
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elMainScreen":
|
|
36
|
+
shortId: "UIE-4"
|
|
37
|
+
uuid: "20084808-1df8-5082-a777-5630903a9d17"
|
|
38
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elRateConfirmDialog":
|
|
39
|
+
shortId: "UIE-5"
|
|
40
|
+
uuid: "5a7e1a4a-a1af-5294-817e-2dcf64f7717e"
|
|
41
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::elSettingsScreen":
|
|
42
|
+
shortId: "UIE-6"
|
|
43
|
+
uuid: "61a7a5d8-ab25-5fc7-b41f-340ab47b7b56"
|
|
44
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiElement12":
|
|
45
|
+
shortId: "UIE-7"
|
|
46
|
+
uuid: "1b7cc4c8-3e31-5ba8-b99b-5069491aeb0a"
|
|
47
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiPumpPanel":
|
|
48
|
+
shortId: "USR-1"
|
|
49
|
+
uuid: "a776efd4-f0b1-5ffc-9cb7-9563989852f4"
|
|
50
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiaEditRate":
|
|
51
|
+
shortId: "UXX-1"
|
|
52
|
+
uuid: "85e9cd00-5868-5cab-93df-55bb5881ab6b"
|
|
53
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiaOpenSettings":
|
|
54
|
+
shortId: "UXX-2"
|
|
55
|
+
uuid: "1b15dd7d-9a53-5c2b-bb57-1635da44b618"
|
|
56
|
+
"memo_examples_ui_screen_regions_architecture_implementation_ui::uiaSelectDrug":
|
|
57
|
+
shortId: "UXX-3"
|
|
58
|
+
uuid: "5436c3d1-d76e-5546-bf50-e40e9cacf92c"
|
|
59
|
+
"memo_examples_ui_screen_regions_artifacts_assets::capDrugSelector":
|
|
60
|
+
shortId: "SCR-1"
|
|
61
|
+
uuid: "51697f54-b3f4-5341-be30-5fec7df8b3f3"
|
|
62
|
+
"memo_examples_ui_screen_regions_artifacts_assets::capMain":
|
|
63
|
+
shortId: "SCR-2"
|
|
64
|
+
uuid: "5c5debcc-b021-5d62-86d5-007fe37d427d"
|
|
65
|
+
"memo_examples_ui_screen_regions_artifacts_assets::capSettings":
|
|
66
|
+
shortId: "SCR-3"
|
|
67
|
+
uuid: "3df60945-9d9f-535e-b907-61baaf2f7f1a"
|
|
68
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtDecimalSalience":
|
|
69
|
+
shortId: "MDL-1"
|
|
70
|
+
uuid: "aada3c56-bd18-545a-9b46-77d45a7354e5"
|
|
71
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarReply":
|
|
72
|
+
shortId: "MDL-2"
|
|
73
|
+
uuid: "d99e8642-f5e1-5d31-8cb0-174b25cd1249"
|
|
74
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_comments::cmtStatusBarScope":
|
|
75
|
+
shortId: "MDL-3"
|
|
76
|
+
uuid: "b9b7b12d-f223-57ea-8d1b-da58b140b671"
|
|
77
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_notes::noteCaptureReview":
|
|
78
|
+
shortId: "MDL-4"
|
|
79
|
+
uuid: "0e6d1f04-2e80-52dd-90f3-4eeed99b5799"
|
|
80
|
+
"memo_examples_ui_screen_regions_artifacts_reviews_rationales::ratOverlayGeometry":
|
|
81
|
+
shortId: "MDL-5"
|
|
82
|
+
uuid: "349c75a2-4041-56ab-b2c5-c5710a43d07f"
|
|
83
|
+
"memo_examples_ui_screen_regions_assurance_human_factors::ueMisreadDisplayedTime":
|
|
84
|
+
shortId: "USE-1"
|
|
85
|
+
uuid: "74100c1a-f960-54d7-a0a4-36f21a7e3d0c"
|
|
86
|
+
"memo_examples_ui_screen_regions_assurance_human_factors::ueMisreadRate":
|
|
87
|
+
shortId: "USE-2"
|
|
88
|
+
uuid: "4a2c3dbf-dc82-57c0-af10-0aae21f0880e"
|
|
89
|
+
"memo_examples_ui_screen_regions_assurance_human_factors::ueMissLowBattery":
|
|
90
|
+
shortId: "USE-3"
|
|
91
|
+
uuid: "5f57b588-20f6-5b03-b32e-6c801c10bc6e"
|
|
92
|
+
"memo_examples_ui_screen_regions_assurance_human_factors::ueRelyOnStaleVolume":
|
|
93
|
+
shortId: "USE-4"
|
|
94
|
+
uuid: "7f2c9058-0d12-5aa0-a594-5e52e8ff1dae"
|
|
95
|
+
"memo_examples_ui_screen_regions_assurance_human_factors::ueSelectWrongDrug":
|
|
96
|
+
shortId: "USE-5"
|
|
97
|
+
uuid: "4463487f-8084-590c-ac2c-2064da2614e2"
|
|
98
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqActiveRateDisplay":
|
|
99
|
+
shortId: "REQ-1"
|
|
100
|
+
uuid: "fddda136-cdd4-5f96-8aa0-81f76d8bcc09"
|
|
101
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqBatteryStatusDisplay":
|
|
102
|
+
shortId: "REQ-2"
|
|
103
|
+
uuid: "965058ae-7a64-5073-b1b3-623ee49b6f0b"
|
|
104
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqBatteryWarningPerformance":
|
|
105
|
+
shortId: "REQ-3"
|
|
106
|
+
uuid: "91d47515-c10f-5973-b042-9afd1343adcc"
|
|
107
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqDisplayFreshness":
|
|
108
|
+
shortId: "REQ-4"
|
|
109
|
+
uuid: "4315dfd6-0167-5006-b080-b2f2734de5fc"
|
|
110
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqDrugIdentityDisplay":
|
|
111
|
+
shortId: "REQ-5"
|
|
112
|
+
uuid: "659494f6-e296-53f5-a011-a36599475ffc"
|
|
113
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqDrugLibrarySelection":
|
|
114
|
+
shortId: "REQ-6"
|
|
115
|
+
uuid: "ad58cfc5-77c3-51cd-9232-16d32bfa7fc9"
|
|
116
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqDrugSelectionPerformance":
|
|
117
|
+
shortId: "REQ-7"
|
|
118
|
+
uuid: "c5380f55-6d5b-51a7-bfa1-570210e80935"
|
|
119
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqRateEntry":
|
|
120
|
+
shortId: "REQ-8"
|
|
121
|
+
uuid: "16613ed6-943d-50ed-8bcc-3849c9a78ca9"
|
|
122
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqRateLegibility":
|
|
123
|
+
shortId: "REQ-9"
|
|
124
|
+
uuid: "4e9b6014-ddf2-546c-b6f3-de4a689889d6"
|
|
125
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqTimeAccuracy":
|
|
126
|
+
shortId: "REQ-10"
|
|
127
|
+
uuid: "de995503-445a-5ff0-a0d5-a6516e542d1f"
|
|
128
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqTimeDisplay":
|
|
129
|
+
shortId: "REQ-11"
|
|
130
|
+
uuid: "fa7f0890-e671-506a-9caf-39f8e00cbaea"
|
|
131
|
+
"memo_examples_ui_screen_regions_assurance_requirements::reqVolumeDisplay":
|
|
132
|
+
shortId: "REQ-12"
|
|
133
|
+
uuid: "f909d550-83d8-57b1-9922-fd0fcbf4cb0f"
|
|
134
|
+
"memo_examples_ui_screen_regions_assurance_requirements_needs::needReadableProgramming":
|
|
135
|
+
shortId: "NDX-1"
|
|
136
|
+
uuid: "6f8e78ee-e23b-5194-983f-bedcd5c907de"
|
|
137
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::hzIncorrectDeliveredVolumeAssessment":
|
|
138
|
+
shortId: "HZD-1"
|
|
139
|
+
uuid: "8e600b22-708a-53b3-900c-a3157f9357e5"
|
|
140
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::hzIncorrectEventChronology":
|
|
141
|
+
shortId: "HZD-2"
|
|
142
|
+
uuid: "8159f0e0-decf-5553-9ba6-c66bae17381c"
|
|
143
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::hzUnexpectedPowerLoss":
|
|
144
|
+
shortId: "HZD-3"
|
|
145
|
+
uuid: "fe69a889-4877-5eb2-8923-6fea425b6c6b"
|
|
146
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::hzWrongDrug":
|
|
147
|
+
shortId: "HZD-4"
|
|
148
|
+
uuid: "0d0ae248-b3c2-5385-b1aa-6d03295c9513"
|
|
149
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::hzWrongRate":
|
|
150
|
+
shortId: "HZD-5"
|
|
151
|
+
uuid: "9143ddd2-b75d-5322-9f69-7faa190f4b9e"
|
|
152
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::rcClockFreshnessCheck":
|
|
153
|
+
shortId: "RSK-1"
|
|
154
|
+
uuid: "c680ee4e-3986-5191-97b3-4264079a38ce"
|
|
155
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::rcDisplayFreshnessMonitor":
|
|
156
|
+
shortId: "RSK-2"
|
|
157
|
+
uuid: "b7465f4e-8466-5288-b730-c92b7e964c3b"
|
|
158
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::rcDrugLibraryGuard":
|
|
159
|
+
shortId: "RSK-3"
|
|
160
|
+
uuid: "482ff3fb-c399-5f02-bcc2-3ec73748cb45"
|
|
161
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::rcLowBatteryProminence":
|
|
162
|
+
shortId: "RSK-4"
|
|
163
|
+
uuid: "6b366476-463e-5195-9f04-8292b29329f5"
|
|
164
|
+
"memo_examples_ui_screen_regions_assurance_safety_risk::rcRateConfirm":
|
|
165
|
+
shortId: "RSK-5"
|
|
166
|
+
uuid: "edbdf165-36c5-586a-9332-a33cf98a5d13"
|
|
167
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::evDrugLibrarySelection":
|
|
168
|
+
shortId: "MMX-1"
|
|
169
|
+
uuid: "c24abc81-f668-5c2c-b438-4aea2bd6bc4c"
|
|
170
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::evInfusionStatusContent":
|
|
171
|
+
shortId: "MMX-2"
|
|
172
|
+
uuid: "acbf040a-47ed-51ae-8a12-2481da8ed8d4"
|
|
173
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::evRateChange":
|
|
174
|
+
shortId: "MMX-3"
|
|
175
|
+
uuid: "0a4c6530-ec1b-512c-a7df-39fa54733778"
|
|
176
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::vcDrugLibrarySelection":
|
|
177
|
+
shortId: "VRF-1"
|
|
178
|
+
uuid: "df00c7d8-70c9-549a-aea9-f52cf201cffc"
|
|
179
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::vcInfusionStatusContent":
|
|
180
|
+
shortId: "VRF-2"
|
|
181
|
+
uuid: "13521157-c3a8-5995-8a04-e48d0f3ff05e"
|
|
182
|
+
"memo_examples_ui_screen_regions_assurance_verification_validation::vcRateChange":
|
|
183
|
+
shortId: "VRF-3"
|
|
184
|
+
uuid: "d77a8f8f-0d31-5ddb-ac70-e66b1d938ad3"
|
|
185
|
+
"memo_examples_ui_screen_regions_project::uiScreenRegionsBinding":
|
|
186
|
+
shortId: "PRJ-1"
|
|
187
|
+
uuid: "67b999a2-b982-568c-916f-16301d768a65"
|
|
188
|
+
"memo_examples_ui_screen_regions_viewpoints_functional_views_ui_functional_tree::uiFunctionalTree":
|
|
189
|
+
shortId: "MMX-6"
|
|
190
|
+
uuid: "df30b427-6009-5e2d-a30b-4d36e389f665"
|
|
191
|
+
"memo_examples_ui_screen_regions_viewpoints_requirements_views_ui_requirements_trace::uiRequirementsTrace":
|
|
192
|
+
shortId: "MMX-8"
|
|
193
|
+
uuid: "e3ea76cd-b136-5754-9412-f6774bbbbf7a"
|
|
194
|
+
"memo_examples_ui_screen_regions_viewpoints_risk_views_ui_risk_chain::uiRiskChain":
|
|
195
|
+
shortId: "MMX-9"
|
|
196
|
+
uuid: "b581db89-2ad3-5d3c-8b13-3d5f9cc5b023"
|
|
197
|
+
"memo_examples_ui_screen_regions_viewpoints_ui_layout_views_main_screen_layout::mainScreenLayout":
|
|
198
|
+
shortId: "MMX-4"
|
|
199
|
+
uuid: "64fdaf61-445d-532e-963b-610b52ee3690"
|
|
200
|
+
"memo_examples_ui_screen_regions_viewpoints_ui_layout_views_settings_screen_layout::settingsScreenLayout":
|
|
201
|
+
shortId: "MMX-5"
|
|
202
|
+
uuid: "a90192d8-28f8-539e-85ef-db885279a15e"
|
|
203
|
+
"memo_examples_ui_screen_regions_viewpoints_ui_layout_views_ui_region_trace::uiRegionTrace":
|
|
204
|
+
shortId: "MMX-7"
|
|
205
|
+
uuid: "942d600f-947a-5083-b43d-fae467d2d6a7"
|
|
@@ -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
|
}
|
|
@@ -19,13 +19,15 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
19
19
|
private import memo_core_enumerations::*;
|
|
20
20
|
private import memo_architecture_implementation_ui::*;
|
|
21
21
|
|
|
22
|
+
private import memo_core_common::*;
|
|
23
|
+
private import memo_core_common::MemoIdentity;
|
|
22
24
|
// Every UIElement carries safetyClass C. Per IEC 62304 §4.3 items inherit
|
|
23
25
|
// the software system's class; an item is classified lower only where
|
|
24
26
|
// segregation is documented, and nothing here is segregated — one UI
|
|
25
27
|
// process draws the lot, so the chrome inherits C like the rate field.
|
|
26
28
|
part uiPumpPanel : UserInterface {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
@MemoIdentity { :>> providedId = "UIR-UI-001"; } attribute :>> name = "PumpFrontPanel";
|
|
30
|
+
@MemoIdentity { :>> shortDescription = "Front-panel touchscreen."; }
|
|
29
31
|
attribute :>> description = "The 7-inch capacitive touchscreen on the pump front panel, the sole interface for programming and monitoring an infusion at the bedside.";
|
|
30
32
|
attribute :>> modality = "visual + touch";
|
|
31
33
|
attribute :>> uiTechnology = "embedded Qt";
|
|
@@ -35,8 +37,8 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
35
37
|
// A screen is a UIElement whose formKind is `screen`. Its bounds are the
|
|
36
38
|
// full frame; every descendant's bounds are relative to ITS parent.
|
|
37
39
|
part elMainScreen : UIElement {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
+
@MemoIdentity { :>> providedId = "UIE-001"; } attribute :>> name = "MainInfusionScreen";
|
|
41
|
+
@MemoIdentity { :>> shortDescription = "Primary running-infusion screen."; }
|
|
40
42
|
attribute :>> description = "The screen shown while an infusion is running: current rate, volume delivered, and access to settings. The default view the clinician comes back to after any subordinate task.";
|
|
41
43
|
attribute :>> formKind = UIElementFormKind::screen;
|
|
42
44
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
@@ -58,8 +60,8 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
58
60
|
// recurse into its children.
|
|
59
61
|
part elDrugSelectorRegion : UIElement {
|
|
60
62
|
attribute redefines name = "DrugSelectorRegion";
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
@MemoIdentity { :>> providedId = "UIE-005"; }
|
|
64
|
+
@MemoIdentity { :>> shortDescription = "Reusable region containing drug-selector states."; }
|
|
63
65
|
attribute redefines description = "Parent geometry region for the drug selector. Its state presentations are sibling UI elements, permitting the same region definition to be reused in flat, spatial, or 3-D renderings.";
|
|
64
66
|
attribute redefines formKind = UIElementFormKind::panel;
|
|
65
67
|
attribute redefines safetyClass = SafetyClassKind::C;
|
|
@@ -77,8 +79,8 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
77
79
|
}
|
|
78
80
|
|
|
79
81
|
part elDrugSelectorClosed : UIElement {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
+
@MemoIdentity { :>> providedId = "UIE-010"; } attribute :>> name = "ClosedDrugSelector";
|
|
83
|
+
@MemoIdentity { :>> shortDescription = "Closed drug selector shown on the main screen."; }
|
|
82
84
|
attribute :>> description = "The compact, normal-state selector. It is a sibling of the expanded menu rather than a different identity for the parent region.";
|
|
83
85
|
attribute :>> formKind = UIElementFormKind::selector;
|
|
84
86
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
@@ -98,8 +100,8 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
98
100
|
// behaviour, not a defect.
|
|
99
101
|
part elDrugMenuExpanded : UIElement {
|
|
100
102
|
attribute redefines name = "ExpandedDrugMenu";
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
@MemoIdentity { :>> providedId = "UIE-011"; }
|
|
104
|
+
@MemoIdentity { :>> shortDescription = "Expanded drug library choices."; }
|
|
103
105
|
attribute redefines description = "Expanded state listing Norepinephrine, Dopamine, and Heparin. It shares the DrugSelectorRegion parent with the closed state and can extend beyond that parent's normal inline allocation.";
|
|
104
106
|
attribute redefines formKind = UIElementFormKind::selector;
|
|
105
107
|
attribute redefines safetyClass = SafetyClassKind::C;
|
|
@@ -116,12 +118,28 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
116
118
|
}
|
|
117
119
|
}
|
|
118
120
|
}
|
|
121
|
+
part uiElement12 : UIElement {
|
|
122
|
+
attribute redefines name = "Region UIE-012";
|
|
123
|
+
@MemoIdentity { :>> providedId = "UIE-012"; }
|
|
124
|
+
attribute redefines formKind = UIElementFormKind::panel;
|
|
125
|
+
attribute redefines disclosureKind = UIDisclosureKind::inline;
|
|
126
|
+
attribute redefines detectionMethod = BoundsDetectionKind::manual;
|
|
127
|
+
attribute redefines boundaryColor = "#14B8A6";
|
|
128
|
+
attribute redefines boundaryOpacity = 0.12;
|
|
129
|
+
attribute redefines boundaryWidth = 5;
|
|
130
|
+
attribute redefines bounds {
|
|
131
|
+
attribute redefines x = 0.52234;
|
|
132
|
+
attribute redefines y = 0.11311;
|
|
133
|
+
attribute redefines width = 0.45242;
|
|
134
|
+
attribute redefines height = 0.53172;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
119
137
|
}
|
|
120
138
|
|
|
121
139
|
// ── The settings screen: a sibling root, not a child ────────
|
|
122
140
|
part elSettingsScreen : UIElement {
|
|
123
|
-
|
|
124
|
-
|
|
141
|
+
@MemoIdentity { :>> providedId = "UIE-008"; } attribute :>> name = "InfusionSettingsScreen";
|
|
142
|
+
@MemoIdentity { :>> shortDescription = "Settings screen reached from the main screen."; }
|
|
125
143
|
attribute :>> description = "Secondary screen for changing infusion parameters mid-run. It is a root in its own right with its own capture and its own coordinate frame — it is not laid out inside the main screen, so no geometric rule relates the two.";
|
|
126
144
|
attribute :>> formKind = UIElementFormKind::screen;
|
|
127
145
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
@@ -138,8 +156,8 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
138
156
|
// pending rate change awaits explicit confirmation and intentionally
|
|
139
157
|
// covers the settings form beneath it.
|
|
140
158
|
part elRateConfirmDialog : UIElement {
|
|
141
|
-
|
|
142
|
-
|
|
159
|
+
@MemoIdentity { :>> providedId = "UIE-009"; } attribute :>> name = "RateChangeConfirmationDialog";
|
|
160
|
+
@MemoIdentity { :>> shortDescription = "Modal confirmation popup for a new infusion rate."; }
|
|
143
161
|
attribute :>> description = "Restates the pending infusion rate above the settings screen and requires an explicit confirm or cancel disposition before the value can reach the controller.";
|
|
144
162
|
attribute :>> formKind = UIElementFormKind::dialog;
|
|
145
163
|
attribute :>> safetyClass = SafetyClassKind::C;
|
|
@@ -159,7 +177,7 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
159
177
|
|
|
160
178
|
// ── UI actions and the functions they invoke ────────────────
|
|
161
179
|
action uiaEditRate : UIAction {
|
|
162
|
-
|
|
180
|
+
@MemoIdentity { :>> providedId = "UIR-UIA-001"; } attribute :>> name = "EditInfusionRate";
|
|
163
181
|
attribute :>> intent = InteractionIntentKind::userInput;
|
|
164
182
|
attribute :>> confirmationRequired = true;
|
|
165
183
|
attribute :>> feedbackProvided = "new rate echoed on a confirmation dialog before it is applied";
|
|
@@ -167,35 +185,19 @@ package memo_examples_ui_screen_regions_architecture_implementation_ui {
|
|
|
167
185
|
}
|
|
168
186
|
|
|
169
187
|
action uiaOpenSettings : UIAction {
|
|
170
|
-
|
|
188
|
+
@MemoIdentity { :>> providedId = "UIR-UIA-002"; } attribute :>> name = "OpenInfusionSettings";
|
|
171
189
|
attribute :>> intent = InteractionIntentKind::navigation;
|
|
172
190
|
attribute :>> confirmationRequired = false;
|
|
173
191
|
perform fnManageInfusionDisplay;
|
|
174
192
|
}
|
|
175
193
|
|
|
176
194
|
action uiaSelectDrug : UIAction {
|
|
177
|
-
|
|
195
|
+
@MemoIdentity { :>> providedId = "UIR-UIA-003"; } attribute :>> name = "SelectDrug";
|
|
178
196
|
attribute :>> intent = InteractionIntentKind::userInput;
|
|
179
197
|
attribute :>> confirmationRequired = true;
|
|
180
198
|
perform fnManageInfusionDisplay.fnValidateDrugSelection;
|
|
181
199
|
}
|
|
182
200
|
|
|
183
|
-
part uiElement12 : UIElement {
|
|
184
|
-
attribute redefines name = "Region UIE-012";
|
|
185
|
-
attribute redefines id = "UIE-012";
|
|
186
|
-
attribute redefines formKind = UIElementFormKind::panel;
|
|
187
|
-
attribute redefines disclosureKind = UIDisclosureKind::inline;
|
|
188
|
-
attribute redefines detectionMethod = BoundsDetectionKind::manual;
|
|
189
|
-
attribute redefines boundaryColor = "#14B8A6";
|
|
190
|
-
attribute redefines boundaryOpacity = 0.12;
|
|
191
|
-
attribute redefines boundaryWidth = 5;
|
|
192
|
-
attribute redefines bounds {
|
|
193
|
-
attribute redefines x = 0.52234;
|
|
194
|
-
attribute redefines y = 0.11311;
|
|
195
|
-
attribute redefines width = 0.45242;
|
|
196
|
-
attribute redefines height = 0.53172;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
201
|
|
|
200
202
|
|
|
201
203
|
satisfy reqRateLegibility by elMainScreen;
|