Rhapsody provides three types of message properties:
Message properties can be used to configure components by using the $propertyName
notation to define the value of a component configuration property directly, or be used in JavaScript code to configure JavaScript components.
Using a message property with a literal is not supported. If a message property is used to define a value, it cannot be paired with other literals or variables. There are two reasons for this:
- The message property is not defined until the message arrives, so the communication point or filter has to do a specific lookup on the message to resolve its value.
A message property can contain numbers, letters, and symbols. As a result, it may be ambiguous as to where the property name starts and ends. This is shown in:
$DIrHost\messages\in
which could be interpreted as the value
DIrHost\messages\in
or it could mean get the propertyDIrHost
and attach the literal\messages\in
.
User-defined Message Properties
Users can define their own properties and manipulate them using JavaScript. Refer to ROMessage Object and Message Object for details.
Published Message Properties
Published properties are in-built message properties specific to certain filters and input-side communication points, which are automatically added to messages. Published properties for filters and communication points on a route are added to all drop-down lists where message properties can be selected on that route. A filter or communication point's published properties are documented as part of its description.
Standard Message Properties
Standard message properties are message properties that are typically associated with messages. They include:
Standard Message Property | Description |
---|---|
MessageID |
The internal message identifier. This property is special and any attempt to set it will be ignored. |
InputTime |
The time that the message was received. It is a Long-formatted as a string, where the Long represents the number of milliseconds since 1 Jan 1970. This property is special and any attempt to set it will be ignored. |
MessageName |
The message type that is populated when the message is parsed. |
DefinitionName |
The name of the message definition used to parse the message. |
rhapsody:MessageControlId |
The message control identifier of an outgoing message that is being tracked by message tracking. The output search option that uses the message control identifier simply looks for an indexed message property of this name. While message tracking sets this property automatically, there is nothing stopping it being set manually instead (just make sure that it is indexed). When using the old message tracking (the filters). Set when the message goes through the tracking filter (it will not, of course, be indexed until it reaches the communication point). |
rhapsody:OldTrackingMessageName |
The name of the message when used for the old message tracking. Set by the tracking filter. |
rhapsody:OldTrackingResponseTimeout |
Set by the tracking filter to indicate the response timeout period (in seconds). After the timeout occurs, the message may be either resent or marked as failed. It is a whole number, encoded as a string, where 0 represents an infinite timeout. |
rhapsody:OldTrackingMaximumResends |
Set by the tracking filter to indicate the maximum number of resends for this message when no response is received. It is an integer encoded as a string, where -1 represents an infinite number of resends. |
rhapsody:OldTrackingRouteId |
Set by the tracking filter to the internal identifier of the route that it is on. |
rhapsody:InputCommunicationPoint |
The name of the communication point that this message was originally received from. Note that if a message was received on an Out->In communication point, then this property refers to the input communication point that the original request was received on instead. |
rhapsody:InputCommunicationPointId |
The internal identifier of the communication point that this message was originally received from. Note that if a message was received on an Out->In communication point, then this property refers to the input communication point that the original request was received on instead. |
rhapsody:ErrorRouteId |
The internal identifier of the last route whose error handler processed this message. It is used internally within the route executor to prevent accidental re-entry into a route error handler. |
rhapsody:ErrorRoute |
The name of the last route whose error handler processed this message. |
rhapsody:ErrorFilterId |
The internal identifier of the last filter where an error occurred, causing the message to be sent to the route error handler. |
rhapsody:ErrorFilterName |
The name of the last filter where an error occurred, causing the message to be sent to the route error handler. |
rhapsody:InputMessageType |
The input message name. It is automatically set by property extraction if not already set, but can be manually set at any stage. Property extraction automatically marks this property to be indexed for both input and output. |
rhapsody:OutputMessageType |
The output message name. This property is automatically set by property extraction, the HL7 Acknowledgement Generation filter, and the Mapper filter, and marked to be indexed on output. |
rhapsody:ResponseLatency |
The response latency time. It is Long-formatted as a string representing the response latency in milliseconds. It can be added by a custom Out->In communication point in its receiveMessage() method in order to inform the communication point framework how long it took to receive the response. Most communication points do not need to set it as the framework calculates it correctly. |
rhapsody:BodyEncoding |
The name of the Java encoding currently associated with the body of this message. This a special property and cannot be set directly. It is not present if the body encoding has not been explicitly set. |
rhapsody:HL7Encoding |
The name of the HL7 encoding extracted from a message. Currently, it is extracted by the HL7 Character Encoding Detection filter, but is not read by any other components. |
rhapsody:InputWebService |
The name of the Rhapsody web service that the message was received from. |
rhapsody:InputWebServiceOperation |
The name of the operation on the web service that this message was received from. |
rhapsody:WebServiceUser |
The name of the authenticated user for a web service. It is not set if the web service is configured to not perform authentication. |
rhapsody:WebServiceAsynchronousRequest |
Is present (and set to true) on an incoming message from a web service if the request used WS-Addressing and set the Reply-To address as something other than anonymous (in other words, the request is asynchronous). The property is not set if the request is synchronous. |
rhapsody:SoapFault |
Should be present on an outgoing web service message to indicate to Rhapsody that it is a SOAP fault rather than a normal response. |
rhapsody:InputSoapEnvelopeNamespace |
The URI of the SOAP namespace used for the incoming web service message. This implicitly allows the caller to check what version of SOAP is being used. |
wsa:From |
The value of the wsa:From SOAP header if an incoming web services message is received with WS-Addressing headers. |
wsa:To |
The value of the wsa:To SOAP header if an incoming web services message is received with WS-Addressing headers. |
wsa:ReplyTo |
The value of the wsa:ReplyTo SOAP header if an incoming web services message is received with WS-Addressing headers. |
wsa:FaultTo |
The value of the wsa:FaultTo SOAP header if an incoming web services message is received with WS-Addressing headers. |
wsa:Action |
The value of the wsa:Action SOAP header if an incoming web services message is received with WS-Addressing headers. |
wsa:MessageID |
The value of the wsa:From SOAP header if an incoming web services message is received with WS-Addressing headers. |
rhapsody:WebServiceDiscardAsynchronousResponse |
Can be set on a web services response message when it is a token response to an asynchronous request which should be discarded. It is required when running the communication point in In->Out mode but the response is sent via another Rhapsody communication point to keep the communication point framework happy. |
rhapsody:TimeToLive |
The time-to-live (TTL) property is set on messages received on In->Out communication points that are configured to discard received messages once the timeout occurs. It is a Long which is the expiry time of the message (System.currentTimeMillis() + timeout period). When the timeout occurs, the message is discarded shortly thereafter. An expiring message can be kept alive by removing (or changing) this property. |
rhapsody:DuplicateMessageOutputProperty |
The Duplicate Message Detection filter can indicate duplicate messages by either sending the message to the Error Queue or setting this output message property. |
rhapsody:DuplicateMessageProcessedFlag |
When a detected duplicate message has been sent to the Error Queue, this flag is set to 'true'. If the message is reprocessed, then the filter passes the message through unchecked. |
rhapsody:WebServiceIncomingUsernameToken |
Set on incoming web service requests if the SOAP request includes a username token. The property will be set if the username token is present even if the web service is not performing username token authentication. |
rhapsody:WebServiceIncomingCertificateSubject |
Set on incoming web service requests that used either HTTPS client authentication or x509 token authentication. The subject x.500 distinguished name is extracted from the certificate and set as a message property on the incoming message. |
rhapsody:NotificationEventIdentifier |
The Watchlist Notifier communication point publishes the event identifier for each notification event produced by the communication point. |
rhapsody:NotificationEventName |
The Watchlist Notifier communication point publishes the event name for each notification event produced by the communication point. |
rhapsody:SoapFaultCode |
Set by the web services consumer on incoming fault messages. It contains the local name of the SOAP fault code. |
rhapsody:SoapFaultSubCode |
Set as a property list by the web services consumer on incoming fault messages if the fault contains any sub-codes. It contains the local name of each fault sub-code. |
rhapsody:ReinjectedMessage |
Set to true when a message is re-injected from the archive, Error Queue or Hold Queue back into the route. |
rhapsody:NotificationEventSeverity |
The current severity of a notification issue generated as a Rhapsody message. |
rhapsody:NotificationEventDeliveryType |
The current delivery type of a notification issue generated as a Rhapsody message. |
rhapsody:ReceivedUsingMTOM |
Added to a message to indicate that a message was received using MTOM. |
rhapsody:XopFields |
The list of XPaths that should be extracted from the message and sent via XOP. |
ihe:TransformerMessageSeparators |
The actual message separators that were used to generate any raw values in an IHE message. If these differ from the standard HL7 separators, then they are replaced during the transformation. The value in this property should be formatted as the combination of MSH.1 and MSH.2 (for example: |^~\& ). |
ihe:AtnaEventType |
The IHE event type being processed in the format expected for the ATNA logs. |
ihe:SubmissionSetUniqueId |
The submission set unique identifier for an IHE transaction. Formatted as an OID. |
ihe:SubmissionSetPatientId |
The submission set patient identifier for an IHE transaction. Formatted as an HL7 CX using the standard HL7 separators. |
ihe:EndPointAddress |
The SOAP endpoint address for the IHE transaction. |
rhapsody:BodySetFromXopData |
Set by the web service communication points when the message body was set directly from data received via XOP (it was set as binary rather than the encoded value). |
rhapsody:XopFieldsNamespaces |
The list of prefix to namespace URIs that are used to resolve prefixes in the {@link #WEB_SERVICE_XOP_FIELDS} property. Each value in this list is in the form:<prefix>=<uri> . |
rhapsody:WebServiceCallerIPAddress |
The IP address of the web service client that has called a Rhapsody web service. Set on incoming web service requests. |
ihe:RegistryQueryPatientIds |
The patient IDs used in a registry stored query. |
ihe:DocumentUniqueIds |
The list of document unique identifiers. Set when performing a retrieve document set request. |
ihe:RepositoryUniqueIds |
The list of repository unique identifiers. Set when performing a retrieve document set request. |
ihe:HomeCommunityIds |
The list of home community identifiers. Set when performing a retrieve document set request. |
ihe:MessageControlId |
The MSH-10 field used for ATNA logging. Set when performing a PIX query. |
ihe:PatientQuery |
The complete PIX/PDQ query message for ATNA logging. |
ihe:ReceivingApplication |
The receiving application extracted from a PIX/PDQ query. |
ihe:ReceivingFacility |
The receiving facility extracted from a PIX/PDQ query. |
ihe:SendingApplication |
The sending application extracted from a PIX//PDQ query. |
ihe:SendingFacility |
The sending facility extracted from a PIX//PDQ query. |
ihe:PixPdqPatientIds |
A list of the patient identifiers for a PIX//PDQ query. |
wsaClient:replyTo |
The value that the web service client should use to set the replyTo WS-addressing header. Should be set on the route and is read by the Web Service Client communication point. |
rhapsody:WebServiceIncomingCertificateIssuer |
Set on incoming web service requests that used either https client authentication or x509 token authentication. The issuer x.500 distinguished name is extracted from the certificate and set as a message property on the incoming message. |
rhapsody:WebServiceIncomingCertificateSerialNumber |
Set on incoming web service requests that used either https client authentication or x509 token authentication. The certificate serial number is extracted and set in this message property formatted as a decimal number. |
rhapsody:WebServiceIncomingCertificateSubjectKeyIdentifier |
Set on incoming web service requests that used either https client authentication or x509 token authentication. If the SubjectKeyIdentifier extension is present on the certificate, its value is extracted and set in this message property as a hex-encoded value. |
rhapsody:DisableInputCommunicationPointEncodingCheck |
This property can be set by input communication points on newly received messages to indicate to the communication point framework that it should not run its normal encoding check after receiving the message. This can be done where the communication point is completely sure of the encoding of the received message and so doesn't want any possibly incorrect settings in the framework to override this encoding. In practice it is really only needed for those cases where the input communication point only sometimes knows the encoding of the received message – if it always knows the encoding then the framework encoding property can just be left as the default value. The value of this property is not relevant – it triggers this behavior simply be being present. Note that this message property is not persisted when added by an input communication point: it is removed by the communication point framework after receiving the message but prior to persisting it. It will be persisted normally if manually added after this point. |
rhapsody:MaximumMessageConnectionRetries |
This property can be set to change the maximum number of per message connection retries on an outgoing message. It overrides the statically configured maximum retries configured for the communication point. It must be set to a non-negative integer. Note that this can only be used if per message connection retries are enabled for the communication point, and does not affect the maximum number of retries for the communication point itself. |
rhapsody:IncomingSubjectFromCertificate |
Set as a property on the incoming MessageContext to the subject x.500 distinguished name used in the incoming certificate used for x509 token authentication. |
rhapsody:IncomingIssuerFromCertificate |
Set as a property on the incoming MessageContext to the issuer x.500 distinguished name used in the incoming certificate used for x509 token authentication. |
rhapsody:IncomingSubjectKeyIdentifierFromCertificate |
Set as a property on the incoming MessageContext if the certificate used for x509 token authentication includes the SubjectKeyIdentifier extension. If that extension is present, its value is extracted, and placed into this property encoded as hex. If the extension is not present, or could not be processed, then the property is not set. |
rhapsody:IncomingSerialNumberFromCertificate |
Set as a property on the incoming MessageContext to the serial number of the certificate used for x509 token authentication. The serial number is formatted as a decimal number. |
rhapsody:RedirectedFromCommunicationPointId |
Added to messages redirected from a communication point due to the per-message retries to provide the identifier of the communication point that redirected it. |
rhapsody:RedirectedFromCommunicationPointName |
Added to messages redirected from a communication point due to the per-message retries to provide the name of the communication point that redirected it. |
rhapsody:SnapshotMessageId |
Set as a property on the message when a snapshot of a message is taken. It is the message ID of the message at the point of the snapshot. |
rhapsody:SnapshotBodyEncoding |
Set as a property on the message when a snapshot of a message is taken. It is the body encoding of the message at the point of the snapshot (if it was set). |
rhapsody:ErrorCause |
Added to failed messages of a communication point using Advanced Routing to indicate the reason for the failure. |
rhapsody:ErrorCommunicationPointId |
Added to failed messages of a communication point using Advanced Routing to provide the identifier of the communication point where the messages failed on. |
rhapsody:ErrorCommunicationPointName |
Added to failed messages of a communication point using Advanced Routing to provide the name of the communication point where the said messages failed on. |