ABN : Web Services and ABN Application

 

Architecture Document

Version 1.0

Document Number: ABN_ARCH_06242008

 


Revision History

 

Date

Version

Description

Role

Name

6/24/2008

1.0

This document Lists development tasks to be completed to reach Production phase

Architect

Kankan Roy

 


Contents

Purpose.................................................................................................................................................................. 4

Definitions........................................................................................................................................................... 4

Description......................................................................................................................................................... 4

Deployment........................................................................................................................................................ 4

New Requirements......................................................................................................................................... 4

Scope/Limitations/Assumptions............................................................................................................ 4

Risks.......................................................................................................................................................................... 4

Current Processes and Deployment View.................................................................................... 6

Proposed Processes and Deployment View................................................................................. 7

Description of Program Changes..................................................................................................... 8

ABN Rule............................................................................................................................................................. 8

Report.................................................................................................................................................................. 8

Price Table Load............................................................................................................................................ 9

Source Authentication............................................................................................................................. 9

Deployment Views—Overview............................................................................................................. 11

Architectural Goals and Constraints........................................................................................ 13

Security............................................................................................................................................................... 13

Performance, Testing, Monitoring and Estimates.............................................................. 13

APPENDIX A: WEB SERVICE........................................................................................................................... 14

Data Types....................................................................................................................................................... 14

APPENDIX B: WSDL........................................................................................................................................... 18

References....................................................................................................................................................... 25

Architecture Issues................................................................................................................................... 26


 

Purpose

This document describes Design Goals for ABN Web Services and ABN On Demand. The current implementation of ABN shall be changed due to new Business Requirements. ABN Web Services shall be able to serve ABN Report to new users other than LabCorp.

Definitions

ABN                 Advance Beneficiary Notice of Non-coverage

CMS                Center for Medicare Services

CPT                 Current Procedure Terminology

MSN                Medicare Summary Notice

 

Description

ABN On Demand Application has two parts – client user interface that communicates with web services to generate a report that Medicare beneficiary need execute. The report indicates the tests needed to be done and related cost or ‘No ABN required’.

 

Deployment

Currently Web Services are deployed in WSAS 5.1. Client tool is deployed in WSAS 5.1. The client tool has been ported to LabCorp portal as ABN Portlet in WSAS 6.0. Data Tables are in Sybase. Batch programs written in Java creates Tables load Data for Sybase.

 

New Requirements

·        ABN Web Services shall be called directly by user applications. The ABN Report shall have User Information (Name Address Logo) and Application Version Number.

·        Web Services should be able to generate older version of ABN Report if required by ABN on Demand Application (single page)

·        Medicare number not to appear in the ABN Report, instead some Patient ID may be auto-generated if not available

·        Report Generated shall have break down of CPT Code and their Cost

·        Report Generated may be multiple pages

·        Web Services shall be deployed in WSAS 6.1

·        Input file for Mednec Test Price shall be changed effecting the Data Load for Price Tables

·        Data Store may be changed to DB2

Scope/Limitations/Assumptions

It is expected that in future, the structure and contents of ABN report may change. It is desired that as much as possible the Structure and Contents be externalized. It should be possible to select Reports.

Risks

Creation of ABN report is currently achieved with Open source tool iText that produces pdf File. PDF generated is returned by createABN and createDetailedABN web services.

 Options:

·        If the relevant Java code for incorporation of the report change with iText API is not complex, we should do the change with iText. However Page set up details that is part of the REQUIREMENT should be externalized so that in future we do not make changes in the program. Page set up should have following specifications: Page Size, Border details, ‘Signature’ page indicator, No. of rows of Tests in Signature page, Blocks of texts and their placement details.

·        Create a new template form according to the business requirement in PDF, use iText API to implement the change during run time.

·        Limit the ABN Report limited to one page only (by changing Font or Page or Content).

 


Current Processes and Deployment View

 

 

 

 


Proposed Processes and Deployment View

 

 


Description of Program Changes

ABN Rule

In each Rules Region (i.e. in each State) the are 5 Tables loaded by Batch Loading processes:

 

