Washington State Justice Information Network

brickborderSecurity

Nov 3, 2013 (3 years and 7 months ago)

158 views


Created by: Steven Scott


11/3/2013

Washington State Justice Information Network


JINDEX Client CHQ Programmers Guide


Possible Criminal History (PCH) and Case and Criminal History (CACH) Application

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
2

of
40


11/3/2013




Table of Contents


Table of C
ontents

................................
................................
................................
...

2

Document Revision History

................................
................................
......................

2

Introduction

................................
................................
................................
..........

3

2.0

Abbrevi
ations used in this document
................................
................................
.

3

3.0

Overview

................................
................................
................................
.....

6

4.0

Criminal History Queries (CHQ) Requirements

................................
..................

12

5.0

Appendix A


PCH Request
................................
................................
............

17

6.0

Appendix B
-

CACH Request

................................
................................
..........

27

7.0

Appendix C


JINDEX Inform
ation Exchange Package Document

..........................

37

8.0

Appendix D


Overview of ACCESS switch web application
................................
..

38

9.0

Appendix E


JINDEX Support
................................
................................
........

39



Document Revision History



Version
Number

Date

Description

Created By

Change
Authorization
ID

New

4/23/2008

Document produced in
support of the JINDEX
Expansion Project.

Integration
Competency
Center













JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
3

of
40


11/3/2013



I
ntroduction


1.0

Purpose


The purpose of this document is to provide application programmers with information
needed to successfully develop applications capable of communicating with the Justice
Information Network Data Exchange (JINDEX) Criminal History Quer
y (CHQ) application.


This Programmer’
s Guide

describe
s

the functionality of the JINDEX Message Broker, the
CHQ application, query requirements, and the implementation directions for sending and
receiving case and criminal history information
via

web ser
vice
s that utilize national data
standards.



The intended audience for this document includes local government agency information
technology staff or contractors authorized by local government agencies to manage justice
information according to CJIS Secu
rity Guidelines.
Only those authorized individuals with
ACCESS Level I certification may work with this application.


2.0

Abbreviations

used in this document




AOC:
Administrative Office Of The Courts



CACH
: Case and Criminal History



CHQ
: Criminal History Quer
y



DIS
: Department of Information Services



GJXDM:
Global Justice XML Data Model



HTTP:
Hyper Text Transfer Protocol



JINDEX
: Justice Information Network Data Exchange



PCH & CACH:
Possible Criminal History & Case and Criminal History
Application.



PCH
:
Possible

Criminal History



SOAP:
Simple Object Access Protocol



SSL:
Secure Socket Layer



Web Service:

A software interface component that is described by a WSDL and
can be accessed via industry standard network protocols such as SOAP over
HTTP.




WS
-
Addressing:

A
sp
ecification of transport
-
neutral mechanisms that allow web
services to communicate addressing information.




WS
-
Coordination
:

Describes an extensible framework for providing protocols
that coordinate the actions of distributed applications




WSDL:

Web Servic
es Description Language



WSP:
Washington State Patrol

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
4

of
40


11/3/2013





WS
-
Security:
Web Services Security



XML:
Extensible Markup Language

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
5

of
40


11/3/2013



2.0

Assumptions

This document assumes knowledge of the following technologies:

1.

Web Services

2.

Messaging and message brokers

3.

SOAP

4.

WSDLs


More

information regarding the above technologies can be found at the following
location:
http://www.w3.org


2.1

Technology

1.

Client applications developed by JINDEX Participants can run on any platform.

2.

JINDEX exposes Web Service
s interface
s

to communicate with other
participants.

3.

JINDEX consumes Web Services exposed by other participants.


2.2

Developer Tools

1.

All JINDEX Web service components are written and deployed using Microsoft .NET
Framework v2.0 and Microsoft Enterprise Libra
ry for .NET Framework 2.0.

2.

Examples in this manual are written in C# using Microsoft .NET 2.0 platform.

3.

The WS
-
* standards implementation is performed using Microsoft WSE 3.0 on .NET 2.0
platform

2.3

Minimum
Development Environment
requirements

Operating Syste
m

Microsoft Windows Server 2003 R2, Standard Edition

Microsoft Windows Server 2003 R2, Standard x64 Edition

Web
Server

Microsoft Internet Information Server (IIS) 6.0

Note
:


Install

IIS first, before installing the .NET Framework library’s below.

.NET F
ramework

.
NET 1.1 & 2.0 Framework

And

.NET 1.1 & 2.0

SDK Framework
(if developing web services
code on the server)

SQL Server

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
6

of
40


11/3/2013




SQL Server 2000

SOAP


SOAP Version 1.2

NOTE: Runtime environment is not limited to the above. JINDEX
WebServices may be run on
any platform including Linux and UNIX. Web
Server configurations include Apache server and Tomcat.

2.4

Security Requirements

Individuals, including contract personnel, must comply with the CJIS Security Policy in order to
have access to the information provid
ed by JINDEX. For information regarding those policies,
please contact the JINDEX Program Management Office.


3.0

Overview


The JINDEX is a message broker at the Department of Information Services (DIS) that
facilitates interagency communication using web ser
vices, XML, GJXDM, SOAP, WS
-
Security, and SSL Certificates. The application that facilitates and manages the message
brokering service

for criminal history and court case information

is called the
Possible
Criminal History and Case and Criminal History (
P
CH & CACH
)

Application.


Users of the JINDEX are able to issue CHQ query requests to the PCH & CACH (“pitch and
catch”) application, which then splits the query request into separate query messages and
forwards them on to the JINDEX data providers (i.e. AO
C and WSP). Once the data
providers receive a query request, each data provider processes the request and returns

a
query response to the JINDEX. The JINDEX

aggregates
all data returned from WSP and
AOC

in to a single
response.

The JINDEX sends the respo
nse

to the data consumer

(See
diagram in 2.2)
.
The aggregated response may be parsed and incorporated with an existing
local government agency law enforcement application or Records Management System
(RMS) used by justice professionals. DIS will provide te
chnical assistance and tools to
facilitate this process, but incorporating the PCH/CACH service with an existing application
is the responsibility of local government agencies

3.1

C
riminal
H
istory
Q
ueries (CHQ)

Query Types

There are two types of CHQ queries av
ailable as web services:




Possible Criminal History (PCH) query



Case and Criminal History (CACH) query


Collectively, these two queries are referred to as PCH & CACH requests. Both queries
aggregate and return Criminal History data information from the Ad
ministrative Office of the
Courts (AOC), and the Washington State Patrol (WSP).


Criminal history data is returned from the Washington State Patrol’s (WSP) ACCESS
system and case disposition data is returned from the Administrative Office of the Courts
(
AOC). The PCH query returns a list of possible candidates matching the query criteria.
The CACH request returns detailed information regarding a specif
ic

subject.


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
7

of
40


11/3/2013



PCH & CACH queries are web services that are implemented using SOAP, WS
-
Addressing, WS
-
Sec
urity and WS
-
Coordination. The header of the SOAP message
contains the WS
-
Addressing, WS
-
Security and WS
-
Coordination XML data, and the body
of the SOAP message encompasses either a PCH or CACH query request, PCH or CACH
message acknowledgment, or a PCH &

CACH data response. The message data model
and content used within the SOAP body is GJXDML.


