public Code(String s) {
int len = s.length();
if (len < 9
|| s.charAt(0) != '('
|| s.charAt(len-2) != '"'
|| s.charAt(len-1) != ')')
throw new IllegalArgumentException(s);
int endVal = s.indexOf(',');
int endScheme = s.indexOf(',', endVal + 1);
int startMeaning = s.indexOf('"', endScheme + 1) + 1;
this.codeValue = trimsubstring(s, 1, endVal);
this.codingSchemeDesignator = trimsubstring(s, endVal+1, endScheme);
this.codeMeaning = trimsubstring(s, startMeaning, len-2);
if (codingSchemeDesignator.endsWith("]")) {
int endVersion = s.lastIndexOf(']', endScheme - 1);
endScheme = s.lastIndexOf('[', endVersion - 1);
this.codingSchemeDesignator = trimsubstring(s, endVal+1, endScheme);
this.codingSchemeVersion = nullifyDCM01(trimsubstring(s, endScheme+1, endVersion));
}
}