@memoarchitect/ontology 0.7.0 → 0.8.24
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 +4 -2
- package/examples/connected-patient-monitor/memo.package.yaml +3 -0
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +1 -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 +8 -6
- 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 +6 -6
- package/examples/functional-logical-physical/model/catalog/viewpoints/unassigned/views/functional_logical_physical_overview.sysml +1 -1
- package/examples/gpca-pump/memo.package.yaml +3 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +18 -8
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +341 -99
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +25 -11
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +328 -271
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +52 -11
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +14 -3
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +8 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +97 -103
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +5 -10
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +101 -100
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +161 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +17 -17
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -334
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +115 -35
- package/examples/gpca-pump/model/catalog/project.sysml +5 -0
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +1 -4
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -7
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_logical_architecture_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +5 -8
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +6 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_risk_chain_view.sysml +1 -3
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +2 -5
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +5 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -0
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +1 -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 +4 -3
- 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 -2
- 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 +133 -128
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +139 -157
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +56 -33
- package/examples/nested-architecture-dsm/model/catalog/traces.sysml +25 -26
- package/examples/reusable-instrument/memo.package.yaml +3 -0
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +16 -23
- package/examples/reusable-instrument/model/catalog/viewpoints/unassigned/views/reusable_instrument_overview.sysml +0 -1
- package/examples/ros-mobile-robot/README.md +40 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -0
- package/examples/ros-mobile-robot/model/catalog/project.sysml +33 -0
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +296 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/viewpoint.sysml +7 -0
- package/examples/ros-mobile-robot/model/catalog/viewpoints/unassigned/views/ros_mobile_robot_overview.sysml +12 -0
- package/examples/software-only-medical-device/memo.package.yaml +3 -0
- package/examples/software-only-medical-device/model/catalog/project.sysml +4 -0
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +12 -6
- 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/surgical_closure_workflow.sysml +58 -75
- 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/surgical_robot.sysml +1 -1
- 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/viewpoints/unassigned/views/action_flow_view.sysml +12 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +8 -11
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +43 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +57 -68
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +40 -70
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +4 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +1 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +52 -84
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +22 -33
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +13 -10
- package/examples/temperature-alarm/memo.package.yaml +3 -0
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -25
- 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 +57 -33
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +102 -79
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +5 -5
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +21 -6
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +8 -0
- package/examples/ui-screen-regions/model/catalog/traces.sysml +28 -125
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +2 -3
- package/examples/ui-screen-regions/model/catalog/viewpoints/requirements/views/ui_requirements_trace.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/risk/views/ui_risk_chain.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/main_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/settings_screen_layout.sysml +1 -2
- package/examples/ui-screen-regions/model/catalog/viewpoints/ui_layout/views/ui_region_trace.sysml +1 -2
- package/extensions/LICENSES/MIT.txt +19 -0
- package/extensions/README.md +94 -0
- package/extensions/aadl/memo.package.yaml +18 -0
- package/extensions/aadl/src/aadl_extension.sysml +6 -0
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +147 -0
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +17 -0
- package/extensions/aadl/src/runtime/memo_aadl_runtime.sysml +56 -0
- package/extensions/cloud/memo.package.yaml +18 -0
- package/extensions/cloud/src/cloud_extension.sysml +44 -0
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +17 -0
- package/extensions/container/memo.package.yaml +18 -0
- package/extensions/container/src/container_extension.sysml +37 -0
- package/extensions/container/src/methodology/container_methodology.sysml +17 -0
- package/extensions/messaging/memo.package.yaml +18 -0
- package/extensions/messaging/src/messaging_extension.sysml +64 -0
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +17 -0
- package/extensions/ros/memo.package.yaml +18 -0
- package/extensions/ros/src/methodology/ros_methodology.sysml +25 -0
- package/extensions/ros/src/ros_extension.sysml +200 -0
- package/extensions/template/src/extension.sysml +37 -0
- package/memo.manifest.yaml +13 -2
- 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 +5 -3
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +23 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +51 -23
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +93 -36
- package/src/architecture/implementation/hardware/common/memo_hardware_common.sysml +2 -2
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +40 -13
- package/src/architecture/implementation/ui/memo_ui.sysml +83 -43
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +64 -12
- package/src/architecture/logical/structure/memo_logical_structure.sysml +26 -25
- package/src/architecture/operational/activities/memo_activities.sysml +27 -29
- package/src/architecture/operational/context/actors/memo_actors.sysml +8 -10
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +16 -33
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -17
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +36 -84
- package/src/architecture/operational/structure/memo_operational.sysml +42 -13
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -27
- package/src/architecture/operational/workflows/memo_workflows.sysml +45 -28
- package/src/architecture/realization/deployment/memo_deployment.sysml +115 -20
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +29 -4
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +16 -0
- package/src/artifacts/core/memo_controlled_artifacts.sysml +3 -1
- package/src/artifacts/standards/cfr_21_820.sysml +116 -0
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +80 -0
- package/src/artifacts/standards/iec_60601_1.sysml +149 -0
- package/src/artifacts/standards/iec_60601_1_2.sysml +56 -0
- package/src/artifacts/standards/iec_60812.sysml +51 -0
- package/src/artifacts/standards/iec_62304.sysml +210 -0
- package/src/artifacts/standards/iec_62366_1.sysml +113 -0
- package/src/artifacts/standards/iec_81001_5_1.sysml +84 -0
- package/src/artifacts/standards/iso_13485.sysml +113 -0
- package/src/artifacts/standards/iso_14971.sysml +94 -0
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +42 -0
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +132 -0
- package/src/artifacts/templates/dhf/21cfr820/design-input.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-output.md +5 -5
- package/src/artifacts/templates/dhf/21cfr820/design-review.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/design-validation.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/design-verification.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/dhf-index.md +2 -2
- package/src/artifacts/templates/dhf/21cfr820/transfer-plan.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/user-needs.md +1 -1
- package/src/artifacts/templates/dhf/21cfr820/vv-plan.md +3 -3
- package/src/artifacts/templates/dhf/21cfr820/vv-report.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/incident-response.md +1 -1
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +3 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/security-arch.md +2 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/threat-model.md +4 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +4 -3
- package/src/artifacts/templates/dhf/iec-60601/hrs.md +170 -0
- package/src/artifacts/templates/dhf/iec-62304/detailed-design.md +1 -1
- package/src/artifacts/templates/dhf/iec-62304/integration-test.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/sad.md +6 -5
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +3 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +5 -4
- package/src/artifacts/templates/dhf/iec-62304/soup.md +4 -2
- package/src/artifacts/templates/dhf/iec-62304/srs.md +54 -20
- package/src/artifacts/templates/dhf/iec-62304/sw-traceability.md +3 -3
- package/src/artifacts/templates/dhf/iec-62304/system-test.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/summative-eval.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/task-analysis.md +40 -4
- package/src/artifacts/templates/dhf/iec-62366/ue-plan.md +1 -1
- package/src/artifacts/templates/dhf/iec-62366/urra.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/fmea.md +42 -19
- package/src/artifacts/templates/dhf/iso-14971/har.md +3 -3
- package/src/artifacts/templates/dhf/iso-14971/rmp.md +2 -2
- package/src/artifacts/templates/dhf/system/sad.md +173 -0
- package/src/artifacts/templates/dhf/system/standards-checklist.md +87 -0
- package/src/artifacts/templates/dhf/system/standards-traceability.md +125 -0
- package/src/artifacts/templates/dhf/system/syrs.md +128 -0
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +40 -21
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +7 -20
- package/src/assurance/requirements/needs/memo_needs.sysml +1 -1
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +118 -13
- package/src/assurance/safety_risk/memo_risk.sysml +90 -7
- package/src/assurance/safety_risk/postmarket_surveillance/memo_postmarket_surveillance.sysml +16 -0
- package/src/assurance/verification_validation/memo_assurance.sysml +17 -21
- package/src/core/annotations/memo_annotations.sysml +25 -6
- package/src/core/common/memo_common.sysml +130 -21
- package/src/core/consistency_rules/consistency_rules.sysml +1 -1
- package/src/core/dimensions/dimensions.sysml +12 -0
- package/src/core/enumerations/memo_enumerations.sysml +60 -14
- package/src/core/relationships/memo_relationships.sysml +199 -196
- package/src/memo_namespaces.sysml +30 -0
- package/src/methodology/core/memo_core.sysml +24 -0
- package/src/methodology/profiles/memo_profiles.sysml +1 -1
- package/src/methodology/workflow/memo_workflow.sysml +5 -5
- package/src/rules/closure/closure_rules.sysml +20 -20
- package/src/rules/crosslayer/cross_layer_rules.sysml +2 -2
- package/src/rules/ontology/ontology_invariants.sysml +223 -11
- package/src/rules/quantitative/quantitative_rules.sysml +2 -2
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +30 -30
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +2 -3
- package/src/viewpoints/context/context_viewpoint.sysml +2 -3
- package/src/viewpoints/context/views/system_context_view/system_context_view.sysml +1 -2
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -4
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +46 -3
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -3
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -3
- package/src/viewpoints/logical/logical_viewpoint.sysml +1 -2
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +1 -2
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +2 -3
- package/src/viewpoints/physical/physical_viewpoint.sysml +1 -2
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +1 -2
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +1 -2
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +1 -2
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +1 -2
- package/src/viewpoints/risk/risk_viewpoint.sysml +1 -2
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +1 -2
- package/src/viewpoints/software/software_viewpoint.sysml +1 -2
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +1 -2
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/usability/usability_viewpoint.sysml +1 -2
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -3
- package/templates/connected-device/memo.package.yaml +2 -0
- package/templates/default/memo.package.yaml +2 -0
- package/templates/infusion-pump/memo.package.yaml +2 -0
- package/templates/monitoring-device/memo.package.yaml +2 -0
- package/templates/samd/memo.package.yaml +2 -0
- package/examples/extensions/README.md +0 -16
- package/examples/extensions/template/src/extension.sysml +0 -15
- package/examples/gpca-pump/gpca-pump.kpar +0 -0
- /package/{examples/extensions → extensions}/clinical/memo.package.yaml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/clinical_extension.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/methodology/clinical_methodology.sysml +0 -0
- /package/{examples/extensions → extensions}/clinical/src/procedures/memo_clinical_procedures.sysml +0 -0
- /package/{examples/extensions → extensions}/template/memo.package.yaml +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
package memo_examples_gpca_pump_gpca_operational {
|
|
2
2
|
private import ScalarValues::*;
|
|
3
|
+
private import ModelingMetadata::*;
|
|
3
4
|
|
|
4
5
|
private import memo_architecture_operational_structure::*;
|
|
5
6
|
private import memo_architecture_operational_activities::*;
|
|
@@ -8,6 +9,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
8
9
|
private import memo_architecture_operational_workflows::*;
|
|
9
10
|
private import memo_core_enumerations::*;
|
|
10
11
|
private import memo_examples_gpca_pump_gpca_context::*;
|
|
12
|
+
private import memo_examples_gpca_pump_gpca_system::*;
|
|
11
13
|
private import memo_core_relationships::*;
|
|
12
14
|
|
|
13
15
|
// ── Operational entities beyond the human actors ────────────
|
|
@@ -76,7 +78,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
// ── Operational activities (therapy lifecycle) ──────────────
|
|
79
|
-
action oaPrescribe :
|
|
81
|
+
action oaPrescribe : OperativeAction {
|
|
80
82
|
attribute :>> id = "OA-001";
|
|
81
83
|
attribute :>> name = "PrescribeTherapy";
|
|
82
84
|
attribute :>> trigger = "patient requires titrated analgesia";
|
|
@@ -84,7 +86,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
84
86
|
attribute :>> postCondition = "prescription with basal rate, bolus volume, lockout, and max dose limits exists";
|
|
85
87
|
attribute :>> criticality = CriticalityKind::high;
|
|
86
88
|
}
|
|
87
|
-
action oaLoadReservoir :
|
|
89
|
+
action oaLoadReservoir : OperativeAction {
|
|
88
90
|
attribute :>> id = "OA-002";
|
|
89
91
|
attribute :>> name = "LoadDrugReservoir";
|
|
90
92
|
attribute :>> trigger = "prescription issued or reservoir empty";
|
|
@@ -92,7 +94,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
92
94
|
attribute :>> postCondition = "reservoir mounted, door closed and latched";
|
|
93
95
|
attribute :>> criticality = CriticalityKind::high;
|
|
94
96
|
}
|
|
95
|
-
action oaProgram :
|
|
97
|
+
action oaProgram : OperativeAction {
|
|
96
98
|
attribute :>> id = "OA-003";
|
|
97
99
|
attribute :>> name = "ProgramPrescription";
|
|
98
100
|
attribute :>> trigger = "reservoir loaded";
|
|
@@ -100,7 +102,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
100
102
|
attribute :>> postCondition = "prescription entered, checked against pharmacy-database safe values (I 9-I 11), and confirmed by second review";
|
|
101
103
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
102
104
|
}
|
|
103
|
-
action oaStartTherapy :
|
|
105
|
+
action oaStartTherapy : OperativeAction {
|
|
104
106
|
attribute :>> id = "OA-004";
|
|
105
107
|
attribute :>> name = "StartInfusion";
|
|
106
108
|
attribute :>> trigger = "prescription confirmed";
|
|
@@ -108,7 +110,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
108
110
|
attribute :>> postCondition = "basal infusion running";
|
|
109
111
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
110
112
|
}
|
|
111
|
-
action oaRequestBolus :
|
|
113
|
+
action oaRequestBolus : OperativeAction {
|
|
112
114
|
attribute :>> id = "OA-005";
|
|
113
115
|
attribute :>> name = "RequestPatientBolus";
|
|
114
116
|
attribute :>> trigger = "patient presses bolus request button";
|
|
@@ -116,7 +118,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
116
118
|
attribute :>> postCondition = "bolus delivered, or request ignored when lockout or max-dose limits apply";
|
|
117
119
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
118
120
|
}
|
|
119
|
-
action oaRespondAlarm :
|
|
121
|
+
action oaRespondAlarm : OperativeAction {
|
|
120
122
|
attribute :>> id = "OA-006";
|
|
121
123
|
attribute :>> name = "RespondToAlarm";
|
|
122
124
|
attribute :>> trigger = "audible or visual alarm annunciated";
|
|
@@ -124,7 +126,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
124
126
|
attribute :>> postCondition = "cause resolved and therapy resumed, or therapy stopped";
|
|
125
127
|
attribute :>> criticality = CriticalityKind::catastrophic;
|
|
126
128
|
}
|
|
127
|
-
action oaReviewLog :
|
|
129
|
+
action oaReviewLog : OperativeAction {
|
|
128
130
|
attribute :>> id = "OA-007";
|
|
129
131
|
attribute :>> name = "ReviewEventLog";
|
|
130
132
|
attribute :>> trigger = "shift change, incident review, or dose audit";
|
|
@@ -132,7 +134,7 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
132
134
|
attribute :>> postCondition = "delivered doses and alarm history reviewed";
|
|
133
135
|
attribute :>> criticality = CriticalityKind::medium;
|
|
134
136
|
}
|
|
135
|
-
action oaMaintain :
|
|
137
|
+
action oaMaintain : OperativeAction {
|
|
136
138
|
attribute :>> id = "OA-008";
|
|
137
139
|
attribute :>> name = "MaintainDevice";
|
|
138
140
|
attribute :>> trigger = "scheduled maintenance or fault";
|
|
@@ -154,6 +156,11 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
154
156
|
ref :>> primaryUser = actorNurse;
|
|
155
157
|
ref :>> supportingActors = (actorPatient, actorPrescriber, actorPharmacist);
|
|
156
158
|
ref :>> useContext = hospitalWardContext;
|
|
159
|
+
subject supportingSystem;
|
|
160
|
+
actor nurseInitiator = actorNurse;
|
|
161
|
+
actor patientActor = actorPatient;
|
|
162
|
+
actor prescriberActor = actorPrescriber;
|
|
163
|
+
actor pharmacistActor = actorPharmacist;
|
|
157
164
|
}
|
|
158
165
|
|
|
159
166
|
action wfPrepareAndStartTherapy : OperationalWorkflow {
|
|
@@ -161,63 +168,37 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
161
168
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
162
169
|
attribute :>> entryCondition = "A valid prescription and prepared reservoir are available.";
|
|
163
170
|
attribute :>> completionCondition = "Therapy is started with confirmed prescription limits.";
|
|
171
|
+
|
|
164
172
|
}
|
|
165
173
|
action wfManageActiveTherapy : OperationalWorkflow {
|
|
166
174
|
attribute :>> name = "ManageActiveTherapy";
|
|
167
175
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
168
176
|
attribute :>> entryCondition = "Basal therapy is active.";
|
|
169
177
|
attribute :>> completionCondition = "A bolus is handled or active therapy continues safely.";
|
|
178
|
+
|
|
179
|
+
// Refinement targets a nested step by its local name — the shorthand's
|
|
180
|
+
// `to` end does not accept a qualified path — so this is written
|
|
181
|
+
// inside wsRequestBolus's own owning scope rather than at package
|
|
182
|
+
// level.
|
|
183
|
+
#refinement dependency fcsBolusSense to oaRequestBolus;
|
|
184
|
+
#refinement dependency fcsBolusValidate to oaRequestBolus;
|
|
185
|
+
#refinement dependency fcsBolusCommand to oaRequestBolus;
|
|
186
|
+
#refinement dependency fcsBolusActuate to oaRequestBolus;
|
|
187
|
+
#refinement dependency fcsBolusLog to oaRequestBolus;
|
|
170
188
|
}
|
|
171
189
|
action wfRespondToTherapyAlarm : OperationalWorkflow {
|
|
172
190
|
attribute :>> name = "RespondToTherapyAlarm";
|
|
173
191
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
174
192
|
attribute :>> entryCondition = "A therapy alarm or degraded condition is detected.";
|
|
175
193
|
attribute :>> completionCondition = "The pump is safe and the clinician has resolved or escalated the condition.";
|
|
176
|
-
}
|
|
177
|
-
action wsProgram : WorkflowStep { ref :>> performedActivity = oaProgram; }
|
|
178
|
-
action wsStart : WorkflowStep { ref :>> performedActivity = oaStartTherapy; }
|
|
179
|
-
action wsRequestBolus : WorkflowStep { ref :>> performedActivity = oaRequestBolus; }
|
|
180
|
-
action wsRespondAlarm : WorkflowStep { ref :>> performedActivity = oaRespondAlarm; }
|
|
181
|
-
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfPrepareAndStartTherapy to supported ::> ucDeliverPcaTherapy; }
|
|
182
|
-
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfManageActiveTherapy to supported ::> ucDeliverPcaTherapy; }
|
|
183
|
-
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfRespondToTherapyAlarm to supported ::> ucDeliverPcaTherapy; }
|
|
184
|
-
connection : Composes connect parent ::> wfPrepareAndStartTherapy to child ::> wsProgram;
|
|
185
|
-
connection : Composes connect parent ::> wfPrepareAndStartTherapy to child ::> wsStart;
|
|
186
|
-
connection : Composes connect parent ::> wfManageActiveTherapy to child ::> wsRequestBolus;
|
|
187
|
-
connection : Composes connect parent ::> wfRespondToTherapyAlarm to child ::> wsRespondAlarm;
|
|
188
194
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
first start then deliverWithinLimits; first deliverWithinLimits then recordTherapyEvent; first recordTherapyEvent then done;
|
|
194
|
-
}
|
|
195
|
-
action oaRejectBolusDuringLockout : OperationalActivity {
|
|
196
|
-
attribute :>> name = "RejectBolusDuringLockout";
|
|
197
|
-
action checkLockout; action rejectAndLog;
|
|
198
|
-
first start then checkLockout; first checkLockout then rejectAndLog; first rejectAndLog then done;
|
|
199
|
-
}
|
|
200
|
-
action oaRespondToOcclusion : OperationalActivity {
|
|
201
|
-
attribute :>> name = "RespondToOcclusion";
|
|
202
|
-
action pauseInfusion; action annunciateOcclusion; action resolveAndResume;
|
|
203
|
-
first start then pauseInfusion; first pauseInfusion then annunciateOcclusion; first annunciateOcclusion then resolveAndResume; first resolveAndResume then done;
|
|
204
|
-
}
|
|
205
|
-
action oaRespondToAirInLine : OperationalActivity {
|
|
206
|
-
attribute :>> name = "RespondToAirInLine";
|
|
207
|
-
action stopOrKvo; action annunciateAir; action reprimeAndRestart;
|
|
208
|
-
first start then stopOrKvo; first stopOrKvo then annunciateAir; first annunciateAir then reprimeAndRestart; first reprimeAndRestart then done;
|
|
209
|
-
}
|
|
210
|
-
action oaReplaceEmptyReservoir : OperationalActivity {
|
|
211
|
-
attribute :>> name = "ReplaceEmptyReservoir";
|
|
212
|
-
action stopAndAnnunciate; action replaceReservoir; action resumeTherapy;
|
|
213
|
-
first start then stopAndAnnunciate; first stopAndAnnunciate then replaceReservoir; first replaceReservoir then resumeTherapy; first resumeTherapy then done;
|
|
214
|
-
}
|
|
215
|
-
action oaRecoverAfterPowerLoss : OperationalActivity {
|
|
216
|
-
attribute :>> name = "RecoverAfterPowerLoss";
|
|
217
|
-
action switchToBattery; action restorePrescription; action confirmRestart;
|
|
218
|
-
first start then switchToBattery; first switchToBattery then restorePrescription; first restorePrescription then confirmRestart; first confirmRestart then done;
|
|
195
|
+
#refinement dependency fcsAlarmSense to oaRespondAlarm;
|
|
196
|
+
#refinement dependency fcsAlarmEvaluate to oaRespondAlarm;
|
|
197
|
+
#refinement dependency fcsAlarmStopInfusion to oaRespondAlarm;
|
|
198
|
+
#refinement dependency fcsAlarmAnnunciate to oaRespondAlarm;
|
|
219
199
|
}
|
|
220
200
|
|
|
201
|
+
|
|
221
202
|
// ── Operational capabilities ────────────────────────────────
|
|
222
203
|
part ocTitratedAnalgesia : OperationalCapability {
|
|
223
204
|
attribute :>> id = "OC-001";
|
|
@@ -238,101 +219,114 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
238
219
|
action osNominalTherapy : OperativeScenario {
|
|
239
220
|
attribute :>> id = "OS-001";
|
|
240
221
|
attribute :>> name = "NominalTherapySession";
|
|
241
|
-
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
242
|
-
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
243
222
|
attribute :>> preCondition = "prescription issued, reservoir loaded";
|
|
244
223
|
attribute :>> postCondition = "therapy completed and stopped by clinician";
|
|
245
224
|
attribute :>> pathSummary = "Prescribe > load reservoir > program and confirm > start basal > patient boluses within limits > stop therapy > review log.";
|
|
246
225
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §2.2 Main GPCA System Functions";
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
226
|
+
|
|
227
|
+
action oaCompleteNominalTherapy : OperativeAction {
|
|
228
|
+
attribute :>> name = "CompleteNominalTherapy";
|
|
229
|
+
action deliverWithinLimits; action recordTherapyEvent;
|
|
230
|
+
first start then deliverWithinLimits; first deliverWithinLimits then recordTherapyEvent; first recordTherapyEvent then done;
|
|
231
|
+
}
|
|
250
232
|
}
|
|
251
233
|
action osLockoutBolus : OperativeScenario {
|
|
234
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
252
235
|
attribute :>> id = "OS-002";
|
|
253
236
|
attribute :>> name = "BolusRequestDuringLockout";
|
|
254
|
-
attribute :>> variantKind = ScenarioVariantKind::alternate;
|
|
255
|
-
attribute :>> variationPoint = "patient bolus request during the nominal therapy lockout interval";
|
|
256
|
-
attribute :>> operationalCondition = OperationalConditionKind::foreseeableMisuse;
|
|
257
237
|
attribute :>> preCondition = "basal infusion active; lockout interval running";
|
|
258
238
|
attribute :>> postCondition = "request ignored, logged; basal continues unchanged";
|
|
259
239
|
attribute :>> pathSummary = "Patient presses bolus button during lockout > infusion manager rejects request > event logged > no additional drug delivered.";
|
|
260
240
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.1.9 PATIENT BOLUS mode (lockout requirements)";
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
241
|
+
|
|
242
|
+
action oaRejectBolusDuringLockout : OperativeAction {
|
|
243
|
+
attribute :>> name = "RejectBolusDuringLockout";
|
|
244
|
+
action checkLockout; action rejectAndLog;
|
|
245
|
+
first start then checkLockout; first checkLockout then rejectAndLog; first rejectAndLog then done;
|
|
246
|
+
}
|
|
265
247
|
}
|
|
266
248
|
action osOcclusionAlarm : OperativeScenario {
|
|
249
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
267
250
|
attribute :>> id = "OS-003";
|
|
268
251
|
attribute :>> name = "OcclusionDetectedDuringInfusion";
|
|
269
|
-
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
270
|
-
attribute :>> variationPoint = "occlusion detected while nominal infusion is active";
|
|
271
|
-
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
272
252
|
attribute :>> preCondition = "therapy active; downstream line becomes blocked";
|
|
273
253
|
attribute :>> postCondition = "infusion paused, alarm annunciated, clinician clears occlusion and resumes";
|
|
274
254
|
attribute :>> pathSummary = "Occlusion sensor exceeds pressure threshold > alarm raised same step > infusion paused > audible and visual annunciation > clinician resolves and resumes.";
|
|
275
255
|
attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.2 Alarms and Alerts (occlusion)";
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
256
|
+
|
|
257
|
+
action oaRespondToOcclusion : OperativeAction {
|
|
258
|
+
attribute :>> name = "RespondToOcclusion";
|
|
259
|
+
action pauseInfusion; action annunciateOcclusion; action resolveAndResume;
|
|
260
|
+
first start then pauseInfusion; first pauseInfusion then annunciateOcclusion; first annunciateOcclusion then resolveAndResume; first resolveAndResume then done;
|
|
261
|
+
}
|
|
280
262
|
}
|
|
281
263
|
action osAirInLine : OperativeScenario {
|
|
264
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
282
265
|
attribute :>> id = "OS-004";
|
|
283
266
|
attribute :>> name = "AirInLineDetected";
|
|
284
|
-
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
285
|
-
attribute :>> variationPoint = "air-in-line detected while nominal infusion is active";
|
|
286
|
-
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
287
267
|
attribute :>> preCondition = "therapy active; air bubble enters tubing";
|
|
288
268
|
attribute :>> postCondition = "infusion stopped before air reaches patient; alarm annunciated";
|
|
289
269
|
attribute :>> pathSummary = "Air-in-line sensor detects bubble above threshold > transition to PAUSED (KVO flow) > High-priority Air embolism notification > clinician re-primes line and restarts.";
|
|
290
270
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Air embolism)";
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
271
|
+
|
|
272
|
+
action oaRespondToAirInLine : OperativeAction {
|
|
273
|
+
attribute :>> name = "RespondToAirInLine";
|
|
274
|
+
action stopOrKvo; action annunciateAir; action reprimeAndRestart;
|
|
275
|
+
first start then stopOrKvo; first stopOrKvo then annunciateAir; first annunciateAir then reprimeAndRestart; first reprimeAndRestart then done;
|
|
276
|
+
}
|
|
295
277
|
}
|
|
296
278
|
action osEmptyReservoir : OperativeScenario {
|
|
279
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
297
280
|
attribute :>> id = "OS-005";
|
|
298
281
|
attribute :>> name = "ReservoirEmptyDuringTherapy";
|
|
299
|
-
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
300
|
-
attribute :>> variationPoint = "reservoir-empty threshold reached during nominal therapy";
|
|
301
|
-
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
302
282
|
attribute :>> preCondition = "therapy active; reservoir volume reaches empty threshold";
|
|
303
283
|
attribute :>> postCondition = "infusion stopped, alarm raised, reservoir replaced";
|
|
304
284
|
attribute :>> pathSummary = "Reservoir-empty condition detected > transition to PAUSED (KVO flow) > High-priority Empty Reservoir notification > clinician loads new reservoir > therapy resumed with saved prescription.";
|
|
305
285
|
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 Notification Requirements (REQ 59: Empty Reservoir)";
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
286
|
+
|
|
287
|
+
action oaReplaceEmptyReservoir : OperativeAction {
|
|
288
|
+
attribute :>> name = "ReplaceEmptyReservoir";
|
|
289
|
+
action stopAndAnnunciate; action replaceReservoir; action resumeTherapy;
|
|
290
|
+
first start then stopAndAnnunciate; first stopAndAnnunciate then replaceReservoir; first replaceReservoir then resumeTherapy; first resumeTherapy then done;
|
|
291
|
+
}
|
|
310
292
|
}
|
|
311
293
|
action osPowerLoss : OperativeScenario {
|
|
294
|
+
attribute :>> scenarioKind = ScenarioKind::alternate;
|
|
312
295
|
attribute :>> id = "OS-006";
|
|
313
296
|
attribute :>> name = "MainsPowerLossAndRecovery";
|
|
314
|
-
attribute :>> variantKind = ScenarioVariantKind::recovery;
|
|
315
|
-
attribute :>> variationPoint = "mains supply lost during nominal therapy";
|
|
316
|
-
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
317
297
|
attribute :>> preCondition = "therapy active on mains power";
|
|
318
298
|
attribute :>> postCondition = "therapy continues on battery; prescription preserved across full power loss";
|
|
319
299
|
attribute :>> pathSummary = "Mains lost > battery takes over with notification > if battery depletes, pump stops safely > on power restore, saved prescription recovered and therapy resumed only after clinician confirmation.";
|
|
320
300
|
attribute :>> sourceReference = "CITE-004: GIP Hazard Analysis v1.0 (2009), §2.4.3 Electrical Hazards (battery failure)";
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
connection :
|
|
337
|
-
connection :
|
|
301
|
+
|
|
302
|
+
action oaRecoverAfterPowerLoss : OperativeAction {
|
|
303
|
+
attribute :>> name = "RecoverAfterPowerLoss";
|
|
304
|
+
action switchToBattery; action restorePrescription; action confirmRestart;
|
|
305
|
+
first start then switchToBattery; first switchToBattery then restorePrescription; first restorePrescription then confirmRestart; first confirmRestart then done;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
#refinement dependency osNominalTherapy to ucDeliverPcaTherapy;
|
|
309
|
+
#refinement dependency osLockoutBolus to ucDeliverPcaTherapy;
|
|
310
|
+
#refinement dependency osOcclusionAlarm to ucDeliverPcaTherapy;
|
|
311
|
+
#refinement dependency osAirInLine to ucDeliverPcaTherapy;
|
|
312
|
+
#refinement dependency osEmptyReservoir to ucDeliverPcaTherapy;
|
|
313
|
+
#refinement dependency osPowerLoss to ucDeliverPcaTherapy;
|
|
314
|
+
|
|
315
|
+
// ── Operational trace relations ─────────────────────────────
|
|
316
|
+
connection : RealizesUseCase connect realizingWorkflow ::> wfPrepareAndStartTherapy to realizedUseCase ::> ucDeliverPcaTherapy;
|
|
317
|
+
connection : RealizesUseCase connect realizingWorkflow ::> wfManageActiveTherapy to realizedUseCase ::> ucDeliverPcaTherapy;
|
|
318
|
+
connection : RealizesUseCase connect realizingWorkflow ::> wfRespondToTherapyAlarm to realizedUseCase ::> ucDeliverPcaTherapy;
|
|
319
|
+
connection : EnablesUseCase connect enablingCapability ::> ocTitratedAnalgesia to enabledUseCase ::> ucDeliverPcaTherapy;
|
|
320
|
+
connection : EnablesUseCase connect enablingCapability ::> ocFailSafeTherapy to enabledUseCase ::> ucDeliverPcaTherapy;
|
|
321
|
+
connection : RequiresCapability connect requiringIntendedUse ::> gpcaIntendedUse to requiredCapability ::> ocTitratedAnalgesia;
|
|
322
|
+
connection : RequiresCapability connect requiringIntendedUse ::> gpcaIntendedUse to requiredCapability ::> ocFailSafeTherapy;
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
connection : HasScenario connect owningWorkflow ::> wfManageActiveTherapy to pathScenario ::> osNominalTherapy;
|
|
326
|
+
connection : HasScenario connect owningWorkflow ::> wfManageActiveTherapy to pathScenario ::> osLockoutBolus;
|
|
327
|
+
connection : HasScenario connect owningWorkflow ::> wfRespondToTherapyAlarm to pathScenario ::> osOcclusionAlarm;
|
|
328
|
+
connection : HasScenario connect owningWorkflow ::> wfRespondToTherapyAlarm to pathScenario ::> osAirInLine;
|
|
329
|
+
connection : HasScenario connect owningWorkflow ::> wfRespondToTherapyAlarm to pathScenario ::> osEmptyReservoir;
|
|
330
|
+
connection : HasScenario connect owningWorkflow ::> wfRespondToTherapyAlarm to pathScenario ::> osPowerLoss;
|
|
331
|
+
|
|
338
332
|
}
|
|
@@ -15,39 +15,34 @@ package memo_examples_gpca_pump_gpca_physical {
|
|
|
15
15
|
attribute :>> redundancyKind = "hardware watchdog plus independent flow cross-check";
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
in port portSensorHarness : PhysicalPort {
|
|
19
19
|
attribute :>> id = "PP-001";
|
|
20
20
|
attribute :>> name = "SensorHarnessConnector";
|
|
21
21
|
attribute :>> portKind = InterfaceKind::digitalSignal;
|
|
22
22
|
attribute :>> connectorType = "keyed 12-pin locking header";
|
|
23
|
-
attribute :>> direction = DirectionKind::input;
|
|
24
23
|
}
|
|
25
|
-
|
|
24
|
+
out port portMotorDrive : PhysicalPort {
|
|
26
25
|
attribute :>> id = "PP-002";
|
|
27
26
|
attribute :>> name = "MotorDriveConnector";
|
|
28
27
|
attribute :>> portKind = InterfaceKind::digitalSignal;
|
|
29
28
|
attribute :>> connectorType = "keyed 6-pin locking header with enable interlock";
|
|
30
|
-
attribute :>> direction = DirectionKind::output;
|
|
31
29
|
}
|
|
32
|
-
|
|
30
|
+
in port portPatientPendant : PhysicalPort {
|
|
33
31
|
attribute :>> id = "PP-003";
|
|
34
32
|
attribute :>> name = "PatientPendantJack";
|
|
35
33
|
attribute :>> portKind = InterfaceKind::digitalSignal;
|
|
36
34
|
attribute :>> connectorType = "latching 3.5 mm pendant jack";
|
|
37
|
-
attribute :>> direction = DirectionKind::input;
|
|
38
35
|
}
|
|
39
|
-
|
|
36
|
+
inout port portServiceAccess : PhysicalPort {
|
|
40
37
|
attribute :>> id = "PP-004";
|
|
41
38
|
attribute :>> name = "ServiceMaintenancePort";
|
|
42
39
|
attribute :>> portKind = InterfaceKind::api;
|
|
43
40
|
attribute :>> connectorType = "covered UART/USB service connector";
|
|
44
|
-
attribute :>> direction = DirectionKind::inputOutput;
|
|
45
41
|
}
|
|
46
|
-
|
|
42
|
+
in port portMainsInlet : PhysicalPort {
|
|
47
43
|
attribute :>> id = "PP-005";
|
|
48
44
|
attribute :>> name = "MainsPowerInlet";
|
|
49
45
|
attribute :>> portKind = InterfaceKind::power;
|
|
50
46
|
attribute :>> connectorType = "IEC 60320 C8 inlet";
|
|
51
|
-
attribute :>> direction = DirectionKind::input;
|
|
52
47
|
}
|
|
53
48
|
}
|