View Javadoc
1   /*
2    * Copyright 2009 the original author or authors.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *     
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.openehealth.ipf.commons.ihe.xds.core.transform.hl7.pid;
17  
18  import static org.junit.Assert.*;
19  
20  import java.util.ListIterator;
21  
22  import org.junit.Test;
23  import org.openehealth.ipf.commons.ihe.xds.core.metadata.AssigningAuthority;
24  import org.openehealth.ipf.commons.ihe.xds.core.metadata.Identifiable;
25  import org.openehealth.ipf.commons.ihe.xds.core.metadata.PatientInfo;
26  
27  /**
28   * Tests for patient ID list transformation in SourcePatientInfo.
29   * @author Jens Riemschneider
30   */
31  public class SourcePatientIdentifierPIDTransformerTest {
32  
33      @Test
34      public void testToHL7() {
35          PatientInfo patientInfo = new PatientInfo();
36          Identifiable id1 = new Identifiable();
37          id1.setId("id1");
38          AssigningAuthority assigningAuthority1 = new AssigningAuthority();
39          assigningAuthority1.setUniversalId("1.1.1.1");
40          assigningAuthority1.setUniversalIdType("ISO");
41          id1.setAssigningAuthority(assigningAuthority1);
42          
43          Identifiable id2 = new Identifiable();
44          id2.setId("id2");
45          AssigningAuthority assigningAuthority2 = new AssigningAuthority();
46          assigningAuthority2.setUniversalId("2.2.2.2");
47          assigningAuthority2.setUniversalIdType("ISO");
48          id2.setAssigningAuthority(assigningAuthority2);
49          
50          patientInfo.getIds().add(id1);
51          patientInfo.getIds().add(id2);
52  
53          ListIterator<String> iterator = patientInfo.getHl7FieldIterator("PID-3");
54          assertEquals("id2^^^&2.2.2.2&ISO", iterator.next());
55          assertEquals("id1^^^&1.1.1.1&ISO", iterator.next());
56          assertFalse(iterator.hasNext());
57      }
58  
59      @Test
60      public void testToHL7EmptyIds() {
61          PatientInfo patientInfo = new PatientInfo();
62          patientInfo.getIds().add(new Identifiable());
63          patientInfo.getIds().add(new Identifiable());
64          ListIterator<String> iterator = patientInfo.getHl7FieldIterator("PID-3");
65          assertEquals("", iterator.next());
66          assertEquals("", iterator.next());
67          assertFalse(iterator.hasNext());
68      }
69  
70      @Test
71      public void testToHL7NoIds() {
72          PatientInfo patientInfo = new PatientInfo();
73          ListIterator<String> iterator = patientInfo.getHl7FieldIterator("PID-3");
74          assertFalse(iterator.hasNext());
75      }
76  
77      @Test
78      public void testFromHL7() {
79          PatientInfo patientInfo = new PatientInfo();
80          ListIterator<String> iterator = patientInfo.getHl7FieldIterator("PID-3");
81          iterator.add("id1^^^&1.1.1.1&ISO");
82          iterator.add("id2^^^&2.2.2.2&ISO");
83  
84          ListIterator<Identifiable> ids = patientInfo.getIds();
85          Identifiable id0 = ids.next();
86          Identifiable id1 = ids.next();
87          assertFalse(ids.hasNext());
88          
89          assertEquals("id1", id0.getId());
90          assertEquals("1.1.1.1", id0.getAssigningAuthority().getUniversalId());
91          assertEquals("ISO", id0.getAssigningAuthority().getUniversalIdType());
92  
93          assertEquals("id2", id1.getId());
94          assertEquals("2.2.2.2", id1.getAssigningAuthority().getUniversalId());
95          assertEquals("ISO", id1.getAssigningAuthority().getUniversalIdType());
96      }
97      
98      @Test
99      public void testFromHL7OneEmptyId() {
100         PatientInfo patientInfo = new PatientInfo();
101         ListIterator<String> iterator = patientInfo.getHl7FieldIterator("PID-3");
102         iterator.add("^^^");
103         iterator.add("id2^^^&2.2.2.2&ISO");
104 
105         ListIterator<Identifiable> ids = patientInfo.getIds();
106         assertNull(ids.next());
107         Identifiable id0 = ids.next();
108         assertFalse(ids.hasNext());
109         
110         assertEquals("id2", id0.getId());
111         assertEquals("2.2.2.2", id0.getAssigningAuthority().getUniversalId());
112         assertEquals("ISO", id0.getAssigningAuthority().getUniversalIdType());
113     }
114     
115     @Test
116     public void testFromHL7Empty() {
117         PatientInfo patientInfo = new PatientInfo();
118         patientInfo.getHl7FieldIterator("PID-3").add("");
119         ListIterator<Identifiable> ids = patientInfo.getIds();
120         assertNull(ids.next());
121         assertFalse(ids.hasNext());
122     }
123 
124     @Test
125     public void testFromHL7Null() {
126         PatientInfo patientInfo = new PatientInfo();
127         patientInfo.getHl7FieldIterator("PID-3").add(null);
128         ListIterator<Identifiable> ids = patientInfo.getIds();
129         assertNull(ids.next());
130         assertFalse(ids.hasNext());
131     }
132 }