Do you need to use the web services? PHINMS’s internal sender core is built around the transport_out database and Rhapsody is good at talking to databases. I have not tried to talk to the HSQLDB, but we are talking to multiple SQL Server 2008-R2 servers with very little effort. Theory says that if you have a JDBC driver for HSQLDB that it should be straight forward.
We are just finalizing an upgrade to our routes using Rhapsody 5.4.0. We have PHINMS 2.8.02 running with a SQL 2008-R2 database. The amended route is using a database filter to write directly to the PHINMS TransportQ_Out table. We have a couple of variations on this theme, one sends PHLIP data to the FL-GA RNR hub and the other sends data to a phony RouteID so that it will automatically fail when PHINMS tries to send it to the TB program. Once a day, a SQL job takes the most recent failed TB job and corrects it and deletes the other TB messages (if they exist). This allows us time for human intervention if the CDC TB HL7 verification finds and reports an error (after the HL7 is already written to the database).
If you are talking about Case Notification_v2 as distributed by the CDC (back in Rhapsody v2.4 days), I was able to move it forward to 5.4 by rewriting the PHINMS interface and by rewriting the email notification interface. In both cases, the original components were custom DLL’s that no longer work with later versions of Rhapsody. I was able to replace them with configured versions of the database filter and e-mail client respectively. I’d be happy to share screen shots of those.
Phill
--
---
You received this message because you are subscribed to the Google Groups "PHINMS User Community" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
phinms+un...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
This is the PHINMS sender comm point in Rhapsody. Rhapsody can emulate PHINMS to send to another PHINMS receiver.
Phill Lowe 360 236-4261
Systems Development Office, Department of Health, Washington State
Working to improve the health of the people of Washington State
In Oklahoma I have been using Rhapsody for several years to send the Case Notification to CDC. We are using SQL 2008 database rather than the default database. The surveillance people create a Case notification file once a week and drop it into a folder monitored by a Rhapsody route. The Rhapsody route inserts it into a transport out table we have created in SQL2008. It inserts the message contend into the text field and also configures the rest of the necessary information; like service action pairs and urls etc. It works fine using a database comm point. I have heard of people talking about using a PHINMS comm point but don’t know of anyone that does. What I heard about using a PHINMS comm point is that managing digital certificates is even harder using Rhapsody than it is using PHINMS directly.
Allen
No, I don’t actually know anyone who has done it. I am supposed to be blocking out time to do the on-line expert class so I may be learning how to do it. With my background in PHINMS, I’d probably be the best person to sort it out and write up a “How To” document.
Since we have multiple PHINMS instances anyway, I’ve been taking the simple approach and just writing to the TransportQ_out table.
Phill Lowe 360 236-4261
Systems Development Office, Department of Health, Washington State
Working to improve the health of the people of Washington State
Number 1 can be done.
Find sender.xml in your PHINMS installation directory. Locate the transportDatabasePool tag. Here’s mine:
<transportDatabasePool>
<transportDatabase
databasePasswd="SENDER_TransportDatabasePassword25"
databaseUser="SENDER_TransportDatabaseUser26"
databaseUrl="jdbc:hsqldb:hsql://localhost:6287/phinms_core"
jdbcDriver="org.hsqldb.jdbcDriver"
type="hsqldb"
id="default">
<transportQueue
retentionPeriod="60"
startDeletionTime="2007-01-01:12:00"
deletionInterval="1"
deleteRecords="false"
outgoing="C:\20150225PHINMS2802/shared/outgoing/"
enabled="true"
responseToDb="true"
maxThreads="3"
multiThreading="true"
id="default"
tableName="TransportQ_out"/>
</transportDatabase>
</transportDatabasePool>
The databaseUrl is a JDBC connection string. You can use it in the configuration for a Rhapsody Comm point or DB Lookup filter.
Note that by default, the HSQLDB server that ships with PHINMS only listens on localhost. You can change that, but for now I’ll assume that your Rhapsody engine and your PHINMS installation are on the same machine. (Never expose that old version of HSQLDB to an untrusted network traffic!)
You’ll need to decode the databasePasswd and databaseUser variables. This can be accomplished with the PBE.bat tool that ships with PHINMS. (If you’ve never reconfigured these values, you can use the defaults that I’ll email you off-list.)
The variable jdbcDriver specifies the JDBC Driver Class to that you want Rhapsody to load.
In Rhapsody, you’ll need to set your comm point or DB Lookup Filter to use “Manual setting” for Database type. Then, you can use the database configuration file editor to provide the JDBC connection information harvested from PHINMS’s sender.xml.

