Rhapsody recommends you use a naming convention that facilitates the implementation of configurations that are essentially self-documenting, and enables components to be labeled in a manner which is clear and indicative of purpose. This allows for the grouping of components and simplifies searches across components in Rhapsody applications, thereby streamlining the development and monitoring processes.
Naming communication points and filters by including information such as their type and purpose is especially important when the components are viewed in the Management Console where they are not distinguishable by icon (unlike in Rhapsody IDE, which provides unique icons for every Rhapsody object and component type).
Furthermore, consistent naming simplifies maintenance by both internal and external personnel as it reduces the time needed to understand the purpose of a configuration.
The following recommendations provide a starting point for developing your own Rhapsody naming conventions:
General Considerations
Special Characters in Names
Components may require medium length strings of multiple tokens (including prefixes and suffixes) to indicate use and purpose as described below. Generally, it is recommended to separate these by either the space character or the underscore character. The underscore is suitable for shorter token sequences. For longer sequences, particularly when naming items that appear within the Route Editor canvas (such as communication points and filters), the use of the space character is recommended.
- Use of the underscore in component names tends to stretch the component name horizontally and can make efficient use of layout in the Route Editor canvas difficult.
- Use of underscores in filenames such as Message Definition and Mapper files has no impact on layout within Rhapsody IDE.
- You cannot use the following characters:
{}[]<>:; $\/?"|
.
Long Names
- Avoid component names which would wrap to more than three or four lines in the Route Editor canvas.
- Avoid route names which are long, or nesting folders too deeply as this makes it difficult to see the entire component name without the need to scroll within the Rhapsody IDE Workspace.
Naming Format
Format: prefix_body_suffix
Element | Description |
---|---|
prefix_ | The prefix typically indicates the type of Rhapsody objects, particularly components (for example, The convention for component type prefixes should be outlined and discussed together with the users who are responsible for the day-to-day maintenance of the system. They may need to make alterations or additions to maintain a good naming standard.
|
body | The body usually describes the function of the Rhapsody object. |
_suffix | The suffix provides supplementary information if required. |
Lockers
Format: function
Examples:
Core
Complex Conductor Services
Element | Description |
---|---|
function |
Lockers are named based on the requirement for the locker (for example to segregate by the role of the interfaces within the locker, or the separation requirement such as a multi-agency tenancy which would have a folder per tenant).
|
Folders
Format: ##_type
Examples:
webPAS
01_Get National Identifiers
02_Prepare MyHR Upload
Element | Description |
---|---|
##_ |
An optional prefix that indicates the sequence number representing the different stages of processing. |
type | Folders could be named according to one of the following conventions:
|
Routes
Format: RT.##_body_state
Examples:
RT.01_Input ADT from PAS
RT.02_Transform to CMM
RT.03_EMPI SBR Update
RT.01_ADT Validation_P
RT.01_EMPI SBR_OR
RT.03_PAS ADT to LIS_OUT
RT.03_Terminology_IN
Element | Description | |
---|---|---|
##_ |
An optional prefix that indicates the two-digit sequence ID of the route. When configurations break a complex processing sequence across several route stages, including the sequence ID in the route name may assist in understanding the processing flow. |
|
function | For the body make it clear what the purpose of the component is. |
|
_state | An optional suffix that indicates the state of route:
All direction specifications should be Rhapsody-centric; that is, inbound means Rhapsody is receiving the message while outbound means Rhapsody is sending the message. |
Communication Points
Format: CP.type_function_mode
Examples:
CP.tcp_PAS_I
CP.email_Abnormal_O
CP.ws_Register Doc_IO
CP.ws_Terminology_OI
CP.email_Ascribe_E
CP.dir_Reportable_BI
Element | Description |
---|---|
CP.type_ | A prefix that identifies the type of communication point, for example:
|
function | A body that describes the system and its purpose, for example: |
_mode | A suffix that identifies the flow of messages (correlates with a communication point's mode):
|
Filters
Format: type_function_route
Example:
js_Process CDA Referral
Element | Description |
---|---|
type_ | A prefix identifies the type of filter, for example:
|
function | A body that describes the function of the filter. |
_route | An optional suffix used for No-operation filters used as bookends to connect routes:
For example:
|
Filter Tests
Filter tests and test messages that are used during filter testing should be saved with a meaningful name and a concise description of the test. This enables users carrying out peer review to use saved test messages for the review and testing of specific use cases.
Examples:
Name | Description |
---|---|
Patient ID Found |
When the Patient ID Property is extracted and set from the database |
Patient ID Not Found |
When the Patient ID Property is not set from the database |
Conditional / JavaScript Connectors
Format: condition
Examples:
is Referral Message
is Required Msg Type
is Error Condition ADT Only
Element | Description |
---|---|
condition | Conditional connectors should be named succinctly to indicate their purpose. For unnamed conditional connectors, their actual condition is displayed in truncated form on the connection. |
Message Definitions
Mapping Definition Files
Format: source_to_target.mdf
Example:
Cerner_ADT_HL7v23_to_CareFusion_ADT_HL7v22.mdf
Element | Description |
---|---|
source |
A prefix that indicates the source and source format being mapped from. |
target | A suffix that indicates the target and target format being mapped to. |
EDI Definitions
Format: system_HL7Version_messageTypes.s3d
Examples:
ACTPAS_PatientMerge_HL72.3.1_ADT040.s3d
Cerner_HL7v23_ADT.s3d
Element | Description |
---|---|
system_ | A prefix that indicates the source or target system.
|
HL7Version | A body that indications the HL7 version the definition defines. |
_messageTypes | A suffix that indicates the message types the definition defines. |
Message Properties
Format: valueType
Examples:
sourceFacilityCode
patientRegDB_patientID
Element | Description |
---|---|
valueType | Solution properties and Transient properties (only relevant to the set of route stages that populate and use the property) should be named appropriately to indicate the value it stores. In some cases, properties populated during route processing may require a prefix to aid in identifying their purpose and the solution that delivered them. This is especially true of properties that are populated by a publishing route and passed to any subscribers who require them for downstream processing (typically these properties should be managed within the configuration documentation to support easy identification and use by new subscribers). |
Rhapsody Variables
Format: externalSystem_componentType_function
Examples:
ACTPAS_WS_UserID
SMT_OutputDocType
CDR_DB_Password
RIS_TCP_Port
Element | Description |
---|---|
externalSystem_ | An optional prefix that indicates the external system the variable is related to. |
componentType | An optional body which indicates the communication point or filter type that the Rhapsody variable is being used to configure, for example:
|
_function | A suffix that indicates what the variable is used as a substitute for (for example a component's configuration property). |