Client applications issuing PCH or CACH requests should be implemented as individual
web services, and client applications receiving PCH or CACH responses shou
ld also be
implemented as individual web services. Note the web service prototypes for PCH &
CACH requests, and responses are described in the PCH & CACH application WSDL’s.


3.2

JINDEX General System Architecture


Fig 1 JINDEX Logical
D
iagram


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
8

of
40


11/3/2013



3.3

JINDEX Client Send Message Flow


Fig 2 JINDEX Logical Message Flow Diagram



Send Message



1.1.1

The Data consumer sends a PCH or CACH request to the JINDEX.

1.1.2

The JINDEX splits and formats the request for each data

provider.

1.1.3

The JINDEX sends the requests to the data providers.

1.1.4

The data providers return a message acknowledgment to the JINDEX.

1.1.5

The JINDEX returns a message acknowledgment to the data consumer.


Note
: Message
acknowledgments

are returned
synchronously
.



3.4

JINDEX Client Receive Message Flow


Fig 3 JINDEX Logical Message Flow Diagram
-

Receive



JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
9

of
40


11/3/2013



1.1.6

Data provider

sends PCH or CACH data response to the JINDEX.

1.1.7

The JINDEX returns a message acknowledgment to the data providers.

1.1.8

The
JINDEX aggregates all data responses into a single data response.

1.1.9

The JINDEX sends the data consumer a data response.

1.1.10

The data consumer returns a message acknowledgment to the JINDEX


Note
: Message
acknowledgments

are returned
synchronously
. Data
respons
es

are
returned
asynchronously
.



3.5

JINDEX Request Message Processing


The purpose of this diagram is to provide developers with an overview of the processing
that occurs on the JINDEX server.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
10

of
40


11/3/2013




3.6

JINDEX Request Client
-
Side

The p
urpose of this diagram is to provide developers with an overview of the client
side
processing.


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
11

of
40


11/3/2013



3.7


JINDEX Response Client
-
Side


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
12

of
40


11/3/2013





3.8

JINDEX Security Model



4.0

C
riminal
H
is
tory
Q
ueries (CHQ)

Requirements


4.0

Introduction


A

single query sent to the JINDEX is
replicated and formed

into separate queries that are
forwarded
on to the actual data providers; WSP and AOC.
Queries sent to WSP and AOC
must contain a minimum set of data
elements to return data.

WSP query criteria are
the
same as those used by the ACCESS system
.
AOC uses similar criteria as ACCESS,
but
with

more flexibility
.
The

JINDEX
CHQ
requirements are detailed in this section.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
13

of
40


11/3/2013




4.1

General Requirements


Queries sent to
WSP and AOC must contain specific data elements.

Regardless of the type
of query being issued, three data elements are always required:




ORI number


<ORI>

-

Unique agency identifier assigned by the FBI via
WSP



Purpose code


<PUR>

-

Only ‘C’ codes (criminal

justice purpose) are
allowed



A
ttention

field


<ATN>

-

Individual user identifier assigned by the agency


The ORI number is located in the SOAP request header. The
purpose code and attention
field

are located in the SOAP body. If values for these eleme
nts are not provided, the
query will be rejected.


4.1.1

PCH/CACH Query Parameters


4.1.1.1

PCH Query Parameters

A PCH query is intended to provide law enforcement officials with descriptive information
about a person, based on a limited amount of information. A CACH re
quest will allow users to
‘drilldown’ for more specific criminal history and case history about a person, based on
information returned from a PCH, or submitted directly if specific information is known. The
following table identifies all possible data ele
ments a PCH or CACH request can contain, and
what each query will return


PCH queries will retrieve a subject’s identifying characteristics
1
, current warrants and
protection orders, notification of a criminal history record, and the record source
when
pres
ented with specific criteria in client queries.
CACH queries will provide

criminal history
and warrant
1

information.

The JINDEX application will parse through a client query; extract relevant criteria values
;
build; and then issue its own query to WSP. The specific combination chosen is dependant
upon the criteria present in the client query.


4.1.1.1.1

PCH Request


A

PCH
R
equest

may contain any of the following:



Name (first, middle, or last)



Date of Birth



Sex



Race



Address (Street, City, State, ZIP)



FBI Number



State Identification Number



Driver License Number



Social Security Number


4.1.1.1.2

PCH Response


A
PCH Response

may contain any of the following:



Name (first, middle, last, and/or alias)



Date of Birth




1

See the IEPD in Appendix E.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
14

of
40


11/3/2013





Sex



Race



Address
(Street, City, State, ZIP)



Scars, Marks, Tatoos



Eye Color



Hair Color



Height



Weight



FBI Number



State Identification Number



Driver License Number



Social Security Number



Miscellaneous Identifying Number



Record Source


4.1.1.2

CACH Query Parameters


A
CACH Request

mu
st contain
a combination

of the following:



State ID Number
OR
FBI Number;
AND



AOC Person Identification Number


A
CACH Response

may contain any or all of the following:

Charge Identification Number

Charge Name

Charge Date

Charge Description

Charge Di
sposition

Court Name

Supervision

Sentence (optional)

Charge Identification Number

Charge Offense Code ID

Charge Offense Level Text

Charge Description

Charge Disposition

Contributing Agency Name

Arrest Date

Mentally Ill Status (if
available
)

Chemically Dependent Status (if
available
)

Violent Offender Status

Armed and Dangerous Status

Registered Sex Offender Status

Person of Interest Status, including name, date, issuing
agency

Protection Order(s), including name, date, issuing agency

Wa
rrant(s), including name, date, issuing agency




4.2

WSP/ACCESS Query Requirements


Queries sent to WSP must contain a minimum set of data elements. For ACCESS queries,
the JINDEX code examines the incoming client query, determines which data elements will
r
esult in the most specific response, and submits its own queries to WSP. The JINDEX will
JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
15

of
40


11/3/2013



perform QH, QR, QWH, and DR based upon the data submitted by a local agency.

Highest
precedence will be given to the number 1 combination; lowest to the number
8

c
ombi
nation.

Section 4.2.1 below describes the combinations in precedence order. The
precedence value determines


4
.2.1
Person

Identification,
Criminal History,
Warrant
, and Protection
Order

Information


Queries submitted to the JINDEX must

contain one of t
he following criteria combinations:


1.

First and Last
Name, state identification number

2.

First and Last
Name, FBI number

3.

First and Last
Name, sex, race, date of birth, social security number

4.

First and Last
Name, sex, race, date of birth, miscellaneous identif
ying number
(MNU)

5.

First and Last
Name, sex, race, date of birth

6.

First and Last
Name, social security number

7.

First and Last Name, date of birth

8.

First and Last
Name, miscellaneous identifying number (MNU)




Detailed Criminal History Information


A CACH query

will retrieve criminal history information

on an individual. This occurs
if one
of the two criteria listed below is present. Once again, the JINDEX application will parse
through a client query; extract the relevant criterion value; build; and then issue

its own
query to WSP.


1.

State identification number

2.

FBI number


Even if both criteria are present in the client query only one query will be issued by the
JINDEX. Precedence will be given to the state identification number.


3.2.3 Driver and warrant inf
ormation


Both PCH
and CACH queries will retrieve driver
, warrant, and protection order

information
for a subject when the following criteria are present in client queries.


1.

Name, date of birth

2.

Driver License Number


4.3

AOC Query Requirements


4.3.1

Case Informa
tion and Court History

