From 83789cd492a01bac82f8deebde3ebb09cc20311a Mon Sep 17 00:00:00 2001 From: "Staeck, Philipp" Date: Wed, 4 Dec 2024 07:00:47 +0100 Subject: [PATCH] ENSEMBLE identifier is needed to ensure membership indication of desired ENSEMBLE --- src/t2iapi/context/context_requests.proto | 11 +++++++ src/t2iapi/context/context_responses.proto | 18 +++++++++-- src/t2iapi/context/service.proto | 37 ++++++++++++++++------ src/t2iapi/context/types.proto | 8 +++++ 4 files changed, 62 insertions(+), 12 deletions(-) diff --git a/src/t2iapi/context/context_requests.proto b/src/t2iapi/context/context_requests.proto index e5f1ced..df26331 100644 --- a/src/t2iapi/context/context_requests.proto +++ b/src/t2iapi/context/context_requests.proto @@ -80,3 +80,14 @@ Request to associate a specific patient type. message AssociatePatientRequest { PatientType patient_type = 1; // Patient type to be associated } + +/* +Request to indicate membership in an SDC PARTICIPANT ENSEMBLE for a provided pm:EnsembleContextDescriptor and a +provided ENSEMBLE identifier. + */ +message EnsembleIdentifierRequest { + string descriptor_handle = 1; + string ensemble_identifier = 2; // ENSEMBLE identifier that refers to a SDC PARTICIPANT ENSEMBLE whose membership + // to be indicated +} + diff --git a/src/t2iapi/context/context_responses.proto b/src/t2iapi/context/context_responses.proto index d617234..9db3bf1 100644 --- a/src/t2iapi/context/context_responses.proto +++ b/src/t2iapi/context/context_responses.proto @@ -53,11 +53,23 @@ message EnsembleContextIndicateMembershipWithIdentificationResponse { } /* -Response which contains a list of @Handles of pm:EnsembleContextStates. The corresponding states form a representative -set of pm:EnsembleContextStates which if associated are sufficient to indicate membership in the SDC +Response which contains a list of pairs whereby each pair consists of a pm:EnsembleContextStates/@Handle and an ENSEMBLE +identifier that refers to the SDC PARTICIPANT ENSEMBLE whose membership is indicated by that state. The states form a +representative set of pm:EnsembleContextStates which if associated are sufficient to indicate membership in the SDC PARTICIPANT ENSEMBLE(s) for a given pm:EnsembleContextDescriptor. */ message RepresentativeEnsembleMembershipIndicationResponse { BasicResponse status = 1; - repeated string context_state_handle = 2; + repeated ContextStateEnsembleIdentifierPair context_state_ensemble_identifier_pair = 2; +} + +/* +Response containing the @Handle of the newly created or adapted pm:EnsembleContextState. It is created or adapted such +that its @ContextAssociation is 'Assoc' in order to indicates membership in a SDC PARTICIPANT ENSEMBLE specified by the +ENSEMBLE identifier. + */ +message IndicateMembershipInEnsembleByIdentifierResponse { + BasicResponse status = 1; + string context_state_handle = 2; // @Handle of the pm:EnsembleContextStates, that was created or adapted such that + // it indicates membership in an SDC PARTICIPANT ENSEMBLE } \ No newline at end of file diff --git a/src/t2iapi/context/service.proto b/src/t2iapi/context/service.proto index 7b292fc..278fae3 100644 --- a/src/t2iapi/context/service.proto +++ b/src/t2iapi/context/service.proto @@ -161,7 +161,12 @@ service ContextService { /* Indicate membership in an SDC PARTICIPANT ENSEMBLE resp. in SDC PARTICIPANT ENSEMBLEs for a provided pm:EnsembleContextDescriptor by associating each state contained in a representative set of pm:EnsembleContextStates - of that descriptor. Return the list of handles of states contained in that representative set. + of that descriptor. Return a list of pairs whereby each pair consists of a state handle contained in the + representative set and an ENSEMBLE identifier that refers to the SDC PARTICIPANT ENSEMBLE whose membership is + indicated by that state.There is exactly one pair for each state handle contained in the representative set. + + The ENSEMBLE identifier is valid until the next call of this method. It is specified by the USER and shall uniquely + identify the related SDC PARTICIPANT ENSEMBLE. The representative set of pm:EnsembleContextStates for a given pm:EnsembleContextDescriptor is a minimal set of pm:EnsembleContextStates which if associated are sufficient to indicate membership in the SDC PARTICIPANT ENSEMBLE(s) @@ -170,15 +175,15 @@ service ContextService { Example 1: treatment session The fact that a POC MEDICAL DEVICE is currently working in a (temporal) logical group based on a treatment session may be expressed by a pm:EnsembleContextDescriptor. If each of its pm:EnsembleContextStates describes a step in - this treatment session, then it is sufficient if the manipulation returns only one state handle. It is - representative since all pm:EnsembleContextStates of the pm:EnsembleContextDescriptor behave the same and indicate - membership in the logical group resp. SDC PARTICIPANT ENSEMBLE if associated. + this treatment session, then it is sufficient if the manipulation returns only one state handle and the related + ENSEMBLE identifier. It is representative since all pm:EnsembleContextStates of the pm:EnsembleContextDescriptor + behave the same and indicate membership in the logical group resp. SDC PARTICIPANT ENSEMBLE if associated. Example 2: location inferring If a pm:EnsembleContextDescriptor has multiple pm:EnsembleContextStates whereby each describes a membership of a location-inferred SDC PARTICIPANT ENSEMBLE if associated. It is sufficient that the manipulation returns only one - state handle since it is representative. All pm:EnsembleContextStates of the pm:EnsembleContextDescriptor behave the - same independent of the location allocation. + state handle and the related ENSEMBLE identifier since it is representative. All pm:EnsembleContextStates of the + pm:EnsembleContextDescriptor behave the same independent of the location allocation. Example 3: general hospital process Consider a general process within the hospital with multiple steps whereby each step is divided into multiple minor @@ -186,9 +191,10 @@ service ContextService { modeled by a pm:EnsembleContextDescriptor that has multiple pm:EnsembleContextStates for the major as well as for the minor steps. To indicate membership in the main as well as in the sub process a pm:EnsembleContextState representing a major step and a pm:EnsembleContextState representing a major's minor step have to be associated. - It is sufficient that the manipulation returns the state handles of these two pm:EnsembleContextStates. In case the - process steps at each level differs structurally (e.g. a main step has no minor steps or the nesting depth of the - sub processes varies) the returned set of states must be extended accordingly to be still representative. + It is sufficient that the manipulation returns the state handles of these two pm:EnsembleContextStates and their + related ENSEMBLE identifiers. In case the process steps at each level differs structurally (e.g. a main step has + no minor steps or the nesting depth of the sub processes varies) the returned set of states must be extended + accordingly to be still representative. The 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. @@ -196,6 +202,19 @@ service ContextService { rpc RepresentativeEnsembleMembershipIndication (BasicHandleRequest) returns (RepresentativeEnsembleMembershipIndicationResponse); + /* + Indicate membership in an SDC PARTICIPANT ENSEMBLE for a provided pm:EnsembleContextDescriptor and for a provided + ENSEMBLE identifier by creation or adaption of a pm:EnsembleContextState such that its @ContextAssociation is "Assoc". + Return the handle of that pm:EnsembleContextState. + + The ENSEMBLE identifier is USER specified and shall uniquely identify the related SDC PARTICIPANT ENSEMBLE. + + The 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 IndicateMembershipInEnsembleByIdentifier (EnsembleIdentifierRequest) + returns (IndicateMembershipInEnsembleByIdentifierResponse); + /* End membership in an SDC PARTICIPANT ENSEMBLE for a provided pm:EnsembleContextState/@Handle. diff --git a/src/t2iapi/context/types.proto b/src/t2iapi/context/types.proto index 638dcff..9730e9a 100644 --- a/src/t2iapi/context/types.proto +++ b/src/t2iapi/context/types.proto @@ -78,4 +78,12 @@ enum ContextType { CONTEXT_TYPE_OPERATOR = 3; CONTEXT_TYPE_MEANS = 4; CONTEXT_TYPE_ENSEMBLE = 5; +} + +/* +Represents pair of pm:EnsembleContextState/@Handle and ENSEMBLE identifier referring to an SDC PARTICIPANT ENSEMBLE. + */ +message ContextStateEnsembleIdentifierPair { + string context_state_handle = 1; + string ensemble_identifier = 2; } \ No newline at end of file