Tuesday, 2 May 2017

Healthcare Information System’s need to Evolve and Embrace FHIR API's

The Stage is set for Healthcare Information System’s to evolve and embrace the API Led development approach to develop clinical applications to consume across the enterprise.
The primary drivers for this change in the industry are:
1)      Patient Centric Healthcare
2)      CMS mandated Meaningful use of EHR’s 
3)      Better Decision Making
4)      Transaction Modernization Solutions
The Healthcare Information Systems of today are not ready to realize these “shifts” in priorities. A new architectural approach is needed to move the Healthcare away from its heavy reliance on HL7 and custom integrations to embracing the API driven Architecture model. This is where FHIR API’s have introduce a new standard to exchange Electronic Health Records (EHR’s). FHIR use of API’s allows implementers to easy integrate, request and transfer data between various Healthcare systems.
The basic building blocks of FHIR API’s are its base resource pools and that are categorized and interact with each other to build a complete picture.  This defines the way information can be exchanged between different healthcare systems.
The ultimate goal with FHIR API’s is easy exchange of information not only within the organization but also make FHIR accessible to 3rd party applications that provide more engaging patient experiences.
These applications are called “SMART”(Substitutable medical apps and resuable technology) apps which are applications that can run on FHIR API’s and consume information from the Hospital Information Systems to deliver Patients-Centric-Healthcare.
Organizations can use API management Platforms to leverage FHIR API’s securely:
TIBCO’s API management platform Mashery has the ability to enable healthcare provides to host their FHIR API’s. Mashery’s authentication support for OAuth2 and reduced coding requirements enable Healthcare providers to accelerate their implementation of FHIR API’s. This implementation provides true flexibility to Healthcare providers and allows them to accelerate implementations of modern clinical applications.
Mashery allows Healthcare providers to expose their Electronic Health Records (EHR’s) seamlessly with 3rd party applications and manage your partner applications. Effectively, the healthcare provider can provide access to an App Store which has “Smart” Applications that a customer can use to interact with the Hospital information system to put the Patient at the centre of the Healthcare experience. All of this can be done without comprising security using Mashery’s support for OAuth2.
Roadmap to reaching complete FHIR API compliance:
HL7 prominence in healthcare information systems makes it difficult for providers to shift stable and operational systems to a new architecture overnight. Hospital information systems of today have many critical systems and processes which are interdependent and are already running on HL7 integration’s. These interfaces and systems are mission critical and can cause a lot of headaches which considering the switch to FHIR API’s. This is where TIBCO’s best in class integration solutions can solve a lot of these issues by packing existing integrations as Rest interfaces without any disruption to critical processes. TIBCO Business Works comes with a plug in for HL7 messaging which allows organizations to deploy cloud native healthcare integrations. 
This allows for a seamless staggered implementation of FHIR across the Healthcare information system. The implementation in general goes through 5 different levels from basic framework to clinical reasoning which can be easily achieved using TIBCO’s enterprise solutions.





Monday, 30 May 2016

Installing Oracle SOA 12c on Windows 10

With the release of Oracle SOA 12c Oracle has enhanced many features including Rest adapter and other smaller enhancements which add up to being a considerable upgrade.

As one would expect there are a few issues that will cause some headaches for the user. One of them is the new integrated server throwing an exception.

(ADRS_DOMAIN_PASSWORD)

I am currently using a Windows 10 OS which has been installed via Bootcamp on a Macbook pro. I was facing a few issues while installing SOA12c on my machine. One of them was getting my BPM to work which I still have not successfully done on my machine. Everything else but my BPM component is functional at the moment.

The other issue I was facing is with having a exception being thrown when trying to create a default domain inside Jdeveloper:

wlst > Failed to get environment, environ will be empty: (0, 'Failed to execute command ([\'sh\', \'-c\', \'env\']): java.io.IOException: Cannot run program "sh": CreateProcess error=2, The system cannot find the file specified')
wlst > Error:  ADRS_DOMAIN_PASSWORD environment variable not set.


This is because jython libraries that integrated weblogic have cannot recognize the operating system.



This is the location you will have to go to with the first portion representing %Oracle_Home% and replace the jar with this file:

http://jmp.sh/v/VcscsEDiuCBP1NhJqWh8


Alternatively you can also extract the Jar and add the string 'Windows 10' in _osTypeMap which is located in javashell.py.

Tuesday, 17 May 2016

Using Maven in SOA 12c to Deploy and Un-Deploy multiple projects.



Purpose:

Deployment through scripts that can be automated through the use of Maven for SOA. This document covers the process of installing maven. We also cover deploying,un-deploying multiple projects through JDeveloper and Command Prompt.