The AOC Judicial Information System (JIS) is a consolidated database that contains court
information from appellate, superior, district, and juvenile courts across the state. AOC
query requirements are similar to the WSP ACCESS syste
m, in that a minimum set of data
is required to return information on a subject. The exception, the JINDEX CHQ application
does not filter or repackage queries destined to AOC.
All
data elements

present in the client
query will be passed on to AOC.


PCH
q
ueries submitted to the JINDEX must contain at least one of the following data
elements to return
subject
information from JIS.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
16

of
40


11/3/2013




1.1.10.1

Last Name (partials accepted)

1.1.10.2

Driver License Number

1.1.10.3

Social Security Number

1.1.10.4

State Identification Number


Additional data may b
e included, but are not required to receive court information from JIS.
Providing additional data elements will provide PCH/CACH users with more specific
information
, and improve query response time
. These optional data elements include the
following:


1.

Da
te of Birth

2.

Sex

3.

Race

4.

Street
Address

5.

City

6.

State

7.

Zip


A CACH query will retrieve charge and case information on an individual.
In order to
receive
this data from

AOC, local

agency queries must include:


1.
AOC Person Identification Number

(IN)
.


This unique

number is assigned to each individual c
ontained within the JIS system, and
is
returned in PCH responses.
Additional information may be included in a CACH request, but
AOC will key their responses
only from

the Person IN.




JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
17

of
40


11/3/2013



5.0

Appendix A


PCH Request


5.1

PC
H Request



PCH Request Function Prototype


public

Acknowledgment


RequestPossibleCriminalHistory(
PCHRequestType

PCHRequest)


RequestPossibleCriminalHistory
: Is the PCH Request function prototype method used to send
a PCH request to the JINDEX application
.


Acknowledgement
: Is the acknowledgment message returned by the PCH request function
prototype. The acknowledgment message object with return a message code of “OK” or
“FAILED” indicating whether the message was sent successfully, or failed to be sent f
or any
reason.


The acknowledgment object also returns a message stating the JINDEX received the message, or
why the message was not sent successfully.


PCHRequest
: The pch request object contains the PCH message that user wishes to send to the
PCH/CACH

application for processing.


Example PCH Request Program



using

System;

using

System.Data;

using

System.Configuration;

using

System.Web;

using

System.Web.Security;

using

System.Web.UI;

using

System.Web.UI.WebControls;

using

System.Web.UI.WebControls.WebP
arts;

using

System.Web.UI.HtmlControls;


public partial class

_Default : System.Web.UI.Page

{


PchCachRequestWS_Server.RequestPossibleCriminalHistorySoapBi nding PchRequestWS;


PchCachRequestWS_Server.PCHRequest Type PCHRequest;


PchCachRequestWS_Se
rver.Acknowl edgment Acknowledgment;



protected void

Page_Load(object sender, EventArgs e)


{



// Create new web servicer header object


PchRequestWS =
new

PchCachRequestWS_Server.RequestPossibleCriminalHistorySoapBi nding();



/
/ URL of web service we want to connect too

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
18

of
40


11/3/2013




PchRequestWS.Url = "http://jindexqa.jin.wa.gov/JinMessageWS/CHQRequest.jin";



// Create "Security" SOAP Message header


PchRequestWS.Security =
new

PchCachRequestWS_Server.SecurityType();



PchRequestWS.Security.ORI = "WA034195Y";


PchRequestWS.Security.AGENCYNAME = "DIS";


PchRequestWS.Security.ATTNUSER = @"DIS
\
SSCOTT";



// Create "MessageID" header


PchRequestWS.MessageID =
new

PchCachRequestWS_Server.Me
ssageIDType();


PchRequestWS.MessageID.ID = "PCH
-
STEVEN
-
WSDL
-
" + System.Guid.NewGuid().ToStri ng();



// Create "To" header


PchRequestWS.To =
new

PchCachRequestWS_Server.ToType();


PchRequestWS.To.ID = "http://jindexqa.jin.wa.go
v/JinMessageWS/CHQRequest.jin";



// Create "ReplyTo" header


PchRequestWS.ReplyTo =
new

PchCachRequestWS_Server.ReplyToType();


PchRequestWS.ReplyTo.ID =
"http://localhost:1092/PchCachResponseWS_Server_03_26_08/PossibleCrimi nal History
ResponseSOAP
Binding.asmx";



// Create "Action" header


PchRequestWS.Action =
new

PchCachRequestWS_Server.ActionType();


PchRequestWS.Action.ID = "PossibleCriminalHistory.wsdl/RequestPossibleCriminalHistory";



// Create "Coordi
nationContext" header


PchRequestWS.CoordinationContext =
new

PchCachRequestWS_Server.CoordinationContextType();



PchRequestWS.CoordinationContext.Expires = "3600";


PchRequestWS.CoordinationContext.AggregationWaitFor = "600";




// Create PCH request


PCHRequest =
new

PchCachRequestWS_Server.PCHRequest Type();



// Create "Pur" message body


PCHRequest.Pur = PchCachRequestWS_Server.PurposeType.C;



// Create "Atn" message body


PCHRequest.Atn =
new

PchCachRequestWS_Server.@string();


PCHRequest.Atn.Value = PchRequestWS.Security.ATTNUSER;



//
---------------------------------------


// Create "Subject" message body


//
---------------------------------------



//
Initialize Person Name object


PCHRequest.Subject =
new

PchCachRequestWS_Server.SubjectType1();



PCHRequest.Subject.PersonName =
new

PchCachRequestWS_Server.PersonNameType[1];


PCHRequest.Subject.PersonName[0] = new PchCachRequestWS_S
erver.PersonNameType();



// Create "First Name" message body


PCHRequest.Subject.PersonName[0].PersonGi venName =
new

PchCachRequestWS_Server.PersonNameText Type[1];

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
19

of
40


11/3/2013




PCHRequest.Subject.PersonName[0].PersonGi venName[ 0] =
new

PchCachRequ
estWS_Server.PersonNameText Type();


PCHRequest.Subject.PersonName[0].PersonGi venName[ 0].Value = "TYRONE";



// Create "Middle Name" message body


PCHRequest.Subject.PersonName[0].PersonMi ddleName =
new

PchCachRequestWS_Server.PersonNam
eText Type[1];


PCHRequest.Subject.PersonName[0].PersonMi ddleName[0] =
new

PchCachRequestWS_Server.PersonNameText Type();


PCHRequest.Subject.PersonName[0].PersonMi ddleName[0].Value = "MAURICE";



// Create "Last Name" message body



PCHRequest.Subject.PersonName[0].PersonSurName =
new

PchCachRequestWS_Server.PersonNameText Type[1];


PCHRequest.Subject.PersonName[0].PersonSurName[ 0] =
new

PchCachRequestWS_Server.PersonNameText Type();


PCHRequest.Subject.PersonName[0].Pe
rsonSurName[ 0].Value = "TINSLEY";




// Create "Birth Date" message body


System.DateTime dateTime =
new

System.DateTime(1979, 07, 28);



PCHRequest.Subject.PersonBirthDate =
new

PchCachRequestWS_Server.date[1];


PCHRequest.Subje
ct.PersonBirthDate[0] =
new

PchCachRequestWS_Server.date();


PCHRequest.Subject.PersonBirthDate[0].Val ue = dateTime;



// Intialize web service Acknowledgment message


Acknowledgment =
new

PchCachRequestWS_Server.Acknowledgment();



Acknowledgment.Code = PchCachRequestWS_Server.Acknowl edgmentCode.FAILED;



// Call PCH Request Web Service


Acknowledgment = PchRequestWS.RequestPossibleCriminal History(PCHRequest);



}
// end Page_Load

}


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
20