1.      Given an Account number (ACCNT#), 3 web calls are made to establish the Rules Region [labserver-dev.labcorp.com/cgi-bin/comconnection.cgi?systemname=TIP1&transoption=0&timeout=60&trans=ACCT&transdata=ACCNT# returns Location Code (LCODE); labserver-dev.labcorp.com/cgi-bin/comconnection.cgi?systemname=TIP1&transoption=0&timeout=60&trans=LOCA&transdata=LCODE returns Lab Code (LABCD); labserver-dev.labcorp.com/cgi-bin/comconnection.cgi?systemname=TIP1&transoption=0&timeout=60&trans=LAB&transdata=LABCD returns Rules Region (State/Region)]  

2.      Given a Test Number (TEST#), the Test Status (active/inactive) and Test Description is received using a web call [labserver-dev.labcorp.com/cgi-bin/comconnection.cgi?systemname=TIP1&transoption=0&timeout=60&trans=TEST&transdata=TEST#]

3.      HCPCS_CPT_DIAG_CD: this table is loaded with active “AMA” CPT Code with associated Diagnostic Code (ICD9). This file contains all feasible (CPT Code, Diagnostic Code). Given ICD9 code and CPT Code, this file is searched for an occurrence. It is same for all regions and a CPT code may have multiple Diagnostic Code.

4.      XLAT_DIAG: This table gives the all the (CPT code, Diagnostic Code) covered by Medicare.

5.      XLAT_CPT: This Table contains CPT Code, its description and a flag. If the Flag is ON, Medicare covers multiple CPT Codes else it does not. If it is required that the Person needs multiple CPTs, Medicare shall only cover only one.

6.      MEDNEC_TEST: This table has (Test Number, Price, Description).

7.      MEDNEC_CPT: This file currently has (Test Number, CPT Code, CPT Price). There are 0 or more rows for a Test Number. In future, there shall be another Column called Multiplier. This would eliminate the possibility of having more than 1 row for a Test Number. Multiplier shall give number of occurrence of same CPT Code for a given Test Number.

 

ICD9 code look up is independent of any Region or State. DIAG_CODE Master Table is searched. DIAD_CODE is universal for Medical Community. Relevant columns for this table are (Diagnostic Code, Description). Given partial value for either Search provides a list of possible (Code, Description) selectable pairs.

 

Estimated Cost = Sum (Price of each Tests) + Sum (Price of each CPT x Multiplier) – Sum (CPT costs* covered by Medicare)

 

* - Medicare may cover Multiple CPT if Flag in XLAT_CPT table is Set

Report

We shall attempt to fix a structure to ABN Report. Presumably the structure shall be general enough not to cause reprogramming in future.

Here we shall try to identify the Report components:

 

PAGE_SPEC

            Size

Border (Top,Left,Right,Bottom)

Margin (Top,Left,Right,Bottom)

            Header

               No of LINE s

                        LINE

                        Start Position (X,Y)                  

                                    Line #

                                    Border

                                    Background

                                    Object type (image, text, Table etc.)

                                    Details

(Line Literal - Text Literal with embedded font, image link and variables, such as $page, $Date, $Random, $Serial $Name, $Account, $Medicare, $Zone etc.)

                                   

            Footer – Same as Header

FIRST_PAGE

            No. Of Objects

            OBJECT

                        Object Type – Table, Line etc.

                        Object #

                        Start Position

Line or Table  (# of Columns, Maximum # of Rows, Table Type –Static/Computed, Header Literal - (Position, Text Literal giving Column Header) repeated as many times as # of Columns)

[Static Table shall have LINE s describing the Table; For Computed Tables Lines will be constructed Dynamically]

            OVERFLOW LINE

SUBSEQUENT_PAGE same as FIRST_PAGE

LAST_PAGE same as FIRST _PAGE

 

Alternatively, Pre-created Report with desired specification for First, Middle and Last Pages may be externally maintained in file and used at runtime for specification to Report Generator. Sets of this specification can be made available and selectable by parametric call to Report Generator with Source and Version Number. Report generator at run time will be modifying the Template and generate ABN Report with proper branding.

 

Finally, Report Generator should attempt to be downward compatible. At run time it should be able to generate report of desired version. Report generated can be encrypted with two parameters Owner, and (user) Source. User shall be able to view and print it but not modify the same.

 

 

 

 

 

Price Table Load

The batch process that consumes the structure of input file to create Load Files for MEDNEC_TEST and MEDNEC_CPT for Region or State has changed. The relevant program need be modified as per the change. Further Table Schema need be changed.

At present, Sybase Load file are created with Batch processes in weekly basis for five Tables – HCPCS_CPT_DIAG_CD, XLAT_CPT, XLAT_DIAG, MEDNEC_CPT, and MEDNEC_TEST.  DIAG_CODE Table is a look up table for ICD9 Codes independent of Region/State. This load data is FTPed into Sybase Region for Batch load into ABN Tables.

DB2 Tables shall be created. Further we shall require Batch Load job for populating DB2 ABN related Tables.

Source Authentication

ABN request Form shall have two new Fields – SOURCE and VERSION. Perhaps they are to be used for Report Generation. We may have different Specification for Report for different VERSION. Further SOURCE shall provide Header Customization for the Report. Hence, createABN.buildABN shall have these two new parameters. It desirable to have Authorization Code too is passed to Web Service so that the user can be authenticated.

 

 

 


Deployment Views—Overview

 

Platform

Service/

Adapter

Description of Service/Adapter

 

New Software Product License/Install?

WSAS 6.1

ABN Web Service

ABN Web Services for Report Generation

 

In House

WSAS 6.0

 

ABN Portlet

LabCorp ABN Application consuming ABN Web Services

 

In House

DB2

ABN Tables

HCPCS_CPT_DIAG_CD, DIAG_CODE, MEDNEC_TEST, MEDNEC_CPT, XLAT_DIAG, XLAT_CPT

In House


Architectural Goals and Constraints

The goal for this project is to minimize future development due to new business requirements for ABN Report Format change desired by one or more users of ABN Web Services. Remaining within the scope of ABN Report, the structure of the report needs to be generalized and externalized along with contents. Several versions of the Report shall be available online and selectable by Web Services. Web Services have two additional parameters -–Source (select User) and Version No. (Select User Application and Report Version).

 

Security

ABN On Demand is exposing itself to outside world and further generating branded reports with Logos. It is highly desirable that authentication at least be implemented at Web Service generating reports. User may be authenticated at WSAS level or Web Service level. In either case WSDL interface definition need change to allow for User ID and Password parameters for authentication.  Even with Data Power Adapter this shall be required. User ID and Password can be configured into WSAS (web.xml, application.xml or LDAP registry).

 

 

Performance, Testing, Monitoring and Estimates

·        The volume of ABN requests is about 8000/week for LabCorp. This may increase due to new acquisition and new users. It can be 20000/week in near future (Dianon, DSI, USLABS etc.).

·         Reporting is the most time consuming critical component besides Web Service Communication using SOAP via HTTPS.

·        Extensive load testing is required to find out turn around time for Web Service calls. This shall give us estimates of capacity to service WSAS implementation of ABN Web Services. This shall help us to plan for future.

·        In addition we must implement statistics gathering at web services to a table called ABN Statistics with columns: (Date, source, count, maxtime, mintime, total time, #required, #not_required, average transaction time). This may be monitored for performance of the system over time. This Statistics even can be logged in Log File.

·        It is further advised to have automated monitoring site (implemented with Script VB or Unix) that does issue one ABN Web Service Call every hour and Logs the turn around time.

·        Estimates: Transport and Communication – 1 sec, Report Generation – 1 sec, Rest – 1 sec for 1 GHz machine. It shall be possible to process 500 Calls / hour at busy hours.

 

 

 


APPENDIX A: WEB SERVICE

CreateAbn (By Account)

 

AbnServiceDataResponse createAbn(AbnServiceByAcctData)

 

This method is used to determine whether an ABN is required based on a combination of account number, test codes and diagnosis codes.  It accepts an AbnServiceByAcctData object and returns an AbnServiceDataResponse object.  If an ABN is required, the response object will contain the content of an ABN pdf file.

CreateNotificationAbn (By Account)

 

AbnNotificationServiceDataResponse createNotificationAbn(AbnServiceByAcctData)

 

This method is used to determine whether an ABN is required based on a combination of account number, test codes and diagnosis codes.  It accepts an AbnServiceByAcctData object and returns an AbnNotificationServiceDataResponse object.  This method is for notification purposes.  If an ABN is required, the response object will indicate that to the client but it does not contain the content of the ABN pdf file.

.

CreateDetailedAbn (By Account)

 

AbnWithDetailsResponse createDetailedAbn(AbnServiceByAcctData)

 

This method is used to determine whether an ABN is required based on a combination of account number, test codes and diagnosis codes.  It accepts an AbnServiceByAcctData object and returns an AbnWithDetailsResponse object.  If an ABN is required, the response object will contain the content of an ABN pdf file.  This response object also contains details about which tests/cpt codes require an ABN.

 

CreateDetailedNotificationAbn (By Account)

 

AbnNotificationDetailsResponse createDetailedNotificationAbn(AbnServiceByAcctData)

 

This method is used to determine whether an ABN is required based on a combination of account number, test codes and diagnosis codes.  It accepts an AbnServiceByAcctData object and returns an AbnNotificationDetailsResponse object.  If an ABN is required, the response object will indicate that to the client but it does not contain the content of the ABN pdf file.  This response object also contains details about which tests/cpt codes require an ABN.

 

Data Types

AbnServiceByAcctData

 

This is the request object for ‘By Account’ service methods.

 

Field Name

Required

Type

Description

Notes

accountNumber

Y

String

Account Number

Must be 8 digits and must be a valid account number.

testCodes

Y

String[]

List of test codes

Test codes must be valid.  The list of test codes cannot exceed 40.

diagCodes

Y

String[]

List od diagnosis codes

The list of diagnosis codes cannot exceed 8.

patientName

Y

String

Patient Name

If an ABN is required, the patient’s name is printed on the ABN.

sourceName

Y

String

Source Application Name

Name of the vendor application that identifies the source of the request.

sourceVersion

Y

String

Source Application Version Number

Version number of the vendor application for the source of the request.

identificationNumber

N

String

Identification Number

May contain an internal filing number created by the notifier, such as a medical record number.

 

*Note: Medicare numbers (HICNs) or Social Security numbers must not appear on the notice.

 

AbnServiceDataResponse

 

Field Name

Required

Type

Description

Notes

contents

N

Byte[]

The content of the ABN pdf file

 

contentType

N

String

The content type of the file.

Currently this is always application/pdf

outputType

Y

String

Indicates Success or Failure

 

estCost

N

String

Formatted estimated amount not covered my Medicare

Example:  $373.50

messages

Y

Array of Messages

Array of Message Objects

 

 

 

AbnNotificationServiceDataResponse

 

Field Name

Required

Type

Description

Notes

outputType

Y

String

Indicates Success or Failure

 

messages

Y

Array of Messages

Array of Message Objects

 

AbnWithDetailsResponse

 

Field Name

Required

Type

Description

Notes

contents

N

Byte[]

The content of the ABN pdf file

 

contentType

N

String

The content type of the file.

Currently this is always application/pdf

outputType

Y

String

Indicates Success or Failure

 

estCost

Y

int

Estimated cost, in cents, of tests/cpts not covered by Medicare

Example:  37350 indicates $373.50

messages

Y

Array of Messages

Array of Message Objects

 

abnTests

Y

Array of AbnServiceTests

Array of AbnServiceTest objects

 

nonSpecificDiagnosisCodes

N

Array of Strings

List of non specific diagnosis codes

 

invalidDiagnosisCodes

N

Array of Strings

List of invalid diagnosis codes

 

 

AbnNotificationDetailsResponse

 

Field Name

Required

Type

Description

Notes

outputType

Y

String

Indicates Success or Failure

 

estCost

Y

int

Estimated cost, in cents, of tests/cpts not covered by Medicare

Example:  37350 indicates $373.50

messages

Y

Array of Messages

Array of Message Objects

 

abnTests

Y

Array of AbnServiceTests

Array of AbnServiceTest objects

 

nonSpecificDiagnosisCodes

N

Array of Strings

List of non specific diagnosis codes

 

invalidDiagnosisCodes

N

Array of Strings

List of invalid diagnosis codes

 

 

Message

 

Field Name

Required

Type

Description

Notes

code

Y

String

Message code

 

text

Y

String

Message text

 

type

Y

String

Message type

ERROR, WARNING or INFO

AbnServiceTest

 

Field Name

Required

Type

Description

Notes

testCode

Y

String

Test code

 

testDesc

Y

String

Test description

 

testPrice

Y

int

Test price

Price expressed in cents.  For example, 4350 represents $43.50.

ruoIndicator

Y

boolean

Indicator for new technology tests

 

ruoPrice

N

int

Ruo price, if the test is flagged ruo

Price expressed in cents.  For example, 4350 represents $43.50.

ruoDesc

N

String

Ruo description, if the test is flagged ruo

 

ruoPriceNotFound

Y

boolean

Price not found indicator if the test is flagged ruo

 

ruoDescNotFound

Y

boolean

Description not found indictator if the test is flagged ruo

 

freqCpts

N

Array of AbnServiceCpts

Array of AbnServiceCpt objects representing frequency cpts

 

medNecCpts

N

Array of AbnServiceCpts

Array of AbnServiceCpt objects representing medical neccesity cpts

 

 

AbnServiceCpt

 

Field Name

Required

Type

Description

Notes

cptCode

Y

String

CPT Code

 

cptDesc

N

String

CPT Description

 

cptMultiplier

Y

int

CPT Multiplier

The multiplier for the number of instances of the CPT for the test.

cptPrice

N

int

CPT Sum Price

The CPT sum price is the sum total of the CPT unit price times the CPT multiplier.

 

Price expressed in cents.  For example, 4350 represents $43.50.

priceNotFound

Y

boolean

Price not found indicator

 

descNotFound

Y

boolean

Description not found indicator

 


APPENDIX B: WSDL

 

<?xml version="1.0" encoding="UTF-8"?>

<wsdl:definitions targetNamespace="http://interfaces.abn.labcorp.com" xmlns:impl="http://interfaces.abn.labcorp.com" xmlns:intf="http://interfaces.abn.labcorp.com" xmlns:tns2="http://databeans.abn.labcorp.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

 <wsdl:types>

  <schema elementFormDefault="qualified" targetNamespace="http://databeans.abn.labcorp.com" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <complexType name="AbnServiceByAcctData">

    <sequence>

     <element name="identificationNumber" nillable="true" type="xsd:string"/>

     <element name="sourceName" nillable="true" type="xsd:string"/>

     <element name="sourceVersion" nillable="true" type="xsd:string"/>

     <element name="accountNumber" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="diagCodes" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="testCodes" nillable="true" type="xsd:string"/>

     <element name="patientName" nillable="true" type="xsd:string"/>

    </sequence>

   </complexType>

   <complexType name="AbnServiceDataResponse">

    <sequence>

     <element name="contentType" nillable="true" type="xsd:string"/>

     <element name="outputType" nillable="true" type="xsd:string"/>

     <element name="contents" type="xsd:base64Binary"/>

     <element name="estCost" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="messages" nillable="true" type="tns2:Message"/>

    </sequence>

   </complexType>

   <complexType name="Message">

    <sequence>

     <element name="code" nillable="true" type="xsd:string"/>

     <element name="text" nillable="true" type="xsd:string"/>

     <element name="type" nillable="true" type="xsd:string"/>

    </sequence>

   </complexType>

   <complexType name="AbnWithDetailsResponse">

    <sequence>

     <element name="outputType" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="messages" nillable="true" type="tns2:Message"/>

     <element maxOccurs="unbounded" name="abnTests" nillable="true" type="tns2:AbnServiceTest"/>

     <element maxOccurs="unbounded" name="nonSpecificDiagnosisCodes" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="invalidDiagnosisCodes" nillable="true" type="xsd:string"/>

     <element name="contents" type="xsd:base64Binary"/>

     <element name="contentType" nillable="true" type="xsd:string"/>

     <element name="estCost" type="xsd:int"/>

    </sequence>

   </complexType>

   <complexType name="AbnServiceTest">

    <sequence>

     <element maxOccurs="unbounded" name="freqCpts" nillable="true" type="tns2:AbnServiceCpt"/>

     <element maxOccurs="unbounded" name="medNecCpts" nillable="true" type="tns2:AbnServiceCpt"/>

     <element name="testCode" nillable="true" type="xsd:string"/>

     <element name="ruoDesc" nillable="true" type="xsd:string"/>

     <element name="ruoDescNotFound" type="xsd:boolean"/>

     <element name="ruoIndicator" type="xsd:boolean"/>

     <element name="ruoPrice" type="xsd:int"/>

     <element name="ruoPriceNotFound" type="xsd:boolean"/>

     <element name="testDesc" nillable="true" type="xsd:string"/>

     <element name="testPrice" type="xsd:int"/>

    </sequence>

   </complexType>

   <complexType name="AbnServiceCpt">

    <sequence>

     <element name="cptCode" nillable="true" type="xsd:string"/>

     <element name="cptMultiplier" type="xsd:int"/>

     <element name="cptDesc" nillable="true" type="xsd:string"/>

     <element name="cptPrice" type="xsd:int"/>

     <element name="descNotFound" type="xsd:boolean"/>

     <element name="priceNotFound" type="xsd:boolean"/>

    </sequence>

   </complexType>

   <complexType name="AbnNotificationServiceDataResponse">

    <sequence>

     <element name="outputType" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="messages" nillable="true" type="tns2:Message"/>

    </sequence>

   </complexType>

   <complexType name="AbnNotificationDetailsResponse">

    <sequence>

     <element name="outputType" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="messages" nillable="true" type="tns2:Message"/>

     <element maxOccurs="unbounded" name="abnTests" nillable="true" type="tns2:AbnServiceTest"/>

     <element maxOccurs="unbounded" name="nonSpecificDiagnosisCodes" nillable="true" type="xsd:string"/>

     <element maxOccurs="unbounded" name="invalidDiagnosisCodes" nillable="true" type="xsd:string"/>

     <element name="estCost" type="xsd:int"/>

    </sequence>

   </complexType>

  </schema>

  <schema elementFormDefault="qualified" targetNamespace="http://interfaces.abn.labcorp.com" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns2="http://databeans.abn.labcorp.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <import namespace="http://databeans.abn.labcorp.com"/>

   <element name="createAbn">

    <complexType>

     <sequence>

      <element name="asd" nillable="true" type="tns2:AbnServiceByAcctData"/>

     </sequence>

    </complexType>

   </element>

   <element name="createAbnResponse">

    <complexType>

     <sequence>

      <element name="createAbnReturn" nillable="true" type="tns2:AbnServiceDataResponse"/>

     </sequence>

    </complexType>

   </element>

   <element name="createDetailedAbn">

    <complexType>

     <sequence>

      <element name="asd" nillable="true" type="tns2:AbnServiceByAcctData"/>

     </sequence>

    </complexType>

   </element>

   <element name="createDetailedAbnResponse">

    <complexType>

     <sequence>

      <element name="createDetailedAbnReturn" nillable="true" type="tns2:AbnWithDetailsResponse"/>

     </sequence>

    </complexType>

   </element>

   <element name="createNotificationAbn">

    <complexType>

     <sequence>

      <element name="asd" nillable="true" type="tns2:AbnServiceByAcctData"/>

     </sequence>

    </complexType>

   </element>

   <element name="createNotificationAbnResponse">

    <complexType>

     <sequence>

      <element name="createNotificationAbnReturn" nillable="true" type="tns2:AbnNotificationServiceDataResponse"/>

     </sequence>

    </complexType>

   </element>

   <element name="createDetailedNotificationAbn">

    <complexType>

     <sequence>

      <element name="asd" nillable="true" type="tns2:AbnServiceByAcctData"/>

     </sequence>

    </complexType>

   </element>

   <element name="createDetailedNotificationAbnResponse">

    <complexType>

     <sequence>

      <element name="createDetailedNotificationAbnReturn" nillable="true" type="tns2:AbnNotificationDetailsResponse"/>

     </sequence>

    </complexType>

   </element>

  </schema>

 </wsdl:types>

 

   <wsdl:message name="createDetailedNotificationAbnRequest">

 

      <wsdl:part element="intf:createDetailedNotificationAbn" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createNotificationAbnRequest">

 

      <wsdl:part element="intf:createNotificationAbn" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createDetailedAbnRequest">

 

      <wsdl:part element="intf:createDetailedAbn" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createAbnRequest">

 

      <wsdl:part element="intf:createAbn" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createDetailedAbnResponse">

 

      <wsdl:part element="intf:createDetailedAbnResponse" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createAbnResponse">

 

      <wsdl:part element="intf:createAbnResponse" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createDetailedNotificationAbnResponse">

 

      <wsdl:part element="intf:createDetailedNotificationAbnResponse" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:message name="createNotificationAbnResponse">

 

      <wsdl:part element="intf:createNotificationAbnResponse" name="parameters"/>

 

   </wsdl:message>

 

   <wsdl:portType name="AbnServicesImpl">

 

      <wsdl:operation name="createAbn">

 

         <wsdl:input message="intf:createAbnRequest" name="createAbnRequest"/>

 

         <wsdl:output message="intf:createAbnResponse" name="createAbnResponse"/>

 

      </wsdl:operation>

 

      <wsdl:operation name="createDetailedAbn">

 

         <wsdl:input message="intf:createDetailedAbnRequest" name="createDetailedAbnRequest"/>

 

         <wsdl:output message="intf:createDetailedAbnResponse" name="createDetailedAbnResponse"/>

 

      </wsdl:operation>

 

      <wsdl:operation name="createNotificationAbn">

 

         <wsdl:input message="intf:createNotificationAbnRequest" name="createNotificationAbnRequest"/>

 

         <wsdl:output message="intf:createNotificationAbnResponse" name="createNotificationAbnResponse"/>

 

      </wsdl:operation>

 

      <wsdl:operation name="createDetailedNotificationAbn">

 

         <wsdl:input message="intf:createDetailedNotificationAbnRequest" name="createDetailedNotificationAbnRequest"/>

 

         <wsdl:output message="intf:createDetailedNotificationAbnResponse" name="createDetailedNotificationAbnResponse"/>

 

      </wsdl:operation>

 

   </wsdl:portType>

 

   <wsdl:binding name="AbnServicesImplSoapBinding" type="intf:AbnServicesImpl">

 

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

 

      <wsdl:operation name="createAbn">

 

         <wsdlsoap:operation soapAction="createAbn"/>

 

         <wsdl:input name="createAbnRequest">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:input>

 

         <wsdl:output name="createAbnResponse">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:output>

 

      </wsdl:operation>

 

      <wsdl:operation name="createDetailedAbn">

 

         <wsdlsoap:operation soapAction="createDetailedAbn"/>

 

         <wsdl:input name="createDetailedAbnRequest">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:input>

 

         <wsdl:output name="createDetailedAbnResponse">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:output>

 

      </wsdl:operation>

 

      <wsdl:operation name="createNotificationAbn">

 

         <wsdlsoap:operation soapAction="createNotificationAbn"/>

 

         <wsdl:input name="createNotificationAbnRequest">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:input>

 

         <wsdl:output name="createNotificationAbnResponse">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:output>

 

      </wsdl:operation>

 

      <wsdl:operation name="createDetailedNotificationAbn">

 

         <wsdlsoap:operation soapAction="createDetailedNotificationAbn"/>

 

         <wsdl:input name="createDetailedNotificationAbnRequest">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:input>

 

         <wsdl:output name="createDetailedNotificationAbnResponse">

 

            <wsdlsoap:body use="literal"/>

 

         </wsdl:output>

 

      </wsdl:operation>

 

   </wsdl:binding>

 

   <wsdl:service name="AbnServicesImplService">

 

      <wsdl:port binding="intf:AbnServicesImplSoapBinding" name="AbnServicesImpl">

 

         <wsdlsoap:address location="http://localhost:9080/Abn/services/AbnServicesImpl"/>

 

      </wsdl:port>

 

   </wsdl:service>

 

</wsdl:definitions>


References

1.      EasyPDF (sdk), corda7.exe and html2pdf are solutions to create pdf from html file.

2.      iText SDK to dynamically create pdf document using Java

3.      iText in Action by Bruno Lowgie

4.      PDF Reference version 1.7 Adobe

5.      IDAutomation.com for Barcode character set


 

Architecture Issues

This section is used to identify open issues and to record the discussion and resolution of issues.

 

No.

Issue

Comments

Status

 

1

Retain old web service and support the same for backward compatibility

 

 

2

Softcopy of CPT Cost break down may not be returned

May be Misused by competitor

Open

3

Mednec Price File is not Finalized

 

 

4

Source Authentication at Web Service

Web Service may be misused by unauthorized user

Open