001 package org.vmdb.hl7; 002 003 /** 004 * <p><Title:> Coded Element (CE) 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 * @author Michael K. Martin 009 * @version 1.0 010 */ 011 012 public class CEElement extends HL7Element { 013 private String sNm = "CE"; 014 private String sRl = "ST [ST][ST][ST][ST][ST]"; 015 016 /** 017 * Construct a Coded Element using the default name and type constants. 018 * @param iLevel One of the constants for specifying level as FIELD, COMPONENT, or 019 * SUBCOMPONENT. Default FIELD. 020 */ 021 public CEElement( int iLevel ) { 022 super( iLevel ); 023 setName( sNm ); 024 setRule( sRl ); 025 setType( "CE" ); 026 } 027 028 /** 029 * Construct a Coded Element using the default name and type constants 030 * at the default level FIELD. 031 */ 032 public CEElement() { 033 super( FIELD ); 034 setName( sNm ); 035 setRule( sRl ); 036 setType( "CE" ); 037 } 038 039 /** 040 * Construct a Coded Element setting its value.<br><br> 041 * Uses the default name and type constants at the default level FIELD 042 * @param sIdentifier String with the code for the value. 043 * @param sText String with the value spelled out as English text. 044 * @param sSystem String with the name of the coding system abbreviated. 045 */ 046 public CEElement( String sIdentifier, String sText, String sSystem) { 047 super( FIELD ); 048 setName( sNm ); 049 setRule( sRl ); 050 setType( "CE" ); 051 setIdentifier( sIdentifier ); 052 setText( sText ); 053 setCodingSystem( sSystem ); 054 } 055 056 /** 057 * Construct a Coded Element setting its value.<br><br> 058 * Uses the default name and type constants at the default level FIELD 059 * @param sIdentifier String with the code for the value. 060 * @param sText String with the value spelled out as English text. 061 * @param sSystem String with the name of the coding system abbreviated. 062 * @param sAltIdentifier String with the code for the value. 063 * @param sAltText String with the value spelled out as English text. 064 * @param sAltSystem String with the name of the coding system abbreviated. 065 */ 066 public CEElement( String sIdentifier, String sText, String sSystem, 067 String sAltIdentifier, String sAltText, String sAltSystem ) { 068 super( FIELD ); 069 setName( sNm ); 070 setRule( sRl ); 071 setType( "CE" ); 072 setIdentifier( sIdentifier ); 073 setText( sText ); 074 setCodingSystem( sSystem ); 075 setAltIdentifier( sAltIdentifier ); 076 setAltText( sAltText ); 077 setAltCodingSystem( sAltSystem ); 078 } 079 080 /** 081 * Copy constructor to clone away const'ness when using constant value CEs 082 */ 083 public CEElement( CEElement ceIn ) { 084 super( FIELD ); 085 setName( sNm ); 086 setRule( sRl ); 087 setType( "CE" ); 088 initialize(); 089 this.setName( ceIn.getName() ); 090 this.setIdentifier( ceIn.getIdentifier() ); 091 this.setText( ceIn.getText() ); 092 this.setCodingSystem( ceIn.getCodingSystem() ); 093 String sAltId = ceIn.getAltIdentifier(); 094 if( sAltId.length() > 0 ) 095 this.setAltIdentifier( sAltId ); 096 String sAltText = ceIn.getAltText(); 097 if( sAltText.length() > 0 ) 098 this.setAltText( sAltText ); 099 String sAltCodingSystem = ceIn.getAltCodingSystem(); 100 if( sAltCodingSystem.length() > 0 ) 101 this.setAltCodingSystem( sAltCodingSystem ); 102 } 103 104 public CEElement Clone() { 105 return new CEElement( this ); 106 } 107 108 public Object clone() { return Clone(); } 109 110 /** 111 * Does this CEElement code the same thing as the second? 112 * @param CEElement To compare 113 * @return boolean true if the two match on identifier plus code system 114 * for either main or alternate identifier 115 */ 116 public boolean equals( CEElement ce2 ) { 117 if( getIdentifier().equals( ce2.getIdentifier() )&& 118 getCodingSystem().equals( ce2.getCodingSystem() ) ) { 119 return true; 120 } 121 if( getIdentifier().equals( ce2.getAltIdentifier() ) && 122 getCodingSystem().equals( ce2.getAltCodingSystem() ) ) { 123 return true; 124 } 125 if( getAltIdentifier().equals( ce2.getIdentifier() ) && 126 getAltCodingSystem().equals( ce2.getCodingSystem() ) ) { 127 return true; 128 } 129 return false; 130 } 131 132 /** 133 * Set the coded value of an existing Coded Element. 134 * @param sIdentifier String with the code for the value. 135 */ 136 public void setIdentifier( String sIdentifier ) { 137 HL7Element e = new SimpleElement( iLevel + 1 ); 138 e.setType( "ST" ); 139 e.setName( "CE.1" ); 140 e.setValue( sIdentifier ); 141 try { 142 setComponent( e, 1 ); 143 } catch( MalformedFieldException mfe ) { 144 mfe.printStackTrace(); 145 } 146 } 147 148 /** 149 * Get the coded value of an existing Coded Element. 150 * @return String with the code for the value. 151 */ 152 public String getIdentifier() { 153 HL7Element e = getComponent( 1 ); 154 if( e != null ) 155 return e.toString(); 156 else 157 return ""; 158 } 159 160 /** 161 * Set the text value of an existing Coded Element. 162 * @param sText String with the value spelled out as English text. 163 */ 164 public void setText( String sText ) { 165 HL7Element e = new SimpleElement( iLevel + 1 ); 166 e.setType( "ST" ); 167 e.setName( "CE.2" ); 168 e.setValue( sText ); 169 try { 170 setComponent( e, 2 ); 171 } catch( MalformedFieldException mfe ) { 172 mfe.printStackTrace(); 173 } 174 } 175 176 /** 177 * Get the text value of an existing Coded Element. 178 * @return String with the value spelled out as English text. 179 */ 180 public String getText() { 181 HL7Element e = getComponent( 2 ); 182 if( e != null ) 183 return e.toString(); 184 else 185 return ""; 186 } 187 188 /** 189 * Set the coding system used in an existing Coded Element. 190 * @param sSystem String with the name of the coding system abbreviated. 191 */ 192 public void setCodingSystem( String sCodeSystem ) { 193 HL7Element e = new SimpleElement( iLevel + 1 ); 194 e.setType( "ST" ); 195 e.setName( "CE.3" ); 196 e.setValue( sCodeSystem ); 197 try { 198 setComponent( e, 3 ); 199 } catch( MalformedFieldException mfe ) { 200 mfe.printStackTrace(); 201 } 202 } 203 204 /** 205 * Get the coding system used in an existing Coded Element. 206 * @return String with the name of the coding system abbreviated. 207 */ 208 public String getCodingSystem() { 209 HL7Element e = getComponent( 3 ); 210 if( e != null ) 211 return e.toString(); 212 else 213 return ""; 214 } 215 216 /** 217 * Set the alternate coded value of an existing Coded Element.<br><br> 218 * The alternate code is a different way of coding the same meaning. If a 219 * second concept is to be sent, it belongs in a different element, <i>not</i> 220 * in the alternate identifier. 221 * @param sAltId String with the code for the value. 222 */ 223 public void setAltIdentifier( String sAltId ) { 224 HL7Element e = new SimpleElement( iLevel + 1 ); 225 e.setType( "ST" ); 226 e.setName( "CE.4" ); 227 e.setValue( sAltId ); 228 try { 229 setComponent( e, 4 ); 230 } catch( MalformedFieldException mfe ) { 231 mfe.printStackTrace(); 232 } 233 } 234 235 /** 236 * Get the alternate coded value of an existing Coded Element. 237 * @return String with the code for the value. 238 */ 239 public String getAltIdentifier() { 240 HL7Element e = getComponent( 4 ); 241 if( e != null ) 242 return e.toString(); 243 else 244 return ""; 245 } 246 247 /** 248 * Set the alternate text value of an existing Coded Element.<br><br> 249 * If this component is left blank, it is assumed that the description text 250 * is the same as the primary. 251 * @param sAltText String with the value spelled out as English text. 252 */ 253 public void setAltText( String sAltText ) { 254 HL7Element e = new SimpleElement( iLevel + 1 ); 255 e.setType( "ST" ); 256 e.setName( "CE.5" ); 257 e.setValue( sAltText ); 258 try { 259 setComponent( e, 5 ); 260 } catch( MalformedFieldException mfe ) { 261 mfe.printStackTrace(); 262 } 263 } 264 265 /** 266 * Get the alternate text value of an existing Coded Element. 267 * @return String with the value spelled out as English text. 268 */ 269 public String getAltText() { 270 HL7Element e = getComponent( 5 ); 271 if( e != null ) 272 return e.toString(); 273 else 274 return ""; 275 } 276 277 /** 278 * Set the alternate coding system used in an existing Coded Element.<br><br> 279 * If this component is left blank, it is assumed that the alternate coding 280 * system is a local code. 281 * @param sAltSystem String with the name of the coding system abbreviated. 282 */ 283 public void setAltCodingSystem( String sAltSystem ) { 284 HL7Element e = new SimpleElement( iLevel + 1 ); 285 e.setType( "ST" ); 286 e.setName( "CE.6" ); 287 e.setValue( sAltSystem ); 288 try { 289 setComponent( e, 6 ); 290 } catch( MalformedFieldException mfe ) { 291 mfe.printStackTrace(); 292 } 293 } 294 295 /** 296 * Get the alternate coding system used in an existing Coded Element. 297 * @return String with the name of the coding system abbreviated. 298 */ 299 public String getAltCodingSystem() { 300 HL7Element e = getComponent( 6 ); 301 if( e != null ) 302 return e.toString(); 303 else 304 return ""; 305 } 306 307 } // End class CEElement 308