of
40


11/3/2013



5.2

PCH Request WSDL



<?xml ver
sion="1.0" encoding="utf
-
8"?>

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"


targetNamespace="http://www.jin.wa.gov/wsdl/2008/03"


xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"


xml
ns:pchcachws="http://www.jin.wa.gov/wsdl/2008/03"


xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"


xmlns:cach="http://www.jin.wa.gov/xsd/chq/cach/2005/05"


xmlns:pch="http://www.jin.wa.gov/xsd/chq/pc
h/2005/05"


xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"


xmlns:wsse="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


xmlns:wsc="http://schemas.xmlsoa
p.org/ws/2004/10/wscoor"


xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"


xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"


xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"



xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"


xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"


xmlns:pchcach="http://www.jin.wa.gov/pchcach/2008/03">



<wsdl:documentation>Possible Criminal History / Case and
Criminal History Request Web
Services</wsdl:documentation>


<!
--

Justice XML Types
--
>


<wsdl:types>



<xsd:schema targetNamespace="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"



xmlns:jxdm="http://www.it.ojp.gov/jxdm/3.0.2"


xmlns:pch="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:xsd="http://www.w3.org/2001/XMLSchema">





<xsd:import namespace="
http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.jin.wa.gov/xsd/chq/2005/05"


schemaLocation="./chq.xsd"/>





<xsd:import namespace="http://do
cs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"/>





<xsd:import namespace="http://schemas.xmlsoap.org/ws
/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>





<xsd:element name="PCHRequest" type="pch:PCHRequestType">





<xsd:annotation>






<xsd:documentation>Request for a Possible Criminal History
Result Set
</xsd:documentation>





</xsd:annotation>




</xsd:element>




<xsd:complexType name="PCHRequestType">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
21

of
40


11/3/2013







<xsd:complexContent>






<xsd:extension base="jxdm:Docu
mentType">







<xsd:sequence>








<xsd:element ref="chq:Pur"/>








<xsd:element ref="chq:Atn"/>








<xsd:element ref="chq:Subject"/>







</xsd:sequence>






</xsd:extension>





</xsd:complexContent>




</xsd:complexType>



</xsd:schema>




<
xsd:schema targetNamespace="http://www.jin.wa.gov/xsd/chq/cach/2005/05"


xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"


xmlns:jxdm="http://www.it.ojp.gov/jxdm/3.0.2"


xml
ns:cach="http://www.jin.wa.gov/xsd/chq/cach/2005/05"


xmlns:pch="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:pchcach="http://www.jin.wa.gov/pchcach/2008/03"


xmlns:xs
d="http://www.w3.org/2001/XMLSchema">





<xsd:import namespace="http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.jin.wa.gov/xsd/chq/2005/05"


schemaLocation="./chq.xsd"/>





<xsd:import namespace="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.
0.xsd"/>





<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>





<xsd:element name="CACHRequest" type="cach:CACHRequestType">





<xsd:annotation>






<x
sd:documentation>Case and Criminal History
Request</xsd:documentation>





</xsd:annotation>




</xsd:element>





<xsd:complexType name="CACHRequest Type">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xsd
:complexContent>






<xsd:extension base="jxdm:DocumentType">







<xsd:sequence>








<xsd:element ref="chq:Pur"/>








<xsd:element ref="chq:Atn"/>








<xsd:element ref="chq:Subject"/>







</xsd:sequence>






</xsd:extension>





</xsd:comple
xContent>




</xsd:complexType>



</xsd:schema>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
22

of
40


11/3/2013






<xsd:schema targetNamespace="http://www.jin.wa.gov/pchcach/2008/03"


xmlns:pchcach="http://www.jin.wa.gov/pchcach/2008/03"


xmlns:xsd="http://www.w3.o
rg/2001/XMLSchema">





<xsd:import namespace="http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.jin.wa.gov/xsd/chq/2005/05"


schemaLocation="./
chq.xsd"/>





<xsd:import namespace="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"/>





<xsd:
import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>



<xsd:element name="MessageID" type="pchcach:MessageIDType"/>




<xsd:complexType name="MessageIDType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>



<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>




<xsd:element name="RelatesTo" type="pchcach
:RelatesToType"/>




<xsd:complexType name="RelatesToType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>



</xsd:annotation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>





<xsd:element name="To" type="pchcach:ToType"/>




<xsd:complexType name="ToType">


<xsd:annotation>


<xsd:documentation>none</
xsd:documentation>


</xsd:annotation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>




<xsd:element name="ReplyTo" type="pchcach:ReplyToType"/>




<xsd:complexType name="ReplyToType">


<xsd:annotation>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
23

of
40


11/3/2013




<xsd:documentation>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>



</xsd:sequence>


</xsd:complexType>




<xsd:element name="Action" type="pchcach:ActionType"/>




<xsd:complexType name="A
ctionType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>



<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>




<xsd:element name="Security" type="pchcach:SecurityType"/>





<xsd:com
plexType name="SecurityType">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xsd:sequence>






<xsd:element name="ORI" type="xsd:string"/>






<xsd:element name="AGENCY
-
NAME" type="xsd:string"/>






<xsd
:element name="ATTN
-
USER" type="xsd:string"/>





</xsd:sequence>




</xsd:complexType>








<xsd:element name="CoordinationCont ext"
type="pchcach:CoordinationContext Type"/>





<xsd:complexType name="CoordinationContext Type">





<xsd:annotation>






<
xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xsd:sequence>






<xsd:element name="Expires" type="xsd:string"/>






<xsd:element name="AggregationWaitFor" type="xsd:string"/>





</xsd:sequence>




</xsd:complexType>





<xsd:elem
ent name="Acknowledgment">





<xsd:annotation>






<xsd:documentation>Acknowledgment</xsd:documentation>





</xsd:annotation>





<xsd:complexType>






<xsd:sequence>







<xsd:element name="Message" type="xsd:string"/>







<xsd:element name="Code">








<xsd:simpleType>









<xsd:restriction base="xsd:string">










<xsd:enumeration value="OK"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
24

of
40


11/3/2013












<xsd:enumeration
value="FAILED"/>









</xsd:restriction>








</xsd:simpleType>







</xsd:element>






</xsd:sequence>





</xsd:c
omplexType>




</xsd:element>



</xsd:schema>



</wsdl:types>



<wsdl:message name="Headers">



<wsdl:part name="Security" element="pchcach:Security"/>



<wsdl:part name="MessageID" element="pchcach:MessageID"/>



<wsdl:part name="RelatesTo" element="pchca
ch:RelatesTo"/>



<wsdl:part name="To" element="pchcach:To"/>



<wsdl:part name="ReplyTo" element="pchcach:ReplyTo"/>



<wsdl:part name="Action" element="pchcach:Action"/>



<wsdl:part name="CoordinationContext" element="pchcach:CoordinationContext"/>


</w
sdl:message>



<wsdl:message name="CACHRequest">



<wsdl:part name="CACHRequest" element="cach:CACHRequest"/>


