Research Article

A SOA-Based Platform to Support Clinical Data Sharing

Table 1

Description of the RLUS standard functionalities provided by the RLUS Management and Query Interface.

CapabilityAimInput parametersOutput parametersSummarized description

Get ()To retrieve a single health information resource, mapped through a specific semantic signifier, which fulfills the specific query performed by the client.An instance of RLUSSearchStruct (a well-defined and machine readable data structure to describe a search based on filter criteria or examples and the name of the semantic signifier to retrieve).
An instance of RLUSLogicalRecordID (a structure that identifies a logical record managed by RLUS).
An instance of RLUSStatusCode (a structure to contain the code indicating whether the operation was successful or not and a corresponding message).
The RLUSResultSet (the requested resource only if it exists and if it is unique).
It is called by clients to get a resource with specific features. The client indicates either (1) the search criteria or (2) the resource identifier. The service (1) indicates if any errors occurred and (2) returns the required resource if it exists and if it is unique.
List()To retrieve a list of health information resources, mapped through a specific semantic signifier, which fulfills the specific query performed by the client.An instance of RLUSSearchStruct.
The maxResultStreams (the maximum number of set of resources to be returned, that is, the maximum number of call that must be performed to get all resources).
The previousResultID (the ID token returned by a previous call).
An instance of RLUSStatusCode.
The RLUSResultSet (an array formed by the requested resources).
The resultID (the ID token that identifies a streaming result set).
The finishedFlag (a flag that indicates if all resources were retrieved or the approximate number of call that must be performed to get all resource).
It is called by clients to get a list of resources with specific features. The client indicates (1) the search criteria, (2) the maximum number of call that must be performed to get all resources, and (3) the ID token returned by a previous List () call, if it was called. The service (1) reports if any errors occurred, (2) returns the list of requested resources if exist, (3) the ID token, and (4) indicates if all resources were retrieved or how many calls must be performed to get all resources.
Locate()To retrieve a list of RLUS service locations where the desired health information resources can be found.An instance of RLUSSearchStruct.
The maxResultStreams.
The previousResultID.
An instance of RLUSStatusCode.
The RLUSLocationsResultSet (an array formed by the RLUS service locations where the resources can be found).
The resultID.
The finishedFlag.
It is called by clients to get a list of RLUS service locations where the resources with specific features can be found. The client indicates (1) the search criteria, (2) the maximum number of call that must be performed to get all locations, and (3) the ID token returned by a previous Locate() call, if it was called. The service (1) reports if any errors occurred, (2) returns the list of requested locations if exist, (3) the ID token, and (4) indicates if all locations were retrieved or how many calls must be performed to get all locations.
Put()To store an instance of a logical record in the repository.An instance of RLUSWriteCommandEnum (a structure to contain an enumeration indicating the action the service must perform: insert only, update only, or “upsert.” “Upsert” means that first the service has to check whether the resource already exists, and then, if so, it executes an update, but if not, it executes an insert).
An instance of RLUSPutRequestSrcStruct (a structure to contain the semantic signifier, which maps the logical record, security, source, and network address context of the caller of the Discard() operation which is necessary to retrieve data to clean the RLUS and audit logs).
The RLUSResultSet.
An instance of RLUSStatusCode.
An instance of RLUSLogicalReco-rdID.
It is called by clients to store a resource within the repository of the service. The client indicates (1) the right action that the service must perform, (2) some security, source, and network address information, and (3) the resource that must be stored. The service (1) indicates if any errors occurred and (2) returns the resource identifier.
Discard()To either physically or logically delete resources from the repository.An instance of RLUSSearchStruct.
An instance of RLUSUpdateRequestSrcSt-ruct (a structure logically equivalent to RLUSPutRequestSrcStruct).
An instance of RLUSStatusCode.It is called by clients to physically or logically delete resources with specific features from the repository of the service. The client indicates (1) the search criteria and (2) some security, source, and network address information. The service (1) indicates if any errors occurred.
Describe()To get the detailed schema definition of the required semantic signifier.The semanticSignifierName (a human readable text string that corresponds to the name of the semantic signifier).An instance of RLUSStatusCode. An instance of RLUSSemanticSi-gnifier (a meta-data structure to define the semantic signifier data type processed by RLUS).It is called by clients to get the detailed schema definition of a specific semantic signifier. The client indicates (1) the semantic signifier name. The service (1) indicates if any errors occurred and (2) provides the corresponding detailed schema definition.