diff --git a/CHANGELOG.md b/CHANGELOG.md index 54bbe47..9ba06be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added - manipulation GetMetricDeterminationMode for metrics +- manipulation SetActiveModeOfOperation for metrics - manipulation PhysicallyDisconnectRemovableSubsystemAfterSettingActivationStateOnOrStndBy - manipulation RequestIndicationOfNextCalibrationTimeRequired for devices - manipulation IndicateTimeOfNextCalibrationToUser for devices @@ -19,6 +20,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - manipulation ProvideInformationAboutLastCalibration for devices - manipulation ProvideInformationAboutNextCalibration for devices - manipulation SetSystemContextActivationStateAndContextAssociation for combined settings +- manipulation SetMdsUiLanguage for devices +- manipulation GetMdsUiSupportedLanguages for devices +- manipulation InsertContainmentTreeEntryForSequenceId for devices ## [4.1.0] - 2024-02-22 diff --git a/src/t2iapi/device/device_requests.proto b/src/t2iapi/device/device_requests.proto index 7a4c2c5..2cebbc0 100644 --- a/src/t2iapi/device/device_requests.proto +++ b/src/t2iapi/device/device_requests.proto @@ -36,6 +36,15 @@ message SetLanguageRequest { string language = 1; // the language to set as specified by RFC5646, e.g. en-US } +/* +Request to set the language of the component with a UI represented by the MDS to the given language. + */ +message SetMdsUiLanguageRequest { + string handle = 1; // pm:MdsDescriptor/@Handle representing the component with a UI for which the language + // shall be set + string language = 2; // the language to set as specified by RFC5646, e.g. en-US +} + /* Request a list of removable descriptors of the given class. */ @@ -85,3 +94,13 @@ message ProvideInformationAboutNextCalibrationRequest { CalibrationState calibration_state = 2; // ComponentCalibrationState value to set as the next calibration // information } + +/* +Request to make available the BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) that was +previously represented by the descriptor with the provided handle in the device's MDIB in the provided @SequenceId. + */ +message InsertContainmentTreeEntryForSequenceIdRequest { + string handle = 1; // descriptor handle which represented the BICEPS CONTAINMENT TREE ENTRY + string sequence_id = 2; // @SequenceId of the devices MDIB where the requested BICEPS CONTAINMENT TREE ENTRY + // was seen +} diff --git a/src/t2iapi/device/device_responses.proto b/src/t2iapi/device/device_responses.proto index 7791096..68fb686 100644 --- a/src/t2iapi/device/device_responses.proto +++ b/src/t2iapi/device/device_responses.proto @@ -15,6 +15,15 @@ import "t2iapi/biceps/metadata.proto"; option java_package = "com.draeger.medical.t2iapi.device"; option java_outer_classname = "DeviceResponses"; +/* +Response containing all languages supported by the UI component represented by an MDS. + */ +message GetMdsUiSupportedLanguagesResponse { + BasicResponse status = 1; + repeated string languages = 2; // list of languages as specified by RFC5646 which are supported by the + // UI component represented by an MDS +} + /* Response which contains all descriptor handles that can be removed and reinserted into the MDIB of the device. */ @@ -54,3 +63,13 @@ message GetComponentHwVersionResponse { BasicResponse status = 1; // status of the rpc string hardware_version = 2; // Hardware version of the requested device component } + +/* +Response containing the descriptor handle which is representing the requested +BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) in the device's current MDIB. + */ +message InsertContainmentTreeEntryForSequenceIdResponse{ + BasicResponse status = 1; // status of the rpc + string handle = 2; // descriptor handle which is representing the requested BICEPS CONTAINMENT TREE ENTRY + // in the device's current MDIB +} diff --git a/src/t2iapi/device/service.proto b/src/t2iapi/device/service.proto index 6a14d69..5a5dbe7 100644 --- a/src/t2iapi/device/service.proto +++ b/src/t2iapi/device/service.proto @@ -52,6 +52,18 @@ service DeviceService { */ rpc SetLanguage (t2iapi.device.SetLanguageRequest) returns (BasicResponse); + /* + Set the language of the component with a UI represented by the MDS to the given language. + The manipulated state shall be persistent until a next manipulation call. If the device is not able to maintain + the static state, it shall return RESULT_NOT_SUPPORTED. + */ + rpc SetMdsUiLanguage (t2iapi.device.SetMdsUiLanguageRequest) returns (BasicResponse); + + /* + Get all supported languages of the component with a UI represented by the MDS with the provided handle. + */ + rpc GetMdsUiSupportedLanguages (t2iapi.BasicHandleRequest) returns (GetMdsUiSupportedLanguagesResponse); + /* Get all descriptor handles which can be removed and reinserted into the MDIB of the device and whose descriptors are of the given class. @@ -128,7 +140,7 @@ service DeviceService { */ rpc ProvideInformationAboutLastCalibration (t2iapi.device.ProvideInformationAboutLastCalibrationRequest) returns (BasicResponse); - + /* Provide information about the pm:NextCalibration for the given pm:AbstractDeviceComponentDescriptor. If the device is not able to provide the information, it shall return RESULT_NOT_SUPPORTED. @@ -170,4 +182,44 @@ service DeviceService { */ rpc IndicateTimeOfNextCalibrationToUser (BasicHandleRequest) returns (BasicResponse); + + /* + Make available the BICEPS CONTAINMENT TREE ENTRY (as defined in IEEE Std 11073-10700-2022) that was previously + represented by the provided handle in the MDIB with the provided @SequenceId. If the BICEPS CONTAINMENT TREE ENTRY + is absent in the current MDIB, it shall be inserted and its handle in the current MDIB shall be returned. + If the BICEPS CONTAINMENT TREE ENTRY is already present in the current MDIB, only its handle shall be returned, + no further action is required. + + Hint: Devices which use static handles for descriptors do not have to look up the entity that was previously + represented by the requested handle, since they stay the same between the changes of the @SequenceId. It is + sufficient to ensure the descriptor is present and return the handle. + + Example 1: returning the same handle for the Metric + - device presented an MDIB with the Metric handle "metric_1" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - metric with the handle "metric_1" is still present in the current MDIB and represents the *same* metric + as in @SequenceID "123" + - InsertContainmentTreeEntryForSequenceId with handle="metric_1" and sequence_id="123" is executed + - the handle "metric_1" is returned as the descriptor with this handle it is still available in the current MDIB + - no further action from the device is required + + Example 2: returning a new handle for the MDS: + - device presented an MDIB with MDS handle "mds0" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - MDS which had the Handle "mds0" in @SequenceId "123" is still present in the current MDIB, but it's Handle + changed to "mds10" + - InsertContainmentTreeEntryForSequenceId with handle="mds0" and sequence_id="123" is executed + - the handle "mds10" is returned as the descriptor handle for that MDS has changed + - no further action from the device is required + + Example 3: inserting the Channel into the current MDIB and returning the (new) handle: + - device presented the Channel with handle "channel123" in @SequenceID "123" + - device changes @SequenceID to "789" and presents a new MDIB + - Channel which had the Handle "channel123" in @SequenceId "123" is no longer present in the current MDIB + - InsertContainmentTreeEntryForSequenceId with handle="channel123" and sequence_id="123" is executed + - Channel is inserted into the device's current MDIB with the handle "channel789" + - the handle "channel789" is returned + */ + rpc InsertContainmentTreeEntryForSequenceId (InsertContainmentTreeEntryForSequenceIdRequest) + returns (InsertContainmentTreeEntryForSequenceIdResponse); } diff --git a/src/t2iapi/metric/service.proto b/src/t2iapi/metric/service.proto index dad7b06..fb82c75 100644 --- a/src/t2iapi/metric/service.proto +++ b/src/t2iapi/metric/service.proto @@ -112,6 +112,15 @@ service MetricService { rpc ConveyMetricDemoValues (BasicHandleRequest) returns (BasicResponse); + /* + The metric with the given handle shall be set to an active MODE OF OPERATION if it is representing a + MODE OF OPERATION. If the metric does not represent a MODE OF OPERATION, it shall return RESULT_NOT_SUPPORTED. + + Hint: MODE OF OPERATION is defined in the standard 11073-10701-2022 and more details in chapter 6.2.1. + */ + rpc SetActiveModeOfOperation (BasicHandleRequest) + returns (BasicResponse); + /* Requests if the given metric handle is determined episodically or periodically. */