</wsdl:message>



<wsdl:message name="PCHRequest">



<wsdl:part name="PCHRequest" element="pch:PCHRequest"/>


</wsdl:message>



<wsdl:message nam
e="Acknowledgment">



<wsdl:part name="Acknowledgment" element="pchcach:Acknowledgment"/>


</wsdl:message>



<wsdl:message name="commonFault">



<wsdl:part name="Fault" element="xsd:string"/>


</wsdl:message>



<!
--

Port Types
--
>


<wsdl:portType name="Req
uestCaseAndCrimi nal HistoryPort Type">



<wsdl:operation name="RequestCaseAndCrimi nal History">




<wsdl:input message="pchcachws:CACHRequest"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminalHistory/Query"/>




<wsdl:output message="pchcachws:Acknowledgm
ent"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminalHistory/Acknowledgment"/>




<wsdl:fault name="commonFault" message="pchcachws:commonFault"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminalHistory/Fault"/>



</wsdl:operation>


</wsdl:portType
>



<wsdl:portType name="RequestPossibleCriminalHistoryPort Type">



<wsdl:operation name="RequestPossibleCriminalHistory">




<wsdl:input message="pchcachws:PCHRequest"
wsa:Action="http://jindex.wa.gov/cach/PossibleCriminal History/Query"/>




<wsdl:output
message="pchcachws:Acknowledgment"
wsa:Action="http://jindex.wa.gov/cach/PossibleCriminal History/Acknowledgement"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
25

of
40


11/3/2013






<wsdl:fault name="commonFault" message="pchcachws:commonFault"
wsa:Action="http://jindex.wa.gov/cach/PossibleCriminal History/Fault"/>



<
/wsdl:operation>


</wsdl:portType>



<!
--

Bindings
--
>


<wsdl:binding name="RequestCaseAndCri minal HistorySoapBinding"
type="pchcachws:RequestCaseAndCrimi nal HistoryPort Type">



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



<wsdl:operation name="RequestCaseAndCrimi nal History">




<soap:operation
soapAction="CaseCriminalHistory.wsdl/Request CaseAndCriminalHistory"/>




<wsdl:input>





<soap:body parts="CACHRequest" use="literal"/>





<soap:header message="pchcachws:Header
s" part="Security"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap
:header message="pchcachws:Headers" part="ReplyTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers"
part="CoordinationContext"
use="literal" wsdl:required="true"/>




</wsdl:input>




<wsdl:output>





<soap:body use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Messa
geID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="RelatesTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap:header messa
ge="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>




</wsdl:output>




<wsdl:fault name="commonFault">





<soap:fault name="commonFault" use="literal"/>




</wsdl:fault>



</wsdl:operation>


</wsdl:binding>



<wsdl:binding name="Re
questPossibleCriminalHistorySoapBi ndi ng"
type="pchcachws:RequestPossibleCriminalHistoryPort Type">



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



<wsdl:operation name="RequestPossibleCriminalHistory">




<soap:operatio
n
soapAction="PossibleCriminalHistory.wsdl/RequestPossibleCriminalHistory"/>




<wsdl:input>





<soap:body parts="PCHRequest" use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
26

of
40


11/3/2013







<soap:heade
r message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="ReplyTo"
use="literal" wsdl:r
equired="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers"
part="CoordinationContext" use="literal" wsdl:required="true"/>




</wsdl:input>




<wsdl:output>





<soap:body use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pc
hcachws:Headers" part="RelatesTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"
/>




</wsdl:output>




<wsdl:fault name="commonFault">





<soap:fault use="literal" name="commonFault"/>




</wsdl:fault>



</wsdl:operation>


</wsdl:binding>



<!
--

Services
--
>


<wsdl:service name="RequestCaseAndCriminalHistoryService">



<wsdl:port na
me="CaseAndCriminalHistorySOAPRequest"
binding="pchcachws:RequestCaseAndCriminalHistorySoapBi nding">




<soap:address location="https://transact.wa.gov/jindex
-
chq/CaseAndCriminalHistory"/>



</wsdl:port>


</wsdl:service>



<wsdl:service name="RequestPossib
leCriminal HistoryService">



<wsdl:port name="PossibleCriminalHistorySOAPRequest"
binding="pchcachws:RequestPossibleCri minal HistorySoapBinding">




<soap:address location="https://transact.wa.gov/jindex
-
chq/PossibleCriminalHistory"/>



</wsdl:port>


</wsdl
:service>


</wsdl:definitions>







JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
27

of
40


11/3/2013



6.0

Appendix
B

-

CACH Request

6.0

CACH Request


CA
CH Request Function Prototype


public

Acknowledgment


RequestCaseAndCriminalHistory (
PCHRequestType

CACHRequest)


RequestCaseAndCriminalHistory
: Is the CACH Request function pr
ototype method used to
send a CACH request to the JINDEX application.


Acknowledgement
: Is the acknowledgment message returned by the CACH request function
prototype. The acknowledgment message object with return a message code of “OK” or
“FAILED” indicat
ing whether the message was sent successfully, or failed to be sent for any
reason.


The acknowledgment object also returns a message stating the JINDEX received the message, or
why the message was not sent successfully.


CA
CHRequest
: The CACH request o
bject contains the CACH message that user wishes to send
to the PCH/CACH application for processing.


Example
CA
CH Request Program



using
System;

using
System.Data;

using
System.Configuration;

using

System.Web;

using

System.Web.Security;

using

System.Web.
UI;

using

System.Web.UI.WebControls;

using

System.Web.UI.WebControls.WebParts;

using

System.Web.UI.HtmlControls;


public partial class

_Default : System.Web.UI.Page

