source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Common/NhincSubDiscDataTransformsEJB/test/gov/hhs/fha/nhinc/subdiscdatatransforms/SubjectDiscoveryDataTransformsTest.java@ 507

Last change on this file since 507 was 507, checked in by George Lilly, 15 years ago

NHIN gateway and adaptor for use on linux with VistA EHR and RPMS

File size: 16.0 KB
Line 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5package gov.hhs.fha.nhinc.subdiscdatatransforms;
6
7import org.hl7.v3.MCCIIN000002UV01;
8import org.junit.After;
9import org.junit.AfterClass;
10import org.junit.Before;
11import org.junit.BeforeClass;
12import org.junit.Test;
13import static org.junit.Assert.*;
14import org.apache.commons.logging.Log;
15import org.apache.commons.logging.LogFactory;
16import gov.hhs.fha.nhinc.transform.subdisc.HL7Constants;
17import gov.hhs.fha.nhinc.transform.subdisc.HL7DataTransformHelper;
18import gov.hhs.fha.nhinc.transform.subdisc.HL7PatientTransforms;
19import javax.xml.bind.JAXBElement;
20import org.hl7.v3.CS;
21import org.hl7.v3.Create201302RequestType;
22import org.hl7.v3.Create201305RequestType;
23import org.hl7.v3.Create201310RequestType;
24import org.hl7.v3.CreateAckMsgRequestType;
25import org.hl7.v3.CreateFault201310RequestType;
26import org.hl7.v3.II;
27import org.hl7.v3.PRPAIN201302UV;
28import org.hl7.v3.PRPAIN201305UV;
29import org.hl7.v3.PRPAIN201310UV;
30import org.hl7.v3.PRPAMT201301UVPatient;
31import org.hl7.v3.PRPAMT201301UVPerson;
32import org.hl7.v3.PRPAMT201307UVParameterList;
33import org.hl7.v3.PRPAMT201307UVPatientIdentifier;
34import org.hl7.v3.PRPAMT201307UVQueryByParameter;
35import org.hl7.v3.ST;
36
37/**
38 *
39 * @author Jon Hoppesch
40 */
41public class SubjectDiscoveryDataTransformsTest {
42
43 private static Log log = LogFactory.getLog(SubjectDiscoveryDataTransformsTest.class);
44
45 public SubjectDiscoveryDataTransformsTest() {
46 }
47
48 @BeforeClass
49 public static void setUpClass() throws Exception {
50 }
51
52 @AfterClass
53 public static void tearDownClass() throws Exception {
54 }
55
56 @Before
57 public void setUp() {
58 }
59
60 @After
61 public void tearDown() {
62 }
63
64 /**
65 * Test of createAck method, of class SubjectDiscoveryDataTransforms.
66 */
67 @Test
68 public void testCreateAck() {
69 log.info("testCreateAck");
70
71 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
72
73 // Create the input message
74 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
75 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
76 createAckRequest.setMsgText("Failed - Timeout");
77 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
78 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
79
80 II id = new II();
81 id.setRoot("2.16.840.1.113883.3.200.1");
82 id.setExtension("123456");
83 createAckRequest.setOrigMsgId(id);
84
85 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
86
87 assertEquals(result.getId().getRoot(), "2.16.840.1.113883.3.198.1");
88 assertEquals(result.getSender().getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.200");
89 assertEquals(result.getReceiver().get(0).getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.198");
90 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getRoot(), "2.16.840.1.113883.3.200.1");
91 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getExtension(), "123456");
92 assertEquals(result.getAcknowledgement().get(0).getAcknowledgementDetail().get(0).getText().getContent().get(0), "Failed - Timeout");
93 }
94
95 /**
96 * Test of createAck method, default local device id
97 */
98 @Test
99 public void testCreateAck_NoLocalDeviceId() {
100 log.info("testCreateAck_NoLocalDeviceId");
101
102 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
103
104 // Create the input message
105 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
106 createAckRequest.setMsgText("Failed - Timeout");
107 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
108 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
109
110 II id = new II();
111 id.setRoot("2.16.840.1.113883.3.200.1");
112 id.setExtension("123456");
113 createAckRequest.setOrigMsgId(id);
114
115 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
116
117 assertEquals(result.getId().getRoot(), HL7Constants.DEFAULT_LOCAL_DEVICE_ID);
118 assertEquals(result.getSender().getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.200");
119 assertEquals(result.getReceiver().get(0).getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.198");
120 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getRoot(), "2.16.840.1.113883.3.200.1");
121 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getExtension(), "123456");
122 assertEquals(result.getAcknowledgement().get(0).getAcknowledgementDetail().get(0).getText().getContent().get(0), "Failed - Timeout");
123 }
124
125 /**
126 * Test of createAck method, no original message id
127 */
128 @Test
129 public void testCreateAck_NoOrigMsgId() {
130 log.info("testCreateAck_NoOrigMsgId");
131
132 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
133
134 // Create the input message
135 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
136 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
137 createAckRequest.setMsgText("Failed - Timeout");
138 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
139 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
140
141 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
142
143 assertEquals(result.getId().getRoot(), "2.16.840.1.113883.3.198.1");
144 assertEquals(result.getSender().getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.200");
145 assertEquals(result.getReceiver().get(0).getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.198");
146 assertNull(result.getAcknowledgement().get(0).getTargetMessage());
147 assertEquals(result.getAcknowledgement().get(0).getAcknowledgementDetail().get(0).getText().getContent().get(0), "Failed - Timeout");
148 }
149
150 /**
151 * Test of createAck method, no message text
152 */
153 @Test
154 public void testCreateAck_NoMsgText() {
155 log.info("testCreateAck_NoMsgText");
156
157 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
158
159 // Create the input message
160 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
161 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
162 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
163 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
164
165 II id = new II();
166 id.setRoot("2.16.840.1.113883.3.200.1");
167 id.setExtension("123456");
168 createAckRequest.setOrigMsgId(id);
169
170 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
171
172 assertEquals(result.getId().getRoot(), "2.16.840.1.113883.3.198.1");
173 assertEquals(result.getSender().getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.200");
174 assertEquals(result.getReceiver().get(0).getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.198");
175 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getRoot(), "2.16.840.1.113883.3.200.1");
176 assertEquals(result.getAcknowledgement().get(0).getTargetMessage().getId().getExtension(), "123456");
177 assertEquals(result.getAcknowledgement().get(0).getAcknowledgementDetail().size(), 0);
178 }
179
180 /**
181 * Test of createAck method, no acknowledgement section
182 */
183 @Test
184 public void testCreateAck_NoAckSection() {
185 log.info("testCreateAck_NoAckSection");
186
187 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
188
189 // Create the input message
190 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
191 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
192 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
193 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
194
195 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
196
197
198 assertEquals(result.getId().getRoot(), "2.16.840.1.113883.3.198.1");
199 assertEquals(result.getSender().getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.200");
200 assertEquals(result.getReceiver().get(0).getDevice().getId().get(0).getRoot(), "2.16.840.1.113883.3.198");
201 assertEquals(result.getAcknowledgement().size(), 0);
202 }
203
204 /**
205 * Test of createAck method, no sender OID
206 */
207 @Test
208 public void testCreateAck_NoSenderOID() {
209 log.info("testCreateAck_NoSenderOID");
210
211 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
212
213 // Create the input message
214 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
215 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
216 createAckRequest.setMsgText("Failed - Timeout");
217 createAckRequest.setReceiverOID("2.16.840.1.113883.3.198");
218
219 II id = new II();
220 id.setRoot("2.16.840.1.113883.3.200.1");
221 id.setExtension("123456");
222 createAckRequest.setOrigMsgId(id);
223
224 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
225
226 assertNull(result);
227 }
228
229 /**
230 * Test of createAck method, no receiver OID
231 */
232 @Test
233 public void testCreateAck_NoReceiverOID() {
234 log.info("testCreateAck_NoReceiverOID");
235
236 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
237
238 // Create the input message
239 CreateAckMsgRequestType createAckRequest = new CreateAckMsgRequestType();
240 createAckRequest.setLocalDeviceId("2.16.840.1.113883.3.198.1");
241 createAckRequest.setMsgText("Failed - Timeout");
242 createAckRequest.setSenderOID("2.16.840.1.113883.3.200");
243
244 II id = new II();
245 id.setRoot("2.16.840.1.113883.3.200.1");
246 id.setExtension("123456");
247 createAckRequest.setOrigMsgId(id);
248
249 MCCIIN000002UV01 result = instance.createAck(createAckRequest);
250
251 assertNull(result);
252 }
253
254 /**
255 * Test of create201305 method
256 */
257 @Test
258 public void testcreate201305() {
259 log.info("testcreate201305");
260
261 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
262
263 Create201305RequestType create201305Request = new Create201305RequestType();
264 create201305Request.setLocalDeviceId("2.16.840.1.113883.3.166.4.2");
265 create201305Request.setReceiverOID("2.16.840.1.113883.3.166.4");
266 create201305Request.setSenderOID("2.16.840.1.113883.3.166.4");
267
268 JAXBElement<PRPAMT201301UVPerson> person = HL7PatientTransforms.create201301PatientPerson("Nancy", "Jackson", "F", "19690101", "125689743");
269 PRPAMT201301UVPatient patient = HL7PatientTransforms.create201301Patient(person, "12345", "2.16.840.1.113883.3.166.4.2");
270 create201305Request.setPRPA201301Patient(patient);
271
272 PRPAIN201305UV result = instance.create201305(create201305Request);
273
274 TestHelper.assertReceiverIdEquals("2.16.840.1.113883.3.166.4", result);
275 TestHelper.assertSenderIdEquals("2.16.840.1.113883.3.166.4", result);
276 TestHelper.assertPatientIdEquals("12345", "2.16.840.1.113883.3.166.4.2", result);
277 TestHelper.assertBirthTimeEquals("19690101", result);
278 TestHelper.assertPatientNameEquals("Nancy", "Jackson", result);
279 TestHelper.assertGenderEquals("F", result);
280
281 }
282
283 /**
284 * Test of create201302 method
285 */
286 @Test
287 public void testcreate201302() {
288 log.info("testcreate201302");
289
290 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
291
292 Create201302RequestType create201302Request = new Create201302RequestType();
293 create201302Request.setRemotePatientId("192837");
294 create201302Request.setRemoteDeviceId("2.16.840.1.113883.3.166.4.2");
295 create201302Request.setReceiverOID("2.16.840.1.113883.3.184");
296 create201302Request.setSenderOID("2.16.840.1.113883.3.166.4");
297
298 JAXBElement<PRPAMT201301UVPerson> person = HL7PatientTransforms.create201301PatientPerson("Kyle", "Jackson", "M", "19991201", "654987321");
299 PRPAMT201301UVPatient patient = HL7PatientTransforms.create201301Patient(person, "112233", "2.16.840.1.113883.3.184.3");
300 create201302Request.setPRPA201301Patient(patient);
301
302 PRPAIN201302UV result = instance.create201302(create201302Request);
303
304 TestHelper.assertReceiverIdEquals("2.16.840.1.113883.3.184", result);
305 TestHelper.assertSenderIdEquals("2.16.840.1.113883.3.166.4", result);
306 TestHelper.assertPatientIdEquals("112233", "2.16.840.1.113883.3.184.3", result);
307 TestHelper.assertBirthTimeEquals("19991201", result);
308 TestHelper.assertPatientNameEquals("Kyle", "Jackson", result);
309 TestHelper.assertGenderEquals("M", result);
310 }
311
312 /**
313 * Test of create201310 method
314 */
315 @Test
316 public void testcreateFault201310() {
317 log.info("testcreateFault201310");
318
319 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
320
321 CreateFault201310RequestType createFault201310Request = new CreateFault201310RequestType();
322 String senderOID = "Sender1";
323 String receiverOID = "Receiver1";
324
325 createFault201310Request.setReceiverOID(receiverOID);
326 createFault201310Request.setSenderOID(senderOID);
327
328
329 PRPAIN201310UV result = instance.createFault201310(createFault201310Request);
330
331 TestHelper.assertReceiverIdEquals(receiverOID, result);
332 TestHelper.assertSenderIdEquals(senderOID, result);
333 TestHelper.assertPatientIdEquals("", "", HL7Constants.DEFAULT_LOCAL_DEVICE_ID, result);
334
335 PRPAMT201307UVQueryByParameter queryParam = new PRPAMT201307UVQueryByParameter();
336 TestHelper.assertQueryParam(queryParam, result);
337 }
338
339 /**
340 * Test of create201310 method
341 */
342 @Test
343 public void testcreate201310() {
344 log.info("testcreate201310");
345
346 SubjectDiscoveryDataTransforms instance = new SubjectDiscoveryDataTransforms();
347
348 Create201310RequestType create201310Request = new Create201310RequestType();
349 String patientId = "123";
350 String assigningAuthorityId = "Auth.111.222.333";
351 String localDeviceId = "9.8.7";
352 String senderOID = "Sender1";
353 String receiverOID = "Receiver1";
354
355 String qid = "2.222";
356 II queryId = HL7DataTransformHelper.IIFactory(qid);
357
358 String qsc = "QueryCode";
359 CS statusCode = HL7DataTransformHelper.CSFactory(qsc);
360
361 ST semantics = new ST();
362 semantics.setLanguage("TestSemantics");
363
364 String pidValue = "Pat_Id";
365
366 PRPAMT201307UVPatientIdentifier pid = new PRPAMT201307UVPatientIdentifier();
367 pid.setSemanticsText(semantics);
368 pid.getValue().add(HL7DataTransformHelper.IIFactory(pidValue));
369
370 PRPAMT201307UVParameterList pList = new PRPAMT201307UVParameterList();
371 pList.getPatientIdentifier().add(pid);
372
373 PRPAMT201307UVQueryByParameter queryParam = new PRPAMT201307UVQueryByParameter();
374 queryParam.setQueryId(queryId);
375 queryParam.setStatusCode(statusCode);
376 queryParam.setParameterList(pList);
377
378 create201310Request.setPseudoPatientId(patientId);
379 create201310Request.setPseudoAssigningAuthorityId(assigningAuthorityId);
380 create201310Request.setLocalDeviceId(localDeviceId);
381 create201310Request.setReceiverOID(receiverOID);
382 create201310Request.setSenderOID(senderOID);
383 create201310Request.setPRPA201307QueryByParameter(queryParam);
384
385 PRPAIN201310UV result = instance.create201310(create201310Request);
386
387 TestHelper.assertReceiverIdEquals(receiverOID, result);
388 TestHelper.assertSenderIdEquals(senderOID, result);
389 TestHelper.assertPatientIdEquals(patientId, assigningAuthorityId, localDeviceId, result);
390 TestHelper.assertQueryParam(queryParam, result);
391 }
392}
Note: See TracBrowser for help on using the repository browser.