@memoarchitect/ontology 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +19 -0
- package/README.md +70 -0
- package/examples/gpca-pump/dhf/documents/DOC-RMP-001.md +210 -0
- package/examples/gpca-pump/memo.config.yaml +9 -0
- package/examples/gpca-pump/methodology/gpca_methodology.sysml +11 -0
- package/examples/gpca-pump/methodology/gpca_profiles.sysml +25 -0
- package/examples/gpca-pump/methodology/gpca_scope.sysml +25 -0
- package/examples/gpca-pump/model/catalog/gpca_analysis.sysml +231 -0
- package/examples/gpca-pump/model/catalog/gpca_architecture.sysml +272 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_actions.sysml +81 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_modes.sysml +363 -0
- package/examples/gpca-pump/model/catalog/gpca_behavior_subsystems.sysml +205 -0
- package/examples/gpca-pump/model/catalog/gpca_context.sysml +113 -0
- package/examples/gpca-pump/model/catalog/gpca_cybersecurity.sysml +172 -0
- package/examples/gpca-pump/model/catalog/gpca_formal_behavior.sysml +173 -0
- package/examples/gpca-pump/model/catalog/gpca_interfaces.sysml +1062 -0
- package/examples/gpca-pump/model/catalog/gpca_operational.sysml +209 -0
- package/examples/gpca-pump/model/catalog/gpca_physical.sysml +53 -0
- package/examples/gpca-pump/model/catalog/gpca_requirements.sysml +1505 -0
- package/examples/gpca-pump/model/catalog/gpca_risk.sysml +744 -0
- package/examples/gpca-pump/model/catalog/gpca_system.sysml +144 -0
- package/examples/gpca-pump/model/catalog/gpca_trace.sysml +696 -0
- package/examples/gpca-pump/model/catalog/gpca_verification.sysml +285 -0
- package/examples/gpca-pump/model/samples/README.md +24 -0
- package/examples/gpca-pump/model/samples/action_flow_view.sysml +72 -0
- package/examples/gpca-pump/model/samples/action_flow_view.viewlayout +9 -0
- package/examples/gpca-pump/model/samples/functional_flow_view.sysml +153 -0
- package/examples/gpca-pump/model/samples/interconnection_view.sysml +93 -0
- package/examples/gpca-pump/model/samples/interconnection_view.viewlayout +99 -0
- package/examples/gpca-pump/model/samples/operational_behaviour_view.sysml +145 -0
- package/examples/gpca-pump/model/samples/tree_view.sysml +56 -0
- package/examples/gpca-pump/model/views/behavior_action_flow_view.sysml +41 -0
- package/examples/gpca-pump/model/views/context_system_context_view.sysml +43 -0
- package/examples/gpca-pump/model/views/cybersecurity_cybersecurity_view.sysml +44 -0
- package/examples/gpca-pump/model/views/document_architecture_description_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_cyber_assessment_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_dhf_index_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_hazard_analysis_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_rmf_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_sdd_view.sysml +29 -0
- package/examples/gpca-pump/model/views/document_threat_model_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_usability_view.sysml +28 -0
- package/examples/gpca-pump/model/views/document_vv_view.sysml +29 -0
- package/examples/gpca-pump/model/views/functional_function_allocation_view.sysml +42 -0
- package/examples/gpca-pump/model/views/functional_function_browser_view.sysml +41 -0
- package/examples/gpca-pump/model/views/logical_device_interconnect_view.sysml +43 -0
- package/examples/gpca-pump/model/views/logical_logical_architecture_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_mode_state_view.sysml +42 -0
- package/examples/gpca-pump/model/views/logical_system_decomposition_view.sysml +44 -0
- package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +41 -0
- package/examples/gpca-pump/model/views/operational_use_case_view.sysml +43 -0
- package/examples/gpca-pump/model/views/physical_physical_bom_view.sysml +41 -0
- package/examples/gpca-pump/model/views/requirements_requirements_trace_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_fmea_view.sysml +42 -0
- package/examples/gpca-pump/model/views/risk_risk_chain_view.sysml +44 -0
- package/examples/gpca-pump/model/views/software_software_architecture_view.sysml +43 -0
- package/examples/gpca-pump/model/views/verification_verification_coverage_view.sysml +42 -0
- package/memo.manifest.yaml +13 -0
- package/methodologies/default/memo.package.yaml +9 -0
- package/methodologies/gpca/memo.package.yaml +9 -0
- package/ontology/memo.package.yaml +8 -0
- package/ontology/memo.rendering.yaml +47 -0
- package/package.json +65 -0
- package/profile/archetypes.yaml +36 -0
- package/profile/memo.package.yaml +9 -0
- package/profile/templates/connected-device/starter.sysml +8 -0
- package/profile/templates/infusion-pump/starter.sysml +8 -0
- package/profile/templates/monitoring-device/starter.sysml +8 -0
- package/profile/templates/samd/starter.sysml +8 -0
- package/src/architecture/analysis/memo_fmea.sysml +91 -0
- package/src/architecture/assurance/memo_assurance.sysml +29 -0
- package/src/architecture/behavior/memo_behavior.sysml +65 -0
- package/src/architecture/constraints/memo_constraints.sysml +14 -0
- package/src/architecture/context/memo_context.sysml +58 -0
- package/src/architecture/cybersecurity/memo_cybersecurity.sysml +99 -0
- package/src/architecture/decisions/memo_decisions.sysml +12 -0
- package/src/architecture/functions/memo_functions.sysml +30 -0
- package/src/architecture/hardware_structure/memo_hardware_structure.sysml +15 -0
- package/src/architecture/interfaces/memo_interfaces.sysml +103 -0
- package/src/architecture/logical_structure/memo_logical_structure.sysml +10 -0
- package/src/architecture/operational/memo_operational.sysml +51 -0
- package/src/architecture/physical/memo_physical_architecture.sysml +19 -0
- package/src/architecture/requirements/memo_requirements.sysml +69 -0
- package/src/architecture/risk/memo_arch_risk.sysml +7 -0
- package/src/architecture/risk/memo_risk.sysml +80 -0
- package/src/architecture/software_structure/memo_software_structure.sysml +44 -0
- package/src/architecture/system/memo_system_analysis.sysml +54 -0
- package/src/artifacts/clinical_safety_report.sysml +12 -0
- package/src/artifacts/cybersecurity_assessment_report.sysml +12 -0
- package/src/artifacts/definitions/memo_artifact_definitions.sysml +12 -0
- package/src/artifacts/design_change_log.sysml +12 -0
- package/src/artifacts/design_history_file_index.sysml +12 -0
- package/src/artifacts/design_input_plan.sysml +12 -0
- package/src/artifacts/design_output_plan.sysml +12 -0
- package/src/artifacts/evidence_record.sysml +12 -0
- package/src/artifacts/failure_mode_effects_analysis.sysml +12 -0
- package/src/artifacts/hazard_analysis_report.sysml +12 -0
- package/src/artifacts/labeling_specification.sysml +12 -0
- package/src/artifacts/requirements_specification.sysml +12 -0
- package/src/artifacts/requirements_traceability_matrix.sysml +12 -0
- package/src/artifacts/risk_management_plan.sysml +12 -0
- package/src/artifacts/software_design_description.sysml +12 -0
- package/src/artifacts/software_development_plan.sysml +12 -0
- package/src/artifacts/soup_list.sysml +12 -0
- package/src/artifacts/system_architecture_description.sysml +12 -0
- package/src/artifacts/test_protocol.sysml +12 -0
- package/src/artifacts/test_report.sysml +12 -0
- package/src/artifacts/threat_model_report.sysml +12 -0
- package/src/artifacts/usability_engineering_report.sysml +12 -0
- package/src/compliance/artifacts/memo_artifacts.sysml +13 -0
- package/src/compliance/change/memo_change.sysml +17 -0
- package/src/compliance/dhf-templates/21cfr820/change-record.md +45 -0
- package/src/compliance/dhf-templates/21cfr820/design-input.md +67 -0
- package/src/compliance/dhf-templates/21cfr820/design-output.md +80 -0
- package/src/compliance/dhf-templates/21cfr820/design-review.md +51 -0
- package/src/compliance/dhf-templates/21cfr820/design-validation.md +64 -0
- package/src/compliance/dhf-templates/21cfr820/design-verification.md +57 -0
- package/src/compliance/dhf-templates/21cfr820/dhf-index.md +111 -0
- package/src/compliance/dhf-templates/21cfr820/transfer-plan.md +50 -0
- package/src/compliance/dhf-templates/21cfr820/user-needs.md +81 -0
- package/src/compliance/dhf-templates/21cfr820/vv-plan.md +89 -0
- package/src/compliance/dhf-templates/21cfr820/vv-report.md +85 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/incident-response.md +66 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/postmarket-surveillance.md +63 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/security-arch.md +83 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/threat-model.md +100 -0
- package/src/compliance/dhf-templates/fda-cybersecurity/vuln-assessment.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/change-control.md +40 -0
- package/src/compliance/dhf-templates/iec-62304/detailed-design.md +69 -0
- package/src/compliance/dhf-templates/iec-62304/integration-test.md +68 -0
- package/src/compliance/dhf-templates/iec-62304/sad.md +115 -0
- package/src/compliance/dhf-templates/iec-62304/sbom.md +67 -0
- package/src/compliance/dhf-templates/iec-62304/sdp.md +108 -0
- package/src/compliance/dhf-templates/iec-62304/soup.md +77 -0
- package/src/compliance/dhf-templates/iec-62304/srs.md +138 -0
- package/src/compliance/dhf-templates/iec-62304/sw-traceability.md +111 -0
- package/src/compliance/dhf-templates/iec-62304/system-test.md +67 -0
- package/src/compliance/dhf-templates/iec-62366/formative-eval.md +47 -0
- package/src/compliance/dhf-templates/iec-62366/summative-eval.md +69 -0
- package/src/compliance/dhf-templates/iec-62366/task-analysis.md +57 -0
- package/src/compliance/dhf-templates/iec-62366/ue-plan.md +81 -0
- package/src/compliance/dhf-templates/iec-62366/ui-spec.md +61 -0
- package/src/compliance/dhf-templates/iec-62366/urra.md +74 -0
- package/src/compliance/dhf-templates/iec-62366/use-spec.md +61 -0
- package/src/compliance/dhf-templates/iso-14971/fmea.md +93 -0
- package/src/compliance/dhf-templates/iso-14971/fta.md +70 -0
- package/src/compliance/dhf-templates/iso-14971/har.md +165 -0
- package/src/compliance/dhf-templates/iso-14971/risk-benefit.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/risk-matrix.md +51 -0
- package/src/compliance/dhf-templates/iso-14971/rmp.md +169 -0
- package/src/compliance/dhf-templates/iso-14971/rmr.md +101 -0
- package/src/compliance/dhf-templates/shared/snippets/approval-block.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/document-control-header.md +15 -0
- package/src/compliance/dhf-templates/shared/snippets/references-section.md +16 -0
- package/src/compliance/dhf-templates/shared/snippets/revision-history-table.md +11 -0
- package/src/compliance/document_views/memo_document_views.sysml +7 -0
- package/src/compliance/iso14971/risk_management_file.sysml +16 -0
- package/src/compliance/postmarket/memo_postmarket.sysml +16 -0
- package/src/core/common/memo_common.sysml +50 -0
- package/src/core/consistency_rules/consistency_rules.sysml +41 -0
- package/src/core/dimensions/dimensions.sysml +37 -0
- package/src/core/enumerations/memo_enumerations.sysml +562 -0
- package/src/core/methodology_scope/methodology_scope.sysml +46 -0
- package/src/core/relationships/memo_relationships.sysml +230 -0
- package/src/core/semantics/semantics.sysml +20 -0
- package/src/core/stdlib/collections.sysml +6 -0
- package/src/core/stdlib/functions.sysml +6 -0
- package/src/core/stdlib/scalars.sysml +6 -0
- package/src/core/stdlib/time.sysml +6 -0
- package/src/medical_device_library.sysml +100 -0
- package/src/memo_namespaces.sysml +668 -0
- package/src/methodology/LICENSES/MIT.txt +19 -0
- package/src/methodology/memo_archetypes.sysml +93 -0
- package/src/methodology/memo_core.sysml +53 -0
- package/src/methodology/memo_gates.sysml +11 -0
- package/src/methodology/memo_patterns.sysml +12 -0
- package/src/methodology/memo_profiles.sysml +218 -0
- package/src/methodology/memo_rules.sysml +15 -0
- package/src/methodology/memo_viewpoints.sysml +5 -0
- package/src/methodology/memo_workflow.sysml +14 -0
- package/src/rules/closure/closure_rules.sysml +180 -0
- package/src/rules/coverage/coverage_rules.sysml +258 -0
- package/src/rules/crosslayer/cross_layer_rules.sysml +38 -0
- package/src/rules/lifecycle/lifecycle_rules.sysml +41 -0
- package/src/rules/quantitative/quantitative_rules.sysml +34 -0
- package/src/viewpoints/clinical/clinical_evidence_view.sysml +13 -0
- package/src/viewpoints/clinical/clinical_viewpoint.sysml +25 -0
- package/src/viewpoints/context/context_viewpoint.sysml +25 -0
- package/src/viewpoints/context/system_context_view.sysml +29 -0
- package/src/viewpoints/cybersecurity/cybersecurity_assessment_view.sysml +13 -0
- package/src/viewpoints/cybersecurity/cybersecurity_viewpoint.sysml +27 -0
- package/src/viewpoints/cybersecurity/threat_model_view.sysml +13 -0
- package/src/viewpoints/definitions/memo_viewpoint_definitions.sysml +82 -0
- package/src/viewpoints/functional/function_allocation_view.sysml +29 -0
- package/src/viewpoints/functional/functional_viewpoint.sysml +25 -0
- package/src/viewpoints/functional/system_functional_tree_view.sysml +29 -0
- package/src/viewpoints/logical/logical_architecture_view.sysml +29 -0
- package/src/viewpoints/logical/logical_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/operational_viewpoint.sysml +25 -0
- package/src/viewpoints/operational/use_case_view.sysml +29 -0
- package/src/viewpoints/physical/network_topology_view.sysml +29 -0
- package/src/viewpoints/physical/physical_bom_view.sysml +29 -0
- package/src/viewpoints/physical/physical_viewpoint.sysml +25 -0
- package/src/viewpoints/requirements/requirements_traceability_view.sysml +29 -0
- package/src/viewpoints/requirements/requirements_viewpoint.sysml +25 -0
- package/src/viewpoints/risk/risk_chain_view.sysml +30 -0
- package/src/viewpoints/risk/risk_viewpoint.sysml +25 -0
- package/src/viewpoints/software/software_architecture_view.sysml +29 -0
- package/src/viewpoints/software/software_viewpoint.sysml +25 -0
- package/src/viewpoints/usability/usability_engineering_view.sysml +13 -0
- package/src/viewpoints/usability/usability_viewpoint.sysml +25 -0
- package/src/viewpoints/verification/verification_coverage_view.sysml +29 -0
- package/src/viewpoints/verification/verification_viewpoint.sysml +25 -0
- package/template/memo.package.yaml +5 -0
- package/template/src/catalog/starter.sysml +12 -0
- package/template/src/documents/.gitkeep +1 -0
- package/template/src/views/.gitkeep +1 -0
|
@@ -0,0 +1,1062 @@
|
|
|
1
|
+
package memo_examples_gpca_pump_model_catalog_gpca_interfaces {
|
|
2
|
+
private import ScalarValues::*;
|
|
3
|
+
|
|
4
|
+
private import memo_architecture_interfaces::*;
|
|
5
|
+
private import memo_architecture_functions::DataDefinition;
|
|
6
|
+
private import memo_core_enumerations::*;
|
|
7
|
+
abstract interface def SensorDataInterface :> DataInterface {
|
|
8
|
+
attribute :>> interfaceKind = InterfaceKind::data;
|
|
9
|
+
attribute :>> protocolSemantics = "flow, air, occlusion, door, battery, cpu, memory, pump state";
|
|
10
|
+
}
|
|
11
|
+
port def SensorInputPort :> SensorPort {
|
|
12
|
+
attribute :>> direction = DirectionKind::input;
|
|
13
|
+
attribute :>> interfaceType = "SensorDataInterface";
|
|
14
|
+
attribute :>> sensorDomain = "physiological and device state";
|
|
15
|
+
}
|
|
16
|
+
part sensorInputInterface : SoftwareInterface {
|
|
17
|
+
attribute :>> id = "LI-005";
|
|
18
|
+
attribute :>> name = "SensorInputInterface";
|
|
19
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::logical;
|
|
20
|
+
attribute :>> interfaceKind = InterfaceKind::data;
|
|
21
|
+
attribute :>> direction = DirectionKind::input;
|
|
22
|
+
attribute :>> interactionPattern = "sensor feed";
|
|
23
|
+
attribute :>> protocolSemantics = "flow, air, occlusion, door, battery, cpu, memory, pump state";
|
|
24
|
+
}
|
|
25
|
+
part actuatorCommandInterface : SoftwareInterface {
|
|
26
|
+
attribute :>> id = "LI-006";
|
|
27
|
+
attribute :>> name = "ActuatorCommandInterface";
|
|
28
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::logical;
|
|
29
|
+
attribute :>> interfaceKind = InterfaceKind::control;
|
|
30
|
+
attribute :>> direction = DirectionKind::output;
|
|
31
|
+
attribute :>> interactionPattern = "commanded flow and annunciation outputs";
|
|
32
|
+
attribute :>> protocolSemantics = "pump flow command, buzzer tone select, display content";
|
|
33
|
+
}
|
|
34
|
+
part operatorEntryInterface : SoftwareInterface {
|
|
35
|
+
attribute :>> id = "LI-007";
|
|
36
|
+
attribute :>> name = "OperatorEntryInterface";
|
|
37
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::logical;
|
|
38
|
+
attribute :>> interfaceKind = InterfaceKind::userInteraction;
|
|
39
|
+
attribute :>> direction = DirectionKind::input;
|
|
40
|
+
attribute :>> interactionPattern = "keypad entry with confirmation readback";
|
|
41
|
+
attribute :>> protocolSemantics = "prescription fields, alarm silence, start/stop commands";
|
|
42
|
+
}
|
|
43
|
+
part eventLogInterface : SoftwareInterface {
|
|
44
|
+
attribute :>> id = "LI-008";
|
|
45
|
+
attribute :>> name = "EventLogInterface";
|
|
46
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::logical;
|
|
47
|
+
attribute :>> interfaceKind = InterfaceKind::logging;
|
|
48
|
+
attribute :>> direction = DirectionKind::output;
|
|
49
|
+
attribute :>> interactionPattern = "append-only audit records";
|
|
50
|
+
attribute :>> protocolSemantics = "timestamped therapy, alarm, and configuration events";
|
|
51
|
+
}
|
|
52
|
+
part hwSoftwareBus : DigitalInterface {
|
|
53
|
+
attribute :>> id = "PI-001";
|
|
54
|
+
attribute :>> name = "HW_SW_DataBus";
|
|
55
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::physical;
|
|
56
|
+
attribute :>> interfaceKind = InterfaceKind::digitalSignal;
|
|
57
|
+
attribute :>> protocol = "immediate data port mapping";
|
|
58
|
+
attribute :>> directionality = DirectionKind::bidirectional;
|
|
59
|
+
attribute :>> bandwidth = "implementation-defined";
|
|
60
|
+
attribute :>> timingConstraint = "same execution step where required";
|
|
61
|
+
attribute :>> electricalStandard = "logical/AADL";
|
|
62
|
+
attribute :>> nominalVoltageV = 3.3;
|
|
63
|
+
attribute :>> nominalCurrentA = 0.02;
|
|
64
|
+
}
|
|
65
|
+
part pumpMotorDrive : DigitalInterface {
|
|
66
|
+
attribute :>> id = "PI-002";
|
|
67
|
+
attribute :>> name = "PumpMotorStepDrive";
|
|
68
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::physical;
|
|
69
|
+
attribute :>> interfaceKind = InterfaceKind::digitalSignal;
|
|
70
|
+
attribute :>> protocol = "step/direction pulse train";
|
|
71
|
+
attribute :>> directionality = DirectionKind::output;
|
|
72
|
+
attribute :>> timingConstraint = "step rate proportional to commanded flow";
|
|
73
|
+
attribute :>> electricalStandard = "3.3V CMOS";
|
|
74
|
+
attribute :>> nominalVoltageV = 3.3;
|
|
75
|
+
attribute :>> nominalCurrentA = 0.5;
|
|
76
|
+
attribute :>> signaling = "step/dir with enable interlock";
|
|
77
|
+
}
|
|
78
|
+
part bolusButtonLine : DigitalInterface {
|
|
79
|
+
attribute :>> id = "PI-003";
|
|
80
|
+
attribute :>> name = "BolusButtonInputLine";
|
|
81
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::physical;
|
|
82
|
+
attribute :>> interfaceKind = InterfaceKind::digitalSignal;
|
|
83
|
+
attribute :>> protocol = "debounced discrete input";
|
|
84
|
+
attribute :>> directionality = DirectionKind::input;
|
|
85
|
+
attribute :>> timingConstraint = "debounce 50 ms; stuck-high detection after 60 s";
|
|
86
|
+
attribute :>> electricalStandard = "3.3V CMOS, normally open";
|
|
87
|
+
attribute :>> nominalVoltageV = 3.3;
|
|
88
|
+
attribute :>> nominalCurrentA = 0.001;
|
|
89
|
+
}
|
|
90
|
+
part occlusionAnalogLine : AnalogInterface {
|
|
91
|
+
attribute :>> id = "PI-004";
|
|
92
|
+
attribute :>> name = "OcclusionPressureAnalogLine";
|
|
93
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::physical;
|
|
94
|
+
attribute :>> interfaceKind = InterfaceKind::analogSignal;
|
|
95
|
+
attribute :>> directionality = DirectionKind::input;
|
|
96
|
+
attribute :>> electricalStandard = "ratiometric 0.5-4.5V";
|
|
97
|
+
attribute :>> nominalVoltageV = 5.0;
|
|
98
|
+
attribute :>> nominalCurrentA = 0.01;
|
|
99
|
+
attribute :>> signalRange = "0 to 30 psi line pressure";
|
|
100
|
+
}
|
|
101
|
+
part batteryMonitorLine : AnalogInterface {
|
|
102
|
+
attribute :>> id = "PI-005";
|
|
103
|
+
attribute :>> name = "BatteryVoltageMonitorLine";
|
|
104
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::physical;
|
|
105
|
+
attribute :>> interfaceKind = InterfaceKind::power;
|
|
106
|
+
attribute :>> directionality = DirectionKind::input;
|
|
107
|
+
attribute :>> electricalStandard = "divided battery rail to ADC";
|
|
108
|
+
attribute :>> nominalVoltageV = 12.0;
|
|
109
|
+
attribute :>> nominalCurrentA = 0.001;
|
|
110
|
+
attribute :>> signalRange = "9.0V (depleted) to 12.6V (full)";
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// ── System-level interfaces (CriSys Ch.3, I 1-I 11) ─────────
|
|
114
|
+
part siDataEntry : Interface {
|
|
115
|
+
attribute :>> id = "SI-001";
|
|
116
|
+
attribute :>> name = "DataEntryInterface";
|
|
117
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::system;
|
|
118
|
+
attribute :>> interfaceKind = InterfaceKind::userInteraction;
|
|
119
|
+
attribute :>> direction = DirectionKind::input;
|
|
120
|
+
attribute :>> protocol = "CriSys I 1, I 2, I 3";
|
|
121
|
+
attribute :>> protocolSemantics = "Prescription data entry (13 fields, PatientID_prog..NumberMax_pbolus_prog), control commands (9 mode-gated Boolean events), and drug reservoir data (ReservoirInitialVolume_prog)";
|
|
122
|
+
attribute :>> interactionPattern = "clinician enter/edit/save with mode-gated commands";
|
|
123
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1 Data Entry Interface";
|
|
124
|
+
}
|
|
125
|
+
part siBolusRequest : Interface {
|
|
126
|
+
attribute :>> id = "SI-002";
|
|
127
|
+
attribute :>> name = "BolusRequestInterface";
|
|
128
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::system;
|
|
129
|
+
attribute :>> interfaceKind = InterfaceKind::userInteraction;
|
|
130
|
+
attribute :>> direction = DirectionKind::input;
|
|
131
|
+
attribute :>> protocol = "CriSys I 4";
|
|
132
|
+
attribute :>> protocolSemantics = "BolusRequest_prog: patient request for a patient bolus; accepted only in ACTIVE mode";
|
|
133
|
+
attribute :>> interactionPattern = "patient pendant button press";
|
|
134
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.2 Bolus Request Interface";
|
|
135
|
+
}
|
|
136
|
+
part siDrugFlow : Interface {
|
|
137
|
+
attribute :>> id = "SI-003";
|
|
138
|
+
attribute :>> name = "DrugFlowInterface";
|
|
139
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::system;
|
|
140
|
+
attribute :>> interfaceKind = InterfaceKind::fluidic;
|
|
141
|
+
attribute :>> direction = DirectionKind::output;
|
|
142
|
+
attribute :>> protocol = "CriSys I 5, I 6";
|
|
143
|
+
attribute :>> protocolSemantics = "Physical drug delivery to the patient through the needle connected at the standard CCC connection point; represented by FlowRate_output (ml/hr)";
|
|
144
|
+
attribute :>> interactionPattern = "continuous fluid path while infusing";
|
|
145
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.3 Drug Flow Interface";
|
|
146
|
+
}
|
|
147
|
+
part siNotification : Interface {
|
|
148
|
+
attribute :>> id = "SI-004";
|
|
149
|
+
attribute :>> name = "NotificationInterface";
|
|
150
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::system;
|
|
151
|
+
attribute :>> interfaceKind = InterfaceKind::notification;
|
|
152
|
+
attribute :>> direction = DirectionKind::output;
|
|
153
|
+
attribute :>> protocol = "CriSys I 7, I 8";
|
|
154
|
+
attribute :>> protocolSemantics = "Visual display of all active notification messages plus audio output (50 dB for 2 seconds per notification), ON mode only";
|
|
155
|
+
attribute :>> interactionPattern = "visual list with per-notification audio annunciation";
|
|
156
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.4 Notification Interface";
|
|
157
|
+
}
|
|
158
|
+
part siPharmacyDb : Interface {
|
|
159
|
+
attribute :>> id = "SI-005";
|
|
160
|
+
attribute :>> name = "HospitalPharmacyDatabaseInterface";
|
|
161
|
+
attribute :>> arcadiaLayer = ArcadiaLayerKind::system;
|
|
162
|
+
attribute :>> interfaceKind = InterfaceKind::data;
|
|
163
|
+
attribute :>> direction = DirectionKind::bidirectional;
|
|
164
|
+
attribute :>> protocol = "CriSys I 9, I 10, I 11";
|
|
165
|
+
attribute :>> protocolSemantics = "Retrieves the safe-value set (concentration, VTBI, flow rate, bolus interval/count, KVO rate) where DrugName_hd = DrugName_prog; resets to defaults when no record matches";
|
|
166
|
+
attribute :>> interactionPattern = "query/response safe-value lookup";
|
|
167
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// ── CriSys Ch.3 data dictionary (prog / hd / output families) ─
|
|
171
|
+
part ddPatientIDProg : DataDefinition {
|
|
172
|
+
attribute :>> id = "DD-005";
|
|
173
|
+
attribute :>> name = "PatientID_prog";
|
|
174
|
+
attribute :>> description = "Identifier of the patient in the hospital; provided in the prescription and programmed by the clinician.";
|
|
175
|
+
attribute :>> semantics = "Cannot be empty; alphanumeric without space.";
|
|
176
|
+
attribute :>> unit = "NA";
|
|
177
|
+
attribute :>> encoding = "String";
|
|
178
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
179
|
+
}
|
|
180
|
+
part ddDrugNameProg : DataDefinition {
|
|
181
|
+
attribute :>> id = "DD-006";
|
|
182
|
+
attribute :>> name = "DrugName_prog";
|
|
183
|
+
attribute :>> description = "Name of the drug prescribed for infusion.";
|
|
184
|
+
attribute :>> semantics = "Cannot be empty; entered value must match DrugName_hd in the hospital pharmacy database.";
|
|
185
|
+
attribute :>> unit = "NA";
|
|
186
|
+
attribute :>> encoding = "String";
|
|
187
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
188
|
+
}
|
|
189
|
+
part ddDrugConcentrationProg : DataDefinition {
|
|
190
|
+
attribute :>> id = "DD-007";
|
|
191
|
+
attribute :>> name = "DrugConcentration_prog";
|
|
192
|
+
attribute :>> description = "Concentration of the drug in the solution prescribed for infusion.";
|
|
193
|
+
attribute :>> semantics = "Must be between DrugConcentration_lo_hd and DrugConcentration_hi_hd for DrugName_prog in the hospital database.";
|
|
194
|
+
attribute :>> unit = "mg/ml";
|
|
195
|
+
attribute :>> minValue = "0";
|
|
196
|
+
attribute :>> maxValue = "999";
|
|
197
|
+
attribute :>> encoding = "Positive Integer";
|
|
198
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
199
|
+
}
|
|
200
|
+
part ddVTBITotalProg : DataDefinition {
|
|
201
|
+
attribute :>> id = "DD-008";
|
|
202
|
+
attribute :>> name = "VTBI_total_prog";
|
|
203
|
+
attribute :>> description = "Maximum total volume of the drug solution that can be infused for the prescription.";
|
|
204
|
+
attribute :>> semantics = "Must be between VTBI_lo_hd and VTBI_hi_hd for DrugName_prog in the hospital database.";
|
|
205
|
+
attribute :>> unit = "ml/hr";
|
|
206
|
+
attribute :>> minValue = "0";
|
|
207
|
+
attribute :>> maxValue = "999";
|
|
208
|
+
attribute :>> encoding = "Positive Integer";
|
|
209
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
210
|
+
}
|
|
211
|
+
part ddDurationTotalProg : DataDefinition {
|
|
212
|
+
attribute :>> id = "DD-009";
|
|
213
|
+
attribute :>> name = "Duration_total_prog";
|
|
214
|
+
attribute :>> description = "Prescribed total duration of drug infusion across all delivery modes (BASAL, SQUARE BOLUS, PATIENT BOLUS).";
|
|
215
|
+
attribute :>> semantics = "Cannot be empty; should be >= 0.";
|
|
216
|
+
attribute :>> unit = "minutes";
|
|
217
|
+
attribute :>> minValue = "0";
|
|
218
|
+
attribute :>> maxValue = "999";
|
|
219
|
+
attribute :>> encoding = "Time";
|
|
220
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
221
|
+
}
|
|
222
|
+
part ddFlowRateBasalProg : DataDefinition {
|
|
223
|
+
attribute :>> id = "DD-010";
|
|
224
|
+
attribute :>> name = "FlowRate_basal_prog";
|
|
225
|
+
attribute :>> description = "Prescribed rate of flow of drug during BASAL delivery mode; default FlowRate_lo_hd.";
|
|
226
|
+
attribute :>> semantics = "Between FlowRate_lo_hd and FlowRate_hi_hd for DrugName_prog; should be < VTBI_total_prog / Duration_total_prog.";
|
|
227
|
+
attribute :>> unit = "ml/hr";
|
|
228
|
+
attribute :>> minValue = "0";
|
|
229
|
+
attribute :>> maxValue = "999";
|
|
230
|
+
attribute :>> encoding = "Positive Integer";
|
|
231
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
232
|
+
}
|
|
233
|
+
part ddFlowRateSbolusProg : DataDefinition {
|
|
234
|
+
attribute :>> id = "DD-011";
|
|
235
|
+
attribute :>> name = "FlowRate_sbolus_prog";
|
|
236
|
+
attribute :>> description = "Prescribed flow rate of drug during SQUARE bolus delivery.";
|
|
237
|
+
attribute :>> semantics = ">= 0; if Duration_sbolus_prog or Interval_sbolus_prog > 0, must be between FlowRate_lo_hd and FlowRate_hi_hd.";
|
|
238
|
+
attribute :>> unit = "ml/hr";
|
|
239
|
+
attribute :>> minValue = "0";
|
|
240
|
+
attribute :>> maxValue = "999";
|
|
241
|
+
attribute :>> encoding = "Positive Integer";
|
|
242
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
243
|
+
}
|
|
244
|
+
part ddDurationSbolusProg : DataDefinition {
|
|
245
|
+
attribute :>> id = "DD-012";
|
|
246
|
+
attribute :>> name = "Duration_sbolus_prog";
|
|
247
|
+
attribute :>> description = "Maximum duration of a single uninterrupted square bolus delivery.";
|
|
248
|
+
attribute :>> semantics = ">= 0; if FlowRate_sbolus_prog or Interval_sbolus_prog > 0, must be < Interval_sbolus_prog and Duration_total_prog.";
|
|
249
|
+
attribute :>> unit = "minutes";
|
|
250
|
+
attribute :>> minValue = "0";
|
|
251
|
+
attribute :>> maxValue = "999";
|
|
252
|
+
attribute :>> encoding = "Time";
|
|
253
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
254
|
+
}
|
|
255
|
+
part ddIntervalSbolusProg : DataDefinition {
|
|
256
|
+
attribute :>> id = "DD-013";
|
|
257
|
+
attribute :>> name = "Interval_sbolus_prog";
|
|
258
|
+
attribute :>> description = "Minimum interval between two consecutive square bolus initiations; the first square bolus starts Interval_sbolus_prog minutes after infusion initiation.";
|
|
259
|
+
attribute :>> semantics = ">= 0; if FlowRate_sbolus_prog or Duration_sbolus_prog > 0, must be > Duration_sbolus_prog.";
|
|
260
|
+
attribute :>> unit = "minutes";
|
|
261
|
+
attribute :>> minValue = "0";
|
|
262
|
+
attribute :>> maxValue = "999";
|
|
263
|
+
attribute :>> encoding = "Positive Integer";
|
|
264
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
265
|
+
}
|
|
266
|
+
part ddFlowRatePbolusProg : DataDefinition {
|
|
267
|
+
attribute :>> id = "DD-014";
|
|
268
|
+
attribute :>> name = "FlowRate_pbolus_prog";
|
|
269
|
+
attribute :>> description = "Prescribed flow rate of drug during patient bolus delivery.";
|
|
270
|
+
attribute :>> semantics = ">= 0; if Duration_pbolus_prog or LockOutPeriod_pbolus_prog > 0, must be between FlowRate_lo_hd and FlowRate_hi_hd.";
|
|
271
|
+
attribute :>> unit = "ml/hr";
|
|
272
|
+
attribute :>> minValue = "0";
|
|
273
|
+
attribute :>> maxValue = "999";
|
|
274
|
+
attribute :>> encoding = "Positive Integer";
|
|
275
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
276
|
+
}
|
|
277
|
+
part ddDurationPbolusProg : DataDefinition {
|
|
278
|
+
attribute :>> id = "DD-015";
|
|
279
|
+
attribute :>> name = "Duration_pbolus_prog";
|
|
280
|
+
attribute :>> description = "Maximum duration of a single uninterrupted patient bolus delivery.";
|
|
281
|
+
attribute :>> semantics = ">= 0; if FlowRate_pbolus_prog or LockOutPeriod_pbolus_prog > 0, must be < LockOutPeriod_pbolus_prog and Duration_total_prog.";
|
|
282
|
+
attribute :>> unit = "minutes";
|
|
283
|
+
attribute :>> minValue = "0";
|
|
284
|
+
attribute :>> maxValue = "999";
|
|
285
|
+
attribute :>> encoding = "Time";
|
|
286
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
287
|
+
}
|
|
288
|
+
part ddLockOutPeriodPbolusProg : DataDefinition {
|
|
289
|
+
attribute :>> id = "DD-016";
|
|
290
|
+
attribute :>> name = "LockOutPeriod_pbolus_prog";
|
|
291
|
+
attribute :>> description = "Minimum interval between two consecutive patient bolus initiations (the lockout period), irrespective of interruption or completion.";
|
|
292
|
+
attribute :>> semantics = ">= 0; if FlowRate_pbolus_prog or Duration_pbolus_prog > 0, must be > Duration_pbolus_prog.";
|
|
293
|
+
attribute :>> unit = "minutes";
|
|
294
|
+
attribute :>> minValue = "0";
|
|
295
|
+
attribute :>> maxValue = "999";
|
|
296
|
+
attribute :>> encoding = "Positive Integer";
|
|
297
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
298
|
+
}
|
|
299
|
+
part ddNumberMaxPbolusProg : DataDefinition {
|
|
300
|
+
attribute :>> id = "DD-017";
|
|
301
|
+
attribute :>> name = "NumberMax_pbolus_prog";
|
|
302
|
+
attribute :>> description = "Maximum total number of patient boluses that may be initiated during Duration_total_prog.";
|
|
303
|
+
attribute :>> semantics = ">= 0; must be <= NumberMax_pbolus_hd for DrugName_prog in the hospital database.";
|
|
304
|
+
attribute :>> unit = "per hour";
|
|
305
|
+
attribute :>> minValue = "0";
|
|
306
|
+
attribute :>> maxValue = "999";
|
|
307
|
+
attribute :>> encoding = "Positive Integer";
|
|
308
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.1 Prescription Data";
|
|
309
|
+
}
|
|
310
|
+
part ddSystemStartProg : DataDefinition {
|
|
311
|
+
attribute :>> id = "DD-018";
|
|
312
|
+
attribute :>> name = "System_start_prog";
|
|
313
|
+
attribute :>> description = "Command to start the system.";
|
|
314
|
+
attribute :>> semantics = "Can be commanded only if the system is in OFF mode.";
|
|
315
|
+
attribute :>> unit = "NA";
|
|
316
|
+
attribute :>> encoding = "Boolean event";
|
|
317
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
318
|
+
}
|
|
319
|
+
part ddSystemStopProg : DataDefinition {
|
|
320
|
+
attribute :>> id = "DD-019";
|
|
321
|
+
attribute :>> name = "System_stop_prog";
|
|
322
|
+
attribute :>> description = "Command to stop the system.";
|
|
323
|
+
attribute :>> semantics = "Can be commanded only if the system is in ON mode.";
|
|
324
|
+
attribute :>> unit = "NA";
|
|
325
|
+
attribute :>> encoding = "Boolean event";
|
|
326
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
327
|
+
}
|
|
328
|
+
part ddInfusionInitiateProg : DataDefinition {
|
|
329
|
+
attribute :>> id = "DD-020";
|
|
330
|
+
attribute :>> name = "Infusion_initiate_prog";
|
|
331
|
+
attribute :>> description = "Command to initiate infusion of drug.";
|
|
332
|
+
attribute :>> semantics = "Can be commanded only if the system is in ON mode.";
|
|
333
|
+
attribute :>> unit = "NA";
|
|
334
|
+
attribute :>> encoding = "Boolean event";
|
|
335
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
336
|
+
}
|
|
337
|
+
part ddInfusionInhibitProg : DataDefinition {
|
|
338
|
+
attribute :>> id = "DD-021";
|
|
339
|
+
attribute :>> name = "Infusion_inhibit_prog";
|
|
340
|
+
attribute :>> description = "Command to inhibit infusion of drug.";
|
|
341
|
+
attribute :>> semantics = "Can be commanded only if the system is in ON mode.";
|
|
342
|
+
attribute :>> unit = "NA";
|
|
343
|
+
attribute :>> encoding = "Boolean event";
|
|
344
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
345
|
+
}
|
|
346
|
+
part ddSystemSaveProg : DataDefinition {
|
|
347
|
+
attribute :>> id = "DD-022";
|
|
348
|
+
attribute :>> name = "System_save_prog";
|
|
349
|
+
attribute :>> description = "Command to save the prescription and reservoir initial volume data.";
|
|
350
|
+
attribute :>> semantics = "Can be commanded only if the system is in ON mode.";
|
|
351
|
+
attribute :>> unit = "NA";
|
|
352
|
+
attribute :>> encoding = "Boolean event";
|
|
353
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
354
|
+
}
|
|
355
|
+
part ddNotificationCancelProg : DataDefinition {
|
|
356
|
+
attribute :>> id = "DD-023";
|
|
357
|
+
attribute :>> name = "Notification_cancel_prog";
|
|
358
|
+
attribute :>> description = "Command to cancel a selected notification.";
|
|
359
|
+
attribute :>> semantics = "Can be commanded only in ON mode and if a notification is selected.";
|
|
360
|
+
attribute :>> unit = "NA";
|
|
361
|
+
attribute :>> encoding = "Boolean event";
|
|
362
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
363
|
+
}
|
|
364
|
+
part ddDisableAudioProg : DataDefinition {
|
|
365
|
+
attribute :>> id = "DD-024";
|
|
366
|
+
attribute :>> name = "Disable_audio_prog";
|
|
367
|
+
attribute :>> description = "Command to disable audio notifications, permanently or temporarily.";
|
|
368
|
+
attribute :>> semantics = "Default FALSE.";
|
|
369
|
+
attribute :>> unit = "NA";
|
|
370
|
+
attribute :>> encoding = "PERM | TEMP | FALSE";
|
|
371
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
372
|
+
}
|
|
373
|
+
part ddEnableAudioProg : DataDefinition {
|
|
374
|
+
attribute :>> id = "DD-025";
|
|
375
|
+
attribute :>> name = "Enable_audio_prog";
|
|
376
|
+
attribute :>> description = "Command to enable audio notifications.";
|
|
377
|
+
attribute :>> semantics = "Can be commanded only if audio is disabled.";
|
|
378
|
+
attribute :>> unit = "NA";
|
|
379
|
+
attribute :>> encoding = "Boolean event";
|
|
380
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
381
|
+
}
|
|
382
|
+
part ddDataConfigProg : DataDefinition {
|
|
383
|
+
attribute :>> id = "DD-026";
|
|
384
|
+
attribute :>> name = "DataConfig_prog";
|
|
385
|
+
attribute :>> description = "Command to configure prescription data (printed as 'DataCofig_prog' in the source).";
|
|
386
|
+
attribute :>> semantics = "Can be commanded only if the system is in ON mode.";
|
|
387
|
+
attribute :>> unit = "NA";
|
|
388
|
+
attribute :>> encoding = "Boolean event";
|
|
389
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.2 Commands";
|
|
390
|
+
}
|
|
391
|
+
part ddReservoirInitialVolumeProg : DataDefinition {
|
|
392
|
+
attribute :>> id = "DD-027";
|
|
393
|
+
attribute :>> name = "ReservoirInitialVolume_prog";
|
|
394
|
+
attribute :>> description = "Initial volume of drug in the reservoir at the time of entering the prescription; read from the reservoir label.";
|
|
395
|
+
attribute :>> semantics = "Mandatory; shall be >= X ml (threshold left unspecified in the source draft).";
|
|
396
|
+
attribute :>> unit = "ml";
|
|
397
|
+
attribute :>> minValue = "0";
|
|
398
|
+
attribute :>> maxValue = "999";
|
|
399
|
+
attribute :>> encoding = "Positive Integer";
|
|
400
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.1.3 Drug Reservoir Data";
|
|
401
|
+
}
|
|
402
|
+
part ddBolusRequestProg : DataDefinition {
|
|
403
|
+
attribute :>> id = "DD-028";
|
|
404
|
+
attribute :>> name = "BolusRequest_prog";
|
|
405
|
+
attribute :>> description = "Request by the patient to deliver a patient bolus.";
|
|
406
|
+
attribute :>> semantics = "Can be commanded only if the system is in ACTIVE mode.";
|
|
407
|
+
attribute :>> unit = "NA";
|
|
408
|
+
attribute :>> encoding = "Boolean event";
|
|
409
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.2 Bolus Request Interface";
|
|
410
|
+
}
|
|
411
|
+
part ddFlowRateOutput : DataDefinition {
|
|
412
|
+
attribute :>> id = "DD-029";
|
|
413
|
+
attribute :>> name = "FlowRate_output";
|
|
414
|
+
attribute :>> description = "Flow rate of the drug through the hose delivering the drug, measured every X seconds when the system is in ON mode.";
|
|
415
|
+
attribute :>> semantics = "None stated.";
|
|
416
|
+
attribute :>> unit = "ml/hr";
|
|
417
|
+
attribute :>> minValue = "0";
|
|
418
|
+
attribute :>> maxValue = "999";
|
|
419
|
+
attribute :>> encoding = "Positive Integer";
|
|
420
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.3 Drug Flow Interface";
|
|
421
|
+
}
|
|
422
|
+
part ddNotificationVisualOutput : DataDefinition {
|
|
423
|
+
attribute :>> id = "DD-030";
|
|
424
|
+
attribute :>> name = "Notification_Visual_output";
|
|
425
|
+
attribute :>> description = "Visual display of the messages of all active notifications in the system.";
|
|
426
|
+
attribute :>> semantics = "Messages displayed only when the system is in ON mode.";
|
|
427
|
+
attribute :>> unit = "NA";
|
|
428
|
+
attribute :>> encoding = "List of String";
|
|
429
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.4 Notification Interface";
|
|
430
|
+
}
|
|
431
|
+
part ddNotificationAudioOutput : DataDefinition {
|
|
432
|
+
attribute :>> id = "DD-031";
|
|
433
|
+
attribute :>> name = "Notification_Audio_output";
|
|
434
|
+
attribute :>> description = "Audio output for each active notification, in the same order as Notification_Visual_output.";
|
|
435
|
+
attribute :>> semantics = "Audio output possible only when the system is in ON mode.";
|
|
436
|
+
attribute :>> unit = "NA";
|
|
437
|
+
attribute :>> encoding = "List of Boolean";
|
|
438
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.4 Notification Interface";
|
|
439
|
+
}
|
|
440
|
+
part ddDrugNameHd : DataDefinition {
|
|
441
|
+
attribute :>> id = "DD-032";
|
|
442
|
+
attribute :>> name = "DrugName_hd";
|
|
443
|
+
attribute :>> description = "Name of a drug usable for infusion in the hospital that matches DrugName_prog.";
|
|
444
|
+
attribute :>> semantics = "None stated.";
|
|
445
|
+
attribute :>> unit = "NA";
|
|
446
|
+
attribute :>> encoding = "String";
|
|
447
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
448
|
+
}
|
|
449
|
+
part ddDrugConcentrationHiHd : DataDefinition {
|
|
450
|
+
attribute :>> id = "DD-033";
|
|
451
|
+
attribute :>> name = "DrugConcentration_hi_hd";
|
|
452
|
+
attribute :>> description = "Maximum concentration of the drug in a solution that can safely be used for infusion for DrugName_hd.";
|
|
453
|
+
attribute :>> semantics = "None stated.";
|
|
454
|
+
attribute :>> unit = "mg/ml";
|
|
455
|
+
attribute :>> minValue = "0";
|
|
456
|
+
attribute :>> maxValue = "999";
|
|
457
|
+
attribute :>> encoding = "Positive Integer";
|
|
458
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
459
|
+
}
|
|
460
|
+
part ddDrugConcentrationLoHd : DataDefinition {
|
|
461
|
+
attribute :>> id = "DD-034";
|
|
462
|
+
attribute :>> name = "DrugConcentration_lo_hd";
|
|
463
|
+
attribute :>> description = "Minimum concentration of the drug in a solution that can safely be used for infusion for DrugName_hd.";
|
|
464
|
+
attribute :>> semantics = "None stated.";
|
|
465
|
+
attribute :>> unit = "mg/ml";
|
|
466
|
+
attribute :>> minValue = "0";
|
|
467
|
+
attribute :>> maxValue = "999";
|
|
468
|
+
attribute :>> encoding = "Positive Integer";
|
|
469
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
470
|
+
}
|
|
471
|
+
part ddVTBIHiHd : DataDefinition {
|
|
472
|
+
attribute :>> id = "DD-035";
|
|
473
|
+
attribute :>> name = "VTBI_hi_hd";
|
|
474
|
+
attribute :>> description = "Maximum volume of drug that is safe to be infused for DrugName_hd.";
|
|
475
|
+
attribute :>> semantics = "None stated.";
|
|
476
|
+
attribute :>> unit = "ml/hr";
|
|
477
|
+
attribute :>> minValue = "0";
|
|
478
|
+
attribute :>> maxValue = "999";
|
|
479
|
+
attribute :>> encoding = "Positive Integer";
|
|
480
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
481
|
+
}
|
|
482
|
+
part ddVTBILoHd : DataDefinition {
|
|
483
|
+
attribute :>> id = "DD-036";
|
|
484
|
+
attribute :>> name = "VTBI_lo_hd";
|
|
485
|
+
attribute :>> description = "Minimum volume of drug that is safe to be infused for DrugName_hd.";
|
|
486
|
+
attribute :>> semantics = "Mandatory.";
|
|
487
|
+
attribute :>> unit = "ml/hr";
|
|
488
|
+
attribute :>> minValue = "0";
|
|
489
|
+
attribute :>> maxValue = "999";
|
|
490
|
+
attribute :>> encoding = "Positive Integer";
|
|
491
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
492
|
+
}
|
|
493
|
+
part ddFlowRateHiHd : DataDefinition {
|
|
494
|
+
attribute :>> id = "DD-037";
|
|
495
|
+
attribute :>> name = "FlowRate_hi_hd";
|
|
496
|
+
attribute :>> description = "Maximum safe flow rate of the drug for DrugName_hd.";
|
|
497
|
+
attribute :>> semantics = "Mandatory.";
|
|
498
|
+
attribute :>> unit = "ml/hr";
|
|
499
|
+
attribute :>> minValue = "0";
|
|
500
|
+
attribute :>> maxValue = "999";
|
|
501
|
+
attribute :>> encoding = "Positive Integer";
|
|
502
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
503
|
+
}
|
|
504
|
+
part ddFlowRateLoHd : DataDefinition {
|
|
505
|
+
attribute :>> id = "DD-038";
|
|
506
|
+
attribute :>> name = "FlowRate_lo_hd";
|
|
507
|
+
attribute :>> description = "Minimum safe flow rate of the drug for DrugName_hd.";
|
|
508
|
+
attribute :>> semantics = "Mandatory.";
|
|
509
|
+
attribute :>> unit = "ml/hr";
|
|
510
|
+
attribute :>> minValue = "0";
|
|
511
|
+
attribute :>> maxValue = "999";
|
|
512
|
+
attribute :>> encoding = "Positive Integer";
|
|
513
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
514
|
+
}
|
|
515
|
+
part ddIntervalPbolusHd : DataDefinition {
|
|
516
|
+
attribute :>> id = "DD-039";
|
|
517
|
+
attribute :>> name = "Interval_pbolus_hd";
|
|
518
|
+
attribute :>> description = "Minimum safe interval between two consecutive patient bolus initiations for DrugName_hd.";
|
|
519
|
+
attribute :>> semantics = "Mandatory.";
|
|
520
|
+
attribute :>> unit = "minutes";
|
|
521
|
+
attribute :>> minValue = "0";
|
|
522
|
+
attribute :>> maxValue = "999";
|
|
523
|
+
attribute :>> encoding = "Positive Integer";
|
|
524
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
525
|
+
}
|
|
526
|
+
part ddNumberMaxPbolusHd : DataDefinition {
|
|
527
|
+
attribute :>> id = "DD-040";
|
|
528
|
+
attribute :>> name = "NumberMax_pbolus_hd";
|
|
529
|
+
attribute :>> description = "Maximum number of patient bolus initiations safe to be self-administered for DrugName_hd.";
|
|
530
|
+
attribute :>> semantics = "Mandatory.";
|
|
531
|
+
attribute :>> unit = "per hr";
|
|
532
|
+
attribute :>> minValue = "0";
|
|
533
|
+
attribute :>> maxValue = "999";
|
|
534
|
+
attribute :>> encoding = "Positive Integer";
|
|
535
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
536
|
+
}
|
|
537
|
+
part ddFlowRateKvoHd : DataDefinition {
|
|
538
|
+
attribute :>> id = "DD-041";
|
|
539
|
+
attribute :>> name = "FlowRate_kvo_hd";
|
|
540
|
+
attribute :>> description = "Minimum flow rate of DrugName_hd that should be maintained to keep the vein open (KVO); default 0.1.";
|
|
541
|
+
attribute :>> semantics = "Mandatory.";
|
|
542
|
+
attribute :>> unit = "ml/hr";
|
|
543
|
+
attribute :>> minValue = "0";
|
|
544
|
+
attribute :>> maxValue = "5";
|
|
545
|
+
attribute :>> encoding = "Positive Integer";
|
|
546
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), §3.5 Hospital Pharmacy Database Interface";
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// ── Device-boundary exchanges (GPCA_Device.aadl level) ─────
|
|
550
|
+
part exSensorVector : ComponentExchange {
|
|
551
|
+
attribute :>> id = "CE-001";
|
|
552
|
+
attribute :>> name = "SensorStatusVectorExchange";
|
|
553
|
+
attribute :>> exchangeKind = FlowKind::measurement;
|
|
554
|
+
attribute :>> sourcePort = "HW-001: GPCA_HW_Sensors";
|
|
555
|
+
attribute :>> targetPort = "GPCA_SW.SENSOR_IN (PORT-04)";
|
|
556
|
+
attribute :>> allocatedFunctionalExchanges = "LF-001: SensorAcquisitionFlow";
|
|
557
|
+
attribute :>> direction = DirectionKind::input;
|
|
558
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
559
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_Device.aadl";
|
|
560
|
+
}
|
|
561
|
+
part exFlowCommand : ComponentExchange {
|
|
562
|
+
attribute :>> id = "CE-002";
|
|
563
|
+
attribute :>> name = "FlowCommandExchange";
|
|
564
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
565
|
+
attribute :>> sourcePort = "GPCA_SW.GPCA_SW_OUT (Commanded_Flow_Rate)";
|
|
566
|
+
attribute :>> targetPort = "HW-003: PumpMotorAssembly";
|
|
567
|
+
attribute :>> allocatedFunctionalExchanges = "LF-002: FlowCommandFlow";
|
|
568
|
+
attribute :>> direction = DirectionKind::output;
|
|
569
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
570
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_Device.aadl";
|
|
571
|
+
}
|
|
572
|
+
part exAlarmAnnunciation : ComponentExchange {
|
|
573
|
+
attribute :>> id = "CE-003";
|
|
574
|
+
attribute :>> name = "AlarmAnnunciationExchange";
|
|
575
|
+
attribute :>> exchangeKind = FlowKind::alarm;
|
|
576
|
+
attribute :>> sourcePort = "GPCA_SW.GPCA_SW_OUT (Notification_Message, Is_Audio_Disabled)";
|
|
577
|
+
attribute :>> targetPort = "HW-004: AudibleAlarmAnnunciator / HW-005: OperatorDisplay";
|
|
578
|
+
attribute :>> allocatedFunctionalExchanges = "LF-003: AlarmSignalFlow";
|
|
579
|
+
attribute :>> direction = DirectionKind::output;
|
|
580
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
581
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_Device.aadl";
|
|
582
|
+
}
|
|
583
|
+
part exPrescriptionEntry : ComponentExchange {
|
|
584
|
+
attribute :>> id = "CE-004";
|
|
585
|
+
attribute :>> name = "PrescriptionEntryExchange";
|
|
586
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
587
|
+
attribute :>> sourcePort = "HW-012: OperatorKeypad";
|
|
588
|
+
attribute :>> targetPort = "GPCA_SW.PRES_IN / GPCA_SW.OP_CMD_IN (PORT-02, PORT-01)";
|
|
589
|
+
attribute :>> allocatedFunctionalExchanges = "LF-004: PrescriptionEntryFlow";
|
|
590
|
+
attribute :>> direction = DirectionKind::input;
|
|
591
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
592
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_Device.aadl";
|
|
593
|
+
}
|
|
594
|
+
|
|
595
|
+
// ── GPCA_SW top-level ports (AADL GPCA_SW.aadl features) ────
|
|
596
|
+
part portOpCmdIn : SoftwarePort {
|
|
597
|
+
attribute :>> id = "PORT-01"; attribute :>> name = "OP_CMD_IN";
|
|
598
|
+
attribute :>> description = "Operator commands (System_Start/Stop, Infusion_Initiate/Inhibit, Notification_Cancel, Disable/Enable_Audio, DataConfig) from the data entry interface (I 2).";
|
|
599
|
+
attribute :>> portKind = InterfaceKind::control;
|
|
600
|
+
attribute :>> direction = DirectionKind::input;
|
|
601
|
+
attribute :>> dataTypeName = "DATATYPES::Operator_Commands.Impl";
|
|
602
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
603
|
+
}
|
|
604
|
+
part portPresIn : SoftwarePort {
|
|
605
|
+
attribute :>> id = "PORT-02"; attribute :>> name = "PRES_IN";
|
|
606
|
+
attribute :>> description = "Prescription data entry fields (I 1, 13 fields PatientID_prog..NumberMax_pbolus_prog).";
|
|
607
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
608
|
+
attribute :>> direction = DirectionKind::input;
|
|
609
|
+
attribute :>> dataTypeName = "DATATYPES::Prescription_Inputs.Impl";
|
|
610
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
611
|
+
}
|
|
612
|
+
part portPatientIn : SoftwarePort {
|
|
613
|
+
attribute :>> id = "PORT-03"; attribute :>> name = "PATIENT_IN";
|
|
614
|
+
attribute :>> description = "Patient bolus request (I 4, BolusRequest_prog).";
|
|
615
|
+
attribute :>> portKind = InterfaceKind::userInteraction;
|
|
616
|
+
attribute :>> direction = DirectionKind::input;
|
|
617
|
+
attribute :>> dataTypeName = "DATATYPES::Patient_Inputs.Impl";
|
|
618
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
619
|
+
}
|
|
620
|
+
part portSensorIn : SoftwarePort {
|
|
621
|
+
attribute :>> id = "PORT-04"; attribute :>> name = "SENSOR_IN";
|
|
622
|
+
attribute :>> description = "Device sensor inputs (air-in-line, occlusion, door, reservoir, flow).";
|
|
623
|
+
attribute :>> portKind = InterfaceKind::digitalSignal;
|
|
624
|
+
attribute :>> direction = DirectionKind::input;
|
|
625
|
+
attribute :>> dataTypeName = "DATATYPES::Device_Sensor_Inputs.Impl";
|
|
626
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
627
|
+
}
|
|
628
|
+
part portConstIn : SoftwarePort {
|
|
629
|
+
attribute :>> id = "PORT-05"; attribute :>> name = "CONST_IN";
|
|
630
|
+
attribute :>> description = "Device configuration constants (App. A.4 values such as Empty_Reservoir, tolerances).";
|
|
631
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
632
|
+
attribute :>> direction = DirectionKind::input;
|
|
633
|
+
attribute :>> dataTypeName = "DATATYPES::Device_Configuration_Inputs.Impl";
|
|
634
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
635
|
+
}
|
|
636
|
+
part portDbIn : SoftwarePort {
|
|
637
|
+
attribute :>> id = "PORT-06"; attribute :>> name = "DB_IN";
|
|
638
|
+
attribute :>> description = "Hospital pharmacy database safe values (I 9-I 11); realizes SI-005 HospitalPharmacyDatabaseInterface.";
|
|
639
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
640
|
+
attribute :>> direction = DirectionKind::input;
|
|
641
|
+
attribute :>> dataTypeName = "DATATYPES::Drug_Database_Inputs.Impl";
|
|
642
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
643
|
+
}
|
|
644
|
+
part portGpcaSwOut : SoftwarePort {
|
|
645
|
+
attribute :>> id = "PORT-07"; attribute :>> name = "GPCA_SW_OUT";
|
|
646
|
+
attribute :>> description = "Aggregated software output vector (Current_System_Mode, Commanded_Flow_Rate, notifications, prescription echo, status).";
|
|
647
|
+
attribute :>> portKind = InterfaceKind::data;
|
|
648
|
+
attribute :>> direction = DirectionKind::output;
|
|
649
|
+
attribute :>> dataTypeName = "DATATYPES::GPCA_SW_Outputs.Impl";
|
|
650
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
// ── GPCA_SW.Impl inter-component connections (AADL, 1:1) ────
|
|
654
|
+
// ALARM_to_IM immediate is the same-step alarm-response
|
|
655
|
+
// mechanism the formal properties rely on.
|
|
656
|
+
part ceOpCmdToTlm : ComponentExchange {
|
|
657
|
+
attribute :>> id = "CE-101"; attribute :>> name = "OP_CMDtoTLM";
|
|
658
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
659
|
+
attribute :>> sourcePort = "OP_CMD_IN";
|
|
660
|
+
attribute :>> targetPort = "TLM.OP_CMD_IN";
|
|
661
|
+
attribute :>> direction = DirectionKind::input;
|
|
662
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
663
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
664
|
+
}
|
|
665
|
+
part ceConstToTlm : ComponentExchange {
|
|
666
|
+
attribute :>> id = "CE-102"; attribute :>> name = "CONSTtoTLM";
|
|
667
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
668
|
+
attribute :>> sourcePort = "CONST_IN";
|
|
669
|
+
attribute :>> targetPort = "TLM.CONST_IN";
|
|
670
|
+
attribute :>> direction = DirectionKind::input;
|
|
671
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
672
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
673
|
+
}
|
|
674
|
+
part ceTlmOutToOutput : ComponentExchange {
|
|
675
|
+
attribute :>> id = "CE-103"; attribute :>> name = "TLM_OUT_toOUTPUT";
|
|
676
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
677
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
678
|
+
attribute :>> targetPort = "OUTPUT.TLM_MODE_IN";
|
|
679
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
680
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
681
|
+
}
|
|
682
|
+
part ceImToSysStat : ComponentExchange {
|
|
683
|
+
attribute :>> id = "CE-104"; attribute :>> name = "IM_to_SYS_STAT";
|
|
684
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
685
|
+
attribute :>> sourcePort = "IM.IM_OUT";
|
|
686
|
+
attribute :>> targetPort = "SYS_STAT.IM_IN";
|
|
687
|
+
attribute :>> timingSemantics = "sampled (no timing property in source; AADL default breaks the feedback cycle)";
|
|
688
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
689
|
+
}
|
|
690
|
+
part ceTlmToSysStat : ComponentExchange {
|
|
691
|
+
attribute :>> id = "CE-105"; attribute :>> name = "TLM_to_SYS_STAT";
|
|
692
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
693
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
694
|
+
attribute :>> targetPort = "SYS_STAT.TLM_MODE_IN";
|
|
695
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
696
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
697
|
+
}
|
|
698
|
+
part ceSensorToSysStat : ComponentExchange {
|
|
699
|
+
attribute :>> id = "CE-106"; attribute :>> name = "SENSOR_to_SYS_STAT";
|
|
700
|
+
attribute :>> exchangeKind = FlowKind::measurement;
|
|
701
|
+
attribute :>> sourcePort = "SENSOR_IN";
|
|
702
|
+
attribute :>> targetPort = "SYS_STAT.SENSOR_IN";
|
|
703
|
+
attribute :>> direction = DirectionKind::input;
|
|
704
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
705
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
706
|
+
}
|
|
707
|
+
part ceConstToSysStat : ComponentExchange {
|
|
708
|
+
attribute :>> id = "CE-107"; attribute :>> name = "CONST_to_SYS_STAT";
|
|
709
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
710
|
+
attribute :>> sourcePort = "CONST_IN";
|
|
711
|
+
attribute :>> targetPort = "SYS_STAT.CONST_IN";
|
|
712
|
+
attribute :>> direction = DirectionKind::input;
|
|
713
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
714
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
715
|
+
}
|
|
716
|
+
part ceConfigToSysStat : ComponentExchange {
|
|
717
|
+
attribute :>> id = "CE-108"; attribute :>> name = "CONFIG_to_SYS_STAT";
|
|
718
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
719
|
+
attribute :>> sourcePort = "CONFIG.CONFIG_OUT";
|
|
720
|
+
attribute :>> targetPort = "SYS_STAT.CONFIG_IN";
|
|
721
|
+
attribute :>> timingSemantics = "sampled (no timing property in source; AADL default breaks the feedback cycle)";
|
|
722
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
723
|
+
}
|
|
724
|
+
part ceSysStatOutToOutput : ComponentExchange {
|
|
725
|
+
attribute :>> id = "CE-109"; attribute :>> name = "SYS_STAT_OUT_toOUTPUT";
|
|
726
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
727
|
+
attribute :>> sourcePort = "SYS_STAT.SYS_STAT_OUT";
|
|
728
|
+
attribute :>> targetPort = "OUTPUT.SYS_STAT_IN";
|
|
729
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
730
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
731
|
+
}
|
|
732
|
+
part ceImToAlarm : ComponentExchange {
|
|
733
|
+
attribute :>> id = "CE-110"; attribute :>> name = "IM_to_ALARM";
|
|
734
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
735
|
+
attribute :>> sourcePort = "IM.IM_OUT";
|
|
736
|
+
attribute :>> targetPort = "ALARM.IM_IN";
|
|
737
|
+
attribute :>> timingSemantics = "sampled (no timing property in source; AADL default breaks the feedback cycle)";
|
|
738
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
739
|
+
}
|
|
740
|
+
part ceTlmToAlarm : ComponentExchange {
|
|
741
|
+
attribute :>> id = "CE-111"; attribute :>> name = "TLM_to_ALARM";
|
|
742
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
743
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
744
|
+
attribute :>> targetPort = "ALARM.TLM_MODE_IN";
|
|
745
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
746
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
747
|
+
}
|
|
748
|
+
part ceSysMonToAlarm : ComponentExchange {
|
|
749
|
+
attribute :>> id = "CE-112"; attribute :>> name = "SYS_MON_to_ALARM";
|
|
750
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
751
|
+
attribute :>> sourcePort = "SYS_MON.SYS_MON_OUT";
|
|
752
|
+
attribute :>> targetPort = "ALARM.SYS_MON_IN";
|
|
753
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
754
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
755
|
+
}
|
|
756
|
+
part ceOpCmdToAlarm : ComponentExchange {
|
|
757
|
+
attribute :>> id = "CE-113"; attribute :>> name = "OP_CMD_to_ALARM";
|
|
758
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
759
|
+
attribute :>> sourcePort = "OP_CMD_IN";
|
|
760
|
+
attribute :>> targetPort = "ALARM.OP_CMD_IN";
|
|
761
|
+
attribute :>> direction = DirectionKind::input;
|
|
762
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
763
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
764
|
+
}
|
|
765
|
+
part ceDbToAlarm : ComponentExchange {
|
|
766
|
+
attribute :>> id = "CE-114"; attribute :>> name = "DB_to_ALARM";
|
|
767
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
768
|
+
attribute :>> sourcePort = "DB_IN";
|
|
769
|
+
attribute :>> targetPort = "ALARM.DB_IN";
|
|
770
|
+
attribute :>> direction = DirectionKind::input;
|
|
771
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
772
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
773
|
+
}
|
|
774
|
+
part ceSensorToAlarm : ComponentExchange {
|
|
775
|
+
attribute :>> id = "CE-115"; attribute :>> name = "SENSOR_to_ALARM";
|
|
776
|
+
attribute :>> exchangeKind = FlowKind::measurement;
|
|
777
|
+
attribute :>> sourcePort = "SENSOR_IN";
|
|
778
|
+
attribute :>> targetPort = "ALARM.SENSOR_IN";
|
|
779
|
+
attribute :>> direction = DirectionKind::input;
|
|
780
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
781
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
782
|
+
}
|
|
783
|
+
part ceConstToAlarm : ComponentExchange {
|
|
784
|
+
attribute :>> id = "CE-116"; attribute :>> name = "CONST_to_ALARM";
|
|
785
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
786
|
+
attribute :>> sourcePort = "CONST_IN";
|
|
787
|
+
attribute :>> targetPort = "ALARM.CONST_IN";
|
|
788
|
+
attribute :>> direction = DirectionKind::input;
|
|
789
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
790
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
791
|
+
}
|
|
792
|
+
part ceSysStatToAlarm : ComponentExchange {
|
|
793
|
+
attribute :>> id = "CE-117"; attribute :>> name = "SYS_STAT_to_ALARM";
|
|
794
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
795
|
+
attribute :>> sourcePort = "SYS_STAT.SYS_STAT_OUT";
|
|
796
|
+
attribute :>> targetPort = "ALARM.SYS_STAT_IN";
|
|
797
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
798
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
799
|
+
}
|
|
800
|
+
part ceConfigToAlarm : ComponentExchange {
|
|
801
|
+
attribute :>> id = "CE-118"; attribute :>> name = "CONFIG_to_ALARM";
|
|
802
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
803
|
+
attribute :>> sourcePort = "CONFIG.CONFIG_OUT";
|
|
804
|
+
attribute :>> targetPort = "ALARM.CONFIG_IN";
|
|
805
|
+
attribute :>> timingSemantics = "sampled (no timing property in source; AADL default breaks the feedback cycle)";
|
|
806
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
807
|
+
}
|
|
808
|
+
part ceAlarmOutToOutput : ComponentExchange {
|
|
809
|
+
attribute :>> id = "CE-119"; attribute :>> name = "ALARM_OUT_toOUTPUT";
|
|
810
|
+
attribute :>> exchangeKind = FlowKind::alarm;
|
|
811
|
+
attribute :>> sourcePort = "ALARM.ALARM_OUT";
|
|
812
|
+
attribute :>> targetPort = "OUTPUT.ALARM_IN";
|
|
813
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
814
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
815
|
+
}
|
|
816
|
+
part ceTlmToConfig : ComponentExchange {
|
|
817
|
+
attribute :>> id = "CE-120"; attribute :>> name = "TLM_to_CONFIG";
|
|
818
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
819
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
820
|
+
attribute :>> targetPort = "CONFIG.TLM_MODE_IN";
|
|
821
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
822
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
823
|
+
}
|
|
824
|
+
part cePresToConfig : ComponentExchange {
|
|
825
|
+
attribute :>> id = "CE-121"; attribute :>> name = "PRES_to_CONFIG";
|
|
826
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
827
|
+
attribute :>> sourcePort = "PRES_IN";
|
|
828
|
+
attribute :>> targetPort = "CONFIG.PRES_IN";
|
|
829
|
+
attribute :>> direction = DirectionKind::input;
|
|
830
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
831
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
832
|
+
}
|
|
833
|
+
part ceOpCmdToConfig : ComponentExchange {
|
|
834
|
+
attribute :>> id = "CE-122"; attribute :>> name = "OP_CMD_to_CONFIG";
|
|
835
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
836
|
+
attribute :>> sourcePort = "OP_CMD_IN";
|
|
837
|
+
attribute :>> targetPort = "CONFIG.OP_CMD_IN";
|
|
838
|
+
attribute :>> direction = DirectionKind::input;
|
|
839
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
840
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
841
|
+
}
|
|
842
|
+
part ceDbToConfig : ComponentExchange {
|
|
843
|
+
attribute :>> id = "CE-123"; attribute :>> name = "DB_to_CONFIG";
|
|
844
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
845
|
+
attribute :>> sourcePort = "DB_IN";
|
|
846
|
+
attribute :>> targetPort = "CONFIG.DB_IN";
|
|
847
|
+
attribute :>> direction = DirectionKind::input;
|
|
848
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
849
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
850
|
+
}
|
|
851
|
+
part ceConsToConfig : ComponentExchange {
|
|
852
|
+
attribute :>> id = "CE-124"; attribute :>> name = "CONS_to_CONFIG";
|
|
853
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
854
|
+
attribute :>> sourcePort = "CONST_IN";
|
|
855
|
+
attribute :>> targetPort = "CONFIG.CONST_IN";
|
|
856
|
+
attribute :>> direction = DirectionKind::input;
|
|
857
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
858
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
859
|
+
}
|
|
860
|
+
part ceSysStatToConfig : ComponentExchange {
|
|
861
|
+
attribute :>> id = "CE-125"; attribute :>> name = "SYS_STAT_to_CONFIG";
|
|
862
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
863
|
+
attribute :>> sourcePort = "SYS_STAT.SYS_STAT_OUT";
|
|
864
|
+
attribute :>> targetPort = "CONFIG.SYS_STAT_IN";
|
|
865
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
866
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
867
|
+
}
|
|
868
|
+
part ceConfigToOutput : ComponentExchange {
|
|
869
|
+
attribute :>> id = "CE-126"; attribute :>> name = "CONFIG_toOUTPUT";
|
|
870
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
871
|
+
attribute :>> sourcePort = "CONFIG.CONFIG_OUT";
|
|
872
|
+
attribute :>> targetPort = "OUTPUT.CONFIG_IN";
|
|
873
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
874
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
875
|
+
}
|
|
876
|
+
part ceTlmToIm : ComponentExchange {
|
|
877
|
+
attribute :>> id = "CE-127"; attribute :>> name = "TLM_to_IM";
|
|
878
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
879
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
880
|
+
attribute :>> targetPort = "IM.TLM_MODE_IN";
|
|
881
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
882
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
883
|
+
}
|
|
884
|
+
part ceOpCmdToIm : ComponentExchange {
|
|
885
|
+
attribute :>> id = "CE-128"; attribute :>> name = "OP_CMD_to_IM";
|
|
886
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
887
|
+
attribute :>> sourcePort = "OP_CMD_IN";
|
|
888
|
+
attribute :>> targetPort = "IM.OP_CMD_IN";
|
|
889
|
+
attribute :>> direction = DirectionKind::input;
|
|
890
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
891
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
892
|
+
}
|
|
893
|
+
part cePatientToIm : ComponentExchange {
|
|
894
|
+
attribute :>> id = "CE-129"; attribute :>> name = "PATIENT_to_IM";
|
|
895
|
+
attribute :>> exchangeKind = FlowKind::command;
|
|
896
|
+
attribute :>> sourcePort = "PATIENT_IN";
|
|
897
|
+
attribute :>> targetPort = "IM.PATIENT_IN";
|
|
898
|
+
attribute :>> direction = DirectionKind::input;
|
|
899
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
900
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
901
|
+
}
|
|
902
|
+
part ceConfigToIm : ComponentExchange {
|
|
903
|
+
attribute :>> id = "CE-130"; attribute :>> name = "CONFIG_to_IM";
|
|
904
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
905
|
+
attribute :>> sourcePort = "CONFIG.CONFIG_OUT";
|
|
906
|
+
attribute :>> targetPort = "IM.CONFIG_IN";
|
|
907
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
908
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
909
|
+
}
|
|
910
|
+
part ceAlarmToIm : ComponentExchange {
|
|
911
|
+
attribute :>> id = "CE-131"; attribute :>> name = "ALARM_to_IM";
|
|
912
|
+
attribute :>> exchangeKind = FlowKind::alarm;
|
|
913
|
+
attribute :>> sourcePort = "ALARM.ALARM_OUT";
|
|
914
|
+
attribute :>> targetPort = "IM.ALARM_IN";
|
|
915
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
916
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
917
|
+
}
|
|
918
|
+
part ceSysStatToIm : ComponentExchange {
|
|
919
|
+
attribute :>> id = "CE-132"; attribute :>> name = "SYS_STAT_to_IM";
|
|
920
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
921
|
+
attribute :>> sourcePort = "SYS_STAT.SYS_STAT_OUT";
|
|
922
|
+
attribute :>> targetPort = "IM.SYS_STAT_IN";
|
|
923
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
924
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
925
|
+
}
|
|
926
|
+
part ceImToOutput : ComponentExchange {
|
|
927
|
+
attribute :>> id = "CE-133"; attribute :>> name = "IM_toOUTPUT";
|
|
928
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
929
|
+
attribute :>> sourcePort = "IM.IM_OUT";
|
|
930
|
+
attribute :>> targetPort = "OUTPUT.IM_IN";
|
|
931
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
932
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
933
|
+
}
|
|
934
|
+
part ceTlmToSysMon : ComponentExchange {
|
|
935
|
+
attribute :>> id = "CE-134"; attribute :>> name = "TLM_to_SYS_MON";
|
|
936
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
937
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
938
|
+
attribute :>> targetPort = "SYS_MON.TLM_MODE_IN";
|
|
939
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
940
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
941
|
+
}
|
|
942
|
+
part ceSysMonToOutput : ComponentExchange {
|
|
943
|
+
attribute :>> id = "CE-135"; attribute :>> name = "SYS_MON_toOUTPUT";
|
|
944
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
945
|
+
attribute :>> sourcePort = "SYS_MON.SYS_MON_OUT";
|
|
946
|
+
attribute :>> targetPort = "OUTPUT.SYS_MON_IN";
|
|
947
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
948
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
949
|
+
}
|
|
950
|
+
part ceTlmToLog : ComponentExchange {
|
|
951
|
+
attribute :>> id = "CE-136"; attribute :>> name = "TLM_to_LOG";
|
|
952
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
953
|
+
attribute :>> sourcePort = "TLM.TLM_MODE_OUT";
|
|
954
|
+
attribute :>> targetPort = "LOG.TLM_MODE_IN";
|
|
955
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
956
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
957
|
+
}
|
|
958
|
+
part ceConfigToLog : ComponentExchange {
|
|
959
|
+
attribute :>> id = "CE-137"; attribute :>> name = "CONFIG_to_LOG";
|
|
960
|
+
attribute :>> exchangeKind = FlowKind::configuration;
|
|
961
|
+
attribute :>> sourcePort = "CONFIG.CONFIG_OUT";
|
|
962
|
+
attribute :>> targetPort = "LOG.CONFIG_IN";
|
|
963
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
964
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
965
|
+
}
|
|
966
|
+
part ceAlarmToLog : ComponentExchange {
|
|
967
|
+
attribute :>> id = "CE-138"; attribute :>> name = "ALARM_to_LOG";
|
|
968
|
+
attribute :>> exchangeKind = FlowKind::alarm;
|
|
969
|
+
attribute :>> sourcePort = "ALARM.ALARM_OUT";
|
|
970
|
+
attribute :>> targetPort = "LOG.ALARM_IN";
|
|
971
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
972
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
973
|
+
}
|
|
974
|
+
part ceSysStatToLog : ComponentExchange {
|
|
975
|
+
attribute :>> id = "CE-139"; attribute :>> name = "SYS_STAT_to_LOG";
|
|
976
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
977
|
+
attribute :>> sourcePort = "SYS_STAT.SYS_STAT_OUT";
|
|
978
|
+
attribute :>> targetPort = "LOG.SYS_STAT_IN";
|
|
979
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
980
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
981
|
+
}
|
|
982
|
+
part ceImToLog : ComponentExchange {
|
|
983
|
+
attribute :>> id = "CE-140"; attribute :>> name = "IM_to_LOG";
|
|
984
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
985
|
+
attribute :>> sourcePort = "IM.IM_OUT";
|
|
986
|
+
attribute :>> targetPort = "LOG.IM_IN";
|
|
987
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
988
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
989
|
+
}
|
|
990
|
+
part ceLogToOutput : ComponentExchange {
|
|
991
|
+
attribute :>> id = "CE-141"; attribute :>> name = "LOG_toOUTPUT";
|
|
992
|
+
attribute :>> exchangeKind = FlowKind::audit;
|
|
993
|
+
attribute :>> sourcePort = "LOG.LOG_OUT";
|
|
994
|
+
attribute :>> targetPort = "OUTPUT.LOG_IN";
|
|
995
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
996
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
997
|
+
}
|
|
998
|
+
part ceOutputToGpcaOut : ComponentExchange {
|
|
999
|
+
attribute :>> id = "CE-142"; attribute :>> name = "OUTPUT_to_GPCA_OUT";
|
|
1000
|
+
attribute :>> exchangeKind = FlowKind::status;
|
|
1001
|
+
attribute :>> sourcePort = "OUTPUT.GPCA_SW_OUT";
|
|
1002
|
+
attribute :>> targetPort = "GPCA_SW_OUT";
|
|
1003
|
+
attribute :>> direction = DirectionKind::output;
|
|
1004
|
+
attribute :>> timingSemantics = "immediate (same-step delivery, Communication_Properties::Timing => immediate)";
|
|
1005
|
+
attribute :>> sourceReference = "CITE-002: CriSys GPCA AADL v2.0, packages/GPCA_SW.aadl (GPCA_SW.Impl)";
|
|
1006
|
+
}
|
|
1007
|
+
// ── Text macros (App. A.3 internal state variables) ─────────
|
|
1008
|
+
part ddActualInfusionDurationMacro : DataDefinition {
|
|
1009
|
+
attribute :>> id = "DD-042";
|
|
1010
|
+
attribute :>> name = "Actual_Infusion_Duration_macro";
|
|
1011
|
+
attribute :>> description = "Total duration the system has been in ACTIVE mode since infusion was initiated with the current prescription.";
|
|
1012
|
+
attribute :>> semantics = "Internal variable; reset to 0 every time infusion is initiated with a new prescription (REQ 12/13).";
|
|
1013
|
+
attribute :>> unit = "minutes";
|
|
1014
|
+
attribute :>> encoding = "Time";
|
|
1015
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1016
|
+
}
|
|
1017
|
+
part ddActualVolumeInfusedMacro : DataDefinition {
|
|
1018
|
+
attribute :>> id = "DD-043";
|
|
1019
|
+
attribute :>> name = "Actual_Volume_Infused_macro";
|
|
1020
|
+
attribute :>> description = "Total volume of drug infused during Actual_Infusion_Duration_macro; drives the infusion-complete condition (REQ 28) and over-infusion VTBI (REQ 20).";
|
|
1021
|
+
attribute :>> semantics = "Internal variable; default 0; reset to 0 on infusion initiation.";
|
|
1022
|
+
attribute :>> unit = "ml/hr";
|
|
1023
|
+
attribute :>> encoding = "Positive Integer";
|
|
1024
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1025
|
+
}
|
|
1026
|
+
part ddFlowRateModeMacro : DataDefinition {
|
|
1027
|
+
attribute :>> id = "DD-044";
|
|
1028
|
+
attribute :>> name = "FlowRate_Mode_macro";
|
|
1029
|
+
attribute :>> description = "Programmed flow rate of the current mode: FlowRate_kvo_hd in PAUSED, FlowRate_basal_prog in BASAL, FlowRate_sbolus_prog in SQUARE BOLUS, FlowRate_pbolus_prog in PATIENT BOLUS (§4.1.5).";
|
|
1030
|
+
attribute :>> semantics = "Internal variable; set by the system when entering the respective mode.";
|
|
1031
|
+
attribute :>> unit = "ml/hr";
|
|
1032
|
+
attribute :>> encoding = "Positive Integer";
|
|
1033
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1034
|
+
}
|
|
1035
|
+
part ddInhibitedInfusionMacro : DataDefinition {
|
|
1036
|
+
attribute :>> id = "DD-045";
|
|
1037
|
+
attribute :>> name = "Inhibited_Infusion_macro";
|
|
1038
|
+
attribute :>> description = "TRUE when the notification in effect requires all infusion to be inhibited ('Inhibit Infusion' column of REQ 59); FALSE when that notification is cancelled or the system transitions to OFF.";
|
|
1039
|
+
attribute :>> semantics = "Internal variable set per the REQ 59 action table; drives REQ 30/37 transitions.";
|
|
1040
|
+
attribute :>> unit = "-";
|
|
1041
|
+
attribute :>> encoding = "Boolean";
|
|
1042
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1043
|
+
}
|
|
1044
|
+
part ddInhibitedBolusMacro : DataDefinition {
|
|
1045
|
+
attribute :>> id = "DD-046";
|
|
1046
|
+
attribute :>> name = "Inhibited_Bolus_macro";
|
|
1047
|
+
attribute :>> description = "TRUE when the notification in effect requires square boluses to be inhibited ('Inhibit Square Bolus' column of REQ 59); cleared on cancel or OFF.";
|
|
1048
|
+
attribute :>> semantics = "Internal variable set per the REQ 59 action table; drives REQ 31/34/39 guards.";
|
|
1049
|
+
attribute :>> unit = "-";
|
|
1050
|
+
attribute :>> encoding = "Boolean";
|
|
1051
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1052
|
+
}
|
|
1053
|
+
part ddInhibitedPatientBolusMacro : DataDefinition {
|
|
1054
|
+
attribute :>> id = "DD-047";
|
|
1055
|
+
attribute :>> name = "Inhibited_PatientBolus_macro";
|
|
1056
|
+
attribute :>> description = "TRUE when the notification in effect requires PATIENT BOLUS inhibit ('Inhibit Patient Bolus' column of REQ 59); cleared on cancel or OFF.";
|
|
1057
|
+
attribute :>> semantics = "Internal variable set per the REQ 59 action table; drives REQ 25/35/36/38 guards.";
|
|
1058
|
+
attribute :>> unit = "-";
|
|
1059
|
+
attribute :>> encoding = "Boolean";
|
|
1060
|
+
attribute :>> sourceReference = "CITE-001: CriSys GPCA System Requirements (2013), App. A.3 Text Macros";
|
|
1061
|
+
}
|
|
1062
|
+
}
|