{


CachRequestWS.RequestCaseAndCri minal HistorySoapBinding CACHRequestWS;


CachReques
tWS.CACHRequestType CACHRequest;


CachRequestWS.Acknowledgment CachAcknowledgment;



protected void

Page_Load(
object

sender,
EventArgs

e)


{



// Create new web servicer header object


CACHRequestWS =
new

CachRequestWS.RequestCaseAndCriminalHistorySoapBinding();



// URL of web service we want to connect too


CACHRequestWS.Url =
"http://localhost:1106/PchCachRequestWS_Server/CachRequestWS.asmx";



// Create "
Security" header


CACHRequestWS.Security =
new

CachRequestWS.SecurityType();

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
28

of
40


11/3/2013





CACHRequestWS.Security.ORI = "WA034195Y";


CACHRequestWS.Security.AGENCYNAME = "DIS";


CACHRequestWS.Security.ATTNUSER = @"DIS
\
SSCOTT";




// C
reate "MessageID" header


CACHRequestWS.MessageID =
new

CachRequestWS.MessageIDType();


CACHRequestWS.MessageID.ID = "CACH
-
STEVEN
-
" + System.Guid.NewGuid().ToString();



// Create "To" header


CACHRequestWS.To =
new

CachRequestW
S.ToType();


CACHRequestWS.To.ID = "http://jindexqa.jin.wa.gov/JinMessageWS/CHQRequest.jin";



// Create "ReplyTo" header


CACHRequestWS.ReplyTo =
new

CachRequestWS.ReplyToType();


CACHRequestWS.ReplyTo.ID =
"http://localhost:10
92/PchCachResponseWS_Server_03_26_08/PossibleCrimi nal HistoryResponseSOAP
Binding.asmx";



// Create "Action" header


CACHRequestWS.Action =
new

CachRequestWS.ActionType();


CACHRequestWS.Action.ID = "CaseCriminalHistory.wsdl/RequestCase
AndCriminalHistory";



// "CoordinationContext" header


CACHRequestWS.Coordinati onCont ext =
new

CachRequestWS.Coordinati onCont extType();



CACHRequestWS.Coordinati onCont ext.Expires = "3600";


CACHRequestWS.Coordinati onCont ext.Ag
gregationWaitFor = "20";



// Create PCH request


CACHRequest =
new

CachRequestWS.CACHRequestType();



// Create "Pur" message body


CACHRequest.Pur = CachRequestWS.PurposeType.C;



// Create "Atn" message body


CA
CHRequest.Atn =
new

CachRequestWS.@string();


CACHRequest.Atn.Value = CACHRequestWS.Security.ATTNUSER;



// Initialize Person Name object


CACHRequest.Subject =
new

CachRequestWS.SubjectType1();



CACHRequest.Subject.PersonName
=
new

CachRequestWS.PersonNameType[1];


CACHRequest.Subject.PersonName[0] =
new

CachRequestWS.PersonNameType();



// Create "First Name" message body


CACHRequest.Subject.PersonName[0].PersonGi venName =
new

CachRequestWS.PersonNameText
Type[ 1];


CACHRequest.Subject.PersonName[0].PersonGi venName[0] =
new

CachRequestWS.PersonNameText Type();


CACHRequest.Subject.PersonName[0].PersonGi venName[0].Value = "TYRONE";



// Create "Middle Name" message body


CACHRequest
.Subject.PersonName[0].PersonMiddleName =
new

CachRequestWS.PersonNameText Type[ 1];


CACHRequest.Subject.PersonName[0].PersonMiddleName[0] =
new

CachRequestWS.PersonNameText Type();

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
29

of
40


11/3/2013




CACHRequest.Subject.PersonName[0].PersonMiddleName[0].Value =

"MAURICE";



// Create "Last Name" message body


CACHRequest.Subject.PersonName[0].PersonSurName =
new

CachRequestWS.PersonNameText Type[ 1];


CACHRequest.Subject.PersonName[0].PersonSurName[0] =
new

CachRequestWS.PersonNameText Type();


CACHRequest.Subject.PersonName[0].PersonSurName[0].Value = "TINSLEY";



// Create "Birth Date" message body


System.DateTime dateTime =
new

System.DateTime(1979, 07, 28, 12, 00, 00);



CACHRequest.Subject.PersonBirthDate =
new

CachRequestWS.date[1];


CACHRequest.Subject.PersonBirthDate[0] =
new

CachRequestWS.date();


CACHRequest.Subject.PersonBirthDate[0].Value = dateTime;



// Intialize web service Acknowledgment message


CachAcknowledgment =
new

Cac
hRequestWS.Acknowledgment();


CachAcknowledgment.Code = CachRequestWS.AcknowledgmentCode.FAILED;



// Call CACH Request Web Service


CachAcknowledgment = CACHRequestWS.RequestCaseAndCriminalHistory(CACHRequest);



}
// end Page_Load

(CACH Request.....)

}



6.1

CACH Request WSDL


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

<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"


targetNamespace="http://www.jin.wa.gov/wsdl/2008/03"


xmlns:http="http://s
chemas.xmlsoap.org/wsdl/http/"


xmlns:pchcachws="http://www.jin.wa.gov/wsdl/2008/03"


xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"


xmlns:cach="http://www.jin.wa.gov/xsd/chq/cach/2005/05"



xmlns:pch="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"


xmlns:wsse="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd
"


xmlns:wsc="http://schemas.xmlsoap.org/ws/2004/10/wscoor"


xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"


xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"


xmlns:soapenc="http:
//schemas.xmlsoap.org/soap/encoding/"


xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"


xmlns:xsi="http://www.w3.org/2001/XMLSchema
-
instance"


xmlns:pchcach="http://www.jin.wa.gov/pchcach/2008/03">



<wsd
l:documentation>Possible Criminal History / Case and Criminal History Request Web
Services</wsdl:documentation>


<!
--

Justice XML Types
--
>


<wsdl:types>



<xsd:schema targetNamespace="http://www.jin.wa.gov/xsd/chq/pch/2005/05"



xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"


xmlns:jxdm="http://www.it.ojp.gov/jxdm/3.0.2"


xmlns:pch="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:xsd="http://ww
w.w3.org/2001/XMLSchema">

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
30

of
40


11/3/2013







<xsd:import namespace="http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.jin.wa.gov/xsd/chq/2005/05"


schemaLocati
on="./chq.xsd"/>





<xsd:import namespace="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"/>





<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>





<xsd:element name="PCHRequest" type="pch:PCHRequestType">





<xsd:annotation>






<xsd:documentati
on>Request for a Possible Criminal History
Result Set</xsd:documentation>





</xsd:annotation>




</xsd:element>




<xsd:complexType name="PCHRequestType">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xs
d:complexContent>






<xsd:extension base="jxdm:DocumentType">







<xsd:sequence>








<xsd:element ref="chq:Pur"/>








<xsd:element ref="chq:Atn"/>








<xsd:element ref="chq:Subject"/>







</xsd:sequence>






</xsd:extension>





</xsd:compl
exContent>




</xsd:complexType>



</xsd:schema>




<xsd:schema targetNamespace="http://www.jin.wa.gov/xsd/chq/cach/2005/05"


xmlns:chq="http://www.jin.wa.gov/xsd/chq/2005/05"


xmlns:jxdm="http://www.it
.ojp.gov/jxdm/3.0.2"


xmlns:cach="http://www.jin.wa.gov/xsd/chq/cach/2005/05"


xmlns:pch="http://www.jin.wa.gov/xsd/chq/pch/2005/05"


xmlns:pchcach="http://www.jin.wa.gov/p
chcach/2008/03"


xmlns:xsd="http://www.w3.org/2001/XMLSchema">





<xsd:import namespace="http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.
jin.wa.gov/xsd/chq/2005/05"


schemaLocation="./chq.xsd"/>





<xsd:import namespace="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.
org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"/>


JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
31

of
40


11/3/2013






<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>





<xsd:element name="CACHRequest" type
="cach:CACHRequestType">





<xsd:annotation>






<xsd:documentation>Case and Criminal History
Request</xsd:documentation>





</xsd:annotation>




</xsd:element>





<xsd:complexType name="CACHRequest Type">





<xsd:annotation>






<xsd:documentation>no
ne</xsd:documentation>





</xsd:annotation>





<xsd:complexContent>






<xsd:extension base="jxdm:DocumentType">







<xsd:sequence>








<xsd:element ref="chq:Pur"/>








<xsd:element ref="chq:Atn"/>








<xsd:element ref="chq:Subject"/>







<
/xsd:sequence>






</xsd:extension>





</xsd:complexContent>




</xsd:complexType>



</xsd:schema>




<xsd:schema targetNamespace="http://www.jin.wa.gov/pchcach/2008/03"


xmlns:pchcach="http://www.jin.wa.gov/pchcach/2008/03"



xmlns:xsd="http://www.w3.org/2001/XMLSchema">





<xsd:import namespace="http://www.it.ojp.gov/jxdm/3.0.2"