Finally, you’ll need a SQL Insert statement that writes records to transportQ_out tables! Here’s mine:
INSERT INTO [dbo].[TransportQ_out]
([messageId]
,[payloadFile]
,[payloadContent]
,[destinationFilename]
,[routeInfo]
,[service]
,[action]
,[arguments]
,[messageRecipient]
,[messageCreationTime]
,[encryption]
,[signature]
,[publicKeyLdapAddress]
,[publicKeyLdapBaseDN]
,[publicKeyLdapDN]
,[certificateURL]
,[processingStatus]
,[transportStatus]
,[transportErrorCode]
,[applicationStatus]
,[applicationErrorCode]
,[applicationResponse]
,[messageSentTime]
,[messageReceivedTime]
,[responseMessageId]
,[responseArguments]
,[responseLocalFile]
,[responseFilename]
,[responseContent]
,[responseMessageOrigin]
,[responseMessageSignature]
,[priority])
VALUES
($messageId
,$payloadFile
,$payloadContent
,$destinationFilename
,$routeInfo
,$service
,$action
,$arguments
,$messageRecipient
,$messageCreationTime
,$encryption
,$signature
,$publicKeyLdapAddress
,$publicKeyLdapBaseDN
,$publicKeyLdapDN
,$certificateURL
,$processingStatus
,$transportStatus
,$transportErrorCode
,$applicationStatus
,$applicationErrorCode
,$applicationResponse
,$messageSentTime
,$messageReceivedTime
,$responseMessageId
,$responseArguments
,$responseLocalFile
,$responseFilename
,$responseContent
,$responseMessageOrigin
,$responseMessageSignature
,$priority)
I use this javascript filter to set all those $variables.
var next = output.append(input[0]);
next.setProperty("payloadContent", next.getProperty("inPhinMsPayloadTextContent"));
next.setProperty("routeInfo", "MyRouteName");
next.setProperty("service", "Router");
next.setProperty("action", "send");
next.setProperty("arguments", "[Service:NE-NE][Action:send]");
next.setProperty("messageRecipient", "APHL-NE_DOH");
next.setProperty("encryption", "yes");
next.setProperty("signature", "no");
next.setProperty("publicKeyLdapAddress", "directory.verisign.com:389");
next.setProperty("publicKeyLdapBaseDN", "O = Centers for Disease Control and Prevention");
next.setProperty("publicKeyLdapDN", "cn=David Loyall");
next.setProperty("processingStatus", "queued");
next.setProperty("priority", "0");
(Well, as you can see, I leave some of them null.)
You’ll probably need to add hsqldb.jar to Rhapsody’s classpath. C:\<phinms installation directory>\appserver\webapps\receiver\WEB-INF\lib is a good place to find this jar (the correct version for the old HSQLDB that PHINMS uses).
What a long email! I am sure that it is full of omissions and errors. Please let me know. :)
Cheers,
--Dave
From: phi...@googlegroups.com [mailto:phi...@googlegroups.com]
On Behalf Of ChristinaC
Sent: Thursday, February 26, 2015 2:54 PM
To: phi...@googlegroups.com
Subject: Re: PHINMS 2.8.02 Sender and Rhapsody 5.5.4
I guess my original posting was confusing.
--