message exchange protocol between to healthcare partners
IGeneralNotificationRequest::SetTransport method | |||
---|---|---|---|
Sets the transport information that is the routing information going from a sender (from) over a chain of intermediates (via) to the receiver (to). All the involved parties are defined by GLN as defined by Stiftung Refdata.
Furthermore, this method allows to define the parameters needed for sign and/or encrypt the resulting XML infoset. Therefore, read the notes about signature and encryption to get familiar with these concepts. Important new feature: the electronic reachability of a recipient for a certain version of generalNotification is kind of chicken and egg problem. To solve this connectivity problem, the webservice medSRS (medical Standard Routing Service) has been created. By using the RESTful webservice method queryRHS one can find out, how and whether a specific recipient can be reached electronically. Please refer to the website medSRS.ch for getting an introduction to the topic or detailed information about the functionality of the webservice. Instead of inputting the bstrToEan GLN literal, the query call queryRHS(glnProvider,glnRecipient) is supplied instead - cf. description of bstrToEAN below. Furthermore, should the query result indicate an unreachability for version V451, a query check for version V450 is automatically launched to investigate on the lower version. If the downgraded version is supported, than everything is prepared internally such that the method IGeneralNotificationManager::GetXML generates a downgrade automatically and transparently. The usage of the patch can generate a new error code 'ERROR_RECIPIENTRHS_NOTAVAILABLE' indicating that a given recipient is not reachable. It is the decision of the calling program whether the error 'ERROR_RECIPIENTRHS_NOTAVAILABLE' will be considered or not. |
|||
Restful webservice calling syntax | |||
[POST] | /baseURL/IGeneralNotificationRequest/SetTransport | ||
[JSON input data] | pIGeneralNotificationRequest: bstrFromEAN: bstrFromPFXFile: bstrFromPFXPassword: bstrViaEAN: bstrToEAN: bstrToBinDERFile: |
longValue, //interface address "utf8StringValue", "utf8StringValue", "utf8StringValue", "utf8StringValue", "utf8StringValue", "utf8StringValue" |
|
[JSON result data] | pbStatus: | booleanValue |
|
[HTTP result status] | 200 | Return status 200 signals a successful method call | |
204 | Return status 204 (noContent) signals that the end of an iteration is reached | ||
>= 400 | Return status >= 400 signals an unsuccessful function call. The returned JSON{errorCode: code, errorText:"text"} supplies the error message the same as GetAbortInfo() would do. | ||
C/C++ calling syntax | |||
HRESULT SetTransport( | BSTR
BSTR BSTR BSTR BSTR BSTR VARIANT_BOOL |
bstrFromEAN,
bstrFromPFXFile, bstrFromPFXPassword, bstrViaEAN, bstrToEAN, bstrToBinDERFile, *pbStatus); |
|
[C/C++ return value] | S_OK | This value is returned if the function call was successful. | |
S_FALSE | This value is returned if the end of an iteration is reached | ||
E_name | This value is returned if the function call was unsuccessful and an error exception was generated. Note that if you are using SmartPointers an exception is thrown under these conditions. | ||
Calling argument description | |||
[in] BSTR | bstrFromEAN | The GLN number of the sender as defined by Stiftung Refdata | |
[in] BSTR | bstrFromPFXFile | The file name of the PFX certificate that is the private certificate of the "from" entity.
If the variable is empty or NULL then no signature is applied otherwise a signature might be applied depending on the lXMLGenerationAttributes of the GetXML method. |
|
[in] BSTR | bstrFromPFXPassword | The password to open the PFX certificate. The password is only used if a PFX certificate is supplied. | |
[in] BSTR | bstrViaEAN | The chain of intermediates supplied as '@'-separated list of the GLN of the involved parties e.g. 'gln1@gln2'.
Each GLN is defined by Stiftung Refdata |
|
[in] BSTR | bstrToEAN | The GLN number of the recipient as defined by Stiftung Refdata
Patch for querying medSRS: where:
For example, given the input 'queryRHS(7601001302112, 7601003000078)' the medSRS system is queried whether the recipient Suva (GLN=7601003000078) can be reached via the given intermediate (bstrViaEAN) with the standard 'generalNotification451' for the provider TMR (GLN=7601001302112). The result of the RESTful webservice call can return 3 possible result states:
|
|
[in] BSTR | bstrToBinDERFile | The file name of the binary DER certificate that is the public certificate of the "to" entity.
If the variable is empty or NULL then no encryption is applied otherwise encryption might be applied depending on the lXMLGenerationAttributes of the GetXML |
|
[out,retval] VARIANT_BOOL | *pbStatus | Return status of the method. If pbStatus is VARIANT_FALSE then an error occurred and GetAbortInfo should be called to retrieve the error string. | |