This blog collects all the blog entries, related to Sun Java CAPS, Sun GlassFish ESB and Sun OpenESB, which I posted to Java CAPS Field Technical Tips, http://blogs.sun.com/javacapsfieldtech/ from the time I started blogging to end of February 2010.
Of late I am also posting articles on Oracle SOA Suite as it applies to HL7 v2 processing, and similar matters.
From March 2010 this is my principal blog spot.
From October 2016 I am blogging on technical topics which are not vendor product-focused.
Hi Michael
Do you see Oracle supporting X12 maps similar to HL7 support.
Regards
Roshan
Hello, Roshan.
As far as I undersand so far, and I have not gone very deeply into Oracle kit yet, Oracle has a B2B component in the SOA Suite which addresses the EDI ineroperability, and has X12 support. Sre, for example, http://www.oracle.com/technology/products/soa/b2b/collateral/b2b_11g_ds.pdf. A google search for “oracle” “SOA” “Suite” “X12” will give a number f hits, some of which may answer your question.
Regards
Michael
Hi Michael,
I am trying to process HL7 messages as batch file (multiple A04 HL7 messages in a same file) using Glassfish OpenESB v2.1. But it only processes the first message and ignores rest, no error, no warning. I have enabled the multipleRecordsPerFile flag and also set the recordDelimiter as ‘LINE FEED’. Can you suggest me something regarding this?
Thanks and regards,
Bhushan
Hello, Bhushan.
Please send me your project and your file (zipped up). I will have a look.
Use michael DOT czapski AT sun DOT com
Hi Michael,
I am trying to deploy an OpenESB BPEL project on a linux server. This project makes use of Pojo, Database and File Binding components. It works fine on my local machine and even on my colleague’s local machine. But when I deploy it on server, the Database and File Binding components does not start properly and I can see their state as ‘Unknown’ at “JBI> Service Assemblies> ” in the Glassfish Admin console. (For other projects deployed on server, these components show state as ‘Started’ ). Can you please suggest me something regarding this? I have redeployed project, re-built it, and even restarted the server several times.
Thanks and regards,
Bhushan
Hello, Bhusham.
You will be best served by asking the OpenESB community through the openesb mailing list: https://open-esb.dev.java.net/MailingLists.html
Regards
Michael
Hi Michael,
I’ve some HL7 output files from a applikation that are not `real` HL7.
For this reason, I must exchange some fieldvalues with other ones.
Because some of the files can contain a lot of values to be translated,
I’d like to put this transcodes in a file somewhere on the integration server.
Would it be a good idea to do this with a java propertie-files (as you noted in some prior posts)?
Thanks and regards,
Thomas
Hello, Thomas.
I don’t understand what you are trying to do.
“not `real` HL7” sounds like the messages do not follow standard HL7 structures. If this is the case then you need to define a custom structure to represent these messages and build a transformation logic to transform them to appropriate standard HL7 structures.
“I must exchange some field values” and “files can contain a lot of values to be translated” sounds like you have valid HL7 structures but you need to manipulate data in some, possibly, many fields to translate data from some code set to another. If this is the case then how best to do this depends on many factors, principally on what you are using to do the translation – Java or BPEL, how many values you have and how likely they are to change, and so on.
So, I don’t have a recommendation – “insufficient data” 🙂
Regards
Michael
Hello Michael,
Sorry about my english – in german I could be more precise… ;-).
There are two independed questions – but same solution in the end…
We work with jCAPS 5.1.3 – and Java.
Question 1 – transcode:
The sending application doens’t follow standard HL7-values (not structures).
Normaly the patient sex is codes as M and F in standard HL7.
The sending application gives us a M and W (german interpretation…).
This way I have to `normalize` the data – and I’d like to do that in a file.
Question 2 – filter:
There are some application, that need only a subset of messages.
The filter is for example a set of organisationids.
I’d like to put that ids in a file – because the ids frequently change (don’t aks…).
This way I could simply change the ids in the file.
Question regarding the performance:
In either case, if I check these transcode/filter-files each time the jcd runs – there will bee some performance impacts – I guess. Would it be possible to `load` such a files to a global array/hashtable?
(the array could be updated via a BatchInbound that polls for changes I do to the source file.. . 😉 )
Sorry for asking this here. I couldn’t finde no hints on this in ‘your’ book, nor by our dealer/supporter. A first hint on this, I found in your post ‘propertie-files’.
Thanks and regards
Thomas
Thanks for elaboration. Now I understand.
Have a look at https://blogs.czapski.id.au/2007/11/java-caps-5-1-3-using-propertirs-for-runtime-control-note-3-loading-properties-from-a-file for a discussion on how to use properties from a file in 5.1. This is a very simple example. One could elaborate on this example by caching properties in a JCD so that the file is not read each time.
One needs to keep in mind that the more values in the file the more inefficient this will be. I can’t say at what point/with how many values this will be a problem.
There is an old document of mine which discusses this topic in greater detail with examples for ICAN 5.0. With some effort you should be able to adopt it for 5.1: https://blogs.czapski.id.au/wp-content/uploads/2010/09/AP-Horizons-2004-Properties-in-JCDs.pdf
There is a ZIP archive containing a reasonably sophisticated property file JCD 5.1 processor which you could look at to see if some of the techniques can be useful to you: https://blogs.czapski.id.au/wp-content/uploads/2010/09/jcdDynamicConfig.zip
Hello Michael,
Thank’s for your great help – some of the documents I allready know – the others give me a good idea, that something is not correct in my mindset… “This technique contravenes at least two rules”… 🙂
Maybe I’ll go to load the ‘property-file’ via a jCAPS BatchLocalFile and put its payload to a java-hashtable.
This way I wouldn’t break EJB rules, would I?
And as long as there are no performance problems…
What’s wrong in our environement, that we need such filter/transcodes -regarding the fact, that in jCAPS this is not considered to be a need?
Thanks and regards
Thomas
ps: I can’t find the button ‘make a donation’ (you have my email!)
Hello, Thomas.
If you are simply reading the properties and not modifying them don’t worry about JEE rules that you might be violating. If this kind of solution works for you then use it 🙂 Rules are there to be broken if you have a good reason and are willing to accept the consequences (in this case there are no consequences).
I don’t know what is wrong with your environment or even if there is anything wrong with it 🙂
There in no Donate button because the articles I write are free / gratis. Thanks for offering to donate. You are welcome to buy the Java CAPS book, if you have not done so already 🙂
Regards
Michael
Hi Michael,
Nice articles on SOA suite B2B and Hl7 integration.I am looking for a generic Database schema for Hospital and Connected entities which will simulate all the HL7 message types(Atleast patient related). I need schema in such a way that I would be able to map the incoming Hl7 messages to DB entities. This will help us in developing POC Around Hl7 using the SOA and B2B(A kind of dummy Hospital IT infrastructure).
If you can provide me pointers; that would be great help
Sushil
Hello, Sushil.
I had a crack at a HL7-like DB schema about 10 years ago. The projecyt never went anywhere. I am not aware of such a thing existing or that it would be useful as a model for a hospital – I doubt that it would. HL7 v2, which is what I assume you are working with, was never intended to represent clinical concepts. From the patient informaiotn standpoint you probably need to model PID, PV1, PV2 9perhaps, perhaps not), NK1 and similar. Have a look at the HL7 v2 standard specs, for example http://www.hl7.org/library/General/v231.zip will give you the draft HL7 v2.3.1 spec. Bed on that you can try ti figure out which segments (groups of related informaiton) are relevant to what you are trying to accomplish and based on segment structures how a database schema should look like. Keep it simple 🙂
Regards
Michael
Hi Michael,
We are currently trying to build few strategies fro migrating from jcaps to Oracle SOA Suite.Oracle has cleary stated regarding the jcd’s and Bpel’s migration ,But What about migration projects of other components like eXchange ,eView,eTL,eBAM ? Can we have any work around similar to jcd to spring Context .
Thanks in advance
Raghu
Hello, Raghu.
I can’t make promises for Oracle 🙂
– eXchange -> this is configuraiton – use SOA Suite B2B – it supports a superset of protocols supported by eXchange
– eView – the most recent incarnation is the OHMPI (Oracle Healthcare Master Person Index – a strategic product developed now by teh Heath Sciences Global Business Unit) – I will be happy to discuss this in detail
– eBAM – this saw very little use over the years nad has not been supported in any version of Java CAPS 6 – use Oracle BAM – much better
– eTL – this has not seen much use – Oracel ELT and ETL toolin gis much more robust and feature rich – onsider re-developing in that environment
Regards
Michael
Thanks for the Update Michael
I have gone through your blog regarding the migration of HL7 projects from jcaps to SOA Suite using Spring .You have mentioned that the best bets for migration would be be the HL7,X12,EDIFACT ,SWIFT. If we are looking at migration of the Jcds containing Oracle,Batch,SAP adapters which are tightly coupled to Jcaps ,in that case how far can we achieve re-usability of the existing jcds and what level of effort need to be put into migration and what level of dependency would be there on JCAPs.
Thanks&Regards
Raghu
Hello, Raghu.
The less “generic” mapping code the less reusability.
Any adapter-specific code is not portable.
Rather than using Java CAPS Batch eWay you will have to use Oracle File Adapter or some other Oracle or Third-party Adapter with the required funcitonality. The same goes for SAP Adapter and Oracel DB Adapter. Any code addressing specific adapter funcitonality, like “BatcheWay”.getPatyload() and such will have to be re-written/modifed to use the corresponding Oracle/third party adapter API. I cannot put an estimate on the expected effort. Nobody can, without looking at specific JCDs.
Regards
Michael
Thanks for the help Michael.Will get back to you if i face still any issues Going Forward
Hi Michael
I has been playing with Oracle SOA for the last 6 months in order to migrate JCDs to Oracle. I am considering Spring Components for its strategy to minimize its migration impacts.
BTW, my question is how Java code can call Oracle Adapter API including FTP/File so that JCD java program can utilize this function.
I cracked their adapters and serched all of web site, but it is not straight forward like JCAPS. Looks like nobody tried to use Oracle SOA Adapter API in Java.
Thanks
Wonwoo
Hello, Wonwoo.
I am afraid I have not gone into SOAP Suite in enough depth to be able to advise others, Perhaps a SOA Suite mailing list will be a good place to ask.
All the best
Michael
hai micdhael,..im new in oracle b2b…i have some questions for you…what is listening channel? what is the difference between listening channel and delivery channel?…how about internal delivery channel,internal listening channel,external delivery channel,and external listening channel?
Hello, Gede.
Oracle SOA Suite B2B documentation will be t he starting point for this.
oh thanks a lot Michael..now i know the answer…mmm…i have built some project…it is about to send hl7 message via mllp transport protokol to inbound direction..i’m using mllp channel (server mode)…so my mllp client application can send hl7 message throught that channel..i already make an agreement on trading patner too…but when i remove mllp channel on agreement channel list…the message can still be delivered …why it can happen??..please explain me how it can be occured…thanks…
Hi MIchael,
I wonder if you can help me with some JCAPS 6.2 issues.
I have an WebService that uses HTTP eWay and it is running fine in an instalation of JCAPS 6.0 R1. Now I imported it into my 6.2 repository and when try to run I receive the following line :
Error in allocating a connection. Cause: RAFWK-0112: Failed to initialize the EwayConnection instance of type com.stc.connector.httpadapter.eway.HTTPEwayConnection
Do you have any idea why I receive this ?
Thanks !
Hello, Thiago.
The most exepditious way to get help will be to contact your Oracel Java CAPS Support team and ask for assistance. Unfortunatelly I am not in a position to spend providing support at this level.
Regards
Michael
Hi Michael,
I recently purchased your excellent Java Caps Basic book and have a question for you. In part two on the CD, do you have the jcaps export files available for the HTTP adapter or the SOAP/HTTP adapter?
Thanks,
Dustin
Hello, Dustin.
The export of all projects which were “exportable” is available through the https://blogs.czapski.id.au/2009/01/java-caps-basics-book-project-exports-archive
Good luck
Michael
Thank you, Michael
Hello Michael,
Sorry to bother you about this question. In the HTTP eway example, supposed I am sending a message to an external web server and with only access to the log file for the client, how do I capture the SOAP message BEFORE it is delivered to the web server from the JCD?
Thanks,
Dustin
Hello, Dustin.
When using a HTTP Client eWay you should be able to log anythong that the eWay sends and receives, after ll it is you who is providing the HTTP headers and the document body you are sending. The HTTP eWay does not care whether what you are sending is a SOAP message or not. I don’t understand your issue from the question.
If you are not using the HTTP eWay but a Wweb Service Container then the matter is harder. In Java CAPS 5.1.3 U2 there is a new “soap handler” mechanism, which you might look at to see if it gives you what you need.
I did not try this and now never will.
You can also look at putting a proxy between your sender and your receiver – something like TCPmon or Burp is you are using SSL.
Regards
Michael
Thank you Michael for answering my question.
Hi Michael,
do you know if Oracle SOA Suite Healthcare Adapter supports HL7 v3 and in what scope if so.
thnak you,
Sebo
Hello, Sebo.
HL7 v3 is supported by the SOA Suite for helathcare integraiton / SOA Suite Healthcare Adapter. HL7v3 guidlines library is available.
See http://docs.oracle.com/cd/E23943_01/user.1111/e10229/toc.htm for details of the document editor.
I don’t understand the “scope” part of your question.
Regards
Michael
Michael
Do you have a design pattern implemented in SOA Suite using a mediator based composite that will pull records from a database and publish them to a JMS queue as individual messages, i.e. 1 JMS message per row of data in the database table? We have an implementation that works except that it bundles all the records in to one JMS message. We can’t work out how to get the mediator to generate distinct messages.
We are generating HL7 2.x messages from the database records.
Thanks in advance
Ian
Hello, Ian.
Alas, I am not the person to ask this. I am out of this business now.
You will need to reach to SOA Suite gurus, perhaps through an Oracle forum where such people hang out. Perhaps: https://community.oracle.com/community/fusion_middleware/soa_and_process_management/soa_suite_3
This is not really a HL7 question but rather a SOA Suite question.
Please keep in mind that depending on how you construct your hl7 messages you may have a segment terminator issue. XML (if your message is XML at any point) treats all line terminators and whitespace the same and replaces all CRs with LFs. Check to make sure that you get what you are expecting.
Regards
Michael
Hi Micheal,
I am hoping you can help. I saw a post you made in reply to a person who was trying to get Mutual authentication to work in JCAPS.
I have a requirement to create an FTPS or SFTP connection and to use Mutual Authentication.
Any documentation on how to achieve that using JCAPS 5 and JCAPS 6 would be greatly appreciated.
Regards
Jacques
Michael,
I got everything working on Slackware 13.1 (linux) however I get a fatal when I try to send: Exception in thread “main” ca.uhn.hl7v2.HL7Exception: Invalid or incomplete encoding characters – MSH-2 is ^~&
Meanwhile MSH is correctly formed (it parses successfully on the receiving server when I use an app called socketReader): MSH|^~&|SQLCLINIC| … etc. and I get an ACK back.
Any ideas what could be the issue here (I’m a perl programmer and know nothing about java!)
I would really prefer to use your as the syntax is very standard (especially to a unix person) and the documentation is good. But this MSH issue has me stuck.
Thanks,
Tom
Hello, Tom.
Please zip up (or tar up if you on linux/unix) the sample message and send it to me to look at.
my first name dot “w” dot my last name at gmail dot com