schemaLocation="./jxdm/3.0.2/jxdm.xsd"/>





<xsd:import namespace="http://www.jin.wa.gov/xsd/chq
/2005/05"


schemaLocation="./chq.xsd"/>





<xsd:import namespace="http://docs.oasis
-
open.org/wss/2004/01/oasis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"


schemaLocation="http://docs.oasis
-
open.org/wss/2004/01/oa
sis
-
200401
-
wss
-
wssecurity
-
secext
-
1.0.xsd"/>





<xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing"


schemaLocation="./ws
-
addressing/ws
-
addressing.xsd"/>



<xsd:element name="MessageID" ty
pe="pchcach:MessageIDType"/>



<xsd:complexType name="MessageIDType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>


</xsd:anno
tation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>





<xsd:element name="RelatesTo" type="pchcach:RelatesToType"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
32

of
40


11/3/2013






<xsd:complexType name="RelatesToType">


<xsd:annotation>


<xsd:documentatio
n>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>



</xsd:complexType>




<xsd:element name="To" type="pchcach:ToType"/>




<xsd:complexType name="ToType">


<xsd:annotation>



<xsd:documentation>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>



</xsd:sequence>


</xsd:complexType>




<xsd:element name="ReplyTo" type="pchcach:ReplyToType"/>




<xsd:complexType name="ReplyT
oType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>


</xsd:annotation>


<xsd:sequence>



<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>




<xsd:element name="Action" type="pchcach:ActionType"/>





<xsd:complexType name="ActionType">


<xsd:annotation>


<xsd:documentation>none</xsd:documentation>


</xsd:annotation>



<xsd:sequence>


<xsd:element name="ID" type="xsd:string"/>


</xsd:sequence>


</xsd:complexType>




<xsd:element name=
"Security" type="pchcach:SecurityType"/>





<xsd:complexType name="SecurityType">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xsd:sequence>






<xsd:element name="ORI" type="xsd:string"/>






<xsd:ele
ment name="AGENCY
-
NAME" type="xsd:string"/>






<xsd:element name="ATTN
-
USER" type="xsd:string"/>





</xsd:sequence>




</xsd:complexType>





JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
33

of
40


11/3/2013






<xsd:element name="CoordinationCont ext"
type="pchcach:CoordinationContext Type"/>





<xsd:complexType name="
CoordinationContext Type">





<xsd:annotation>






<xsd:documentation>none</xsd:documentation>





</xsd:annotation>





<xsd:sequence>






<xsd:element name="Expires" type="xsd:string"/>






<xsd:element name="AggregationWaitFor" type="xsd:string"/>





</xsd:sequence>




</xsd:complexType>





<xsd:element name="Acknowledgment">





<xsd:annotation>






<xsd:documentation>Acknowledgment</xsd:documentation>





</xsd:annotation>





<xsd:complexType>






<xsd:sequence>







<xsd:element name="Message
" type="xsd:string"/>







<xsd:element name="Code">








<xsd:simpleType>









<xsd:restriction base="xsd:string">










<xsd:enumeration value="OK"/>










<xsd:enumeration
value="FAILED"/>









</xsd:restriction>








</xsd:simpleType>







</xsd:element>






</xsd:sequence>





</xsd:complexType>




</xsd:element>



</xsd:schema>



</wsdl:types>



<wsdl:message name="Headers">



<wsdl:part name="Security" element="pchcach:Security"/>



<wsdl:part name="MessageID" element="pchcach:Mess
ageID"/>



<wsdl:part name="RelatesTo" element="pchcach:RelatesTo"/>



<wsdl:part name="To" element="pchcach:To"/>



<wsdl:part name="ReplyTo" element="pchcach:ReplyTo"/>



<wsdl:part name="Action" element="pchcach:Action"/>



<wsdl:part name="Coordination
Context" element="pchcach:CoordinationContext"/>


</wsdl:message>



<wsdl:message name="CACHRequest">



<wsdl:part name="CACHRequest" element="cach:CACHRequest"/>


</wsdl:message>



<wsdl:message name="PCHRequest">



<wsdl:part name="PCHRequest" element="p
ch:PCHRequest"/>


</wsdl:message>



<wsdl:message name="Acknowledgment">



<wsdl:part name="Acknowledgment" element="pchcach:Acknowledgment"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
34

of
40


11/3/2013




</wsdl:message>



<wsdl:message name="commonFault">



<wsdl:part name="Fault" element="xsd:string"/>


</wsdl:mes
sage>



<!
--

Port Types
--
>


<wsdl:portType name="RequestCaseAndCrimi nal HistoryPort Type">



<wsdl:operation name="RequestCaseAndCrimi nal History">




<wsdl:input message="pchcachws:CACHRequest"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminalHistory/Qu
ery"/>




<wsdl:output message="pchcachws:Acknowledgment"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminalHistory/Acknowledgment"/>




<wsdl:fault name="commonFault" message="pchcachws:commonFault"
wsa:Action="http://jindex.wa.gov/cach/CaseAndCriminal
History/Fault"/>



</wsdl:operation>


</wsdl:portType>



<wsdl:portType name="RequestPossibleCriminalHistoryPort Type">



<wsdl:operation name="RequestPossibleCriminalHistory">




<wsdl:input message="pchcachws:PCHRequest"
wsa:Action="http://jindex.wa.gov/c
ach/PossibleCriminal History/Query"/>




<wsdl:output message="pchcachws:Acknowledgment"
wsa:Action="http://jindex.wa.gov/cach/PossibleCriminal History/Acknowledgement"/>




<wsdl:fault name="commonFault" message="pchcachws:commonFault"
wsa:Action="http://ji
ndex.wa.gov/cach/PossibleCriminal History/Fault"/>



</wsdl:operation>


</wsdl:portType>



<!
--

Bindings
--
>


<wsdl:binding name="RequestCaseAndCri minal HistorySoapBinding"
type="pchcachws:RequestCaseAndCrimi nal HistoryPort Type">



<soap:binding style="docume
nt" transport="http://schemas.xmlsoap.org/soap/http"/>



<wsdl:operation name="RequestCaseAndCrimi nal History">




<soap:operation
soapAction="CaseCriminalHistory.wsdl/Request CaseAndCriminalHistory"/>




<wsdl:input>





<soap:body parts="CACHRequest" use="
literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" par
t="To" use="literal"
wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="ReplyTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>





<soap:header me
ssage="pchcachws:Headers"
part="CoordinationContext" use="literal" wsdl:required="true"/>




</wsdl:input>




<wsdl:output>





<soap:body use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
35

of
40


11/3/2013







<soap:header message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="RelatesTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="l
iteral"
wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>




</wsdl:output>




<wsdl:fault name="commonFault">





<soap:fault name="commonFault" use="literal"/>




</wsdl:fault>



</wsdl
:operation>


</wsdl:binding>



<wsdl:binding name="RequestPossibleCriminalHistorySoapBi ndi ng"
type="pchcachws:RequestPossibleCriminalHistoryPort Type">



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



<wsdl:operation nam
e="RequestPossibleCriminalHistory">




<soap:operation
soapAction="PossibleCriminalHistory.wsdl/RequestPossibleCriminalHistory"/>




<wsdl:input>





<soap:body parts="PCHRequest" use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"

