@memoarchitect/ontology 0.4.4
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/LICENSE +19 -0
- package/README.md +70 -0
- package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +210 -0
- package/examples/gpca-pump/memo.config.yaml +9 -0
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +11 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +25 -0
- package/examples/gpca-pump/methodology/gpca_scope.sysml +25 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +231 -0
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +272 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +81 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +363 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +205 -0
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +113 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +172 -0
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +173 -0
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +1062 -0
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +209 -0
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +53 -0
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1505 -0
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +744 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +144 -0
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +696 -0
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +285 -0
- package/examples/gpca-pump/model/samples/README.md +24 -0
- package/examples/gpca-pump/model/samples/action_flow_view.sysml +72 -0
- package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +9 -0
- package/examples/gpca-pump/model/samples/functional_flow_view.sysml +153 -0
- package/examples/gpca-pump/model/samples/interconnection_view.sysml +93 -0
- package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +99 -0
- package/examples/gpca-pump/model/samples/operational_behaviour_view.sysml +145 -0
- package/examples/gpca-pump/model/samples/tree_view.sysml +56 -0
- package/examples/gpca-pump/model/views/behavior_action_flow_view.sysml +41 -0
- package/examples/gpca-pump/model/views/context_system_context_view.sysml +43 -0
- package/examples/gpca-pump/model/views/cybersecurity_cybersecurity_view.sysml +44 -0
- package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_dhf_index_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_rmf_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_sdd_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_threat_model_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_usability_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_vv_view.sysml +29 -0
- package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +42 -0
- package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +41 -0
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +43 -0
- package/examples/gpca-pump/model/views/logical_logical_architecture_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +44 -0
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +41 -0
- package/examples/gpca-pump/model/views/operational_use_case_view.sysml +43 -0
- package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +41 -0
- package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_fmea_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +44 -0
- package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +43 -0
- package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +42 -0
- package/memo.manifest.yaml +13 -0
- package/methodologies/default/memo.package.yaml +9 -0
- package/methodologies/gpca/memo.package.yaml +9 -0
- package/ontology/memo.package.yaml +8 -0
- package/ontology/memo.rendering.yaml +47 -0
- package/package.json +65 -0
- package/profile/archetypes.yaml +36 -0
- package/profile/memo.package.yaml +9 -0
- package/profile/templates/connected-device/starter.sysml +8 -0
- package/profile/templates/infusion-pump/starter.sysml +8 -0
- package/profile/templates/monitoring-device/starter.sysml +8 -0
- package/profile/templates/samd/starter.sysml +8 -0
- package/src/architecture/analysis/memo_fmea.sysml +91 -0
- package/src/architecture/assurance/memo_assurance.sysml +29 -0
- package/src/architecture/behavior/memo_behavior.sysml +65 -0
- package/src/architecture/constraints/memo_constraints.sysml +14 -0
- package/src/architecture/context/memo_context.sysml +58 -0
- package/src/architecture/cybersecurity/memo_cybersecurity.sysml +99 -0
- package/src/architecture/decisions/memo_decisions.sysml +12 -0
- package/src/architecture/functions/memo_functions.sysml +30 -0
- package/src/architecture/hardware_structure/memo_hardware_structure.sysml +15 -0
- package/src/architecture/interfaces/memo_interfaces.sysml +103 -0
- package/src/architecture/logical_structure/memo_logical_structure.sysml +10 -0
- package/src/architecture/operational/memo_operational.sysml +51 -0
- package/src/architecture/physical/memo_physical_architecture.sysml +19 -0
- package/src/architecture/requirements/memo_requirements.sysml +69 -0
- package/src/architecture/risk/memo_arch_risk.sysml +7 -0
- package/src/architecture/risk/memo_risk.sysml +80 -0
- package/src/architecture/software_structure/memo_software_structure.sysml +44 -0
- package/src/architecture/system/memo_system_analysis.sysml +54 -0
- package/src/artifacts/clinical_safety_report.sysml +12 -0
- package/src/artifacts/cybersecurity_assessment_report.sysml +12 -0
- package/src/artifacts/definitions/memo_artifact_definitions.sysml +12 -0
- package/src/artifacts/design_change_log.sysml +12 -0
- package/src/artifacts/design_history_file_index.sysml +12 -0
- package/src/artifacts/design_input_plan.sysml +12 -0
- package/src/artifacts/design_output_plan.sysml +12 -0
- package/src/artifacts/evidence_record.sysml +12 -0
- package/src/artifacts/failure_mode_effects_analysis.sysml +12 -0
- package/src/artifacts/hazard_analysis_report.sysml +12 -0
- package/src/artifacts/labeling_specification.sysml +12 -0
- package/src/artifacts/requirements_specification.sysml +12 -0
- package/src/artifacts/requirements_traceability_matrix.sysml +12 -0
- package/src/artifacts/risk_management_plan.sysml +12 -0
- package/src/artifacts/software_design_description.sysml +12 -0
- package/src/artifacts/software_development_plan.sysml +12 -0
- package/src/artifacts/soup_list.sysml +12 -0
- package/src/artifacts/system_architecture_description.sysml +12 -0
- package/src/artifacts/test_protocol.sysml +12 -0
- package/src/artifacts/test_report.sysml +12 -0
- package/src/artifacts/threat_model_report.sysml +12 -0
- package/src/artifacts/usability_engineering_report.sysml +12 -0
- package/src/compliance/artifacts/memo_artifacts.sysml +13 -0
- package/src/compliance/change/memo_change.sysml +17 -0
- package/src/compliance/dhf-templates/21cfr820/change-record.md +45 -0
- package/src/compliance/dhf-templates/21cfr820/design-input.md +67 -0
- package/src/compliance/dhf-templates/21cfr820/design-output.md +80 -0
- package/src/compliance/dhf-templates/21cfr820/design-review.md +51 -0
- package/src/compliance/dhf-templates/21cfr820/design-validation.md +64 -0
- package/src/compliance/dhf-templates/21cfr820/design-verification.md +57 -0
- package/src/compliance/dhf-templates/21cfr820/dhf-index.md +111 -0
- package/src/compliance/dhf-templates/21cfr820/transfer-plan.md +50 -0
- package/src/compliance/dhf-templates/21cfr820/user-needs.md +81 -0
- package/src/compliance/dhf-templates/21cfr820/vv-plan.md +89 -0
- package/src/compliance/dhf-templates/21cfr820/vv-report.md +85 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/incident-response.md +66 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/postmarket-surveillance.md +63 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/security-arch.md +83 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/threat-model.md +100 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/vuln-assessment.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/change-control.md +40 -0
- package/src/compliance/dhf-templates/iec-62304/detailed-design.md +69 -0
- package/src/compliance/dhf-templates/iec-62304/integration-test.md +68 -0
- package/src/compliance/dhf-templates/iec-62304/sad.md +115 -0
- package/src/compliance/dhf-templates/iec-62304/sbom.md +67 -0
- package/src/compliance/dhf-templates/iec-62304/sdp.md +108 -0
- package/src/compliance/dhf-templates/iec-62304/soup.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/srs.md +138 -0
- package/src/compliance/dhf-templates/iec-62304/sw-traceability.md +111 -0
- package/src/compliance/dhf-templates/iec-62304/system-test.md +67 -0
- package/src/compliance/dhf-templates/iec-62366/formative-eval.md +47 -0
- package/src/compliance/dhf-templates/iec-62366/summative-eval.md +69 -0
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +57 -0
- package/src/compliance/dhf-templates/iec-62366/ue-plan.md +81 -0
- package/src/compliance/dhf-templates/iec-62366/ui-spec.md +61 -0
- package/src/compliance/dhf-templates/iec-62366/urra.md +74 -0
- package/src/compliance/dhf-templates/iec-62366/use-spec.md +61 -0
- package/src/compliance/dhf-templates/iso-14971/fmea.md +93 -0
- package/src/compliance/dhf-templates/iso-14971/fta.md +70 -0
- package/src/compliance/dhf-templates/iso-14971/har.md +165 -0
- package/src/compliance/dhf-templates/iso-14971/risk-benefit.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/rmp.md +169 -0
- package/src/compliance/dhf-templates/iso-14971/rmr.md +101 -0
- package/src/compliance/dhf-templates/shared/snippets/approval-block.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/document-control-header.md +15 -0
- package/src/compliance/dhf-templates/shared/snippets/references-section.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/revision-history-table.md +11 -0
- package/src/compliance/document_views/memo_document_views.sysml +7 -0
- package/src/compliance/iso14971/risk_management_file.sysml +16 -0
- package/src/compliance/postmarket/memo_postmarket.sysml +16 -0
- package/src/core/common/memo_common.sysml +50 -0
- package/src/core/consistency_rules/consistency_rules.sysml +41 -0
- package/src/core/dimensions/dimensions.sysml +37 -0
- package/src/core/enumerations/memo_enumerations.sysml +562 -0
- package/src/core/methodology_scope/methodology_scope.sysml +46 -0
- package/src/core/relationships/memo_relationships.sysml +230 -0
- package/src/core/semantics/semantics.sysml +20 -0
- package/src/core/stdlib/collections.sysml +6 -0
- package/src/core/stdlib/functions.sysml +6 -0
- package/src/core/stdlib/scalars.sysml +6 -0
- package/src/core/stdlib/time.sysml +6 -0
- package/src/medical_device_library.sysml +100 -0
- package/src/memo_namespaces.sysml +668 -0
- package/src/methodology/LICENSES/MIT.txt +19 -0
- package/src/methodology/memo_archetypes.sysml +93 -0
- package/src/methodology/memo_core.sysml +53 -0
- package/src/methodology/memo_gates.sysml +11 -0
- package/src/methodology/memo_patterns.sysml +12 -0
- package/src/methodology/memo_profiles.sysml +218 -0
- package/src/methodology/memo_rules.sysml +15 -0
- package/src/methodology/memo_viewpoints.sysml +5 -0
- package/src/methodology/memo_workflow.sysml +14 -0
- package/src/rules/closure/closure_rules.sysml +180 -0
- package/src/rules/coverage/coverage_rules.sysml +258 -0
- package/src/rules/crosslayer/cross_layer_rules.sysml +38 -0
- package/src/rules/lifecycle/lifecycle_rules.sysml +41 -0
- package/src/rules/quantitative/quantitative_rules.sysml +34 -0
- package/src/viewpoints/clinical/clinical_evidence_view.sysml +13 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +25 -0
- package/src/viewpoints/context/context_viewpoint.sysml +25 -0
- package/src/viewpoints/context/system_context_view.sysml +29 -0
- package/src/viewpoints/cybersecurity/cybersecurity_assessment_view.sysml +13 -0
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +27 -0
- package/src/viewpoints/cybersecurity/threat_model_view.sysml +13 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +82 -0
- package/src/viewpoints/functional/function_allocation_view.sysml +29 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +25 -0
- package/src/viewpoints/functional/system_functional_tree_view.sysml +29 -0
- package/src/viewpoints/logical/logical_architecture_view.sysml +29 -0
- package/src/viewpoints/logical/logical_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/operational_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/use_case_view.sysml +29 -0
- package/src/viewpoints/physical/network_topology_view.sysml +29 -0
- package/src/viewpoints/physical/physical_bom_view.sysml +29 -0
- package/src/viewpoints/physical/physical_viewpoint.sysml +25 -0
- package/src/viewpoints/requirements/requirements_traceability_view.sysml +29 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +25 -0
- package/src/viewpoints/risk/risk_chain_view.sysml +30 -0
- package/src/viewpoints/risk/risk_viewpoint.sysml +25 -0
- package/src/viewpoints/software/software_architecture_view.sysml +29 -0
- package/src/viewpoints/software/software_viewpoint.sysml +25 -0
- package/src/viewpoints/usability/usability_engineering_view.sysml +13 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +25 -0
- package/src/viewpoints/verification/verification_coverage_view.sysml +29 -0
- package/src/viewpoints/verification/verification_viewpoint.sysml +25 -0
- package/template/memo.package.yaml +5 -0
- package/template/src/catalog/starter.sysml +12 -0
- package/template/src/documents/.gitkeep +1 -0
- package/template/src/views/.gitkeep +1 -0
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
package memo_examples_gpca_pump_model_catalog_gpca_system {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_architecture_system::*;
|
|
5
|
+
private import memo_core_enumerations::*;
|
|
6
|
+
|
|
7
|
+
part gpcaMission : Mission {
|
|
8
|
+
attribute :>> id = "MSN-001";
|
|
9
|
+
attribute :>> name = "GPCA_Mission";
|
|
10
|
+
attribute :>> title = "Safe Patient-Controlled Analgesia";
|
|
11
|
+
attribute :>> shortDescription = "Deliver prescribed analgesia with patient-controlled boluses, never exceeding safe dose limits.";
|
|
12
|
+
attribute :>> missionKind = "therapeutic device mission";
|
|
13
|
+
attribute :>> successCriteria = "Drug delivered per prescription; no overdose or undetected under-infusion; every hazardous condition annunciated within its alarm latency budget.";
|
|
14
|
+
attribute :>> operationalContext = "Acute-care hospital ward, fixed (non-ambulatory) location (UC-001).";
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
// ── System capabilities ─────────────────────────────────────
|
|
18
|
+
part scBasalDelivery : SystemCapability {
|
|
19
|
+
attribute :>> id = "SC-001";
|
|
20
|
+
attribute :>> name = "BasalRateDelivery";
|
|
21
|
+
attribute :>> capabilityKind = "therapy";
|
|
22
|
+
attribute :>> primaryFunction = "FUNC-005: ManageInfusion";
|
|
23
|
+
attribute :>> safetyRelevant = true;
|
|
24
|
+
}
|
|
25
|
+
part scPatientBolus : SystemCapability {
|
|
26
|
+
attribute :>> id = "SC-002";
|
|
27
|
+
attribute :>> name = "PatientBolusDelivery";
|
|
28
|
+
attribute :>> capabilityKind = "therapy";
|
|
29
|
+
attribute :>> primaryFunction = "FUNC-006: EnforceDoseLimits";
|
|
30
|
+
attribute :>> safetyRelevant = true;
|
|
31
|
+
}
|
|
32
|
+
part scAlarmAnnunciation : SystemCapability {
|
|
33
|
+
attribute :>> id = "SC-003";
|
|
34
|
+
attribute :>> name = "AlarmDetectionAndAnnunciation";
|
|
35
|
+
attribute :>> capabilityKind = "safety";
|
|
36
|
+
attribute :>> primaryFunction = "FUNC-003: MonitorExceptionalConditions";
|
|
37
|
+
attribute :>> safetyRelevant = true;
|
|
38
|
+
}
|
|
39
|
+
part scPrescriptionMgmt : SystemCapability {
|
|
40
|
+
attribute :>> id = "SC-004";
|
|
41
|
+
attribute :>> name = "PrescriptionProgrammingAndChecking";
|
|
42
|
+
attribute :>> capabilityKind = "configuration";
|
|
43
|
+
attribute :>> primaryFunction = "FUNC-002: ValidatePrescription";
|
|
44
|
+
attribute :>> safetyRelevant = true;
|
|
45
|
+
}
|
|
46
|
+
part scEventLogging : SystemCapability {
|
|
47
|
+
attribute :>> id = "SC-005";
|
|
48
|
+
attribute :>> name = "TherapyEventLogging";
|
|
49
|
+
attribute :>> capabilityKind = "record-keeping";
|
|
50
|
+
attribute :>> primaryFunction = "FUNC-008: LogTherapyEvents";
|
|
51
|
+
attribute :>> safetyRelevant = false;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// ── Functional chains ───────────────────────────────────────
|
|
55
|
+
part fcPatientBolus : FunctionalChain {
|
|
56
|
+
attribute :>> id = "FC-001";
|
|
57
|
+
attribute :>> name = "PatientBolusChain";
|
|
58
|
+
attribute :>> chainKind = FunctionalChainKind::nominal;
|
|
59
|
+
attribute :>> startFunction = "FUNC-001: AcquireSensorData";
|
|
60
|
+
attribute :>> endFunction = "FUNC-007: CommandPumpMotor";
|
|
61
|
+
attribute :>> endToEndLatencyBudgetMs = "100";
|
|
62
|
+
attribute :>> safetyRelevant = true;
|
|
63
|
+
attribute :>> securityRelevant = false;
|
|
64
|
+
attribute :>> description = "Bolus button press through lockout/max-dose check to pump actuation and logging.";
|
|
65
|
+
}
|
|
66
|
+
part fcsBolusSense : FunctionalChainStep {
|
|
67
|
+
attribute :>> id = "FCS-001"; attribute :>> name = "SenseBolusRequest";
|
|
68
|
+
attribute :>> stepOrder = "1"; attribute :>> allocatedFunction = "FUNC-001"; attribute :>> exchangeItem = "DD-002: BolusRequestSignal";
|
|
69
|
+
}
|
|
70
|
+
part fcsBolusValidate : FunctionalChainStep {
|
|
71
|
+
attribute :>> id = "FCS-002"; attribute :>> name = "CheckLockoutAndMaxDose";
|
|
72
|
+
attribute :>> stepOrder = "2"; attribute :>> allocatedFunction = "FUNC-006"; attribute :>> exchangeItem = "DD-001: PrescriptionRecord";
|
|
73
|
+
}
|
|
74
|
+
part fcsBolusCommand : FunctionalChainStep {
|
|
75
|
+
attribute :>> id = "FCS-003"; attribute :>> name = "CommandBolusFlow";
|
|
76
|
+
attribute :>> stepOrder = "3"; attribute :>> allocatedFunction = "FUNC-005"; attribute :>> exchangeItem = "CD-001: FlowCommand";
|
|
77
|
+
}
|
|
78
|
+
part fcsBolusActuate : FunctionalChainStep {
|
|
79
|
+
attribute :>> id = "FCS-004"; attribute :>> name = "ActuatePumpMotor";
|
|
80
|
+
attribute :>> stepOrder = "4"; attribute :>> allocatedFunction = "FUNC-007"; attribute :>> exchangeItem = "CD-001: FlowCommand";
|
|
81
|
+
}
|
|
82
|
+
part fcsBolusLog : FunctionalChainStep {
|
|
83
|
+
attribute :>> id = "FCS-005"; attribute :>> name = "LogBolusOutcome";
|
|
84
|
+
attribute :>> stepOrder = "5"; attribute :>> allocatedFunction = "FUNC-008"; attribute :>> exchangeItem = "DD-004: TherapyEventRecord";
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
part fcAlarmStop : FunctionalChain {
|
|
88
|
+
attribute :>> id = "FC-002";
|
|
89
|
+
attribute :>> name = "AlarmDetectionToSafeStateChain";
|
|
90
|
+
attribute :>> chainKind = FunctionalChainKind::alarm;
|
|
91
|
+
attribute :>> startFunction = "FUNC-001: AcquireSensorData";
|
|
92
|
+
attribute :>> endFunction = "FUNC-004: AnnunciateAlarms";
|
|
93
|
+
attribute :>> endToEndLatencyBudgetMs = "20";
|
|
94
|
+
attribute :>> safetyRelevant = true;
|
|
95
|
+
attribute :>> securityRelevant = false;
|
|
96
|
+
attribute :>> description = "Sensor condition through alarm evaluation to same-step transition to PAUSED (KVO flow, REQ 43) and annunciation.";
|
|
97
|
+
}
|
|
98
|
+
part fcsAlarmSense : FunctionalChainStep {
|
|
99
|
+
attribute :>> id = "FCS-006"; attribute :>> name = "SenseAlarmCondition";
|
|
100
|
+
attribute :>> stepOrder = "1"; attribute :>> allocatedFunction = "FUNC-001"; attribute :>> exchangeItem = "DD-003: SensorStatusVector";
|
|
101
|
+
}
|
|
102
|
+
part fcsAlarmEvaluate : FunctionalChainStep {
|
|
103
|
+
attribute :>> id = "FCS-007"; attribute :>> name = "EvaluateAlarmCondition";
|
|
104
|
+
attribute :>> stepOrder = "2"; attribute :>> allocatedFunction = "FUNC-003"; attribute :>> exchangeItem = "DD-003: SensorStatusVector";
|
|
105
|
+
}
|
|
106
|
+
part fcsAlarmStopInfusion : FunctionalChainStep {
|
|
107
|
+
attribute :>> id = "FCS-008"; attribute :>> name = "LimitFlowToKvoSameStep";
|
|
108
|
+
attribute :>> stepOrder = "3"; attribute :>> allocatedFunction = "FUNC-005"; attribute :>> exchangeItem = "CD-002: AlarmSignal";
|
|
109
|
+
}
|
|
110
|
+
part fcsAlarmAnnunciate : FunctionalChainStep {
|
|
111
|
+
attribute :>> id = "FCS-009"; attribute :>> name = "AnnunciateAudibleVisual";
|
|
112
|
+
attribute :>> stepOrder = "4"; attribute :>> allocatedFunction = "FUNC-004"; attribute :>> exchangeItem = "CD-002: AlarmSignal";
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
part fcStartup : FunctionalChain {
|
|
116
|
+
attribute :>> id = "FC-003";
|
|
117
|
+
attribute :>> name = "PowerOnSelfTestChain";
|
|
118
|
+
attribute :>> chainKind = FunctionalChainKind::startup;
|
|
119
|
+
attribute :>> startFunction = "FUNC-009: ManagePower";
|
|
120
|
+
attribute :>> endFunction = "FUNC-010: PresentStatus";
|
|
121
|
+
attribute :>> endToEndLatencyBudgetMs = "5000";
|
|
122
|
+
attribute :>> safetyRelevant = true;
|
|
123
|
+
attribute :>> securityRelevant = false;
|
|
124
|
+
attribute :>> description = "Power-on through CPU/memory/sensor self test to IDLE with status display; failed POST blocks therapy.";
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// ── System scenarios ────────────────────────────────────────
|
|
128
|
+
part ssBolusDuringBasal : SystemScenario {
|
|
129
|
+
attribute :>> id = "SS-001";
|
|
130
|
+
attribute :>> name = "PatientBolusDuringBasal";
|
|
131
|
+
attribute :>> scenarioKind = ScenarioKind::nominal;
|
|
132
|
+
attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
|
|
133
|
+
attribute :>> precondition = "BASAL mode active; no REQ 25 ignore condition holds";
|
|
134
|
+
attribute :>> postcondition = "PATIENT_BOLUS mode entered, bolus delivered, return to BASAL";
|
|
135
|
+
}
|
|
136
|
+
part ssAlarmPause : SystemScenario {
|
|
137
|
+
attribute :>> id = "SS-002";
|
|
138
|
+
attribute :>> name = "InhibitingNotificationPausesInfusion";
|
|
139
|
+
attribute :>> scenarioKind = ScenarioKind::alarm;
|
|
140
|
+
attribute :>> sequenceDiagramRef = "VIEW-BHV-002";
|
|
141
|
+
attribute :>> precondition = "any ACTIVE therapy mode; infusion-inhibiting notification detected (REQ 59)";
|
|
142
|
+
attribute :>> postcondition = "PAUSED mode entered in same execution step at FlowRate_kvo_hd keep-vein-open flow; notification annunciated per REQ 59";
|
|
143
|
+
}
|
|
144
|
+
}
|