@memoarchitect/ontology 0.13.2 → 0.15.1
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 +5 -3
- package/examples/connected-patient-monitor/memo.identity.yaml +34 -0
- package/examples/connected-patient-monitor/memo.package.yaml +3 -1
- package/examples/connected-patient-monitor/model/catalog/connected_patient_monitor.sysml +17 -12
- package/examples/connected-patient-monitor/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/embedded-infusion-pump/memo.package.yaml +3 -1
- package/examples/embedded-infusion-pump/model/catalog/embedded_infusion_pump.sysml +6 -6
- package/examples/embedded-infusion-pump/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/functional-logical-physical/memo.identity.yaml +28 -0
- package/examples/functional-logical-physical/memo.package.yaml +3 -1
- package/examples/functional-logical-physical/model/catalog/functional_logical_physical.sysml +5 -5
- package/examples/functional-logical-physical/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/gpca-pump/analysis/Samples/01-model-overview.ipynb +40 -139
- package/examples/gpca-pump/analysis/Samples/02-architecture-hotspots.ipynb +38 -290
- package/examples/gpca-pump/analysis/Samples/03-model-quality.ipynb +47 -217
- package/examples/gpca-pump/analysis/Samples/04-change-impact-explorer.ipynb +50 -191
- package/examples/gpca-pump/analysis/Samples/05-model-charts.ipynb +42 -181
- package/examples/gpca-pump/analysis/Samples/06-ownership-graph.ipynb +40 -164
- package/examples/gpca-pump/analysis/Samples/07-model-inventory-table.ipynb +51 -172
- package/examples/gpca-pump/analysis/Samples/README.md +15 -9
- package/examples/gpca-pump/analysis/memo_model.py +243 -0
- package/examples/gpca-pump/memo.identity.yaml +521 -26
- package/examples/gpca-pump/memo.package.yaml +3 -1
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +56 -47
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +51 -78
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +359 -357
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +9 -9
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +56 -69
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +44 -59
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +23 -35
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +33 -40
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +62 -63
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +362 -483
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +45 -70
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +6 -12
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +173 -169
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +139 -225
- package/examples/gpca-pump/model/catalog/gpca_standards.sysml +43 -47
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +68 -65
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +147 -116
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +65 -90
- package/examples/gpca-pump/model/catalog/viewpoints/context/views/context_system_context_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/cybersecurity_cybersecurity_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_cyber_assessment_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/cybersecurity/views/document_threat_model_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_allocation_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/functional/views/functional_function_browser_view.sysml +7 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/behavior_action_flow_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/document_architecture_description_view.sysml +4 -6
- 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 +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_mode_state_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/logical/views/logical_system_decomposition_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_scenario_sequence_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/operational/views/operational_use_case_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/physical/views/physical_physical_bom_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/document_dhf_index_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/requirements/views/requirements_requirements_trace_view.sysml +2 -4
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_hazard_analysis_view.sysml +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/risk/views/document_rmf_view.sysml +4 -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 +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/software/views/document_sdd_view.sysml +4 -6
- 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 +4 -6
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/document_vv_view.sysml +3 -5
- package/examples/gpca-pump/model/catalog/viewpoints/verification/views/verification_verification_coverage_view.sysml +2 -4
- package/examples/gpca-pump/model/{catalog → methodology}/project.sysml +8 -6
- package/examples/ivd-laboratory-system/memo.package.yaml +3 -1
- package/examples/ivd-laboratory-system/model/catalog/ivd_laboratory_system.sysml +12 -9
- package/examples/ivd-laboratory-system/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/manual-surgical-instrument/memo.package.yaml +3 -1
- package/examples/manual-surgical-instrument/model/catalog/manual_surgical_instrument.sysml +2 -6
- package/examples/manual-surgical-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/multidimensional-layers/memo.package.yaml +3 -1
- package/examples/multidimensional-layers/model/catalog/multidimensional_layers.sysml +2 -4
- package/examples/multidimensional-layers/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/nested-architecture-dsm/memo.identity.yaml +93 -0
- package/examples/nested-architecture-dsm/memo.package.yaml +3 -1
- package/examples/nested-architecture-dsm/model/catalog/architecture/functional/functions.sysml +30 -30
- package/examples/nested-architecture-dsm/model/catalog/architecture/logical/structure.sysml +28 -28
- package/examples/nested-architecture-dsm/model/catalog/architecture/operational/context.sysml +2 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/needs.sysml +4 -4
- package/examples/nested-architecture-dsm/model/catalog/assurance/requirements/requirements.sysml +7 -7
- package/examples/nested-architecture-dsm/model/catalog/assurance/verification_validation/verification_validation.sysml +8 -8
- package/examples/nested-architecture-dsm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/reusable-instrument/memo.package.yaml +3 -1
- package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +7 -7
- package/examples/reusable-instrument/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/robot-cell-family/README.md +34 -0
- package/examples/robot-cell-family/memo.identity.yaml +142 -0
- package/examples/robot-cell-family/memo.package.yaml +7 -0
- package/examples/robot-cell-family/model/methodology/project.sysml +30 -0
- package/examples/robot-cell-family/model/shared/shared.sysml +53 -0
- package/examples/robot-cell-family/model/sos/chains.sysml +36 -0
- package/examples/robot-cell-family/model/sos/icds.sysml +29 -0
- package/examples/robot-cell-family/model/sos/sos.sysml +31 -0
- package/examples/robot-cell-family/model/sos/use_cases.sysml +25 -0
- package/examples/robot-cell-family/model/systems/manipulation/manipulation_system.sysml +35 -0
- package/examples/robot-cell-family/model/systems/navigation/navigation_system.sysml +46 -0
- package/examples/robot-cell-family/model/systems/perception/perception_system.sysml +37 -0
- package/examples/robot-platform/memo.package.yaml +3 -0
- package/examples/robot-platform/model/platform.sysml +15 -0
- package/examples/ros-mobile-robot/README.md +5 -4
- package/examples/ros-mobile-robot/memo.identity.yaml +94 -0
- package/examples/ros-mobile-robot/memo.package.yaml +3 -1
- package/examples/ros-mobile-robot/model/catalog/ros_mobile_robot.sysml +26 -29
- package/examples/ros-mobile-robot/model/{catalog → methodology}/project.sysml +8 -14
- package/examples/software-only-medical-device/memo.package.yaml +3 -1
- package/examples/software-only-medical-device/model/catalog/software_only_medical_device.sysml +9 -10
- package/examples/software-only-medical-device/model/{catalog → methodology}/project.sysml +8 -9
- package/examples/surgical-closure-workflow/memo.package.yaml +3 -1
- package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +23 -26
- package/examples/surgical-closure-workflow/model/{catalog → methodology}/project.sysml +7 -5
- package/examples/surgical-robot/memo.package.yaml +3 -1
- package/examples/surgical-robot/model/catalog/surgical_robot.sysml +14 -12
- package/examples/surgical-robot/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/sysml-diagram-samples/README.md +1 -0
- package/examples/sysml-diagram-samples/memo.identity.yaml +459 -0
- package/examples/sysml-diagram-samples/memo.package.yaml +3 -1
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/viewpoint.sysml +10 -20
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/action_flow_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/browser_view.sysml +10 -13
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.sysml +11 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/diagram_samples.sysml +63 -8
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/drill_down_view.sysml +88 -0
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/functional_flow_view.sysml +25 -25
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/grid_view.sysml +6 -6
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.sysml +15 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.sysml +21 -21
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/package_view.sysml +7 -7
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/requirements_view.sysml +5 -5
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/sequence_view.sysml +14 -14
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/state_transition_view.sysml +16 -17
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/tree_view.sysml +9 -9
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/use_case_view.sysml +7 -14
- package/examples/sysml-diagram-samples/model/{catalog → methodology}/project.sysml +5 -5
- package/examples/sysml-diagram-samples/model/sysml_v2_activity_example.sysml +1 -1
- package/examples/temperature-alarm/memo.identity.yaml +6 -0
- package/examples/temperature-alarm/memo.package.yaml +3 -1
- package/examples/temperature-alarm/model/catalog/temperature_alarm.sysml +43 -21
- package/examples/temperature-alarm/model/{catalog → methodology}/project.sysml +4 -5
- package/examples/ui-screen-regions/memo.identity.yaml +33 -0
- package/examples/ui-screen-regions/memo.package.yaml +3 -1
- package/examples/ui-screen-regions/model/catalog/architecture/functional/functions.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/architecture/implementation/ui.sysml +18 -18
- package/examples/ui-screen-regions/model/catalog/artifacts/assets/catalog.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/comments.sysml +3 -3
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/notes.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/artifacts/reviews/rationales.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/human_factors/human_factors.sysml +10 -10
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/needs.sysml +1 -1
- package/examples/ui-screen-regions/model/catalog/assurance/requirements/requirements.sysml +12 -12
- package/examples/ui-screen-regions/model/catalog/assurance/safety_risk/risk.sysml +15 -15
- package/examples/ui-screen-regions/model/catalog/assurance/verification_validation/verification_validation.sysml +6 -6
- package/examples/ui-screen-regions/model/catalog/viewpoints/functional/views/ui_functional_tree.sysml +1 -2
- 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 → methodology}/project.sysml +4 -5
- package/extensions/README.md +65 -16
- package/extensions/aadl/memo.package.yaml +1 -1
- package/extensions/aadl/src/aadl_extension.sysml +5 -2
- package/extensions/aadl/src/correspondence/memo_aadl_correspondence.sysml +29 -50
- package/extensions/clinical/memo.package.yaml +1 -1
- package/extensions/clinical/src/clinical_extension.sysml +2 -0
- package/extensions/cloud/memo.package.yaml +1 -1
- package/extensions/container/memo.package.yaml +1 -1
- package/extensions/messaging/memo.package.yaml +1 -1
- package/extensions/messaging/src/messaging_extension.sysml +2 -2
- package/extensions/ros/memo.package.yaml +1 -1
- package/extensions/ros/src/ros_extension.sysml +25 -24
- package/extensions/template/memo.package.yaml +1 -1
- package/extensions/template/model/extension.sysml +25 -0
- package/memo.manifest.yaml +1 -7
- 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 +6 -4
- package/profile/memo.package.yaml +1 -1
- package/src/architecture/decisions/memo_decisions.sysml +9 -2
- package/src/architecture/functional/behavior/memo_behavior.sysml +27 -7
- package/src/architecture/functional/functions/memo_functions.sysml +45 -31
- package/src/architecture/functional/memo_architecture_functional.sysml +14 -0
- package/src/architecture/implementation/memo_architecture_implementation.sysml +21 -0
- package/src/architecture/implementation/software/runtime/memo_software_runtime.sysml +7 -0
- package/src/architecture/implementation/software/structure/memo_software_structure.sysml +58 -17
- package/src/architecture/implementation/ui/memo_ui.sysml +1 -1
- package/src/architecture/logical/interfaces/memo_interfaces.sysml +67 -58
- package/src/architecture/logical/memo_architecture_logical.sysml +13 -0
- package/src/architecture/logical/structure/memo_logical_structure.sysml +27 -8
- package/src/architecture/operational/context/stakeholders/memo_stakeholders.sysml +4 -1
- package/src/architecture/operational/memo_architecture_operational.sysml +19 -0
- package/src/architecture/operational/scenarios/memo_scenarios.sysml +9 -8
- package/src/architecture/operational/structure/memo_operational.sysml +5 -2
- package/src/architecture/operational/use_cases/memo_use_cases.sysml +16 -8
- package/src/architecture/realization/deployment/memo_deployment.sysml +30 -10
- package/src/architecture/realization/memo_architecture_realization.sysml +13 -0
- package/src/architecture/realization/physical/memo_physical_architecture.sysml +61 -0
- package/src/architecture/variability/memo_variability.sysml +87 -0
- package/src/artifacts/configuration_management/memo_configuration_management.sysml +95 -3
- package/src/artifacts/core/memo_controlled_artifacts.sysml +4 -2
- package/src/artifacts/standards/cfr_21_820.sysml +12 -24
- package/src/artifacts/standards/fda_cybersecurity_2023.sysml +13 -20
- package/src/artifacts/standards/iec_60601_1.sysml +16 -32
- package/src/artifacts/standards/iec_60601_1_2.sysml +5 -10
- package/src/artifacts/standards/iec_60812.sysml +4 -8
- package/src/artifacts/standards/iec_62304.sysml +607 -47
- package/src/artifacts/standards/iec_62366_1.sysml +12 -24
- package/src/artifacts/standards/iec_81001_5_1.sysml +8 -16
- package/src/artifacts/standards/iso_13485.sysml +12 -24
- package/src/artifacts/standards/iso_14971.sysml +118 -20
- package/src/artifacts/standards/iso_iec_ieee_42010.sysml +3 -6
- package/src/artifacts/standards/memo_artifacts_standards_traceability.sysml +14 -4
- package/src/artifacts/templates/dhf/fda-cybersecurity/postmarket-surveillance.md +1 -2
- package/src/artifacts/templates/dhf/fda-cybersecurity/vuln-assessment.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sad.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sbom.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/sdp.md +1 -2
- package/src/artifacts/templates/dhf/iec-62304/soup.md +3 -5
- package/src/artifacts/templates/dhf/system/sad.md +1 -1
- package/src/artifacts/templates/dhf/system/standards-checklist.md +2 -2
- package/src/artifacts/templates/dhf/system/standards-traceability.md +1 -1
- package/src/assurance/cybersecurity/memo_cybersecurity.sysml +339 -13
- package/src/assurance/human_factors/memo_human_factors.sysml +6 -2
- package/src/assurance/safety_risk/analysis/memo_fmea.sysml +7 -3
- package/src/assurance/safety_risk/memo_risk.sysml +39 -1
- package/src/core/common/memo_common.sysml +61 -68
- package/src/core/enumerations/memo_enumerations.sysml +93 -9
- package/src/core/relationships/memo_relationships.sysml +17 -11
- package/src/core/relationships/memo_workspace_membership.sysml +284 -0
- package/src/core/semantics/semantics.sysml +58 -0
- package/src/core/terminology/terminology.sysml +7 -0
- package/src/memo_namespaces.sysml +6 -0
- package/src/methodology/archetypes/memo_archetypes.sysml +8 -16
- package/src/methodology/core/memo_core.sysml +85 -29
- package/src/methodology/profiles/memo_profiles.sysml +217 -61
- package/src/methodology/workflow/memo_workflow.sysml +28 -0
- package/src/rules/closure/closure_rules.sysml +250 -4
- package/src/rules/crosslayer/cross_layer_rules.sysml +11 -0
- package/src/rules/ontology/ontology_invariants.sysml +288 -48
- package/src/rules/quantitative/quantitative_rules.sysml +4 -0
- package/src/viewpoints/catalog/memo_viewpoint_catalog.sysml +28 -28
- 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 +3 -5
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +2 -3
- package/src/viewpoints/definitions/memo_view_layout.sysml +150 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +0 -4
- package/src/viewpoints/functional/functional_viewpoint.sysml +2 -3
- package/src/viewpoints/functional/views/function_allocation_view/function_allocation_view.sysml +2 -4
- package/src/viewpoints/functional/views/system_functional_tree_view/system_functional_tree_view.sysml +2 -4
- package/src/viewpoints/logical/logical_viewpoint.sysml +2 -3
- package/src/viewpoints/logical/views/logical_architecture_view/logical_architecture_view.sysml +2 -4
- package/src/viewpoints/operational/operational_viewpoint.sysml +2 -3
- package/src/viewpoints/operational/views/use_case_view/use_case_view.sysml +3 -5
- package/src/viewpoints/physical/physical_viewpoint.sysml +2 -3
- package/src/viewpoints/physical/views/network_topology_view/network_topology_view.sysml +2 -4
- package/src/viewpoints/physical/views/physical_bom_view/physical_bom_view.sysml +2 -4
- package/src/viewpoints/rendering/memo_rendering.sysml +50 -98
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +2 -3
- package/src/viewpoints/requirements/views/requirements_traceability_view/requirements_traceability_view.sysml +2 -4
- package/src/viewpoints/risk/risk_viewpoint.sysml +2 -3
- package/src/viewpoints/risk/views/risk_chain_view/risk_chain_view.sysml +2 -4
- package/src/viewpoints/software/software_viewpoint.sysml +2 -3
- package/src/viewpoints/software/views/software_architecture_view/software_architecture_view.sysml +3 -5
- package/src/viewpoints/stakeholders_concerns/memo_stakeholders_concerns.sysml +11 -29
- package/src/viewpoints/ui_layout/ui_layout_viewpoint.sysml +2 -3
- package/src/viewpoints/ui_layout/views/screen_layout_view/screen_layout_view.sysml +1 -1
- package/src/viewpoints/usability/usability_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/verification_viewpoint.sysml +2 -3
- package/src/viewpoints/verification/views/verification_coverage_view/verification_coverage_view.sysml +2 -4
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.ids.gz +0 -0
- package/stage1/syside-67f92dc96ba75cd05b5c8d13.json.gz +0 -0
- package/templates/default/memo.package.yaml +6 -1
- package/templates/default/model/catalog/architecture/system.sysml +7 -3
- package/templates/default/model/{catalog → methodology}/project.sysml +3 -4
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/context_view.viewlayout +0 -47
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/interconnection_view.viewlayout +0 -94
- package/examples/sysml-diagram-samples/model/catalog/viewpoints/unassigned/views/operational_behaviour_view.viewlayout +0 -13
- package/examples/ui-screen-regions/model/catalog/relationships.sysml +0 -8
- package/extensions/aadl/src/methodology/aadl_methodology.sysml +0 -19
- package/extensions/clinical/src/methodology/clinical_methodology.sysml +0 -24
- package/extensions/cloud/src/methodology/cloud_methodology.sysml +0 -19
- package/extensions/container/src/methodology/container_methodology.sysml +0 -19
- package/extensions/messaging/src/methodology/messaging_methodology.sysml +0 -19
- package/extensions/ros/src/methodology/ros_methodology.sysml +0 -27
- package/extensions/template/src/extension.sysml +0 -39
- package/templates/connected-device/memo.package.yaml +0 -13
- package/templates/connected-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/connected-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/connected-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/connected-device/model/catalog/project.sysml +0 -30
- package/templates/connected-device/package.json +0 -8
- package/templates/connected-device/syside.toml +0 -13
- package/templates/infusion-pump/memo.package.yaml +0 -13
- package/templates/infusion-pump/model/catalog/architecture/system.sysml +0 -5
- package/templates/infusion-pump/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/infusion-pump/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/infusion-pump/model/catalog/project.sysml +0 -30
- package/templates/infusion-pump/package.json +0 -8
- package/templates/infusion-pump/syside.toml +0 -13
- package/templates/monitoring-device/memo.package.yaml +0 -13
- package/templates/monitoring-device/model/catalog/architecture/system.sysml +0 -5
- package/templates/monitoring-device/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/monitoring-device/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/monitoring-device/model/catalog/project.sysml +0 -30
- package/templates/monitoring-device/package.json +0 -8
- package/templates/monitoring-device/syside.toml +0 -13
- package/templates/samd/memo.package.yaml +0 -13
- package/templates/samd/model/catalog/architecture/system.sysml +0 -5
- package/templates/samd/model/catalog/artifacts/catalog.sysml +0 -5
- package/templates/samd/model/catalog/assurance/requirements.sysml +0 -7
- package/templates/samd/model/catalog/project.sysml +0 -30
- package/templates/samd/package.json +0 -8
- package/templates/samd/syside.toml +0 -13
|
@@ -28,202 +28,204 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
28
28
|
// ── Stakeholder needs ───────────────────────────────────────
|
|
29
29
|
requirement needSafeTherapy : Need {
|
|
30
30
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
31
|
-
@MemoIdentity { :>> providedId = "NEED-001";
|
|
31
|
+
@MemoIdentity { :>> providedId = "NEED-001"; :>> label = "SafePatientControlledTherapy"; }
|
|
32
32
|
attribute :>> statement = "The device shall support safe patient controlled analgesic infusion therapy.";
|
|
33
33
|
attribute :>> priority = "high";
|
|
34
34
|
}
|
|
35
35
|
requirement needEffectiveAnalgesia : Need {
|
|
36
36
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
37
|
-
@MemoIdentity { :>> providedId = "NEED-002";
|
|
37
|
+
@MemoIdentity { :>> providedId = "NEED-002"; :>> label = "EffectivePainManagement"; }
|
|
38
38
|
attribute :>> statement = "The device shall deliver the prescribed basal and bolus doses accurately so the patient receives effective analgesia.";
|
|
39
39
|
attribute :>> priority = "high";
|
|
40
40
|
}
|
|
41
|
+
// --8<-- [start:need]
|
|
41
42
|
requirement needTimelyAlarms : Need {
|
|
42
43
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
43
|
-
@MemoIdentity { :>> providedId = "NEED-003";
|
|
44
|
+
@MemoIdentity { :>> providedId = "NEED-003"; :>> label = "TimelyAlarmNotification"; }
|
|
44
45
|
attribute :>> statement = "Clinicians shall be notified promptly and unambiguously of any condition that interrupts or endangers therapy.";
|
|
45
46
|
attribute :>> priority = "high";
|
|
47
|
+
// --8<-- [end:need]
|
|
46
48
|
}
|
|
47
49
|
requirement needAuditableRecord : Need {
|
|
48
50
|
attribute :>> needKind = NeedKind::'stakeholder';
|
|
49
|
-
@MemoIdentity { :>> providedId = "NEED-004";
|
|
51
|
+
@MemoIdentity { :>> providedId = "NEED-004"; :>> label = "AuditableTherapyRecord"; }
|
|
50
52
|
attribute :>> statement = "All delivered doses, alarms, and prescription changes shall be reviewable after the fact.";
|
|
51
53
|
attribute :>> priority = "medium";
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
// ── System constants (CriSys App. A.4; I 8; Ch.5) ───────────
|
|
55
57
|
part constMaxRateofFlowChange : SystemConstant {
|
|
56
|
-
@MemoIdentity { :>> providedId = "CONST-01";
|
|
58
|
+
@MemoIdentity { :>> providedId = "CONST-01"; :>> label = "Max_Rateof_Flow_Change"; }
|
|
57
59
|
attribute :>> symbol = "Max_Rateof_Flow_Change_const";
|
|
58
|
-
|
|
60
|
+
doc /* Maximum rate of change of flow of drug in the hose. */
|
|
59
61
|
attribute :>> unit = "ml/sec2"; attribute :>> valueType = "Numeric";
|
|
60
62
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
61
63
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
62
64
|
}
|
|
63
65
|
part constMaxModeChangeDuration : SystemConstant {
|
|
64
|
-
@MemoIdentity { :>> providedId = "CONST-02";
|
|
66
|
+
@MemoIdentity { :>> providedId = "CONST-02"; :>> label = "Max_Mode_Change_Duration"; }
|
|
65
67
|
attribute :>> symbol = "Max_Mode_Change_Duration_const";
|
|
66
|
-
|
|
68
|
+
doc /* Maximum time to be taken for mode transition. */
|
|
67
69
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
68
70
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
69
71
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
70
72
|
}
|
|
71
73
|
part constConfigWarningDuration : SystemConstant {
|
|
72
|
-
@MemoIdentity { :>> providedId = "CONST-03";
|
|
74
|
+
@MemoIdentity { :>> providedId = "CONST-03"; :>> label = "Config_Warning_Duration"; }
|
|
73
75
|
attribute :>> symbol = "Config_Warning_Duration_const";
|
|
74
|
-
|
|
76
|
+
doc /* Recommended duration of prescription values configuration. */
|
|
75
77
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
76
78
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
77
79
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
78
80
|
}
|
|
79
81
|
part constMaxConfigDuration : SystemConstant {
|
|
80
|
-
@MemoIdentity { :>> providedId = "CONST-04";
|
|
82
|
+
@MemoIdentity { :>> providedId = "CONST-04"; :>> label = "Max_Config_Duration"; }
|
|
81
83
|
attribute :>> symbol = "Max_Config_Duration_const";
|
|
82
|
-
|
|
84
|
+
doc /* Maximum time allowed for configuration. */
|
|
83
85
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
84
86
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
85
87
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
86
88
|
}
|
|
87
89
|
part constMaxIdleDuration : SystemConstant {
|
|
88
|
-
@MemoIdentity { :>> providedId = "CONST-05";
|
|
90
|
+
@MemoIdentity { :>> providedId = "CONST-05"; :>> label = "Max_IDLE_Duration"; }
|
|
89
91
|
attribute :>> symbol = "Max_IDLE_Duration_const";
|
|
90
|
-
|
|
92
|
+
doc /* Maximum duration the system is allowed to be in IDLE mode continuously. */
|
|
91
93
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
92
94
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
93
95
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
94
96
|
}
|
|
95
97
|
part constMaxDurationUnderInfusion : SystemConstant {
|
|
96
|
-
@MemoIdentity { :>> providedId = "CONST-06";
|
|
98
|
+
@MemoIdentity { :>> providedId = "CONST-06"; :>> label = "Max_Duration_UnderInfusion"; }
|
|
97
99
|
attribute :>> symbol = "Max_Duration_UnderInfusion_const";
|
|
98
|
-
|
|
100
|
+
doc /* Maximum cumulative duration the system can infuse below the respective mode's flow rate minus Tolerance_Min_const in any delta time interval. */
|
|
99
101
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
100
102
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
101
103
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
102
104
|
}
|
|
103
105
|
part constMaxDurationOverInfusion : SystemConstant {
|
|
104
|
-
@MemoIdentity { :>> providedId = "CONST-07";
|
|
106
|
+
@MemoIdentity { :>> providedId = "CONST-07"; :>> label = "Max_Duration_OverInfusion"; }
|
|
105
107
|
attribute :>> symbol = "Max_Duration_OverInfusion_const";
|
|
106
|
-
|
|
108
|
+
doc /* Maximum cumulative duration the system can infuse above the respective mode's flow rate plus Tolerance_Min_const in any delta time interval. */
|
|
107
109
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
108
110
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
109
111
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
110
112
|
}
|
|
111
113
|
part constLowReservoir : SystemConstant {
|
|
112
|
-
@MemoIdentity { :>> providedId = "CONST-08";
|
|
114
|
+
@MemoIdentity { :>> providedId = "CONST-08"; :>> label = "Low_Reservoir"; }
|
|
113
115
|
attribute :>> symbol = "Low_Reservoir_const";
|
|
114
|
-
|
|
116
|
+
doc /* Volume in the drug reservoir that needs notification for Low Reservoir. */
|
|
115
117
|
attribute :>> unit = "ml"; attribute :>> valueType = "Numeric";
|
|
116
118
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "should be greater than Empty_Reservoir_const";
|
|
117
119
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
118
120
|
}
|
|
119
121
|
part constEmptyReservoir : SystemConstant {
|
|
120
|
-
@MemoIdentity { :>> providedId = "CONST-09";
|
|
122
|
+
@MemoIdentity { :>> providedId = "CONST-09"; :>> label = "Empty_Reservoir"; }
|
|
121
123
|
attribute :>> symbol = "Empty_Reservoir_const";
|
|
122
|
-
|
|
124
|
+
doc /* Volume in the drug reservoir that needs notification for Empty Reservoir. */
|
|
123
125
|
attribute :>> unit = "ml"; attribute :>> valueType = "Numeric";
|
|
124
126
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "should be greater than FlowRate_kvo_hd (as written in the source)";
|
|
125
127
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
126
128
|
}
|
|
127
129
|
part constSingleAirBubbleVolume : SystemConstant {
|
|
128
|
-
@MemoIdentity { :>> providedId = "CONST-10";
|
|
130
|
+
@MemoIdentity { :>> providedId = "CONST-10"; :>> label = "Single_AirBubble_Volume"; }
|
|
129
131
|
attribute :>> symbol = "Single_AirBubble_Volume_const";
|
|
130
|
-
|
|
132
|
+
doc /* Maximum volume of a single air bubble that is safe to be infused. */
|
|
131
133
|
attribute :>> unit = "ml"; attribute :>> valueType = "Numeric";
|
|
132
134
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
133
135
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
134
136
|
}
|
|
135
137
|
part constCumulativeAirBubbleVolume : SystemConstant {
|
|
136
|
-
@MemoIdentity { :>> providedId = "CONST-11";
|
|
138
|
+
@MemoIdentity { :>> providedId = "CONST-11"; :>> label = "Cumulative_AirBubble_Volume"; }
|
|
137
139
|
attribute :>> symbol = "Cumulative_AirBubble_Volume_const";
|
|
138
|
-
|
|
140
|
+
doc /* Maximum volume of air bubbles cumulatively in a delta time interval that is safe to be infused. */
|
|
139
141
|
attribute :>> unit = "ml"; attribute :>> valueType = "Numeric";
|
|
140
142
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
141
143
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
142
144
|
}
|
|
143
145
|
part constRevDeliveryContinuousDuration : SystemConstant {
|
|
144
|
-
@MemoIdentity { :>> providedId = "CONST-12";
|
|
146
|
+
@MemoIdentity { :>> providedId = "CONST-12"; :>> label = "Rev_Delivery_Continuous_Duration"; }
|
|
145
147
|
attribute :>> symbol = "Rev_Delivery_Continuous_Duration_const";
|
|
146
|
-
|
|
148
|
+
doc /* Maximum duration the system is acceptable to be in reverse delivery continuously. */
|
|
147
149
|
attribute :>> unit = "minutes"; attribute :>> valueType = "Time";
|
|
148
150
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
149
151
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
150
152
|
}
|
|
151
153
|
part constRevDeliveryCumulativeDuration : SystemConstant {
|
|
152
|
-
@MemoIdentity { :>> providedId = "CONST-13";
|
|
154
|
+
@MemoIdentity { :>> providedId = "CONST-13"; :>> label = "Rev_Delivery_Cumulative_Duration"; }
|
|
153
155
|
attribute :>> symbol = "Rev_Delivery_Cumulative_Duration_const";
|
|
154
|
-
|
|
156
|
+
doc /* Maximum duration the system is acceptable to be in reverse delivery cumulatively in a delta time interval. */
|
|
155
157
|
attribute :>> unit = "minutes"; attribute :>> valueType = "Time";
|
|
156
158
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
157
159
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
158
160
|
}
|
|
159
161
|
part constMaxPausedDuration : SystemConstant {
|
|
160
|
-
@MemoIdentity { :>> providedId = "CONST-14";
|
|
162
|
+
@MemoIdentity { :>> providedId = "CONST-14"; :>> label = "Max_PAUSED_Duration"; }
|
|
161
163
|
attribute :>> symbol = "Max_PAUSED_Duration_const";
|
|
162
|
-
|
|
164
|
+
doc /* Maximum duration the system is allowed to be in PAUSED mode continuously. */
|
|
163
165
|
attribute :>> unit = "sec"; attribute :>> valueType = "Time";
|
|
164
166
|
attribute :>> constantValue = ""; attribute :>> valueCondition = "value left open by the source";
|
|
165
167
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
166
168
|
}
|
|
167
169
|
part constToleranceMax : SystemConstant {
|
|
168
|
-
@MemoIdentity { :>> providedId = "CONST-15";
|
|
170
|
+
@MemoIdentity { :>> providedId = "CONST-15"; :>> label = "Tolerance_Max"; }
|
|
169
171
|
attribute :>> symbol = "Tolerance_Max_const";
|
|
170
|
-
|
|
172
|
+
doc /* Maximum acceptable variation in flow rate in any mode, specified as a percentage of the respective mode's flow rate. */
|
|
171
173
|
attribute :>> unit = "%"; attribute :>> valueType = "Positive Integer";
|
|
172
174
|
attribute :>> constantValue = "20 %"; attribute :>> valueCondition = "";
|
|
173
175
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
174
176
|
}
|
|
175
177
|
part constToleranceMin : SystemConstant {
|
|
176
|
-
@MemoIdentity { :>> providedId = "CONST-16";
|
|
178
|
+
@MemoIdentity { :>> providedId = "CONST-16"; :>> label = "Tolerance_Min"; }
|
|
177
179
|
attribute :>> symbol = "Tolerance_Min_const";
|
|
178
|
-
|
|
180
|
+
doc /* Tolerance in flow rate variation that is acceptable for a certain duration of time (Max_Duration_OverInfusion_const, Max_Duration_UnderInfusion_const); computed like Tolerance_Max_const. */
|
|
179
181
|
attribute :>> unit = "%"; attribute :>> valueType = "Positive Integer";
|
|
180
182
|
attribute :>> constantValue = "5 %"; attribute :>> valueCondition = "";
|
|
181
183
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
182
184
|
}
|
|
183
185
|
part constAudioLevel : SystemConstant {
|
|
184
|
-
@MemoIdentity { :>> providedId = "CONST-17";
|
|
186
|
+
@MemoIdentity { :>> providedId = "CONST-17"; :>> label = "Audio_level"; }
|
|
185
187
|
attribute :>> symbol = "Audio_level_const";
|
|
186
|
-
|
|
188
|
+
doc /* Acceptable level of sound for audio notification. Interface spec I 8 states 50 db for 2 seconds per notification; the App. A.4 value cell is inconsistent in the source (lists '5 %'). */
|
|
187
189
|
attribute :>> unit = "decibels"; attribute :>> valueType = "Positive Integer";
|
|
188
190
|
attribute :>> constantValue = "50 db for 2 seconds per notification"; attribute :>> valueCondition = "";
|
|
189
191
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.4 (I 8) and App. A.4"; }
|
|
190
192
|
}
|
|
191
193
|
part constAudioEnableDuration : SystemConstant {
|
|
192
|
-
@MemoIdentity { :>> providedId = "CONST-18";
|
|
194
|
+
@MemoIdentity { :>> providedId = "CONST-18"; :>> label = "Audio_Enable_Duration"; }
|
|
193
195
|
attribute :>> symbol = "Audio_Enable_Duration_const";
|
|
194
|
-
|
|
196
|
+
doc /* Audio notification temporary silencing duration. */
|
|
195
197
|
attribute :>> unit = "minutes"; attribute :>> valueType = "Positive Integer";
|
|
196
198
|
attribute :>> constantValue = "30"; attribute :>> valueCondition = "";
|
|
197
199
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
198
200
|
}
|
|
199
201
|
part constLogInterval : SystemConstant {
|
|
200
|
-
@MemoIdentity { :>> providedId = "CONST-19";
|
|
202
|
+
@MemoIdentity { :>> providedId = "CONST-19"; :>> label = "Log_Interval"; }
|
|
201
203
|
attribute :>> symbol = "Log_Interval_const";
|
|
202
|
-
|
|
204
|
+
doc /* Interval at which operational information should be recorded. */
|
|
203
205
|
attribute :>> unit = "minutes"; attribute :>> valueType = "Positive Integer";
|
|
204
206
|
attribute :>> constantValue = "5"; attribute :>> valueCondition = "";
|
|
205
207
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.4"; }
|
|
206
208
|
}
|
|
207
209
|
part constErrorLogRetention : SystemConstant {
|
|
208
|
-
@MemoIdentity { :>> providedId = "CONST-20";
|
|
210
|
+
@MemoIdentity { :>> providedId = "CONST-20"; :>> label = "Error_Log_Retention"; }
|
|
209
211
|
attribute :>> symbol = "Error_Log_Retention";
|
|
210
|
-
|
|
212
|
+
doc /* Duration for which the most recent error log data shall persist (REQ 85). */
|
|
211
213
|
attribute :>> unit = "days"; attribute :>> valueType = "Time";
|
|
212
214
|
attribute :>> constantValue = "30"; attribute :>> valueCondition = "";
|
|
213
215
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §5.1 (REQ 85)"; }
|
|
214
216
|
}
|
|
215
217
|
part constOperationalLogRetention : SystemConstant {
|
|
216
|
-
@MemoIdentity { :>> providedId = "CONST-21";
|
|
218
|
+
@MemoIdentity { :>> providedId = "CONST-21"; :>> label = "Operational_Log_Retention"; }
|
|
217
219
|
attribute :>> symbol = "Operational_Log_Retention";
|
|
218
|
-
|
|
220
|
+
doc /* Duration for which the most recent operational log data shall persist (REQ 85). */
|
|
219
221
|
attribute :>> unit = "days"; attribute :>> valueType = "Time";
|
|
220
222
|
attribute :>> constantValue = "15"; attribute :>> valueCondition = "";
|
|
221
223
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §5.1 (REQ 85)"; }
|
|
222
224
|
}
|
|
223
225
|
part constPrescriptionPersistDuration : SystemConstant {
|
|
224
|
-
@MemoIdentity { :>> providedId = "CONST-22";
|
|
226
|
+
@MemoIdentity { :>> providedId = "CONST-22"; :>> label = "Prescription_Persist_Duration"; }
|
|
225
227
|
attribute :>> symbol = "Prescription_Persist_Duration";
|
|
226
|
-
|
|
228
|
+
doc /* Duration for which the last saved prescription data shall persist (REQ 86). */
|
|
227
229
|
attribute :>> unit = "days"; attribute :>> valueType = "Time";
|
|
228
230
|
attribute :>> constantValue = "15"; attribute :>> valueCondition = "";
|
|
229
231
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §5.1 (REQ 86)"; }
|
|
@@ -236,7 +238,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
236
238
|
// restriction: Inhibit All Infusion > Inhibit Square Bolus >
|
|
237
239
|
// Inhibit Patient Bolus.
|
|
238
240
|
part notifLowReservoir : NotificationSpec {
|
|
239
|
-
@MemoIdentity { :>> providedId = "NOTIF-01";
|
|
241
|
+
@MemoIdentity { :>> providedId = "NOTIF-01"; :>> label = "Low_Reservoir"; }
|
|
240
242
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
241
243
|
attribute :>> visualNotification = true; attribute :>> audioNotification = false;
|
|
242
244
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = true;
|
|
@@ -244,7 +246,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
244
246
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
245
247
|
}
|
|
246
248
|
part notifEmptyReservoir : NotificationSpec {
|
|
247
|
-
@MemoIdentity { :>> providedId = "NOTIF-02";
|
|
249
|
+
@MemoIdentity { :>> providedId = "NOTIF-02"; :>> label = "Empty_Reservoir"; }
|
|
248
250
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
249
251
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
250
252
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = true;
|
|
@@ -252,7 +254,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
252
254
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
253
255
|
}
|
|
254
256
|
part notifAirEmbolism : NotificationSpec {
|
|
255
|
-
@MemoIdentity { :>> providedId = "NOTIF-03";
|
|
257
|
+
@MemoIdentity { :>> providedId = "NOTIF-03"; :>> label = "Air_embolism"; }
|
|
256
258
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
257
259
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
258
260
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = true;
|
|
@@ -260,7 +262,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
260
262
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
261
263
|
}
|
|
262
264
|
part notifReverseDelivery : NotificationSpec {
|
|
263
|
-
@MemoIdentity { :>> providedId = "NOTIF-04";
|
|
265
|
+
@MemoIdentity { :>> providedId = "NOTIF-04"; :>> label = "Reverse_Delivery"; }
|
|
264
266
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
265
267
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
266
268
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = true;
|
|
@@ -268,7 +270,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
268
270
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
269
271
|
}
|
|
270
272
|
part notifOverInfusionFlowRate : NotificationSpec {
|
|
271
|
-
@MemoIdentity { :>> providedId = "NOTIF-05";
|
|
273
|
+
@MemoIdentity { :>> providedId = "NOTIF-05"; :>> label = "Over_Infusion_FlowRate"; }
|
|
272
274
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
273
275
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
274
276
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = true;
|
|
@@ -276,7 +278,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
276
278
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
277
279
|
}
|
|
278
280
|
part notifOverInfusionVtbi : NotificationSpec {
|
|
279
|
-
@MemoIdentity { :>> providedId = "NOTIF-06";
|
|
281
|
+
@MemoIdentity { :>> providedId = "NOTIF-06"; :>> label = "Over_Infusion_VTBI"; }
|
|
280
282
|
attribute :>> priority = NotificationPriorityKind::high;
|
|
281
283
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
282
284
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = true;
|
|
@@ -284,7 +286,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
284
286
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
285
287
|
}
|
|
286
288
|
part notifBolusExceeded : NotificationSpec {
|
|
287
|
-
@MemoIdentity { :>> providedId = "NOTIF-07";
|
|
289
|
+
@MemoIdentity { :>> providedId = "NOTIF-07"; :>> label = "Bolus_Exceeded"; }
|
|
288
290
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
289
291
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
290
292
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -292,7 +294,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
292
294
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
293
295
|
}
|
|
294
296
|
part notifInfusionInhibited : NotificationSpec {
|
|
295
|
-
@MemoIdentity { :>> providedId = "NOTIF-08";
|
|
297
|
+
@MemoIdentity { :>> providedId = "NOTIF-08"; :>> label = "Infusion_Inhibited"; }
|
|
296
298
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
297
299
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
298
300
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = false;
|
|
@@ -300,7 +302,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
300
302
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
301
303
|
}
|
|
302
304
|
part notifInfusionManuallyInhibited : NotificationSpec {
|
|
303
|
-
@MemoIdentity { :>> providedId = "NOTIF-09";
|
|
305
|
+
@MemoIdentity { :>> providedId = "NOTIF-09"; :>> label = "Infusion_Manually_Inhibited"; }
|
|
304
306
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
305
307
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
306
308
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = false;
|
|
@@ -308,7 +310,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
308
310
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
309
311
|
}
|
|
310
312
|
part notifInfusionStoppedManually : NotificationSpec {
|
|
311
|
-
@MemoIdentity { :>> providedId = "NOTIF-10";
|
|
313
|
+
@MemoIdentity { :>> providedId = "NOTIF-10"; :>> label = "Infusion_Stopped_Manually"; }
|
|
312
314
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
313
315
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
314
316
|
attribute :>> inhibitInfusion = true; attribute :>> inhibitSquareBolus = false;
|
|
@@ -316,7 +318,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
316
318
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
317
319
|
}
|
|
318
320
|
part notifUnderInfusionFlowRate : NotificationSpec {
|
|
319
|
-
@MemoIdentity { :>> providedId = "NOTIF-11";
|
|
321
|
+
@MemoIdentity { :>> providedId = "NOTIF-11"; :>> label = "Under_Infusion_FlowRate"; }
|
|
320
322
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
321
323
|
attribute :>> visualNotification = true; attribute :>> audioNotification = false;
|
|
322
324
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -324,7 +326,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
324
326
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
325
327
|
}
|
|
326
328
|
part notifUnderInfusionVtbi : NotificationSpec {
|
|
327
|
-
@MemoIdentity { :>> providedId = "NOTIF-12";
|
|
329
|
+
@MemoIdentity { :>> providedId = "NOTIF-12"; :>> label = "Under_Infusion_VTBI"; }
|
|
328
330
|
attribute :>> priority = NotificationPriorityKind::medium;
|
|
329
331
|
attribute :>> visualNotification = true; attribute :>> audioNotification = false;
|
|
330
332
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -332,7 +334,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
332
334
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
333
335
|
}
|
|
334
336
|
part notifInfusionComplete : NotificationSpec {
|
|
335
|
-
@MemoIdentity { :>> providedId = "NOTIF-13";
|
|
337
|
+
@MemoIdentity { :>> providedId = "NOTIF-13"; :>> label = "Infusion_Complete"; }
|
|
336
338
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
337
339
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
338
340
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -340,7 +342,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
340
342
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
341
343
|
}
|
|
342
344
|
part notifFrequentBolusRequests : NotificationSpec {
|
|
343
|
-
@MemoIdentity { :>> providedId = "NOTIF-14";
|
|
345
|
+
@MemoIdentity { :>> providedId = "NOTIF-14"; :>> label = "Frequent_Bolus_Requests"; }
|
|
344
346
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
345
347
|
attribute :>> visualNotification = true; attribute :>> audioNotification = false;
|
|
346
348
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -348,7 +350,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
348
350
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
349
351
|
}
|
|
350
352
|
part notifIdleTime : NotificationSpec {
|
|
351
|
-
@MemoIdentity { :>> providedId = "NOTIF-15";
|
|
353
|
+
@MemoIdentity { :>> providedId = "NOTIF-15"; :>> label = "IDLE_Time"; }
|
|
352
354
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
353
355
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
354
356
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -356,7 +358,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
356
358
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
357
359
|
}
|
|
358
360
|
part notifPausedTime : NotificationSpec {
|
|
359
|
-
@MemoIdentity { :>> providedId = "NOTIF-16";
|
|
361
|
+
@MemoIdentity { :>> providedId = "NOTIF-16"; :>> label = "PAUSED_Time"; }
|
|
360
362
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
361
363
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
362
364
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -364,7 +366,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
364
366
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
365
367
|
}
|
|
366
368
|
part notifConfigTime : NotificationSpec {
|
|
367
|
-
@MemoIdentity { :>> providedId = "NOTIF-17";
|
|
369
|
+
@MemoIdentity { :>> providedId = "NOTIF-17"; :>> label = "Config_Time"; }
|
|
368
370
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
369
371
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
370
372
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -372,7 +374,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
372
374
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
373
375
|
}
|
|
374
376
|
part notifValidationFailed : NotificationSpec {
|
|
375
|
-
@MemoIdentity { :>> providedId = "NOTIF-18";
|
|
377
|
+
@MemoIdentity { :>> providedId = "NOTIF-18"; :>> label = "Validation_Failed"; }
|
|
376
378
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
377
379
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
378
380
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -380,8 +382,8 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
380
382
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
381
383
|
}
|
|
382
384
|
part notifDrugSafeValueNotPresent : NotificationSpec {
|
|
383
|
-
@MemoIdentity { :>> providedId = "NOTIF-19";
|
|
384
|
-
|
|
385
|
+
@MemoIdentity { :>> providedId = "NOTIF-19"; :>> label = "Drug_safe_value_not_present"; }
|
|
386
|
+
doc /* Raised with the missing field names appended. */
|
|
385
387
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
386
388
|
attribute :>> visualNotification = true; attribute :>> audioNotification = false;
|
|
387
389
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -389,7 +391,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
389
391
|
@MemoIdentity { :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §4.3 REQ 59 table"; }
|
|
390
392
|
}
|
|
391
393
|
part notifDrugDatabaseNotReachable : NotificationSpec {
|
|
392
|
-
@MemoIdentity { :>> providedId = "NOTIF-20";
|
|
394
|
+
@MemoIdentity { :>> providedId = "NOTIF-20"; :>> label = "Drug_database_not_reachable"; }
|
|
393
395
|
attribute :>> priority = NotificationPriorityKind::low;
|
|
394
396
|
attribute :>> visualNotification = true; attribute :>> audioNotification = true;
|
|
395
397
|
attribute :>> inhibitInfusion = false; attribute :>> inhibitSquareBolus = false;
|
|
@@ -400,7 +402,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
400
402
|
// ═════ CriSys system requirements — §4.1.1 GPCA System ══════
|
|
401
403
|
requirement reqCs01 : Requirement {
|
|
402
404
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
403
|
-
@MemoIdentity { :>> providedId = "REQ-CS-01";
|
|
405
|
+
@MemoIdentity { :>> providedId = "REQ-CS-01"; :>> label = "SingleActiveMode"; }
|
|
404
406
|
attribute :>> statement = "The system shall always be in only one of the following modes: OFF (default mode), IDLE, PAUSED, BASAL, SQUARE BOLUS or PATIENT BOLUS.";
|
|
405
407
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
406
408
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -411,7 +413,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
411
413
|
}
|
|
412
414
|
requirement reqCs02 : Requirement {
|
|
413
415
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
414
|
-
@MemoIdentity { :>> providedId = "REQ-CS-02";
|
|
416
|
+
@MemoIdentity { :>> providedId = "REQ-CS-02"; :>> label = "ModeChangeDurationWithoutFlowChange"; }
|
|
415
417
|
attribute :>> statement = "If there are mode transitions without change in flow rates between the two modes, the system shall transition within Max_Mode_Change_Duration_const.";
|
|
416
418
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
417
419
|
attribute :>> concernKind = ConcernKind::performance;
|
|
@@ -422,7 +424,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
422
424
|
}
|
|
423
425
|
requirement reqCs03 : Requirement {
|
|
424
426
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
425
|
-
@MemoIdentity { :>> providedId = "REQ-CS-03";
|
|
427
|
+
@MemoIdentity { :>> providedId = "REQ-CS-03"; :>> label = "ModeChangeFlowRamp"; }
|
|
426
428
|
attribute :>> statement = "If there are mode transitions with change in flow rates between the two modes, the system shall change from the current mode flow rate to the new mode flow rate at a rate not more than Max_Rateof_Flow_Change_const or within Max_Mode_Change_Duration_const, whichever achieves the new desired flow rate the quickest.";
|
|
427
429
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
428
430
|
attribute :>> concernKind = ConcernKind::performance;
|
|
@@ -433,7 +435,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
433
435
|
}
|
|
434
436
|
requirement reqCs04 : Requirement {
|
|
435
437
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
436
|
-
@MemoIdentity { :>> providedId = "REQ-CS-04";
|
|
438
|
+
@MemoIdentity { :>> providedId = "REQ-CS-04"; :>> label = "OffToIdleOnSystemStart"; }
|
|
437
439
|
attribute :>> statement = "The system shall transition from OFF mode to ON > IDLE mode when System_start_prog is commanded. At this transition, the variables in App. A.4 shall be set to their default values.";
|
|
438
440
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
439
441
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -444,7 +446,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
444
446
|
}
|
|
445
447
|
requirement reqCs05 : Requirement {
|
|
446
448
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
447
|
-
@MemoIdentity { :>> providedId = "REQ-CS-05";
|
|
449
|
+
@MemoIdentity { :>> providedId = "REQ-CS-05"; :>> label = "OnToOffOnSystemStop"; }
|
|
448
450
|
attribute :>> statement = "While in ON mode, when System_stop_prog is commanded, the system shall stop infusion, cancel all notifications and transition to OFF mode.";
|
|
449
451
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
450
452
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -457,7 +459,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
457
459
|
// ── §4.1.2 OFF mode ─────────────────────────────────────────
|
|
458
460
|
requirement reqCs06 : Requirement {
|
|
459
461
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
460
|
-
@MemoIdentity { :>> providedId = "REQ-CS-06";
|
|
462
|
+
@MemoIdentity { :>> providedId = "REQ-CS-06"; :>> label = "OffModeNoDelivery"; }
|
|
461
463
|
attribute :>> statement = "While in OFF mode, the system shall not deliver any drug.";
|
|
462
464
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
463
465
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -470,7 +472,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
470
472
|
// ── §4.1.3 ON mode ──────────────────────────────────────────
|
|
471
473
|
requirement reqCs07 : Requirement {
|
|
472
474
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
473
|
-
@MemoIdentity { :>> providedId = "REQ-CS-07";
|
|
475
|
+
@MemoIdentity { :>> providedId = "REQ-CS-07"; :>> label = "InfusionRequiresSavedPrescription"; }
|
|
474
476
|
attribute :>> statement = "While in ON mode, the system shall allow initiation of infusion only when a saved prescription is available.";
|
|
475
477
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
476
478
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -481,7 +483,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
481
483
|
}
|
|
482
484
|
requirement reqCs08 : Requirement {
|
|
483
485
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
484
|
-
@MemoIdentity { :>> providedId = "REQ-CS-08";
|
|
486
|
+
@MemoIdentity { :>> providedId = "REQ-CS-08"; :>> label = "AllowDataConfigurationInOn"; }
|
|
485
487
|
attribute :>> statement = "While in ON mode, the system shall allow configuring (DataConfig_prog) new or saved prescription data and reservoir initial volume, as described in the Data Configuration Requirements (§4.2).";
|
|
486
488
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
487
489
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -492,7 +494,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
492
494
|
}
|
|
493
495
|
requirement reqCs09 : Requirement {
|
|
494
496
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
495
|
-
@MemoIdentity { :>> providedId = "REQ-CS-09";
|
|
497
|
+
@MemoIdentity { :>> providedId = "REQ-CS-09"; :>> label = "PrescriptionDisplayAndConfirm"; }
|
|
496
498
|
attribute :>> statement = "While in ON mode, if Infusion_initiate_prog, the system shall display the saved prescription values and allow the clinician to confirm the prescription with another Infusion_initiate_prog.";
|
|
497
499
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
498
500
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -503,7 +505,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
503
505
|
}
|
|
504
506
|
requirement reqCs10 : Requirement {
|
|
505
507
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
506
|
-
@MemoIdentity { :>> providedId = "REQ-CS-10";
|
|
508
|
+
@MemoIdentity { :>> providedId = "REQ-CS-10"; :>> label = "AllowNotificationsInOn"; }
|
|
507
509
|
attribute :>> statement = "While in ON mode, the system shall allow visual and audio notification as described in §4.3.";
|
|
508
510
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
509
511
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -514,7 +516,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
514
516
|
}
|
|
515
517
|
requirement reqCs11 : Requirement {
|
|
516
518
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
517
|
-
@MemoIdentity { :>> providedId = "REQ-CS-11";
|
|
519
|
+
@MemoIdentity { :>> providedId = "REQ-CS-11"; :>> label = "AllowLoggingInOn"; }
|
|
518
520
|
attribute :>> statement = "While in ON mode, the system shall allow logging as described in §4.4.";
|
|
519
521
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
520
522
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -525,7 +527,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
525
527
|
}
|
|
526
528
|
requirement reqCs12 : Requirement {
|
|
527
529
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
528
|
-
@MemoIdentity { :>> providedId = "REQ-CS-12";
|
|
530
|
+
@MemoIdentity { :>> providedId = "REQ-CS-12"; :>> label = "ConfirmedInitiateStartsBasal"; }
|
|
529
531
|
attribute :>> statement = "While in ON mode, when the second Infusion_initiate_prog is commanded as per REQ 9 and Inhibited_Infusion_macro = FALSE, the system shall reset Actual_Infusion_Duration_macro = 0 and Actual_Volume_Infused_macro = 0 and shall transition to ON > THERAPY > ACTIVE > BASAL mode.";
|
|
530
532
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
531
533
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -536,7 +538,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
536
538
|
}
|
|
537
539
|
requirement reqCs13 : Requirement {
|
|
538
540
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
539
|
-
@MemoIdentity { :>> providedId = "REQ-CS-13";
|
|
541
|
+
@MemoIdentity { :>> providedId = "REQ-CS-13"; :>> label = "ConfirmedInitiateWhileInhibitedPauses"; }
|
|
540
542
|
attribute :>> statement = "While in ON mode, when the second Infusion_initiate_prog is commanded as per REQ 9 and Inhibited_Infusion_macro = TRUE, the system shall reset Actual_Infusion_Duration_macro = 0 and Actual_Volume_Infused_macro = 0, shall transition to ON > THERAPY > PAUSED mode and perform actions as described in REQ 59 for 'Infusion Inhibited'.";
|
|
541
543
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
542
544
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -549,7 +551,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
549
551
|
// ── §4.1.4 ON > IDLE mode ───────────────────────────────────
|
|
550
552
|
requirement reqCs14 : Requirement {
|
|
551
553
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
552
|
-
@MemoIdentity { :>> providedId = "REQ-CS-14";
|
|
554
|
+
@MemoIdentity { :>> providedId = "REQ-CS-14"; :>> label = "IdleModeNoDelivery"; }
|
|
553
555
|
attribute :>> statement = "While in IDLE mode, the system shall not deliver any drug.";
|
|
554
556
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
555
557
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -560,7 +562,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
560
562
|
}
|
|
561
563
|
requirement reqCs15 : Requirement {
|
|
562
564
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
563
|
-
@MemoIdentity { :>> providedId = "REQ-CS-15";
|
|
565
|
+
@MemoIdentity { :>> providedId = "REQ-CS-15"; :>> label = "IdleTimeNotification"; }
|
|
564
566
|
attribute :>> statement = "While in IDLE mode for more than Max_IDLE_Duration_const, the system shall take actions as defined in REQ 59 for 'IDLE Time'.";
|
|
565
567
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
566
568
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -573,7 +575,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
573
575
|
// ── §4.1.5 ON > THERAPY mode ────────────────────────────────
|
|
574
576
|
requirement reqCs16 : Requirement {
|
|
575
577
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
576
|
-
@MemoIdentity { :>> providedId = "REQ-CS-16";
|
|
578
|
+
@MemoIdentity { :>> providedId = "REQ-CS-16"; :>> label = "TherapyDeliveryWithinTolerance"; }
|
|
577
579
|
attribute :>> statement = "While in THERAPY mode, the system shall deliver the drug as per the respective sub-mode's programmed flow rate, FlowRate_Mode_macro, within a tolerance of Tolerance_Max_const.";
|
|
578
580
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
579
581
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -584,7 +586,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
584
586
|
}
|
|
585
587
|
requirement reqCs17 : Requirement {
|
|
586
588
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
587
|
-
@MemoIdentity { :>> providedId = "REQ-CS-17";
|
|
589
|
+
@MemoIdentity { :>> providedId = "REQ-CS-17"; :>> label = "UnderInfusionFlowRateNotification"; }
|
|
588
590
|
attribute :>> statement = "While in THERAPY mode, the system shall take actions as defined in REQ 59 for 'Under Infusion FlowRate' if the output flow rate falls below the mode flow rate beyond the tolerance windows.";
|
|
589
591
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
590
592
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -595,7 +597,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
595
597
|
}
|
|
596
598
|
requirement reqCs18 : Requirement {
|
|
597
599
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
598
|
-
@MemoIdentity { :>> providedId = "REQ-CS-18";
|
|
600
|
+
@MemoIdentity { :>> providedId = "REQ-CS-18"; :>> label = "LowReservoirNotification"; }
|
|
599
601
|
attribute :>> statement = "While in THERAPY mode, when the current volume of drug in the reservoir is less than Low_Reservoir_const, the system shall perform the actions defined in REQ 59 for 'Low Reservoir'.";
|
|
600
602
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
601
603
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -606,7 +608,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
606
608
|
}
|
|
607
609
|
requirement reqCs19 : Requirement {
|
|
608
610
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
609
|
-
@MemoIdentity { :>> providedId = "REQ-CS-19";
|
|
611
|
+
@MemoIdentity { :>> providedId = "REQ-CS-19"; :>> label = "OverInfusionFlowRatePause"; }
|
|
610
612
|
attribute :>> statement = "While in THERAPY mode, the system shall transition to PAUSED mode and perform the actions described in REQ 59 for 'Over Infusion FlowRate' if the output flow rate exceeds the mode flow rate beyond the tolerance windows.";
|
|
611
613
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
612
614
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -617,7 +619,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
617
619
|
}
|
|
618
620
|
requirement reqCs20 : Requirement {
|
|
619
621
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
620
|
-
@MemoIdentity { :>> providedId = "REQ-CS-20";
|
|
622
|
+
@MemoIdentity { :>> providedId = "REQ-CS-20"; :>> label = "OverInfusionVtbiPause"; }
|
|
621
623
|
attribute :>> statement = "While in THERAPY mode, the system shall transition to PAUSED mode and take the actions described in REQ 59 for 'Over Infusion VTBI' if the actual volume infused exceeds the drug-database maximum VTBI.";
|
|
622
624
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
623
625
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -628,7 +630,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
628
630
|
}
|
|
629
631
|
requirement reqCs21 : Requirement {
|
|
630
632
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
631
|
-
@MemoIdentity { :>> providedId = "REQ-CS-21";
|
|
633
|
+
@MemoIdentity { :>> providedId = "REQ-CS-21"; :>> label = "AirEmbolismPause"; }
|
|
632
634
|
attribute :>> statement = "While in THERAPY mode, the system shall transition to PAUSED mode and perform the actions defined in REQ 59 for 'Air embolism' if an air bubble of a volume larger than Single_AirBubble_Volume_const flows through the hose, or the sum of volume of all air bubbles flowing through the hose exceeds Cumulative_AirBubble_Volume_const for the same time interval defined for Cumulative_AirBubble_Volume_const.";
|
|
633
635
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
634
636
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -639,7 +641,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
639
641
|
}
|
|
640
642
|
requirement reqCs22 : Requirement {
|
|
641
643
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
642
|
-
@MemoIdentity { :>> providedId = "REQ-CS-22";
|
|
644
|
+
@MemoIdentity { :>> providedId = "REQ-CS-22"; :>> label = "ReverseDeliveryPause"; }
|
|
643
645
|
attribute :>> statement = "While in THERAPY mode, the system shall transition to PAUSED mode and perform actions defined in REQ 59 for 'Reverse Delivery' if there is continuous reverse delivery for more than Rev_Delivery_Continuous_Duration_const, or the cumulative time of all reverse delivery episodes exceeds Rev_Delivery_Cumulative_Duration_const.";
|
|
644
646
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
645
647
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -650,7 +652,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
650
652
|
}
|
|
651
653
|
requirement reqCs23 : Requirement {
|
|
652
654
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
653
|
-
@MemoIdentity { :>> providedId = "REQ-CS-23";
|
|
655
|
+
@MemoIdentity { :>> providedId = "REQ-CS-23"; :>> label = "EmptyReservoirPause"; }
|
|
654
656
|
attribute :>> statement = "While in THERAPY mode and if the volume of drug in the reservoir is less than Empty_Reservoir_const, the system shall transition to PAUSED mode and perform actions as listed in REQ 59 for 'Empty Reservoir'.";
|
|
655
657
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
656
658
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -663,7 +665,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
663
665
|
// ── §4.1.6 ON > THERAPY > ACTIVE mode ───────────────────────
|
|
664
666
|
requirement reqCs24 : Requirement {
|
|
665
667
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
666
|
-
@MemoIdentity { :>> providedId = "REQ-CS-24";
|
|
668
|
+
@MemoIdentity { :>> providedId = "REQ-CS-24"; :>> label = "SquareBolusAutoSchedule"; }
|
|
667
669
|
attribute :>> statement = "While in ACTIVE mode, the system shall schedule to start a SQUARE BOLUS every Interval_sbolus_prog and end after Duration_sbolus_prog during the Duration_total_prog.";
|
|
668
670
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
669
671
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -674,7 +676,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
674
676
|
}
|
|
675
677
|
requirement reqCs25 : Requirement {
|
|
676
678
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
677
|
-
@MemoIdentity { :>> providedId = "REQ-CS-25";
|
|
679
|
+
@MemoIdentity { :>> providedId = "REQ-CS-25"; :>> label = "IgnorePatientBolusRequestConditions"; }
|
|
678
680
|
attribute :>> statement = "While in ACTIVE mode, when BolusRequest_prog, the system shall ignore the patient bolus request (BolusRequest_prog = FALSE) if: (1) Inhibited_Infusion_macro = TRUE, OR (2) Inhibited_PatientBolus_macro = TRUE, OR (3) the interval between the most recent PATIENT BOLUS mode end time and the current BolusRequest_prog time violates LockOutPeriod_pbolus_prog, OR (4) the total number of delivered patient boluses for the current prescription violates the programmed maximum number of patient boluses, OR (5) the system is currently in PATIENT BOLUS mode.";
|
|
679
681
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
680
682
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -685,7 +687,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
685
687
|
}
|
|
686
688
|
requirement reqCs26 : Requirement {
|
|
687
689
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
688
|
-
@MemoIdentity { :>> providedId = "REQ-CS-26";
|
|
690
|
+
@MemoIdentity { :>> providedId = "REQ-CS-26"; :>> label = "FrequentBolusRequestsNotification"; }
|
|
689
691
|
attribute :>> statement = "While in ACTIVE mode, the system shall perform the actions described in REQ 59 for 'Frequent Bolus Requests' if the condition described in REQ 25.3 or REQ 25.5 occurs.";
|
|
690
692
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
691
693
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -696,7 +698,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
696
698
|
}
|
|
697
699
|
requirement reqCs27 : Requirement {
|
|
698
700
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
699
|
-
@MemoIdentity { :>> providedId = "REQ-CS-27";
|
|
701
|
+
@MemoIdentity { :>> providedId = "REQ-CS-27"; :>> label = "BolusExceededNotification"; }
|
|
700
702
|
attribute :>> statement = "While in ACTIVE mode, the system shall perform the actions described in REQ 59 for 'Bolus Exceeded' if the condition described in REQ 25.4 occurs.";
|
|
701
703
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
702
704
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -707,7 +709,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
707
709
|
}
|
|
708
710
|
requirement reqCs28 : Requirement {
|
|
709
711
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
710
|
-
@MemoIdentity { :>> providedId = "REQ-CS-28";
|
|
712
|
+
@MemoIdentity { :>> providedId = "REQ-CS-28"; :>> label = "InfusionCompleteToIdle"; }
|
|
711
713
|
attribute :>> statement = "While in ACTIVE mode, the system shall transition to IDLE and perform actions described in REQ 59 for 'Infusion Complete' if the actual duration of infusion is greater than or equal to the programmed prescription total duration, or the total volume infused is greater than or equal to the programmed prescription maximum VTBI.";
|
|
712
714
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
713
715
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -718,7 +720,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
718
720
|
}
|
|
719
721
|
requirement reqCs29 : Requirement {
|
|
720
722
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
721
|
-
@MemoIdentity { :>> providedId = "REQ-CS-29";
|
|
723
|
+
@MemoIdentity { :>> providedId = "REQ-CS-29"; :>> label = "ManualInhibitToPaused"; }
|
|
722
724
|
attribute :>> statement = "While in ACTIVE mode, when Infusion_inhibit_prog, the system shall transition to PAUSED mode and perform actions described in REQ 59 for 'Infusion Manually Inhibited'.";
|
|
723
725
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
724
726
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -729,7 +731,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
729
731
|
}
|
|
730
732
|
requirement reqCs30 : Requirement {
|
|
731
733
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
732
|
-
@MemoIdentity { :>> providedId = "REQ-CS-30";
|
|
734
|
+
@MemoIdentity { :>> providedId = "REQ-CS-30"; :>> label = "AllInhibitedToPaused"; }
|
|
733
735
|
attribute :>> statement = "While in ACTIVE mode, when Inhibited_Infusion_macro = TRUE, Inhibited_Bolus_macro = TRUE and Inhibited_PatientBolus_macro = TRUE, the system shall transition to PAUSED mode.";
|
|
734
736
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
735
737
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -740,7 +742,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
740
742
|
}
|
|
741
743
|
requirement reqCs31 : Requirement {
|
|
742
744
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
743
|
-
@MemoIdentity { :>> providedId = "REQ-CS-31";
|
|
745
|
+
@MemoIdentity { :>> providedId = "REQ-CS-31"; :>> label = "BasalToSquareBolus"; }
|
|
744
746
|
attribute :>> statement = "While in BASAL mode, when SQUARE BOLUS is initiated as described in REQ 24, the system shall transition to SQUARE BOLUS mode if (1) Inhibited_Bolus_macro = FALSE, AND (2) Inhibited_Infusion_macro = FALSE, AND (3) either there is no BolusRequest_prog, or there is a BolusRequest_prog and at least one of the conditions listed in REQ 25 is true.";
|
|
745
747
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
746
748
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -751,7 +753,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
751
753
|
}
|
|
752
754
|
requirement reqCs32 : Requirement {
|
|
753
755
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
754
|
-
@MemoIdentity { :>> providedId = "REQ-CS-32";
|
|
756
|
+
@MemoIdentity { :>> providedId = "REQ-CS-32"; :>> label = "BasalToPatientBolus"; }
|
|
755
757
|
attribute :>> statement = "While in BASAL mode, the system shall transition to PATIENT BOLUS mode when BolusRequest_prog and none of the conditions listed in REQ 25 are true.";
|
|
756
758
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
757
759
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -762,7 +764,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
762
764
|
}
|
|
763
765
|
requirement reqCs33 : Requirement {
|
|
764
766
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
765
|
-
@MemoIdentity { :>> providedId = "REQ-CS-33";
|
|
767
|
+
@MemoIdentity { :>> providedId = "REQ-CS-33"; :>> label = "SquareBolusToPatientBolus"; }
|
|
766
768
|
attribute :>> statement = "While in SQUARE BOLUS mode, the system shall transition to PATIENT BOLUS mode if BolusRequest_prog and none of the conditions listed in REQ 25 are true.";
|
|
767
769
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
768
770
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -773,7 +775,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
773
775
|
}
|
|
774
776
|
requirement reqCs34 : Requirement {
|
|
775
777
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
776
|
-
@MemoIdentity { :>> providedId = "REQ-CS-34";
|
|
778
|
+
@MemoIdentity { :>> providedId = "REQ-CS-34"; :>> label = "SquareBolusToBasal"; }
|
|
777
779
|
attribute :>> statement = "While in SQUARE BOLUS mode, if Inhibited_Bolus_macro = TRUE or the SQUARE BOLUS is scheduled to end (as described in REQ 24), the system shall transition to BASAL mode if (1) Inhibited_Infusion_macro = FALSE, AND (2) there is no BolusRequest_prog, or BolusRequest_prog and at least one of the conditions listed in REQ 25 is true.";
|
|
778
780
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
779
781
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -784,7 +786,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
784
786
|
}
|
|
785
787
|
requirement reqCs35 : Requirement {
|
|
786
788
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
787
|
-
@MemoIdentity { :>> providedId = "REQ-CS-35";
|
|
789
|
+
@MemoIdentity { :>> providedId = "REQ-CS-35"; :>> label = "PatientBolusToBasal"; }
|
|
788
790
|
attribute :>> statement = "While in PATIENT BOLUS mode, when Inhibited_PatientBolus_macro = TRUE or the total duration in the current PATIENT BOLUS mode is greater than or equal to Duration_pbolus_prog, the system shall stop the PATIENT BOLUS delivery and transition to BASAL mode if (1) Inhibited_Infusion_macro = FALSE, AND (2) no SQUARE BOLUS is scheduled to be in progress at the time of transition, OR (3) a SQUARE BOLUS is scheduled to be in progress at the time of transition and Inhibited_Bolus_macro = TRUE.";
|
|
789
791
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
790
792
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -795,7 +797,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
795
797
|
}
|
|
796
798
|
requirement reqCs36 : Requirement {
|
|
797
799
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
798
|
-
@MemoIdentity { :>> providedId = "REQ-CS-36";
|
|
800
|
+
@MemoIdentity { :>> providedId = "REQ-CS-36"; :>> label = "PatientBolusToSquareBolus"; }
|
|
799
801
|
attribute :>> statement = "While in PATIENT BOLUS mode, when Inhibited_PatientBolus_macro = TRUE or the total duration in the current PATIENT BOLUS mode is greater than or equal to Duration_pbolus_prog, the system shall stop the PATIENT BOLUS delivery and transition to SQUARE BOLUS mode if (1) Inhibited_Infusion_macro = FALSE, AND (2) a SQUARE BOLUS is scheduled to be in progress at the time of transition, AND (3) Inhibited_Bolus_macro = FALSE.";
|
|
800
802
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
801
803
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -806,7 +808,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
806
808
|
}
|
|
807
809
|
requirement reqCs37 : Requirement {
|
|
808
810
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
809
|
-
@MemoIdentity { :>> providedId = "REQ-CS-37";
|
|
811
|
+
@MemoIdentity { :>> providedId = "REQ-CS-37"; :>> label = "BasalToPauseOnInhibit"; }
|
|
810
812
|
attribute :>> statement = "While in BASAL mode, if Inhibited_Infusion_macro = TRUE, the system shall transition to PAUSE mode.";
|
|
811
813
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
812
814
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -817,7 +819,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
817
819
|
}
|
|
818
820
|
requirement reqCs38 : Requirement {
|
|
819
821
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
820
|
-
@MemoIdentity { :>> providedId = "REQ-CS-38";
|
|
822
|
+
@MemoIdentity { :>> providedId = "REQ-CS-38"; :>> label = "PatientBolusToPauseOnInhibit"; }
|
|
821
823
|
attribute :>> statement = "While in PATIENT BOLUS mode, the system shall transition to PAUSE mode if Inhibited_PatientBolus_macro = TRUE and Inhibited_Infusion_macro = TRUE.";
|
|
822
824
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
823
825
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -828,7 +830,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
828
830
|
}
|
|
829
831
|
requirement reqCs39 : Requirement {
|
|
830
832
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
831
|
-
@MemoIdentity { :>> providedId = "REQ-CS-39";
|
|
833
|
+
@MemoIdentity { :>> providedId = "REQ-CS-39"; :>> label = "SquareBolusToPauseOnInhibit"; }
|
|
832
834
|
attribute :>> statement = "While in SQUARE BOLUS mode, the system shall transition to PAUSE mode if Inhibited_Bolus_macro = TRUE and Inhibited_Infusion_macro = TRUE.";
|
|
833
835
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
834
836
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -841,7 +843,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
841
843
|
// ── §4.1.7–4.1.9 BASAL / SQUARE BOLUS / PATIENT BOLUS ───────
|
|
842
844
|
requirement reqCs40 : Requirement {
|
|
843
845
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
844
|
-
@MemoIdentity { :>> providedId = "REQ-CS-40";
|
|
846
|
+
@MemoIdentity { :>> providedId = "REQ-CS-40"; :>> label = "BasalDeliveryRate"; }
|
|
845
847
|
attribute :>> statement = "While in BASAL mode, the system shall deliver the drug at a flow rate FlowRate_basal_prog with a variation up to Tolerance_Max_const.";
|
|
846
848
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
847
849
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -852,7 +854,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
852
854
|
}
|
|
853
855
|
requirement reqCs41 : Requirement {
|
|
854
856
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
855
|
-
@MemoIdentity { :>> providedId = "REQ-CS-41";
|
|
857
|
+
@MemoIdentity { :>> providedId = "REQ-CS-41"; :>> label = "SquareBolusDeliveryRate"; }
|
|
856
858
|
attribute :>> statement = "While in SQUARE BOLUS mode, the system shall deliver the drug at a flow rate FlowRate_sbolus_prog with a variation up to Tolerance_Max_const.";
|
|
857
859
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
858
860
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -863,7 +865,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
863
865
|
}
|
|
864
866
|
requirement reqCs42 : Requirement {
|
|
865
867
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
866
|
-
@MemoIdentity { :>> providedId = "REQ-CS-42";
|
|
868
|
+
@MemoIdentity { :>> providedId = "REQ-CS-42"; :>> label = "PatientBolusDeliveryRate"; }
|
|
867
869
|
attribute :>> statement = "While in PATIENT BOLUS mode, the system shall deliver the drug at a flow rate FlowRate_pbolus_prog with a variation up to Tolerance_Max_const.";
|
|
868
870
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
869
871
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -876,7 +878,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
876
878
|
// ── §4.1.10 ON > THERAPY > PAUSED mode ──────────────────────
|
|
877
879
|
requirement reqCs43 : Requirement {
|
|
878
880
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
879
|
-
@MemoIdentity { :>> providedId = "REQ-CS-43";
|
|
881
|
+
@MemoIdentity { :>> providedId = "REQ-CS-43"; :>> label = "PausedKvoDelivery"; }
|
|
880
882
|
attribute :>> statement = "While in PAUSED mode, the system shall allow drug infusion at a flow rate FlowRate_kvo_hd with a variation up to Tolerance_Max_const, to keep the vein open when infusion is paused.";
|
|
881
883
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
882
884
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -887,7 +889,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
887
889
|
}
|
|
888
890
|
requirement reqCs44 : Requirement {
|
|
889
891
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
890
|
-
@MemoIdentity { :>> providedId = "REQ-CS-44";
|
|
892
|
+
@MemoIdentity { :>> providedId = "REQ-CS-44"; :>> label = "PausedTimeNotification"; }
|
|
891
893
|
attribute :>> statement = "While in PAUSED mode for more than Max_PAUSED_Duration_const, the system shall perform actions as described in REQ 59 for 'PAUSED Time'.";
|
|
892
894
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
893
895
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -898,7 +900,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
898
900
|
}
|
|
899
901
|
requirement reqCs45 : Requirement {
|
|
900
902
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
901
|
-
@MemoIdentity { :>> providedId = "REQ-CS-45";
|
|
903
|
+
@MemoIdentity { :>> providedId = "REQ-CS-45"; :>> label = "PausedInitiateWhileInhibitedNoTransition"; }
|
|
902
904
|
attribute :>> statement = "While in PAUSED mode, when Infusion_initiate_prog and Inhibited_Infusion_macro = TRUE, the system shall not perform any transition.";
|
|
903
905
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
904
906
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -909,7 +911,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
909
911
|
}
|
|
910
912
|
requirement reqCs46 : Requirement {
|
|
911
913
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
912
|
-
@MemoIdentity { :>> providedId = "REQ-CS-46";
|
|
914
|
+
@MemoIdentity { :>> providedId = "REQ-CS-46"; :>> label = "PausedResumeToBasal"; }
|
|
913
915
|
attribute :>> statement = "While in PAUSED mode, when Infusion_initiate_prog and Inhibited_Infusion_macro = FALSE, the system shall transition to ON > THERAPY > ACTIVE > BASAL mode.";
|
|
914
916
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
915
917
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -920,7 +922,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
920
922
|
}
|
|
921
923
|
requirement reqCs47 : Requirement {
|
|
922
924
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
923
|
-
@MemoIdentity { :>> providedId = "REQ-CS-47";
|
|
925
|
+
@MemoIdentity { :>> providedId = "REQ-CS-47"; :>> label = "PausedInhibitToIdle"; }
|
|
924
926
|
attribute :>> statement = "While in PAUSED mode, when Infusion_inhibit_prog, the system shall transition to ON > IDLE mode and perform actions as described in REQ 59 for 'Infusion Stopped Manually'.";
|
|
925
927
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
926
928
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -933,7 +935,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
933
935
|
// ═════ §4.2 Data Configuration Requirements ═════════════════
|
|
934
936
|
requirement reqCs48 : Requirement {
|
|
935
937
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
936
|
-
@MemoIdentity { :>> providedId = "REQ-CS-48";
|
|
938
|
+
@MemoIdentity { :>> providedId = "REQ-CS-48"; :>> label = "DisplaySavedPrescriptionOnConfig"; }
|
|
937
939
|
attribute :>> statement = "When in ON mode, if DataConfig_prog as described in REQ 8, the system shall display the saved prescription and reservoir initial volume values or their default values (if there are no saved prescription and reservoir initial volume values) in the order listed in §3.1.1 and §3.1.3.";
|
|
938
940
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
939
941
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -944,7 +946,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
944
946
|
}
|
|
945
947
|
requirement reqCs49 : Requirement {
|
|
946
948
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
947
|
-
@MemoIdentity { :>> providedId = "REQ-CS-49";
|
|
949
|
+
@MemoIdentity { :>> providedId = "REQ-CS-49"; :>> label = "EditValuesOneAtATime"; }
|
|
948
950
|
attribute :>> statement = "When the prescription and reservoir initial volume data are displayed as described in REQ 48, the system shall allow editing the values one at a time in the order they are displayed.";
|
|
949
951
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
950
952
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -955,7 +957,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
955
957
|
}
|
|
956
958
|
requirement reqCs50 : Requirement {
|
|
957
959
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
958
|
-
@MemoIdentity { :>> providedId = "REQ-CS-50";
|
|
960
|
+
@MemoIdentity { :>> providedId = "REQ-CS-50"; :>> label = "AllowInitiateWithNewValues"; }
|
|
959
961
|
attribute :>> statement = "When the values are modified as described in REQ 49, the system shall allow infusion initiation with the new set of values (Infusion_initiate_prog).";
|
|
960
962
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
961
963
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -966,7 +968,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
966
968
|
}
|
|
967
969
|
requirement reqCs51 : Requirement {
|
|
968
970
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
969
|
-
@MemoIdentity { :>> providedId = "REQ-CS-51";
|
|
971
|
+
@MemoIdentity { :>> providedId = "REQ-CS-51"; :>> label = "ValidateValuesOnInitiate"; }
|
|
970
972
|
attribute :>> statement = "When Infusion_initiate_prog as described in REQ 50, the system shall validate if all the values are consistent with the conditions specified in their respective Type Condition fields in §3.1.1 and §3.1.3.";
|
|
971
973
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
972
974
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -977,7 +979,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
977
979
|
}
|
|
978
980
|
requirement reqCs52 : Requirement {
|
|
979
981
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
980
|
-
@MemoIdentity { :>> providedId = "REQ-CS-52";
|
|
982
|
+
@MemoIdentity { :>> providedId = "REQ-CS-52"; :>> label = "DrugDatabaseNotReachable"; }
|
|
981
983
|
attribute :>> statement = "When the system is validating data as described in REQ 51, if the system is unable to access the drug database safe values, the system shall not save the values and perform actions as described in REQ 59 for 'Drug database not reachable'.";
|
|
982
984
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
983
985
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -988,7 +990,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
988
990
|
}
|
|
989
991
|
requirement reqCs53 : Requirement {
|
|
990
992
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
991
|
-
@MemoIdentity { :>> providedId = "REQ-CS-53";
|
|
993
|
+
@MemoIdentity { :>> providedId = "REQ-CS-53"; :>> label = "DrugSafeValueNotPresent"; }
|
|
992
994
|
attribute :>> statement = "When the system is validating data as described in REQ 51, if any of the drug database safe values listed in §3.5 is not present, the system shall not perform the validation with respect to that missing field, perform actions as described in REQ 59 for 'Drug safe value not present' and continue validation.";
|
|
993
995
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
994
996
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -999,7 +1001,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
999
1001
|
}
|
|
1000
1002
|
requirement reqCs54 : Requirement {
|
|
1001
1003
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1002
|
-
@MemoIdentity { :>> providedId = "REQ-CS-54";
|
|
1004
|
+
@MemoIdentity { :>> providedId = "REQ-CS-54"; :>> label = "SaveValidatedPrescription"; }
|
|
1003
1005
|
attribute :>> statement = "If there are no notifications from REQ 51 and REQ 52, the system shall save the prescription values, clear all the notifications previously generated by REQ 51, REQ 52 and REQ 53 if any, and allow initiate infusion with the new values as described in REQ 9.";
|
|
1004
1006
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1005
1007
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1010,7 +1012,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1010
1012
|
}
|
|
1011
1013
|
requirement reqCs55 : Requirement {
|
|
1012
1014
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1013
|
-
@MemoIdentity { :>> providedId = "REQ-CS-55";
|
|
1015
|
+
@MemoIdentity { :>> providedId = "REQ-CS-55"; :>> label = "RejectInvalidPrescription"; }
|
|
1014
1016
|
attribute :>> statement = "If REQ 51 or REQ 52 had generated a notification, the system shall not save the prescription values, allow the clinician to edit the values of the fields as described in REQ 49 and then repeat steps from REQ 50 until all validations are passed as described in REQ 54.";
|
|
1015
1017
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1016
1018
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1021,7 +1023,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1021
1023
|
}
|
|
1022
1024
|
requirement reqCs56 : Requirement {
|
|
1023
1025
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1024
|
-
@MemoIdentity { :>> providedId = "REQ-CS-56";
|
|
1026
|
+
@MemoIdentity { :>> providedId = "REQ-CS-56"; :>> label = "RemainInModeDuringConfig"; }
|
|
1025
1027
|
attribute :>> statement = "While data configuration is in progress, the system shall remain in its current mode with the currently active prescription values, until infusion is initiated with the new prescription values as described in REQ 54.";
|
|
1026
1028
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1027
1029
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1032,7 +1034,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1032
1034
|
}
|
|
1033
1035
|
requirement reqCs57 : Requirement {
|
|
1034
1036
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1035
|
-
@MemoIdentity { :>> providedId = "REQ-CS-57";
|
|
1037
|
+
@MemoIdentity { :>> providedId = "REQ-CS-57"; :>> label = "ConfigWarningNotification"; }
|
|
1036
1038
|
attribute :>> statement = "When the clinician has attempted to configure the data for more than Config_Warning_Duration_const continuously, the system shall perform actions as described in REQ 59 for 'Config Time'.";
|
|
1037
1039
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1038
1040
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1043,7 +1045,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1043
1045
|
}
|
|
1044
1046
|
requirement reqCs58 : Requirement {
|
|
1045
1047
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1046
|
-
@MemoIdentity { :>> providedId = "REQ-CS-58";
|
|
1048
|
+
@MemoIdentity { :>> providedId = "REQ-CS-58"; :>> label = "MaxConfigDurationClears"; }
|
|
1047
1049
|
attribute :>> statement = "When the clinician has attempted to configure the data for more than Max_Config_Duration_const continuously, the system shall clear all unsaved prescription values and shall perform actions as described in REQ 59 for 'Unsaved Configuration Cleared'.";
|
|
1048
1050
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1049
1051
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1056,7 +1058,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1056
1058
|
// ═════ §4.3 Notification Requirements ═══════════════════════
|
|
1057
1059
|
requirement reqCs59 : Requirement {
|
|
1058
1060
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1059
|
-
@MemoIdentity { :>> providedId = "REQ-CS-59";
|
|
1061
|
+
@MemoIdentity { :>> providedId = "REQ-CS-59"; :>> label = "NotificationActionTable"; }
|
|
1060
1062
|
attribute :>> statement = "The system shall perform all the actions listed in the notification action table for the respective notification. The table defines, for each of the 20 notifications, its priority (High/Med/Low) and the actions Visual, Audio, Inhibit Infusion, Inhibit Square Bolus, Inhibit Patient Bolus, and Stop Bolus. Notification requirements have higher precedence over all other requirements in the system.";
|
|
1061
1063
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1062
1064
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1067,7 +1069,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1067
1069
|
}
|
|
1068
1070
|
requirement reqCs60 : Requirement {
|
|
1069
1071
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1070
|
-
@MemoIdentity { :>> providedId = "REQ-CS-60";
|
|
1072
|
+
@MemoIdentity { :>> providedId = "REQ-CS-60"; :>> label = "HighestPriorityActionsFirst"; }
|
|
1071
1073
|
attribute :>> statement = "When more than one notification having different priorities occurs at the same time, the system shall take actions listed for the highest priority notification.";
|
|
1072
1074
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1073
1075
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1078,7 +1080,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1078
1080
|
}
|
|
1079
1081
|
requirement reqCs61 : Requirement {
|
|
1080
1082
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1081
|
-
@MemoIdentity { :>> providedId = "REQ-CS-61";
|
|
1083
|
+
@MemoIdentity { :>> providedId = "REQ-CS-61"; :>> label = "MostRestrictiveSamePriority"; }
|
|
1082
1084
|
attribute :>> statement = "When more than one notification having same priorities and different set of actions occurs at the same time, the system shall take actions listed for the most restrictive notification.";
|
|
1083
1085
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1084
1086
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1089,7 +1091,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1089
1091
|
}
|
|
1090
1092
|
requirement reqCs62 : Requirement {
|
|
1091
1093
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1092
|
-
@MemoIdentity { :>> providedId = "REQ-CS-62";
|
|
1094
|
+
@MemoIdentity { :>> providedId = "REQ-CS-62"; :>> label = "MostRestrictiveTieBreak"; }
|
|
1093
1095
|
attribute :>> statement = "When more than one notification having same priorities and same set of actions occurs at the same time, the system will take actions for the notification that has the most restrictive actions as listed in REQ 59.";
|
|
1094
1096
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1095
1097
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1100,7 +1102,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1100
1102
|
}
|
|
1101
1103
|
requirement reqCs63 : Requirement {
|
|
1102
1104
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1103
|
-
@MemoIdentity { :>> providedId = "REQ-CS-63";
|
|
1105
|
+
@MemoIdentity { :>> providedId = "REQ-CS-63"; :>> label = "EscalateToMoreRestrictive"; }
|
|
1104
1106
|
attribute :>> statement = "While a low priority or less restrictive notification is in effect and a higher priority or more restrictive same-priority notification occurs, the system shall take actions for the high priority or more restrictive notification as listed in REQ 59.";
|
|
1105
1107
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1106
1108
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1111,7 +1113,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1111
1113
|
}
|
|
1112
1114
|
requirement reqCs64 : Requirement {
|
|
1113
1115
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1114
|
-
@MemoIdentity { :>> providedId = "REQ-CS-64";
|
|
1116
|
+
@MemoIdentity { :>> providedId = "REQ-CS-64"; :>> label = "LowPriorityListedOnly"; }
|
|
1115
1117
|
attribute :>> statement = "While a high priority notification is in effect and a low priority notification occurs, the system shall only add the notification to the active notification list and shall not take any other actions for the low priority notification.";
|
|
1116
1118
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1117
1119
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1122,7 +1124,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1122
1124
|
}
|
|
1123
1125
|
requirement reqCs65 : Requirement {
|
|
1124
1126
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1125
|
-
@MemoIdentity { :>> providedId = "REQ-CS-65";
|
|
1127
|
+
@MemoIdentity { :>> providedId = "REQ-CS-65"; :>> label = "CancelNotificationsOneAtATime"; }
|
|
1126
1128
|
attribute :>> statement = "The system shall allow the clinician to cancel the active notifications, starting from the first in the list, one at a time (Notification_cancel_prog).";
|
|
1127
1129
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1128
1130
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1133,7 +1135,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1133
1135
|
}
|
|
1134
1136
|
requirement reqCs66 : Requirement {
|
|
1135
1137
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1136
|
-
@MemoIdentity { :>> providedId = "REQ-CS-66";
|
|
1138
|
+
@MemoIdentity { :>> providedId = "REQ-CS-66"; :>> label = "CancelClearsRestrictions"; }
|
|
1137
1139
|
attribute :>> statement = "When Notification_cancel_prog for a notification, the system shall cancel and clear the restrictions for that notification: Inhibited_Infusion_macro = FALSE, Inhibited_Bolus_macro = FALSE, Inhibited_PatientBolus_macro = FALSE, and cancel and clear the corresponding audio notification.";
|
|
1138
1140
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1139
1141
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1144,7 +1146,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1144
1146
|
}
|
|
1145
1147
|
requirement reqCs67 : Requirement {
|
|
1146
1148
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1147
|
-
@MemoIdentity { :>> providedId = "REQ-CS-67";
|
|
1149
|
+
@MemoIdentity { :>> providedId = "REQ-CS-67"; :>> label = "NextNotificationAfterCancel"; }
|
|
1148
1150
|
attribute :>> statement = "When Notification_cancel_prog for a notification, the system takes actions for the next active notification in order of priority and descending order of occurrence.";
|
|
1149
1151
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1150
1152
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1157,7 +1159,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1157
1159
|
// ── §4.3.1 Visual notification ──────────────────────────────
|
|
1158
1160
|
requirement reqCs68 : Requirement {
|
|
1159
1161
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1160
|
-
@MemoIdentity { :>> providedId = "REQ-CS-68";
|
|
1162
|
+
@MemoIdentity { :>> providedId = "REQ-CS-68"; :>> label = "DisplayActiveNotificationsOrdered"; }
|
|
1161
1163
|
attribute :>> statement = "The system shall display all active notifications in order of priority and descending order of occurrence (Notification_Visual_output).";
|
|
1162
1164
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1163
1165
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1168,7 +1170,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1168
1170
|
}
|
|
1169
1171
|
requirement reqCs69 : Requirement {
|
|
1170
1172
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1171
|
-
@MemoIdentity { :>> providedId = "REQ-CS-69";
|
|
1173
|
+
@MemoIdentity { :>> providedId = "REQ-CS-69"; :>> label = "DisplayNotificationNameAndTime"; }
|
|
1172
1174
|
attribute :>> statement = "The system shall display the name of all the active notifications and the time of the occurrence.";
|
|
1173
1175
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1174
1176
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1179,7 +1181,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1179
1181
|
}
|
|
1180
1182
|
requirement reqCs70 : Requirement {
|
|
1181
1183
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1182
|
-
@MemoIdentity { :>> providedId = "REQ-CS-70";
|
|
1184
|
+
@MemoIdentity { :>> providedId = "REQ-CS-70"; :>> label = "DisplaySimultaneousNotifications"; }
|
|
1183
1185
|
attribute :>> statement = "When more than one notification occurs at the same time, the system shall display all the notifications as per REQ 68.";
|
|
1184
1186
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1185
1187
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1190,7 +1192,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1190
1192
|
}
|
|
1191
1193
|
requirement reqCs71 : Requirement {
|
|
1192
1194
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1193
|
-
@MemoIdentity { :>> providedId = "REQ-CS-71";
|
|
1195
|
+
@MemoIdentity { :>> providedId = "REQ-CS-71"; :>> label = "RemoveCancelledNotificationFromList"; }
|
|
1194
1196
|
attribute :>> statement = "When Notification_cancel_prog for a notification, the system shall remove the notification from the list and shall display the list of remaining notifications.";
|
|
1195
1197
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1196
1198
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1203,7 +1205,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1203
1205
|
// ── §4.3.2 Audio notification ───────────────────────────────
|
|
1204
1206
|
requirement reqCs72 : Requirement {
|
|
1205
1207
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1206
|
-
@MemoIdentity { :>> providedId = "REQ-CS-72";
|
|
1208
|
+
@MemoIdentity { :>> providedId = "REQ-CS-72"; :>> label = "AudibleSoundPerNotification"; }
|
|
1207
1209
|
attribute :>> statement = "When each notification occurs that requires an audio alarm as listed in REQ 59, the system shall produce a single audible sound of Audio_level_const, unless the audio is disabled or silenced.";
|
|
1208
1210
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1209
1211
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1214,7 +1216,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1214
1216
|
}
|
|
1215
1217
|
requirement reqCs73 : Requirement {
|
|
1216
1218
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1217
|
-
@MemoIdentity { :>> providedId = "REQ-CS-73";
|
|
1219
|
+
@MemoIdentity { :>> providedId = "REQ-CS-73"; :>> label = "AudioDisableSilenceEnable"; }
|
|
1218
1220
|
attribute :>> statement = "The system shall allow the clinician to disable audible alarm, silence the alarm temporarily and enable a disabled or silenced alarm.";
|
|
1219
1221
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1220
1222
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1225,7 +1227,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1225
1227
|
}
|
|
1226
1228
|
requirement reqCs74 : Requirement {
|
|
1227
1229
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1228
|
-
@MemoIdentity { :>> providedId = "REQ-CS-74";
|
|
1230
|
+
@MemoIdentity { :>> providedId = "REQ-CS-74"; :>> label = "NoAudioWhileDisabled"; }
|
|
1229
1231
|
attribute :>> statement = "If Disable_audio_prog = 'PERM' or 'TEMP', the system shall not produce audible alarm until it is enabled (Disable_audio_prog = FALSE).";
|
|
1230
1232
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1231
1233
|
attribute :>> concernKind = ConcernKind::usability;
|
|
@@ -1236,7 +1238,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1236
1238
|
}
|
|
1237
1239
|
requirement reqCs75 : Requirement {
|
|
1238
1240
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1239
|
-
@MemoIdentity { :>> providedId = "REQ-CS-75";
|
|
1241
|
+
@MemoIdentity { :>> providedId = "REQ-CS-75"; :>> label = "TempSilenceAutoReenable"; }
|
|
1240
1242
|
attribute :>> statement = "If Disable_audio_prog = 'TEMP', the system shall automatically enable it (Disable_audio_prog = FALSE) after Audio_Enable_Duration_const minutes.";
|
|
1241
1243
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1242
1244
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1247,7 +1249,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1247
1249
|
}
|
|
1248
1250
|
requirement reqCs76 : Requirement {
|
|
1249
1251
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1250
|
-
@MemoIdentity { :>> providedId = "REQ-CS-76";
|
|
1252
|
+
@MemoIdentity { :>> providedId = "REQ-CS-76"; :>> label = "ReannunciateLongActiveNotifications"; }
|
|
1251
1253
|
attribute :>> statement = "For every notification with audio alarm that is active for more than Audio_Enable_Duration_const minutes, the system shall produce audible sound as described in REQ 72.";
|
|
1252
1254
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1253
1255
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1260,7 +1262,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1260
1262
|
// ═════ §4.4 Log Requirements ════════════════════════════════
|
|
1261
1263
|
requirement reqCs77 : Requirement {
|
|
1262
1264
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1263
|
-
@MemoIdentity { :>> providedId = "REQ-CS-77";
|
|
1265
|
+
@MemoIdentity { :>> providedId = "REQ-CS-77"; :>> label = "LogWhileOn"; }
|
|
1264
1266
|
attribute :>> statement = "The system shall log all the operational and error data when the system is in ON mode.";
|
|
1265
1267
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1266
1268
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1271,7 +1273,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1271
1273
|
}
|
|
1272
1274
|
requirement reqCs78 : Requirement {
|
|
1273
1275
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1274
|
-
@MemoIdentity { :>> providedId = "REQ-CS-78";
|
|
1276
|
+
@MemoIdentity { :>> providedId = "REQ-CS-78"; :>> label = "OperationalLogContent"; }
|
|
1275
1277
|
attribute :>> statement = "While in ON mode, every Log_Interval_const minutes or when a mode transition occurs, the system shall record the following information in an 'Operational log': (1) date in dd/MM/yy format, (2) time in HH:MM:SS GMT, (3) Patient ID, (4) prescription information, (5) current mode of the system, (6) current flow rate of the system.";
|
|
1276
1278
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1277
1279
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1282,7 +1284,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1282
1284
|
}
|
|
1283
1285
|
requirement reqCs79 : Requirement {
|
|
1284
1286
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1285
|
-
@MemoIdentity { :>> providedId = "REQ-CS-79";
|
|
1287
|
+
@MemoIdentity { :>> providedId = "REQ-CS-79"; :>> label = "InfusionCompleteLogContent"; }
|
|
1286
1288
|
attribute :>> statement = "When infusion is completed as per REQ 28, the system shall record the following information in addition to the information listed in REQ 78 in the 'Operational log': (1) total volume infused for that prescription, (2) total duration of infusion for that prescription (total duration in ACTIVE mode).";
|
|
1287
1289
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1288
1290
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1293,7 +1295,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1293
1295
|
}
|
|
1294
1296
|
requirement reqCs80 : Requirement {
|
|
1295
1297
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1296
|
-
@MemoIdentity { :>> providedId = "REQ-CS-80";
|
|
1298
|
+
@MemoIdentity { :>> providedId = "REQ-CS-80"; :>> label = "ErrorLogContent"; }
|
|
1297
1299
|
attribute :>> statement = "When any notification condition listed in REQ 59 occurs, the system shall record the following information in an error log: (1) date in dd/MM/yy format, (2) time in HH:MM:SS GMT, (3) notification description, (4) current mode of the system, (5) remaining drug volume.";
|
|
1298
1300
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1299
1301
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1304,7 +1306,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1304
1306
|
}
|
|
1305
1307
|
requirement reqCs81 : Requirement {
|
|
1306
1308
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1307
|
-
@MemoIdentity { :>> providedId = "REQ-CS-81";
|
|
1309
|
+
@MemoIdentity { :>> providedId = "REQ-CS-81"; :>> label = "NotificationCancelLogContent"; }
|
|
1308
1310
|
attribute :>> statement = "When a notification is cancelled as described in REQ 66, the system shall record the following information in the 'Operational log': (1) date in dd/MM/yy format, (2) time in HH:MM:SS GMT, (3) description of the notification cancelled.";
|
|
1309
1311
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1310
1312
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1317,7 +1319,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1317
1319
|
// ═════ §4.5 Security Requirements ═══════════════════════════
|
|
1318
1320
|
requirement reqCs82 : Requirement {
|
|
1319
1321
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1320
|
-
@MemoIdentity { :>> providedId = "REQ-CS-82";
|
|
1322
|
+
@MemoIdentity { :>> providedId = "REQ-CS-82"; :>> label = "AuthorizedCliniciansOnly"; }
|
|
1321
1323
|
attribute :>> statement = "The system shall allow only authorized clinicians to configure the system.";
|
|
1322
1324
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1323
1325
|
attribute :>> concernKind = ConcernKind::cybersecurity;
|
|
@@ -1330,7 +1332,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1330
1332
|
// ═════ Ch.5 Non-Behavioral Requirements ═════════════════════
|
|
1331
1333
|
requirement reqCs83 : Requirement {
|
|
1332
1334
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1333
|
-
@MemoIdentity { :>> providedId = "REQ-CS-83";
|
|
1335
|
+
@MemoIdentity { :>> providedId = "REQ-CS-83"; :>> label = "DropResistance"; }
|
|
1334
1336
|
attribute :>> statement = "The system shall be unbreakable if it is dropped on a laminate floor from y m of height with no additional force than gravity.";
|
|
1335
1337
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1336
1338
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
@@ -1341,7 +1343,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1341
1343
|
}
|
|
1342
1344
|
requirement reqCs84 : Requirement {
|
|
1343
1345
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1344
|
-
@MemoIdentity { :>> providedId = "REQ-CS-84";
|
|
1346
|
+
@MemoIdentity { :>> providedId = "REQ-CS-84"; :>> label = "WaterResistance"; }
|
|
1345
1347
|
attribute :>> statement = "The system shall be waterproof to non-acidic liquid of less than x ml on any side of the pump for a maximum of 2 hours.";
|
|
1346
1348
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1347
1349
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
@@ -1352,7 +1354,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1352
1354
|
}
|
|
1353
1355
|
requirement reqCs85 : Requirement {
|
|
1354
1356
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1355
|
-
@MemoIdentity { :>> providedId = "REQ-CS-85";
|
|
1357
|
+
@MemoIdentity { :>> providedId = "REQ-CS-85"; :>> label = "LogRetention"; }
|
|
1356
1358
|
attribute :>> statement = "The system shall persist the most recent 30 days of error log data and 15 days of operational log data.";
|
|
1357
1359
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1358
1360
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1363,7 +1365,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1363
1365
|
}
|
|
1364
1366
|
requirement reqCs86 : Requirement {
|
|
1365
1367
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1366
|
-
@MemoIdentity { :>> providedId = "REQ-CS-86";
|
|
1368
|
+
@MemoIdentity { :>> providedId = "REQ-CS-86"; :>> label = "PrescriptionRetention"; }
|
|
1367
1369
|
attribute :>> statement = "The system shall persist the last saved prescription data for 15 days.";
|
|
1368
1370
|
attribute :>> sourceKind = RequirementSourceKind::sourceDocument;
|
|
1369
1371
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1380,7 +1382,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1380
1382
|
// them from the REQ-CS family.
|
|
1381
1383
|
requirement reqDrugLibraryLimits : Requirement {
|
|
1382
1384
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1383
|
-
@MemoIdentity { :>> providedId = "REQ-X-01";
|
|
1385
|
+
@MemoIdentity { :>> providedId = "REQ-X-01"; :>> label = "PrescriptionWithinDrugLibraryLimits"; }
|
|
1384
1386
|
attribute :>> statement = "When a prescription parameter is entered, the system shall reject values outside drug-library hard limits and shall require explicit confirmation for values outside soft limits.";
|
|
1385
1387
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1386
1388
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1399,7 +1401,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1399
1401
|
}
|
|
1400
1402
|
requirement reqPost : Requirement {
|
|
1401
1403
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1402
|
-
@MemoIdentity { :>> providedId = "REQ-X-02";
|
|
1404
|
+
@MemoIdentity { :>> providedId = "REQ-X-02"; :>> label = "PowerOnSelfTest"; }
|
|
1403
1405
|
attribute :>> statement = "On power-up, the system shall complete a self test of CPU, memory, watchdog, and safety sensors before permitting therapy, and shall remain locked out of therapy if any check fails.";
|
|
1404
1406
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1405
1407
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1418,7 +1420,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1418
1420
|
}
|
|
1419
1421
|
requirement reqPowerLossRetention : Requirement {
|
|
1420
1422
|
attribute :>> requirementType = RequirementTypeKind::system;
|
|
1421
|
-
@MemoIdentity { :>> providedId = "REQ-X-03";
|
|
1423
|
+
@MemoIdentity { :>> providedId = "REQ-X-03"; :>> label = "PrescriptionRetainedAcrossPowerLoss"; }
|
|
1422
1424
|
attribute :>> statement = "If all power is lost, the system shall retain the confirmed prescription and event log, and on power restoration shall resume therapy only after clinician confirmation.";
|
|
1423
1425
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1424
1426
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1437,7 +1439,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1437
1439
|
}
|
|
1438
1440
|
requirement reqOcclusion : Requirement {
|
|
1439
1441
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1440
|
-
@MemoIdentity { :>> providedId = "REQ-X-04";
|
|
1442
|
+
@MemoIdentity { :>> providedId = "REQ-X-04"; :>> label = "OcclusionDetectionAndAlarm"; }
|
|
1441
1443
|
attribute :>> statement = "When downstream line pressure exceeds the occlusion threshold, the system shall pause infusion and raise a High-priority notification.";
|
|
1442
1444
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1443
1445
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1452,7 +1454,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1452
1454
|
}
|
|
1453
1455
|
requirement reqDoorOpen : Requirement {
|
|
1454
1456
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1455
|
-
@MemoIdentity { :>> providedId = "REQ-X-05";
|
|
1457
|
+
@MemoIdentity { :>> providedId = "REQ-X-05"; :>> label = "DoorOpenPreventsDelivery"; }
|
|
1456
1458
|
attribute :>> statement = "While the reservoir door is open or unlatched, the system shall not deliver drug and shall raise a Medium-priority notification if therapy was active.";
|
|
1457
1459
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1458
1460
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1472,7 +1474,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1472
1474
|
}
|
|
1473
1475
|
requirement reqMaxHourlyDose : Requirement {
|
|
1474
1476
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1475
|
-
@MemoIdentity { :>> providedId = "REQ-X-06";
|
|
1477
|
+
@MemoIdentity { :>> providedId = "REQ-X-06"; :>> label = "MaximumHourlyDoseEnforcement"; }
|
|
1476
1478
|
attribute :>> statement = "The system shall not deliver more than the prescribed maximum drug volume in any sliding one-hour window, counting basal, patient bolus, and square bolus contributions.";
|
|
1477
1479
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1478
1480
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1487,7 +1489,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1487
1489
|
}
|
|
1488
1490
|
requirement reqEventLogging : Requirement {
|
|
1489
1491
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1490
|
-
@MemoIdentity { :>> providedId = "REQ-X-07";
|
|
1492
|
+
@MemoIdentity { :>> providedId = "REQ-X-07"; :>> label = "TamperEvidentTherapyLog"; }
|
|
1491
1493
|
attribute :>> statement = "The system shall record therapy events in a timestamped, tamper-evident event log such that any modification of recorded entries is detectable.";
|
|
1492
1494
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1493
1495
|
attribute :>> concernKind = ConcernKind::regulatory;
|
|
@@ -1502,7 +1504,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1502
1504
|
}
|
|
1503
1505
|
requirement reqWatchdogSafeState : Requirement {
|
|
1504
1506
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1505
|
-
@MemoIdentity { :>> providedId = "REQ-X-08";
|
|
1507
|
+
@MemoIdentity { :>> providedId = "REQ-X-08"; :>> label = "WatchdogForcesSafeState"; }
|
|
1506
1508
|
attribute :>> statement = "If the software fails to service the hardware watchdog within its timeout, the system shall force pump output to zero flow and raise a continuous audible alarm.";
|
|
1507
1509
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1508
1510
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1522,7 +1524,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1522
1524
|
}
|
|
1523
1525
|
requirement reqStuckButton : Requirement {
|
|
1524
1526
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1525
|
-
@MemoIdentity { :>> providedId = "REQ-X-09";
|
|
1527
|
+
@MemoIdentity { :>> providedId = "REQ-X-09"; :>> label = "StuckBolusButtonDetection"; }
|
|
1526
1528
|
attribute :>> statement = "If the patient bolus button remains asserted for more than 60 seconds, the system shall treat the input as failed, ignore it, and raise a Medium-priority notification.";
|
|
1527
1529
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1528
1530
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1537,7 +1539,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1537
1539
|
}
|
|
1538
1540
|
requirement reqFlowCrossCheck : Requirement {
|
|
1539
1541
|
attribute :>> requirementType = RequirementTypeKind::software;
|
|
1540
|
-
@MemoIdentity { :>> providedId = "REQ-X-10";
|
|
1542
|
+
@MemoIdentity { :>> providedId = "REQ-X-10"; :>> label = "CommandedVsMeasuredFlowCrossCheck"; }
|
|
1541
1543
|
attribute :>> statement = "The system shall compare measured delivered flow against commanded flow using an independent flow sensor, and shall raise a High-priority notification and pause infusion when the deviation exceeds Tolerance_Min_const for more than Max_Duration_OverInfusion_const.";
|
|
1542
1544
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1543
1545
|
attribute :>> concernKind = ConcernKind::safety;
|
|
@@ -1552,7 +1554,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1552
1554
|
}
|
|
1553
1555
|
requirement reqPumpAccuracy : Requirement {
|
|
1554
1556
|
attribute :>> requirementType = RequirementTypeKind::hardware;
|
|
1555
|
-
@MemoIdentity { :>> providedId = "REQ-X-11";
|
|
1557
|
+
@MemoIdentity { :>> providedId = "REQ-X-11"; :>> label = "DeliveryAccuracy"; }
|
|
1556
1558
|
attribute :>> statement = "The pump mechanism shall deliver programmed volumes with an accuracy of plus or minus Tolerance_Min_const (5 percent) over the full rate range, so that the system-level flow tolerances of REQ-CS-16 are achievable.";
|
|
1557
1559
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1558
1560
|
attribute :>> concernKind = ConcernKind::performance;
|
|
@@ -1565,15 +1567,17 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1565
1567
|
@MemoIdentity { :>> sourceReference = "MEMO extension — mechanism-level accuracy budget derived from App. A.4 Tolerance_Min_const"; }
|
|
1566
1568
|
attribute :>> electricalSafetyRelevant = false;
|
|
1567
1569
|
}
|
|
1570
|
+
// --8<-- [start:requirement]
|
|
1568
1571
|
requirement reqAlarmLoudness : Requirement {
|
|
1569
1572
|
attribute :>> requirementType = RequirementTypeKind::hardware;
|
|
1570
|
-
@MemoIdentity { :>> providedId = "REQ-X-12";
|
|
1573
|
+
@MemoIdentity { :>> providedId = "REQ-X-12"; :>> label = "AlarmSoundPressureLevel"; }
|
|
1571
1574
|
attribute :>> statement = "The audible annunciator shall produce notification tones at the sound level defined by Audio_level_const (50 db for 2 seconds per interface spec I 8), distinguishable by priority.";
|
|
1572
1575
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1573
1576
|
attribute :>> concernKind = ConcernKind::usability;
|
|
1574
1577
|
attribute :>> status = ElementStatusKind::approved;
|
|
1575
1578
|
attribute :>> acceptanceCriteria = "Calibrated SPL measurement meets Audio_level_const for each priority tone.";
|
|
1576
1579
|
attribute :>> subjectDescription = "AudibleAlarmAnnunciator";
|
|
1580
|
+
// --8<-- [end:requirement]
|
|
1577
1581
|
attribute :>> actorDescription = "clinician";
|
|
1578
1582
|
attribute :>> assumptionSummary = "ward ambient noise per IEC 60601-1-8 baseline";
|
|
1579
1583
|
attribute :>> guaranteeSummary = "alarms audible at the ward station";
|
|
@@ -1582,7 +1586,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1582
1586
|
}
|
|
1583
1587
|
requirement reqBatteryBackup : Requirement {
|
|
1584
1588
|
attribute :>> requirementType = RequirementTypeKind::hardware;
|
|
1585
|
-
@MemoIdentity { :>> providedId = "REQ-X-13";
|
|
1589
|
+
@MemoIdentity { :>> providedId = "REQ-X-13"; :>> label = "BatteryBackupDuration"; }
|
|
1586
1590
|
attribute :>> statement = "The battery shall sustain nominal therapy and alarm annunciation for at least 4 hours after loss of mains power.";
|
|
1587
1591
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1588
1592
|
attribute :>> concernKind = ConcernKind::reliability;
|
|
@@ -1597,7 +1601,7 @@ package memo_examples_gpca_pump_gpca_requirements {
|
|
|
1597
1601
|
}
|
|
1598
1602
|
requirement reqFreeFlowPrevention : Requirement {
|
|
1599
1603
|
attribute :>> requirementType = RequirementTypeKind::hardware;
|
|
1600
|
-
@MemoIdentity { :>> providedId = "REQ-X-14";
|
|
1604
|
+
@MemoIdentity { :>> providedId = "REQ-X-14"; :>> label = "MechanicalFreeFlowPrevention"; }
|
|
1601
1605
|
attribute :>> statement = "The fluid path shall include a mechanical anti-free-flow valve that blocks gravity flow whenever the administration set is disengaged from the pumping mechanism.";
|
|
1602
1606
|
attribute :>> sourceKind = RequirementSourceKind::extension;
|
|
1603
1607
|
attribute :>> concernKind = ConcernKind::safety;
|