use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="MessageID"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap:header message="p
chcachws:Headers" part="ReplyTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="Action"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers"
part="CoordinationContext" use="literal" wsdl
:required="true"/>




</wsdl:input>




<wsdl:output>





<soap:body use="literal"/>





<soap:header message="pchcachws:Headers" part="Security"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="MessageID"
use="literal
" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="RelatesTo"
use="literal" wsdl:required="true"/>





<soap:header message="pchcachws:Headers" part="To" use="literal"
wsdl:required="true"/>





<soap:header message="pchcachws:Head
ers" part="Action"
use="literal" wsdl:required="true"/>




</wsdl:output>




<wsdl:fault name="commonFault">





<soap:fault use="literal" name="commonFault"/>




</wsdl:fault>



</wsdl:operation>


</wsdl:binding>



<!
--

Services
--
>

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
36

of
40


11/3/2013




<wsdl:service name="R
equestCaseAndCriminalHistoryService">



<wsdl:port name="CaseAndCriminalHistorySOAPRequest"
binding="pchcachws:RequestCaseAndCriminalHistorySoapBi nding">




<soap:address location="https://transact.wa.gov/jindex
-
chq/CaseAndCriminalHistory"/>



</wsdl:port>


</wsdl:service>



<wsdl:service name="RequestPossibleCriminal HistoryService">



<wsdl:port name="PossibleCriminalHistorySOAPRequest"
binding="pchcachws:RequestPossibleCri minal HistorySoapBinding">




<soap:address location="https://transact.wa.gov/jindex
-
chq/PossibleCriminalHistory"/>



</wsdl:port>


</wsdl:service>


</wsdl:definitions>









JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
37

of
40


11/3/2013




7.0

Appendix
C



JINDEX Information Exchange
Package
and Sample Code


The JINDEX Install package
, sample code

and documentation are located at t
he
following
URL
. Ini
tial
installation and any updated versions are maintained on this page.




http://jindexqa.jin.wa.gov/PchCachRequestWS/Documents/


This URL contains links
to the JINDEX PCH/CACH client web
service source code, wsdl’s, IEPD map:


Below is the list of files found on the site.




CHQ Network Connectivity Set
up (Client)
-
PGN
-
IGN
-
SGN.zip

This zip file contains the
PCH/CACH client SGN, IGN, and PGN network connectivity requirements.



CHQProject.zip

This zip file contain
s the PCH/CACH request and response file structure
used by the PCH/CACH sample code to store message request acknowledgments
received from the JINDEX, and to store response messages received from the JINDEX.



IEPD Mappings.zip

: This zip contains the IEPD mappings spreadsheet that describes the
GJXDM data elements used by the PCH/CACH request and response web services.


UploadWsdl
<dir> A URL path to this folder can be used to add Web Reference to a
Visual Studio project.


Web Reference
URL
:



https://jindexqa.jin.wa.gov/PchCachRequestWS/ServiceRepository/Upl oadWsdl/PCHCA
CHRequest.wsdl




Web Service Code.zip

(also
referred to as “Sample Code”)

This zip file
contains the PCH/CACH request and response sample code Visual Studio
projects folder used to create the sample web service program, and IIS
executable file that can placed directly in to IIS to launch the sample
program
without Visual Studio.



WSDL's.zip

This zip file contains the PCH/CACH request and response web
service WSDL’s, and batch files used to generate web service pro
xy code
from the WSDL’s.



XSD's.zip

This zip file contains all the PCH/CACH request and response web
service XSD files that are used in conjunction with the WSDL’s des
cribe and
create a web service.



JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
38

of
40


11/3/2013



8.0

Appendix
D



Overview of ACCESS switch web
application

1.
JINDEX ACCESS web project

The JINDEX ACCESS web application is a java project with a root directory name of
jindex
-
wsp
-
access
. All files necessary for configurati
on are in subdirectories that are relative to the root
directory. All source code is under the
src/java

subdirectory.

2.
ACCESS Response Parsing

The application uses objection serialization and xml configuration files to create response parsers
without th
e need for static code or hard
-
coded classes.

A java scripting language, groovy, is used to define objects to parse the text response from the
ACCESS switch into a set of intermediate objects: Records, Fields, and Columns. Regular
expressions are used to d
etermine which parts of the text response to parse. The configuration
files for these exist under the following path relative to the root of the
jindex
-
wsp
-
access

subdirectory:
src/java/resources/parser

The ParserConfig.xml file is the master xml configura
tion file for ACCESS switch parsers. Each
record type is defined in separate xml files which are included in the ParserConfig.xml file via
the entity mechanism.

3.
XmlBeans

An xml to object serialization API called XmlBeans is used to convert and map the
intermediate
parsed objects into objects which represent CHQ and JXDM schema objects.

Once a given response has been parsed into the intermediate objects, an XBeanMapper object is
used to process the intermediate objects and identify the correct XmlBeans o
bjects. The
configuration files for this portion of the application is in the
src/java/resources/xbeanmapper

subdirectory. The MapperConfig.xml file is the master xml configuration file for the XmlBean
mappers. Each JXDM element structure relevant to JINDE
X is defined in a separate xml file
which is included in the MapperConfig.xml file via the xml entity mechanism.

4.
Explanatory documentation

The
doc

subdirectory contains several informative files.



gif files of Object Sequence diagrams describing the ACC
ESS web application request and
response flow.



The Adding Support for a Response Message Type document details the process of creating new
response types and is a must read to fully understand the XML configuration files.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
39

of
40


11/3/2013




9.0

Appendix
E



JINDEX Support


9.0

Sup
port for Program Management Issues

The JINDEX Program Management Team provides support for Business
issues. Business issues are those issues related to
the JIN Program
Policies, working with counties and agencies to define requirements for
enhancements to

the JINDEX Programs and determining Program
priorities.


The JINDEX Program Management Team is located at the Department
of Information Services, Management and Oversight of Strategic
Technologies Division.
Information regarding the Justice Information
N
etwork may be obtained at the following Web Site:


http://jin.wa.gov/


9.1

Support for JINDEX Server Side Issues

The
J
INDEX system is managed and maintained by the
Department of Information Services, Computer Services
Division.


The following services can be

obtained through the DIS
Service Desk

at
360
-
753
-
2454
.



JINDEX Infrastructure


Production Support



JINDEX Development and Programming


Enterprise
Application Development, Integration Competency
Center.

JIN CHQ Cl
ient Programmers Guide

Created by: DIS Integration Competency Center


Page
40

of
40


11/3/2013



CSD is interested in making sure this document provi
des you with the
information you need to successfully develop applications that use JINDEX
data. Please complete the form below to provide feedback. This form may
be copied and emailed to
disdlintcompctr@dis.wa.gov.


Document Feedback Form

Document Name
:

Version
:

Date:

Customer Name
:


Address:


City:

State:

ZIP Code:

Please rate your satisfaction of this Document

We are interested in producing documentation that adds value and is helpful to you in your efforts to de
velop
user applications for JINDEX. Please let us know how we can improve.

Extremely helpful

Helpful

Good, but needs
improvement

Useless

PROBLEM

Document Problem Reported:




Reported by:

Date:


Time:

Location of JINDEX Installation:

S
UGGESTED IMPRO
VEMENT

Change requested:





CSD Response

Defects found on inspection:




Status:

(Please circle)

Change accepted / rejected


customer informed.

Change Complete:

Version ID:


Date Completed: