|
ReleaseDoc
Axial 360 EngineSummaryThis document provides the basic instructions for downloading, building, and deploying the Axial 360 Engine. Please refer questions to jitin@axialproject.com. Please note that this is an alpha release. It includes the Axial 360 engine and a simple connector that executes on the Use Case defined below. The objective is to give you an opportunity to see how it currently works and help us make it better.
Architecture OverviewAxial 360 is primarily built on best-of-bread open source components that enable improved scalability, extensibility, and modularity relative to other interface engines.
UsageIntended Users: Experienced health IT middleware developers
RequirementsDevelopment Requirements
Deployment Requirements
Building System ConfigurationThe Axial 360 Engine uses Mule as the integration platform for building and deploying platform- and backend-neutral web services. All that's needed for building and testing the system are a functional installation of Mule, a current Java development kit, and Maven. First, check that you have a valid Java environment by executing: javac -version You should see something like this: javac 1.6.0_20 The major and minor version values should be "1.6" - anything lower may result in your inability to build the system. Please ensure that you have a recent version of the Java 6 JDK. Next, check that you have a current Maven configuration: mvn -version that results in this output: Apache Maven 2.2.0 (r788681; 2009-06-26 14:04:01+0100) If Maven is not installed, or your system reports an older version than the one in this example, please get a current version from the Apache Maven web site. Last, check that Mule is installed and available in your PATH. To validate this, run: mule -version and you should see the following output: *************************************** Mule ESB and Integration Platform Version: 2.2.5 MuleSoft, Inc. http://www.mulesoft.com *************************************** Mule requires these environment variables to be set as a minimum, or it will fail to start:
The value of JAVA_HOME depends on the system that you are in, your distribution, and how you installed Java. Examples of common JAVA_HOME setups are:
The value will vary; check with your system administrator to figure out where the current Java installation is, and how to set this environment variable if it's not set. The MULE_HOME variable should point at the current installation of Mule in your system. It's necessary only for testing the code that you build, since you will have to start the server as a part of your development process. The correct setup for MULE_HOME will vary from one system to another. Assuming that you set Mule up on your home directory, here is a good way to set MULE_HOME: export MULE_HOME=$HOME/mule Last, the Mule executables live in the $MULE_HOME/bin directory. To ensure that all the required executables are accessible you must set up: export PATH=$PATH:$MULE_HOME/bin Run the mule '-version' command again after setting up these environment variables. If it fails, consult with your system administrator or with your on-line help system to figure out how to set your environment. Although these variables are required across all platforms, the commands for setting them up will vary depending on your operating system, shell, and IDE, if you're using one.
Building the SystemThe Axial 360 Engine is a collection of Mule components and transformers used for providing abstract web services for representing clinical, billing, patient, and other data associated with healthcare industry systems. Healthcare systems may expose data in a variety of formats, ranging from HL7 to obscure legacy formats. Axial 360 Engine strives to enable passing aggregated and proxies data to the service consumers in a lightweight, common format readily consumable by either application servers or web browsers. All the web services implemented so far share these characteristics:
ProgrammingAxial 360 components may be coded in either Java or Python. The current configuration includes the Jython 2.5.1 standalone run-time, and all the support modules required for JSON, XML, and SOAP service processing in Python. Since developers may implement new functionality in Java or Python, the decision to use one or the other depends on such criteria as:
Both languages are equally robust, are portable to every major platform, and offer rich standard libraries. Programming Resources
Steps for building the system
This section describes each step in detail. A Few Words About Building Axial 360 EngineAlthough this project is currently built using Maven, this isn't a hard requirement. There are no dependencies in the Java or Python code. The code may be imported into any Java IDE or programming editor or tool, and compiled and .jarred without ever having to install or run Maven. Developers have preferred tools different from the ones used here. The code is organized to facilitate importing it into a different build or development platform like AntTM, Eclipse, or IDEATM. Getting the CodeUnless you are a committer in the project, your source code will come from the Google Code public URI. You may fetch this code anonymously using Subversion: svn checkout http://axial360.googlecode.com/svn You will have the complete sources after a few minutes and you'll be ready to build. Once the operation completes, you should have this directory structure on your home directory: /Users/myaccount/svn/enginelib/trunk/ `~engine/ |~src/ | |~main/ | | |~java/ | | | `~com/ | | | `~axialproject/ | | | `+engine/ | | |~python/ | | | `~axialproject/ | | | |+engine/ | | | `-__init__.py | | `~resources/ | | `-axial-engine-config.xml | `+test/ `-pom.xml If your system reflects this directory structure under the svn directory, you're ready to build! Remember that Subversion will place the files under whichever directory was your working area when you checked the code out of the repository. In this example, the user checked the code out directly from her own account's $HOME directory. Running Maven to Build the SystemThe Maven project management and build system will automatically perform all these actions for your project:
Any dependencies for the Mule system that do not already exist will have to be loaded from various repositories around the Internet (e.g. from MuleSoft, Google Code, Axial Project, etc.). Maven will check for these dependencies and pull the files from the appropriate repositories every time that you build the project, unless you tell Maven otherwise. You will need to review the Maven documentation to figure out how to build the system in an optimal way to your needs. This guide will show you only the most common ways of building the system. So, in order to build for the first time, go to top-level build directory and execute these commands: cd svn/enginelib/trunk/engine mvn clean install The first build will take anything from 1 to 20 minutes to complete, depending on how many files required for this build were already installed on your system. It's recommended that you run this command when you first build your system during a development day, in case any of the dependencies were updated overnight. Otherwise, you may skip (in fact, you will probably want to skip!) the check by running Maven off-line using this command: mvn -o clean install In this case, Maven will build the software using the dependencies already installed in your local Maven repository (usually set up in $HOME/.m2). Maven will automatically compile any Java files placed under the main repository for Java, and their counterparts in the test directory structure for unit testing. You don't need to specify any new files/dependencies. If a Java file exists under either structure, Maven "knows" that it must compile it and include it in the .jar file target. In sum, Maven will execute these steps every time that you clean and install the software:
You may want to skip steps 1, 2, 4, and 6 during regular development cycles if the unit tests take a long time to complete. You do so by executing: mvn -o clean install -Dmaven.test.skip=true Alternatively, you may want to check if some changes that you made to the code compile, without having to build the complete deployment file. In this case, you may want to execute: mvn -o compile In both cases, Maven will either report a successful build or a failure, and will tell you exactly what the issue is so that you can figure out how to resolve it. For more information about how to use Maven, please refer to the Apache Maven site or get a copy of the book Maven: The Definitive Guide. A discussion of all of Maven's features and caveats is beyond the scope of this document.
Deploying the Axial 360 Engine to MuleMule resolves where its components live by inspecting various directories in its installation path. "User code" is installed in the $MULE_HOME/lib/user directory. The current snapshot release of the Axial 360 Engine is still evolving and it's considered user code until a stable, milestone distribution is released. As such it should be installed in the Mule user directory. Future stable releases will be installed in a different location, but that discussion is beyond the scope of this document. Deployment of the Axial 360 Engine requires these steps:
Building the .jar File From SourcePlease follow the instructions in the section Run Maven to Build the System. After Maven completes, you will find this file in your file system: svn/enginelib/trunk/engine/target/axial360-engine-1.0-SNAPSHOT.jar This file is ready for installation if Maven reported no errors. Deploying the .jar Files to MuleIf the code was built on the same server as where the Mule instance was deployed, then all you have to do is copy the axial360-engine-1.0-SNAPSHOT.jar file to the $MULE_HOME/lib/user directory. Mule will recognize the new .jar file and load it when its configuration file is loaded into the system. If the code was built on a separate system, you must copy it to the Mule server using scp, FTP, or any other mechanism that you see fit for moving the file there. If, for example, your Mule server runs under user name axial in the server at 192.168.0.240, you could copy the code to this system using this scp command: scp svn/enginelib/trunk/engine/target/axial360-engine-1.0-SNAPSHOT.jar\
axial@192.168.0.240:mule/lib/userYou also need to copy the Mule configuration file to the same server. Mule needs this configuration file to figure out which services are available from your engine, where the endpoints are located, and which protocol to use for each service. The Mule configuration file is a resource: scp svn/enginelib/trunk/engine/src/main/resources/axial-engine-config.xml \
axial@192.168.0.240:Notice that in this case the Mule configuration file axial-engine-config.xml is copied to the Mule service account's home directory. This configuration file may live anywhere on the file system as long as it's readable by the Mule process during startup. Note: This alpha release relies on pre-built .jar files containing various support tools necessary for running the engine. The POM will include these .jar files as dependencies in a future release. For now please copy them manually. Installing the Extra Support .jar Filesscp svn/enginelib/trunk/engine/src/main/resources/*.jar axial@192.168.0.240:mule/lib/user This operation will copy the Jython run-time, some logging support classes, and a .jar version of the Python source code ready for testing. Beware that the actual directory names and user IDs will depend on your installation. If you aren't sure about how to install this, please contact your system administrator and ask for her guidance.
Running the Axial 360 EngineLog on to the Mule server. Before starting the engine you must ensure that Mule is not running. You do that by executing this command: mule stop You should see a similar message to this if the engine wasn't running, or a few more lines of text if it was: Stopping Mule Enterprise Edition... Mule Enterprise Edition was not running. At this point, all you need to do is re-start the engine to make the services available: mule start -config axial-engine-config.xml The system will display this message: Starting Mule Enterprise Edition... All the output from the Mule server is written to $MULE_HOME/logs/mule.log - you may review this file if you want to see all the details of Mule startup. Beware that this file may be several hundred lines long.
Executing the Use CaseThere are three basic use cases that we can execute to validate that the alpha installation is running. Test the Axial 360 Versioncurl -i http://192.168.0.240:8080/version This command returns the current services container version: HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 12:57:53 PDT
Server: Mule Core/2.2.5
Expires: Fri, 18 Jun 2010 12:57:53 PDT
http.context.path: /version
MULE_ENCODING: UTF-8
MULE_REMOTE_CLIENT_ADDRESS: /192.168.1.204:65463
http.request.path: /version
MULE_ORIGINATING_ENDPOINT: EngineVersion
Content-Type: application/json
Content-Length: 61
Connection: close
{ "version": "1.0 SNAPSHOT", "info": "Axial (Python) Project" }Test Fetching All Available Clinical Continuity Recordscurl -i http://192.168.0.240:8080/clinical_continuity_records The Axial 360 Engine will respond with every CCR defined in the system: HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 01:02:23 PDT
Server: Mule Core/2.2.5
Expires: Fri, 18 Jun 2010 01:02:23 PDT
MULE_ENCODING: UTF-8
Content-Type: application/json
http.status: 200
Content-Length: 953
Connection: close
[
{
"IEN": "3",
"IENS": "3,",
"gender": "FEMALE",
"age": "55",
"name": "PATIENT,CLINICAL F"
},
{
"IEN": "4",
"IENS": "4,",
"gender": "MALE",
"age": "64",
"name": "PATIENT,CLINICAL M"
},
{
"IEN": "2",
"IENS": "2,",
"gender": "FEMALE",
"age": "41",
"name": "PATIENT,DIETARY"
},
{
"IEN": "6",
"IENS": "6,",
"gender": "MALE",
"age": "49",
"name": "PATIENT,LABORATORY"
},
{
"IEN": "8",
"IENS": "8,",
"gender": "MALE",
"age": "7",
"name": "PATIENT,PEDIATRIC"
},
{
"IEN": "7",
"IENS": "7,",
"gender": "FEMALE",
"age": "35",
"name": "PATIENT,PHARMACY"
},
{
"IEN": "5",
"IENS": "5,",
"gender": "FEMALE",
"age": "39",
"name": "PATIENT,RADIOLOGY"
},
{
"IEN": "1",
"IENS": "1,",
"gender": "MALE",
"age": "65",
"name": "ZZTEST,ONE"
}
]Test Fetching a CCR for a Specific Patientcurl -i http://192.168.0.240:8080/clinical_continuity_records/2 This command returns the CCR and all associated data for the specific patient: HTTP/1.1 200 OK
Date: Fri, 18 Jun 2010 01:04:25 PDT
Server: Mule Core/2.2.5
Expires: Fri, 18 Jun 2010 01:04:25 PDT
MULE_ENCODING: UTF-8
Content-Type: application/json
http.status: 200
Content-Length: 3262
Connection: close
{
"IEN": "2",
"IENS": "2,",
"gender": "FEMALE",
"age": "41",
"name": "PATIENT,DIETARY"
"purpose": "SEND PHR",
"dateOfBirth": "1955-04-27",
"informationSystemSource": "WorldVistA EHR/VOE",
"informationSystem": "Axial 360 Engine v1.0-SNAPSHOT"
}Monitor the Axial 360 Engine State for Each Service RequestYou may trace the Axial 360 Engine state by tailing the Mule log and analyzing the request. You may do this from your local system: ssh -l axial 192.168.0.240 tail -F mule/logs/mule.log Requesting an individual CCR, for example, will result in output like this: INFO 2010-06-18 01:16:22,426 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: ***** Begin REQUEST inspector *****
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Component: SedaService{ClinicalInfoService}
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Payload type: java.lang.String
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --- payload begin ---
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: payload size = 30 bytes
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --:
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector:
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: /clinical_continuity_records/3
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --- payload end ---
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Endpoint: ClinicalInfo|http|connector.http.0
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.request: /clinical_continuity_records/3
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.context.path: /clinical_continuity_records
INFO 2010-06-18 01:16:22,427 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.version: HTTP/1.1
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: Host: 192.168.1.204:8080
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.method: GET
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: MULE_REMOTE_CLIENT_ADDRESS: /192.168.1.204:49171
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: User-Agent: curl/7.19.7 (universal-apple-darwin10.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: Keep-Alive: false
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.request.path: /clinical_continuity_records/3
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: MULE_ORIGINATING_ENDPOINT: ClinicalInfo
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: Connection: false
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: Accept: */*
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Reply to: null
INFO 2010-06-18 01:16:22,428 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: ***** End REQUEST inspector *****
INFO 2010-06-18 01:16:22,481 [connector.http.0.receiver.9] org.mule.module.scripting.component.Scriptable: processing method = GET
INFO 2010-06-18 01:16:26,103 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: ***** Begin RESPONSE inspector *****
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Component: SedaService{ClinicalInfoService}
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Payload type: java.lang.String
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --- payload begin ---
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: payload size = 3262 bytes
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --:
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector:
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?xml-stylesheet ty
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: pe=\"text/xsl\" href=\"ccr.xsl\"?>\n\n<ContinuityOfCareRecord xm
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: lns=\"urn:astm-org:CCR\">\n <CCRDocumentObjectID>871bd605-e8f
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: 8-4b80-9918-4b03f781129e</CCRDocumentObjectID>\n <Language>\n
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Text>English</Text>\n </Language>\n <Version>V1.0
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </Version>\n <DateTime>\n <ExactDateTime>2010-06-18T08
INFO 2010-06-18 01:16:26,104 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: :16:25-06:00</ExactDateTime>\n </DateTime>\n <Patient>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <ActorID>ACTORPATIENT_3</ActorID>\n </Patient>\n <Fr
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: om>\n <ActorLink>\n <ActorID>ACTORORGANIZATION
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: _52</ActorID>\n </ActorLink>\n <ActorLink>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <ActorID>ACTORSYSTEM_1</ActorID>\n </ActorLink>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </From>\n <To>\n <ActorLink>\n <ActorID>A
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: CTORPATIENT_3</ActorID>\n <ActorRole>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Text>Patient</Text>\n </ActorRole>\n </Acto
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: rLink>\n </To>\n <Purpose>\n <Description>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Text>CEND PHR</Text>\n </Description>\n </Purpos
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: e>\n <Actors>\n <Actor>\n <ActorObjectID>AC
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: TORORGANIZATION_52</ActorObjectID>\n <Organization>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Name>SOFTWARE SERVICE</Name>\n </Org
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: anization>\n <Source>\n <Actor>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <ActorID>ACTORSYSTEM_1</ActorID>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </Actor>\n </Source>\n </Actor>\n <Act
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: or>\n <ActorObjectID>ACTORPATIENT_3</ActorObjectID>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Person>\n <Name>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <CurrentName>\n <Given>CLINICAL</Given>
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: \n <Middle>F</Middle>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Family>PATIENT</Family>\n </CurrentNam
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: e>\n </Name>\n <DateOfBirth>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <ExactDateTime>1955-04-27</ExactDateTime>\n
INFO 2010-06-18 01:16:26,105 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </DateOfBirth>\n <Gender>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Text>FEMALE</Text>\n <Code>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Value>FEMALE</Value>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <CodingSystem>2.16.840.1.113883.5.1</CodingSystem>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </Code>\n </Gender>\n </Perso
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: n>\n <IDs>\n <Type>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Text>MRN</Text>\n </Type>\n <I
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: D>TST900000101</ID>\n <Source>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Actor>\n <ActorID>ACTORPATIENT_3</Act
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: orID>\n </Actor>\n </Source>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: </IDs>\n <Address>\n <Type
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: >\n <Text>Home</Text>\n </Type
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: >\n </Address>\n <Source>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Actor>\n <ActorID>ACTORPATIENT_3</ActorID>\
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: n </Actor>\n </Source>\n </Acto
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: r>\n <Actor>\n <ActorObjectID>ACTORSYSTEM_1</A
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: ctorObjectID>\n <InformationSystem>\n
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: <Name>WorldVistA EHR/VOE</Name>\n <Version>1.0</V
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: ersion>\n </InformationSystem>\n <Source>\
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: n <Actor>\n <ActorID>ACTORSYST
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: EM_1</ActorID>\n </Actor>\n </Source>\
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --: n </Actor>\n </Actors>\n</ContinuityOfCareRecord>\n"
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: --- payload end ---
INFO 2010-06-18 01:16:26,106 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Endpoint: ClinicalInfo|http|connector.http.0
INFO 2010-06-18 01:16:26,107 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: MULE_ENCODING: UTF-8
INFO 2010-06-18 01:16:26,107 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: http.status: 200
INFO 2010-06-18 01:16:26,107 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Property: Content-Type: application/json
INFO 2010-06-18 01:16:26,107 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: Reply to: null
INFO 2010-06-18 01:16:26,107 [connector.http.0.receiver.9] net.cime.esb.PayloadInspector: ***** End RESPONSE inspector *****
Legal Notices:
|