MAVEN:

Maven can be used to create project templates that can be used across multiple projects.

It is also useful to automate the deployment process.

Maven has robust functionality which can be implemented in various ways the purpose of this blog is just to give the user an overview of Maven.



Pre-Installation Steps:

Setup your environment variables: JAVA_HOME (This points to your JDK folder)

Include this at the end of the PATH-- Variable(%MW_HOME%\oracle_common\modules\org.apache.maven_3.0.5\bin)

Installing Maven:

As discussed earlier Maven can be used to automate your project creation and deployment. We have tested the use of this tool on version 12.1.3 through our Local server as well as with isolated instances of SOA servers.

Installation of Maven can be done through JDeveloper as well. We will be going through the way in which we can add the maven agent through command prompt.

  • Navigate to %MW_HOME%\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.1.3 and use following commands to sync your local repository:

Example: In the case of my machine this path was – 

 %MW_HOME% -- C:\Oracle_OSI\Middleware\Oracle_Home\oracle_common


  • Run:

mvn install:install-file -Dfile=oracle-maven-sync-12.1.3.jar -DpomFile=oracle-maven-sync-12.1.3.pom


  • Run:

mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=%MW_HOME%



Step 2 and 3 install the Maven agent locally and enable the plug in for use in Oracle SOA.

  • Update your archetype catalog:

mvn archetype:crawl -Dcatalog=C:\Users\<<uname>>\.m2\archetype-catalog.xml


  • To generate the SOA Application and Project use the command below from the same location. It will generate a project which you can import from JDeveloper:

mvn archetype:generate -DarchetypeGroupId=com.oracle.soa.archetype -DarchetypeArtifactId=oracle-soa-application -DarchetypeVersion=12.1.3-0-0 -DgroupId=org.my.test -DartifactId=test-soa-application -DprojectName=test-soa-project -Dversion=1.0-SNAPSHOT



How to create a Template from command prompt and deploy through the use of this Maven plugin:

So far what we have done enables the plug in for SOA and creates the project for using in SOA. Here we move to Jdeveloper to import the created application and work on the project. In Jdeveloper we will also work on editing the POM file to mention which server we will be deploying to.


  • Import this maven project in JDeveloper using File –> Import and select the Maven Project option as shown below. Click OK.


  • Select the location of the created project from Step 5 in the previous instructions.

Example: C:\Oracle_OSI\Middleware\Oracle_Home\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.1.3\test-soa-application

  • Select all the files listed in the Box below and import them into the project through the option available in the same window.


  • Once the project is opened there will be 2 Pom.xml files that will be available: One in the Projects plane and one in the application server plane.


  • The POM file in the project plane is crucial as it holds all the server information which includes the wls url and uid and pass of the instance.
  • Now we move back to CMD prompt where we navigate to our local workspace and complie and deploy the project using mvn compile and mvn pre-integration-test



Example:






  • This will deploy your application into WLS sever specified in the POM file. Note that this is an application level deployment.



Other commands that can be executed from CMD for Maven:

mvn com.oracle.soa.plugin:oracle-soa-plugin:compile

mvn com.oracle.soa.plugin:oracle-soa-plugin:sar

mvn com.oracle.soa.plugin:oracle-soa-plugin:deploy

mvn com.oracle.soa.plugin:oracle-soa-plugin:undeploy

mvn com.oracle.soa.plugin:oracle-soa-plugin:redeploy

Deploying Projects that have been created from JDeveloper instead of Command Prompt:

  • Create your local project from the SOA application as you normally do.


  • There will be at least 2 pom.xml files present in reach Application as explained above. 1 Pom file referees back to the Application while a new pom file is created for each project within the application.


  • The POM file in the project plane needs to be updated with the URL and USER and PASSWORD as shown above in (4). This is in the properties plane inside the project pom file.
  • Next is similar instructions to the commands shown before. Please run the commands in the order listed

mvn com.oracle.soa.plugin:oracle-soa-plugin:compile

mvn com.oracle.soa.plugin:oracle-soa-plugin:sar

mvn com.oracle.soa.plugin:oracle-soa-plugin:deploy

  • You should see the text Build Successful for each command that is run.


  • For un-deploying the same project through Maven. Please change the values in the build plane of the project pom file as shown below.



Run the following commands in the same order

mvn com.oracle.soa.plugin:oracle-soa-plugin:compile

mvn com.oracle.soa.plugin:oracle-soa-plugin:sar

mvn com.oracle.soa.plugin:oracle-soa-plugin:undeploy