source: ccr/trunk/nhin-vista/projects/NHINC/Current/Product/Production/Adapters/General/MpiManagerEJB/src/java/gov/hhs/fha/nhinc/adaptermpimanager/PersonNameParser.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: 3.2 KB
Line 
1/*
2 * To change this template, choose Tools | Templates
3 * and open the template in the editor.
4 */
5
6package gov.hhs.fha.nhinc.adaptermpimanager;
7
8import org.apache.commons.logging.Log;
9import org.apache.commons.logging.LogFactory;
10import gov.hhs.fha.nhinc.mpilib.*;
11
12/**
13 *
14 * @author mflynn02
15 */
16public class PersonNameParser {
17 private static Log log = LogFactory.getLog(PersonNameParser.class);
18
19 private enum nameorder {
20
21 first_last, last_first
22 }
23
24 public static PersonName SplitName(String name) {
25 log.debug("Begin PersonNameParser.SplitName(String)");
26 PersonName personname;
27 if (name == null || name.contentEquals("")) {
28 personname = new PersonName();
29 } else {
30 personname = SplitNameByDelimiter(name, ",", nameorder.last_first);
31 if (personname == null) {
32 personname = SplitNameByDelimiter(name, " ", nameorder.first_last);
33 }
34
35 if (personname == null) {
36 {
37 personname = new PersonName();
38 personname.setLastName(name);
39 }
40 }
41 }
42 log.debug("End PersonNameParser.SplitName(String)");
43 return personname;
44 }
45
46 private static PersonName SplitNameByDelimiter(
47 String name, String delimiter, nameorder order) {
48 log.debug("Begin PersonNameParser.SplitNameByDelimiter(String,String,nameorder)");
49 PersonName personname = null;
50 if (name.contains(delimiter)) {
51 String[] nameparts = name.split(delimiter);
52 if (nameparts.length == 0 || nameparts.length == 1) {
53 personname = null;
54 } else if (nameparts.length == 2) {
55 personname = new PersonName();
56
57 if (order == nameorder.first_last) {
58 personname.setFirstName(nameparts[0]);
59 personname.setLastName(nameparts[1]);
60 } else if (order == nameorder.last_first) {
61 personname.setLastName(nameparts[0]);
62 personname.setFirstName(nameparts[1]);
63 }
64
65 } else if (nameparts.length > 2) {
66 personname = new PersonName();
67 personname.setLastName(nameparts[0]);
68 personname.setFirstName(nameparts[1]);
69 }
70
71 } else {
72 personname = null;
73 }
74 log.debug("End PersonNameParser.SplitNameByDelimiter(String,String,nameorder)");
75 return personname;
76 }
77
78 public static String SerializeName(PersonName personname) {
79 log.debug("Begin PersonNameParser.SerializeName(PersonName)");
80 String serializedname = null;
81 if (personname == null) {
82 serializedname = "";
83 } else if (personname.getFirstName().contentEquals("")) {
84 serializedname = personname.getLastName();
85 } else if (personname.getLastName().contentEquals("")) {
86 serializedname = personname.getFirstName();
87 } else {
88 serializedname = personname.getLastName() + "," + personname.getFirstName();
89 }
90 log.debug("End PersonNameParser.SerializeName(PersonName)");
91 return serializedname;
92 }
93
94}
Note: See TracBrowser for help on using the repository browser.