Rx-Server Interface

Overview

Rx-Server is a SatisLoh product which acts as a device server, storing data about a job and providing equipment interfaces to many different devices. Rx-Universe can “feed” order data (including calculation results) to Rx-Server, using an Rx-Universe device interface.  It can also retrieve jobs from Rx-Server that are waiting for calculation, do blank selection and calculations, and send the results back.

When configured, Rx-Universe will send the calculation results from each job to Rx-Server, where the jobs can be retrieved by equipment connected to Rx-Server, or software interfaced with Rx-Server.

Pre-requisites

Because Rx-Server must be configured to accept connections from computers using IP addresses, the computer which will run the Rx-Universe device session for Rx-Server must be configured with a static internal IP address.  For many labs, the easiest solution might be to run the device session on the Rx-Universe server, as the server will usually already be configured with a static internal IP address.

If a separate workstation is desired, that can be used as well; ensure that that computer is configured with a static IP address.

Similarly, the computer hosting the Rx-Server software must also be configured with a static internal IP address. 

For assistance with configuring computers with static IP addresses on your network, please consult with your networking technician.

Configuring Rx-Universe / Rx-Server Interface

On the “Devices” tab of the System Parameters are options which control how Rx-Universe will interface with Rx-Server.  Checking the “Interface with Rx-Server” option causes Rx-Universe to keep track of jobs in order to send calculation results to Rx-Server.  All Rx-Universe sessions (manual OE, electronic OE, digital calculations, shipping, etc.) will recognize that the Rx-Server interface is active, and queue jobs to be sent to Rx-Server.  Because Rx-Server requires a separate configuration for each computer which will connect to it, Rx-Universe does the actual communication with Rx-Server through a single computer, greatly reducing the setup and maintenance needed for the connection between Rx-Universe and Rx-Server.

The second parameter specifies whether the order number or the tray number should be the reference number for jobs sent to Rx-Server.  While in Rx-Universe either the tray number or the order number can be used to retrieve jobs on a device, Rx-Server has only one job number field, so only one of the tray or order number can be used.  This will usually be dictated by which barcode will be scanned at equipment which is connected to Rx-Server.  For purposes of this guide, “Order number” is used as the job number in Rx-Server.

 

The “Get Jobs from Rx-Server” option tells Rx-Universe to look for status “C” jobs in Rx-Server, process those orders, and send the results back to Rx-Server.

One device record must be set up for the actual communication with Rx-Server.  This is similar to the setup for other devices – the communication is actually done by a WinRx-Universe session.  Recall that this session must be running on a PC with a static IP address.

Set up the device session similar to the following – the workstation number should refer to the session on which it will be running, the port number is for reference only, has no effect on the interface, but should not be a COM port which might exist on the PC.  The example here uses port 252, as that value is unlikely to exist on a PC as a physical serial port.

The Rx-Server interface can be run in conjunction with other devices, serial or TCP/IP; it does not require a dedicated session.

The setup record for Rx-Server should be similar to the following:

 

Note the device type of “RXS”.  The Rx-Server IP field must be the static IP address of the computer that will be running Rx-Server.

The Connection Port is the TCP/IP socket used for the communication to Rx-Server – this is configured on the Rx-Server itself, Rx-Universe must be set to use the same port.

The Client Port is the port that is configured on Rx-Server to accept requests from the IP address of the computer that WinRx-Universe is running on.

The fields that are to be sent to Rx-Server can be changed at the lab’s discretion. The list of fields to send are stored as an LDI file (a standard initialization file specified in the VCA standard).  The lab can modify this LDI file directly from the device setup screen.  The first time you set up the interface, and click the “View/Edit LDI file” button, you may see the following message:

 

Respond Yes – this will create a default Rx-Server.LDI file, and show you the contents. 

If the file already exists, the above question will not appear, and you will proceed directly to the following screen:

 

This is a standard Windows multi-line entry field.  To add a new line (or move to a new line), use CRTL-ENTER instead of just ENTER. You can remove labels, add labels, add lines, etc., as required to specify the fields needing to be sent to Rx-Server for each job.  When done making changes, click “Save”.  If the Rx-Server interface is running, restart it to have the changes take effect.

Configuring Rx-Server

For complete details on configuring Rx-Server, please consult documentation provided by SatisLoh on this product. The guidelines in this document for configuring Rx-Server are abbreviated and are used only to illustrate a connection with Rx-Universe, using the settings given above.

