@memoarchitect/ontology 0.7.0 → 0.8.22
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/model/catalog/connected_patient_monitor.sysml +1 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +7 -5
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- 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 +9 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +9 -5
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +175 -259
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +82 -58
- 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 +15 -2
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +274 -331
- 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 +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_device_interconnect_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +5 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/risk_fmea_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +1 -1
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/software_software_architecture_view.sysml +2 -2
- package/examples/gpca-pump/model/catalog/viewpoints/usability/views/document_usability_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +4 -2
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +1 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +3 -2
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +6 -2
- 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/model/catalog/reusable_instrument.sysml +7 -5
- package/examples/ros-mobile-robot/README.md +40 -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 +13 -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 +11 -5
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +56 -60
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +1 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +10 -15
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +7 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +42 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +56 -66
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +26 -55
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +3 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/standard_activity_view.sysml +0 -18
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +51 -82
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +21 -31
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +12 -8
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +28 -21
- 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 +1 -1
- 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 +49 -21
- package/src/architecture/functional/constraints/memo_constraints.sysml +3 -2
- package/src/architecture/functional/functions/memo_functions.sysml +91 -34
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +46 -22
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +37 -10
- package/src/architecture/implementation/ui/memo_ui.sysml +78 -38
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +63 -11
- package/src/architecture/logical/structure/memo_logical_structure.sysml +21 -20
- package/src/architecture/operational/activities/memo_activities.sysml +10 -3
- package/src/architecture/operational/context/actors/memo_actors.sysml +5 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +13 -30
- package/src/architecture/operational/context/use_context/memo_use_context.sysml +42 -16
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +57 -23
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +35 -26
- package/src/architecture/operational/workflows/memo_workflows.sysml +29 -10
- package/src/architecture/realization/deployment/memo_deployment.sysml +111 -16
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +27 -2
- 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 +39 -20
- package/src/assurance/human_factors/memo_human_factors.sysml +29 -22
- package/src/assurance/requirements/memo_requirements.sysml +5 -2
- 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 +78 -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 +121 -16
- 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/rules/ontology/ontology_invariants.sysml +213 -1
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +3 -3
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +1 -1
- package/src/viewpoints/context/context_viewpoint.sysml +1 -1
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +1 -1
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +1 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +1 -1
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +1 -1
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +1 -1
- package/src/viewpoints/operational/operational_viewpoint.sysml +1 -1
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +1 -1
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/verification_viewpoint.sysml +1 -1
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +1 -1
- 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 ────────────
|
|
@@ -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,62 +168,43 @@ 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
|
+
|
|
172
|
+
action wsProgram : WorkflowStep { ref :>> performedActivity = oaProgram; }
|
|
173
|
+
action wsStart : WorkflowStep { ref :>> performedActivity = oaStartTherapy; }
|
|
164
174
|
}
|
|
165
175
|
action wfManageActiveTherapy : OperationalWorkflow {
|
|
166
176
|
attribute :>> name = "ManageActiveTherapy";
|
|
167
177
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
168
178
|
attribute :>> entryCondition = "Basal therapy is active.";
|
|
169
179
|
attribute :>> completionCondition = "A bolus is handled or active therapy continues safely.";
|
|
180
|
+
|
|
181
|
+
action wsRequestBolus : WorkflowStep { ref :>> performedActivity = oaRequestBolus; }
|
|
182
|
+
// Refinement targets a nested step by its local name — the shorthand's
|
|
183
|
+
// `to` end does not accept a qualified path — so this is written
|
|
184
|
+
// inside wsRequestBolus's own owning scope rather than at package
|
|
185
|
+
// level.
|
|
186
|
+
#refinement dependency fcsBolusSense to wsRequestBolus;
|
|
187
|
+
#refinement dependency fcsBolusValidate to wsRequestBolus;
|
|
188
|
+
#refinement dependency fcsBolusCommand to wsRequestBolus;
|
|
189
|
+
#refinement dependency fcsBolusActuate to wsRequestBolus;
|
|
190
|
+
#refinement dependency fcsBolusLog to wsRequestBolus;
|
|
170
191
|
}
|
|
171
192
|
action wfRespondToTherapyAlarm : OperationalWorkflow {
|
|
172
193
|
attribute :>> name = "RespondToTherapyAlarm";
|
|
173
194
|
attribute :>> workflowState = WorkflowStateKind::toBe;
|
|
174
195
|
attribute :>> entryCondition = "A therapy alarm or degraded condition is detected.";
|
|
175
196
|
attribute :>> completionCondition = "The pump is safe and the clinician has resolved or escalated the condition.";
|
|
197
|
+
|
|
198
|
+
action wsRespondAlarm : WorkflowStep { ref :>> performedActivity = oaRespondAlarm; }
|
|
199
|
+
#refinement dependency fcsAlarmSense to wsRespondAlarm;
|
|
200
|
+
#refinement dependency fcsAlarmEvaluate to wsRespondAlarm;
|
|
201
|
+
#refinement dependency fcsAlarmStopInfusion to wsRespondAlarm;
|
|
202
|
+
#refinement dependency fcsAlarmAnnunciate to wsRespondAlarm;
|
|
176
203
|
}
|
|
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
204
|
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfPrepareAndStartTherapy to supported ::> ucDeliverPcaTherapy; }
|
|
182
205
|
connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfManageActiveTherapy to supported ::> ucDeliverPcaTherapy; }
|
|
183
206
|
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
207
|
|
|
189
|
-
// ── Scenario-owned operational activities and action flows ──
|
|
190
|
-
action oaCompleteNominalTherapy : OperationalActivity {
|
|
191
|
-
attribute :>> name = "CompleteNominalTherapy";
|
|
192
|
-
action deliverWithinLimits; action recordTherapyEvent;
|
|
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;
|
|
219
|
-
}
|
|
220
208
|
|
|
221
209
|
// ── Operational capabilities ────────────────────────────────
|
|
222
210
|
part ocTitratedAnalgesia : OperationalCapability {
|
|
@@ -235,9 +223,10 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
235
223
|
}
|
|
236
224
|
|
|
237
225
|
// ── Operational scenarios ───────────────────────────────────
|
|
238
|
-
action osNominalTherapy :
|
|
226
|
+
action osNominalTherapy : MemoScenario {
|
|
239
227
|
attribute :>> id = "OS-001";
|
|
240
228
|
attribute :>> name = "NominalTherapySession";
|
|
229
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
241
230
|
attribute :>> variantKind = ScenarioVariantKind::nominal;
|
|
242
231
|
attribute :>> operationalCondition = OperationalConditionKind::normal;
|
|
243
232
|
attribute :>> preCondition = "prescription issued, reservoir loaded";
|
|
@@ -247,10 +236,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
247
236
|
ref :>> parentWorkflow = wfManageActiveTherapy;
|
|
248
237
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
249
238
|
ref :>> activities = oaCompleteNominalTherapy;
|
|
239
|
+
|
|
240
|
+
action oaCompleteNominalTherapy : OperationalActivity {
|
|
241
|
+
attribute :>> name = "CompleteNominalTherapy";
|
|
242
|
+
action deliverWithinLimits; action recordTherapyEvent;
|
|
243
|
+
first start then deliverWithinLimits; first deliverWithinLimits then recordTherapyEvent; first recordTherapyEvent then done;
|
|
244
|
+
}
|
|
250
245
|
}
|
|
251
|
-
action osLockoutBolus :
|
|
246
|
+
action osLockoutBolus : MemoScenario {
|
|
252
247
|
attribute :>> id = "OS-002";
|
|
253
248
|
attribute :>> name = "BolusRequestDuringLockout";
|
|
249
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
254
250
|
attribute :>> variantKind = ScenarioVariantKind::alternate;
|
|
255
251
|
attribute :>> variationPoint = "patient bolus request during the nominal therapy lockout interval";
|
|
256
252
|
attribute :>> operationalCondition = OperationalConditionKind::foreseeableMisuse;
|
|
@@ -262,10 +258,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
262
258
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
263
259
|
ref :>> baseScenario = osNominalTherapy;
|
|
264
260
|
ref :>> activities = oaRejectBolusDuringLockout;
|
|
261
|
+
|
|
262
|
+
action oaRejectBolusDuringLockout : OperationalActivity {
|
|
263
|
+
attribute :>> name = "RejectBolusDuringLockout";
|
|
264
|
+
action checkLockout; action rejectAndLog;
|
|
265
|
+
first start then checkLockout; first checkLockout then rejectAndLog; first rejectAndLog then done;
|
|
266
|
+
}
|
|
265
267
|
}
|
|
266
|
-
action osOcclusionAlarm :
|
|
268
|
+
action osOcclusionAlarm : MemoScenario {
|
|
267
269
|
attribute :>> id = "OS-003";
|
|
268
270
|
attribute :>> name = "OcclusionDetectedDuringInfusion";
|
|
271
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
269
272
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
270
273
|
attribute :>> variationPoint = "occlusion detected while nominal infusion is active";
|
|
271
274
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
@@ -277,10 +280,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
277
280
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
278
281
|
ref :>> baseScenario = osNominalTherapy;
|
|
279
282
|
ref :>> activities = oaRespondToOcclusion;
|
|
283
|
+
|
|
284
|
+
action oaRespondToOcclusion : OperationalActivity {
|
|
285
|
+
attribute :>> name = "RespondToOcclusion";
|
|
286
|
+
action pauseInfusion; action annunciateOcclusion; action resolveAndResume;
|
|
287
|
+
first start then pauseInfusion; first pauseInfusion then annunciateOcclusion; first annunciateOcclusion then resolveAndResume; first resolveAndResume then done;
|
|
288
|
+
}
|
|
280
289
|
}
|
|
281
|
-
action osAirInLine :
|
|
290
|
+
action osAirInLine : MemoScenario {
|
|
282
291
|
attribute :>> id = "OS-004";
|
|
283
292
|
attribute :>> name = "AirInLineDetected";
|
|
293
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
284
294
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
285
295
|
attribute :>> variationPoint = "air-in-line detected while nominal infusion is active";
|
|
286
296
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
@@ -292,10 +302,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
292
302
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
293
303
|
ref :>> baseScenario = osNominalTherapy;
|
|
294
304
|
ref :>> activities = oaRespondToAirInLine;
|
|
305
|
+
|
|
306
|
+
action oaRespondToAirInLine : OperationalActivity {
|
|
307
|
+
attribute :>> name = "RespondToAirInLine";
|
|
308
|
+
action stopOrKvo; action annunciateAir; action reprimeAndRestart;
|
|
309
|
+
first start then stopOrKvo; first stopOrKvo then annunciateAir; first annunciateAir then reprimeAndRestart; first reprimeAndRestart then done;
|
|
310
|
+
}
|
|
295
311
|
}
|
|
296
|
-
action osEmptyReservoir :
|
|
312
|
+
action osEmptyReservoir : MemoScenario {
|
|
297
313
|
attribute :>> id = "OS-005";
|
|
298
314
|
attribute :>> name = "ReservoirEmptyDuringTherapy";
|
|
315
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
299
316
|
attribute :>> variantKind = ScenarioVariantKind::exception;
|
|
300
317
|
attribute :>> variationPoint = "reservoir-empty threshold reached during nominal therapy";
|
|
301
318
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
@@ -307,10 +324,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
307
324
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
308
325
|
ref :>> baseScenario = osNominalTherapy;
|
|
309
326
|
ref :>> activities = oaReplaceEmptyReservoir;
|
|
327
|
+
|
|
328
|
+
action oaReplaceEmptyReservoir : OperationalActivity {
|
|
329
|
+
attribute :>> name = "ReplaceEmptyReservoir";
|
|
330
|
+
action stopAndAnnunciate; action replaceReservoir; action resumeTherapy;
|
|
331
|
+
first start then stopAndAnnunciate; first stopAndAnnunciate then replaceReservoir; first replaceReservoir then resumeTherapy; first resumeTherapy then done;
|
|
332
|
+
}
|
|
310
333
|
}
|
|
311
|
-
action osPowerLoss :
|
|
334
|
+
action osPowerLoss : MemoScenario {
|
|
312
335
|
attribute :>> id = "OS-006";
|
|
313
336
|
attribute :>> name = "MainsPowerLossAndRecovery";
|
|
337
|
+
attribute :>> scenarioKind = ScenarioKind::operative;
|
|
314
338
|
attribute :>> variantKind = ScenarioVariantKind::recovery;
|
|
315
339
|
attribute :>> variationPoint = "mains supply lost during nominal therapy";
|
|
316
340
|
attribute :>> operationalCondition = OperationalConditionKind::degraded;
|
|
@@ -322,17 +346,17 @@ package memo_examples_gpca_pump_gpca_operational {
|
|
|
322
346
|
ref :>> parentUseCase = ucDeliverPcaTherapy;
|
|
323
347
|
ref :>> baseScenario = osNominalTherapy;
|
|
324
348
|
ref :>> activities = oaRecoverAfterPowerLoss;
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
349
|
+
|
|
350
|
+
action oaRecoverAfterPowerLoss : OperationalActivity {
|
|
351
|
+
attribute :>> name = "RecoverAfterPowerLoss";
|
|
352
|
+
action switchToBattery; action restorePrescription; action confirmRestart;
|
|
353
|
+
first start then switchToBattery; first switchToBattery then restorePrescription; first restorePrescription then confirmRestart; first confirmRestart then done;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
#refinement dependency osNominalTherapy to ucDeliverPcaTherapy;
|
|
357
|
+
#refinement dependency osLockoutBolus to ucDeliverPcaTherapy;
|
|
358
|
+
#refinement dependency osOcclusionAlarm to ucDeliverPcaTherapy;
|
|
359
|
+
#refinement dependency osAirInLine to ucDeliverPcaTherapy;
|
|
360
|
+
#refinement dependency osEmptyReservoir to ucDeliverPcaTherapy;
|
|
361
|
+
#refinement dependency osPowerLoss to ucDeliverPcaTherapy;
|
|
338
362
|
}
|
|
@@ -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
|
}
|