Diagnosis extends IcdCode { private Diagnosis(Optional<String> icdCode, Optional<Character> icdVersionCode, DiagnosisLabel... labels) { super(icdCode, icdVersionCode); Objects.requireNonNull(icdCode); Objects.requireNonNull(icdVersionCode); Objects.requireNonNull(labels); this.presentOnAdmission = null; this.labels = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(labels))); } private  Diagnosis(Optional<String> icdCode, Optional<Character> icdVersionCode, DiagnosisLabel... labels); private  Diagnosis(Optional<String> icdCode, Optional<Character> icdVersionCode,
			Optional<Character> presentOnAdmission, DiagnosisLabel... labels);   }
@Test public void testdiagnosis() throws FHIRException { Character versionIcd9 = '9'; String systemIcd9 = "http: assertMatches(versionIcd9, systemIcd9); Character versionIcd10 = '0'; String systemIcd10 = "http: assertMatches(versionIcd10, systemIcd10); Character versionIcdUnknown = 'U'; String systemIcdUnknown = String.format("http: assertMatches(versionIcdUnknown, systemIcdUnknown); assertDiagnosisLabelsMatch(); }