001 package org.vmdb.hl7;
002
003 /**
004 * <p><Title:> Structured Numeric (SN) Element. </p>
005 * <p>Description: HL7 Network Connectivity For VMDB. </p>
006 * <p>Copyright: Copyright (c) 2002-2003. </p>
007 * <p>Company: Veterinary Medical Database (VMDB). </p>
008 * <p>Used for numeric ranges and open ranges like > 100</p>
009 * @author Michael K. Martin
010 * @version 1.0
011 */
012
013 public class SNElement extends HL7Element {
014 private String sNm = "SN";
015 private String sRl = "ST NM[ST][NM]";
016
017 /**
018 * Construct a Structured Numeric Element using the default name and type constants.
019 * @param iLevel One of the constants for specifying level as FIELD, COMPONENT, or
020 * SUBCOMPONENT. Default FIELD.
021 */
022 public SNElement( int iLevel ) {
023 super( iLevel );
024 setName( sNm );
025 setRule( sRl );
026 setType( "SN" );
027 }
028
029 /**
030 * Construct a Structured Numeric Element using the default name and type constants
031 * at the default level FIELD.
032 */
033 public SNElement() {
034 super( FIELD );
035 setName( sNm );
036 setRule( sRl );
037 setType( "SN" );
038 }
039
040 public String getValue() {
041 String sComparator = getComparator();
042 String sNum1 = getNum1();
043 String sSep = getSeparator();
044 String sNum2 = getNum2();
045 StringBuffer sb = new StringBuffer();
046 if( sComparator != null && !sComparator.equals( "=" ) ) {
047 sb.append( sComparator );
048 sb.append( " " );
049 }
050 if( sNum1 != null && !sNum1.equals( "" )) sb.append( sNum1 );
051 if( sSep != null && !sSep.equals( "" ) && sNum2 != null && !sNum2.equals( "" ) ) {
052 sb.append( " " );
053 sb.append( sSep );
054 sb.append( " " );
055 }
056 if( sNum2 != null && !sNum2.equals( "" )) sb.append( sNum2 );
057 return sb.toString();
058 }
059
060 public void setComparator( String sComparator ) {
061 HL7Element e = new SimpleElement( iLevel + 1 );
062 e.setType( "ST" );
063 e.setName( "SN.1" );
064 e.setValue( sComparator );
065 try {
066 setComponent( e, 1 );
067 } catch( MalformedFieldException mfe ) {
068 mfe.printStackTrace();
069 }
070 }
071
072 public String getComparator() {
073 HL7Element e = getComponent( 1 );
074 if( e != null )
075 return e.toString();
076 else
077 return "";
078 }
079
080 public void setNum1( String sNum1 ) {
081 HL7Element e = new SimpleElement( iLevel + 1 );
082 e.setType( "NM" );
083 e.setName( "SN.2" );
084 e.setValue( sNum1 );
085 try {
086 setComponent( e, 2 );
087 } catch( MalformedFieldException mfe ) {
088 mfe.printStackTrace();
089 }
090 }
091
092 public String getNum1() {
093 HL7Element e = getComponent( 2 );
094 if( e != null )
095 return e.toString();
096 else
097 return "";
098 }
099
100 public void setSeparator( String sSeparator ) {
101 HL7Element e = new SimpleElement( iLevel + 1 );
102 e.setType( "ST" );
103 e.setName( "SN.3" );
104 e.setValue( sSeparator );
105 try {
106 setComponent( e, 3 );
107 } catch( MalformedFieldException mfe ) {
108 mfe.printStackTrace();
109 }
110 }
111
112 public String getSeparator() {
113 HL7Element e = getComponent( 3 );
114 if( e != null )
115 return e.toString();
116 else
117 return "";
118 }
119
120 public void setNum2( String sNum2 ) {
121 HL7Element e = new SimpleElement( iLevel + 1 );
122 e.setType( "NM" );
123 e.setName( "SN.3" );
124 e.setValue( sNum2 );
125 try {
126 setComponent( e, 4 );
127 } catch( MalformedFieldException mfe ) {
128 mfe.printStackTrace();
129 }
130 }
131
132 public String getNum2() {
133 HL7Element e = getComponent( 4 );
134 if( e != null )
135 return e.toString();
136 else
137 return "";
138 }
139
140 } // End class SNElement
141