The following screen is accessed in Rx-Server from the “Data-Server” option, then “Settings”.  (Note, Rx-Server must be “stopped” in order to access these screens).

From “Settings”, select the “Network” tab.:

 

The “Port of TCP/IP connection” is the value which must be matched in the “Connection Port” field in Rx-Universe.

Clicking “Administration of Clients” gives the following screen:

 

An entry must exist for the specific computer name and IP address of the computer that will be running the WinRx-Universe session communicating with Rx-Server.  Note that if the WinRx-Universe session is running as a thin-client session of the server, the IP address to be used here is that of the CLIENT, not the IP of the server.  Communication with Rx-Server is done, in this case, via the RxNetAccess.DLL resident on the client computer.  This model allows Rx-Universe to be hosted on an external server, and a local, thin-client WinRx-Universe session to be used to communicate with a local Rx-Server box.

In this example, the computer name is “tonydell”, and the internal IP address is 192.168.168.102.  An entry such as the following must be created:

 

The “Port” here is the “Client Port” which is referenced in Rx-Universe.  Rx-Server tracks which computers (sessions or processes) have sent or requested information to it by means of different port numbers.  These ports should not be confused with the communication port used for the actual data transfer.

 

Checking Communication in Rx-Universe

When the device session in Rx-Universe is started, if the device session cannot establish a connection with Rx-Server, the message NOSV will appear on the device screen, as follows:

 

This can be caused by:

1)       The Rx-Server software not running

2)       Incorrect IP address of the Rx-Server

3)       Incorrect Client set up for the WinRx-Universe computer on the Rx-Server computer

4)       A blocked port (due to firewall software)

5)       Incorrect port(s) between the two systems

A good communication will look similar to:

As with other devices, a log file is maintained for the device.  From the device screen browse window, with the Rx-Server device highlighted, pressing the "1" button will present the log file of the communication session, as follows (the session below shows part of a job retrieved from Rx-Server):

The first few log entries show Rx-Universe’ attempts to establish a connection with the Rx-Server session.  While there is no call that directly tells whether the connection is successful, the Get_Job_Count function returns either the number of active jobs in Rx-Server, or it returns an error code.  The log file shows, at a glance, what settings are used to try to connect to Rx-Server, and the results of the Get_Job_Count check.

 

When a job is successfully sent to Rx-Server, the WinRx-Universe screen shows the status (as with other devices):

 

Description of Processing In Rx-Universe

When orders are created or modified in Rx-Universe, an entry is created in a “trigger” file (OMRXSERV.DAT).  The trigger file is populated when manual orders are entered or modified; when electronic orders are received; when digital calculations are received back from a digital calculator, and when jobs are shipped. 

If desired, this trigger file can be viewed with the program Rx-UniverseRXS, run as a utility program from “Utility Functions”, “Run Specific Cobol Program”.

This is a standard Rx-Universe browse window – individual entries consist of the order (or tray) number, the date and time the entry was created, and a function flag.  If the function flag is “D”, that triggers deletion of the Rx-Server job, otherwise a record will be created in Rx-Server for that job. 

After any queued jobs have been sent to Rx-Server, Rx-Universe checks for jobs waiting for calculation.  These are jobs present in Rx-Server with a job type of “C” (the Type column from the main Rx-Server screen).

A job waiting for calculations will contain the information about the Rx, possibly including some specifications to restrict blank selection.   Often, the job will use LNAM, LMFR, and/or LTYP to indicate the material, lens style, etc, of the job to be processed.  Here is an example of a type C job with typical information that might be present:

The contents of the order are:

Many of the labels are self-explanatory (SPH, CYL, etc), but note the use of LNAM, LMFR and LTYP.  These values must be translated to the appropriate Rx-Universe codes in order to select the correct lenses, so the VCA translations, for the above, are set up as follows:

Note that LNAM of “ASP POLY TRANSITIONS” translates to material “C”, treatment TR6 and color GY3; LTYP of “SV,AS” translates to lens style SVA.


A few comments on the labels used in the above order:

_CUSTNO – has been added to allow Rx-Server to specify a customer number.

THNP – can be used to specify the minimum desired edge/center thickness

MBASE – specifies a particular base curve to use (will over-ride the base curve chart in Rx-Universe)

If a job can be processed (blanks selected, calculations performed, job correctly priced), the results of the calculation are sent back to Rx-Server.  If the job cannot be processed because of missing or invalid information, the appropriate error messages are written back to Rx-Server.