XCPD Client - Integration Testing

XCPD Integration Testing

This page tries to gather all the specification of Integration testing for the XCPD client component, including several aspects such as the description, inputs, results and Status. The tests are located at the following class "eu.epsos.pt.cc.xcpdIT".

Please Note:

These test definitions match the code implementation. The same Id and Test Name is used in method definitions.

Please follow the same convention and remember to reflect the code changes in these tables and vice-versa. For each new test please add a new table and keep it updated.

 

Generic Integration Test Scenario

 

An emulation of portal activity, was developed inside Client Connector Integration Test class xcpdIT.

These class contains one test for each test situation, always running the above scenario.

  1. The portal emulation uses Integration Utilities to sends SOAP requests to Client Connector (CC);
  2. CC uses XCPD Client module to perform the IHE call to NCP-A;
  3.  NCP-A uses a mock version of the National Connector (NC-IT);
  4. NC-IT replies with static content it has available for IT purposes. 

 

Initial Information

If the epSOS Identification Service provider does not find a matching patient identifier it SHOULD include a <reasonOf/> element with the response message:

<reasonOf> element
<reasonOf typeCode="RSON">
	<detectedIssueEvent classCode="ALRT" moodCode="EVN">
		<code code="ActAdministrativeDetectedIssueCode" codeSystem="2.16.840.1.113883.5.4"/>
	</detectedIssueEvent>
</reasonOf>

 

Tests


normal usage

Test #0

Test IdPT_CLIENT_XCPD_#0
NametestQueryPatient
Description

This is a simple test, designed uniquely to test the normal worflow of the XCPD Query operation.

Test Inputs

Valid Patient Identity Traits - an error free request.

Expected Results

A PatientDemographics List

StatusPASSED

 


 Invalid scenarios

Test #1

Test IdPT_CLIENT_XCPD_#1
NametestQueryIdOnly
Description

The service requestor tried an identification based on an ID only or did not provide enough data to univocally identify the patient. The HCP SHOULD ask the patient for further demographics and re-issue the request. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). OK (data found, no errors) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

Identification based on an ID only or not enough data to univocally identify the patient

Expects

Error: AdditionalDemographicsRequested

StatusIMPEDED NCP-A only allows query by id

Test #2

Test IdPT_CLIENT_XCPD_#2
NametestQueryDemographicsOnly
Description

The service provider only allows for patient identification by national/shared ID. The HCP SHOULD ask the patient for a national (health care) identification card and reissue the request using Shared/national Patient Identifier Query and Feed mode. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

Query only using Patient Demographics

Expects

Error: DemographicsQueryNotAllowed

StatusN/A waiting for better definition

Test #3

Test IdPT_CLIENT_XCPD_#3
Name

testQueryEHICardOnly

Description

Queries based on demographics only are not supported.The service provider only allows for patient identification by national health card or EHIC. The HCP SHOULD ask the patient for a health care identification card and re-issue the request. AA (application accept) is returned in Acknowledgement.typeCode (transmissionwrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

Query without using EHIC Card.

Expects

Error: EHICDataRequested

StatusN/A waiting for better definition

Test #4

Test IdPT_CLIENT_XCPD_#4
Name

testQueryPrivateData

Description

The service provider does not accept the query because responding MAY lead to a disclosure of private patient data. The HCP SHOULD limit the provided traits and re-issue the request. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

Private data that may lead to a disclosure.

Expects

Error: PrivacyViolation

StatusN/A waiting for better definition

Test #5

Test IdPT_CLIENT_XCPD_#5
Name

testQueryInsRights

Description

The requestor has insufficient rights to query for patient’s identity data. If access to the patient’s medical data is required at the PoC this MUST be performed by a person with additional permissions. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

A request with a requestor with insufficient rights.

Expects

Error: InsufficientRights

StatusPASSED


Test #6

Test IdPT_CLIENT_XCPD_#6
Name

testQueryPatientAuthId

Description

Patient authentication MUST be piggybacked with patient identification. A respective identifier (e.g. GSS TAN) was not provided . The HCP at the PoC SHOULD ask the patient for a respective identifier and SHOULD re-issue the request. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

Patient authentication not piggybacked with patient identification.

Expects

Error: PatientAuthenticationRequired

StatusN/A waiting for better definition

Test #7

Test IdPT_CLIENT_XCPD_#7
Name

testQueryMinAccur

Description

The service provider did not find a match with the given minimum accuracy. The service consumer SHOULD re-issue the request with a lower minimum confidence level. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). OK (data found) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

A request with high level of confidence.

Expects

Error: AnswerNotAvailable

StatusPASSED

Test #8

Test IdPT_CLIENT_XCPD_#8
Name

testQueryInvalidTraits

Description

The identity traits provided by the service consumer are not supported by the service provider. The service consumer SHOULD re-issue the request with a different set of identity traits. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

A request with unsupported identity traits.

Expects

Error: AnswerNotAvailable

StatusPASSED

Test #9

Test IdPT_CLIENT_XCPD_#9
Name

testQueryConfConflict

Description

The service consumer defined a confidence level that conflicts with the security policy of the service provider. The service provider SHOULD respond only with the candidate matches that it is allowed to provide wrt. its security policy. AA (application accept) is returned in Acknowledgement.typeCode (transmission wrapper). AE (application error) is returned in QueryAck.queryResponseCode (control act wrapper)

