The Internal Exchange Info file represents all internal endpoints specific to the adopter's instance and holds the service names and respective URL's for the given services. This file shares many common elements from the Exchange Info file. An example can be found below.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <exchangeInfo xmlns="urn:gov:hhs:fha:nhinc:exchange" xmlns:ns2="urn:gov:hhs:fha:nhinc:exchange:directory"> <defaultExchange>adapter</defaultExchange> <exchanges> <exchange type="local"> <name>adapter</name> <disabled>true</disabled> <lastUpdated></lastUpdated> <organizationList> <organization> <ns2:name>Gateway 1</ns2:name> <ns2:hcid>urn:oid:1.1</ns2:hcid> <ns2:endpointList> <ns2:endpoint> <ns2:name>ServiceName1</ns2:name> <ns2:endpointConfigurationList> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTGateway/GatewayService/ServiceName1Version2</ns2:url> <ns2:version>2.0</ns2:version> </ns2:endpointConfiguration> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTGateway/GatewayService/ServiceName1Version1</ns2:url> <ns2:version>1.0</ns2:version> </ns2:endpointConfiguration> </ns2:endpointConfigurationList> </ns2:endpoint> <ns2:endpoint> <ns2:name>Service1AdapterName</ns2:name> <ns2:endpointConfigurationList> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTAdapter/Service1Adapter</ns2:url> <ns2:version>LEVEL_a0</ns2:version> </ns2:endpointConfiguration> </ns2:endpointConfigurationList> </ns2:endpoint> </ns2:endpointList> <ns2:targetRegion>US-NY</ns2:targetRegion> <ns2:targetRegion>US-VA</ns2:targetRegion> </organization> </organizationList> </exchange> </exchanges> </exchangeInfo>
In a given internalExchangeInfo.xml there should only be a single Exchange element, which should also be set as the default. As this file only serves as your internal adapter endpoints, there is no support / functionality centered around having multiple internal exchanges.
Exchange Info
<exchangeInfo xmlns="urn:gov:hhs:fha:nhinc:exchange" xmlns:ns2="urn:gov:hhs:fha:nhinc:exchange:directory"> <defaultExchange>adapter</defaultExchange> <exchanges> ... </exchanges> </exchangeInfo>
The above snippet can be broken down as follows:
Element | Description |
---|---|
<defaultExchange>adapter</defaultExchange> | The default Exchange to use for the file. This will always be the first (and only, in the case of Internal Exchange Info files) exchange specified in the Exchanges element |
<exchanges> ... </exchanges> | This will hold your exchange for internal adapter endpoints. There should only be a single <exchange> element contained here at all times. |
Exchanges
... <exchanges> <exchange type="local"> <name>adapter</name> <disabled>true</disabled> <lastUpdated></lastUpdated> <organizationList> ... </organizationList> </exchange> </exchanges> ...
The breakdown of the schema is as follows:
Element | Description |
---|---|
<exchange type="local"> | The exchange root element specifying the type of exchange. Will always be of "local" type, as we do not use UDDI or FHIR lookups for internal endpoints. |
<name>adapter</name> | The name of the exchange. This should exactly match the <defaultExchange> element. In the case of the example: "adapter" |
<disabled>true</disabled> | A required schema element for the Exchange Type. This will always be "true" as internal exchanges do not do refresh on a FHIR or UDDI server. |
<lastUpdated></lastUpdated> | A required schema element for the Exchange Type. This should be left blank, as it is not used for any purpose. |
<organizationList> | The list of organizations specified by this exchange. Internal Exchange info files will always have 1 organization with the given HCID. |
Organizations
... <organization> <ns2:name>Gateway 1</ns2:name> <ns2:hcid>urn:oid:1.1</ns2:hcid> <ns2:endpointList> <ns2:endpoint> <ns2:name>ServiceName1</ns2:name> <ns2:endpointConfigurationList> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTGateway/GatewayService/ServiceName1Version2</ns2:url> <ns2:version>2.0</ns2:version> </ns2:endpointConfiguration> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTGateway/GatewayService/ServiceName1Version1</ns2:url> <ns2:version>1.0</ns2:version> </ns2:endpointConfiguration> </ns2:endpointConfigurationList> </ns2:endpoint> <ns2:endpoint> <ns2:name>Service1AdapterName</ns2:name> <ns2:endpointConfigurationList> <ns2:endpointConfiguration> <ns2:url>https://localhost:8181/CONNECTAdapter/Service1Adapter</ns2:url> <ns2:version>LEVEL_a0</ns2:version> </ns2:endpointConfiguration> </ns2:endpointConfigurationList> </ns2:endpoint> </ns2:endpointList> <ns2:targetRegion>US-NY</ns2:targetRegion> <ns2:targetRegion>US-VA</ns2:targetRegion> </organization> ...
Element | Description |
---|---|
<ns2:name>Gateway 1</ns2:name> | The name of the organization. In the case of the example: "Gateway 1" |
<ns2:hcid>urn:oid:1.1</ns2:hcid> | The HCID of the given internal organization. This should match the same HCID in your adapter.properties file as well. |
<ns2:endpointList> | The list of services that this organization may have. |
<ns2:endpoint> | Root element of a given endpoint. Houses information on the given service. The service names must match the service name lookup of CONNECT in order to function as these are not arbitrarily named. For example, the Document Submission secured adapter is "adapterxdrsecured". The <endpointConfigurationList> element holds a list of endpoints for that service, as well as the endpoint URL and spec version. CONNECT uses numerical numbers for all proxy layers and "LEVEL_a0" for adapter layers. |