Difference between revisions of "Technology"
Jump to navigation
Jump to search
Line 18: | Line 18: | ||
raises (UnknownCodeSystem, | raises (UnknownCodeSystem, | ||
UnexpectedError); | UnexpectedError); | ||
+ | </pre> | ||
+ | |||
+ | IDL was chosen because there is a definitive, standard mapping defined between IDL and most programming languages. There are two problems, however. The first is that, while IDL is supposedly technology neutral, the language mappings carry some CORBA related artifacts. The ConceptID declaration above compiles to: | ||
+ | <pre> | ||
+ | public final class ConceptId implements org.omg.CORBA.portable.IDLEntity | ||
+ | { | ||
+ | public String codeSystem_id = null; | ||
+ | public String concept_code = null; | ||
+ | |||
+ | public ConceptId () | ||
+ | { | ||
+ | } // ctor | ||
+ | |||
+ | public ConceptId (String _codeSystem_id, String _concept_code) | ||
+ | { | ||
+ | codeSystem_id = _codeSystem_id; | ||
+ | concept_code = _concept_code; | ||
+ | } // ctor | ||
+ | |||
+ | } // class ConceptId | ||
</pre> | </pre> |
Revision as of 00:31, 31 March 2005
Binding and function definition issues
Current CTS approach
The current CTS specification defines the information model using UML and defines the API using the OMG Interface Definition Language (IDL). A sample IDL declaration follows:
typedef string OID; typedef OID CodeSystemId; typedef string ConceptCode; struct ConceptId { CodeSystemId codeSystem_id; ConceptCode concept_code; }; boolean isConceptIdValid( in ConceptId concept_id, in boolean activeConceptsOnly ) raises (UnknownCodeSystem, UnexpectedError);
IDL was chosen because there is a definitive, standard mapping defined between IDL and most programming languages. There are two problems, however. The first is that, while IDL is supposedly technology neutral, the language mappings carry some CORBA related artifacts. The ConceptID declaration above compiles to:
public final class ConceptId implements org.omg.CORBA.portable.IDLEntity { public String codeSystem_id = null; public String concept_code = null; public ConceptId () { } // ctor public ConceptId (String _codeSystem_id, String _concept_code) { codeSystem_id = _codeSystem_id; concept_code = _concept_code; } // ctor } // class ConceptId