Inputs

A request with a confidence level that conflicts with the security policy of the service provider.

Expects

Error: PolicyViolation

StatusN/A waiting for better definition

 


Usage restrictions

 Test #10

Test IdPT_CLIENT_XCPD_#10
NametestBadLivingSubjectID
Description

Asserts that a NOT well formulated &lt;LivingSubjectID&gt; results in a NOT valid response.

Inputs

A patient Identification missing extension.

ExpectsError: AnswerNotAvailable
StatusPASSED

Test #10.1

Test IdPT_CLIENT_XCPD_#10.1
NametestGoodLivingSubjectID
Description

Asserts that a well formulated &lt;LivingSubjectID&gt; results in a valid response.

Inputs

A patient identification composed by root + extension. This id must be found.

ExpectsA PatientDemographics List
StatusPASSED

Test #11

Test IdPT_CLIENT_XCPD_#11
NametestBadLivingSubjectName
Description

Asserts that a NOT well formulated <LivingSubjectName> results in a NOT valid response.

Inputs

A LivingSubjectName containing patient's given name but missing family name.

ExpectsError: AnswerNotAvailable
StatusIMPEDED NCP-A only allows query by id

Test #11.1

Test IdPT_CLIENT_XCPD_#11.1
NametestGoodLivingSubjectName
Description

Asserts that a well formulated &lt;LivingSubjectName&gt; results in a valid response.

Inputs

A LivingSubjectName containing patient's given name and family name.

ExpectsA PatientDemographics List
StatusIMPEDED NCP-A only allows query by id

Test #12

Test IdPT_CLIENT_XCPD_#12
NametestBadLivingSubjectBirthTime
Description

Asserts that a NOT well formulated <LivingSubjectBirthTime> results in a NOT valid response.

Inputs

A LivingSubjectBirthTime containing a malformed birthdate element.

ExpectsError: AnswerNotAvailable
StatusIMPEDED NCP-A only allows query by id

Test #12.1

Test IdPT_CLIENT_XCPD_#12.1
NametestGoodLivingSubjectBirthTime
Description

Asserts that a well formulated <LivingSubjectBirthTime> results in a valid response.

Inputs

A LivingSubjectBirthTime element containing a well formed birthdate element.

ExpectsA PatientDemographics List
StatusIMPEDED NCP-A only allows query by id

Test #13

Test IdPT_CLIENT_XCPD_#13
NametestBadLivingSubjectGender
Description

Asserts that a NOT well formulated <LivingSubjectGender> results in a NOT valid response.

Inputs

A LivingSubjectGender containing a malformed gender code.

ExpectsError: AnswerNotAvailable
StatusIMPEDED NCP-A only allows query by id

Test #13.1

Test IdPT_CLIENT_XCPD_#13.1
NametestGoodLivingSubjectGender
Description

Asserts that a well formulated <LivingSubjectGender> results in a valid response.

Inputs

A LivingSubjectGender containing a valid gender code.

ExpectsA PatientDemographics List
StatusIMPEDED NCP-A only allows query by id

Test #14

Test IdPT_CLIENT_XCPD_#14
NametestBadLivingSubjectBirthPlaceAddress
Description

Asserts that a NOT well formulated <LivingSubjectBirthPlaceAddress> results in a NOT valid response.

Inputs

A LivingSubjectBirthPlaceAddress element containing only country or city, not both.

ExpectsError: AnswerNotAvailable
StatusIMPEDED NCP-A only allows query by id

Test #14.1

Test IdPT_CLIENT_XCPD_#14.1
NametestGoodLivingSubjectBirthPlaceAddress
Description

Asserts that a well formulated <LivingSubjectBirthPlaceAddress> results in a valid response.

Inputs

A LivingSubjectBirthPlaceAddress containing country and city elements.

ExpectsA PatientDemographics element
StatusIMPEDED NCP-A only allows query by id

Test #15

Test IdPT_CLIENT_XCPD_#15
NametestBadPatientAddress
Description

Asserts that a NOT well formulated <PatientAddress> results in a NOT valid response.

Inputs

A BadpatientAddress containing only country or city but not both. 

ExpectsError: AnswerNotAvailable
StatusIMPEDED NCP-A only allows query by id

Test #15.1

Test IdPT_CLIENT_XCPD_#15.1
NametestGoodPatientAddress
Description

Asserts that a well formulated <PatientAddress> results in a valid response.

InputsA PatientAddress containing country and city elements.
ExpectsN/A
StatusIMPEDED NCP-A only allows query by id

Test #16

Test IdPT_CLIENT_XCPD_#16
NameTestInvalidField
Description

Asserts that a well and full formulated request results in a valid response.

Inputs

A PatientDemographics element  with all the elements testes on tests 10-15

ExpectsA PatientDemographics List
StatusIMPEDED NCP-A only allows query by id

 



 Template

Test #X

Test IdPT_CLIENT_XCPD_#X
NametestXXXX
Description

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam fermentum vestibulum est.

Cras rhoncus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

Inputs

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aliquam fermentum vestibulum est.

Cras rhoncus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.

ExpectsN/A
StatusN/A